agent-embassy 1.7.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/CONTRIBUTING.md +51 -47
  3. package/README.md +26 -9
  4. package/README.zh-CN.md +22 -9
  5. package/SECURITY.md +48 -35
  6. package/dist/src/gateway/acp-client.d.ts +12 -19
  7. package/dist/src/gateway/acp-client.js +90 -65
  8. package/dist/src/gateway/acp-client.js.map +1 -1
  9. package/dist/src/gateway/acp-provider.d.ts +11 -10
  10. package/dist/src/gateway/acp-provider.js +165 -53
  11. package/dist/src/gateway/acp-provider.js.map +1 -1
  12. package/dist/src/gateway/claude-helper-client.d.ts +2 -43
  13. package/dist/src/gateway/claude-helper-client.js +1 -211
  14. package/dist/src/gateway/claude-helper-client.js.map +1 -1
  15. package/dist/src/gateway/claude-helper-protocol.d.ts +16 -74
  16. package/dist/src/gateway/claude-helper-protocol.js +99 -378
  17. package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
  18. package/dist/src/gateway/claude-helper-supervisor.d.ts +56 -44
  19. package/dist/src/gateway/claude-helper-supervisor.js +265 -456
  20. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
  21. package/dist/src/gateway/claude-helper.js +184 -210
  22. package/dist/src/gateway/claude-helper.js.map +1 -1
  23. package/dist/src/gateway/claude-peer.d.ts +20 -87
  24. package/dist/src/gateway/claude-peer.js +310 -1009
  25. package/dist/src/gateway/claude-peer.js.map +1 -1
  26. package/dist/src/gateway/claude-runtime.d.ts +13 -15
  27. package/dist/src/gateway/claude-runtime.js +14 -168
  28. package/dist/src/gateway/claude-runtime.js.map +1 -1
  29. package/dist/src/gateway/cli-copy.d.ts +1 -1
  30. package/dist/src/gateway/cli-copy.en.d.ts +2 -4
  31. package/dist/src/gateway/cli-copy.en.js +3 -4
  32. package/dist/src/gateway/cli-copy.en.js.map +1 -1
  33. package/dist/src/gateway/cli-copy.js +0 -2
  34. package/dist/src/gateway/cli-copy.js.map +1 -1
  35. package/dist/src/gateway/cli-copy.zh-CN.d.ts +2 -4
  36. package/dist/src/gateway/cli-copy.zh-CN.js +3 -4
  37. package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -1
  38. package/dist/src/gateway/cli.d.ts +7 -2
  39. package/dist/src/gateway/cli.js +273 -617
  40. package/dist/src/gateway/cli.js.map +1 -1
  41. package/dist/src/gateway/codex-app-server.d.ts +5 -227
  42. package/dist/src/gateway/codex-app-server.js +18 -1463
  43. package/dist/src/gateway/codex-app-server.js.map +1 -1
  44. package/dist/src/gateway/codex-doctor.d.ts +6 -3
  45. package/dist/src/gateway/codex-doctor.js +77 -98
  46. package/dist/src/gateway/codex-doctor.js.map +1 -1
  47. package/dist/src/gateway/codex-local-transport.d.ts +1 -6
  48. package/dist/src/gateway/codex-local-transport.js +8 -10
  49. package/dist/src/gateway/codex-local-transport.js.map +1 -1
  50. package/dist/src/gateway/codex-stateless-transport.d.ts +114 -0
  51. package/dist/src/gateway/codex-stateless-transport.js +1108 -0
  52. package/dist/src/gateway/codex-stateless-transport.js.map +1 -0
  53. package/dist/src/gateway/config.d.ts +2 -9
  54. package/dist/src/gateway/config.js +62 -100
  55. package/dist/src/gateway/config.js.map +1 -1
  56. package/dist/src/gateway/control.d.ts +36 -90
  57. package/dist/src/gateway/control.js +464 -1159
  58. package/dist/src/gateway/control.js.map +1 -1
  59. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  60. package/dist/src/gateway/dashboard-copy.en.d.ts +3 -26
  61. package/dist/src/gateway/dashboard-copy.en.js +14 -37
  62. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  63. package/dist/src/gateway/dashboard-copy.js +3 -26
  64. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  65. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +3 -26
  66. package/dist/src/gateway/dashboard-copy.zh-CN.js +14 -37
  67. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  68. package/dist/src/gateway/dashboard-model.d.ts +6 -23
  69. package/dist/src/gateway/dashboard-model.js +37 -131
  70. package/dist/src/gateway/dashboard-model.js.map +1 -1
  71. package/dist/src/gateway/dashboard.d.ts +0 -6
  72. package/dist/src/gateway/dashboard.js +0 -6
  73. package/dist/src/gateway/dashboard.js.map +1 -1
  74. package/dist/src/gateway/live-dashboard-app/app.js +9 -32
  75. package/dist/src/gateway/live-dashboard-command.js +2 -2
  76. package/dist/src/gateway/live-dashboard-command.js.map +1 -1
  77. package/dist/src/gateway/live-dashboard-http.d.ts +1 -1
  78. package/dist/src/gateway/live-dashboard-http.js +2 -2
  79. package/dist/src/gateway/live-dashboard-http.js.map +1 -1
  80. package/dist/src/gateway/progress-watch-machine.d.ts +1 -37
  81. package/dist/src/gateway/progress-watch-machine.js +4 -15
  82. package/dist/src/gateway/progress-watch-machine.js.map +1 -1
  83. package/dist/src/gateway/providers.d.ts +55 -195
  84. package/dist/src/gateway/providers.js +608 -2465
  85. package/dist/src/gateway/providers.js.map +1 -1
  86. package/dist/src/gateway/server.d.ts +16 -25
  87. package/dist/src/gateway/server.js +164 -251
  88. package/dist/src/gateway/server.js.map +1 -1
  89. package/dist/src/gateway/service.d.ts +146 -448
  90. package/dist/src/gateway/service.js +1670 -6142
  91. package/dist/src/gateway/service.js.map +1 -1
  92. package/dist/src/gateway/state-v2-to-v3.d.ts +23 -0
  93. package/dist/src/gateway/state-v2-to-v3.js +994 -0
  94. package/dist/src/gateway/state-v2-to-v3.js.map +1 -0
  95. package/dist/src/gateway/store.d.ts +54 -309
  96. package/dist/src/gateway/store.js +1560 -3524
  97. package/dist/src/gateway/store.js.map +1 -1
  98. package/dist/src/gateway/types.d.ts +175 -228
  99. package/dist/src/gateway/types.js +114 -252
  100. package/dist/src/gateway/types.js.map +1 -1
  101. package/docs/CONFIGURATION.md +22 -9
  102. package/docs/CONFIGURATION.zh-CN.md +21 -9
  103. package/docs/DASHBOARD.md +10 -10
  104. package/docs/DASHBOARD.zh-CN.md +3 -3
  105. package/docs/DELIVERY.md +4 -4
  106. package/docs/DELIVERY.zh-CN.md +4 -4
  107. package/docs/GATEWAY-ARCHITECTURE.md +158 -187
  108. package/package.json +1 -1
  109. package/skills/embassy-peer/SKILL.md +28 -22
  110. package/dist/src/gateway/codex-registration-generation.d.ts +0 -5
  111. package/dist/src/gateway/codex-registration-generation.js +0 -19
  112. package/dist/src/gateway/codex-registration-generation.js.map +0 -1
  113. package/dist/src/gateway/codex-registration-succession.d.ts +0 -209
  114. package/dist/src/gateway/codex-registration-succession.js +0 -588
  115. package/dist/src/gateway/codex-registration-succession.js.map +0 -1
  116. package/dist/src/gateway/compatibility.d.ts +0 -22
  117. package/dist/src/gateway/compatibility.js +0 -23
  118. package/dist/src/gateway/compatibility.js.map +0 -1
  119. package/dist/src/gateway/delivery-machine.d.ts +0 -235
  120. package/dist/src/gateway/delivery-machine.js +0 -540
  121. package/dist/src/gateway/delivery-machine.js.map +0 -1
@@ -1,235 +0,0 @@
1
- /**
2
- * Pure delivery lifecycle for one accepted Embassy message.
3
- *
4
- * This module deliberately owns no timers, I/O, message bodies, provider
5
- * handles, or reply correlation. Callers feed it observed events and execute
6
- * the returned effects. That keeps the terminal decision independently
7
- * testable while the service remains responsible for serialization.
8
- * Event timestamps are trusted, normalized controller inputs; untrusted wire
9
- * values must be validated before they reach this reducer.
10
- */
11
- export declare const deliveryPhases: readonly ["queued", "dispatching", "transport_written", "awaiting_terminal", "terminal"];
12
- export type DeliveryPhase = (typeof deliveryPhases)[number];
13
- export declare const deliveryTerminalOutcomes: readonly ["delivered", "unconfirmed", "expired", "failed", "ambiguous", "cancelled"];
14
- export type DeliveryTerminalOutcome = (typeof deliveryTerminalOutcomes)[number];
15
- export type DeliveryStallState = "pending" | "emitted";
16
- export type DeliveryApprovalProgress = "none" | "held";
17
- export type DeliveryWriteEvidence = "none" | "transport_uncertain" | "transport_written";
18
- export type NativeReceiptNotification = {
19
- status: "delivered";
20
- } | {
21
- status: "expired";
22
- diagnosticCode: string;
23
- };
24
- export type NativeReceiptMachine = {
25
- phase: "absent";
26
- } | {
27
- phase: "open";
28
- maxCleanPrewriteRetries: number;
29
- } | {
30
- phase: "sending";
31
- notification: NativeReceiptNotification;
32
- attempt: number;
33
- maxCleanPrewriteRetries: number;
34
- } | {
35
- phase: "retry_wait";
36
- notification: NativeReceiptNotification;
37
- attempt: number;
38
- retryAt: number;
39
- maxCleanPrewriteRetries: number;
40
- } | {
41
- phase: "confirmed";
42
- notification: NativeReceiptNotification;
43
- attempts: number;
44
- } | {
45
- phase: "write_unconfirmed";
46
- notification: NativeReceiptNotification;
47
- attempts: number;
48
- reason: "ambiguous_write" | "clean_prewrite_retries_exhausted";
49
- };
50
- type DeliveryCommonState = Readonly<{
51
- enqueuedAt: number;
52
- stallAt: number;
53
- deadlineAt: number;
54
- maxCleanPrewriteRetries: number;
55
- dispatchAttempt: number;
56
- dispatchRetryAt: number | null;
57
- writeEvidence: DeliveryWriteEvidence;
58
- uncertaintyCode: string | null;
59
- approvalProgress: DeliveryApprovalProgress;
60
- stall: DeliveryStallState;
61
- nativeReceipt: NativeReceiptMachine;
62
- }>;
63
- export type ActiveDeliveryMachine = DeliveryCommonState & Readonly<{
64
- phase: Exclude<DeliveryPhase, "terminal">;
65
- }>;
66
- export type TerminalDeliveryMachine = DeliveryCommonState & Readonly<{
67
- phase: "terminal";
68
- outcome: DeliveryTerminalOutcome;
69
- terminalAt: number;
70
- safeErrorCode?: string;
71
- }>;
72
- export type DeliveryMachine = ActiveDeliveryMachine | TerminalDeliveryMachine;
73
- export type CreateDeliveryMachineInput = Readonly<{
74
- enqueuedAt: number;
75
- stallAt: number;
76
- deadlineAt: number;
77
- maxCleanPrewriteRetries?: number;
78
- nativeReceipt?: boolean;
79
- maxNativeReceiptCleanPrewriteRetries?: number;
80
- }>;
81
- export declare const deliveryEventTypes: readonly ["dispatch_requested", "dispatch_retry_due", "dispatch_clean_prewrite_failed", "dispatch_ambiguous", "transport_written", "await_terminal", "provider_held", "provider_released", "provider_denied", "provider_expired", "provider_failed", "provider_unconfirmed", "route_terminated", "external_settlement", "stall_due", "deadline_due", "cancel", "shutdown", "native_receipt_confirmed", "native_receipt_clean_prewrite_failed", "native_receipt_retry_due", "native_receipt_ambiguous"];
82
- export type DeliveryEventType = (typeof deliveryEventTypes)[number];
83
- export type DeliveryEvent = {
84
- type: "dispatch_requested";
85
- at: number;
86
- } | {
87
- type: "dispatch_retry_due";
88
- at: number;
89
- } | {
90
- type: "dispatch_clean_prewrite_failed";
91
- at: number;
92
- retryAt: number;
93
- safeErrorCode: string;
94
- } | {
95
- type: "dispatch_ambiguous";
96
- at: number;
97
- safeErrorCode: string;
98
- } | {
99
- type: "transport_written";
100
- observedAt: number;
101
- } | {
102
- type: "await_terminal";
103
- at: number;
104
- } | {
105
- type: "provider_held";
106
- observedAt: number;
107
- } | {
108
- type: "provider_released";
109
- observedAt: number;
110
- } | {
111
- type: "provider_denied";
112
- observedAt: number;
113
- safeErrorCode: string;
114
- } | {
115
- type: "provider_expired";
116
- observedAt: number;
117
- safeErrorCode: string;
118
- } | {
119
- type: "provider_failed";
120
- observedAt: number;
121
- safeErrorCode: string;
122
- } | {
123
- type: "provider_unconfirmed";
124
- observedAt: number;
125
- safeErrorCode: string;
126
- } | {
127
- type: "route_terminated";
128
- at: number;
129
- unwrittenOutcome: "cancelled" | "failed";
130
- safeErrorCode: string;
131
- } | {
132
- type: "external_settlement";
133
- at: number;
134
- outcome: DeliveryTerminalOutcome;
135
- safeErrorCode?: string;
136
- } | {
137
- type: "stall_due";
138
- at: number;
139
- } | {
140
- type: "deadline_due";
141
- at: number;
142
- } | {
143
- type: "cancel";
144
- at: number;
145
- safeErrorCode: string;
146
- } | {
147
- type: "shutdown";
148
- at: number;
149
- } | {
150
- type: "native_receipt_confirmed";
151
- at: number;
152
- } | {
153
- type: "native_receipt_clean_prewrite_failed";
154
- at: number;
155
- retryAt: number;
156
- } | {
157
- type: "native_receipt_retry_due";
158
- at: number;
159
- } | {
160
- type: "native_receipt_ambiguous";
161
- at: number;
162
- };
163
- export type DeliveryEffect = {
164
- type: "dispatch";
165
- attempt: number;
166
- } | {
167
- type: "schedule_dispatch_retry";
168
- attempt: number;
169
- retryAt: number;
170
- } | {
171
- type: "record_progress";
172
- progress: "transport_written" | "transport_uncertain" | "held";
173
- } | {
174
- type: "publish_stall";
175
- pendingForMs: number;
176
- } | {
177
- type: "settle_delivery";
178
- outcome: DeliveryTerminalOutcome;
179
- terminalAt: number;
180
- safeErrorCode?: string;
181
- } | {
182
- type: "send_native_receipt";
183
- notification: NativeReceiptNotification;
184
- attempt: number;
185
- } | {
186
- type: "schedule_native_receipt_retry";
187
- attempt: number;
188
- retryAt: number;
189
- } | {
190
- type: "release_native_receipt";
191
- reason: "ambiguous_write" | "clean_prewrite_retries_exhausted";
192
- };
193
- export type DeliveryTransition = Readonly<{
194
- state: DeliveryMachine;
195
- effects: readonly DeliveryEffect[];
196
- }>;
197
- export type DeadlineArbitration = "provider_terminal_wins" | "deadline_wins";
198
- /** Provider terminal evidence must be observed strictly before the deadline. */
199
- export declare function arbitrateDeliveryDeadline(observedAt: number, deadlineAt: number): DeadlineArbitration;
200
- export declare function createDeliveryMachine(input: CreateDeliveryMachineInput): DeliveryMachine;
201
- export declare function isTerminalDeliveryMachine(state: DeliveryMachine): state is TerminalDeliveryMachine;
202
- export type DeliveryProjection = Readonly<{
203
- phase: DeliveryPhase;
204
- publicState: Exclude<DeliveryPhase, "terminal"> | "stalled" | DeliveryTerminalOutcome;
205
- terminal: boolean;
206
- stalled: boolean;
207
- pendingForMs?: number;
208
- outcome?: DeliveryTerminalOutcome;
209
- approvalProgress: DeliveryApprovalProgress;
210
- writeEvidence: DeliveryWriteEvidence;
211
- nativeReceiptPhase: NativeReceiptMachine["phase"];
212
- }>;
213
- export declare function projectDelivery(state: DeliveryMachine, now: number): DeliveryProjection;
214
- export type DeliveryWakeups = Readonly<{
215
- stallAt?: number;
216
- deadlineAt?: number;
217
- dispatchRetryAt?: number;
218
- nativeReceiptRetryAt?: number;
219
- }>;
220
- /** Timer projection; scheduling remains a controller responsibility. */
221
- export declare function projectDeliveryWakeups(state: DeliveryMachine): DeliveryWakeups;
222
- export declare function transitionDelivery(state: DeliveryMachine, event: DeliveryEvent): DeliveryTransition;
223
- type NativeReceiptEvent = Extract<DeliveryEvent, {
224
- type: "native_receipt_confirmed" | "native_receipt_clean_prewrite_failed" | "native_receipt_retry_due" | "native_receipt_ambiguous";
225
- }>;
226
- export type NativeReceiptTransition = Readonly<{
227
- state: NativeReceiptMachine;
228
- effects: readonly DeliveryEffect[];
229
- }>;
230
- /**
231
- * Child lifecycle for notifying a native sender about the already-decided
232
- * delivery outcome. It cannot alter the parent's terminal outcome.
233
- */
234
- export declare function transitionNativeReceipt(state: NativeReceiptMachine, event: NativeReceiptEvent): NativeReceiptTransition;
235
- export {};