@githolon/runtime 0.110.1 → 0.111.1

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.
@@ -34,12 +34,14 @@
34
34
  1963a804a9cfe7d44a76b2c476817639b939d7e93828da865cab40fe9ba536fa adapter/custody-transport.ts
35
35
  1a5d9fd32360e2cec4adbee9e56221fb26def66bb9d122e0b5745cebc963d92e node_modules/xml-naming/src/index.js
36
36
  1b27a1f4d58d6314cd4887d0f47493d1a98fc474e3364388f321c3aeb94a8ac3 adapter/workspace_effect_outcome.ts
37
+ 1b8eea8acf14374c28330cb21eea0e14f151fffb7c678f8e4a7f34722dc2eb22 peer-office/src/runtime/workspace_sync.ts
37
38
  1c0bba78daf8c28ac51f35d60b2b2fbca9c57bc7bcdb05a05a1f15a2ca657164 peer-office/src/reception/application_readiness_transport.ts
38
39
  1c364712aa61711ce0e654ed81e26fe821e8f7b6dac9c31fe6d49fc184dbacd2 node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.js
39
40
  1d1f03bc86ea3788b57b43c7720de2c41a7b133d852262a7615b3b152777cdef node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js
40
41
  1d5259e6815efcdc11fa9e132422158f7a8359bf038d71ba2162c5cf3ebbb519 adapter/kernel_call_desk.ts
41
42
  1e165c6f5d0adf93969445b47030d8d79e3b7a7ab2d50ee00f9edfa91a15c866 node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js
42
43
  1e1a40b354386dd1e3190a6cf408a57d6d9ba4eda70dc02278b58110330ec11a adapter/proto/nomos/runtime/v2/runtime_pb.js
44
+ 1f351df3317c6c19626860bbbf7c8010e3de75a54361da413116e397de95fddd peer-office/src/peer_office.ts
43
45
  1f6876ca69679c5203f3a26796540847401798ace69cd094f3e2e50b5d7f1543 peer-office/src/runtime/placement_fetch.ts
44
46
  1feb293fbfd20018e4a3790168737afa3705e7bd22dbcf2a6fd4b0cdb7bfac0c node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js
45
47
  202a9f1d1e496f4fa102ea90c85773d723104b7bdedb14db059b59d4ab41c017 adapter/proto/nomos/runtime/v2/application_readiness_desk_pb.js
@@ -74,18 +76,16 @@
74
76
  3fa38ca64538032d871cd44da41bf6a6ad2eb133b6b8ebc2d8b4d33615b00dcf peer-office/src/reception/application_session_pipe.ts
75
77
  3fade4f9262d10e39f346b57a7f08d03641e0ebd75556d087f6319f6c6003a24 peer-office/src/runtime/sha256.ts
76
78
  3ffd9b9e4c466f6e8aa767897e5e7a792d5ac12b28a1faa0a91c8144cd80a61e peer-office/src/principal.ts
79
+ 401f6c470c647496e6dcea19b15897b6a3f8ae8c1ae8074ad92f6cdc7f043ddc peer-office/package/package.json
77
80
  4035067fe7f24445f52c48ac3d0229e5cada9512909ce662f62617f49ec42f3c node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js
78
81
  404ccad83d8180f73cb43a724e1492e1ec1cfe614f365bb0ef9262fa2ad1d538 adapter/born_custody_publication.ts
79
82
  40bdf3ab37f544b9f8ea7e474114f489a77ed3247e0be597b9e83e01688e8c80 node_modules/fast-xml-builder/src/ignoreAttributes.js
80
83
  40bdf3ab37f544b9f8ea7e474114f489a77ed3247e0be597b9e83e01688e8c80 node_modules/fast-xml-parser/src/ignoreAttributes.js
81
84
  42242740dd3c09c2530972c6bc477e6aa2be2f91f6cdf112585eb1f1929721a7 peer-office/src/runtime/subscription_manager.ts
82
85
  437d1f7906925689d0329ee2f729786117903a5f9191a5a47faec67081ab6f6a peer-office/src/runtime/interaction_desk.ts
83
- 4402a942e628634ec9cb86d36e8d08c6a63216152f5b13e207a853173a8986c7 peer-office/src/runtime/credential_recovery_desk.ts
84
86
  44d54aa1500d8b179b56c47003530ade9220c0daec31caeeeb1a59760eca6d88 node_modules/fast-xml-builder/src/fxb.js
85
- 45e0c35b4e8b0c1f606ca98a827d5ba041716ef346c5ba77a5c3303a5399b7ff adapter/proto/nomos/runtime/v2/observability_desk_pb.js
86
87
  463a7041ce45ddd801fc0e0981bb11658b76bb44caad19d2971d73d7700d739b node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js
87
88
  46ce19f00a64198852937f4a982c59a5d237aeab590255873e131f2f0468e98e peer-office/src/runtime/workspace_opening.ts
88
- 46df6f8f4bd0288fed37e8393805df8542556ae7ad663dcef492406000963a63 peer-office/package/package.json
89
89
  475e62094c73367833cec6253c5834a887cae9bcfa43a691a9fe3b7495c19106 node_modules/@bufbuild/protobuf/dist/esm/unknown-enum.js
90
90
  48b8a92448c21da157755c24058a1522d62389815254bd43858e27fc200cc793 peer-office/src/runtime/retention_observer.ts
91
91
  497ee51559f8769c47defb7679dd516b5736c22c433bc857a19e8ccd9593c842 node_modules/is-unsafe/src/contexts/xml.js
@@ -100,8 +100,6 @@
100
100
  511c208c41516891173332c5348ee1d846c886919ace3e9deedeafc1225d6e95 peer-office/src/runtime/kernel_call_scope.ts
101
101
  513a0ca639e4d5cbb6ecce90f9668ab63f5e8ce4df2468b1ad439112b903ef0a platform-shells/node/local-development/kernel_work_recovery.ts
102
102
  519afa7759c5cce91b66cd6b1444014ead77df1f691d0eee356b14206d32d59e peer-office/src/runtime/workspace_call_binding.ts
103
- 5295c7fdcb8d70cadc057dcd7b1efda4535dfae93f1a601b304245fdf8adb5ab peer-office/src/peer_office.ts
104
- 5521fba42530e15bdba2f5a67e7e3c03d0e753c6d70c8834071a6b8832fda007 peer-office/src/runtime/correspondence_desk.ts
105
103
  56e2ac380c2d9be43647d88928727c17df70a3e734834a5be62c8bcb18616738 adapter/proto/nomos/runtime/v2/custody_desk_pb.js
106
104
  57677b7b20768a3bd6eb50fdff229852be7f9978e5988924d2c935ba934366d4 adapter/proto/nomos/discovery/v1/workspace_placement_pb.js
107
105
  587bee5d27b6dbc99d24f472ea93028659610c3496be7d667e72483483c3f3ba node_modules/fast-xml-parser/src/fxp.js
@@ -145,6 +143,7 @@
145
143
  7ec79572a67e1764cd0e93fe2c49d696cd179836293f62e5f50c54e01d6af242 peer-office/src/runtime/provider_origins.ts
146
144
  812a2077e073564d6470b8fda8ac0d20ecaaf75ddb1594d55d28acc2da8a1a71 node_modules/@nodable/entities/src/EntityEncoder.js
147
145
  81539d21eb82b21f6bab3b84d0b7296cb240532e0314c303d06799a1f5fe4e81 adapter/proto/nomos/runtime/v2/residency_desk_pb.js
146
+ 8265b7063f35842f61f48c693eb9c740f07949284fb589380b6795dd88dd5ff1 peer-office/src/runtime/replica_follow_controller.ts
148
147
  829eadd8a1a441d25be0cb93b00e16a0d0c20fd294db95d8f2ed87e6954b7182 node_modules/base64-js/index.js
149
148
  836d6535b507906f82129a7cae5b1cbd42efaef969f18b13675b39ba7cb5ebcb peer-office/src/runtime/birth_custody_desk.ts
150
149
  83f6bd206b77bfab38d03069a14f1d0c9e5d998b65716642fab5cf8b4d4f75c5 node_modules/@bufbuild/protobuf/dist/esm/merge.js
@@ -161,6 +160,7 @@
161
160
  8b9453609e831ac3dfe38ab70c329ece1355564a88afea0ad2217964a18931ce platform-shells/node/local-development/filesystem_git_custody.ts
162
161
  8c3a01d5ef78535de41c19a8385211c57f31bbbfc4dc0497d452a0f16f382089 platform-shells/browser/peer.ts
163
162
  8ce60aff8226986c6ec652887c97a9515a2f10dd046596d76797cbdd0bb46e1d peer-office/src/runtime/remote_runtime_paper.ts
163
+ 8e033b086d23caeba4a8b2e69284b6448787884bb0978eddf67729569d268367 peer-office/src/runtime/credential_recovery_desk.ts
164
164
  8e73c652d2c41232e1a3217524dcdbbe7f26834d59cfe80e4432ec59a801dc42 peer-office/src/runtime/authentication_readiness_desk.ts
165
165
  9109542ce7615df736d0b89b9562a0f8e989099aff65de707217d6a170591812 peer-office/src/runtime/read_maintenance_desk.ts
166
166
  92884553e5d2d46ea273441deb32dc07187dc8ded3524356fa68536d1f2fc435 node_modules/@bufbuild/protobuf/dist/esm/descriptors.js
@@ -170,6 +170,7 @@
170
170
  94a3cef0f355a9a177661748d24faae32206a5cc382c8601a34dcf005340107b node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js
171
171
  95ad7c933403a0c8f7fd3e2df6c4df3008c29911d3d5db063a90460a14144da2 peer-office/src/runtime/records_desk.ts
172
172
  95dbcb2580ed30cb11222c773163c6a906a7e363c5ec4263bd39c1f3a7a16cc2 node_modules/@bufbuild/protobuf/dist/esm/from-json.js
173
+ 9633e84964edf9d8e2f719766c002cabe341e5e805e729ae7ea8fa9ec4c95410 peer-office/src/runtime/correspondence_desk.ts
173
174
  96cb2eb563ccb18dc23fd9f8fb0f65193a1b90f39758a561eed747368ead00b3 node_modules/@bufbuild/protobuf/dist/esm/wkt/index.js
174
175
  96ec5d127a4e8cd77bdc678422f0d57c8ff9e37bcec999983da71a7b72ce9a0e node_modules/@nodable/entities/src/entities.js
175
176
  98f5abf9a7fb522aab513ef3831dd9c5837cebcb38a960cb546ffd084926d746 node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.js
@@ -185,11 +186,12 @@
185
186
  a0eca2694871be026546039e99a71291822d01ba81943d44e69a14b2d766fd1a peer-office/src/runtime/custody_desk.ts
186
187
  a0fcc6110f1154fd197a8ce056e2008dbc7d1750f8dd3ba77c3910af928ed3a1 node_modules/uri-js/dist/es5/uri.all.js
187
188
  a33120feed1faf765328722cee117f63e2147cb87052120fdacc9bd1086e67ab peer-office/src/runtime/receiving_group_framework_wire.generated.ts
189
+ a50ecbaddcb56ff4895d6b0a2eed91f4e9d239c5eea08d8b5d1610a3ac2592f1 adapter/proto/nomos/runtime/v2/observability_desk_pb.js
188
190
  a51ad595569ec83af14644004083aad7f5086703dd46d609e8b006e36bac0f55 peer-office/src/runtime/read_response_desk.ts
189
191
  a5540af900952b2ea7fde1fa967d624d427bcec5f3d1d89f3e78453a8624c650 peer-office/src/runtime/identity_witness_cache.ts
190
- a56269a4903af574cbc4bbd060d45b236bf95c71934df6dba16a50e7b776e6ed peer-office/src/runtime/receiving_group_desk.ts
191
192
  a56cf2bf8174e0adf94970d70e003afcfc3923a53d0cf973f92d374cfe684544 node_modules/@nodable/entities/src/EntityDecoder.js
192
193
  a6250aa83ce7f238614fb7421f31e541c63c415a295e3764687693464918f3c4 node_modules/path-expression-matcher/src/ExpressionSet.js
194
+ a79a133a4f4ae9559b127aca26b20b0b40af3b6a2cc17d75bedbd413d78276af peer-office/src/runtime/receiving_group_desk.ts
193
195
  a91848ee180529e2a60c05dfb9584cad19cd4e1c6f391fdb76a938bcae4c0328 node_modules/@bjorn3/browser_wasi_shim/dist/debug.js
194
196
  a9a2aefe743f0243ae1adb3acdd3db6cdb671b744b5f83235cc4e0be905f1a5b peer-office/package/src/typescript_application_desk.public.d.ts
195
197
  aa531ecbd052fa45ffdd32cc7fb976a82fb657913c58a2628b2d57a4c66afdc4 adapter/proto/nomos/runtime/v2/correspondence_desk_pb.js
@@ -197,7 +199,6 @@ aa6349944f16d71986273ecfc8e552bfece3d61d5641e526c0ceabf3f154fdaf peer-office/sr
197
199
  ab43714f566a6ccd988cc3a30810d857552dbd14d0f060934907fb4bba1000f0 peer-office/package/src/admission_decision.ts
198
200
  ab80eeeafd4d89a5daaf5d2e00fb471cc6b53fa90776750ca3ad82df482d7c3f peer-office/src/runtime/peer_lifecycle.ts
199
201
  ad3de46df125304b2a61c2fa5537b0e519635997d99686a76119b38cf260963f adapter/proto/nomos/runtime/v2/identity_desk_pb.js
200
- aeb94bc5762080dca498fcbdfa5c347525dceb1f3748db82106b479c5d23d931 peer-office/src/runtime/workspace_sync.ts
201
202
  afde3ddb29cc6ee2c48b30043feca4ea14b5690035aa134b08b4df83558faa7c platform-shells/shared/system_observation_clock.ts
202
203
  b09ee99807e1edeb746b4a4a1e41519edaff1fed9f71a170bc15e8835af93e25 node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js
203
204
  b178d69931fdb285d0cd3bae0343a0fd0c80eed27e90d07992153927f9bcc8c3 peer-office/src/runtime/frame_runner.ts
@@ -209,6 +210,7 @@ b6d7539356e92bfa257edd790e8d5d697167205b7154106e8758455cc3483e82 runtime/osgi_r
209
210
  b724e831adc854badc34efa38d71f4cd755a59342a420062c31fb06ddf7f0a2b peer-office/src/runtime/workspace_sync_dependencies.ts
210
211
  b82bb05bb957bb59990dda51bb60ed8b9f656cc090312295ea0958e4cd52bdb7 peer-office/src/runtime/device_recovery_journal.ts
211
212
  ba7223ebf0eea2f078ba83f0128830f7cd07224c57d7e61251541c1c17e83009 peer-office/src/runtime/workspace_effect_delivery.ts
213
+ bb8e81020a9cbf3f8562c196fa5609ef5dec911e0981920c7d05de67769c79d4 peer-office/src/runtime/credential_failure.ts
212
214
  bcc5325758b3b940384c7bf2a7132874421989c2561a59dc49c4ef0b88c352dc node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js
213
215
  bd1c0b20cc774f08636c4b8469cc9617721e77b4cbb3dc64b30e00410a3b041d adapter/proto/nomos/runtime/v2/model_adoption_desk_pb.js
214
216
  bd675346437237807b4973fd47897e57fa1d556b0d33d987d5c12764c2e7d8e4 node_modules/fast-xml-parser/src/xmlparser/xmlNode.js
@@ -257,7 +259,6 @@ dd9f3f24fb154cfbfbde94e8f2647647c80c8ca050b98e981a407e760a4b9c1e node_modules/@
257
259
  deaa25227d669aa3fbe99174275588dcc175de648ae6623fddf11d6ae69d7f67 platform-shells/node/local-development/peer_process.ts
258
260
  e20a132033f105a29db1cfdb3d85bbadbb7206b9a7e3336bcb030a63d66b4ab2 node_modules/is-unsafe/src/contexts/nosql.js
259
261
  e2133d7e0f0ce5491a3e9bd560e9e47db2243a6a9f762be89c82e027d99d278e peer-office/src/runtime/credential_sessions.ts
260
- e24433e22af52db25858865dfff3c6ed1e6932f3257ae242a795acbedda70303 peer-office/src/runtime/replica_follow_controller.ts
261
262
  e2d341fc536c47a45d2e45fc1df232094b4afe67281b92eae91ed9b7698c32ff platform-shells/browser/entry.ts
262
263
  e34016b82b6f6e4c4a1cc2dd44ccd14a348e8156a1f6c5aeeb2c7fc36a15b8f9 adapter/proto/nomos/kernel/v1/kernel_pb.js
263
264
  e34016b82b6f6e4c4a1cc2dd44ccd14a348e8156a1f6c5aeeb2c7fc36a15b8f9 peer-office/package/src/protocol/nomos/kernel/v1/kernel_pb.js
@@ -5957,7 +5957,7 @@ var NomosRuntimeComponent = (() => {
5957
5957
  var CustodyBreakPolicy = /* @__PURE__ */ tsEnum(CustodyBreakPolicySchema);
5958
5958
 
5959
5959
  // ../../adapter/proto/nomos/runtime/v2/observability_desk_pb.js
5960
- var file_nomos_runtime_v2_observability_desk = /* @__PURE__ */ fileDesc("Cilub21vcy9ydW50aW1lL3YyL29ic2VydmFiaWxpdHlfZGVzay5wcm90bxIQbm9tb3MucnVudGltZS52MiJCCgxUcmFjZUNvbnRleHQSEAoIdHJhY2VfaWQYASABKAwSDwoHc3Bhbl9pZBgCIAEoDBIPCgdzYW1wbGVkGAMgASgIIp0CCg5SdW50aW1lRmFpbHVyZRIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEQoJY29tcG9uZW50GAMgASgJEhYKCXdvcmtzcGFjZRgEIAEoCUgAiAEBEhMKBmRvbWFpbhgFIAEoCUgBiAEBEhYKCWRpcmVjdGl2ZRgGIAEoCUgCiAEBEjkKCmF0dHJpYnV0ZXMYByADKAsyJS5ub21vcy5ydW50aW1lLnYyLkRpYWdub3N0aWNBdHRyaWJ1dGUSMgoEa2luZBgIIAEoDjIkLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVLaW5kQgwKCl93b3Jrc3BhY2VCCQoHX2RvbWFpbkIMCgpfZGlyZWN0aXZlIr4BChJSdW50aW1lVW5hdmFpbGFibGUSOgoGcmVhc29uGAEgASgOMioubm9tb3MucnVudGltZS52Mi5SdW50aW1lVW5hdmFpbGFibGVSZWFzb24SEQoJd29ya3NwYWNlGAIgASgJEhEKCXJldHJ5YWJsZRgDIAEoCBIfChJyZXRyeV9hZnRlcl9taWxsaXMYBCABKA1IAIgBARIOCgZkZXRhaWwYBSABKAlCFQoTX3JldHJ5X2FmdGVyX21pbGxpcyJ+Cg5SdW50aW1lUmVmdXNhbBI2CgZyZWFzb24YASABKA4yJi5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVSZWZ1c2FsUmVhc29uEhEKCXdvcmtzcGFjZRgCIAEoCRIRCglyZXRyeWFibGUYAyABKAgSDgoGZGV0YWlsGAQgASgJIqUBChNEaWFnbm9zdGljQXR0cmlidXRlEgwKBG5hbWUYASABKAkSFgoMc3RyaW5nX3ZhbHVlGAIgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgDIAEoEkgAEhYKDGRvdWJsZV92YWx1ZRgEIAEoAUgAEhcKDWJvb2xlYW5fdmFsdWUYBSABKAhIABIVCgtieXRlc192YWx1ZRgGIAEoDEgAQgcKBXZhbHVlIuMKCgxSdW50aW1lRXZlbnQSEAoIc2VxdWVuY2UYASABKAQSFAoHc2Vzc2lvbhgCIAEoCUgBiAEBEi8KBXJlYWR5GAogASgLMh4ubm9tb3MucnVudGltZS52Mi5SdW50aW1lUmVhZHlIABI3Cg13YXRjaF9jaGFuZ2VkGAsgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaENoYW5nZWRIABI5Cg5zeW5jX2NvbXBsZXRlZBgMIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuU3luY0NvbXBsZXRlZEgAEjUKDGxpbmtfY2hhbmdlZBgNIAEoCzIdLm5vbW9zLnJ1bnRpbWUudjIuTGlua0NoYW5nZWRIABI5Cg5zaWduYWxfY2hhbmdlZBgOIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuU2lnbmFsQ2hhbmdlZEgAEjsKD2N1c3RvZHlfY2hhbmdlZBgPIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUNoYW5nZWRIABJCChNsb2NhbF93b3JrX3JlamVjdGVkGBAgASgLMiMubm9tb3MucnVudGltZS52Mi5Mb2NhbFdvcmtSZWplY3RlZEgAEjMKC2xhd19jaGFuZ2VkGBEgASgLMhwubm9tb3MucnVudGltZS52Mi5MYXdDaGFuZ2VkSAASQwoPa2VybmVsX3Byb2dyZXNzGBIgASgLMigubm9tb3MucnVudGltZS52Mi5LZXJuZWxQcm9ncmVzc09ic2VydmVkSAASLQoEc3BhbhgTIAEoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVNwYW5IABI/ChF0cmFuc2Zlcl9wcm9ncmVzcxgUIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuVHJhbnNmZXJQcm9ncmVzc0gAEkkKFG1haW50ZW5hbmNlX3Byb2dyZXNzGBUgASgLMikubm9tb3MucnVudGltZS52Mi5SZWFkTWFpbnRlbmFuY2VQcm9ncmVzc0gAEjsKDXNvY2tldF9lZmZlY3QYFiABKAsyIi5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRFZmZlY3RIABJUChxjcmVkZW50aWFsX3JlZnJlc2hfcmVxdWVzdGVkGBcgASgLMiwubm9tb3MucnVudGltZS52Mi5DcmVkZW50aWFsUmVmcmVzaFJlcXVlc3RlZEgAElIKG3JlY2VpdmluZ19ncm91cF9jb252ZXJnZW5jZRgYIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuUmVjZWl2aW5nR3JvdXBDb252ZXJnZW5jZUgAEkoKF21vZGVsX2Fkb3B0aW9uX3Byb2dyZXNzGBkgASgLMicubm9tb3MucnVudGltZS52Mi5Nb2RlbEFkb3B0aW9uUHJvZ3Jlc3NIABI7Cg9mb2xsb3dzX3N1bW1hcnkYGiABKAsyIC5ub21vcy5ydW50aW1lLnYyLkZvbGxvd3NTdW1tYXJ5SAASRAoUbG9jYWxfY29weV9wcmVzZXJ2ZWQYGyABKAsyJC5ub21vcy5ydW50aW1lLnYyLlByZXNlcnZlZExvY2FsQ29weUgAEk4KGWZvcmVpZ25fcGxhY2VtZW50X2lnbm9yZWQYHCABKAsyKS5ub21vcy5ydW50aW1lLnYyLkZvcmVpZ25QbGFjZW1lbnRJZ25vcmVkSAASQwoTYmluZGluZ19xdWFyYW50aW5lZBgdIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuUXVhcmFudGluZWRCaW5kaW5nSABCBwoFZXZlbnRCCgoIX3Nlc3Npb24ivAEKDkZvbGxvd3NTdW1tYXJ5EhAKCGZvbGxvd2VkGAEgASgNEg8KB3NldHRsZWQYAiABKA0SDAoEbGl2ZRgDIAEoDRI3Cgp3b3Jrc3BhY2VzGAQgAygLMiMubm9tb3MucnVudGltZS52Mi5Gb2xsb3dPYnNlcnZhdGlvbhIkChdvYnNlcnZlZF9hdF91bml4X21pbGxpcxgFIAEoBEgAiAEBQhoKGF9vYnNlcnZlZF9hdF91bml4X21pbGxpcyLRAgoRRm9sbG93T2JzZXJ2YXRpb24SEQoJd29ya3NwYWNlGAEgASgJEjcKBXBoYXNlGAIgASgOMigubm9tb3MucnVudGltZS52Mi5Gb2xsb3dPYnNlcnZhdGlvblBoYXNlEgwKBGxpdmUYAyABKAgSEwoGZGV0YWlsGAQgASgJSACIAQESIQoUcmV0cnlfYXRfdW5peF9taWxsaXMYBSABKARIAYgBARIfChJkdWVfYXRfdW5peF9taWxsaXMYBiABKARIAogBARIUCgdhdHRlbXB0GAcgASgNSAOIAQESGgoNYWN0aXZlX2VmZmVjdBgIIAEoCUgEiAEBQgkKB19kZXRhaWxCFwoVX3JldHJ5X2F0X3VuaXhfbWlsbGlzQhUKE19kdWVfYXRfdW5peF9taWxsaXNCCgoIX2F0dGVtcHRCEAoOX2FjdGl2ZV9lZmZlY3QiVgoaQ3JlZGVudGlhbFJlZnJlc2hSZXF1ZXN0ZWQSOAoHcGVuZGluZxgBIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuQ29ycmVzcG9uZGVuY2VQZW5kaW5nIj4KDFJ1bnRpbWVSZWFkeRIXCg9ydW50aW1lX3ZlcnNpb24YASABKAkSFQoNa2VybmVsX3NoYTI1NhgCIAEoDCL8AQoMV2F0Y2hDaGFuZ2VkEhcKD3N1YnNjcmlwdGlvbl9pZBgBIAEoCRITCgtyZXN1bHRfdXNkYRgCIAEoDBI2CgdmYWlsdXJlGAMgASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lRmFpbHVyZUgAiAEBEjUKEmFwcGxpY2F0aW9uX3Jlc3VsdBgEIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIAYgBARIaCg1pbnRlZ2VyX3ZhbHVlGAUgASgDSAKIAQFCCgoIX2ZhaWx1cmVCFQoTX2FwcGxpY2F0aW9uX3Jlc3VsdEIQCg5faW50ZWdlcl92YWx1ZSKcAQoNU3luY0NvbXBsZXRlZBIOCgZyZWFzb24YASABKAkSNwoGcmVzdWx0GAIgASgLMicubm9tb3MucnVudGltZS52Mi5TeW5jV29ya3NwYWNlUmVzcG9uc2USNgoHZmFpbHVyZRgDIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVIAIgBAUIKCghfZmFpbHVyZSI7CgtMaW5rQ2hhbmdlZBIsCgZzdGF0dXMYASABKA4yHC5ub21vcy5ydW50aW1lLnYyLkxpbmtTdGF0dXMiOAoNU2lnbmFsQ2hhbmdlZBIOCgZkb21haW4YASABKAkSFwoPcHJvamVjdGlvbl91c2RhGAIgASgMIlAKCkxhd0NoYW5nZWQSDgoGZG9tYWluGAEgASgJEhYKDnBhY2thZ2Vfc2hhMjU2GAIgASgJEhoKEmNvbXBhdGliaWxpdHlfdXNkYRgDIAEoDCLdAQoLUnVudGltZVNwYW4SEAoIdHJhY2VfaWQYASABKAwSDwoHc3Bhbl9pZBgCIAEoDBIbCg5wYXJlbnRfc3Bhbl9pZBgDIAEoDEgAiAEBEgwKBG5hbWUYBCABKAkSGgoSc3RhcnRlZF91bml4X25hbm9zGAUgASgEEhYKDmR1cmF0aW9uX25hbm9zGAYgASgEEjkKCmF0dHJpYnV0ZXMYByADKAsyJS5ub21vcy5ydW50aW1lLnYyLkRpYWdub3N0aWNBdHRyaWJ1dGVCEQoPX3BhcmVudF9zcGFuX2lkIuoBChZLZXJuZWxQcm9ncmVzc09ic2VydmVkEjkKCHNuYXBzaG90GAEgASgLMicubm9tb3Mua2VybmVsLnYxLktlcm5lbFByb2dyZXNzU25hcHNob3QSJAocaG9zdF9vYnNlcnZlZF9lbGFwc2VkX21pY3JvcxgCIAEoBBIqCiJob3N0X29ic2VydmVkX3BoYXNlX2VsYXBzZWRfbWljcm9zGAMgASgEEh4KFnByb2Nlc3NfcmVzaWRlbnRfYnl0ZXMYBCABKAQSIwobcHJvY2Vzc19wZWFrX3Jlc2lkZW50X2J5dGVzGAUgASgEIoIBChBUcmFuc2ZlclByb2dyZXNzEhYKDnJlY2VpdmVkX2J5dGVzGAEgASgEEhgKC3RvdGFsX2J5dGVzGAIgASgESACIAQESLAoEa2luZBgDIAEoDjIeLm5vbW9zLnJ1bnRpbWUudjIuVHJhbnNmZXJLaW5kQg4KDF90b3RhbF9ieXRlcyrKAQoSUnVudGltZUZhaWx1cmVLaW5kEiQKIFJVTlRJTUVfRkFJTFVSRV9LSU5EX1VOU1BFQ0lGSUVEEAASIQodUlVOVElNRV9GQUlMVVJFX0tJTkRfSU5URVJOQUwQARIhCh1SVU5USU1FX0ZBSUxVUkVfS0lORF9QUk9UT0NPTBACEiIKHlJVTlRJTUVfRkFJTFVSRV9LSU5EX0lOVEVHUklUWRADEiQKIFJVTlRJTUVfRkFJTFVSRV9LSU5EX1VOU1VQUE9SVEVEEAQqpwMKGFJ1bnRpbWVVbmF2YWlsYWJsZVJlYXNvbhIqCiZSVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9VTlNQRUNJRklFRBAAEjIKLlJVTlRJTUVfVU5BVkFJTEFCTEVfUkVBU09OX1JFTU9URV9PTkxZX09GRkxJTkUQARIxCi1SVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9SRU1PVEVfVU5SRUFDSEFCTEUQAhItCilSVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9SRU1PVEVfVElNRU9VVBADEjYKMlJVTlRJTUVfVU5BVkFJTEFCTEVfUkVBU09OX0xPQ0FMX1JFUExJQ0FfTk9UX1JFQURZEAQSNQoxUlVOVElNRV9VTkFWQUlMQUJMRV9SRUFTT05fQ1JFREVOVElBTF9VTkFWQUlMQUJMRRAFEjAKLFJVTlRJTUVfVU5BVkFJTEFCTEVfUkVBU09OX1dPUktTUEFDRV9PUEVOSU5HEAYSKAokUlVOVElNRV9VTkFWQUlMQUJMRV9SRUFTT05fUEVFUl9CVVNZEAcq8AEKFFJ1bnRpbWVSZWZ1c2FsUmVhc29uEiYKIlJVTlRJTUVfUkVGVVNBTF9SRUFTT05fVU5TUEVDSUZJRUQQABItCilSVU5USU1FX1JFRlVTQUxfUkVBU09OX0lOVkFMSURfQ1JFREVOVElBTBABEigKJFJVTlRJTUVfUkVGVVNBTF9SRUFTT05fQUNDRVNTX0RFTklFRBACEisKJ1JVTlRJTUVfUkVGVVNBTF9SRUFTT05fUExBQ0VNRU5UX1BPTElDWRADEioKJlJVTlRJTUVfUkVGVVNBTF9SRUFTT05fU0VTU0lPTl9VTkJPVU5EEAQqlQQKFkZvbGxvd09ic2VydmF0aW9uUGhhc2USKAokRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX1VOU1BFQ0lGSUVEEAASJAogRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX0RFU0lSRUQQARIgChxGT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfRFVFEAISJAogRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX1JVTk5JTkcQAxIkCiBGT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfU0VUVExFRBAEEjAKLEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9BV0FJVElOR19ERVBFTkRFTkNZEAUSJAogRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX09GRkxJTkUQBhIvCitGT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfSU5WQUxJRF9DUkVERU5USUFMEAcSJAogRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX0JBQ0tPRkYQCBIsCihGT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfUkVCT1JOX1JFTU9URUxZEAkSLAooRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX1JFUExBQ0lOR19MT0NBTBAKEjIKLkZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9MT0NBTF9DT1BZX1VOUkVBREFCTEUQCypXCgpMaW5rU3RhdHVzEhsKF0xJTktfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFAoQTElOS19TVEFUVVNfT1BFThABEhYKEkxJTktfU1RBVFVTX0NMT1NFRBACKnYKDFRyYW5zZmVyS2luZBIdChlUUkFOU0ZFUl9LSU5EX1VOU1BFQ0lGSUVEEAASFwoTVFJBTlNGRVJfS0lORF9ERUxUQRABEhYKElRSQU5TRkVSX0tJTkRfRlVMTBACEhYKElRSQU5TRkVSX0tJTkRfUFVTSBADYgZwcm90bzM", [file_google_protobuf_any, file_nomos_kernel_v1_progress, file_nomos_runtime_v2_correspondence_desk, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_placement_desk, file_nomos_runtime_v2_maintenance_desk, file_nomos_runtime_v2_model_adoption_desk, file_nomos_runtime_v2_receiving_group_desk, file_nomos_runtime_v2_recovery_desk]);
5960
+ var file_nomos_runtime_v2_observability_desk = /* @__PURE__ */ fileDesc("Cilub21vcy9ydW50aW1lL3YyL29ic2VydmFiaWxpdHlfZGVzay5wcm90bxIQbm9tb3MucnVudGltZS52MiJCCgxUcmFjZUNvbnRleHQSEAoIdHJhY2VfaWQYASABKAwSDwoHc3Bhbl9pZBgCIAEoDBIPCgdzYW1wbGVkGAMgASgIIp0CCg5SdW50aW1lRmFpbHVyZRIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEQoJY29tcG9uZW50GAMgASgJEhYKCXdvcmtzcGFjZRgEIAEoCUgAiAEBEhMKBmRvbWFpbhgFIAEoCUgBiAEBEhYKCWRpcmVjdGl2ZRgGIAEoCUgCiAEBEjkKCmF0dHJpYnV0ZXMYByADKAsyJS5ub21vcy5ydW50aW1lLnYyLkRpYWdub3N0aWNBdHRyaWJ1dGUSMgoEa2luZBgIIAEoDjIkLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVLaW5kQgwKCl93b3Jrc3BhY2VCCQoHX2RvbWFpbkIMCgpfZGlyZWN0aXZlIr4BChJSdW50aW1lVW5hdmFpbGFibGUSOgoGcmVhc29uGAEgASgOMioubm9tb3MucnVudGltZS52Mi5SdW50aW1lVW5hdmFpbGFibGVSZWFzb24SEQoJd29ya3NwYWNlGAIgASgJEhEKCXJldHJ5YWJsZRgDIAEoCBIfChJyZXRyeV9hZnRlcl9taWxsaXMYBCABKA1IAIgBARIOCgZkZXRhaWwYBSABKAlCFQoTX3JldHJ5X2FmdGVyX21pbGxpcyJ+Cg5SdW50aW1lUmVmdXNhbBI2CgZyZWFzb24YASABKA4yJi5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVSZWZ1c2FsUmVhc29uEhEKCXdvcmtzcGFjZRgCIAEoCRIRCglyZXRyeWFibGUYAyABKAgSDgoGZGV0YWlsGAQgASgJIqUBChNEaWFnbm9zdGljQXR0cmlidXRlEgwKBG5hbWUYASABKAkSFgoMc3RyaW5nX3ZhbHVlGAIgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgDIAEoEkgAEhYKDGRvdWJsZV92YWx1ZRgEIAEoAUgAEhcKDWJvb2xlYW5fdmFsdWUYBSABKAhIABIVCgtieXRlc192YWx1ZRgGIAEoDEgAQgcKBXZhbHVlIqQLCgxSdW50aW1lRXZlbnQSEAoIc2VxdWVuY2UYASABKAQSFAoHc2Vzc2lvbhgCIAEoCUgBiAEBEi8KBXJlYWR5GAogASgLMh4ubm9tb3MucnVudGltZS52Mi5SdW50aW1lUmVhZHlIABI3Cg13YXRjaF9jaGFuZ2VkGAsgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaENoYW5nZWRIABI5Cg5zeW5jX2NvbXBsZXRlZBgMIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuU3luY0NvbXBsZXRlZEgAEjUKDGxpbmtfY2hhbmdlZBgNIAEoCzIdLm5vbW9zLnJ1bnRpbWUudjIuTGlua0NoYW5nZWRIABI5Cg5zaWduYWxfY2hhbmdlZBgOIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuU2lnbmFsQ2hhbmdlZEgAEjsKD2N1c3RvZHlfY2hhbmdlZBgPIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUNoYW5nZWRIABJCChNsb2NhbF93b3JrX3JlamVjdGVkGBAgASgLMiMubm9tb3MucnVudGltZS52Mi5Mb2NhbFdvcmtSZWplY3RlZEgAEjMKC2xhd19jaGFuZ2VkGBEgASgLMhwubm9tb3MucnVudGltZS52Mi5MYXdDaGFuZ2VkSAASQwoPa2VybmVsX3Byb2dyZXNzGBIgASgLMigubm9tb3MucnVudGltZS52Mi5LZXJuZWxQcm9ncmVzc09ic2VydmVkSAASLQoEc3BhbhgTIAEoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVNwYW5IABI/ChF0cmFuc2Zlcl9wcm9ncmVzcxgUIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuVHJhbnNmZXJQcm9ncmVzc0gAEkkKFG1haW50ZW5hbmNlX3Byb2dyZXNzGBUgASgLMikubm9tb3MucnVudGltZS52Mi5SZWFkTWFpbnRlbmFuY2VQcm9ncmVzc0gAEjsKDXNvY2tldF9lZmZlY3QYFiABKAsyIi5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRFZmZlY3RIABJUChxjcmVkZW50aWFsX3JlZnJlc2hfcmVxdWVzdGVkGBcgASgLMiwubm9tb3MucnVudGltZS52Mi5DcmVkZW50aWFsUmVmcmVzaFJlcXVlc3RlZEgAElIKG3JlY2VpdmluZ19ncm91cF9jb252ZXJnZW5jZRgYIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuUmVjZWl2aW5nR3JvdXBDb252ZXJnZW5jZUgAEkoKF21vZGVsX2Fkb3B0aW9uX3Byb2dyZXNzGBkgASgLMicubm9tb3MucnVudGltZS52Mi5Nb2RlbEFkb3B0aW9uUHJvZ3Jlc3NIABI7Cg9mb2xsb3dzX3N1bW1hcnkYGiABKAsyIC5ub21vcy5ydW50aW1lLnYyLkZvbGxvd3NTdW1tYXJ5SAASRAoUbG9jYWxfY29weV9wcmVzZXJ2ZWQYGyABKAsyJC5ub21vcy5ydW50aW1lLnYyLlByZXNlcnZlZExvY2FsQ29weUgAEk4KGWZvcmVpZ25fcGxhY2VtZW50X2lnbm9yZWQYHCABKAsyKS5ub21vcy5ydW50aW1lLnYyLkZvcmVpZ25QbGFjZW1lbnRJZ25vcmVkSAASQwoTYmluZGluZ19xdWFyYW50aW5lZBgdIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuUXVhcmFudGluZWRCaW5kaW5nSAASPwoRd3JpdGVfcHJlcGFyYXRpb24YHiABKAsyIi5ub21vcy5ydW50aW1lLnYyLldyaXRlUHJlcGFyYXRpb25IAEIHCgVldmVudEIKCghfc2Vzc2lvbiK8AQoORm9sbG93c1N1bW1hcnkSEAoIZm9sbG93ZWQYASABKA0SDwoHc2V0dGxlZBgCIAEoDRIMCgRsaXZlGAMgASgNEjcKCndvcmtzcGFjZXMYBCADKAsyIy5ub21vcy5ydW50aW1lLnYyLkZvbGxvd09ic2VydmF0aW9uEiQKF29ic2VydmVkX2F0X3VuaXhfbWlsbGlzGAUgASgESACIAQFCGgoYX29ic2VydmVkX2F0X3VuaXhfbWlsbGlzItECChFGb2xsb3dPYnNlcnZhdGlvbhIRCgl3b3Jrc3BhY2UYASABKAkSNwoFcGhhc2UYAiABKA4yKC5ub21vcy5ydW50aW1lLnYyLkZvbGxvd09ic2VydmF0aW9uUGhhc2USDAoEbGl2ZRgDIAEoCBITCgZkZXRhaWwYBCABKAlIAIgBARIhChRyZXRyeV9hdF91bml4X21pbGxpcxgFIAEoBEgBiAEBEh8KEmR1ZV9hdF91bml4X21pbGxpcxgGIAEoBEgCiAEBEhQKB2F0dGVtcHQYByABKA1IA4gBARIaCg1hY3RpdmVfZWZmZWN0GAggASgJSASIAQFCCQoHX2RldGFpbEIXChVfcmV0cnlfYXRfdW5peF9taWxsaXNCFQoTX2R1ZV9hdF91bml4X21pbGxpc0IKCghfYXR0ZW1wdEIQCg5fYWN0aXZlX2VmZmVjdCJWChpDcmVkZW50aWFsUmVmcmVzaFJlcXVlc3RlZBI4CgdwZW5kaW5nGAEgASgLMicubm9tb3MucnVudGltZS52Mi5Db3JyZXNwb25kZW5jZVBlbmRpbmciPgoMUnVudGltZVJlYWR5EhcKD3J1bnRpbWVfdmVyc2lvbhgBIAEoCRIVCg1rZXJuZWxfc2hhMjU2GAIgASgMIvwBCgxXYXRjaENoYW5nZWQSFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJEhMKC3Jlc3VsdF91c2RhGAIgASgMEjYKB2ZhaWx1cmUYAyABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVGYWlsdXJlSACIAQESNQoSYXBwbGljYXRpb25fcmVzdWx0GAQgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgBiAEBEhoKDWludGVnZXJfdmFsdWUYBSABKANIAogBAUIKCghfZmFpbHVyZUIVChNfYXBwbGljYXRpb25fcmVzdWx0QhAKDl9pbnRlZ2VyX3ZhbHVlIpwBCg1TeW5jQ29tcGxldGVkEg4KBnJlYXNvbhgBIAEoCRI3CgZyZXN1bHQYAiABKAsyJy5ub21vcy5ydW50aW1lLnYyLlN5bmNXb3Jrc3BhY2VSZXNwb25zZRI2CgdmYWlsdXJlGAMgASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lRmFpbHVyZUgAiAEBQgoKCF9mYWlsdXJlIjsKC0xpbmtDaGFuZ2VkEiwKBnN0YXR1cxgBIAEoDjIcLm5vbW9zLnJ1bnRpbWUudjIuTGlua1N0YXR1cyI4Cg1TaWduYWxDaGFuZ2VkEg4KBmRvbWFpbhgBIAEoCRIXCg9wcm9qZWN0aW9uX3VzZGEYAiABKAwiUAoKTGF3Q2hhbmdlZBIOCgZkb21haW4YASABKAkSFgoOcGFja2FnZV9zaGEyNTYYAiABKAkSGgoSY29tcGF0aWJpbGl0eV91c2RhGAMgASgMIt0BCgtSdW50aW1lU3BhbhIQCgh0cmFjZV9pZBgBIAEoDBIPCgdzcGFuX2lkGAIgASgMEhsKDnBhcmVudF9zcGFuX2lkGAMgASgMSACIAQESDAoEbmFtZRgEIAEoCRIaChJzdGFydGVkX3VuaXhfbmFub3MYBSABKAQSFgoOZHVyYXRpb25fbmFub3MYBiABKAQSOQoKYXR0cmlidXRlcxgHIAMoCzIlLm5vbW9zLnJ1bnRpbWUudjIuRGlhZ25vc3RpY0F0dHJpYnV0ZUIRCg9fcGFyZW50X3NwYW5faWQi6gEKFktlcm5lbFByb2dyZXNzT2JzZXJ2ZWQSOQoIc25hcHNob3QYASABKAsyJy5ub21vcy5rZXJuZWwudjEuS2VybmVsUHJvZ3Jlc3NTbmFwc2hvdBIkChxob3N0X29ic2VydmVkX2VsYXBzZWRfbWljcm9zGAIgASgEEioKImhvc3Rfb2JzZXJ2ZWRfcGhhc2VfZWxhcHNlZF9taWNyb3MYAyABKAQSHgoWcHJvY2Vzc19yZXNpZGVudF9ieXRlcxgEIAEoBBIjChtwcm9jZXNzX3BlYWtfcmVzaWRlbnRfYnl0ZXMYBSABKAQiggEKEFRyYW5zZmVyUHJvZ3Jlc3MSFgoOcmVjZWl2ZWRfYnl0ZXMYASABKAQSGAoLdG90YWxfYnl0ZXMYAiABKARIAIgBARIsCgRraW5kGAMgASgOMh4ubm9tb3MucnVudGltZS52Mi5UcmFuc2ZlcktpbmRCDgoMX3RvdGFsX2J5dGVzIjkKEFdyaXRlUHJlcGFyYXRpb24SEgoKcmVxdWVzdF9pZBgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkqygEKElJ1bnRpbWVGYWlsdXJlS2luZBIkCiBSVU5USU1FX0ZBSUxVUkVfS0lORF9VTlNQRUNJRklFRBAAEiEKHVJVTlRJTUVfRkFJTFVSRV9LSU5EX0lOVEVSTkFMEAESIQodUlVOVElNRV9GQUlMVVJFX0tJTkRfUFJPVE9DT0wQAhIiCh5SVU5USU1FX0ZBSUxVUkVfS0lORF9JTlRFR1JJVFkQAxIkCiBSVU5USU1FX0ZBSUxVUkVfS0lORF9VTlNVUFBPUlRFRBAEKqcDChhSdW50aW1lVW5hdmFpbGFibGVSZWFzb24SKgomUlVOVElNRV9VTkFWQUlMQUJMRV9SRUFTT05fVU5TUEVDSUZJRUQQABIyCi5SVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9SRU1PVEVfT05MWV9PRkZMSU5FEAESMQotUlVOVElNRV9VTkFWQUlMQUJMRV9SRUFTT05fUkVNT1RFX1VOUkVBQ0hBQkxFEAISLQopUlVOVElNRV9VTkFWQUlMQUJMRV9SRUFTT05fUkVNT1RFX1RJTUVPVVQQAxI2CjJSVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9MT0NBTF9SRVBMSUNBX05PVF9SRUFEWRAEEjUKMVJVTlRJTUVfVU5BVkFJTEFCTEVfUkVBU09OX0NSRURFTlRJQUxfVU5BVkFJTEFCTEUQBRIwCixSVU5USU1FX1VOQVZBSUxBQkxFX1JFQVNPTl9XT1JLU1BBQ0VfT1BFTklORxAGEigKJFJVTlRJTUVfVU5BVkFJTEFCTEVfUkVBU09OX1BFRVJfQlVTWRAHKvABChRSdW50aW1lUmVmdXNhbFJlYXNvbhImCiJSVU5USU1FX1JFRlVTQUxfUkVBU09OX1VOU1BFQ0lGSUVEEAASLQopUlVOVElNRV9SRUZVU0FMX1JFQVNPTl9JTlZBTElEX0NSRURFTlRJQUwQARIoCiRSVU5USU1FX1JFRlVTQUxfUkVBU09OX0FDQ0VTU19ERU5JRUQQAhIrCidSVU5USU1FX1JFRlVTQUxfUkVBU09OX1BMQUNFTUVOVF9QT0xJQ1kQAxIqCiZSVU5USU1FX1JFRlVTQUxfUkVBU09OX1NFU1NJT05fVU5CT1VORBAEKpUEChZGb2xsb3dPYnNlcnZhdGlvblBoYXNlEigKJEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9VTlNQRUNJRklFRBAAEiQKIEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9ERVNJUkVEEAESIAocRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX0RVRRACEiQKIEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9SVU5OSU5HEAMSJAogRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX1NFVFRMRUQQBBIwCixGT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfQVdBSVRJTkdfREVQRU5ERU5DWRAFEiQKIEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9PRkZMSU5FEAYSLworRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX0lOVkFMSURfQ1JFREVOVElBTBAHEiQKIEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9CQUNLT0ZGEAgSLAooRk9MTE9XX09CU0VSVkFUSU9OX1BIQVNFX1JFQk9STl9SRU1PVEVMWRAJEiwKKEZPTExPV19PQlNFUlZBVElPTl9QSEFTRV9SRVBMQUNJTkdfTE9DQUwQChIyCi5GT0xMT1dfT0JTRVJWQVRJT05fUEhBU0VfTE9DQUxfQ09QWV9VTlJFQURBQkxFEAsqVwoKTGlua1N0YXR1cxIbChdMSU5LX1NUQVRVU19VTlNQRUNJRklFRBAAEhQKEExJTktfU1RBVFVTX09QRU4QARIWChJMSU5LX1NUQVRVU19DTE9TRUQQAip2CgxUcmFuc2ZlcktpbmQSHQoZVFJBTlNGRVJfS0lORF9VTlNQRUNJRklFRBAAEhcKE1RSQU5TRkVSX0tJTkRfREVMVEEQARIWChJUUkFOU0ZFUl9LSU5EX0ZVTEwQAhIWChJUUkFOU0ZFUl9LSU5EX1BVU0gQA2IGcHJvdG8z", [file_google_protobuf_any, file_nomos_kernel_v1_progress, file_nomos_runtime_v2_correspondence_desk, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_placement_desk, file_nomos_runtime_v2_maintenance_desk, file_nomos_runtime_v2_model_adoption_desk, file_nomos_runtime_v2_receiving_group_desk, file_nomos_runtime_v2_recovery_desk]);
5961
5961
  var RuntimeFailureSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 1);
5962
5962
  var RuntimeUnavailableSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 2);
5963
5963
  var RuntimeRefusalSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 3);
@@ -5971,6 +5971,7 @@ var NomosRuntimeComponent = (() => {
5971
5971
  var SyncCompletedSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 11);
5972
5972
  var LinkChangedSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 12);
5973
5973
  var RuntimeSpanSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 15);
5974
+ var WritePreparationSchema = /* @__PURE__ */ messageDesc(file_nomos_runtime_v2_observability_desk, 18);
5974
5975
  var RuntimeFailureKindSchema = /* @__PURE__ */ enumDesc(file_nomos_runtime_v2_observability_desk, 0);
5975
5976
  var RuntimeFailureKind = /* @__PURE__ */ tsEnum(RuntimeFailureKindSchema);
5976
5977
  var RuntimeUnavailableReasonSchema = /* @__PURE__ */ enumDesc(file_nomos_runtime_v2_observability_desk, 1);
@@ -8777,6 +8778,17 @@ var NomosRuntimeComponent = (() => {
8777
8778
  }
8778
8779
  };
8779
8780
 
8781
+ // ../src/runtime/credential_failure.ts
8782
+ function recoverableCredential(failure) {
8783
+ return failure.code === "nomos.auth.token_expired" || failure.code === "nomos.auth.token_missing";
8784
+ }
8785
+ function syncNeedsCredentialRefresh(result, failure) {
8786
+ if (failure !== void 0 && recoverableCredential(failure)) return true;
8787
+ const offer = result?.offerReceipt?.outcome;
8788
+ const pushNeedsRefresh = offer?.case === "failure" ? recoverableCredential(offer.value) : result?.pushError?.status === 401;
8789
+ return pushNeedsRefresh || result?.discoveryError?.status === 401;
8790
+ }
8791
+
8780
8792
  // ../src/runtime/credential_renewal.ts
8781
8793
  var RENEW_BEFORE_MILLIS = 5 * 6e4;
8782
8794
  var BASE64URL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
@@ -9040,7 +9052,7 @@ var NomosRuntimeComponent = (() => {
9040
9052
  return false;
9041
9053
  }
9042
9054
  observeSync(session, event) {
9043
- if (!syncNeedsCredentialRefresh(event) || this.#tokenless(session)) return;
9055
+ if (!syncNeedsCredentialRefresh(event.result, event.failure) || this.#tokenless(session)) return;
9044
9056
  this.#prune();
9045
9057
  const capability = this.#ports.capabilityFor(session);
9046
9058
  const existing = this.#active.get(capability);
@@ -9242,15 +9254,6 @@ var NomosRuntimeComponent = (() => {
9242
9254
  this.#completed.clear();
9243
9255
  }
9244
9256
  };
9245
- function recoverableCredential(failure) {
9246
- return failure.code === "nomos.auth.token_expired" || failure.code === "nomos.auth.token_missing";
9247
- }
9248
- function syncNeedsCredentialRefresh(event) {
9249
- const failures = [event.result?.pushError, event.result?.discoveryError];
9250
- if (failures.some((failure) => failure?.status === 401 || failure?.status === 403)) return true;
9251
- const text = `${event.failure?.message ?? ""} ${failures.map((failure) => failure?.message ?? "").join(" ")}`.toLowerCase();
9252
- return text.includes("unauthenticated") || text.includes("token expired") || text.includes("invalid token");
9253
- }
9254
9257
 
9255
9258
  // ../src/runtime/device_identity_desk.ts
9256
9259
  var DEVICE_IDENTITY_UNAVAILABLE = "nomos.runtime.device_identity_unavailable";
@@ -10104,6 +10107,7 @@ var NomosRuntimeComponent = (() => {
10104
10107
  #accounts = /* @__PURE__ */ new Map();
10105
10108
  /** D22: device key hash → the workspaces the console reported this key enrolled in (this process's memory, not truth). */
10106
10109
  #consoleEnrolments = /* @__PURE__ */ new Map();
10110
+ #preparingWrites = /* @__PURE__ */ new Map();
10107
10111
  #sequence = 0;
10108
10112
  #internalRequestId = 30000000000n;
10109
10113
  constructor(ports) {
@@ -10143,16 +10147,124 @@ var NomosRuntimeComponent = (() => {
10143
10147
  if (head === account.observedHead) return;
10144
10148
  this.#tails.set(workspace, { ...account, inFlight: false, attempts: 0, notBefore: 0n });
10145
10149
  }
10146
- /** A refused nominal Home action can wait for framework recovery and retry once.
10147
- * Sealed/pending history is never re-signed, and no child is mistaken for Home. */
10150
+ /** Only a proven non-admission can enter recovery. Console-enrolled children
10151
+ * share the owning application's route, selected by credential capability and
10152
+ * principal, never by workspace-name guessing or an unverified payload. */
10148
10153
  recoverOffer(request, response) {
10149
- if (!this.#ports.call || request.command.case !== "kernelCall" || request.command.value.credentialUse !== CredentialUse.SESSION || request.command.value.request?.operation.case !== "offer" || request.command.value.request.operation.value.intent.case !== "call" || response.outcome.case !== "failure" || !["nomos.authz.signer_enrollment_missing", "nomos.authz.device_key_revoked"].includes(response.outcome.value.code)) return;
10154
+ if (!this.#ports.call || request.command.case !== "kernelCall" || request.command.value.credentialUse !== CredentialUse.SESSION || request.command.value.request?.operation.case !== "offer" || request.command.value.request.operation.value.intent.case !== "call") return;
10155
+ const missing = response.outcome.case === "failure" ? response.outcome.value.code === "nomos.authz.signer_enrollment_missing" : response.outcome.case === "offer" && response.outcome.value.outcome.case === "refused" && response.outcome.value.outcome.value.refusal?.code === KernelRefusalCode.FORGED_PRINCIPAL && response.outcome.value.outcome.value.refusal.details?.fields.actor?.kind.case === "text" && response.outcome.value.outcome.value.refusal.details.fields.actor.kind.value === "unenrolled-signer-key";
10156
+ const revoked = response.outcome.case === "failure" && response.outcome.value.code === "nomos.authz.device_key_revoked";
10157
+ if (!missing && !revoked) return;
10150
10158
  const binding = this.#ports.binding(request.command.value.session);
10151
- const account = binding ? this.#accounts.get(binding.workspace) : void 0;
10152
- if (!account) return;
10159
+ if (!binding) return;
10160
+ const enrolled = [...this.#accounts.values()].find((account2) => {
10161
+ const owner = this.#ports.binding(account2.session);
10162
+ return account2.enrolment && owner?.credentialCapability === binding.credentialCapability && owner.principal === binding.principal;
10163
+ });
10153
10164
  const copy3 = fromBinary(RuntimeRequestSchema, toBinary(RuntimeRequestSchema, request));
10165
+ if (enrolled?.enrolment) {
10166
+ if (revoked) return this.#writeRefused(binding.workspace, "This device's access has been revoked.");
10167
+ return this.#begin(request, `enrolled-write-${++this.#sequence}`, (workId2) => this.#prepareEnrolledWrite(copy3, binding, enrolled.application, enrolled.enrolment, workId2));
10168
+ }
10169
+ const account = this.#accounts.get(binding.workspace);
10170
+ if (!account) return;
10154
10171
  return this.#begin(request, `receiving-group-authoring-${++this.#sequence}`, (workId2) => this.#recoverOffer(copy3, response, account, workId2));
10155
10172
  }
10173
+ #writeRefused(workspace, detail, reason = RuntimeRefusalReason.ACCESS_DENIED) {
10174
+ return { case: "refused", value: create(RuntimeRefusalSchema, {
10175
+ reason,
10176
+ workspace,
10177
+ retryable: false,
10178
+ detail
10179
+ }) };
10180
+ }
10181
+ #writeWaiting(workspace, detail) {
10182
+ return { case: "unavailable", value: create(RuntimeUnavailableSchema, {
10183
+ reason: RuntimeUnavailableReason.CREDENTIAL_UNAVAILABLE,
10184
+ workspace,
10185
+ retryable: true,
10186
+ retryAfterMillis: 1e3,
10187
+ detail
10188
+ }) };
10189
+ }
10190
+ *#prepareEnrolledWrite(request, binding, application, route, workId2) {
10191
+ if (request.command.case !== "kernelCall") throw new Error("write preparation lost its call");
10192
+ const command = request.command.value;
10193
+ const principal = binding.principal;
10194
+ const unavailable = () => this.#writeWaiting(
10195
+ binding.workspace,
10196
+ "This device is still being prepared to save changes. Your change has not been saved. Try again when connected."
10197
+ );
10198
+ this.#ports.emit(binding.session, { case: "writePreparation", value: create(WritePreparationSchema, {
10199
+ requestId: command.request.requestId,
10200
+ workspace: binding.workspace
10201
+ }) });
10202
+ const key = JSON.stringify([binding.credentialCapability, principal, binding.workspace]);
10203
+ const shared = this.#preparingWrites.get(key);
10204
+ const deadline = this.#ports.clock.monotonicNanoseconds() + 30000000000n;
10205
+ let wake = 0;
10206
+ if (shared) {
10207
+ while (!shared.settled) {
10208
+ if (this.#ports.clock.monotonicNanoseconds() >= deadline) return unavailable();
10209
+ const receipt = yield { case: "wake", value: create(PeerWakeEffectSchema, {
10210
+ effectId: `${workId2}:join-${++wake}`,
10211
+ delayMillis: 250
10212
+ }) };
10213
+ if (receipt.outcome.case !== "woken") return unavailable();
10214
+ }
10215
+ if (shared.result) return shared.result;
10216
+ } else {
10217
+ const preparation = { settled: false };
10218
+ this.#preparingWrites.set(key, preparation);
10219
+ try {
10220
+ const secret = this.#ports.authorSecretIfPresent(binding.session);
10221
+ if (!secret) return preparation.result = this.#writeRefused(binding.workspace, "Sign in again to set up this device.", RuntimeRefusalReason.INVALID_CREDENTIAL);
10222
+ const keyHash = sha256Hex(this.#ports.deriveSigningPublicKey(secret));
10223
+ let posture = this.#ports.posture(request, binding.session, principal, secret, false);
10224
+ if (posture.deviceSignerStatus === DeviceSignerStatus.REVOKED) {
10225
+ return preparation.result = this.#writeRefused(binding.workspace, "This device's access has been revoked.");
10226
+ }
10227
+ if (!posture.enrolledDevice || posture.deviceSignerStatus !== DeviceSignerStatus.ACTIVE) {
10228
+ const enrolled = yield* this.#enrolAtConsole(
10229
+ route,
10230
+ binding,
10231
+ `${application}|${principal}`,
10232
+ principal,
10233
+ keyHash,
10234
+ [binding.workspace],
10235
+ `${workId2}:console`
10236
+ );
10237
+ if (enrolled.case === "deferred") return preparation.result = enrolled.credentialRefused ? this.#writeRefused(binding.workspace, "Sign in again to set up this device.", RuntimeRefusalReason.INVALID_CREDENTIAL) : unavailable();
10238
+ if (!(binding.workspace in enrolled.value.heads)) {
10239
+ return preparation.result = this.#writeRefused(binding.workspace, "This device could not obtain access to save changes in this workspace.");
10240
+ }
10241
+ while (true) {
10242
+ posture = this.#ports.posture(request, binding.session, principal, secret, false);
10243
+ if (posture.deviceSignerStatus === DeviceSignerStatus.REVOKED) {
10244
+ return preparation.result = this.#writeRefused(binding.workspace, "This device's access has been revoked.");
10245
+ }
10246
+ if (posture.enrolledDevice && posture.deviceSignerStatus === DeviceSignerStatus.ACTIVE) break;
10247
+ if (this.#ports.clock.monotonicNanoseconds() >= deadline) return preparation.result = unavailable();
10248
+ const receipt = yield { case: "wake", value: create(PeerWakeEffectSchema, {
10249
+ effectId: `${workId2}:observe-${++wake}`,
10250
+ delayMillis: 500
10251
+ }) };
10252
+ if (receipt.outcome.case !== "woken") return preparation.result = unavailable();
10253
+ }
10254
+ }
10255
+ } catch (error) {
10256
+ if (error instanceof ReceivingGroupRefusal) {
10257
+ return preparation.result = this.#writeRefused(binding.workspace, "This device could not obtain access to save changes in this workspace.");
10258
+ }
10259
+ preparation.result = unavailable();
10260
+ throw error;
10261
+ } finally {
10262
+ preparation.settled = true;
10263
+ this.#preparingWrites.delete(key);
10264
+ }
10265
+ }
10266
+ return { case: "retried", request, response: this.#ports.call(request, command) };
10267
+ }
10156
10268
  *#recoverOffer(request, response, account, workId2) {
10157
10269
  const workspace = this.#ports.binding(account.session).workspace;
10158
10270
  const deadline = this.#ports.clock.monotonicNanoseconds() + 60000000000n;
@@ -10220,6 +10332,7 @@ var NomosRuntimeComponent = (() => {
10220
10332
  this.#opening.clear();
10221
10333
  this.#accounts.clear();
10222
10334
  this.#consoleEnrolments.clear();
10335
+ this.#preparingWrites.clear();
10223
10336
  }
10224
10337
  #begin(request, workId2, procedure) {
10225
10338
  const held = {
@@ -14159,12 +14272,12 @@ var NomosRuntimeComponent = (() => {
14159
14272
  this.#desk.transition(result.workspace, { case: ReplicaFollowEventKind.WentOffline, nowUnixMillis });
14160
14273
  return delayUntilDue(this.#desk.get(result.workspace), nowUnixMillis);
14161
14274
  }
14162
- const credentialFailure = [result.pushError, result.discoveryError].find((failure) => failure?.status === 401 || failure?.status === 403);
14163
- if (credentialFailure) {
14275
+ if (syncNeedsCredentialRefresh(result)) {
14276
+ const offer = result.offerReceipt?.outcome;
14164
14277
  const transition = this.#desk.transition(result.workspace, {
14165
14278
  case: ReplicaFollowEventKind.CredentialRejected,
14166
14279
  nowUnixMillis,
14167
- failure: credentialFailure.message || `remote rejected credential with HTTP ${credentialFailure.status}`
14280
+ failure: (offer?.case === "failure" ? offer.value.message : void 0) || result.pushError?.message || result.discoveryError?.message || "remote requires a refreshed credential"
14168
14281
  });
14169
14282
  if (transition.effects.some((effect) => effect.case === ReplicaFollowEffectKind.RefreshCredential)) {
14170
14283
  return 0;
@@ -16224,7 +16337,6 @@ var NomosRuntimeComponent = (() => {
16224
16337
  Done: "done"
16225
16338
  });
16226
16339
  var trackedMain = "refs/remotes/nomos/main";
16227
- var NO_COMMON_BASE = "this replica holds local history with no frontier its upstream ever confirmed; convergence needs a common admitted base \u2014 drop the local copy to refetch it, or re-discover a provider holding this lineage";
16228
16340
  var deferredRemote = "refs/remotes/nomos/deferred";
16229
16341
  var deferredLocal = "refs/nomos/sync-deferred-local";
16230
16342
  var judgedThisLifetime = /* @__PURE__ */ new Map();
@@ -16435,38 +16547,13 @@ var NomosRuntimeComponent = (() => {
16435
16547
  }), { case: "awaiting", requestId });
16436
16548
  }
16437
16549
  /**
16438
- * NO COMMON BASE — a round that cannot converge, and must not pay for history to find out.
16439
- *
16440
- * This replica holds a non-empty ledger but has never recorded a frontier its upstream
16441
- * confirmed (`refs/remotes/nomos/main` is absent). The kernel refuses convergence in that
16442
- * state ("a non-empty live ledger requires a common admitted base"), so every step after the
16443
- * O(1) frontier probe is wasted work — and it is not cheap waste: the fetch negotiates with
16444
- * no `have` (a full-history pack), and the dependency planner decodes EVERY intent from
16445
- * genesis and inspects every change, once per round. That is O(history) per follow round,
16446
- * repeated at every retry, for a round that can only end in a refusal.
16447
- *
16448
- * The one base this round can establish costs nothing and is established before this is
16449
- * asked: an upstream holding exactly this replica's head (the probe's answer) converges it
16450
- * and records the tracking frontier. Anything else needs the local copy to be dropped and
16451
- * refetched (an application decision, which preserves the copy), or a re-discovery that
16452
- * names a provider holding this lineage. Both are reported, at O(1), as this failure.
16453
- */
16454
- /**
16455
- * Establish this round's base when none is tracked, without walking any history it can avoid.
16456
- *
16457
- * The upstream just named its own frontier. If that commit is in THIS replica's lineage, it is
16458
- * a common admitted base by definition — both sides hold it — and adopting it turns the round
16459
- * into an ordinary fast-forward: the offer carries only the suffix above it, the fetch can name
16460
- * it as a truthful `have`, and convergence has the base the kernel requires. One commit walk
16461
- * (no change decoding, no pack, no network) decides it.
16462
- *
16463
- * If it is not in this replica's lineage, no base exists to establish and the round is refused
16464
- * (#noCommonBase) before it leases, fetches or plans anything.
16465
- *
16466
- * A kernel without the commit walk cannot be asked, so it keeps the previous behaviour.
16550
+ * Establish a cheap base when the provider's current tip is in our local chain.
16551
+ * A negative answer means the base is unknown: both sides may have advanced from
16552
+ * an earlier shared commit. Acquire the candidate and let the kernel discover
16553
+ * and judge that history. A tracking bookmark is not an admission prerequisite.
16467
16554
  */
16468
16555
  #establishBase(upstreamHead) {
16469
- if (!this.#noCommonBase() || !this.#kernel.historySummary) return true;
16556
+ if (!this.#missingTrackedBase() || !this.#kernel.historySummary) return true;
16470
16557
  const summary = this.#kernel.historySummary(this.#mount, this.#requestId, upstreamHead, this.#localHead);
16471
16558
  if (!summary.reachedBase) return false;
16472
16559
  this.#previousHead = upstreamHead;
@@ -16481,26 +16568,9 @@ var NomosRuntimeComponent = (() => {
16481
16568
  get establishedBase() {
16482
16569
  return this.#establishedBase;
16483
16570
  }
16484
- #noCommonBase() {
16571
+ #missingTrackedBase() {
16485
16572
  return this.#previousHead === void 0 && this.#localHead !== void 0 && this.#replaceLocalHead === void 0;
16486
16573
  }
16487
- #noCommonBaseResult() {
16488
- return this.#finish(create(SyncWorkspaceResponseSchema, {
16489
- workspace: this.#mount.workspace,
16490
- ...this.#localHead === void 0 ? {} : { currentHead: this.#localHead },
16491
- stillAhead: true,
16492
- ...this.#offerReceipt === void 0 ? {} : { offerReceipt: this.#offerReceipt },
16493
- pushError: create(RuntimeTransportFailureSchema, {
16494
- endpoint: this.#offerEndpoint(),
16495
- status: 409,
16496
- refused: true,
16497
- message: NO_COMMON_BASE
16498
- }),
16499
- timings: create(SyncPhaseTimingsSchema, {
16500
- convergeMillis: elapsedMillis(this.#clock, this.#started)
16501
- })
16502
- }));
16503
- }
16504
16574
  #holdsLocalWork() {
16505
16575
  return this.#command.admit && !!this.#localHead && this.#localHead !== this.#previousHead;
16506
16576
  }
@@ -16652,7 +16722,6 @@ var NomosRuntimeComponent = (() => {
16652
16722
  if (!this.#desiredHead) return this.#transportFailure("resident peer returned no admitted frontier", false);
16653
16723
  this.#candidateDurable = admission.sealedMain === this.#desiredHead;
16654
16724
  if (state.phase === WorkspaceSyncPhase.Probe && this.#desiredHead !== this.#localHead) {
16655
- if (!this.#establishBase(this.#desiredHead)) return this.#noCommonBaseResult();
16656
16725
  if (this.#alreadyJudged(this.#desiredHead)) {
16657
16726
  return this.#finish(create(SyncWorkspaceResponseSchema, {
16658
16727
  workspace: this.#mount.workspace,
@@ -16664,6 +16733,22 @@ var NomosRuntimeComponent = (() => {
16664
16733
  offerReceipt: this.#offerReceipt
16665
16734
  }));
16666
16735
  }
16736
+ if (!this.#establishBase(this.#desiredHead)) {
16737
+ this.#offerAfterConverge = this.#command.admit;
16738
+ this.#rebaseFrom = void 0;
16739
+ return this.#leaseEffect();
16740
+ }
16741
+ if (this.#establishedBase && !this.#candidateDurable && this.#kernel.resolveRef(this.#mount, this.#requestId, trackedMain) === void 0) {
16742
+ return this.#finish(create(SyncWorkspaceResponseSchema, {
16743
+ workspace: this.#mount.workspace,
16744
+ currentHead: this.#localHead,
16745
+ previousHead: this.#previousHead,
16746
+ stillAhead: true,
16747
+ directOfferDeferred: true,
16748
+ reconnectRequired: false,
16749
+ offerReceipt: this.#offerReceipt
16750
+ }));
16751
+ }
16667
16752
  if (this.#probeOnly) {
16668
16753
  this.#needsReconciliation = true;
16669
16754
  return this.#finish(create(SyncWorkspaceResponseSchema, {
@@ -16709,7 +16794,7 @@ var NomosRuntimeComponent = (() => {
16709
16794
  return this.#converge(this.#desiredHead, admission.resultPack.byteLength, 0);
16710
16795
  }
16711
16796
  if (this.#desiredHead === this.#previousHead) return this.#converge(this.#desiredHead, 0, 0);
16712
- if (!this.#establishBase(this.#desiredHead)) return this.#noCommonBaseResult();
16797
+ this.#establishBase(this.#desiredHead);
16713
16798
  if (admission.recoveryRequired !== false) return this.#leaseEffect();
16714
16799
  return this.#transportFailure("resident peer supplied neither the missing delta nor a history gap", false);
16715
16800
  }
@@ -16932,7 +17017,7 @@ var NomosRuntimeComponent = (() => {
16932
17017
  }
16933
17018
  }
16934
17019
  #converge(candidateHead, receivedBytes, prefetchMillis) {
16935
- if (!this.#establishBase(candidateHead)) return this.#noCommonBaseResult();
17020
+ this.#establishBase(candidateHead);
16936
17021
  this.#beforeConverge?.(candidateHead, this.#previousHead);
16937
17022
  const convergeStarted = this.#clock.monotonicNanoseconds();
16938
17023
  let judged;
@@ -19378,13 +19463,21 @@ var NomosRuntimeComponent = (() => {
19378
19463
  }
19379
19464
  #observeSyncResult(requestId, workId2, result) {
19380
19465
  const timings = result.timings;
19466
+ const receipt = result.offerReceipt?.outcome;
19467
+ const admission = receipt?.case === "admission" ? receipt.value : void 0;
19381
19468
  this.#events.instant("peer.follow.sync-result", {
19382
19469
  request: create(RuntimeRequestSchema, { protocolVersion: 2, requestId }),
19383
19470
  workspace: result.workspace
19384
19471
  }, {
19385
19472
  "sync.workId": workId2,
19386
19473
  ...result.currentHead ? { "sync.head": result.currentHead } : {},
19474
+ ...result.previousHead ? { "sync.previousHead": result.previousHead } : {},
19475
+ ...admission?.main ? { "sync.providerHead": admission.main } : {},
19476
+ ...admission?.sealedMain ? { "sync.sealedHead": admission.sealedMain } : {},
19387
19477
  "sync.stillAhead": result.stillAhead,
19478
+ "sync.reconnectRequired": result.reconnectRequired,
19479
+ "sync.refused": result.refused,
19480
+ "sync.deferred": result.deferred,
19388
19481
  "sync.directOfferDeferred": result.directOfferDeferred,
19389
19482
  "sync.offline": result.offline,
19390
19483
  ...timings ? {
@@ -22456,6 +22549,7 @@ var NomosRuntimeComponent = (() => {
22456
22549
  return this.#responses.modelAdoption(request, step);
22457
22550
  }
22458
22551
  #receivingGroupResponse(request, step) {
22552
+ if (step.case === "refused") return this.#response(request, { case: "refused", value: step.value });
22459
22553
  if (step.case === "retried") return this.#birthCustodyResponse(step.request, this.#birthCustody.afterKernelCall(step.request, step.response));
22460
22554
  if (step.case === "pending") return this.#response(request, { case: "correspondencePending", value: step.value });
22461
22555
  if (step.case === "failure") return this.#failure(request, step.code, step.message);