@circuitwall/jarela 2.2.1 → 2.4.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +2 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +8 -0
- package/.next/standalone/.next/server/app/_global-error/page.js +68 -68
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +76 -76
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/v1/access/[identity]/route.js +100 -93
- package/.next/standalone/.next/server/app/api/v1/access/route.js +176 -169
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +89 -56
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/display-filters/route.js +139 -127
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +107 -100
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +765 -753
- package/.next/standalone/.next/server/app/api/v1/agents/route.js +72 -65
- package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +371 -364
- package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +809 -802
- package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +9 -2
- package/.next/standalone/.next/server/app/api/v1/attachments/files/route.js +49 -49
- package/.next/standalone/.next/server/app/api/v1/attachments/images/route.js +910 -910
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +583 -16
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/[remote_jid]/route.js +41 -30
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +48 -37
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +697 -130
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +703 -136
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +796 -229
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/[route_id]/route.js +762 -746
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +1050 -1034
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +673 -106
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js +811 -804
- package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/route.js +718 -706
- package/.next/standalone/.next/server/app/api/v1/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/config/route.js +85 -85
- package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js +709 -709
- package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/credentials/route.js +2 -2
- package/.next/standalone/.next/server/app/api/v1/credentials/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -10
- package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +796 -784
- package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +30 -23
- package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +86 -86
- package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js +57 -57
- package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +385 -378
- package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +51 -44
- package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js +65 -65
- package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +122 -122
- package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +37 -37
- package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/env/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +375 -368
- package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +51 -44
- package/.next/standalone/.next/server/app/api/v1/events/route.js +745 -178
- package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/events/test/route.js +77 -77
- package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +763 -763
- package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +51 -44
- package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +16 -9
- package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +72 -65
- package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +41 -34
- package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +211 -204
- package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +140 -133
- package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +113 -106
- package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +121 -114
- package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +141 -134
- package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +690 -690
- package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +93 -93
- package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/route.js +185 -185
- package/.next/standalone/.next/server/app/api/v1/extensions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +171 -171
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +396 -396
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +212 -212
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/files/[name]/route.js +235 -235
- package/.next/standalone/.next/server/app/api/v1/fs/browse/route.js +26 -26
- package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +228 -221
- package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +65 -58
- package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +79 -72
- package/.next/standalone/.next/server/app/api/v1/health/probes/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/health/probes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/health/route.js +783 -771
- package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +140 -133
- package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +370 -363
- package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +240 -233
- package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +689 -682
- package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +886 -879
- package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +115 -108
- package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +955 -948
- package/.next/standalone/.next/server/app/api/v1/integrations/route.js +223 -216
- package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +876 -847
- package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/local-file/route.js +26 -26
- package/.next/standalone/.next/server/app/api/v1/logs/route.js +70 -70
- package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +79 -72
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +991 -979
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/registry/route.js +196 -196
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +19 -7
- package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +539 -532
- package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +86 -79
- package/.next/standalone/.next/server/app/api/v1/memory/route.js +58 -51
- package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +138 -131
- package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +381 -369
- package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +150 -143
- package/.next/standalone/.next/server/app/api/v1/models/route.js +634 -627
- package/.next/standalone/.next/server/app/api/v1/packages/catalog/route.js +445 -445
- package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +120 -120
- package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js +234 -234
- package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/install/route.js +407 -407
- package/.next/standalone/.next/server/app/api/v1/packages/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js +37 -37
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js +107 -107
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js +228 -228
- package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +9 -9
- package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/packages/route.js +148 -148
- package/.next/standalone/.next/server/app/api/v1/packages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +787 -787
- package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +529 -514
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js +181 -181
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js +258 -258
- package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +37 -30
- package/.next/standalone/.next/server/app/api/v1/profile/route.js +171 -164
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +51 -44
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +15 -8
- package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +171 -164
- package/.next/standalone/.next/server/app/api/v1/providers/route.js +101 -94
- package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +457 -450
- package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +44 -37
- package/.next/standalone/.next/server/app/api/v1/redaction/route.js +65 -58
- package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +617 -605
- package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +44 -44
- package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +739 -732
- package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +329 -322
- package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +204 -197
- package/.next/standalone/.next/server/app/api/v1/security/state/route.js +58 -51
- package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +183 -176
- package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +194 -187
- package/.next/standalone/.next/server/app/api/v1/setup/test-key/route.js +26 -26
- package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +776 -769
- package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +122 -115
- package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +334 -327
- package/.next/standalone/.next/server/app/api/v1/skills/route.js +873 -866
- package/.next/standalone/.next/server/app/api/v1/system/abort/route.js +838 -808
- package/.next/standalone/.next/server/app/api/v1/system/restart/route.js +177 -177
- package/.next/standalone/.next/server/app/api/v1/system/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/tailscale/route.js +164 -164
- package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +122 -115
- package/.next/standalone/.next/server/app/api/v1/tasks/route.js +30 -23
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +1436 -0
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +638 -631
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +60 -439
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +172 -173
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/route.js +925 -913
- package/.next/standalone/.next/server/app/api/v1/tools/route.js +2 -2
- package/.next/standalone/.next/server/app/api/v1/tools/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/update/apply/route.js +17 -17
- package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/update/route.js +570 -570
- package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +241 -229
- package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +989 -977
- package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +40 -28
- package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +72 -72
- package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/watchers/reaction-scripts/route.js +128 -128
- package/.next/standalone/.next/server/app/api/v1/watchers/route.js +164 -164
- package/.next/standalone/.next/server/app/api/v1/watchers/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/icon.svg/route.js +62 -62
- package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +436 -436
- package/.next/standalone/.next/server/app/page.js +1179 -743
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js +99 -91
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +2 -1
- package/.next/standalone/.next/server/chunks/{424.js → 1388.js} +441 -1022
- package/.next/standalone/.next/server/chunks/1433.js +1 -1
- package/.next/standalone/.next/server/chunks/1638.js +1 -2
- package/.next/standalone/.next/server/chunks/1738.js +1 -1
- package/.next/standalone/.next/server/chunks/2068.js +47 -10
- package/.next/standalone/.next/server/chunks/210.js +3 -3
- package/.next/standalone/.next/server/chunks/2151.js +31 -1
- package/.next/standalone/.next/server/chunks/2207.js +1 -0
- package/.next/standalone/.next/server/chunks/2447.js +10 -5
- package/.next/standalone/.next/server/chunks/2471.js +45 -45
- package/.next/standalone/.next/server/chunks/2504.js +1 -1
- package/.next/standalone/.next/server/chunks/2695.js +17 -17
- package/.next/standalone/.next/server/chunks/3042.js +24 -16
- package/.next/standalone/.next/server/chunks/{4540.js → 309.js} +104 -38
- package/.next/standalone/.next/server/chunks/{2350.js → 3272.js} +104 -37
- package/.next/standalone/.next/server/chunks/3399.js +526 -526
- package/.next/standalone/.next/server/chunks/3524.js +150 -67
- package/.next/standalone/.next/server/chunks/3566.js +1 -1
- package/.next/standalone/.next/server/chunks/4189.js +946 -0
- package/.next/standalone/.next/server/chunks/4433.js +146 -146
- package/.next/standalone/.next/server/chunks/4508.js +3 -3
- package/.next/standalone/.next/server/chunks/4588.js +1 -0
- package/.next/standalone/.next/server/chunks/46.js +78 -28
- package/.next/standalone/.next/server/chunks/466.js +12 -0
- package/.next/standalone/.next/server/chunks/4868.js +206 -206
- package/.next/standalone/.next/server/chunks/4992.js +13 -0
- package/.next/standalone/.next/server/chunks/5120.js +963 -0
- package/.next/standalone/.next/server/chunks/5701.js +1 -1
- package/.next/standalone/.next/server/chunks/5900.js +1 -1
- package/.next/standalone/.next/server/chunks/5908.js +63 -42
- package/.next/standalone/.next/server/chunks/6142.js +10 -2
- package/.next/standalone/.next/server/chunks/6210.js +1 -0
- package/.next/standalone/.next/server/chunks/6213.js +1 -1
- package/.next/standalone/.next/server/chunks/6649.js +3 -3
- package/.next/standalone/.next/server/chunks/6703.js +3 -3
- package/.next/standalone/.next/server/chunks/7445.js +1 -0
- package/.next/standalone/.next/server/chunks/8067.js +12 -0
- package/.next/standalone/.next/server/chunks/8461.js +24 -17
- package/.next/standalone/.next/server/chunks/8558.js +1 -1
- package/.next/standalone/.next/server/chunks/8724.js +1 -1
- package/.next/standalone/.next/server/chunks/8849.js +91 -91
- package/.next/standalone/.next/server/chunks/9032.js +4 -3
- package/.next/standalone/.next/server/chunks/{2563.js → 9164.js} +33389 -31418
- package/.next/standalone/.next/server/chunks/9237.js +396 -396
- package/.next/standalone/.next/server/chunks/{9640.js → 9304.js} +1672 -575
- package/.next/standalone/.next/server/chunks/9406.js +1 -1
- package/.next/standalone/.next/server/chunks/9590.js +68 -18
- package/.next/standalone/.next/server/chunks/9824.js +98 -98
- package/.next/standalone/.next/server/chunks/9826.js +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/middleware.js +486 -415
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/preview-props.json +3 -3
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/{1395-a340fb0a345382a4.js → 1395-e4a99912b8f83044.js} +13 -1
- package/.next/standalone/.next/static/chunks/app/_global-error/{page-36cb8b428b38b26a.js → page-6fc5f8e744c81802.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/access/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/config/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/env/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/events/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/health/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/models/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/activity/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/update/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/app/{page-7017f07f8a7a083c.js → page-04748847c6ff866f.js} +1013 -585
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6fc5f8e744c81802.js +17 -0
- package/.next/standalone/.next/static/css/{d80058f0b9b41c09.css → 2669e8744cc8c212.css} +2 -2
- package/.next/standalone/docs/adoption/changesets.json +358 -0
- package/.next/standalone/lib/skills/builtins/memory-organization/SKILL.md +16 -0
- package/.next/standalone/package.json +3 -3
- package/CHANGELOG.md +44 -0
- package/api/client.ts +9 -0
- package/api/types.ts +29 -0
- package/app/api/v1/lifecycle/adoption/route.ts +14 -2
- package/app/api/v1/models/[name]/compact-threads/route.ts +14 -11
- package/app/api/v1/threads/[thread_id]/activity/route.ts +19 -0
- package/app/api/v1/threads/[thread_id]/context-pin/route.test.ts +1 -0
- package/app/api/v1/threads/[thread_id]/context-pin/route.ts +2 -1
- package/app/api/v1/threads/[thread_id]/route.ts +5 -1
- package/app/api/v1/threads/[thread_id]/run/route.ts +0 -1
- package/components/chat/ChatView.tsx +52 -11
- package/components/chat/ContextBoundary.test.tsx +68 -1
- package/components/chat/ContextBoundary.tsx +92 -13
- package/components/chat/MessageBubble.tsx +12 -0
- package/components/chat/MessageList.test.tsx +31 -0
- package/components/chat/MessageList.tsx +49 -28
- package/components/chat/ToolList.test.tsx +92 -16
- package/components/chat/ToolList.tsx +59 -4
- package/components/chat/chat-helpers.test.tsx +24 -1
- package/components/chat/chat-helpers.ts +47 -4
- package/components/chat/useThreadActivity.test.tsx +113 -0
- package/components/chat/useThreadActivity.ts +94 -0
- package/components/chat/useThreadData.ts +16 -16
- package/components/chat/workflow-step-retry.ts +25 -0
- package/components/integrations/NetworkSection.tsx +2 -2
- package/components/ui/BootScreen.tsx +17 -0
- package/components/ui/WorkflowChecklist.tsx +71 -33
- package/hooks/useSSE.ts +28 -3
- package/lib/agents/citation-checker.test.ts +40 -2
- package/lib/agents/citation-checker.ts +56 -11
- package/lib/agents/compaction-pipeline.test.ts +202 -0
- package/lib/agents/compaction-pipeline.ts +483 -0
- package/lib/agents/context-boundary.ts +5 -6
- package/lib/agents/conversation-summary.ts +37 -21
- package/lib/agents/instruction-edits.test.ts +120 -0
- package/lib/agents/instruction-edits.ts +65 -42
- package/lib/agents/prepare/history-window.test.ts +18 -0
- package/lib/agents/prepare/history-window.ts +11 -2
- package/lib/agents/prepare/request.ts +4 -2
- package/lib/agents/prepare/system-prompt.test.ts +49 -0
- package/lib/agents/prepare/system-prompt.ts +16 -5
- package/lib/agents/prompt-registry.test.ts +5 -140
- package/lib/agents/prompt-registry.ts +45 -1
- package/lib/agents/prompt-variants.ts +146 -0
- package/lib/agents/proposals.test.ts +76 -0
- package/lib/agents/proposals.ts +13 -5
- package/lib/agents/run-registry.test.ts +22 -0
- package/lib/agents/run-registry.ts +29 -0
- package/lib/agents/run-thread.auto-boundary.test.ts +125 -5
- package/lib/agents/run-thread.retry.test.ts +67 -1
- package/lib/agents/run-thread.ts +110 -10
- package/lib/agents/sqlite-checkpoint-saver.test.ts +91 -0
- package/lib/agents/thread-activity.test.ts +31 -0
- package/lib/agents/thread-activity.ts +27 -0
- package/lib/agents/thread-compaction-state.test.ts +82 -0
- package/lib/agents/thread-compaction-state.ts +121 -0
- package/lib/agents/thread-compaction.test.ts +83 -4
- package/lib/agents/thread-compaction.ts +34 -11
- package/lib/agents/warm-summary-background.test.ts +219 -5
- package/lib/agents/warm-summary-background.ts +346 -143
- package/lib/agents/warm-topics.test.ts +191 -0
- package/lib/agents/warm-topics.ts +317 -0
- package/lib/agents/workflow-step-retry.test.ts +96 -0
- package/lib/agents/workflow-step-retry.ts +216 -0
- package/lib/api/browser-control.ts +0 -3
- package/lib/bridges/dispatcher.ts +1 -0
- package/lib/bridges/message-role.test.ts +81 -0
- package/lib/bridges/message-role.ts +23 -10
- package/lib/bridges/types.ts +6 -0
- package/lib/bridges/whatsapp-link.test.ts +32 -0
- package/lib/bridges/whatsapp-link.ts +21 -0
- package/lib/bridges/whatsapp.inbound.test.ts +239 -0
- package/lib/bridges/whatsapp.sender.test.ts +80 -1
- package/lib/bridges/whatsapp.ts +76 -38
- package/lib/db/migrations.ts +5 -0
- package/lib/env/config.ts +2 -0
- package/lib/env/schema.ts +12 -0
- package/lib/lifecycle/changeset-build.test.ts +93 -0
- package/lib/lifecycle/changeset-build.ts +210 -0
- package/lib/lifecycle/changesets.test.ts +101 -0
- package/lib/lifecycle/changesets.ts +166 -0
- package/lib/lifecycle/surface-collect.test.ts +88 -0
- package/lib/lifecycle/surface-collect.ts +64 -0
- package/lib/lifecycle/surface-snapshot.test.ts +104 -0
- package/lib/lifecycle/surface-snapshot.ts +210 -0
- package/lib/memory/record.ts +0 -2
- package/lib/pricing/snapshot.test.ts +70 -0
- package/lib/pricing/snapshot.ts +10 -2
- package/lib/providers/external.ts +0 -2
- package/lib/proxy/dispatcher.test.ts +119 -1
- package/lib/proxy/dispatcher.ts +22 -9
- package/lib/skills/builtins/memory-organization/SKILL.md +16 -0
- package/lib/stores/agent-configs.ts +10 -5
- package/lib/stores/bridges.test.ts +81 -0
- package/lib/stores/bridges.ts +9 -8
- package/lib/stores/proxy-config.test.ts +120 -0
- package/lib/stores/proxy-config.ts +22 -4
- package/lib/stores/threads.test.ts +9 -0
- package/lib/stores/threads.ts +33 -19
- package/lib/stores/version-adoption.test.ts +96 -0
- package/lib/stores/version-adoption.ts +239 -26
- package/lib/stores/workflow-progress.ts +3 -0
- package/lib/tools/communications/calendar.test.ts +43 -2
- package/lib/tools/communications/calendar.ts +2 -0
- package/lib/tools/communications/gmail.test.ts +51 -1
- package/lib/tools/communications/gmail.ts +44 -2
- package/lib/tools/communications/ms-todo.ts +0 -7
- package/lib/tools/communications/outlook-calendar.ts +2 -0
- package/lib/tools/communications/outlook.test.ts +33 -2
- package/lib/tools/communications/outlook.ts +2 -0
- package/lib/tools/filesystem/edit-match.test.ts +133 -0
- package/lib/tools/filesystem/edit-match.ts +7 -2
- package/lib/tools/general/memory.ts +1 -1
- package/lib/tools/general/workflow-progress.ts +2 -0
- package/lib/tools/runtime/catalog.ts +1 -25
- package/lib/tools/support/result-refs.test.ts +131 -0
- package/lib/tools/support/result-refs.ts +41 -9
- package/lib/triggers/registry.ts +0 -4
- package/lib/utils/source-link.test.ts +51 -0
- package/lib/utils/source-link.ts +45 -0
- package/package.json +3 -3
- package/scripts/install-to-system.ps1 +39 -11
- package/scripts/install-to-system.sh +37 -3
- package/.next/standalone/.next/server/chunks/3979.js +0 -581
- package/.next/standalone/.next/server/chunks/5936.js +0 -594
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/config/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/env/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/events/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/health/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/models/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/update/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-36cb8b428b38b26a.js +0 -17
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-36cb8b428b38b26a.js +0 -17
- /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_ssgManifest.js +0 -0
|
@@ -74,147 +74,595 @@ module.exports = require("next/dist/server/app-render/after-task-async-storage.e
|
|
|
74
74
|
|
|
75
75
|
/***/ }),
|
|
76
76
|
|
|
77
|
-
/***/
|
|
78
|
-
/***/ ((
|
|
79
|
-
|
|
80
|
-
module.exports = require("next/dist/server/runtime-reacts.external.js");
|
|
81
|
-
|
|
82
|
-
/***/ }),
|
|
83
|
-
|
|
84
|
-
/***/ 9956:
|
|
85
|
-
/***/ ((module) => {
|
|
86
|
-
|
|
87
|
-
module.exports = require("undici");
|
|
88
|
-
|
|
89
|
-
/***/ }),
|
|
90
|
-
|
|
91
|
-
/***/ 10846:
|
|
92
|
-
/***/ ((module) => {
|
|
93
|
-
|
|
94
|
-
module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
|
|
95
|
-
|
|
96
|
-
/***/ }),
|
|
97
|
-
|
|
98
|
-
/***/ 12412:
|
|
99
|
-
/***/ ((module) => {
|
|
100
|
-
|
|
101
|
-
module.exports = require("assert");
|
|
102
|
-
|
|
103
|
-
/***/ }),
|
|
104
|
-
|
|
105
|
-
/***/ 16602:
|
|
106
|
-
/***/ ((module) => {
|
|
107
|
-
|
|
108
|
-
module.exports = import("@whiskeysockets/baileys");;
|
|
109
|
-
|
|
110
|
-
/***/ }),
|
|
111
|
-
|
|
112
|
-
/***/ 16698:
|
|
113
|
-
/***/ ((module) => {
|
|
114
|
-
|
|
115
|
-
module.exports = require("node:async_hooks");
|
|
116
|
-
|
|
117
|
-
/***/ }),
|
|
118
|
-
|
|
119
|
-
/***/ 19121:
|
|
120
|
-
/***/ ((module) => {
|
|
121
|
-
|
|
122
|
-
module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
|
|
123
|
-
|
|
124
|
-
/***/ }),
|
|
125
|
-
|
|
126
|
-
/***/ 27910:
|
|
127
|
-
/***/ ((module) => {
|
|
128
|
-
|
|
129
|
-
module.exports = require("stream");
|
|
130
|
-
|
|
131
|
-
/***/ }),
|
|
132
|
-
|
|
133
|
-
/***/ 28354:
|
|
134
|
-
/***/ ((module) => {
|
|
135
|
-
|
|
136
|
-
module.exports = require("util");
|
|
137
|
-
|
|
138
|
-
/***/ }),
|
|
139
|
-
|
|
140
|
-
/***/ 29021:
|
|
141
|
-
/***/ ((module) => {
|
|
142
|
-
|
|
143
|
-
module.exports = require("fs");
|
|
144
|
-
|
|
145
|
-
/***/ }),
|
|
146
|
-
|
|
147
|
-
/***/ 29294:
|
|
148
|
-
/***/ ((module) => {
|
|
149
|
-
|
|
150
|
-
module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
|
|
77
|
+
/***/ 3979:
|
|
78
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
151
79
|
|
|
152
|
-
/***/ }),
|
|
153
80
|
|
|
154
|
-
|
|
155
|
-
|
|
81
|
+
// EXPORTS
|
|
82
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
83
|
+
AX: () => (/* binding */ getBridgeRuntimeStatus),
|
|
84
|
+
HQ: () => (/* binding */ isBridgeRunning),
|
|
85
|
+
FN: () => (/* binding */ listBridgeChats),
|
|
86
|
+
qM: () => (/* binding */ lookupBridgeChat),
|
|
87
|
+
s: () => (/* binding */ removeBridgeAuth),
|
|
88
|
+
V_: () => (/* binding */ repairBridge),
|
|
89
|
+
kn: () => (/* binding */ startAllBridges),
|
|
90
|
+
c0: () => (/* binding */ startBridge),
|
|
91
|
+
aq: () => (/* binding */ stopBridge)
|
|
92
|
+
});
|
|
156
93
|
|
|
157
|
-
|
|
94
|
+
// UNUSED EXPORTS: restartBridge, stopAllBridges
|
|
95
|
+
|
|
96
|
+
// EXTERNAL MODULE: ./lib/stores/bridges.ts
|
|
97
|
+
var bridges = __webpack_require__(78361);
|
|
98
|
+
// EXTERNAL MODULE: ./lib/notifications/bus.ts
|
|
99
|
+
var bus = __webpack_require__(76445);
|
|
100
|
+
// EXTERNAL MODULE: ./lib/utils/global-state.ts
|
|
101
|
+
var global_state = __webpack_require__(15559);
|
|
102
|
+
// EXTERNAL MODULE: ./lib/stores/threads.ts
|
|
103
|
+
var threads = __webpack_require__(83042);
|
|
104
|
+
// EXTERNAL MODULE: ./lib/stores/agent-configs.ts
|
|
105
|
+
var agent_configs = __webpack_require__(41720);
|
|
106
|
+
// EXTERNAL MODULE: ./lib/agents/agent-turn.ts
|
|
107
|
+
var agent_turn = __webpack_require__(62032);
|
|
108
|
+
;// ./lib/bridges/router.ts
|
|
158
109
|
|
|
159
|
-
|
|
110
|
+
/**
|
|
111
|
+
* Resolve which agent should handle an inbound message on (bridge, remote_jid).
|
|
112
|
+
* 0) Chat is on the ignore list → null (message dropped before any agent
|
|
113
|
+
* thread, memory write, or tool call runs — the "listen to everything
|
|
114
|
+
* except these chats" primitive).
|
|
115
|
+
* 1) Exact route match on (bridge_id, remote_jid)
|
|
116
|
+
* 2) Bridge-level catch-all route (`remote_jid='*'`) when present
|
|
117
|
+
* 3) null (dispatcher drops the message silently)
|
|
118
|
+
*
|
|
119
|
+
* Catch-all lets one agent handle all otherwise-unrouted chats on a bridge.
|
|
120
|
+
* This is especially useful for "triage" or "observer" agents. The ignore
|
|
121
|
+
* list is checked FIRST so it wins over both explicit routes and the
|
|
122
|
+
* catch-all — deleting an ignore entry is how you "resume listening".
|
|
123
|
+
*/ function resolveRoute(bridge_id, remote_jid) {
|
|
124
|
+
if ((0,bridges/* isIgnored */.pi)(bridge_id, remote_jid)) return null;
|
|
125
|
+
return (0,bridges/* findRoute */.$6)(bridge_id, remote_jid) ?? (0,bridges/* findRoute */.$6)(bridge_id, "*");
|
|
126
|
+
}
|
|
160
127
|
|
|
161
|
-
|
|
162
|
-
|
|
128
|
+
// EXTERNAL MODULE: ./lib/utils/source-link.ts
|
|
129
|
+
var source_link = __webpack_require__(12262);
|
|
130
|
+
;// ./lib/bridges/message-role.ts
|
|
131
|
+
/**
|
|
132
|
+
* Cross-adapter framing for bridge inbound messages.
|
|
133
|
+
*
|
|
134
|
+
* Bridge conversations are inherently multi-party: the paired user, one or
|
|
135
|
+
* more counterparts (1:1 partner or group members), and the agent that's
|
|
136
|
+
* observing/assisting. Without role framing, the LLM tends to read every
|
|
137
|
+
* inbound message as a direct command — even when the message was sent by
|
|
138
|
+
* the user's chat partner, who has no idea an agent is in the loop.
|
|
139
|
+
*
|
|
140
|
+
* This module is the single source of truth for that framing. Every bridge
|
|
141
|
+
* adapter (WhatsApp today; Telegram/Slack/Discord/email tomorrow) populates
|
|
142
|
+
* `InboundMessage.role` with one of these values, and the dispatcher feeds
|
|
143
|
+
* the message through `formatBridgePrompt` to produce the prefix the agent
|
|
144
|
+
* sees. Adding a new adapter is a matter of mapping its platform-specific
|
|
145
|
+
* "who sent this" signal onto `MessageRole`; the framing code does not need
|
|
146
|
+
* to change.
|
|
147
|
+
*/
|
|
148
|
+
/**
|
|
149
|
+
* Build the prompt prefix the agent receives for one bridge-inbound message.
|
|
150
|
+
*
|
|
151
|
+
* Output shape:
|
|
152
|
+
*
|
|
153
|
+
* <one-line semantic note framing the role>
|
|
154
|
+
*
|
|
155
|
+
* [bridge:<id>]
|
|
156
|
+
* [chat_id:<id>]
|
|
157
|
+
* [chat_name:<label>]
|
|
158
|
+
* [chat_type:dm|group]
|
|
159
|
+
* [message_role:user|counterpart|agent]
|
|
160
|
+
* [sender_id:<id>]
|
|
161
|
+
* [sender_name:<label>]
|
|
162
|
+
* ([chat_link:<https url>] when the platform has a permalink for the chat)
|
|
163
|
+
* ([group_name:<label>] [participant_id:<id>] [participant_name:<label>] for groups)
|
|
164
|
+
*
|
|
165
|
+
* <raw text>
|
|
166
|
+
*
|
|
167
|
+
* The metadata block is keyed-tag for parseability; the leading note is
|
|
168
|
+
* prose so the LLM has an explicit framing without having to learn the
|
|
169
|
+
* convention. Both are stable across adapters.
|
|
170
|
+
*/ function formatBridgePrompt(input) {
|
|
171
|
+
const note = roleNote(input.role, input.is_group, input.silent === true, input.event);
|
|
172
|
+
// Header values come from the platform (display names, group subjects) and
|
|
173
|
+
// are sender-controlled: a line break would forge extra headers or end the
|
|
174
|
+
// header block early, so every value is flattened onto one line.
|
|
175
|
+
const h = (value)=>String(value ?? "").replace(/[\r\n\u0085\u2028\u2029]+/g, " ");
|
|
176
|
+
const lines = [
|
|
177
|
+
`[bridge:${h(input.bridge_id)}]`,
|
|
178
|
+
`[chat_id:${h(input.chat_id)}]`,
|
|
179
|
+
`[chat_name:${h(input.chat_name)}]`,
|
|
180
|
+
`[chat_type:${input.is_group ? "group" : "dm"}]`,
|
|
181
|
+
`[message_role:${input.role}]`,
|
|
182
|
+
`[sender_id:${h(input.sender_id)}]`,
|
|
183
|
+
`[sender_name:${h(input.sender_name)}]`
|
|
184
|
+
];
|
|
185
|
+
const chatLink = (0,source_link/* httpsUrlOrNull */.N)(input.chat_link);
|
|
186
|
+
if (chatLink) lines.push(`[chat_link:${chatLink}]`);
|
|
187
|
+
if (input.event) {
|
|
188
|
+
lines.push(`[event_type:${input.event.type}]`);
|
|
189
|
+
lines.push(`[event_subtype:${h(input.event.subtype)}]`);
|
|
190
|
+
}
|
|
191
|
+
if (input.is_group) {
|
|
192
|
+
lines.push(`[group_name:${h(input.chat_name)}]`);
|
|
193
|
+
lines.push(`[participant_id:${h(input.sender_id)}]`);
|
|
194
|
+
lines.push(`[participant_name:${h(input.sender_name)}]`);
|
|
195
|
+
}
|
|
196
|
+
return `${note}\n\n${lines.join("\n")}\n\n${input.text}`;
|
|
197
|
+
}
|
|
198
|
+
// Parses bridge prompt envelopes rendered by formatBridgePrompt().
|
|
199
|
+
// Back-compat: also accepts legacy keys (chat_jid/sender_jid) and optional
|
|
200
|
+
// prose preface before the [bridge:...] metadata block.
|
|
201
|
+
function parseBridgePrompt(raw) {
|
|
202
|
+
const start = raw.indexOf("[bridge:");
|
|
203
|
+
if (start < 0) return null;
|
|
204
|
+
const src = raw.slice(start);
|
|
205
|
+
const headers = {};
|
|
206
|
+
const lines = src.split("\n");
|
|
207
|
+
let i = 0;
|
|
208
|
+
for(; i < lines.length; i++){
|
|
209
|
+
const line = lines[i].replace(/\r$/, "");
|
|
210
|
+
if (line === "") {
|
|
211
|
+
i++;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
const m = /^\[([a-z_]+):([\s\S]*)\]$/.exec(line);
|
|
215
|
+
if (!m) return null;
|
|
216
|
+
headers[m[1]] = m[2];
|
|
217
|
+
}
|
|
218
|
+
const chatId = headers.chat_id || headers.chat_jid;
|
|
219
|
+
const senderId = headers.sender_id || headers.sender_jid || chatId;
|
|
220
|
+
if (!headers.bridge || !chatId || !headers.chat_type) return null;
|
|
221
|
+
return {
|
|
222
|
+
bridgeId: headers.bridge,
|
|
223
|
+
chatJid: chatId,
|
|
224
|
+
chatName: headers.chat_name || chatId,
|
|
225
|
+
isGroup: headers.chat_type === "group",
|
|
226
|
+
senderJid: senderId,
|
|
227
|
+
senderName: headers.sender_name || senderId || "Unknown",
|
|
228
|
+
chatLink: httpsUrlOrNull(headers.chat_link),
|
|
229
|
+
body: lines.slice(i).join("\n").trimEnd()
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function roleNote(role, isGroup, silent, event) {
|
|
233
|
+
if (event) {
|
|
234
|
+
const evt = event.type === "group_profile_update" ? "group profile/settings update" : "group participant update";
|
|
235
|
+
return `The payload below is a ${evt} (${event.subtype}) emitted by the platform, not a normal chat message typed by a participant. ` + "Use it as conversation state/context. Do not assume someone is directly addressing you unless your instructions explicitly require replying to system events.";
|
|
236
|
+
}
|
|
237
|
+
if (silent) {
|
|
238
|
+
// Observer mode overrides the per-role framing: the agent is forbidden
|
|
239
|
+
// from speaking on the chat regardless of who sent the inbound message.
|
|
240
|
+
// It may still use the event as context and take non-chat actions that
|
|
241
|
+
// its normal instructions require.
|
|
242
|
+
if (role === "agent") {
|
|
243
|
+
return "The message below is your own prior output, surfaced again because the bridge adapter could not suppress its echo. Use it only as a record of what you previously said — do not respond to it.";
|
|
244
|
+
}
|
|
245
|
+
return "Silent / observer mode is enabled for this route. You are standing on the paired user's side and listening to the chat for context, memory, risk, or tasks that matter to the paired user's instructions. " + "Do not write to the chat, draft a chat reply, imitate a participant, or answer the sender conversationally. " + "Act only through allowed non-chat tools or internal state when your normal instructions require it. " + "Most observed messages need no visible response: if there is no important internal note, risk, or user-actionable item for the paired user inside Jarela, reply with exactly the single token NO_REPLY and nothing else.";
|
|
246
|
+
}
|
|
247
|
+
switch(role){
|
|
248
|
+
case "user":
|
|
249
|
+
return "The paired user themselves sent the message below in this conversation. Treat it as the user's own reaction/input to the prior chat — they are speaking to the other party, not directly to you. Use it to update your understanding of the user's intent.";
|
|
250
|
+
case "counterpart":
|
|
251
|
+
return isGroup ? "The message below was sent by another member of this group chat, addressed to the paired user. Respond on the user's behalf, in their voice, following your agent instructions and persona — do not introduce yourself as an assistant or break character. If your instructions tell you to stay silent or escalate to the user, do that instead." : "The message below was sent by the user's counterpart in this 1:1 chat, addressed to the paired user. Respond on the user's behalf, in their voice, following your agent instructions and persona — do not introduce yourself as an assistant or break character. If your instructions tell you to stay silent or escalate to the user, do that instead.";
|
|
252
|
+
case "agent":
|
|
253
|
+
return "The message below is your own prior output, surfaced again because the bridge adapter could not suppress its echo. Use it only as a record of what you previously said — do not respond to it.";
|
|
254
|
+
}
|
|
255
|
+
}
|
|
163
256
|
|
|
164
|
-
|
|
257
|
+
// EXTERNAL MODULE: ./lib/utils/error.ts
|
|
258
|
+
var error = __webpack_require__(22032);
|
|
259
|
+
// EXTERNAL MODULE: ./lib/agents/run-queue.ts
|
|
260
|
+
var run_queue = __webpack_require__(3944);
|
|
261
|
+
// EXTERNAL MODULE: ./lib/stores/automation-activity.ts
|
|
262
|
+
var automation_activity = __webpack_require__(26316);
|
|
263
|
+
;// ./lib/bridges/dispatcher.ts
|
|
165
264
|
|
|
166
|
-
/***/ }),
|
|
167
265
|
|
|
168
|
-
/***/ 37067:
|
|
169
|
-
/***/ ((module) => {
|
|
170
266
|
|
|
171
|
-
module.exports = require("node:http");
|
|
172
267
|
|
|
173
|
-
/***/ }),
|
|
174
268
|
|
|
175
|
-
/***/ 38522:
|
|
176
|
-
/***/ ((module) => {
|
|
177
269
|
|
|
178
|
-
module.exports = require("node:zlib");
|
|
179
270
|
|
|
180
|
-
/***/ }),
|
|
181
271
|
|
|
182
|
-
/***/ 40610:
|
|
183
|
-
/***/ ((module) => {
|
|
184
272
|
|
|
185
|
-
module.exports = require("node:dns");
|
|
186
273
|
|
|
187
|
-
|
|
274
|
+
/**
|
|
275
|
+
* Handle one inbound message from a bridge adapter:
|
|
276
|
+
* 1. Resolve the chat → agent route. Unrouted → publish an advisory
|
|
277
|
+
* event and drop. No thread created, no reply sent.
|
|
278
|
+
* 2. Use `getOrCreateAgentThread(agent_id)` (one-thread-per-agent
|
|
279
|
+
* invariant — `UNIQUE(agent_id)` on bridge_routes ensures no chat
|
|
280
|
+
* interleaving).
|
|
281
|
+
* 3. Drive the agent via the canonical `runAgentTurn` helper used by
|
|
282
|
+
* every external context turn.
|
|
283
|
+
* 4. Persist the assistant message and send the reply back through the
|
|
284
|
+
* adapter on the originating channel.
|
|
285
|
+
*
|
|
286
|
+
* Top-level try/catch — adapter callbacks must never throw into the Baileys
|
|
287
|
+
* socket event handler (would tear down the WS).
|
|
288
|
+
*/ async function handleInboundMessage(adapter, msg) {
|
|
289
|
+
try {
|
|
290
|
+
const route = resolveRoute(adapter.bridge_id, msg.remote_jid);
|
|
291
|
+
if (!route) {
|
|
292
|
+
// Unrouted chats are silently dropped. We intentionally do NOT publish
|
|
293
|
+
// a notification here — the user already declared "this chat isn't
|
|
294
|
+
// monitored" by not configuring a route, so popping a toast for every
|
|
295
|
+
// inbound message in an active group would be noise. The console log
|
|
296
|
+
// remains for debugging; the chat picker in BridgeEditor still shows
|
|
297
|
+
// observed chats so a route can be added on demand.
|
|
298
|
+
console.log(`[bridge ${adapter.bridge_id}] dropped: no route for ${msg.remote_jid} (${msg.push_name ?? "?"})`);
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const agentId = route.agent_id;
|
|
302
|
+
const agent = (0,agent_configs/* getAgentConfig */.mJ)(agentId);
|
|
303
|
+
if (!agent) {
|
|
304
|
+
console.warn(`[bridge ${adapter.bridge_id}] route points at missing agent ${agentId}, dropping`);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
const thread = (0,threads/* getOrCreateAgentThread */.xH)(agentId);
|
|
308
|
+
// Stamp bridge/chat provenance + sender role onto every inbound prompt.
|
|
309
|
+
// Role framing (user / counterpart / agent) is shared across every
|
|
310
|
+
// bridge adapter via `formatBridgePrompt` — see lib/bridges/message-role.ts.
|
|
311
|
+
const chatName = msg.chat_name ?? msg.push_name ?? "unknown";
|
|
312
|
+
const senderJid = msg.sender_jid ?? msg.participant_jid ?? msg.remote_jid;
|
|
313
|
+
const senderName = msg.sender_name ?? msg.push_name ?? senderJid;
|
|
314
|
+
const silent = route.silent_mode === 1;
|
|
315
|
+
const willReply = !silent && msg.role === route.respond_to;
|
|
316
|
+
const activity = (0,automation_activity/* createAutomationActivity */.P2)({
|
|
317
|
+
threadId: thread.thread_id,
|
|
318
|
+
sourceKind: "bridge",
|
|
319
|
+
sourceId: `${adapter.bridge_id}:${msg.remote_jid}`,
|
|
320
|
+
label: `Message from ${senderName}`,
|
|
321
|
+
state: "checking",
|
|
322
|
+
detail: msg.text
|
|
323
|
+
});
|
|
324
|
+
const publishActivity = ()=>{
|
|
325
|
+
(0,bus/* publish */.mk)({
|
|
326
|
+
type: "automation_activity",
|
|
327
|
+
thread_id: thread.thread_id,
|
|
328
|
+
agent_id: agentId,
|
|
329
|
+
ts: Date.now()
|
|
330
|
+
});
|
|
331
|
+
};
|
|
332
|
+
publishActivity();
|
|
333
|
+
const promptText = formatBridgePrompt({
|
|
334
|
+
bridge_id: adapter.bridge_id,
|
|
335
|
+
chat_id: msg.remote_jid,
|
|
336
|
+
chat_name: chatName,
|
|
337
|
+
is_group: msg.is_group,
|
|
338
|
+
role: msg.role,
|
|
339
|
+
sender_id: senderJid,
|
|
340
|
+
sender_name: senderName,
|
|
341
|
+
chat_link: adapter.chatLink?.(msg.remote_jid) ?? null,
|
|
342
|
+
text: msg.text,
|
|
343
|
+
silent,
|
|
344
|
+
event: msg.event
|
|
345
|
+
});
|
|
346
|
+
const bridgeConversation = {
|
|
347
|
+
key: `${adapter.bridge_id}:${msg.remote_jid}`,
|
|
348
|
+
bridge_id: adapter.bridge_id,
|
|
349
|
+
chat_id: msg.remote_jid
|
|
350
|
+
};
|
|
351
|
+
// Keep typing outside the queue so users still see "thinking" while
|
|
352
|
+
// waiting behind other queued turns for the same thread.
|
|
353
|
+
let typingActive = willReply;
|
|
354
|
+
if (willReply) {
|
|
355
|
+
void adapter.sendTyping(msg.remote_jid, true).catch(()=>{});
|
|
356
|
+
}
|
|
357
|
+
const typingTimer = setInterval(()=>{
|
|
358
|
+
if (!typingActive) return;
|
|
359
|
+
void adapter.sendTyping(msg.remote_jid, true).catch(()=>{});
|
|
360
|
+
}, 8000);
|
|
361
|
+
typingTimer.unref?.();
|
|
362
|
+
let reply = "";
|
|
363
|
+
let suppressAssistant = false;
|
|
364
|
+
let aborted = false;
|
|
365
|
+
try {
|
|
366
|
+
// Surface the bridge kind+name in the system prompt so the agent
|
|
367
|
+
// knows it's answering on e.g. WhatsApp — fixes the "I don't have
|
|
368
|
+
// access to WhatsApp" reply on bridge-delivered turns. Falls back
|
|
369
|
+
// to bridge_id when the row was deleted between fetch and dispatch.
|
|
370
|
+
const bridge = (0,bridges/* getBridge */.e1)(adapter.bridge_id);
|
|
371
|
+
let result;
|
|
372
|
+
try {
|
|
373
|
+
result = await (0,agent_turn.runAgentTurn)({
|
|
374
|
+
thread_id: thread.thread_id,
|
|
375
|
+
queue_source: "bridge",
|
|
376
|
+
message: promptText,
|
|
377
|
+
attachments: msg.attachments,
|
|
378
|
+
user_category: "bridge",
|
|
379
|
+
assistant_category: "bridge",
|
|
380
|
+
user_message_metadata: {
|
|
381
|
+
bridge_conversation: bridgeConversation
|
|
382
|
+
},
|
|
383
|
+
assistant_message_metadata: {
|
|
384
|
+
bridge_conversation: bridgeConversation
|
|
385
|
+
},
|
|
386
|
+
history_bridge_key: bridgeConversation.key,
|
|
387
|
+
silent,
|
|
388
|
+
queue_lane: willReply ? "interactive" : "background",
|
|
389
|
+
queue_expires_at: willReply ? undefined : Date.now() + 5 * 60000,
|
|
390
|
+
on_queue_state: (state)=>{
|
|
391
|
+
(0,automation_activity/* updateAutomationActivity */.ou)(activity.msg_id, {
|
|
392
|
+
state: state === "queued" ? "queued" : "checking"
|
|
393
|
+
});
|
|
394
|
+
publishActivity();
|
|
395
|
+
},
|
|
396
|
+
delivery_channel: {
|
|
397
|
+
kind: bridge?.kind ?? "bridge",
|
|
398
|
+
name: bridge?.name ?? null
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
} catch (err) {
|
|
402
|
+
if (err instanceof run_queue/* QueueExpiredError */.vR) {
|
|
403
|
+
(0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, {
|
|
404
|
+
disposition: "expired"
|
|
405
|
+
});
|
|
406
|
+
publishActivity();
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
(0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, {
|
|
410
|
+
disposition: "failed",
|
|
411
|
+
error: (0,error/* errorMessage */.g)(err)
|
|
412
|
+
});
|
|
413
|
+
publishActivity();
|
|
414
|
+
throw err;
|
|
415
|
+
}
|
|
416
|
+
reply = result.assistantContent.trim();
|
|
417
|
+
suppressAssistant = result.skippedAssistant;
|
|
418
|
+
aborted = result.aborted;
|
|
419
|
+
} finally{
|
|
420
|
+
typingActive = false;
|
|
421
|
+
clearInterval(typingTimer);
|
|
422
|
+
if (willReply) {
|
|
423
|
+
void adapter.sendTyping(msg.remote_jid, false).catch(()=>{});
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
// Outbound reply gate: silent_mode (master switch) AND respond_to
|
|
427
|
+
// (per-role trigger). Both must clear for a message to leave the
|
|
428
|
+
// dispatcher. The WhatsApp adapter also re-checks `route.silent_mode`
|
|
429
|
+
// inside its own sendText as a belt-and-suspenders guard, so even a
|
|
430
|
+
// tool that called adapter.sendText directly would be dropped.
|
|
431
|
+
let sendError = null;
|
|
432
|
+
if (reply.length > 0 && willReply) {
|
|
433
|
+
try {
|
|
434
|
+
await adapter.sendText(msg.remote_jid, reply);
|
|
435
|
+
} catch (sendErr) {
|
|
436
|
+
const m = (0,error/* errorMessage */.g)(sendErr);
|
|
437
|
+
sendError = m;
|
|
438
|
+
console.error(`[bridge ${adapter.bridge_id}] sendText failed:`, m);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
(0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, aborted ? {
|
|
442
|
+
disposition: "cancelled"
|
|
443
|
+
} : sendError ? {
|
|
444
|
+
disposition: "failed",
|
|
445
|
+
error: sendError
|
|
446
|
+
} : {
|
|
447
|
+
disposition: reply.length > 0 && !suppressAssistant ? "action" : "no_action",
|
|
448
|
+
preview: suppressAssistant ? undefined : reply.replace(/\s+/g, " ").slice(0, 120)
|
|
449
|
+
});
|
|
450
|
+
publishActivity();
|
|
451
|
+
if (!silent || !suppressAssistant) {
|
|
452
|
+
(0,bus/* publish */.mk)({
|
|
453
|
+
type: "bridge_message_received",
|
|
454
|
+
bridge_id: adapter.bridge_id,
|
|
455
|
+
remote_jid: msg.remote_jid,
|
|
456
|
+
push_name: msg.push_name,
|
|
457
|
+
is_group: msg.is_group,
|
|
458
|
+
thread_id: thread.thread_id,
|
|
459
|
+
agent_id: agentId,
|
|
460
|
+
preview: suppressAssistant ? "" : reply.replace(/\s+/g, " ").slice(0, 120),
|
|
461
|
+
ts: Date.now()
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
} catch (err) {
|
|
465
|
+
const m = (0,error/* errorMessage */.g)(err);
|
|
466
|
+
console.error(`[bridge ${adapter.bridge_id}] dispatcher error on ${msg.remote_jid}:`, m);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
188
469
|
|
|
189
|
-
|
|
190
|
-
|
|
470
|
+
// EXTERNAL MODULE: ./lib/bridges/registry.ts + 5 modules
|
|
471
|
+
var registry = __webpack_require__(70309);
|
|
472
|
+
;// ./lib/bridges/runtime.ts
|
|
473
|
+
/**
|
|
474
|
+
* Bridge lifecycle manager.
|
|
475
|
+
*
|
|
476
|
+
* Owns a `Map<bridge_id, BridgeAdapter>` plus a `Map<bridge_id, StatusUpdate>`
|
|
477
|
+
* of the latest known status per bridge (so the HTTP status endpoint can
|
|
478
|
+
* return live QR / connection state without consulting the adapter directly).
|
|
479
|
+
*
|
|
480
|
+
* - `startAllBridges()` — called at app boot; scans `bridges` for
|
|
481
|
+
* `enabled=1` rows and spins up their adapters.
|
|
482
|
+
* - `startBridge(id)` / `stopBridge(id)` / `restartBridge(id)` — called from
|
|
483
|
+
* the HTTP layer (toggle enabled, re-pair, delete).
|
|
484
|
+
*
|
|
485
|
+
* Pinned to globalThis so dev HMR doesn't double-start (same pattern as
|
|
486
|
+
* lib/scheduler/index.ts).
|
|
487
|
+
*/
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
const state = (0,global_state/* getOrCreateGlobal */.X)("__jarela_bridges", ()=>({
|
|
494
|
+
adapters: new Map(),
|
|
495
|
+
status: new Map(),
|
|
496
|
+
started: false
|
|
497
|
+
}));
|
|
498
|
+
function makeAdapter(bridge_id, kind) {
|
|
499
|
+
const bridgeModule = (0,registry/* getBridgeModule */.ut)(kind);
|
|
500
|
+
if (!bridgeModule) throw new Error(`Unknown bridge kind: ${kind}`);
|
|
501
|
+
return bridgeModule.createAdapter(bridge_id);
|
|
502
|
+
}
|
|
503
|
+
async function removeBridgeAuth(bridge_id) {
|
|
504
|
+
const bridge = (0,bridges/* getBridge */.e1)(bridge_id);
|
|
505
|
+
if (!bridge) return;
|
|
506
|
+
await (0,registry/* getBridgeModule */.ut)(bridge.kind)?.removeAuth(bridge_id);
|
|
507
|
+
}
|
|
508
|
+
function wireAdapter(adapter) {
|
|
509
|
+
adapter.onInboundMessage((msg)=>handleInboundMessage(adapter, msg));
|
|
510
|
+
adapter.onStatusChange((update)=>{
|
|
511
|
+
state.status.set(adapter.bridge_id, update);
|
|
512
|
+
// Persist the user-visible bits so they survive a process restart.
|
|
513
|
+
const patch = {
|
|
514
|
+
status: update.status,
|
|
515
|
+
qr: update.qr_data_url ?? null,
|
|
516
|
+
last_error: update.error ?? null
|
|
517
|
+
};
|
|
518
|
+
if (update.paired_id !== undefined) patch.paired_id = update.paired_id;
|
|
519
|
+
(0,bridges/* updateBridge */.po)(adapter.bridge_id, patch);
|
|
520
|
+
(0,bus/* publish */.mk)({
|
|
521
|
+
type: "bridge_status",
|
|
522
|
+
bridge_id: adapter.bridge_id,
|
|
523
|
+
status: update.status,
|
|
524
|
+
error: update.error ?? null,
|
|
525
|
+
paired_id: update.paired_id ?? null,
|
|
526
|
+
ts: Date.now()
|
|
527
|
+
});
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
async function startBridge(bridge_id) {
|
|
531
|
+
if (state.adapters.has(bridge_id)) return;
|
|
532
|
+
const row = (0,bridges/* getBridge */.e1)(bridge_id);
|
|
533
|
+
if (!row) throw new Error(`Bridge ${bridge_id} not found`);
|
|
534
|
+
const adapter = makeAdapter(bridge_id, row.kind);
|
|
535
|
+
state.adapters.set(bridge_id, adapter);
|
|
536
|
+
wireAdapter(adapter);
|
|
537
|
+
try {
|
|
538
|
+
await adapter.start();
|
|
539
|
+
} catch (err) {
|
|
540
|
+
state.adapters.delete(bridge_id);
|
|
541
|
+
const m = (0,error/* errorMessage */.g)(err);
|
|
542
|
+
(0,bridges/* updateBridge */.po)(bridge_id, {
|
|
543
|
+
status: "error",
|
|
544
|
+
last_error: m
|
|
545
|
+
});
|
|
546
|
+
throw err;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
async function stopBridge(bridge_id) {
|
|
550
|
+
const adapter = state.adapters.get(bridge_id);
|
|
551
|
+
state.adapters.delete(bridge_id);
|
|
552
|
+
state.status.delete(bridge_id);
|
|
553
|
+
if (adapter) {
|
|
554
|
+
try {
|
|
555
|
+
await adapter.stop();
|
|
556
|
+
} catch (err) {
|
|
557
|
+
console.error(`[bridge ${bridge_id}] stop failed:`, err);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
// Persist that the bridge is down (in case status callback didn't fire).
|
|
561
|
+
(0,bridges/* updateBridge */.po)(bridge_id, {
|
|
562
|
+
status: "disconnected",
|
|
563
|
+
qr: null
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
async function restartBridge(bridge_id) {
|
|
567
|
+
await stopBridge(bridge_id);
|
|
568
|
+
await startBridge(bridge_id);
|
|
569
|
+
}
|
|
570
|
+
async function repairBridge(bridge_id) {
|
|
571
|
+
const bridge = (0,bridges/* getBridge */.e1)(bridge_id);
|
|
572
|
+
if (!bridge) throw new Error(`Bridge ${bridge_id} not found`);
|
|
573
|
+
const bridgeModule = (0,registry/* getBridgeModule */.ut)(bridge.kind);
|
|
574
|
+
if (!bridgeModule?.pairing) throw new Error(`Bridge kind "${bridge.kind}" does not support pairing`);
|
|
575
|
+
await stopBridge(bridge_id);
|
|
576
|
+
await bridgeModule.removeAuth(bridge_id);
|
|
577
|
+
(0,bridges/* updateBridge */.po)(bridge_id, {
|
|
578
|
+
status: "disconnected",
|
|
579
|
+
qr: null,
|
|
580
|
+
last_error: null,
|
|
581
|
+
paired_id: null
|
|
582
|
+
});
|
|
583
|
+
await startBridge(bridge_id);
|
|
584
|
+
}
|
|
585
|
+
function getBridgeRuntimeStatus(bridge_id) {
|
|
586
|
+
return state.status.get(bridge_id) ?? null;
|
|
587
|
+
}
|
|
588
|
+
function isBridgeRunning(bridge_id) {
|
|
589
|
+
return state.adapters.has(bridge_id);
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Snapshot of chats the adapter has observed since connecting. Returns []
|
|
593
|
+
* when the bridge isn't running yet. Triggers a background refresh so that
|
|
594
|
+
* subsequent calls see newly-fetched group metadata.
|
|
595
|
+
*/ function listBridgeChats(bridge_id) {
|
|
596
|
+
const adapter = state.adapters.get(bridge_id);
|
|
597
|
+
if (!adapter?.listChats) return [];
|
|
598
|
+
// Fire-and-forget — refreshChats hits a WS round-trip; HTTP shouldn't
|
|
599
|
+
// wait. The next poll will pick up any new entries.
|
|
600
|
+
void adapter.refreshChats?.().catch(()=>{});
|
|
601
|
+
return adapter.listChats();
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Look up a freeform phone number (or other identifier) against the bridge
|
|
605
|
+
* and return the resolved chat if it exists, else null. Returns null also
|
|
606
|
+
* if the bridge isn't running.
|
|
607
|
+
*/ async function lookupBridgeChat(bridge_id, input) {
|
|
608
|
+
const adapter = state.adapters.get(bridge_id);
|
|
609
|
+
if (!adapter?.lookupChat) return null;
|
|
610
|
+
return adapter.lookupChat(input);
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* Boot hook. Idempotent — safe to call from a layout module that may be
|
|
614
|
+
* evaluated multiple times in Next.js dev HMR.
|
|
615
|
+
*/ async function startAllBridges() {
|
|
616
|
+
if (state.started) return;
|
|
617
|
+
state.started = true;
|
|
618
|
+
const rows = (0,bridges/* listBridges */.X9)();
|
|
619
|
+
for (const row of rows){
|
|
620
|
+
if (row.enabled !== 1) continue;
|
|
621
|
+
try {
|
|
622
|
+
await startBridge(row.id);
|
|
623
|
+
} catch (err) {
|
|
624
|
+
const m = (0,error/* errorMessage */.g)(err);
|
|
625
|
+
console.error(`[bridge ${row.id}] failed to start at boot:`, m);
|
|
626
|
+
// updateBridge already happened inside startBridge's catch.
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
// Stop every running bridge. Called from the graceful-shutdown path so
|
|
631
|
+
// WhatsApp WS sockets etc. close cleanly before the process exits. We
|
|
632
|
+
// await in parallel — a single slow `adapter.stop()` shouldn't gate the
|
|
633
|
+
// others — but the whole call is still bounded by the outer shutdown
|
|
634
|
+
// timeout in `lib/lifecycle/shutdown.ts`.
|
|
635
|
+
async function stopAllBridges() {
|
|
636
|
+
const ids = Array.from(state.adapters.keys());
|
|
637
|
+
await Promise.allSettled(ids.map((id)=>stopBridge(id)));
|
|
638
|
+
state.started = false;
|
|
639
|
+
}
|
|
191
640
|
|
|
192
|
-
module.exports = import("sharp");;
|
|
193
641
|
|
|
194
642
|
/***/ }),
|
|
195
643
|
|
|
196
|
-
/***/
|
|
644
|
+
/***/ 8128:
|
|
197
645
|
/***/ ((module) => {
|
|
198
646
|
|
|
199
|
-
module.exports = require("
|
|
647
|
+
module.exports = require("next/dist/server/runtime-reacts.external.js");
|
|
200
648
|
|
|
201
649
|
/***/ }),
|
|
202
650
|
|
|
203
|
-
/***/
|
|
651
|
+
/***/ 9956:
|
|
204
652
|
/***/ ((module) => {
|
|
205
653
|
|
|
206
|
-
module.exports = require("
|
|
654
|
+
module.exports = require("undici");
|
|
207
655
|
|
|
208
656
|
/***/ }),
|
|
209
657
|
|
|
210
|
-
/***/
|
|
658
|
+
/***/ 10846:
|
|
211
659
|
/***/ ((module) => {
|
|
212
660
|
|
|
213
|
-
module.exports = require("
|
|
661
|
+
module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
|
|
214
662
|
|
|
215
663
|
/***/ }),
|
|
216
664
|
|
|
217
|
-
/***/
|
|
665
|
+
/***/ 11221:
|
|
218
666
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
219
667
|
|
|
220
668
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -656,6 +1104,125 @@ async function handler(req, res, ctx) {
|
|
|
656
1104
|
//# sourceMappingURL=app-route.js.map
|
|
657
1105
|
|
|
658
1106
|
|
|
1107
|
+
/***/ }),
|
|
1108
|
+
|
|
1109
|
+
/***/ 12412:
|
|
1110
|
+
/***/ ((module) => {
|
|
1111
|
+
|
|
1112
|
+
module.exports = require("assert");
|
|
1113
|
+
|
|
1114
|
+
/***/ }),
|
|
1115
|
+
|
|
1116
|
+
/***/ 16602:
|
|
1117
|
+
/***/ ((module) => {
|
|
1118
|
+
|
|
1119
|
+
module.exports = import("@whiskeysockets/baileys");;
|
|
1120
|
+
|
|
1121
|
+
/***/ }),
|
|
1122
|
+
|
|
1123
|
+
/***/ 16698:
|
|
1124
|
+
/***/ ((module) => {
|
|
1125
|
+
|
|
1126
|
+
module.exports = require("node:async_hooks");
|
|
1127
|
+
|
|
1128
|
+
/***/ }),
|
|
1129
|
+
|
|
1130
|
+
/***/ 19121:
|
|
1131
|
+
/***/ ((module) => {
|
|
1132
|
+
|
|
1133
|
+
module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
|
|
1134
|
+
|
|
1135
|
+
/***/ }),
|
|
1136
|
+
|
|
1137
|
+
/***/ 27910:
|
|
1138
|
+
/***/ ((module) => {
|
|
1139
|
+
|
|
1140
|
+
module.exports = require("stream");
|
|
1141
|
+
|
|
1142
|
+
/***/ }),
|
|
1143
|
+
|
|
1144
|
+
/***/ 28354:
|
|
1145
|
+
/***/ ((module) => {
|
|
1146
|
+
|
|
1147
|
+
module.exports = require("util");
|
|
1148
|
+
|
|
1149
|
+
/***/ }),
|
|
1150
|
+
|
|
1151
|
+
/***/ 29021:
|
|
1152
|
+
/***/ ((module) => {
|
|
1153
|
+
|
|
1154
|
+
module.exports = require("fs");
|
|
1155
|
+
|
|
1156
|
+
/***/ }),
|
|
1157
|
+
|
|
1158
|
+
/***/ 29294:
|
|
1159
|
+
/***/ ((module) => {
|
|
1160
|
+
|
|
1161
|
+
module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
|
|
1162
|
+
|
|
1163
|
+
/***/ }),
|
|
1164
|
+
|
|
1165
|
+
/***/ 31421:
|
|
1166
|
+
/***/ ((module) => {
|
|
1167
|
+
|
|
1168
|
+
module.exports = require("node:child_process");
|
|
1169
|
+
|
|
1170
|
+
/***/ }),
|
|
1171
|
+
|
|
1172
|
+
/***/ 33873:
|
|
1173
|
+
/***/ ((module) => {
|
|
1174
|
+
|
|
1175
|
+
module.exports = require("path");
|
|
1176
|
+
|
|
1177
|
+
/***/ }),
|
|
1178
|
+
|
|
1179
|
+
/***/ 37067:
|
|
1180
|
+
/***/ ((module) => {
|
|
1181
|
+
|
|
1182
|
+
module.exports = require("node:http");
|
|
1183
|
+
|
|
1184
|
+
/***/ }),
|
|
1185
|
+
|
|
1186
|
+
/***/ 38522:
|
|
1187
|
+
/***/ ((module) => {
|
|
1188
|
+
|
|
1189
|
+
module.exports = require("node:zlib");
|
|
1190
|
+
|
|
1191
|
+
/***/ }),
|
|
1192
|
+
|
|
1193
|
+
/***/ 40610:
|
|
1194
|
+
/***/ ((module) => {
|
|
1195
|
+
|
|
1196
|
+
module.exports = require("node:dns");
|
|
1197
|
+
|
|
1198
|
+
/***/ }),
|
|
1199
|
+
|
|
1200
|
+
/***/ 42482:
|
|
1201
|
+
/***/ ((module) => {
|
|
1202
|
+
|
|
1203
|
+
module.exports = import("sharp");;
|
|
1204
|
+
|
|
1205
|
+
/***/ }),
|
|
1206
|
+
|
|
1207
|
+
/***/ 44708:
|
|
1208
|
+
/***/ ((module) => {
|
|
1209
|
+
|
|
1210
|
+
module.exports = require("node:https");
|
|
1211
|
+
|
|
1212
|
+
/***/ }),
|
|
1213
|
+
|
|
1214
|
+
/***/ 44870:
|
|
1215
|
+
/***/ ((module) => {
|
|
1216
|
+
|
|
1217
|
+
module.exports = require("next/dist/compiled/next-server/app-route.runtime.prod.js");
|
|
1218
|
+
|
|
1219
|
+
/***/ }),
|
|
1220
|
+
|
|
1221
|
+
/***/ 48161:
|
|
1222
|
+
/***/ ((module) => {
|
|
1223
|
+
|
|
1224
|
+
module.exports = require("node:os");
|
|
1225
|
+
|
|
659
1226
|
/***/ }),
|
|
660
1227
|
|
|
661
1228
|
/***/ 51455:
|
|
@@ -812,7 +1379,7 @@ module.exports = import("@huggingface/transformers");;
|
|
|
812
1379
|
var __webpack_require__ = require("../../../../../../webpack-runtime.js");
|
|
813
1380
|
__webpack_require__.C(exports);
|
|
814
1381
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
815
|
-
var __webpack_exports__ = __webpack_require__.X(0, [2970,7377,1813,7981,513,6299,563,8808,7547,4992,46,3042,3566,2068,4377,1638,5585,3524,
|
|
1382
|
+
var __webpack_exports__ = __webpack_require__.X(0, [2970,7377,1813,7981,513,6299,563,8808,7547,4992,46,3042,3566,2068,4377,1638,5585,9304,3524,3175,6142,540,4189,4955,5908,5120,1388,309], () => (__webpack_exec__(11221)));
|
|
816
1383
|
module.exports = __webpack_exports__;
|
|
817
1384
|
|
|
818
1385
|
})();
|