botmux 3.18.6 → 3.18.7
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/dist/.runtime-build-id +1 -1
- package/dist/adapters/backend/riff-backend.d.ts +158 -0
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +330 -7
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts +42 -0
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +95 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +2 -1
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/dsh.d.ts.map +1 -1
- package/dist/adapters/cli/dsh.js +2 -1
- package/dist/adapters/cli/dsh.js.map +1 -1
- package/dist/adapters/cli/mir.d.ts.map +1 -1
- package/dist/adapters/cli/mir.js +2 -1
- package/dist/adapters/cli/mir.js.map +1 -1
- package/dist/adapters/cli/mira.d.ts.map +1 -1
- package/dist/adapters/cli/mira.js +2 -1
- package/dist/adapters/cli/mira.js.map +1 -1
- package/dist/adapters/hook-command.d.ts +3 -5
- package/dist/adapters/hook-command.d.ts.map +1 -1
- package/dist/adapters/hook-command.js +59 -13
- package/dist/adapters/hook-command.js.map +1 -1
- package/dist/autostart.d.ts +76 -0
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +105 -28
- package/dist/autostart.js.map +1 -1
- package/dist/bot-registry.d.ts +12 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +43 -3
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-command.d.ts +142 -0
- package/dist/cli/dashboard-command.d.ts.map +1 -1
- package/dist/cli/dashboard-command.js +160 -0
- package/dist/cli/dashboard-command.js.map +1 -1
- package/dist/cli/dashboard-endpoint.d.ts +66 -0
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +144 -30
- package/dist/cli/dashboard-endpoint.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +2 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +8 -2
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +270 -38
- package/dist/cli.js.map +1 -1
- package/dist/core/binary-self-update.d.ts +7 -0
- package/dist/core/binary-self-update.d.ts.map +1 -1
- package/dist/core/binary-self-update.js +17 -0
- package/dist/core/binary-self-update.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +52 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts +9 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +5 -0
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/self-spawn.d.ts +46 -1
- package/dist/core/self-spawn.d.ts.map +1 -1
- package/dist/core/self-spawn.js +57 -0
- package/dist/core/self-spawn.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +81 -5
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +93 -0
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/autostart-api.d.ts.map +1 -1
- package/dist/dashboard/autostart-api.js +16 -3
- package/dist/dashboard/autostart-api.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +2 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +22 -6
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +1 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +3 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +28 -0
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/trigger-api.d.ts.map +1 -1
- package/dist/dashboard/trigger-api.js +33 -21
- package/dist/dashboard/trigger-api.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +12 -2
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +2 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts +40 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +52 -2
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +2 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +272 -30
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-dock-page-XHJUYFGN.js → agent-workbench-dock-page-6LC422N6.js} +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-page-FLKTLIRM.js → agent-workbench-page-RSAWY7O2.js} +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-XMGLZZ2E.js → bot-defaults-page-67RAWCSQ.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-TLG45URB.js → chunk-IA5KMD5O.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-BU3Q6XC6.js → chunk-K232GT3M.js} +2 -2
- package/dist/dashboard-web/chunks/chunk-MMLTCXHP.js +10 -0
- package/dist/dashboard-web/chunks/{chunk-ECFC7UG2.js → chunk-R3LJUCEO.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-Z67OSM5P.js → chunk-YJA3KY3J.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-WDM4CEAU.js → connectors-page-DJCTHSFB.js} +1 -1
- package/dist/dashboard-web/chunks/{feedback-page-GMJ4FLJ4.js → feedback-page-O7SZRKNM.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-L4ZJNWVR.js → groups-page-7PONUYHE.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-7LUJU2CX.js → insights-page-J6DAAJ6D.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-7LZUJQPF.js → monitor-room-F3QNEW7N.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-AUSXMPYO.js → monitoring-page-JHDD2VS2.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-6ZU6MAZN.js → office-page-MMTN4IKD.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-QBC5CIYH.js → overview-page-IQ2UJAJP.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-QO3YCA7D.js → roles-page-FNI4MGX6.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-YNGSKDQW.js → schedules-page-6PUU63KS.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-BWR4UB6X.js → sessions-page-O4N72EXT.js} +4 -4
- package/dist/dashboard-web/chunks/{settings-page-2IRIS3FP.js → settings-page-G7B3STUF.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-5RZPM6HJ.js → skills-page-CEWKQOIG.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-KERG6LKC.js → team-federation-page-NUP4VK4H.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-766CBD7H.js → v3-page-M4XF6D5Z.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-2M6XZD5C.js → whiteboards-page-L755NZX6.js} +1 -1
- package/dist/dashboard-web/style.css +13 -0
- package/dist/dashboard.js +3 -0
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +3 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +10 -3
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +19 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +19 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/api-gate.d.ts +53 -0
- package/dist/im/lark/api-gate.d.ts.map +1 -0
- package/dist/im/lark/api-gate.js +322 -0
- package/dist/im/lark/api-gate.js.map +1 -0
- package/dist/im/lark/audio-transcribe.d.ts +23 -0
- package/dist/im/lark/audio-transcribe.d.ts.map +1 -0
- package/dist/im/lark/audio-transcribe.js +126 -0
- package/dist/im/lark/audio-transcribe.js.map +1 -0
- package/dist/im/lark/card-builder.d.ts +6 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +53 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +10 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +68 -1
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +247 -224
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +34 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts +16 -0
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +31 -0
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/services/budget-tracker.d.ts +61 -0
- package/dist/services/budget-tracker.d.ts.map +1 -0
- package/dist/services/budget-tracker.js +306 -0
- package/dist/services/budget-tracker.js.map +1 -0
- package/dist/services/connector-store.d.ts +16 -0
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/failed-turn-retry.d.ts +43 -0
- package/dist/services/failed-turn-retry.d.ts.map +1 -0
- package/dist/services/failed-turn-retry.js +50 -0
- package/dist/services/failed-turn-retry.js.map +1 -0
- package/dist/services/model-pricing.d.ts +80 -0
- package/dist/services/model-pricing.d.ts.map +1 -0
- package/dist/services/model-pricing.js +182 -0
- package/dist/services/model-pricing.js.map +1 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +13 -3
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +10 -0
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/usage-ledger.d.ts +10 -0
- package/dist/services/usage-ledger.d.ts.map +1 -1
- package/dist/services/usage-ledger.js +36 -0
- package/dist/services/usage-ledger.js.map +1 -1
- package/dist/services/voice/asr.d.ts +17 -0
- package/dist/services/voice/asr.d.ts.map +1 -0
- package/dist/services/voice/asr.js +64 -0
- package/dist/services/voice/asr.js.map +1 -0
- package/dist/services/voice/index.d.ts +17 -2
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +43 -0
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/types.d.ts +15 -0
- package/dist/services/voice/types.d.ts.map +1 -1
- package/dist/services/webhook-idempotency.d.ts +134 -0
- package/dist/services/webhook-idempotency.d.ts.map +1 -0
- package/dist/services/webhook-idempotency.js +265 -0
- package/dist/services/webhook-idempotency.js.map +1 -0
- package/dist/setup/app-name.d.ts +1 -0
- package/dist/setup/app-name.d.ts.map +1 -1
- package/dist/setup/app-name.js +7 -0
- package/dist/setup/app-name.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +28 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +73 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +26 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +90 -1
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/setup/open-platform-outcome.d.ts.map +1 -1
- package/dist/setup/open-platform-outcome.js +8 -2
- package/dist/setup/open-platform-outcome.js.map +1 -1
- package/dist/types.d.ts +20 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.d.ts +29 -9
- package/dist/utils/usage-limit-tracker.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.js +122 -14
- package/dist/utils/usage-limit-tracker.js.map +1 -1
- package/dist/worker.js +27 -6
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +56 -56
- package/dist/workflows/events/payloads.d.ts +2 -2
- package/dist/workflows/events/schema.d.ts +430 -430
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
- package/dist/workflows/v3/run-envelope.d.ts +56 -56
- package/package.json +9 -8
- package/scripts/postinstall-bin.mjs +25 -0
- package/dist/dashboard-web/chunks/chunk-NJCJR3U2.js +0 -10
package/dist/.runtime-build-id
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
7ffead20508a7bf7e8617ab21fa14b8a28746b30f59b24300b192af33659585e
|
|
@@ -91,6 +91,29 @@ export interface RiffBackendConfig {
|
|
|
91
91
|
* after the mandatory botmux install commands.
|
|
92
92
|
*/
|
|
93
93
|
setupCommands?: string[];
|
|
94
|
+
/**
|
|
95
|
+
* Extra HTTP headers added to EVERY riff outbound request (task-execute,
|
|
96
|
+
* task-follow-up, task-stream, the reconcile tasks query, task-cancel,
|
|
97
|
+
* task-detail). Intended for PPE/lane routing — e.g. { 'x-tt-env':
|
|
98
|
+
* 'ppe_shenhan_sh', 'x-use-ppe': '1' } to hit a PPE deployment instead of
|
|
99
|
+
* production. Empty/unset → no extra headers (production, current behavior).
|
|
100
|
+
* MUST cover all requests uniformly: routing only task-execute to PPE while
|
|
101
|
+
* task-stream hits production would split a session across environments.
|
|
102
|
+
* Also mergeable from the BOTMUX_RIFF_EXTRA_HEADERS env var (JSON object);
|
|
103
|
+
* config wins on key conflicts.
|
|
104
|
+
*/
|
|
105
|
+
extraHeaders?: Record<string, string>;
|
|
106
|
+
/**
|
|
107
|
+
* Override the follow-up fetch timeout budgets (ms). Both optional; when unset
|
|
108
|
+
* the built-in defaults apply (hot 30s / cold 60s). Cold covers a follow-up
|
|
109
|
+
* that must synchronously wake a reclaimed sandbox (idle gap / daemon-restart
|
|
110
|
+
* resume); hot covers a follow-up right after the previous turn. Exposed so the
|
|
111
|
+
* values can be tuned against riff's measured P50/P99 without a code change,
|
|
112
|
+
* and so tests/live-repro can force a timeout by shrinking them. Non-positive
|
|
113
|
+
* or non-finite values are ignored.
|
|
114
|
+
*/
|
|
115
|
+
followUpHotTimeoutMs?: number;
|
|
116
|
+
followUpColdTimeoutMs?: number;
|
|
94
117
|
}
|
|
95
118
|
/** Valid riff service base URL: non-empty http(s). Shared by the worker's
|
|
96
119
|
* spawn fail-fast and the dashboard PUT endpoint so every config entry point
|
|
@@ -148,6 +171,7 @@ export declare function cancelRiffTaskById(cfg: {
|
|
|
148
171
|
baseUrl: string;
|
|
149
172
|
jwt?: string;
|
|
150
173
|
jwtEnv?: string;
|
|
174
|
+
extraHeaders?: Record<string, string>;
|
|
151
175
|
}, taskId: string): Promise<boolean>;
|
|
152
176
|
/** Irreversible short hash of a sandbox URL for log correlation — the unique
|
|
153
177
|
* subdomain IS the write capability, so neither URL nor host may be logged. */
|
|
@@ -322,7 +346,42 @@ export declare class RiffBackend implements SessionBackend {
|
|
|
322
346
|
private connectionStartedAtMs;
|
|
323
347
|
/** 预算层级(单调覆盖,见 destroySession 注释);字段化以便测试注入边界。 */
|
|
324
348
|
private cancelTimeoutMs;
|
|
349
|
+
/** task-execute(首建)的 fetch 预算。create 只是服务端入队,快,保持较小。 */
|
|
325
350
|
private createTimeoutMs;
|
|
351
|
+
/** task-follow-up 的 fetch 预算,冷/热两档。follow-up 返回前的同步预检(JWT 刷新
|
|
352
|
+
* + 读沙箱状态 + lark/meego/agentBuddy 授权检查)本就比 create 重;沙箱变冷时
|
|
353
|
+
* (空闲被回收 / daemon 重启后 resume 血缘)还会叠加 archive+snapshot+IDE-proxy
|
|
354
|
+
* 探测——正是当初顶穿共用 10s 预算的慢路径(实测 spawn→timeout 恰好 10.01s)。
|
|
355
|
+
* 故 follow-up 给更大预算并按冷/热分档。30/60s 为暂定值,待 riff 侧 P50/P99
|
|
356
|
+
* 回填;字段化以便测试注入。 */
|
|
357
|
+
private followUpHotTimeoutMs;
|
|
358
|
+
private followUpColdTimeoutMs;
|
|
359
|
+
/** follow-up 距上次任务活动超过此阈值(或本进程尚无任何活动,见 followUpTimeoutMs)
|
|
360
|
+
* 即判为冷沙箱,走 followUpColdTimeoutMs。 */
|
|
361
|
+
private coldFollowUpThresholdMs;
|
|
362
|
+
/** follow-up 超时后对 thread 的对账查询预算 / 最多尝试次数 / 重试间隔。查询是只读的,
|
|
363
|
+
* 刚在超时瞬间建好的子任务可能要一小会才可查到,故允许一次短重试。字段化以便测试注入。 */
|
|
364
|
+
private reconcileTimeoutMs;
|
|
365
|
+
private reconcileMaxAttempts;
|
|
366
|
+
private reconcileRetryDelayMs;
|
|
367
|
+
/** 对账「发送时刻下限」的容差,分两档(见 pickReconciledChild):
|
|
368
|
+
* - 已从 `Date` 头实测到服务端偏差 → 只需覆盖测量误差本身(`Date` 头整秒精度
|
|
369
|
+
* ~0.5s + 一个往返 + 期间的小漂移),取 5s。
|
|
370
|
+
* - 尚未观测到 `Date` 头(首次对账、代理剥掉了该头等) → 偏差完全未知,退回
|
|
371
|
+
* 30s 盲兜底:宁可窗口宽一些,也不要因本机时钟快而永远认领不到子任务。
|
|
372
|
+
* 容差直接就是误接窗口宽度(创建于本轮发送前该时长内的遗留任务会被误判为本轮
|
|
373
|
+
* 的),所以能测到偏差时必须收窄。字段化以便测试注入。 */
|
|
374
|
+
private reconcileClockSkewMs;
|
|
375
|
+
private reconcileBlindClockSkewMs;
|
|
376
|
+
/** riff 服务端时钟减本机时钟(ms),由 tasks 响应的 `Date` 头实测得出;`null`
|
|
377
|
+
* 表示尚未观测到(此时按偏差未知处理,走盲兜底容差)。用于把「发送时刻」换算到
|
|
378
|
+
* 服务端时间轴,再与服务端写入的 `createdAt` 比较。 */
|
|
379
|
+
private serverClockOffsetMs;
|
|
380
|
+
/** 最近一次「任务活动」的 wall-clock ms(成功建任务/续任务,或收到任意 SSE 事件),
|
|
381
|
+
* 本进程尚无活动时为 null。驱动 follow-up 冷/热判据:长时间空闲或全新进程
|
|
382
|
+
* (daemon 重启 resume)意味着 riff 沙箱大概率已被回收,下一次 follow-up 需同步
|
|
383
|
+
* 唤醒它——正是需要更大预算的慢路径。 */
|
|
384
|
+
private lastTaskActivityMs;
|
|
326
385
|
private destroyDeadlineMs;
|
|
327
386
|
/** SSE 重连退避基数(指数退避的第一档);字段化以便测试把重连间隔压到 0。 */
|
|
328
387
|
private reconnectBaseDelayMs;
|
|
@@ -372,6 +431,16 @@ export declare class RiffBackend implements SessionBackend {
|
|
|
372
431
|
* host-identity refresh). `opts.forceRefresh=true` bypasses the debounce
|
|
373
432
|
* window (an actual server 401 proved the token bad). */
|
|
374
433
|
private getJwt;
|
|
434
|
+
/** Merge the configured extra headers (PPE/lane routing, see config.extraHeaders)
|
|
435
|
+
* into an outbound request's header map, in place. Precedence: existing headers
|
|
436
|
+
* already set (JWT, Content-Type) are never overwritten; config.extraHeaders
|
|
437
|
+
* wins over the BOTMUX_RIFF_EXTRA_HEADERS env var on key conflicts. Applied to
|
|
438
|
+
* EVERY riff request so a session never splits across environments. No-op when
|
|
439
|
+
* nothing is configured (production, current behavior). */
|
|
440
|
+
private applyExtraHeaders;
|
|
441
|
+
/** Extra headers from the env var (JSON object) overlaid by config.extraHeaders.
|
|
442
|
+
* Malformed env JSON is ignored with a warning rather than throwing. */
|
|
443
|
+
private resolveExtraHeaders;
|
|
375
444
|
private resolveJwt;
|
|
376
445
|
private readJwtFromBytecloudKeychain;
|
|
377
446
|
spawn(_bin: string, _args: string[], _opts: SpawnOpts): void;
|
|
@@ -423,7 +492,96 @@ export declare class RiffBackend implements SessionBackend {
|
|
|
423
492
|
private extractAttachments;
|
|
424
493
|
private basename;
|
|
425
494
|
private createTask;
|
|
495
|
+
/** Record a "task activity" tick — drives the follow-up cold/hot decision.
|
|
496
|
+
* Called on every SSE event and on each successful create/adopt so a long
|
|
497
|
+
* idle gap (sandbox likely reclaimed) or a fresh process is detectable. */
|
|
498
|
+
private markActivity;
|
|
499
|
+
/** Pick the follow-up fetch budget. Cold (larger budget) when the riff sandbox
|
|
500
|
+
* has likely gone cold and this follow-up must synchronously wake it:
|
|
501
|
+
* • this process has seen NO task activity yet — the daemon-restart resume
|
|
502
|
+
* case (currentTaskId came from resumeParentTaskId, sandbox long idle);
|
|
503
|
+
* this is exactly the logged 10.01s timeout.
|
|
504
|
+
* • the last activity was longer ago than coldFollowUpThresholdMs.
|
|
505
|
+
* Hot budget otherwise (a follow-up right after the previous turn). */
|
|
506
|
+
private followUpTimeoutMs;
|
|
426
507
|
private followUp;
|
|
508
|
+
/** Node's AbortSignal.timeout() rejects with a DOMException/Error named
|
|
509
|
+
* "TimeoutError" ("The operation was aborted due to timeout"). Match by name
|
|
510
|
+
* (message wording is locale/runtime-dependent). AbortError (manual abort) is
|
|
511
|
+
* deliberately NOT treated as a timeout — that is teardown, handled elsewhere. */
|
|
512
|
+
private isTimeoutError;
|
|
513
|
+
/**
|
|
514
|
+
* After a follow-up fetch times out, ask the thread whether the child task was
|
|
515
|
+
* in fact created (the pre-flight simply outran our budget). botmux sends its
|
|
516
|
+
* own sessionId as the riff threadId (task-execute threadId: this.sessionId),
|
|
517
|
+
* and riff stores it verbatim (no rewrite/mapping) — so we query by sessionId
|
|
518
|
+
* directly, no task-detail hop needed.
|
|
519
|
+
*
|
|
520
|
+
* IDENTITY INVARIANT (locked by design with the riff side): riff's
|
|
521
|
+
* `GET /api/tasks` is owner-scoped. This reconcile MUST reuse the CURRENT
|
|
522
|
+
* backend instance's getJwt() — the same identity that created the task — or it
|
|
523
|
+
* would query as a different owner and get an empty list. Never introduce a
|
|
524
|
+
* different credential here.
|
|
525
|
+
*
|
|
526
|
+
* Returns true iff this follow-up's child task was found and adopted (streaming
|
|
527
|
+
* resumed / terminal result fetched). False means "no child yet" → caller keeps
|
|
528
|
+
* the lineage without adopting.
|
|
529
|
+
*
|
|
530
|
+
* MATCHING ANCHOR — `followUpParentTaskId` PLUS a send-time floor:
|
|
531
|
+
* riff has no per-request id we could echo back (no clientRequestId in the
|
|
532
|
+
* task document, no X-Idempotency-Key handling), so the parent link is the
|
|
533
|
+
* only server-side signal tying a task to this follow-up.
|
|
534
|
+
* It is not unique on its own: riff redirects a follow-up's parent to the
|
|
535
|
+
* thread's LATEST node (api/lambda/task-follow-up.ts — "普通追问必须从 thread
|
|
536
|
+
* 最新节点发起"), so several siblings can share one parent — including a task
|
|
537
|
+
* stranded by an EARLIER timed-out turn. Adopting that one would replay a
|
|
538
|
+
* previous turn's output and silently drop this turn's prompt.
|
|
539
|
+
* Hence `sentAtMs`: only a child created at/after the moment we issued THIS
|
|
540
|
+
* follow-up can be its child. `createdAt` is in riff's
|
|
541
|
+
* TASK_THREAD_SUMMARY_PROJECTION, so the summary view really carries it.
|
|
542
|
+
* A node with an absent/unparsable createdAt is NOT adopted — fail closed,
|
|
543
|
+
* because a wrong adopt is worse than a missed one (the caller keeps the
|
|
544
|
+
* lineage and the user just resends).
|
|
545
|
+
* Ties are broken by the OLDEST qualifying child: the first task created
|
|
546
|
+
* after we sent is the one our request produced.
|
|
547
|
+
*/
|
|
548
|
+
private reconcileAfterFollowUpTimeout;
|
|
549
|
+
/** The effective reconcile floor in riff's time frame: our send instant,
|
|
550
|
+
* translated by the measured server clock offset, minus the tolerance.
|
|
551
|
+
* `createdAt` is stamped by riff's clock (TaskService: `new Date()`), while
|
|
552
|
+
* sentAtMs is ours — two different machines. The tolerance IS the mis-adopt
|
|
553
|
+
* window (a leftover task created within it, just before we sent, still
|
|
554
|
+
* passes), so it is kept tight once the offset is known and only stays wide
|
|
555
|
+
* while it is unknown.
|
|
556
|
+
* CAVEAT: an intermediary (proxy/gateway) may rewrite `Date`, in which case
|
|
557
|
+
* the measured offset is that hop's clock, not riff's — harmless while the two
|
|
558
|
+
* agree to within the tolerance. A server-side NTP jump between stamping
|
|
559
|
+
* `createdAt` and sending the response is absorbed the same way.
|
|
560
|
+
* Single-sourced so the diagnostic log can never name a different threshold
|
|
561
|
+
* than the filter actually applies. */
|
|
562
|
+
private reconcileFloorMs;
|
|
563
|
+
/** The thread node this follow-up created, or undefined. Requires BOTH the
|
|
564
|
+
* parent link AND creation at/after the effective floor (see
|
|
565
|
+
* reconcileFloorMs + the anchor notes on reconcileAfterFollowUpTimeout — the
|
|
566
|
+
* parent alone can match a task stranded by an earlier timed-out turn).
|
|
567
|
+
* Unparsable/absent createdAt → not a candidate. Oldest qualifying node wins. */
|
|
568
|
+
private pickReconciledChild;
|
|
569
|
+
/** riff terminal task statuses — whitelist so future intermediate states are
|
|
570
|
+
* never mis-classified as "done" (they default to "still running"). Mirrors
|
|
571
|
+
* TERMINAL_RIFF_STATUSES. */
|
|
572
|
+
private isTerminalStatus;
|
|
573
|
+
/** GET /api/tasks?threadId=&view=summary → { success, data: RiffThreadNode[] }.
|
|
574
|
+
* Owner-scoped (see reconcileAfterFollowUpTimeout). view=summary is the
|
|
575
|
+
* lightweight projection (no logs/results) suited to this hot-path probe. */
|
|
576
|
+
private fetchThreadNodes;
|
|
577
|
+
/** Record how far riff's clock sits from ours, read from an HTTP `Date`
|
|
578
|
+
* response header (RFC 9110 requires it, and it is generated by the same
|
|
579
|
+
* machine that stamps `createdAt`). Lets the reconcile floor correct for a
|
|
580
|
+
* real measured offset instead of assuming the two clocks agree.
|
|
581
|
+
* Whole-second resolution, and the value is one round-trip old, so callers
|
|
582
|
+
* still add a small tolerance on top. Unparsable/missing header → leave the
|
|
583
|
+
* previous observation (or none) in place. */
|
|
584
|
+
private observeServerClock;
|
|
427
585
|
/**
|
|
428
586
|
* Prepend the configured system prompt to the user prompt.
|
|
429
587
|
* The riff API has no separate system-prompt field (only userPrompt), so we
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riff-backend.d.ts","sourceRoot":"","sources":["../../../src/adapters/backend/riff-backend.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,SAAS,EACV,MAAM,YAAY,CAAC;AAqCpB;;;;;;;GAOG;AACH,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,6CAA8C,CAAC;AAClF,eAAO,MAAM,qBAAqB,wBAAyB,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAatE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;6DACyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;0EACsE;IACtE,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB;iEAC6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;0DAEsD;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"riff-backend.d.ts","sourceRoot":"","sources":["../../../src/adapters/backend/riff-backend.ts"],"names":[],"mappings":"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"}
|