visionclaw 0.1.213-beta.9 → 0.1.214-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/dist/agent/activity-labels.d.ts +32 -0
- package/dist/agent/activity-labels.d.ts.map +1 -0
- package/dist/agent/activity-labels.js +43 -0
- package/dist/agent/activity-labels.js.map +1 -0
- package/dist/agent/activity-observer.d.ts +2 -1
- package/dist/agent/activity-observer.d.ts.map +1 -1
- package/dist/agent/activity-observer.js +2 -1
- package/dist/agent/activity-observer.js.map +1 -1
- package/dist/agent/api-proxy.d.ts +20 -14
- package/dist/agent/api-proxy.d.ts.map +1 -1
- package/dist/agent/api-proxy.js +146 -70
- package/dist/agent/api-proxy.js.map +1 -1
- package/dist/agent/backup-uploader.d.ts.map +1 -1
- package/dist/agent/backup-uploader.js +2 -1
- package/dist/agent/backup-uploader.js.map +1 -1
- package/dist/agent/compaction-failure.d.ts +9 -0
- package/dist/agent/compaction-failure.d.ts.map +1 -0
- package/dist/agent/compaction-failure.js +11 -0
- package/dist/agent/compaction-failure.js.map +1 -0
- package/dist/agent/compaction-policy.d.ts +2 -0
- package/dist/agent/compaction-policy.d.ts.map +1 -1
- package/dist/agent/compaction-policy.js +2 -0
- package/dist/agent/compaction-policy.js.map +1 -1
- package/dist/agent/context-refresh.d.ts +11 -1
- package/dist/agent/context-refresh.d.ts.map +1 -1
- package/dist/agent/context-refresh.js +24 -12
- package/dist/agent/context-refresh.js.map +1 -1
- package/dist/agent/deep-night-dreaming.d.ts +68 -0
- package/dist/agent/deep-night-dreaming.d.ts.map +1 -0
- package/dist/agent/deep-night-dreaming.js +99 -0
- package/dist/agent/deep-night-dreaming.js.map +1 -0
- package/dist/agent/engines/pi/shared/context-window.d.ts +46 -0
- package/dist/agent/engines/pi/shared/context-window.d.ts.map +1 -0
- package/dist/agent/engines/pi/shared/context-window.js +47 -0
- package/dist/agent/engines/pi/shared/context-window.js.map +1 -0
- package/dist/agent/engines/pi-coding/session.d.ts +1 -0
- package/dist/agent/engines/pi-coding/session.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/session.js +82 -10
- package/dist/agent/engines/pi-coding/session.js.map +1 -1
- package/dist/agent/external-context/finapp-capability.d.ts +30 -0
- package/dist/agent/external-context/finapp-capability.d.ts.map +1 -0
- package/dist/agent/external-context/finapp-capability.js +72 -0
- package/dist/agent/external-context/finapp-capability.js.map +1 -0
- package/dist/agent/external-context/providers/finapp.d.ts.map +1 -1
- package/dist/agent/external-context/providers/finapp.js +48 -8
- package/dist/agent/external-context/providers/finapp.js.map +1 -1
- package/dist/agent/heartbeat-manager.d.ts +20 -0
- package/dist/agent/heartbeat-manager.d.ts.map +1 -1
- package/dist/agent/heartbeat-manager.js +24 -0
- package/dist/agent/heartbeat-manager.js.map +1 -1
- package/dist/agent/interrupt-handler.d.ts +7 -0
- package/dist/agent/interrupt-handler.d.ts.map +1 -1
- package/dist/agent/interrupt-handler.js +34 -7
- package/dist/agent/interrupt-handler.js.map +1 -1
- package/dist/agent/lab-run-system-prompt.js +3 -3
- package/dist/agent/llm-gateway-request-id.d.ts +61 -0
- package/dist/agent/llm-gateway-request-id.d.ts.map +1 -0
- package/dist/agent/llm-gateway-request-id.js +101 -0
- package/dist/agent/llm-gateway-request-id.js.map +1 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +18 -36
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-dreaming-sweep.d.ts +99 -0
- package/dist/agent/memory-dreaming-sweep.d.ts.map +1 -0
- package/dist/agent/memory-dreaming-sweep.js +171 -0
- package/dist/agent/memory-dreaming-sweep.js.map +1 -0
- package/dist/agent/memory-dreaming.d.ts +27 -59
- package/dist/agent/memory-dreaming.d.ts.map +1 -1
- package/dist/agent/memory-dreaming.js +299 -238
- package/dist/agent/memory-dreaming.js.map +1 -1
- package/dist/agent/memory-injector.d.ts.map +1 -1
- package/dist/agent/memory-injector.js +20 -18
- package/dist/agent/memory-injector.js.map +1 -1
- package/dist/agent/model-provider.d.ts +15 -3
- package/dist/agent/model-provider.d.ts.map +1 -1
- package/dist/agent/model-provider.js +90 -33
- package/dist/agent/model-provider.js.map +1 -1
- package/dist/agent/session-trimmer.d.ts +7 -1
- package/dist/agent/session-trimmer.d.ts.map +1 -1
- package/dist/agent/session-trimmer.js +41 -5
- package/dist/agent/session-trimmer.js.map +1 -1
- package/dist/agent/stream-handler.d.ts.map +1 -1
- package/dist/agent/stream-handler.js +13 -1
- package/dist/agent/stream-handler.js.map +1 -1
- package/dist/agent/system-prompt.js +1 -1
- package/dist/agent/transcript-summarizer.d.ts +6 -2
- package/dist/agent/transcript-summarizer.d.ts.map +1 -1
- package/dist/agent/transcript-summarizer.js +35 -7
- package/dist/agent/transcript-summarizer.js.map +1 -1
- package/dist/agent/wake-cycle-runner.d.ts +2 -0
- package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
- package/dist/agent/wake-cycle-runner.js +242 -78
- package/dist/agent/wake-cycle-runner.js.map +1 -1
- package/dist/builtin-skills/catalog/github-dev-ops/SKILL.md +7 -2
- package/dist/builtin-skills/fin-app/SKILL.md +3 -3
- package/dist/builtin-skills/fin-app/core-contract.md +4 -1
- package/dist/builtin-skills/visionclaw-manual/SKILL.md +1 -1
- package/dist/channels/telegram-status.d.ts.map +1 -1
- package/dist/channels/telegram-status.js +22 -14
- package/dist/channels/telegram-status.js.map +1 -1
- package/dist/onboarding/prepare-windows.d.ts.map +1 -1
- package/dist/onboarding/prepare-windows.js +2 -28
- package/dist/onboarding/prepare-windows.js.map +1 -1
- package/dist/onboarding/windows-permissions.d.ts +0 -1
- package/dist/onboarding/windows-permissions.d.ts.map +1 -1
- package/dist/onboarding/windows-permissions.js +0 -26
- package/dist/onboarding/windows-permissions.js.map +1 -1
- package/dist/threads/ipc.d.ts +0 -4
- package/dist/threads/ipc.d.ts.map +1 -1
- package/dist/threads/ipc.js.map +1 -1
- package/dist/threads/lab-run-runtime.d.ts.map +1 -1
- package/dist/threads/lab-run-runtime.js +70 -1
- package/dist/threads/lab-run-runtime.js.map +1 -1
- package/dist/threads/lab-runtime-policy.d.ts +2 -0
- package/dist/threads/lab-runtime-policy.d.ts.map +1 -1
- package/dist/threads/lab-runtime-policy.js +4 -0
- package/dist/threads/lab-runtime-policy.js.map +1 -1
- package/dist/threads/relay-adapter.d.ts +6 -6
- package/dist/threads/relay-adapter.d.ts.map +1 -1
- package/dist/threads/relay-adapter.js +7 -9
- package/dist/threads/relay-adapter.js.map +1 -1
- package/dist/threads/supervisor.d.ts +28 -6
- package/dist/threads/supervisor.d.ts.map +1 -1
- package/dist/threads/supervisor.js +54 -25
- package/dist/threads/supervisor.js.map +1 -1
- package/dist/threads/thread-activity-controller.d.ts.map +1 -1
- package/dist/threads/thread-activity-controller.js +9 -13
- package/dist/threads/thread-activity-controller.js.map +1 -1
- package/dist/tools/calendar.d.ts +1 -0
- package/dist/tools/calendar.d.ts.map +1 -1
- package/dist/tools/calendar.js +43 -6
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/data-service.d.ts +55 -0
- package/dist/tools/data-service.d.ts.map +1 -1
- package/dist/tools/data-service.js +258 -4
- package/dist/tools/data-service.js.map +1 -1
- package/dist/tools/drive.d.ts +4 -0
- package/dist/tools/drive.d.ts.map +1 -1
- package/dist/tools/drive.js +46 -12
- package/dist/tools/drive.js.map +1 -1
- package/dist/tools/event-trigger.d.ts +0 -1
- package/dist/tools/event-trigger.d.ts.map +1 -1
- package/dist/tools/event-trigger.js +7 -2
- package/dist/tools/event-trigger.js.map +1 -1
- package/dist/tools/transcribe-audio.d.ts +7 -3
- package/dist/tools/transcribe-audio.d.ts.map +1 -1
- package/dist/tools/transcribe-audio.js +15 -4
- package/dist/tools/transcribe-audio.js.map +1 -1
- package/dist/utils/timezone.d.ts.map +1 -1
- package/dist/utils/timezone.js +31 -2
- package/dist/utils/timezone.js.map +1 -1
- package/dist/workspace/google/google-calendar.d.ts +1 -0
- package/dist/workspace/google/google-calendar.d.ts.map +1 -1
- package/dist/workspace/google/google-calendar.js +5 -1
- package/dist/workspace/google/google-calendar.js.map +1 -1
- package/dist/workspace/google/google-drive.d.ts +3 -3
- package/dist/workspace/google/google-drive.d.ts.map +1 -1
- package/dist/workspace/google/google-drive.js +48 -15
- package/dist/workspace/google/google-drive.js.map +1 -1
- package/dist/workspace/internal-calendar.d.ts +3 -1
- package/dist/workspace/internal-calendar.d.ts.map +1 -1
- package/dist/workspace/internal-calendar.js +6 -2
- package/dist/workspace/internal-calendar.js.map +1 -1
- package/dist/workspace/types.d.ts +27 -4
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-calendar.d.ts +2 -0
- package/dist/workspace/zoho/zoho-calendar.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-calendar.js +7 -0
- package/dist/workspace/zoho/zoho-calendar.js.map +1 -1
- package/dist/workspace/zoho/zoho-workdrive.d.ts +2 -2
- package/dist/workspace/zoho/zoho-workdrive.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-workdrive.js +7 -3
- package/dist/workspace/zoho/zoho-workdrive.js.map +1 -1
- package/dist-agent/bundle.cjs +3050 -1996
- package/package.json +2 -2
- package/dist/agent/memory-warm-compaction.d.ts +0 -79
- package/dist/agent/memory-warm-compaction.d.ts.map +0 -1
- package/dist/agent/memory-warm-compaction.js +0 -270
- package/dist/agent/memory-warm-compaction.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
## [0.1.213](https://github.com/babelcloud/visionclaw/compare/v0.1.212...v0.1.213) (2026-09-08)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **session-trimmer:** keep Pi session header after compaction trim ([e5e9aa6](https://github.com/babelcloud/visionclaw/commit/e5e9aa64218aea4de27d69287651f1acc2791789))
|
|
6
|
+
* **agent:** inject watchdog briefing into activeSession ([651d2d9](https://github.com/babelcloud/visionclaw/commit/651d2d94a436524de57fb70b1e80a99cd6ffc934))
|
|
7
|
+
* **agent:** recover terminal Pi compaction failures (#2090) ([6e33dfd](https://github.com/babelcloud/visionclaw/commit/6e33dfd69499de3667077f669f36c7881211bdbf))
|
|
8
|
+
* **memory:** retain newest warm index entries (#2092) ([a182982](https://github.com/babelcloud/visionclaw/commit/a1829825b19cb0dcd0462846dcbe4b632ad424c7))
|
|
9
|
+
* **event-trigger:** expose evaluation failures and reject unsupported futures ([edfde5a](https://github.com/babelcloud/visionclaw/commit/edfde5a7442a489c0780a6c1b7966fcdea582f9f))
|
|
10
|
+
* **stt:** local whisper.cpp is macOS-only (#2077) ([d3cd756](https://github.com/babelcloud/visionclaw/commit/d3cd7565710438dadf580c5ea4fda360c452feec))
|
|
11
|
+
* **calendar:** add full event readback and reject ignored updates (#2075) ([4003a28](https://github.com/babelcloud/visionclaw/commit/4003a28ab340f67bac87270b862bd2eaec8a1260))
|
|
12
|
+
* **agent:** compact Grok against its 500k window, not 1M (#2067) ([7698f4c](https://github.com/babelcloud/visionclaw/commit/7698f4c058bb2b5b5bdae391075530657d90732f))
|
|
13
|
+
* **wake:** stop re-notifying the owner when wake recovery is exhausted ([1c3112e](https://github.com/babelcloud/visionclaw/commit/1c3112e829e90af0624f63e03b88728f8cf85c2c))
|
|
14
|
+
* **financial-tool:** pin HKEX option from at the exact strike ([5f5ef39](https://github.com/babelcloud/visionclaw/commit/5f5ef39292aff522303a0bec78c193ec863399a3))
|
|
15
|
+
* **financial-tool:** pin HKEX option from at strike, widen only to ([5940d39](https://github.com/babelcloud/visionclaw/commit/5940d3985285b7b28d307e35f49bbbb2c302646f))
|
|
16
|
+
* **financial-tool:** retry HKEX option chains with distinct strike windows ([d12be9f](https://github.com/babelcloud/visionclaw/commit/d12be9fc395fbbd867f65c3980b2f0a1ca382728))
|
|
17
|
+
* **financial-tool:** fall back HK option quotes to labelled EOD settlement ([612ecef](https://github.com/babelcloud/visionclaw/commit/612ecef240ef65ca28ac47738070e1ffd433984c))
|
|
18
|
+
* **stt:** derive a real audio MIME type instead of forwarding octet-stream ([270f52b](https://github.com/babelcloud/visionclaw/commit/270f52b456f73d05dc1aa9fd68a00a3b2ff4cda5))
|
|
19
|
+
* **audio:** transcribe voice attachments on every channel ([bfac434](https://github.com/babelcloud/visionclaw/commit/bfac4343be882db87a2fbf261f4a4db9920647cb))
|
|
20
|
+
* **stt:** preserve voice failures and split fallback ([c1f63e8](https://github.com/babelcloud/visionclaw/commit/c1f63e870728b56693f6986d22d1918fae136df7))
|
|
21
|
+
* **stt:** tighten fallback timeout defaults and note URL SSRF ([5600df6](https://github.com/babelcloud/visionclaw/commit/5600df67d16a77ba352b94575a7ba359b7b92980))
|
|
22
|
+
* **telegram:** remove redundant activity heading ([ac5e682](https://github.com/babelcloud/visionclaw/commit/ac5e6824a0e93b979281e88d1d3d27a7f8904bb1))
|
|
23
|
+
* **channels:** make failed voice transcription visible to the model ([f229fc8](https://github.com/babelcloud/visionclaw/commit/f229fc8d3b65e33c1ab4ae5b907f49202bef4054))
|
|
24
|
+
* **activity:** latch sidecar titles and tighten terminal results ([3323a8c](https://github.com/babelcloud/visionclaw/commit/3323a8cad5c35afbc6414eccaf0c96fa61ba586d))
|
|
25
|
+
* **telegram:** send progress cards immediately ([1ff9eff](https://github.com/babelcloud/visionclaw/commit/1ff9eff7475bf56a5082d4823f5f8b7d461d1ee9))
|
|
26
|
+
* **telegram:** restrict terminal result sources ([2a54a65](https://github.com/babelcloud/visionclaw/commit/2a54a65b9bf399523a17abed7ee891cd4634dff7))
|
|
27
|
+
* **telegram:** scope delayed status send to publisher ([8f5f0c6](https://github.com/babelcloud/visionclaw/commit/8f5f0c6c42f944f0afb757c960e833dd378e1873))
|
|
28
|
+
* **channels:** tell the sender when voice transcription fails ([99337b5](https://github.com/babelcloud/visionclaw/commit/99337b5406d11d2cabdc2bff729b31caf407db75))
|
|
29
|
+
* **agent:** finalize coding task after completion finish (#1969) ([d06cea4](https://github.com/babelcloud/visionclaw/commit/d06cea43e047ba6b291001fcd89a335aff4841d4))
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **financial-tool:** open global index gates + /internal/index-bars REST ([2a13850](https://github.com/babelcloud/visionclaw/commit/2a138500ef985cb03e8d85927b417e8d3d4ab368))
|
|
34
|
+
* **drive:** support public link sharing without recipient email (#2076) ([62bc9df](https://github.com/babelcloud/visionclaw/commit/62bc9dfa28d333b68ae5d690e94c2e08c7b28981))
|
|
35
|
+
* **financial-tool:** route A/HK news through EastMoney MCP ([1745378](https://github.com/babelcloud/visionclaw/commit/174537858ec0f13a871700504092659687af1c36))
|
|
36
|
+
* **stt:** mint and distribute per-agent stt keys from onboarding ([f4d890d](https://github.com/babelcloud/visionclaw/commit/f4d890d5be1307b006388960e68486a2db11d32a))
|
|
37
|
+
* **stt:** cloud transcription service with three-vendor fallback ([128891d](https://github.com/babelcloud/visionclaw/commit/128891df192011b66512df5fdceb19a915ff9950))
|
|
38
|
+
* **telegram:** improve progress card lifecycle ([8700c79](https://github.com/babelcloud/visionclaw/commit/8700c79f816bb5d317757d6046cea201255ef123))
|
|
39
|
+
* support /engine grok with Grok 4.6 (#1975) ([06ecba3](https://github.com/babelcloud/visionclaw/commit/06ecba3008fa7eed551f522f433b392a348a2e64))
|
|
40
|
+
* **agent:** make the coding session check its branch before editing (#1973) ([0ab80d2](https://github.com/babelcloud/visionclaw/commit/0ab80d278d8a8d3af5caace6a3d8dc6bdc537cf1))
|
|
41
|
+
* **telegram:** use semantic summaries and improve status card UX (#1959) ([a06ad0a](https://github.com/babelcloud/visionclaw/commit/a06ad0a673f4fefb35fbe4526317a2dbc2de5951))
|
|
42
|
+
* **financial-tool:** add Alpha Vantage news fallback (#1960) ([6791638](https://github.com/babelcloud/visionclaw/commit/6791638ae81bca32a63e41603e361fcfef7f8b04))
|
|
43
|
+
* **telegram:** durable Rich Message task status (#1956) ([1e9aba0](https://github.com/babelcloud/visionclaw/commit/1e9aba007abd48568e6cc542ff7097f46f9d13ac))
|
|
44
|
+
|
|
45
|
+
|
|
1
46
|
## [0.1.212](https://github.com/babelcloud/visionclaw/compare/v0.1.211...v0.1.212) (2026-08-30)
|
|
2
47
|
|
|
3
48
|
### Bug Fixes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The labels that are not a name for the work.
|
|
3
|
+
*
|
|
4
|
+
* The agent emits these for every run — phase boilerplate ("Processing"),
|
|
5
|
+
* lifecycle states ("Queued", "Idle"), and system notices ("Activity
|
|
6
|
+
* summaries paused") — so they say nothing about *this* task. Two decisions
|
|
7
|
+
* hang off the same judgment and must agree:
|
|
8
|
+
*
|
|
9
|
+
* - `ThreadActivityController.latchSemanticTitle` refuses to latch one of
|
|
10
|
+
* these as the run's `taskTitle`;
|
|
11
|
+
* - the display surfaces (Telegram status card, Fin Mobile conversation
|
|
12
|
+
* header) skip them when falling back from `taskTitle` to `currentStep`
|
|
13
|
+
* to the activity history.
|
|
14
|
+
*
|
|
15
|
+
* If the sets drift, a label the controller refused as a title leaks straight
|
|
16
|
+
* into a header via the fallback — the exhausted notice rendered as the name
|
|
17
|
+
* of the work. Keep this the only copy inside `src/`; `services/fin-mobile`
|
|
18
|
+
* is a separate Expo app that cannot import from here, so its copy in
|
|
19
|
+
* `src/conversation/activity.ts` is locked to this one by
|
|
20
|
+
* `scripts/test-activity-generic-labels-parity.mjs`.
|
|
21
|
+
*
|
|
22
|
+
* Matching is exact: these are fixed strings the agent emits, not prose.
|
|
23
|
+
*/
|
|
24
|
+
export declare const GENERIC_ACTIVITY_LABELS: ReadonlySet<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted by the activity observer when the semantic-summary side channel
|
|
27
|
+
* hits its per-run call cap. Defined here (rather than in the observer) so
|
|
28
|
+
* the generic-label set above can carry it as a plain string literal that
|
|
29
|
+
* the parity script can read.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ACTIVITY_OBSERVER_EXHAUSTED_LABEL = "Activity summaries paused";
|
|
32
|
+
//# sourceMappingURL=activity-labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-labels.d.ts","sourceRoot":"","sources":["../../src/agent/activity-labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAWtD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The labels that are not a name for the work.
|
|
3
|
+
*
|
|
4
|
+
* The agent emits these for every run — phase boilerplate ("Processing"),
|
|
5
|
+
* lifecycle states ("Queued", "Idle"), and system notices ("Activity
|
|
6
|
+
* summaries paused") — so they say nothing about *this* task. Two decisions
|
|
7
|
+
* hang off the same judgment and must agree:
|
|
8
|
+
*
|
|
9
|
+
* - `ThreadActivityController.latchSemanticTitle` refuses to latch one of
|
|
10
|
+
* these as the run's `taskTitle`;
|
|
11
|
+
* - the display surfaces (Telegram status card, Fin Mobile conversation
|
|
12
|
+
* header) skip them when falling back from `taskTitle` to `currentStep`
|
|
13
|
+
* to the activity history.
|
|
14
|
+
*
|
|
15
|
+
* If the sets drift, a label the controller refused as a title leaks straight
|
|
16
|
+
* into a header via the fallback — the exhausted notice rendered as the name
|
|
17
|
+
* of the work. Keep this the only copy inside `src/`; `services/fin-mobile`
|
|
18
|
+
* is a separate Expo app that cannot import from here, so its copy in
|
|
19
|
+
* `src/conversation/activity.ts` is locked to this one by
|
|
20
|
+
* `scripts/test-activity-generic-labels-parity.mjs`.
|
|
21
|
+
*
|
|
22
|
+
* Matching is exact: these are fixed strings the agent emits, not prose.
|
|
23
|
+
*/
|
|
24
|
+
export const GENERIC_ACTIVITY_LABELS = new Set([
|
|
25
|
+
"Processing",
|
|
26
|
+
"Started working",
|
|
27
|
+
"Preparing a response",
|
|
28
|
+
"Completing the request",
|
|
29
|
+
"Completed",
|
|
30
|
+
"Work failed",
|
|
31
|
+
"Waiting for you",
|
|
32
|
+
"Queued",
|
|
33
|
+
"Idle",
|
|
34
|
+
"Activity summaries paused",
|
|
35
|
+
]);
|
|
36
|
+
/**
|
|
37
|
+
* Emitted by the activity observer when the semantic-summary side channel
|
|
38
|
+
* hits its per-run call cap. Defined here (rather than in the observer) so
|
|
39
|
+
* the generic-label set above can carry it as a plain string literal that
|
|
40
|
+
* the parity script can read.
|
|
41
|
+
*/
|
|
42
|
+
export const ACTIVITY_OBSERVER_EXHAUSTED_LABEL = "Activity summaries paused";
|
|
43
|
+
//# sourceMappingURL=activity-labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-labels.js","sourceRoot":"","sources":["../../src/agent/activity-labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,wBAAwB;IACxB,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,QAAQ;IACR,MAAM;IACN,2BAA2B;CAC5B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,2BAA2B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { VisionClawConfig } from "../config/types.js";
|
|
3
|
+
import { ACTIVITY_OBSERVER_EXHAUSTED_LABEL } from "./activity-labels.js";
|
|
3
4
|
export declare const MAX_ACTIVITY_OBSERVER_CALLS_PER_RUN = 60;
|
|
4
|
-
export
|
|
5
|
+
export { ACTIVITY_OBSERVER_EXHAUSTED_LABEL };
|
|
5
6
|
export declare const ActivityProjectionSchema: z.ZodObject<{
|
|
6
7
|
decision: z.ZodEnum<{
|
|
7
8
|
update: "update";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-observer.d.ts","sourceRoot":"","sources":["../../src/agent/activity-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-observer.d.ts","sourceRoot":"","sources":["../../src/agent/activity-observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { logger } from "../logger.js";
|
|
|
3
3
|
import { runSideCall } from "./model-provider.js";
|
|
4
4
|
import { redactPublicToolInput } from "./public-activity.js";
|
|
5
5
|
import { sanitizePublicActivityLabel } from "../shared/public-activity-label.js";
|
|
6
|
+
import { ACTIVITY_OBSERVER_EXHAUSTED_LABEL } from "./activity-labels.js";
|
|
6
7
|
const OBSERVER_INITIAL_DELAY_MS = 1_000;
|
|
7
8
|
const OBSERVER_FOLLOW_UP_DELAY_MS = 5_000;
|
|
8
9
|
const OBSERVER_DELAY_STEP_MS = 5_000;
|
|
@@ -12,7 +13,7 @@ const OBSERVER_TIMEOUT_MS = 5_000;
|
|
|
12
13
|
const MAX_CONTEXT_PARTS = 12;
|
|
13
14
|
const MAX_CONTEXT_PART_LENGTH = 1_200;
|
|
14
15
|
export const MAX_ACTIVITY_OBSERVER_CALLS_PER_RUN = 60;
|
|
15
|
-
export
|
|
16
|
+
export { ACTIVITY_OBSERVER_EXHAUSTED_LABEL };
|
|
16
17
|
// OpenAI's native schema converter requires a root object, so the wire schema
|
|
17
18
|
// uses a nullable label instead of a top-level discriminated union. The refine
|
|
18
19
|
// keeps the same exact decision contract at runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-observer.js","sourceRoot":"","sources":["../../src/agent/activity-observer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activity-observer.js","sourceRoot":"","sources":["../../src/agent/activity-observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* request body (system prompt, tools, messages summary) to JSONL, and forwards
|
|
4
|
-
* the request to the real Anthropic API.
|
|
2
|
+
* Local reverse proxy in front of Anthropic-compatible LLM Gateway calls.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* to the proxy via `ANTHROPIC_BASE_URL=http://localhost:<port>`.
|
|
4
|
+
* The Claude Agent SDK subprocess (`cli.js`) is pointed here via
|
|
5
|
+
* `ANTHROPIC_BASE_URL=http://127.0.0.1:<port>`. Two modes:
|
|
9
6
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* - `log-bodies` (dev): buffer request/response, write a local JSONL capture,
|
|
8
|
+
* and optionally write a local llm-gateway request id to `runtime_log`.
|
|
9
|
+
* - `correlate` (production): write a local llm-gateway request id to
|
|
10
|
+
* `runtime_log` (plus upstream `x-request-id` on the response), and
|
|
11
|
+
* otherwise pipe bytes through without recording bodies.
|
|
13
12
|
*/
|
|
13
|
+
import { generateLlmGatewayRequestId } from "./llm-gateway-request-id.js";
|
|
14
|
+
export { generateLlmGatewayRequestId };
|
|
15
|
+
export type ApiProxyMode = "log-bodies" | "correlate";
|
|
14
16
|
export interface ApiProxyHandle {
|
|
15
17
|
port: number;
|
|
16
18
|
close: () => void;
|
|
17
19
|
}
|
|
20
|
+
export interface StartApiProxyOptions {
|
|
21
|
+
targetBaseUrl?: string;
|
|
22
|
+
logDir?: string;
|
|
23
|
+
mode?: ApiProxyMode;
|
|
24
|
+
/** Write a local request id to runtime_log when the upstream is LLM Gateway. */
|
|
25
|
+
logGatewayRequestId?: boolean;
|
|
26
|
+
}
|
|
18
27
|
/**
|
|
19
|
-
* Start the API
|
|
28
|
+
* Start the API proxy. Returns a handle with the assigned port.
|
|
20
29
|
* Subsequent calls return the same singleton.
|
|
21
30
|
*/
|
|
22
|
-
export declare function startApiProxy(opts:
|
|
23
|
-
targetBaseUrl?: string;
|
|
24
|
-
logDir: string;
|
|
25
|
-
}): Promise<ApiProxyHandle>;
|
|
31
|
+
export declare function startApiProxy(opts: StartApiProxyOptions): Promise<ApiProxyHandle>;
|
|
26
32
|
//# sourceMappingURL=api-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-proxy.d.ts","sourceRoot":"","sources":["../../src/agent/api-proxy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-proxy.d.ts","sourceRoot":"","sources":["../../src/agent/api-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,EACL,2BAA2B,EAI5B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAgRD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwNvF"}
|
package/dist/agent/api-proxy.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* request body (system prompt, tools, messages summary) to JSONL, and forwards
|
|
4
|
-
* the request to the real Anthropic API.
|
|
2
|
+
* Local reverse proxy in front of Anthropic-compatible LLM Gateway calls.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* to the proxy via `ANTHROPIC_BASE_URL=http://localhost:<port>`.
|
|
4
|
+
* The Claude Agent SDK subprocess (`cli.js`) is pointed here via
|
|
5
|
+
* `ANTHROPIC_BASE_URL=http://127.0.0.1:<port>`. Two modes:
|
|
9
6
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* - `log-bodies` (dev): buffer request/response, write a local JSONL capture,
|
|
8
|
+
* and optionally write a local llm-gateway request id to `runtime_log`.
|
|
9
|
+
* - `correlate` (production): write a local llm-gateway request id to
|
|
10
|
+
* `runtime_log` (plus upstream `x-request-id` on the response), and
|
|
11
|
+
* otherwise pipe bytes through without recording bodies.
|
|
13
12
|
*/
|
|
14
13
|
import http from "node:http";
|
|
15
14
|
import https from "node:https";
|
|
@@ -18,16 +17,12 @@ import path from "node:path";
|
|
|
18
17
|
import zlib from "node:zlib";
|
|
19
18
|
import { URL } from "node:url";
|
|
20
19
|
import { logger } from "../logger.js";
|
|
20
|
+
import { generateLlmGatewayRequestId, getUpstreamRequestId, getXRequestId, logLlmGatewayRequest, } from "./llm-gateway-request-id.js";
|
|
21
|
+
export { generateLlmGatewayRequestId };
|
|
21
22
|
let singleton = null;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// minutes-long idle periods between agent API calls.
|
|
26
|
-
const httpsAgent = new https.Agent({
|
|
27
|
-
keepAlive: false,
|
|
28
|
-
maxSockets: 10,
|
|
29
|
-
ALPNProtocols: ["http/1.1"],
|
|
30
|
-
});
|
|
23
|
+
const STRIP_HEADERS = new Set([
|
|
24
|
+
"host", "connection", "transfer-encoding",
|
|
25
|
+
]);
|
|
31
26
|
function extractSystemReminders(messages) {
|
|
32
27
|
const reminders = [];
|
|
33
28
|
for (const msg of messages) {
|
|
@@ -79,15 +74,6 @@ function decodeResponseBodyForLogging(responseBody, headers) {
|
|
|
79
74
|
}
|
|
80
75
|
return responseBody.toString("utf-8");
|
|
81
76
|
}
|
|
82
|
-
function getUpstreamRequestId(headers) {
|
|
83
|
-
return getHeaderValue(headers, "request-id")
|
|
84
|
-
?? getHeaderValue(headers, "x-request-id")
|
|
85
|
-
?? getHeaderValue(headers, "anthropic-request-id")
|
|
86
|
-
?? getHeaderValue(headers, "cf-request-id")
|
|
87
|
-
?? getHeaderValue(headers, "x-amzn-trace-id")
|
|
88
|
-
?? getHeaderValue(headers, "cf-ray")
|
|
89
|
-
?? null;
|
|
90
|
-
}
|
|
91
77
|
function parseAnthropicResponseBody(responseBodyRaw) {
|
|
92
78
|
try {
|
|
93
79
|
return JSON.parse(responseBodyRaw);
|
|
@@ -178,41 +164,131 @@ function finalizeContentBlock(block) {
|
|
|
178
164
|
};
|
|
179
165
|
}
|
|
180
166
|
}
|
|
167
|
+
function buildForwardHeaders(req, targetUrl) {
|
|
168
|
+
const fwdHeaders = {};
|
|
169
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
170
|
+
if (STRIP_HEADERS.has(key))
|
|
171
|
+
continue;
|
|
172
|
+
fwdHeaders[key] = value;
|
|
173
|
+
}
|
|
174
|
+
fwdHeaders.host = targetUrl.host;
|
|
175
|
+
return fwdHeaders;
|
|
176
|
+
}
|
|
177
|
+
function logClaudeGatewayRequest(fields) {
|
|
178
|
+
logLlmGatewayRequest({
|
|
179
|
+
runtime: "claude",
|
|
180
|
+
...fields,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function attachUpstreamErrorHandler(proxyReq, req, res, gatewayRequestId) {
|
|
184
|
+
proxyReq.on("error", (err) => {
|
|
185
|
+
if (gatewayRequestId) {
|
|
186
|
+
logClaudeGatewayRequest({
|
|
187
|
+
phase: "error",
|
|
188
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
189
|
+
method: req.method,
|
|
190
|
+
url: req.url,
|
|
191
|
+
error: err.message,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
if (!req.destroyed) {
|
|
195
|
+
logger.warn(`[api-proxy] upstream error: ${err.message}`);
|
|
196
|
+
}
|
|
197
|
+
if (!res.headersSent) {
|
|
198
|
+
res.writeHead(502, { "Content-Type": "application/json" });
|
|
199
|
+
}
|
|
200
|
+
if (!res.writableEnded) {
|
|
201
|
+
res.end(JSON.stringify({ error: "proxy_error", message: err.message }));
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function createUpstreamRequest(targetUrl, method, headers, httpsAgent, httpAgent, onResponse) {
|
|
206
|
+
const isHttps = targetUrl.protocol === "https:";
|
|
207
|
+
const options = {
|
|
208
|
+
hostname: targetUrl.hostname,
|
|
209
|
+
port: targetUrl.port ? Number(targetUrl.port) : (isHttps ? 443 : 80),
|
|
210
|
+
path: targetUrl.pathname + targetUrl.search,
|
|
211
|
+
method,
|
|
212
|
+
headers,
|
|
213
|
+
agent: isHttps ? httpsAgent : httpAgent,
|
|
214
|
+
};
|
|
215
|
+
return isHttps
|
|
216
|
+
? https.request(options, onResponse)
|
|
217
|
+
: http.request(options, onResponse);
|
|
218
|
+
}
|
|
181
219
|
/**
|
|
182
|
-
* Start the API
|
|
220
|
+
* Start the API proxy. Returns a handle with the assigned port.
|
|
183
221
|
* Subsequent calls return the same singleton.
|
|
184
222
|
*/
|
|
185
223
|
export async function startApiProxy(opts) {
|
|
186
224
|
if (singleton)
|
|
187
225
|
return singleton;
|
|
188
226
|
const targetBase = opts.targetBaseUrl ?? "https://api.anthropic.com";
|
|
227
|
+
const mode = opts.mode ?? "log-bodies";
|
|
228
|
+
const logGatewayRequestId = opts.logGatewayRequestId === true;
|
|
189
229
|
const logDir = opts.logDir;
|
|
190
|
-
if (
|
|
191
|
-
|
|
230
|
+
if (mode === "log-bodies") {
|
|
231
|
+
if (!logDir) {
|
|
232
|
+
throw new Error("startApiProxy(log-bodies) requires logDir");
|
|
233
|
+
}
|
|
234
|
+
if (!fs.existsSync(logDir)) {
|
|
235
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
236
|
+
}
|
|
192
237
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
238
|
+
const httpsAgent = new https.Agent({
|
|
239
|
+
keepAlive: false,
|
|
240
|
+
maxSockets: 10,
|
|
241
|
+
ALPNProtocols: ["http/1.1"],
|
|
242
|
+
});
|
|
243
|
+
const httpAgent = new http.Agent({
|
|
244
|
+
keepAlive: false,
|
|
245
|
+
maxSockets: 10,
|
|
246
|
+
});
|
|
197
247
|
const server = http.createServer((req, res) => {
|
|
198
|
-
const isMessagesEndpoint = req.method === "POST" && req.url?.startsWith("/v1/messages");
|
|
248
|
+
const isMessagesEndpoint = req.method === "POST" && (req.url?.startsWith("/v1/messages") ?? false);
|
|
199
249
|
const targetUrl = new URL(req.url ?? "/", targetBase);
|
|
200
|
-
|
|
201
|
-
const fwdHeaders =
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
250
|
+
const gatewayRequestId = logGatewayRequestId ? generateLlmGatewayRequestId() : null;
|
|
251
|
+
const fwdHeaders = buildForwardHeaders(req, targetUrl);
|
|
252
|
+
req.on("error", (err) => {
|
|
253
|
+
logger.warn(`[api-proxy] client request error: ${err.message}`);
|
|
254
|
+
});
|
|
255
|
+
if (mode === "correlate") {
|
|
256
|
+
if (gatewayRequestId) {
|
|
257
|
+
logClaudeGatewayRequest({
|
|
258
|
+
phase: "request",
|
|
259
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
260
|
+
method: req.method,
|
|
261
|
+
url: req.url,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
const proxyReq = createUpstreamRequest(targetUrl, req.method, fwdHeaders, httpsAgent, httpAgent, (proxyRes) => {
|
|
265
|
+
if (gatewayRequestId) {
|
|
266
|
+
logClaudeGatewayRequest({
|
|
267
|
+
phase: "response",
|
|
268
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
269
|
+
method: req.method,
|
|
270
|
+
url: req.url,
|
|
271
|
+
status: proxyRes.statusCode,
|
|
272
|
+
x_request_id: getXRequestId(proxyRes.headers),
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
res.writeHead(proxyRes.statusCode ?? 502, proxyRes.headers);
|
|
276
|
+
proxyRes.on("error", (err) => {
|
|
277
|
+
logger.warn(`[api-proxy] upstream response error: ${err.message}`);
|
|
278
|
+
if (!res.writableEnded) {
|
|
279
|
+
res.destroy(err);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
proxyRes.pipe(res);
|
|
283
|
+
});
|
|
284
|
+
attachUpstreamErrorHandler(proxyReq, req, res, gatewayRequestId);
|
|
285
|
+
req.pipe(proxyReq);
|
|
286
|
+
return;
|
|
206
287
|
}
|
|
207
|
-
fwdHeaders.host = targetUrl.host;
|
|
208
|
-
// Buffer the incoming request body, then forward
|
|
209
288
|
const chunks = [];
|
|
210
289
|
req.on("data", (chunk) => {
|
|
211
290
|
chunks.push(chunk);
|
|
212
291
|
});
|
|
213
|
-
req.on("error", (err) => {
|
|
214
|
-
logger.warn(`[api-proxy] client request error: ${err.message}`);
|
|
215
|
-
});
|
|
216
292
|
req.on("end", () => {
|
|
217
293
|
const body = Buffer.concat(chunks);
|
|
218
294
|
const requestBodyRaw = body.toString("utf-8");
|
|
@@ -225,17 +301,26 @@ export async function startApiProxy(opts) {
|
|
|
225
301
|
// Best-effort logging — don't break the proxy
|
|
226
302
|
}
|
|
227
303
|
}
|
|
228
|
-
// Forward the complete body to the upstream API via HTTPS.
|
|
229
|
-
// We set content-length explicitly since we have the full body.
|
|
230
304
|
fwdHeaders["content-length"] = String(body.length);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
305
|
+
if (gatewayRequestId) {
|
|
306
|
+
logClaudeGatewayRequest({
|
|
307
|
+
phase: "request",
|
|
308
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
309
|
+
method: req.method,
|
|
310
|
+
url: req.url,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
const proxyReq = createUpstreamRequest(targetUrl, req.method, fwdHeaders, httpsAgent, httpAgent, (proxyRes) => {
|
|
314
|
+
if (gatewayRequestId) {
|
|
315
|
+
logClaudeGatewayRequest({
|
|
316
|
+
phase: "response",
|
|
317
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
318
|
+
method: req.method,
|
|
319
|
+
url: req.url,
|
|
320
|
+
status: proxyRes.statusCode,
|
|
321
|
+
x_request_id: getXRequestId(proxyRes.headers),
|
|
322
|
+
});
|
|
323
|
+
}
|
|
239
324
|
const responseChunks = [];
|
|
240
325
|
res.writeHead(proxyRes.statusCode ?? 502, proxyRes.headers);
|
|
241
326
|
proxyRes.on("data", (chunk) => {
|
|
@@ -246,7 +331,7 @@ export async function startApiProxy(opts) {
|
|
|
246
331
|
if (!res.writableEnded) {
|
|
247
332
|
res.end();
|
|
248
333
|
}
|
|
249
|
-
if (isMessagesEndpoint && body.length > 0) {
|
|
334
|
+
if (isMessagesEndpoint && body.length > 0 && logDir) {
|
|
250
335
|
try {
|
|
251
336
|
const responseBody = Buffer.concat(responseChunks);
|
|
252
337
|
const responseBodyRaw = decodeResponseBodyForLogging(responseBody, proxyRes.headers);
|
|
@@ -263,6 +348,7 @@ export async function startApiProxy(opts) {
|
|
|
263
348
|
messages_count: messages?.length ?? 0,
|
|
264
349
|
request_size_bytes: body.length,
|
|
265
350
|
response_status_code: proxyRes.statusCode,
|
|
351
|
+
llm_gateway_request_id: gatewayRequestId,
|
|
266
352
|
upstream_request_id: getUpstreamRequestId(proxyRes.headers),
|
|
267
353
|
response_headers: proxyRes.headers,
|
|
268
354
|
response_body: parsedResponseBody,
|
|
@@ -285,18 +371,7 @@ export async function startApiProxy(opts) {
|
|
|
285
371
|
}
|
|
286
372
|
});
|
|
287
373
|
});
|
|
288
|
-
proxyReq
|
|
289
|
-
if (!req.destroyed) {
|
|
290
|
-
logger.warn(`[api-proxy] upstream error: ${err.message}`);
|
|
291
|
-
}
|
|
292
|
-
if (!res.headersSent) {
|
|
293
|
-
res.writeHead(502, { "Content-Type": "application/json" });
|
|
294
|
-
}
|
|
295
|
-
if (!res.writableEnded) {
|
|
296
|
-
res.end(JSON.stringify({ error: "proxy_error", message: err.message }));
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
// Send the buffered body and end the request
|
|
374
|
+
attachUpstreamErrorHandler(proxyReq, req, res, gatewayRequestId);
|
|
300
375
|
proxyReq.end(body);
|
|
301
376
|
});
|
|
302
377
|
});
|
|
@@ -313,11 +388,12 @@ export async function startApiProxy(opts) {
|
|
|
313
388
|
close: () => {
|
|
314
389
|
server.close();
|
|
315
390
|
httpsAgent.destroy();
|
|
391
|
+
httpAgent.destroy();
|
|
316
392
|
singleton = null;
|
|
317
393
|
},
|
|
318
394
|
};
|
|
319
395
|
singleton = handle;
|
|
320
|
-
logger.system(`[api-proxy] listening on 127.0.0.1:${addr.port}`);
|
|
396
|
+
logger.system(`[api-proxy] listening on 127.0.0.1:${addr.port} mode=${mode}`);
|
|
321
397
|
resolve(handle);
|
|
322
398
|
});
|
|
323
399
|
});
|