agent-embassy 1.7.0 → 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 (118) hide show
  1. package/CHANGELOG.md +32 -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.en.d.ts +2 -2
  30. package/dist/src/gateway/cli-copy.en.js +4 -2
  31. package/dist/src/gateway/cli-copy.en.js.map +1 -1
  32. package/dist/src/gateway/cli-copy.zh-CN.d.ts +2 -2
  33. package/dist/src/gateway/cli-copy.zh-CN.js +4 -2
  34. package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -1
  35. package/dist/src/gateway/cli.d.ts +7 -2
  36. package/dist/src/gateway/cli.js +277 -575
  37. package/dist/src/gateway/cli.js.map +1 -1
  38. package/dist/src/gateway/codex-app-server.d.ts +5 -227
  39. package/dist/src/gateway/codex-app-server.js +18 -1463
  40. package/dist/src/gateway/codex-app-server.js.map +1 -1
  41. package/dist/src/gateway/codex-doctor.d.ts +36 -0
  42. package/dist/src/gateway/codex-doctor.js +127 -0
  43. package/dist/src/gateway/codex-doctor.js.map +1 -0
  44. package/dist/src/gateway/codex-local-transport.d.ts +6 -6
  45. package/dist/src/gateway/codex-local-transport.js +13 -10
  46. package/dist/src/gateway/codex-local-transport.js.map +1 -1
  47. package/dist/src/gateway/codex-stateless-transport.d.ts +114 -0
  48. package/dist/src/gateway/codex-stateless-transport.js +1108 -0
  49. package/dist/src/gateway/codex-stateless-transport.js.map +1 -0
  50. package/dist/src/gateway/config.d.ts +2 -9
  51. package/dist/src/gateway/config.js +62 -100
  52. package/dist/src/gateway/config.js.map +1 -1
  53. package/dist/src/gateway/control.d.ts +36 -90
  54. package/dist/src/gateway/control.js +465 -1123
  55. package/dist/src/gateway/control.js.map +1 -1
  56. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  57. package/dist/src/gateway/dashboard-copy.en.d.ts +8 -26
  58. package/dist/src/gateway/dashboard-copy.en.js +19 -37
  59. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  60. package/dist/src/gateway/dashboard-copy.js +8 -26
  61. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  62. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +8 -26
  63. package/dist/src/gateway/dashboard-copy.zh-CN.js +19 -37
  64. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  65. package/dist/src/gateway/dashboard-model.d.ts +8 -22
  66. package/dist/src/gateway/dashboard-model.js +44 -130
  67. package/dist/src/gateway/dashboard-model.js.map +1 -1
  68. package/dist/src/gateway/dashboard.d.ts +0 -6
  69. package/dist/src/gateway/dashboard.js +3 -7
  70. package/dist/src/gateway/dashboard.js.map +1 -1
  71. package/dist/src/gateway/live-dashboard-app/app.js +20 -34
  72. package/dist/src/gateway/live-dashboard-command.js +2 -2
  73. package/dist/src/gateway/live-dashboard-command.js.map +1 -1
  74. package/dist/src/gateway/live-dashboard-http.d.ts +1 -1
  75. package/dist/src/gateway/live-dashboard-http.js +2 -2
  76. package/dist/src/gateway/live-dashboard-http.js.map +1 -1
  77. package/dist/src/gateway/progress-watch-machine.d.ts +1 -37
  78. package/dist/src/gateway/progress-watch-machine.js +4 -15
  79. package/dist/src/gateway/progress-watch-machine.js.map +1 -1
  80. package/dist/src/gateway/providers.d.ts +58 -191
  81. package/dist/src/gateway/providers.js +637 -2434
  82. package/dist/src/gateway/providers.js.map +1 -1
  83. package/dist/src/gateway/server.d.ts +16 -25
  84. package/dist/src/gateway/server.js +165 -240
  85. package/dist/src/gateway/server.js.map +1 -1
  86. package/dist/src/gateway/service.d.ts +149 -427
  87. package/dist/src/gateway/service.js +1639 -5662
  88. package/dist/src/gateway/service.js.map +1 -1
  89. package/dist/src/gateway/state-v2-to-v3.d.ts +23 -0
  90. package/dist/src/gateway/state-v2-to-v3.js +994 -0
  91. package/dist/src/gateway/state-v2-to-v3.js.map +1 -0
  92. package/dist/src/gateway/store.d.ts +54 -309
  93. package/dist/src/gateway/store.js +1560 -3510
  94. package/dist/src/gateway/store.js.map +1 -1
  95. package/dist/src/gateway/types.d.ts +181 -225
  96. package/dist/src/gateway/types.js +115 -251
  97. package/dist/src/gateway/types.js.map +1 -1
  98. package/docs/CONFIGURATION.md +22 -9
  99. package/docs/CONFIGURATION.zh-CN.md +21 -9
  100. package/docs/DASHBOARD.md +10 -10
  101. package/docs/DASHBOARD.zh-CN.md +3 -3
  102. package/docs/DELIVERY.md +4 -4
  103. package/docs/DELIVERY.zh-CN.md +4 -4
  104. package/docs/GATEWAY-ARCHITECTURE.md +158 -187
  105. package/package.json +1 -1
  106. package/skills/embassy-peer/SKILL.md +28 -22
  107. package/dist/src/gateway/codex-registration-generation.d.ts +0 -5
  108. package/dist/src/gateway/codex-registration-generation.js +0 -19
  109. package/dist/src/gateway/codex-registration-generation.js.map +0 -1
  110. package/dist/src/gateway/codex-registration-succession.d.ts +0 -209
  111. package/dist/src/gateway/codex-registration-succession.js +0 -588
  112. package/dist/src/gateway/codex-registration-succession.js.map +0 -1
  113. package/dist/src/gateway/compatibility.d.ts +0 -22
  114. package/dist/src/gateway/compatibility.js +0 -23
  115. package/dist/src/gateway/compatibility.js.map +0 -1
  116. package/dist/src/gateway/delivery-machine.d.ts +0 -235
  117. package/dist/src/gateway/delivery-machine.js +0 -540
  118. 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 {};