instar 1.3.1339 → 1.3.1341

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.
Files changed (131) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +8 -0
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/server.d.ts.map +1 -1
  5. package/dist/commands/server.js +323 -15
  6. package/dist/commands/server.js.map +1 -1
  7. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  8. package/dist/config/ConfigDefaults.js +15 -0
  9. package/dist/config/ConfigDefaults.js.map +1 -1
  10. package/dist/core/BackupManager.d.ts.map +1 -1
  11. package/dist/core/BackupManager.js +8 -0
  12. package/dist/core/BackupManager.js.map +1 -1
  13. package/dist/core/FileClassifier.d.ts.map +1 -1
  14. package/dist/core/FileClassifier.js +6 -0
  15. package/dist/core/FileClassifier.js.map +1 -1
  16. package/dist/core/MachineIdentity.d.ts.map +1 -1
  17. package/dist/core/MachineIdentity.js +3 -0
  18. package/dist/core/MachineIdentity.js.map +1 -1
  19. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  20. package/dist/core/PostUpdateMigrator.js +58 -2
  21. package/dist/core/PostUpdateMigrator.js.map +1 -1
  22. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  23. package/dist/core/devGatedFeatures.js +6 -0
  24. package/dist/core/devGatedFeatures.js.map +1 -1
  25. package/dist/core/keyMaterialPaths.d.ts +73 -0
  26. package/dist/core/keyMaterialPaths.d.ts.map +1 -0
  27. package/dist/core/keyMaterialPaths.js +139 -0
  28. package/dist/core/keyMaterialPaths.js.map +1 -0
  29. package/dist/core/types.d.ts +20 -0
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/core/types.js.map +1 -1
  32. package/dist/data/standards-guard-index.json +1 -1
  33. package/dist/data/standards-guard-index.meta.json +2 -2
  34. package/dist/data/standards-registry.meta.json +1 -1
  35. package/dist/messaging/TelegramAdapter.d.ts +19 -0
  36. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  37. package/dist/messaging/TelegramAdapter.js +47 -9
  38. package/dist/messaging/TelegramAdapter.js.map +1 -1
  39. package/dist/messaging/telegram-origin/OriginAwareness.d.ts +2 -0
  40. package/dist/messaging/telegram-origin/OriginAwareness.d.ts.map +1 -1
  41. package/dist/messaging/telegram-origin/OriginAwareness.js +4 -0
  42. package/dist/messaging/telegram-origin/OriginAwareness.js.map +1 -1
  43. package/dist/messaging/telegram-origin/OriginConfig.d.ts +4 -0
  44. package/dist/messaging/telegram-origin/OriginConfig.d.ts.map +1 -1
  45. package/dist/messaging/telegram-origin/OriginConfig.js +26 -0
  46. package/dist/messaging/telegram-origin/OriginConfig.js.map +1 -1
  47. package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts +236 -0
  48. package/dist/messaging/telegram-origin/OriginForwardToHolder.d.ts.map +1 -0
  49. package/dist/messaging/telegram-origin/OriginForwardToHolder.js +337 -0
  50. package/dist/messaging/telegram-origin/OriginForwardToHolder.js.map +1 -0
  51. package/dist/messaging/telegram-origin/OriginMesh.d.ts.map +1 -1
  52. package/dist/messaging/telegram-origin/OriginMesh.js +17 -2
  53. package/dist/messaging/telegram-origin/OriginMesh.js.map +1 -1
  54. package/dist/messaging/telegram-origin/OriginMeshRelay.d.ts +7 -0
  55. package/dist/messaging/telegram-origin/OriginMeshRelay.d.ts.map +1 -1
  56. package/dist/messaging/telegram-origin/OriginMeshRelay.js +15 -15
  57. package/dist/messaging/telegram-origin/OriginMeshRelay.js.map +1 -1
  58. package/dist/messaging/telegram-origin/OriginStore.d.ts +38 -1
  59. package/dist/messaging/telegram-origin/OriginStore.d.ts.map +1 -1
  60. package/dist/messaging/telegram-origin/OriginStore.js +8 -1
  61. package/dist/messaging/telegram-origin/OriginStore.js.map +1 -1
  62. package/dist/messaging/telegram-origin/OriginStore.worker.js +1 -1
  63. package/dist/messaging/telegram-origin/OriginStore.worker.js.map +1 -1
  64. package/dist/messaging/telegram-origin/OriginStoreBackend.d.ts +58 -1
  65. package/dist/messaging/telegram-origin/OriginStoreBackend.d.ts.map +1 -1
  66. package/dist/messaging/telegram-origin/OriginStoreBackend.js +209 -23
  67. package/dist/messaging/telegram-origin/OriginStoreBackend.js.map +1 -1
  68. package/dist/messaging/telegram-origin/StoreTypes.d.ts +24 -0
  69. package/dist/messaging/telegram-origin/StoreTypes.d.ts.map +1 -1
  70. package/dist/messaging/telegram-origin/TelegramOriginBoot.d.ts.map +1 -1
  71. package/dist/messaging/telegram-origin/TelegramOriginBoot.js +7 -0
  72. package/dist/messaging/telegram-origin/TelegramOriginBoot.js.map +1 -1
  73. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts +49 -7
  74. package/dist/messaging/telegram-origin/TelegramOriginRuntime.d.ts.map +1 -1
  75. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js +178 -2
  76. package/dist/messaging/telegram-origin/TelegramOriginRuntime.js.map +1 -1
  77. package/dist/messaging/telegram-origin/TelegramOriginService.d.ts +8 -0
  78. package/dist/messaging/telegram-origin/TelegramOriginService.d.ts.map +1 -1
  79. package/dist/messaging/telegram-origin/TelegramOriginService.js +19 -3
  80. package/dist/messaging/telegram-origin/TelegramOriginService.js.map +1 -1
  81. package/dist/messaging/telegram-origin/types.d.ts +12 -0
  82. package/dist/messaging/telegram-origin/types.d.ts.map +1 -1
  83. package/dist/messaging/telegram-origin/types.js +6 -0
  84. package/dist/messaging/telegram-origin/types.js.map +1 -1
  85. package/dist/monitoring/A2ARedeliverySentinel.d.ts +145 -6
  86. package/dist/monitoring/A2ARedeliverySentinel.d.ts.map +1 -1
  87. package/dist/monitoring/A2ARedeliverySentinel.js +451 -11
  88. package/dist/monitoring/A2ARedeliverySentinel.js.map +1 -1
  89. package/dist/scaffold/templates.d.ts.map +1 -1
  90. package/dist/scaffold/templates.js +7 -1
  91. package/dist/scaffold/templates.js.map +1 -1
  92. package/dist/server/fileRoutes.d.ts +26 -0
  93. package/dist/server/fileRoutes.d.ts.map +1 -1
  94. package/dist/server/fileRoutes.js +204 -56
  95. package/dist/server/fileRoutes.js.map +1 -1
  96. package/dist/server/routes.d.ts.map +1 -1
  97. package/dist/server/routes.js +103 -9
  98. package/dist/server/routes.js.map +1 -1
  99. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  100. package/dist/testing/selfActionRegistry.js +128 -0
  101. package/dist/testing/selfActionRegistry.js.map +1 -1
  102. package/dist/threadline/A2ADeliveryTracker.d.ts +55 -1
  103. package/dist/threadline/A2ADeliveryTracker.d.ts.map +1 -1
  104. package/dist/threadline/A2ADeliveryTracker.js +97 -5
  105. package/dist/threadline/A2ADeliveryTracker.js.map +1 -1
  106. package/dist/threadline/ThreadlineMCPServer.d.ts +15 -0
  107. package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
  108. package/dist/threadline/ThreadlineMCPServer.js +3 -0
  109. package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
  110. package/dist/threadline/client/ThreadlineClient.d.ts +47 -0
  111. package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
  112. package/dist/threadline/client/ThreadlineClient.js +93 -0
  113. package/dist/threadline/client/ThreadlineClient.js.map +1 -1
  114. package/dist/threadline/mcp-http-client.d.ts.map +1 -1
  115. package/dist/threadline/mcp-http-client.js +2 -0
  116. package/dist/threadline/mcp-http-client.js.map +1 -1
  117. package/dist/threadline/peerDark.d.ts +165 -0
  118. package/dist/threadline/peerDark.d.ts.map +1 -0
  119. package/dist/threadline/peerDark.js +204 -0
  120. package/dist/threadline/peerDark.js.map +1 -0
  121. package/package.json +1 -1
  122. package/src/data/builtin-manifest.json +64 -64
  123. package/src/data/standards-guard-index.json +1 -1
  124. package/src/data/standards-guard-index.meta.json +2 -2
  125. package/src/data/standards-registry.meta.json +1 -1
  126. package/src/scaffold/templates.ts +7 -1
  127. package/upgrades/1.3.1340.md +32 -0
  128. package/upgrades/1.3.1341.md +94 -0
  129. package/upgrades/side-effects/a2a-peer-dark-reporting.md +149 -0
  130. package/upgrades/side-effects/files-never-serve-key-material.md +399 -0
  131. package/upgrades/side-effects/telegram-origin-forward-to-holder.md +151 -0
@@ -0,0 +1,337 @@
1
+ import { ORIGIN_MESH_PROTOCOL } from './OriginMesh.js';
2
+ import { OriginSendPolicyRefusal } from './OriginSendPolicy.js';
3
+ export const HOLD_REASON_LEASE_NOT_HELD = 'lease-not-held';
4
+ /** Execution owner recorded on a hold taken while NO holder could be named.
5
+ * Never a real machine, so recovery always re-prepares for the holder it finds. */
6
+ export const UNRESOLVED_LEASE_HOLDER = 'lease-holder-unresolved';
7
+ export const FORWARD_SETTLE_TIMEOUT_MS = 15_000;
8
+ /** §4.2 — the reply request runs settle + ONE forward attempt inside this
9
+ * budget (≥ the holder's 10 s execute + 5 s margin, both RPCs sharing it),
10
+ * well under the route's 120 s so a caller never times out before the hold
11
+ * is written and re-runs with a NEW operation id. */
12
+ export const FORWARD_ATTEMPT_BUDGET_MS = 30_000;
13
+ /** Per-RPC ceiling so `capabilities` + `submit` fit the attempt budget. */
14
+ export const FORWARD_RPC_TIMEOUT_MS = 15_000;
15
+ /** §4.2 — the remaining attempts run from the recovery tick: a typed refusal
16
+ * that proves non-admission is retried 2× more at +10 s and +20 s, re-resolving
17
+ * the holder each time, then the 15-minute schedule takes over. */
18
+ export const FORWARD_LADDER = Object.freeze({ delaysMs: Object.freeze([10_000, 20_000]) });
19
+ export function nextLadderState(previous, now, delays = FORWARD_LADDER.delaysMs) {
20
+ const attempts = previous ? previous.attempts + 1 : 0;
21
+ return { attempts, nextAt: attempts < delays.length ? now + delays[attempts] : null };
22
+ }
23
+ /** The fixed user template, sent THROUGH the holder (§4.2). Never free text. */
24
+ export function heldForwardNoticeText(holderNickname) {
25
+ return `I have your message; my reply is delayed while it is routed through ${holderNickname}.`;
26
+ }
27
+ /** §4.2 `lease-settling` — the three states in which a lease read is not yet
28
+ * an answer: no holder named; self named but `holdsLease()` false (the seconds
29
+ * after a respawn); a named holder whose lease has expired (`currentHolder()`
30
+ * has no expiry check of its own). */
31
+ export function classifyLeaseRoute(view) {
32
+ let holder = null;
33
+ try {
34
+ holder = view.leaseHolder();
35
+ }
36
+ catch {
37
+ holder = null;
38
+ }
39
+ let held = false;
40
+ try {
41
+ held = view.holdsLease();
42
+ }
43
+ catch {
44
+ held = false;
45
+ }
46
+ if (held)
47
+ return { kind: 'self' };
48
+ if (!holder)
49
+ return { kind: 'settling', reason: 'no-holder' };
50
+ if (holder === view.selfMachineId)
51
+ return { kind: 'settling', reason: 'self-unconfirmed' };
52
+ let healthy = false;
53
+ try {
54
+ healthy = view.isHolderHealthy(holder);
55
+ }
56
+ catch {
57
+ healthy = false;
58
+ }
59
+ if (!healthy)
60
+ return { kind: 'settling', reason: 'holder-unhealthy' };
61
+ return { kind: 'peer', holder };
62
+ }
63
+ /** Re-read the lease with backoff for at most `timeoutMs` BEFORE writing
64
+ * anything. A window that never settles is the ladder's problem, not a row. */
65
+ export async function settleLeaseRoute(view, deps) {
66
+ const timeoutMs = deps.timeoutMs ?? FORWARD_SETTLE_TIMEOUT_MS;
67
+ const started = deps.now();
68
+ let delay = 250;
69
+ let last = classifyLeaseRoute(view);
70
+ while (last.kind === 'settling') {
71
+ const elapsed = deps.now() - started;
72
+ if (elapsed >= timeoutMs)
73
+ return { kind: 'unsettled', reason: last.reason };
74
+ await deps.sleep(Math.min(delay, Math.max(1, timeoutMs - elapsed)));
75
+ delay = Math.min(delay * 2, 2000);
76
+ last = classifyLeaseRoute(view);
77
+ }
78
+ return last;
79
+ }
80
+ /** Refusals after which re-resolving the holder and trying again is sound:
81
+ * the holder is not (or no longer) the lease holder, is booting, or could not
82
+ * be reached BEFORE a submit was sent. An `outcome-unknown` is never in it. */
83
+ const RETRYABLE_REASONS = new Set(['not-lease-holder', 'origin-peer-unreachable', 'origin-runtime-unavailable', 'origin-peer-protocol-unavailable',
84
+ 'execution-owner-mismatch', 'origin-credential-owner-required', 'origin-peer-unavailable']);
85
+ /** The single holder transport: `capabilities` then `submit`, never throwing.
86
+ * Shared by the request-time forward, the recovery re-forward and
87
+ * `relayOriginBot`, so the three cannot drift on what a refusal means. */
88
+ export async function submitOriginToHolder(input) {
89
+ const base = { type: 'telegram-origin', protocol: ORIGIN_MESH_PROTOCOL };
90
+ let capabilities;
91
+ try {
92
+ capabilities = await input.send({ ...base, action: 'capabilities' });
93
+ }
94
+ catch {
95
+ return { ok: false, reason: 'origin-peer-unreachable', outcome: 'held', retryable: true };
96
+ }
97
+ const cap = capabilities.result;
98
+ if (!capabilities.ok && capabilities.reason === 'origin-runtime-unavailable')
99
+ return { ok: false, reason: 'origin-runtime-unavailable', outcome: 'held', retryable: true };
100
+ if (!capabilities.ok || !cap?.ok || cap.protocol !== ORIGIN_MESH_PROTOCOL || !cap.credentialOwner || typeof cap.accountId !== 'string' ||
101
+ typeof cap.executionOwnerMachineId !== 'string' || !cap.executionOwnerMachineId || cap.executionOwnerMachineId.length > 128) {
102
+ return { ok: false, reason: 'origin-peer-protocol-unavailable', outcome: 'held', retryable: true };
103
+ }
104
+ if (input.expectedOwner !== undefined && cap.executionOwnerMachineId !== input.expectedOwner) {
105
+ return { ok: false, reason: 'execution-owner-mismatch', outcome: 'held', retryable: true };
106
+ }
107
+ let result;
108
+ try {
109
+ result = await input.send({ ...base, action: 'submit', operation: input.operation });
110
+ }
111
+ catch {
112
+ return { ok: false, reason: 'origin-relay-acceptance-unknown', outcome: 'outcome-unknown', retryable: false };
113
+ }
114
+ const response = result.result;
115
+ const policyRefusal = response?.policyRefusal;
116
+ if (policyRefusal && policyRefusal.ok === false) {
117
+ return { ok: false, reason: response?.reason ?? 'send-policy-refused', outcome: 'held', retryable: false, policyRefusal };
118
+ }
119
+ if (result.ok && response?.ok && response.originId === input.operation.record.originId &&
120
+ Number.isSafeInteger(response.messageId) && Number(response.messageId) > 0 && response.originReceiptConfirmed === true) {
121
+ return { ok: true, messageId: response.messageId, deliveryMachineId: typeof response.deliveryMachineId === 'string' ? response.deliveryMachineId : cap.executionOwnerMachineId,
122
+ receiptJson: JSON.stringify({ messageId: response.messageId, deliveryMachineId: response.deliveryMachineId ?? cap.executionOwnerMachineId,
123
+ forwardedFromMachine: input.operation.record.originMachineId, originId: response.originId }) };
124
+ }
125
+ const reason = response?.reason ?? (result.ok ? 'origin-relay-acceptance-unknown' : result.reason ?? 'origin-relay-acceptance-unknown');
126
+ // A refusal that names OUR operation id came from inside the holder's
127
+ // execution (its `admit` ran, or its outbox/credential refused AFTER it):
128
+ // the holder's own recovery owns that row now. Treat it exactly like an
129
+ // unknown outcome — ask that holder's `receipt`, never forward again.
130
+ if (response?.ok === false && response.operationId === input.operation.record.operationId) {
131
+ return { ok: false, reason, outcome: 'outcome-unknown', retryable: false, admittedAtHolder: true };
132
+ }
133
+ // A dispatcher-level refusal (no handler, peer booting) never reached the
134
+ // holder's outbox: it is a definite, retryable refusal, not an unknown.
135
+ const dispatcherRefusal = !result.ok && response === undefined;
136
+ const outcome = dispatcherRefusal ? 'held'
137
+ : response?.outcome === 'held' || response?.outcome === 'known-failed' ? response.outcome
138
+ : response?.ok === false && response.outcome === undefined && typeof response.reason === 'string' ? 'held' : 'outcome-unknown';
139
+ return { ok: false, reason, outcome,
140
+ retryable: outcome !== 'outcome-unknown' && (response?.retryable === true || RETRYABLE_REASONS.has(reason) || dispatcherRefusal) };
141
+ }
142
+ /** §4.1 + §4.2 — settle, ONE forward attempt, then the durable hold. The
143
+ * remaining ladder steps belong to the recovery tick (`recoverForwardedHold`). */
144
+ export async function forwardReplyToHolder(deps, input) {
145
+ const delays = deps.ladder?.delaysMs ?? FORWARD_LADDER.delaysMs;
146
+ const audit = (row) => { try {
147
+ deps.audit?.({ ts: deps.now(), topicId: input.topicId, ...row });
148
+ }
149
+ catch { /* audit is observability only */ } };
150
+ const settled = await settleLeaseRoute(deps.lease, { sleep: deps.sleep, now: deps.now, timeoutMs: deps.settleTimeoutMs });
151
+ if (settled.kind === 'self')
152
+ return { kind: 'local' };
153
+ let operation = null;
154
+ let lastHolder = null;
155
+ let lastAttempt = 'unsettled';
156
+ let lastReason = settled.kind === 'unsettled' ? `lease-settling-${settled.reason}` : 'not-attempted';
157
+ if (settled.kind === 'unsettled')
158
+ audit({ phase: 'settle-timeout', reason: settled.reason });
159
+ else {
160
+ const holder = settled.holder;
161
+ operation = await deps.prepare(holder, input);
162
+ lastHolder = holder;
163
+ const result = await deps.submit(holder, operation);
164
+ if (result.ok) {
165
+ audit({ phase: 'sent', attempt: 0, holder, operationId: operation.record.operationId, messageId: result.messageId });
166
+ return { kind: 'sent', messageId: result.messageId, holder, operationId: operation.record.operationId };
167
+ }
168
+ if (result.policyRefusal)
169
+ throw new OriginSendPolicyRefusal(result.policyRefusal, operation.record.operationId);
170
+ lastReason = result.reason;
171
+ audit({ phase: 'refused', attempt: 0, holder, operationId: operation.record.operationId, reason: result.reason, outcome: result.outcome, retryable: result.retryable });
172
+ lastAttempt = result.outcome === 'outcome-unknown' ? 'outcome-unknown' : result.reason === 'origin-peer-unreachable' ? 'unreachable' : 'refused';
173
+ }
174
+ // forward-to-holder-failed → the durable hold.
175
+ if (!operation)
176
+ operation = await deps.prepare(lastHolder ?? UNRESOLVED_LEASE_HOLDER, input);
177
+ const now = deps.now();
178
+ const detail = { kind: 'forward-to-holder', lastAttempt, machineId: lastHolder, topicId: input.topicId, chatId: input.chatId,
179
+ text: input.text, ...(input.silent === undefined ? {} : { silent: input.silent }), ...(input.formatMode === undefined ? {} : { formatMode: input.formatMode }),
180
+ ...(input.kindMetadata === undefined ? {} : { kindMetadata: input.kindMetadata }), reason: lastReason, at: now, noticeDelivered: false,
181
+ ladder: nextLadderState(undefined, now, delays) };
182
+ const recorded = await deps.hold(operation, detail);
183
+ audit({ phase: recorded === false ? 'hold-not-recorded' : 'held', holder: lastHolder, operationId: operation.record.operationId, lastAttempt, reason: lastReason, ladderNextAt: detail.ladder.nextAt });
184
+ let noticeDelivered = false;
185
+ // The notice is never attempted at a holder whose last answer was unknown:
186
+ // that machine may be mid-send of the very reply the notice would precede.
187
+ if (deps.notify && lastHolder && lastAttempt !== 'outcome-unknown') {
188
+ try {
189
+ noticeDelivered = await deps.notify(lastHolder, input.topicId);
190
+ }
191
+ catch {
192
+ noticeDelivered = false;
193
+ }
194
+ }
195
+ audit({ phase: noticeDelivered ? 'notice-sent' : 'notice-not-sent', holder: lastHolder, operationId: operation.record.operationId });
196
+ return { kind: 'held', operationId: operation.record.operationId, holder: lastHolder, lastAttempt, reason: lastReason, noticeDelivered };
197
+ }
198
+ function attemptKind(result) {
199
+ return result.outcome === 'outcome-unknown' ? 'outcome-unknown' : result.reason === 'origin-peer-unreachable' ? 'unreachable' : 'refused';
200
+ }
201
+ /** §4.2 — recovery re-forwards the SAME operation while the holder is
202
+ * unchanged. An attempt the holder never confirmed is resolved at THAT
203
+ * holder's receipt first, never re-sent blind. On a holder change the old
204
+ * record is durably SUPERSEDED (linked by operation id) and a NEW record bound
205
+ * to the new owner is prepared and forwarded — a holder-side `submit` refuses
206
+ * a record owned by another machine before `authorize`, so the old record can
207
+ * never be replayed at the new owner. Each failed step advances the ladder. */
208
+ export async function recoverForwardedHold(deps, row, operation) {
209
+ const operationId = row.operationId;
210
+ const delays = deps.ladder?.delaysMs ?? FORWARD_LADDER.delaysMs;
211
+ const audit = (r) => { try {
212
+ deps.audit?.({ ts: deps.now(), phase: 'recovery', operationId, topicId: row.destination.topicId, ...r });
213
+ }
214
+ catch { /* observability only */ } };
215
+ const raw = row.holdDetail;
216
+ const detail = raw && raw.kind === 'forward-to-holder' && typeof raw.text === 'string' && typeof raw.chatId === 'string' && Number.isSafeInteger(raw.topicId)
217
+ ? { ...raw, ladder: raw.ladder && Number.isSafeInteger(raw.ladder.attempts) ? raw.ladder : { attempts: delays.length, nextAt: null } } : null;
218
+ const retain = async (next) => {
219
+ if (!detail)
220
+ return;
221
+ await deps.rehold(operationId, { ...detail, ...next, at: deps.now(), ladder: nextLadderState(detail.ladder, deps.now(), delays) });
222
+ };
223
+ if (detail?.lastAttempt === 'outcome-unknown' && detail.machineId) {
224
+ const answer = await deps.receipt(detail.machineId, operationId);
225
+ if (answer.state === 'accepted') {
226
+ await deps.resolve(operationId, detail.machineId, answer.receiptJson);
227
+ audit({ outcome: 'resolved-by-receipt', machineId: detail.machineId });
228
+ return 'resolved';
229
+ }
230
+ if (answer.state === 'unreachable' || answer.state === 'owned-by-holder') {
231
+ await retain({});
232
+ audit({ outcome: answer.state === 'unreachable' ? 'retained-outcome-unknown' : 'retained-owned-by-holder', machineId: detail.machineId });
233
+ return 'retained';
234
+ }
235
+ // Definitely not accepted there: safe to forward again.
236
+ audit({ outcome: 'outcome-unknown-cleared', machineId: detail.machineId });
237
+ }
238
+ const route = classifyLeaseRoute(deps.lease);
239
+ if (route.kind === 'settling') {
240
+ await retain({ reason: `lease-settling-${route.reason}` });
241
+ audit({ outcome: 'retained-settling', reason: route.reason });
242
+ return 'retained';
243
+ }
244
+ if (detail?.lastAttempt === 'local-sent') {
245
+ // A local send was STARTED and its resolve did not land (crash, store
246
+ // refusal). The user may already have it: never send again; the row rides to
247
+ // its deadline and expires with the honest "may or may not" wording.
248
+ audit({ outcome: 'retained-local-sent-unconfirmed' });
249
+ return 'retained';
250
+ }
251
+ if (route.kind === 'self') {
252
+ if (!detail) {
253
+ audit({ outcome: 'retained-no-detail' });
254
+ return 'retained';
255
+ }
256
+ // Mark BEFORE sending: the marker, not the send, is what makes a second
257
+ // local send structurally impossible.
258
+ await deps.rehold(operationId, { ...detail, lastAttempt: 'local-sent', machineId: deps.lease.selfMachineId, at: deps.now(), ladder: nextLadderState(detail.ladder, deps.now(), delays) });
259
+ const sent = await deps.sendLocal(detail);
260
+ const resolved = await deps.resolve(operationId, deps.lease.selfMachineId, JSON.stringify({ messageId: sent.messageId, deliveryMachineId: deps.lease.selfMachineId, supersededLocally: true }));
261
+ audit({ outcome: resolved ? 'sent-locally' : 'sent-locally-resolve-refused', messageId: sent.messageId });
262
+ return 'sent';
263
+ }
264
+ const holder = route.holder;
265
+ if (operation.record.executionOwnerMachineId === holder) {
266
+ const result = await deps.submit(holder, operation);
267
+ if (result.ok) {
268
+ await deps.resolve(operationId, result.deliveryMachineId, result.receiptJson);
269
+ audit({ outcome: 'sent', holder, messageId: result.messageId });
270
+ return 'sent';
271
+ }
272
+ await retain({ machineId: holder, reason: result.reason, lastAttempt: attemptKind(result) });
273
+ audit({ outcome: 'retained', holder, reason: result.reason, resultOutcome: result.outcome });
274
+ return 'retained';
275
+ }
276
+ // Holder changed (or was never resolved): supersede with a NEW operation
277
+ // bound to the new owner. The new row is made durable FIRST, then the old
278
+ // one is retired, then the forward runs — at every instant exactly one
279
+ // durable row carries the reply, so a crash between steps loses nothing.
280
+ if (!detail) {
281
+ audit({ outcome: 'retained-holder-changed-no-detail', holder });
282
+ return 'retained';
283
+ }
284
+ const now = deps.now();
285
+ const next = await deps.prepare(holder, { topicId: detail.topicId, chatId: detail.chatId, text: detail.text, silent: detail.silent, formatMode: detail.formatMode, kindMetadata: detail.kindMetadata });
286
+ const nextDetail = { ...detail, machineId: holder, lastAttempt: 'refused', reason: 'not-attempted', at: now, supersedes: operationId,
287
+ ladder: nextLadderState(detail.ladder, now, delays) };
288
+ // ONE store transaction admits + holds the new row and retires the old one. A
289
+ // refused supersede means the old row is no longer plainly held (it may be
290
+ // delivering): the new operation is then admitted NOWHERE and nothing is sent.
291
+ const superseded = await deps.supersede(operationId, next, nextDetail);
292
+ audit({ outcome: superseded ? 'superseded' : 'supersede-refused', holder, previousOwner: operation.record.executionOwnerMachineId, supersededBy: next.record.operationId });
293
+ if (!superseded)
294
+ return 'retained';
295
+ const result = await deps.submit(holder, next);
296
+ if (result.ok) {
297
+ await deps.resolve(next.record.operationId, result.deliveryMachineId, result.receiptJson);
298
+ audit({ outcome: 'sent-superseding', holder, operationId: next.record.operationId, messageId: result.messageId });
299
+ return 'sent';
300
+ }
301
+ await deps.rehold(next.record.operationId, { ...nextDetail, reason: result.reason, lastAttempt: attemptKind(result), at: deps.now() });
302
+ audit({ outcome: 'retained-superseding', holder, operationId: next.record.operationId, reason: result.reason, resultOutcome: result.outcome });
303
+ return 'retained';
304
+ }
305
+ /** §4.2 — three topics held on one standby within 1 h collapse to one item. */
306
+ export class HeldForwardItemCollapser {
307
+ deps;
308
+ #held = new Map();
309
+ constructor(deps) {
310
+ this.deps = deps;
311
+ }
312
+ /** Returns the item id to raise for this topic, or the aggregate id once the
313
+ * threshold is crossed (and which per-topic ids the aggregate supersedes). */
314
+ record(topicId) {
315
+ const now = this.deps.now(), windowMs = this.deps.windowMs ?? 3_600_000, threshold = this.deps.threshold ?? 3;
316
+ for (const [topic, at] of this.#held)
317
+ if (now - at > windowMs)
318
+ this.#held.delete(topic);
319
+ this.#held.set(topicId, now);
320
+ if (this.#held.size >= threshold) {
321
+ return { itemId: 'telegram-origin-held:aggregate', aggregate: true, supersedes: [...this.#held.keys()].map(t => `telegram-origin-held:${t}`) };
322
+ }
323
+ return { itemId: `telegram-origin-held:${topicId}`, aggregate: false, supersedes: [] };
324
+ }
325
+ topics() { return [...this.#held.keys()]; }
326
+ clear(topicId) { this.#held.delete(topicId); }
327
+ }
328
+ /** Honest expiry wording (§4.2): a definite non-delivery vs an unknown one. */
329
+ export function expiredForwardWording(row) {
330
+ const detail = row.holdDetail;
331
+ const topic = row.destination.topicId ?? 'the topic';
332
+ const hours = Math.max(1, Math.round((row.deadlineAt - row.preparedAt) / 3_600_000));
333
+ return detail?.lastAttempt === 'outcome-unknown' || detail?.lastAttempt === 'local-sent'
334
+ ? `My reply to topic ${topic} may or may not have been delivered; the sending machine did not confirm within ${hours} h.`
335
+ : `I could not deliver my reply to topic ${topic} within ${hours} h.`;
336
+ }
337
+ //# sourceMappingURL=OriginForwardToHolder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OriginForwardToHolder.js","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginForwardToHolder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OriginMesh.d.ts","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMesh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAK1E,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIlG,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAA;CAAE,GAAG,CACnG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC3H;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,0BAA0B,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAC9I;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,CAAC;CACjE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqGnB"}
1
+ {"version":3,"file":"OriginMesh.d.ts","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMesh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAK1E,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIlG,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,oBAAoB,CAAA;CAAE,GAAG,CACnG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC3H;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,0BAA0B,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAC9I;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,CAAC;CACjE,GAAG,OAAO,CAAC,OAAO,CAAC,CAoHnB"}
@@ -39,8 +39,13 @@ export async function handleOriginMesh(options) {
39
39
  const live = activeKey();
40
40
  if (!live || live.publicKey !== authorized.publicKey || live.keyEpoch !== authorized.keyEpoch)
41
41
  return { ok: false, reason: 'origin-peer-unavailable' };
42
+ // A verified peer asking about an id this machine never saw gets a
43
+ // DISTINCT answer from a store failure: `no-record` is a definite
44
+ // non-admission (a forwarding standby may re-forward); `origin-receipt-
45
+ // unavailable` is an unknown (it must keep waiting).
42
46
  if (!audit)
43
- return { ok: false, reason: 'origin-receipt-unavailable' };
47
+ return { ok: true, operationId: command.operationId, state: 'no-record', originReceiptConfirmed: false,
48
+ executionOwnerMachineId: runtime.options.identity.originMachineId };
44
49
  const record = JSON.parse(audit.record.envelopeJson);
45
50
  if (record.originMachineId !== options.authenticatedSender || record.agentId !== runtime.options.identity.agentId ||
46
51
  record.operationId !== command.operationId || record.originId !== audit.record.originId ||
@@ -117,6 +122,15 @@ export async function handleOriginMesh(options) {
117
122
  if (record.executionOwnerMachineId !== runtime.options.identity.originMachineId) {
118
123
  return { ok: false, reason: 'execution-owner-mismatch', outcome: 'held' };
119
124
  }
125
+ // a2a-single-agent-identity §4.1 — the holder-side submit runs the SAME lease
126
+ // check the direct path runs (it used to execute unchecked). A typed,
127
+ // retryable refusal lets the forwarding standby re-resolve the holder.
128
+ if (runtime.options.holdsLease && !runtime.options.holdsLease()) {
129
+ // No `operationId` here on purpose: a refusal naming the operation id means
130
+ // this machine took custody of it; this one never did.
131
+ return { ok: false, reason: 'not-lease-holder', outcome: 'held', retryable: true,
132
+ executionOwnerMachineId: runtime.options.identity.originMachineId };
133
+ }
120
134
  const operation = command.operation;
121
135
  if (!validOriginAdmission(operation) || canonicalOrigin(operation.record) !== stored.envelopeJson || operation.admission.operationId !== record.operationId ||
122
136
  record.destination.transport !== 'bot-api' || record.destination.accountId !== runtime.options.bot.accountId) {
@@ -129,7 +143,8 @@ export async function handleOriginMesh(options) {
129
143
  const response = await telegramFetch(`https://api.telegram.org/bot${runtime.options.bot.token}/${request.method}`, { method: 'POST', headers: { 'Content-Type': request.contentType }, body: request.body,
130
144
  networkTimeoutMs: 10_000 }, undefined, operation);
131
145
  const body = await response.json();
132
- return { ok: true, originId: record.originId, messageId: body.result?.message_id, originReceiptConfirmed: true };
146
+ return { ok: true, originId: record.originId, messageId: body.result?.message_id, originReceiptConfirmed: true,
147
+ deliveryMachineId: runtime.options.identity.originMachineId, forwardedFromMachine: record.originMachineId };
133
148
  }
134
149
  catch (error) {
135
150
  if (error instanceof OriginSendPolicyRefusal)
@@ -1 +1 @@
1
- {"version":3,"file":"OriginMesh.js","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OriginMesh.js","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMesh.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { FormatMode } from '../TelegramMarkdownFormatter.js';
2
2
  import type { OriginMeshCommand } from './OriginMesh.js';
3
3
  import type { TelegramOriginRuntime } from './TelegramOriginRuntime.js';
4
+ import type { OriginPreparedBotOperation } from './TelegramOriginService.js';
4
5
  export declare function relayOriginBot(input: {
5
6
  runtime: TelegramOriginRuntime;
6
7
  topicId: number;
@@ -13,9 +14,15 @@ export declare function relayOriginBot(input: {
13
14
  ok: boolean;
14
15
  result?: unknown;
15
16
  }>;
17
+ /** §4.1 — pin the execution owner to a resolved holder (defaults to whatever answers `capabilities`). */
18
+ executionOwnerMachineId?: string;
19
+ /** Reuse an operation id across holders (the holder dedupes on it). */
20
+ operationId?: string;
21
+ onPrepared?: (operation: OriginPreparedBotOperation) => void;
16
22
  }): Promise<{
17
23
  messageId: number;
18
24
  topicId: number;
19
25
  destinationStoreConfirmed: true;
26
+ operationId: string;
20
27
  }>;
21
28
  //# sourceMappingURL=OriginMeshRelay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OriginMeshRelay.d.ts","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMeshRelay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAChG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAClF,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,yBAAyB,EAAE,IAAI,CAAA;CAAE,CAAC,CA6CnF"}
1
+ {"version":3,"file":"OriginMeshRelay.d.ts","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMeshRelay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAI7E,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAChG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjF,yGAAyG;IACzG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC9D,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,yBAAyB,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA8CxG"}
@@ -1,6 +1,7 @@
1
1
  import { applyTelegramFormatter } from '../TelegramAdapter.js';
2
2
  import { TelegramOriginHoldError } from './types.js';
3
3
  import { ORIGIN_MESH_PROTOCOL } from './OriginMesh.js';
4
+ import { submitOriginToHolder } from './OriginForwardToHolder.js';
4
5
  import { OriginSendPolicyRefusal } from './OriginSendPolicy.js';
5
6
  export async function relayOriginBot(input) {
6
7
  const base = { type: 'telegram-origin', protocol: ORIGIN_MESH_PROTOCOL };
@@ -19,8 +20,11 @@ export async function relayOriginBot(input) {
19
20
  const params = applyTelegramFormatter('sendMessage', { chat_id: input.chatId, text: input.text, parse_mode: 'Markdown',
20
21
  ...(input.topicId > 1 ? { message_thread_id: input.topicId } : {}), ...(input.silent ? { disable_notification: true } : {}) }, input.formatMode).outgoingParams;
21
22
  const service = input.runtime.service;
23
+ if (input.executionOwnerMachineId !== undefined && cap.executionOwnerMachineId !== input.executionOwnerMachineId) {
24
+ throw new TelegramOriginHoldError('execution-owner-mismatch');
25
+ }
22
26
  const prepare = () => service.prepareBot({ method: 'sendMessage', accountId: cap.accountId, params,
23
- executionOwnerMachineId: cap.executionOwnerMachineId,
27
+ executionOwnerMachineId: cap.executionOwnerMachineId, ...(input.operationId === undefined ? {} : { operationId: input.operationId }),
24
28
  policyInput: service.currentSendPolicyInput(input.text, input.kindMetadata) });
25
29
  const operation = service.hasProducerContext() ? prepare() : service.runAsUnboundAutomation('telegram-server', prepare);
26
30
  if (service.hasLogicalSendContext()) {
@@ -39,21 +43,17 @@ export async function relayOriginBot(input) {
39
43
  service.authorizeSendPolicyDispatch(operation.record);
40
44
  await service.recordIntent(operation);
41
45
  service.authorizeSendPolicyDispatch(operation.record);
42
- let result;
43
- try {
44
- result = await input.send({ ...base, action: 'submit', operation });
45
- }
46
- catch {
47
- throw new TelegramOriginHoldError('origin-relay-acceptance-unknown', operation.record.operationId, 'outcome-unknown');
48
- }
49
- const response = result.result;
50
- if (response?.policyRefusal && response.policyRefusal.ok === false)
51
- throw new OriginSendPolicyRefusal(response.policyRefusal, operation.record.operationId);
52
- if (!result.ok || !response?.ok || response.originId !== operation.record.originId ||
53
- !Number.isSafeInteger(response.messageId) || Number(response.messageId) <= 0 || response.originReceiptConfirmed !== true) {
54
- throw new TelegramOriginHoldError(response?.reason ?? 'origin-relay-acceptance-unknown', operation.record.operationId, response?.outcome === 'held' || response?.outcome === 'known-failed' ? response.outcome : 'outcome-unknown');
46
+ input.onPrepared?.(operation);
47
+ // One holder transport for the request-time relay and the §4.2 recovery
48
+ // re-forward (OriginForwardToHolder.ts), so a refusal means one thing.
49
+ const submitted = await submitOriginToHolder({ operation, send: input.send, expectedOwner: cap.executionOwnerMachineId });
50
+ if (!submitted.ok) {
51
+ if (submitted.policyRefusal)
52
+ throw new OriginSendPolicyRefusal(submitted.policyRefusal, operation.record.operationId);
53
+ throw new TelegramOriginHoldError(submitted.reason, operation.record.operationId, submitted.outcome);
55
54
  }
55
+ const response = { messageId: submitted.messageId };
56
56
  // The credential owner's origin outbox has committed a correlated receipt.
57
- return { messageId: response.messageId, topicId: input.topicId, destinationStoreConfirmed: true };
57
+ return { messageId: response.messageId, topicId: input.topicId, destinationStoreConfirmed: true, operationId: operation.record.operationId };
58
58
  }
59
59
  //# sourceMappingURL=OriginMeshRelay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OriginMeshRelay.js","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMeshRelay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OriginMeshRelay.js","sourceRoot":"","sources":["../../../src/messaging/telegram-origin/OriginMeshRelay.ts"],"names":[],"mappings":"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"}