@desplega.ai/agent-swarm 2.4.0 → 2.4.1
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/README.md +1 -1
- package/dist/{acp-adapter-kedstxx6.js → acp-adapter-zvzr538d.js} +9 -9
- package/dist/{actions-vget6r1k.js → actions-jhtqdw69.js} +21 -21
- package/dist/{amp-adapter-xeb5mktv.js → amp-adapter-bd84rhs2.js} +4 -4
- package/dist/{app-mqap8t8m.js → app-kreq1gwg.js} +3 -3
- package/dist/{assistant-h0gv97mv.js → assistant-3k22sbsq.js} +22 -22
- package/dist/{boot-reembed-qr8a894z.js → boot-reembed-e53x6b9v.js} +1 -1
- package/dist/{boot-reembed-rj85jjhw.js → boot-reembed-f6z923ny.js} +1 -1
- package/dist/{boot-scrub-sweep-eyfvn6v9.js → boot-scrub-sweep-0538vsb7.js} +4 -4
- package/dist/{boot-seeds-xs9a8dx1.js → boot-seeds-6wxqkfk2.js} +4 -4
- package/dist/{claude-adapter-bm23cye7.js → claude-adapter-gfts5044.js} +9 -9
- package/dist/{claude-managed-adapter-1mwrsm9d.js → claude-managed-adapter-h2y889ge.js} +2 -2
- package/dist/{claude-managed-setup-gkfgks4j.js → claude-managed-setup-h00hsgtz.js} +2 -2
- package/dist/{claude-sdk-session-apb4ypz3.js → claude-sdk-session-56besmfz.js} +13 -13
- package/dist/{cli-nrrg0fvy.js → cli-0bh477zn.js} +18 -5
- package/dist/{cli-7gh7020n.js → cli-1dmcq2eh.js} +1 -1
- package/dist/{cli-7ayprxp7.js → cli-2dfbv8qr.js} +8 -0
- package/dist/{cli-1cevz46c.js → cli-3kh4kpqy.js} +6 -6
- package/dist/{cli-tg9ksbn8.js → cli-3p8fqcnh.js} +2 -2
- package/dist/{cli-x1p5dhq2.js → cli-3r448dqn.js} +3 -3
- package/dist/{cli-ecshf504.js → cli-3tnpj2bh.js} +7 -7
- package/dist/{cli-ffbrkh1r.js → cli-471qk6s2.js} +46 -38
- package/dist/{cli-a49vpbf3.js → cli-5kqnemen.js} +1 -1
- package/dist/{cli-zvze9rbm.js → cli-6ncjvx55.js} +3 -3
- package/dist/{cli-fb6t92v8.js → cli-6x9ma5w5.js} +1 -1
- package/dist/{cli-c8fwpgqb.js → cli-7225gwj7.js} +2 -2
- package/dist/{cli-bn26xbcs.js → cli-8nyhf7za.js} +1 -1
- package/dist/{cli-y83zk5sb.js → cli-a0kcty51.js} +4 -4
- package/dist/{cli-8b9wvjps.js → cli-a4gvwttf.js} +4 -4
- package/dist/{cli-jhp7w1fy.js → cli-a5ebc95n.js} +2 -2
- package/dist/{cli-mz1ezzzh.js → cli-ash6xxk7.js} +2 -2
- package/dist/{cli-rsd7ga7v.js → cli-axh29tyr.js} +11 -11
- package/dist/{cli-p22zdvnt.js → cli-bn0rewsy.js} +3 -3
- package/dist/{cli-6ftrrwm1.js → cli-bn5kevnf.js} +5 -5
- package/dist/{cli-p1m2b6gc.js → cli-d2mb5s8a.js} +7 -7
- package/dist/{cli-c5sbmw1v.js → cli-d82btycs.js} +94 -15
- package/dist/{cli-vjfpshn3.js → cli-ejs3m1sx.js} +1 -1
- package/dist/{cli-a1esmmee.js → cli-fpmsqq59.js} +7 -2
- package/dist/{cli-8cxkw1f5.js → cli-fz9kewbh.js} +2 -2
- package/dist/{cli-8rwvksbc.js → cli-g0hgtz4p.js} +5 -5
- package/dist/{cli-kz116kvw.js → cli-gf0kfg81.js} +7 -7
- package/dist/{cli-eqgfs202.js → cli-hqhzg1qq.js} +2 -2
- package/dist/{cli-3wjs22x3.js → cli-j4rqdf2n.js} +2 -2
- package/dist/{cli-ywyrffff.js → cli-jh0qcrga.js} +1 -1
- package/dist/{cli-ttaz6c7m.js → cli-k9z4zd4p.js} +6 -5
- package/dist/{cli-nme7wery.js → cli-kmqgmcnb.js} +46 -13
- package/dist/{cli-x719j3vs.js → cli-kr2pmfqx.js} +392 -168
- package/dist/{cli-wrv09v7q.js → cli-m2qgh5sv.js} +1 -1
- package/dist/{cli-xfe63zx3.js → cli-mfe7f7b5.js} +2 -2
- package/dist/{cli-x3en6ct3.js → cli-nwyw3zhg.js} +1 -1
- package/dist/{cli-5s5hx57y.js → cli-nx462e4v.js} +1 -1
- package/dist/{cli-bfc3k1x5.js → cli-p0rakbrk.js} +9 -9
- package/dist/{cli-avmqhatn.js → cli-p6argxh9.js} +8 -8
- package/dist/{cli-3avfh5az.js → cli-pemywhfq.js} +2 -2
- package/dist/{cli-sppc0cmw.js → cli-pnp2j5zg.js} +2 -2
- package/dist/{cli-wk8ccrz6.js → cli-pw7v69vp.js} +2 -2
- package/dist/{cli-bhwa8rzc.js → cli-rdq7tzwm.js} +13 -12
- package/dist/{cli-rg7ntypm.js → cli-rqqsfz30.js} +379 -87
- package/dist/{cli-kk2r80n5.js → cli-s48yvzb8.js} +4 -4
- package/dist/{cli-zv4vy2b0.js → cli-s95dknxh.js} +1 -1
- package/dist/{cli-b80a1100.js → cli-sjyetj21.js} +2 -2
- package/dist/{cli-rdr166ht.js → cli-smvcw9z5.js} +1 -1
- package/dist/{cli-2rwet3r7.js → cli-sv5gb0yb.js} +1 -1
- package/dist/{cli-5ff2sjyt.js → cli-syhq378v.js} +2 -2
- package/dist/{cli-tj4j2ts4.js → cli-tbhwrxpt.js} +8 -8
- package/dist/{cli-4fhyq711.js → cli-vy0fay6k.js} +13 -13
- package/dist/{cli-ptkpaqfy.js → cli-wt645v7q.js} +1 -1
- package/dist/{cli-f3nx1h8z.js → cli-wxbn3yfx.js} +2 -2
- package/dist/{cli-wyrr38xm.js → cli-x5mq1fyq.js} +1 -1
- package/dist/{cli-ccn0eybf.js → cli-xbzvet96.js} +6 -6
- package/dist/{cli-4mkvwgzr.js → cli-xf234ws8.js} +1 -1
- package/dist/{cli-tgvpmnwz.js → cli-xftrvxag.js} +5 -5
- package/dist/{cli-02vhhssk.js → cli-z071fb95.js} +5 -5
- package/dist/{cli-mvg2hf8p.js → cli-z1ew8vbq.js} +14 -7
- package/dist/{cli-dsgj3e7a.js → cli-zfg9enh9.js} +2 -2
- package/dist/{cli-yxqag76b.js → cli-zw88zjba.js} +1 -1
- package/dist/cli.js +19 -19
- package/dist/{codex-adapter-pp2gq8gr.js → codex-adapter-p6rmm7vv.js} +6 -6
- package/dist/{codex-hook-qwzccd64.js → codex-hook-x7nejyrr.js} +7 -4
- package/dist/{codex-login-35p4sk85.js → codex-login-m819c41r.js} +1 -1
- package/dist/{codex-session-runner-0vzn09t8.js → codex-session-runner-8vd5t9t0.js} +7 -7
- package/dist/{commands-psqhkttb.js → commands-7ems2p13.js} +2 -2
- package/dist/{controller-t20vz2k8.js → controller-m263fg43.js} +4 -4
- package/dist/{controllers-connect-gkxmqw9d.js → controllers-connect-bg33ae53.js} +23 -23
- package/dist/{cursor-adapter-3v542qe5.js → cursor-adapter-cz6nm6mj.js} +3 -3
- package/dist/{db-2xbyenjr.js → db-w505dwa8.js} +2 -2
- package/dist/{db-nc1rd869.js → db-ys2rbdft.js} +3 -3
- package/dist/{devin-adapter-7egzmt0k.js → devin-adapter-zgqadvnm.js} +1 -1
- package/dist/{dispatcher-ewceb8ts.js → dispatcher-0s0mckqr.js} +20 -20
- package/dist/{docker-njavd3fb.js → docker-fkgtr75t.js} +2 -2
- package/dist/{dsh-adapter-75xwh78t.js → dsh-adapter-3n3net33.js} +3 -3
- package/dist/{e2b-5r6a5jeb.js → e2b-7am6tmq6.js} +2 -2
- package/dist/{e2b-pw1nvtmh.js → e2b-thdcxtjd.js} +2 -2
- package/dist/{easter-egg-3d-xsc47jwf.js → easter-egg-3d-5cgynaja.js} +1 -1
- package/dist/{event-bus-101fenkh.js → event-bus-9vpk8gmq.js} +1 -1
- package/dist/{execute-gzmw1mnw.js → execute-t4e6m3rw.js} +1 -1
- package/dist/{external-channel-a5dsmxn4.js → external-channel-5b23fv8z.js} +2 -2
- package/dist/{grok-adapter-vj88xr23.js → grok-adapter-q9fghe5q.js} +10 -10
- package/dist/handlers-mqrym347.js +39 -0
- package/dist/{heartbeat-t2m9r3wa.js → heartbeat-tww6yx1w.js} +23 -23
- package/dist/{hook-xa677f8r.js → hook-dx0pkvar.js} +16 -9
- package/dist/{hook-8femx1bg.js → hook-pvmh9b6m.js} +6 -6
- package/dist/{http-xpmmq028.js → http-k2ejbt05.js} +199 -131
- package/dist/{index-s7ckdajq.js → index-2z710v4x.js} +10 -10
- package/dist/{index-dg2tmj99.js → index-dgz61nff.js} +20 -20
- package/dist/{index-syztqdt6.js → index-g6tbb6ve.js} +1 -1
- package/dist/index-h2ek08d6.js +40 -0
- package/dist/index-pqfwh9nn.js +41 -0
- package/dist/{index-cdzyfrsp.js → index-x5aktmp8.js} +1 -1
- package/dist/{keepalive-3nr4st3r.js → keepalive-nhvpw10z.js} +4 -4
- package/dist/lead-jb6sf69z.js +78 -0
- package/dist/{maintenance-verwpe2c.js → maintenance-agakc519.js} +1 -1
- package/dist/{oauth-refresh-sweep-9q2t0y3q.js → oauth-refresh-sweep-4dcbhtn0.js} +3 -3
- package/dist/{onboard-aytqedmq.js → onboard-4n2kwa4v.js} +3 -3
- package/dist/{opencode-adapter-f4hryjny.js → opencode-adapter-3s7ax02e.js} +7 -7
- package/dist/{otel-impl-hckw4wt1.js → otel-impl-tfa12080.js} +2 -2
- package/dist/{pi-mono-adapter-hxby0ce1.js → pi-mono-adapter-ytp7gz8b.js} +22 -11
- package/dist/{pricing-refresh-5nvme3sm.js → pricing-refresh-3cqx3f3x.js} +3 -3
- package/dist/{rbac-roles-pd8c26m1.js → rbac-roles-9fae5rnv.js} +1 -1
- package/dist/{rbac-roles-vbpy21mg.js → rbac-roles-y6zbfzve.js} +2 -2
- package/dist/{render-v2-7nqgvk2q.js → render-v2-emawjvc4.js} +3 -3
- package/dist/{resume-b6djcj3c.js → resume-zhgts7h7.js} +10 -8
- package/dist/{runtime-txrxc9za.js → runtime-xe3aqy4x.js} +1 -1
- package/dist/{session-access-fc3f9y12.js → session-access-cm823e06.js} +4 -4
- package/dist/{setup-n39szm6b.js → setup-tkp99w1e.js} +1 -1
- package/dist/{virtual-modules-wyp2k6z3.js → virtual-modules-4r3zkc20.js} +2 -2
- package/dist/{work-objects-jem2fre0.js → work-objects-f722h263.js} +23 -23
- package/dist/worker-p7f336rq.js +78 -0
- package/dist/{x-8ewt8gxn.js → x-y45mthwn.js} +2 -2
- package/openapi.json +99 -52
- package/package.json +2 -2
- package/src/apps/action-runner.ts +146 -0
- package/src/apps/row-store.ts +4 -2
- package/src/apps/script-types.ts +1 -1
- package/src/be/db.ts +14 -4
- package/src/be/fleet-benchmark-stats.ts +10 -5
- package/src/be/models-catalog.ts +4 -0
- package/src/be/onboarding.ts +6 -0
- package/src/be/scripts/typecheck.ts +13 -0
- package/src/be/swarm-config-guard.ts +10 -1
- package/src/be/telemetry-enable.ts +1 -1
- package/src/commands/provider-credentials.ts +12 -2
- package/src/commands/runner.ts +3 -0
- package/src/heartbeat/heartbeat.ts +2 -2
- package/src/hooks/codex-hook.ts +6 -2
- package/src/hooks/hook.ts +7 -0
- package/src/hooks/pr-body-guard.ts +38 -11
- package/src/hooks/pr-room-guard.ts +88 -0
- package/src/http/agents.ts +1 -0
- package/src/http/apps.ts +84 -181
- package/src/http/fleet-benchmark.ts +79 -30
- package/src/http/global-config.ts +7 -0
- package/src/http/ranking.ts +24 -40
- package/src/http/tasks.ts +2 -1
- package/src/http/telemetry-ui.ts +1 -1
- package/src/http/used-by.ts +55 -19
- package/src/http/users.ts +2 -2
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +15 -0
- package/src/providers/reasoning-effort.ts +2 -1
- package/src/providers/types.ts +2 -0
- package/src/ranking/telemetry-ranking.ts +5 -33
- package/src/scripts-runtime/sdk-allowlist.ts +7 -0
- package/src/scripts-runtime/types/stdlib.d.ts +31 -0
- package/src/scripts-runtime/types/swarm-sdk.d.ts +31 -0
- package/src/server.ts +4 -0
- package/src/telemetry-context.ts +19 -1
- package/src/telemetry-contract/EVENTS.md +42 -8
- package/src/telemetry-contract/SOURCE.json +6 -5
- package/src/telemetry-contract/catalog.json +225 -5
- package/src/telemetry-contract/ranking/fixtures/valid/no-claim.json +10 -0
- package/src/telemetry-contract/ranking/listing.v1.schema.json +2 -2
- package/src/telemetry-contract/types.gen.ts +225 -27
- package/src/telemetry-identity.ts +47 -9
- package/src/telemetry-snapshot.ts +9 -1
- package/src/telemetry-ui-events.ts +9 -2
- package/src/telemetry.ts +14 -3
- package/src/tests/app-action-run-tool.test.ts +178 -0
- package/src/tests/app-row-tools.test.ts +360 -0
- package/src/tests/check-pr-body.test.ts +0 -23
- package/src/tests/credential-check.test.ts +38 -0
- package/src/tests/fleet-benchmark.test.ts +122 -2
- package/src/tests/http-users.test.ts +62 -1
- package/src/tests/model-catalog-table.test.ts +63 -0
- package/src/tests/model-profiles-api.test.ts +19 -7
- package/src/tests/models-catalog.test.ts +50 -0
- package/src/tests/onboarding.test.ts +21 -0
- package/src/tests/org-website.test.ts +62 -0
- package/src/tests/pi-mono-adapter.test.ts +23 -0
- package/src/tests/pr-body-leaks.test.ts +4 -0
- package/src/tests/pr-room-guard.test.ts +242 -0
- package/src/tests/ranking-listing.test.ts +8 -23
- package/src/tests/ranking-route.test.ts +49 -47
- package/src/tests/reasoning-effort.test.ts +39 -3
- package/src/tests/runner-harness-telemetry-env.test.ts +56 -1
- package/src/tests/swarm-tool-result-gate.test.ts +2 -4
- package/src/tests/telemetry-context.test.ts +128 -2
- package/src/tests/telemetry-ui-route.test.ts +123 -0
- package/src/tests/tool-annotations.test.ts +3 -2
- package/src/tests/used-by-route.test.ts +144 -10
- package/src/tests/workflow-agent-task-retry.test.ts +130 -4
- package/src/tests/workflow-wait-recovery.test.ts +116 -4
- package/src/tools/app-action-run.ts +63 -0
- package/src/tools/app-rows.ts +234 -0
- package/src/tools/model-catalog/index.ts +1 -1
- package/src/tools/tool-config.ts +8 -0
- package/src/tools/utils.ts +1 -1
- package/src/tools/workflows/retry-workflow-run.ts +1 -1
- package/src/types.ts +17 -0
- package/src/utils/company-profile.ts +24 -0
- package/src/utils/org-website.ts +58 -21
- package/src/workflows/recovery.ts +10 -22
- package/src/workflows/resume.ts +16 -0
- package/src/workflows/task-step-routing.ts +47 -7
- package/templates/skills/apps/SKILL.md +41 -2
- package/templates/skills/apps/content.md +41 -2
- package/dist/handlers-zbs90bny.js +0 -39
- package/dist/index-8pwc1jc8.js +0 -40
- package/dist/index-nxa6me0q.js +0 -41
- package/dist/lead-td8h2sfn.js +0 -78
- package/dist/worker-wr6xgfr2.js +0 -78
- package/src/tests/check-ranking-entry.test.ts +0 -146
|
@@ -280,7 +280,7 @@ import {
|
|
|
280
280
|
hasCapability,
|
|
281
281
|
getEnabledCapabilities,
|
|
282
282
|
createServer
|
|
283
|
-
} from "./cli-
|
|
283
|
+
} from "./cli-kr2pmfqx.js";
|
|
284
284
|
import {
|
|
285
285
|
chatThreadOfContextKey,
|
|
286
286
|
agentContextKey,
|
|
@@ -288,6 +288,10 @@ import {
|
|
|
288
288
|
init_context_key,
|
|
289
289
|
init_catalog,
|
|
290
290
|
catalog_default,
|
|
291
|
+
COMPANY_TEAM_SIZES,
|
|
292
|
+
COMPANY_USE_CASES,
|
|
293
|
+
USER_FUNCTIONS,
|
|
294
|
+
init_company_profile,
|
|
291
295
|
TELEMETRY_PROXY_ORIGIN,
|
|
292
296
|
normalizeOrgWebsite,
|
|
293
297
|
orgLogoUrl,
|
|
@@ -302,6 +306,7 @@ import {
|
|
|
302
306
|
_resolveIntegrationType,
|
|
303
307
|
_resolveIntegrationProvider,
|
|
304
308
|
setTelemetryRoleResolver,
|
|
309
|
+
setTelemetryFunctionResolver,
|
|
305
310
|
isTelemetryReady,
|
|
306
311
|
trackRelayed,
|
|
307
312
|
telemetry,
|
|
@@ -326,6 +331,7 @@ import {
|
|
|
326
331
|
getDbClient2,
|
|
327
332
|
init_runtime,
|
|
328
333
|
cachedUserRole,
|
|
334
|
+
cachedUserFunction,
|
|
329
335
|
configureOrgDomainPersistence,
|
|
330
336
|
recomputeOrgDomain,
|
|
331
337
|
init_telemetry_identity,
|
|
@@ -422,11 +428,7 @@ import {
|
|
|
422
428
|
RANKING_CATEGORIES,
|
|
423
429
|
readTelemetryRanking,
|
|
424
430
|
rankingFormSchema,
|
|
425
|
-
mintRankingClaim,
|
|
426
431
|
buildListing,
|
|
427
|
-
rankingEntryFile,
|
|
428
|
-
rankingPrUrl,
|
|
429
|
-
rankingLeaveUrl,
|
|
430
432
|
init_telemetry_ranking,
|
|
431
433
|
API_DRAINING_HEADER,
|
|
432
434
|
init_api_drain,
|
|
@@ -712,26 +714,26 @@ import {
|
|
|
712
714
|
countScriptRunJournalSteps2,
|
|
713
715
|
countScriptRunJournalAgentTaskSteps2,
|
|
714
716
|
init_db3
|
|
715
|
-
} from "./cli-
|
|
717
|
+
} from "./cli-rqqsfz30.js";
|
|
716
718
|
import {
|
|
717
719
|
getUserGrant2,
|
|
718
720
|
init_rbac_roles
|
|
719
|
-
} from "./cli-
|
|
720
|
-
import"./cli-
|
|
721
|
+
} from "./cli-nx462e4v.js";
|
|
722
|
+
import"./cli-s48yvzb8.js";
|
|
721
723
|
import {
|
|
722
724
|
normalizeModelKey
|
|
723
|
-
} from "./cli-
|
|
725
|
+
} from "./cli-3p8fqcnh.js";
|
|
724
726
|
import {
|
|
725
727
|
upsertModelCatalogOverlay,
|
|
726
728
|
deleteModelCatalogOverlay,
|
|
727
729
|
loadModelsCatalog,
|
|
728
730
|
requestModelCatalogRefresh2
|
|
729
|
-
} from "./cli-
|
|
731
|
+
} from "./cli-k9z4zd4p.js";
|
|
730
732
|
import {
|
|
731
733
|
AMP_ESTIMATE_MODELS,
|
|
732
734
|
ampBillsCacheWrites,
|
|
733
735
|
resolveAmpModel
|
|
734
|
-
} from "./cli-
|
|
736
|
+
} from "./cli-sv5gb0yb.js";
|
|
735
737
|
import {
|
|
736
738
|
automationIntegrationFixUrl,
|
|
737
739
|
preflightAutomation,
|
|
@@ -743,7 +745,7 @@ import {
|
|
|
743
745
|
cancelWorkflowRun2,
|
|
744
746
|
TriggerSchemaError,
|
|
745
747
|
startWorkflowExecution2
|
|
746
|
-
} from "./cli-
|
|
748
|
+
} from "./cli-kmqgmcnb.js";
|
|
747
749
|
import {
|
|
748
750
|
require_dist2,
|
|
749
751
|
isInvalidClientError,
|
|
@@ -823,14 +825,14 @@ import {
|
|
|
823
825
|
typecheckWithAmbient,
|
|
824
826
|
typecheckScript,
|
|
825
827
|
parseSkillContent
|
|
826
|
-
} from "./cli-
|
|
828
|
+
} from "./cli-0bh477zn.js";
|
|
827
829
|
import {
|
|
828
830
|
buildAuthorizationUrl,
|
|
829
831
|
exchangeAuthorizationCode,
|
|
830
832
|
oauthAppRowToProviderConfig,
|
|
831
833
|
forceRefreshAuthorizationOrThrow,
|
|
832
834
|
forceRefreshTokenOrThrow
|
|
833
|
-
} from "./cli-
|
|
835
|
+
} from "./cli-sjyetj21.js";
|
|
834
836
|
import {
|
|
835
837
|
signalProcessGroup,
|
|
836
838
|
detachedProcessGroup,
|
|
@@ -858,15 +860,15 @@ import {
|
|
|
858
860
|
getSlackApp2,
|
|
859
861
|
startSlackApp2,
|
|
860
862
|
stopSlackApp2
|
|
861
|
-
} from "./cli-
|
|
862
|
-
import"./cli-
|
|
863
|
+
} from "./cli-vy0fay6k.js";
|
|
864
|
+
import"./cli-mfe7f7b5.js";
|
|
863
865
|
import {
|
|
864
866
|
createApprovalFollowUpTask,
|
|
865
867
|
generateEdges,
|
|
866
868
|
definitionNodeIds,
|
|
867
869
|
validateDefinition
|
|
868
|
-
} from "./cli-
|
|
869
|
-
import"./cli-
|
|
870
|
+
} from "./cli-tbhwrxpt.js";
|
|
871
|
+
import"./cli-8nyhf7za.js";
|
|
870
872
|
import {
|
|
871
873
|
_fetchHolder,
|
|
872
874
|
CLIENT_ID,
|
|
@@ -877,11 +879,11 @@ import {
|
|
|
877
879
|
codexOAuthKeyForSlot,
|
|
878
880
|
loadAllCodexOAuthSlots,
|
|
879
881
|
getValidCodexOAuth
|
|
880
|
-
} from "./cli-
|
|
882
|
+
} from "./cli-ejs3m1sx.js";
|
|
881
883
|
import {
|
|
882
884
|
workflowEventBus2,
|
|
883
885
|
init_event_bus
|
|
884
|
-
} from "./cli-
|
|
886
|
+
} from "./cli-wt645v7q.js";
|
|
885
887
|
import {
|
|
886
888
|
duplicateGuardedQueryKey,
|
|
887
889
|
warnIfCorsAllowsAnyOrigin,
|
|
@@ -923,7 +925,7 @@ import {
|
|
|
923
925
|
bodyListTask,
|
|
924
926
|
describeRequestRoute,
|
|
925
927
|
route
|
|
926
|
-
} from "./cli-
|
|
928
|
+
} from "./cli-z071fb95.js";
|
|
927
929
|
import {
|
|
928
930
|
isMultiRuntimeEnabled
|
|
929
931
|
} from "./cli-7a91w22y.js";
|
|
@@ -954,13 +956,13 @@ import {
|
|
|
954
956
|
resolvePoolDelivery2,
|
|
955
957
|
createPoolAgent2,
|
|
956
958
|
init_db
|
|
957
|
-
} from "./cli-
|
|
959
|
+
} from "./cli-bn5kevnf.js";
|
|
958
960
|
import {
|
|
959
961
|
RATING_MODEL_MAX_LENGTH,
|
|
960
962
|
REFERENCES_SOURCE_MAX_LENGTH,
|
|
961
963
|
sanitizeReferencesSource
|
|
962
964
|
} from "./cli-3h26v7yj.js";
|
|
963
|
-
import"./cli-
|
|
965
|
+
import"./cli-smvcw9z5.js";
|
|
964
966
|
import {
|
|
965
967
|
startPoolRouting,
|
|
966
968
|
stopPoolRouting,
|
|
@@ -970,8 +972,8 @@ import {
|
|
|
970
972
|
checkHeartbeatChecklist2,
|
|
971
973
|
runHeartbeatSweep2,
|
|
972
974
|
stopHeartbeat2
|
|
973
|
-
} from "./cli-
|
|
974
|
-
import"./cli-
|
|
975
|
+
} from "./cli-rdq7tzwm.js";
|
|
976
|
+
import"./cli-hqhzg1qq.js";
|
|
975
977
|
import {
|
|
976
978
|
import_websocket,
|
|
977
979
|
import_websocket_server
|
|
@@ -980,15 +982,15 @@ import {
|
|
|
980
982
|
runtimeSupervisorStatus,
|
|
981
983
|
startRuntimeSupervisor,
|
|
982
984
|
stopRuntimeSupervisor
|
|
983
|
-
} from "./cli-
|
|
985
|
+
} from "./cli-axh29tyr.js";
|
|
984
986
|
import"./cli-ns59dc6r.js";
|
|
985
987
|
import {
|
|
986
988
|
ACP_TARGET_IDS
|
|
987
|
-
} from "./cli-
|
|
989
|
+
} from "./cli-5kqnemen.js";
|
|
988
990
|
import {
|
|
989
991
|
reasoningCapability,
|
|
990
992
|
supportedReasoningLevels
|
|
991
|
-
} from "./cli-
|
|
993
|
+
} from "./cli-bn0rewsy.js";
|
|
992
994
|
import {
|
|
993
995
|
MAX_RATE_LIMIT_RESET_MS
|
|
994
996
|
} from "./cli-gx4rm0qx.js";
|
|
@@ -1000,11 +1002,11 @@ import {
|
|
|
1000
1002
|
memoryRelevance,
|
|
1001
1003
|
isUnknownModelError,
|
|
1002
1004
|
writeSkillsToFilesystem
|
|
1003
|
-
} from "./cli-
|
|
1005
|
+
} from "./cli-m2qgh5sv.js";
|
|
1004
1006
|
import {
|
|
1005
1007
|
inviteEmailToSharedOrg,
|
|
1006
1008
|
ensureAgentFsCredentialsForAgent
|
|
1007
|
-
} from "./cli-
|
|
1009
|
+
} from "./cli-syhq378v.js";
|
|
1008
1010
|
import {
|
|
1009
1011
|
Anthropic
|
|
1010
1012
|
} from "./cli-er83cjbn.js";
|
|
@@ -1039,7 +1041,7 @@ import {
|
|
|
1039
1041
|
revokeSessionToken,
|
|
1040
1042
|
fingerprintApiKey,
|
|
1041
1043
|
init_users
|
|
1042
|
-
} from "./cli-
|
|
1044
|
+
} from "./cli-fz9kewbh.js";
|
|
1043
1045
|
import"./cli-v41kn3cd.js";
|
|
1044
1046
|
import"./cli-wgtk7xxr.js";
|
|
1045
1047
|
import {
|
|
@@ -1131,6 +1133,7 @@ import {
|
|
|
1131
1133
|
RuntimePoolSchema,
|
|
1132
1134
|
RuntimePoolCreateAgentSchema,
|
|
1133
1135
|
RuntimeInstanceSchema,
|
|
1136
|
+
SUPERSEDED_WORKFLOW_TASK_REASON,
|
|
1134
1137
|
WorkflowEdgeSchema,
|
|
1135
1138
|
WorkflowDefinitionSchema,
|
|
1136
1139
|
WorkflowNodePatchSchema,
|
|
@@ -1194,12 +1197,12 @@ import {
|
|
|
1194
1197
|
KvKeySchema,
|
|
1195
1198
|
KvEntrySchema,
|
|
1196
1199
|
init_types
|
|
1197
|
-
} from "./cli-
|
|
1200
|
+
} from "./cli-fpmsqq59.js";
|
|
1198
1201
|
import {
|
|
1199
1202
|
IDENTITY_FIELD_BUDGETS,
|
|
1200
1203
|
IdentityFieldBudgetError,
|
|
1201
1204
|
init_identity_field_budget
|
|
1202
|
-
} from "./cli-
|
|
1205
|
+
} from "./cli-x5mq1fyq.js";
|
|
1203
1206
|
import {
|
|
1204
1207
|
getSlackConfiguration,
|
|
1205
1208
|
init_config
|
|
@@ -1267,7 +1270,7 @@ import {
|
|
|
1267
1270
|
import {
|
|
1268
1271
|
init_package,
|
|
1269
1272
|
package_default
|
|
1270
|
-
} from "./cli-
|
|
1273
|
+
} from "./cli-ash6xxk7.js";
|
|
1271
1274
|
import {
|
|
1272
1275
|
realtimeBus,
|
|
1273
1276
|
init_bus
|
|
@@ -1296,11 +1299,11 @@ import {
|
|
|
1296
1299
|
scrubObject,
|
|
1297
1300
|
registerVolatileSecret,
|
|
1298
1301
|
init_secret_scrubber
|
|
1299
|
-
} from "./cli-
|
|
1302
|
+
} from "./cli-xf234ws8.js";
|
|
1300
1303
|
import {
|
|
1301
1304
|
isAlias,
|
|
1302
1305
|
init_src2
|
|
1303
|
-
} from "./cli-
|
|
1306
|
+
} from "./cli-nwyw3zhg.js";
|
|
1304
1307
|
import {
|
|
1305
1308
|
__toESM
|
|
1306
1309
|
} from "./cli-242037k3.js";
|
|
@@ -3891,6 +3894,7 @@ function startTelemetryTicker(deps) {
|
|
|
3891
3894
|
return;
|
|
3892
3895
|
stopTelemetryTicker();
|
|
3893
3896
|
setTelemetryRoleResolver(cachedUserRole);
|
|
3897
|
+
setTelemetryFunctionResolver(cachedUserFunction);
|
|
3894
3898
|
const tick = async () => {
|
|
3895
3899
|
try {
|
|
3896
3900
|
await recomputeOrgDomain();
|
|
@@ -3921,6 +3925,7 @@ function stopTelemetryTicker() {
|
|
|
3921
3925
|
tickTimer = null;
|
|
3922
3926
|
firstTimer = null;
|
|
3923
3927
|
setTelemetryRoleResolver(null);
|
|
3928
|
+
setTelemetryFunctionResolver(null);
|
|
3924
3929
|
configureOrgDomainPersistence(null);
|
|
3925
3930
|
}
|
|
3926
3931
|
|
|
@@ -5220,6 +5225,7 @@ async function handleAgentsRest(req, res, pathSegments, queryParams, myAgentId)
|
|
|
5220
5225
|
reportedAt: parsed.body.latest_model?.reportedAt ?? parsed.body.acp.reportedAt,
|
|
5221
5226
|
reportKind: "post_task",
|
|
5222
5227
|
bedrock: null,
|
|
5228
|
+
opencodeGo: null,
|
|
5223
5229
|
acp: null
|
|
5224
5230
|
};
|
|
5225
5231
|
finalAgent = await updateAgentCredStatus2(parsed.params.id, {
|
|
@@ -7400,6 +7406,10 @@ function deriveState(state, signals, funnelEvents) {
|
|
|
7400
7406
|
if (state.steps.connect.status !== "done") {
|
|
7401
7407
|
changed = completeStep(state, "connect", "api_key", true, events) || changed;
|
|
7402
7408
|
}
|
|
7409
|
+
const orgName = process.env.SWARM_ORG_NAME?.trim();
|
|
7410
|
+
if (state.steps.name.status !== "done" && orgName && orgName !== "Your Swarm") {
|
|
7411
|
+
changed = completeStep(state, "name", "custom_name", true, events) || changed;
|
|
7412
|
+
}
|
|
7403
7413
|
if (state.steps.ai.status !== "done" && signals.providers.some((entry) => entry.state === "verified")) {
|
|
7404
7414
|
changed = completeStep(state, "ai", inferAiMethod(signals), true, events) || changed;
|
|
7405
7415
|
}
|
|
@@ -7703,31 +7713,50 @@ init_telemetry_ranking();
|
|
|
7703
7713
|
init_telemetry();
|
|
7704
7714
|
init_env_flag();
|
|
7705
7715
|
|
|
7716
|
+
// src/http/global-config.ts
|
|
7717
|
+
init_db3();
|
|
7718
|
+
async function globalConfig(key) {
|
|
7719
|
+
const stored = (await getSwarmConfigs2({ scope: "global", key }))?.[0]?.value;
|
|
7720
|
+
return (stored ?? process.env[key])?.trim() || undefined;
|
|
7721
|
+
}
|
|
7722
|
+
|
|
7706
7723
|
// src/http/used-by.ts
|
|
7707
7724
|
init_zod();
|
|
7708
7725
|
init_db3();
|
|
7709
7726
|
init_telemetry();
|
|
7727
|
+
init_company_profile();
|
|
7710
7728
|
init_org_website();
|
|
7711
7729
|
var CONSENT_KEY = "SWARM_USED_BY_CONSENT";
|
|
7712
7730
|
var CONSENT_AT_KEY = "SWARM_USED_BY_CONSENT_AT";
|
|
7713
7731
|
var GRANTED_NAME_KEY = "SWARM_USED_BY_ORG_NAME";
|
|
7714
7732
|
var GRANTED_WEBSITE_KEY = "SWARM_USED_BY_ORG_WEBSITE";
|
|
7733
|
+
var CONTACT_EMAIL_KEY = "SWARM_USED_BY_CONTACT_EMAIL";
|
|
7734
|
+
var CONTACT_FUNCTION_KEY = "SWARM_USED_BY_CONTACT_FUNCTION";
|
|
7735
|
+
var QUOTE_KEY = "SWARM_USED_BY_QUOTE";
|
|
7715
7736
|
var TIMEOUT_MS = 1e4;
|
|
7716
7737
|
var usedBy = route({
|
|
7717
7738
|
method: "post",
|
|
7718
7739
|
path: "/api/used-by",
|
|
7719
7740
|
pattern: ["api", "used-by"],
|
|
7720
7741
|
summary: "Grant or revoke the 'used by' logo consent",
|
|
7721
|
-
description: "Records
|
|
7742
|
+
description: "Records consent to show the organization's logo on agent-swarm.dev. A grant requires a valid contact email. It sends organization identity, contact details, and an optional quote to the proxy for manual review. This explicit admin action works when telemetry is off. A revoke clears the stored contact details and quote.",
|
|
7722
7743
|
tags: ["Telemetry"],
|
|
7723
|
-
body: object2({
|
|
7744
|
+
body: object2({
|
|
7745
|
+
granted: boolean(),
|
|
7746
|
+
contactEmail: string2().max(320, "Contact email must be at most 320 characters").email("Contact email must be a valid email address").optional(),
|
|
7747
|
+
contactFunction: _enum2(USER_FUNCTIONS).optional(),
|
|
7748
|
+
quote: string2().max(280).optional()
|
|
7749
|
+
}).refine((body) => !body.granted || body.contactEmail !== undefined, {
|
|
7750
|
+
path: ["contactEmail"],
|
|
7751
|
+
message: "Contact email is required when granting logo consent"
|
|
7752
|
+
}),
|
|
7724
7753
|
responses: {
|
|
7725
7754
|
200: {
|
|
7726
7755
|
description: "Consent recorded",
|
|
7727
7756
|
schema: object2({ granted: boolean(), changedAt: string2() })
|
|
7728
7757
|
},
|
|
7729
7758
|
400: {
|
|
7730
|
-
description: "
|
|
7759
|
+
description: "Invalid contact details, or missing organization name or website"
|
|
7731
7760
|
},
|
|
7732
7761
|
401: { description: "Unauthorized" },
|
|
7733
7762
|
403: { description: "Only a config admin can change the consent" },
|
|
@@ -7735,10 +7764,6 @@ var usedBy = route({
|
|
|
7735
7764
|
},
|
|
7736
7765
|
rbac: { permission: "config.write.any" }
|
|
7737
7766
|
});
|
|
7738
|
-
async function globalConfig(key) {
|
|
7739
|
-
const stored = (await getSwarmConfigs2({ scope: "global", key }))?.[0]?.value?.trim();
|
|
7740
|
-
return stored || process.env[key]?.trim() || undefined;
|
|
7741
|
-
}
|
|
7742
7767
|
async function telemetryProxyEndpoint(path) {
|
|
7743
7768
|
const feedback = await globalConfig("feedback_endpoint");
|
|
7744
7769
|
if (feedback && /^https?:\/\/[^/]+\/v1\/feedback\/?$/.test(feedback)) {
|
|
@@ -7757,7 +7782,7 @@ async function handleUsedBy(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
7757
7782
|
return true;
|
|
7758
7783
|
if (!await ensureConfigAdmin(req, res, "config.write.any"))
|
|
7759
7784
|
return true;
|
|
7760
|
-
const { granted } = parsed.body;
|
|
7785
|
+
const { granted, contactEmail, contactFunction, quote } = parsed.body;
|
|
7761
7786
|
const current = orgIdentityStatus({
|
|
7762
7787
|
SWARM_ORG_NAME: await globalConfig("SWARM_ORG_NAME"),
|
|
7763
7788
|
SWARM_ORG_WEBSITE: await globalConfig("SWARM_ORG_WEBSITE")
|
|
@@ -7784,6 +7809,7 @@ async function handleUsedBy(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
7784
7809
|
org_website: orgWebsite,
|
|
7785
7810
|
...orgDomain ? { org_domain: orgDomain } : {},
|
|
7786
7811
|
granted,
|
|
7812
|
+
...granted ? { contact_email: contactEmail, contact_function: contactFunction, quote } : {},
|
|
7787
7813
|
changed_at: changedAt
|
|
7788
7814
|
}),
|
|
7789
7815
|
signal: AbortSignal.timeout(TIMEOUT_MS)
|
|
@@ -7796,15 +7822,34 @@ async function handleUsedBy(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
7796
7822
|
jsonError(res, "Could not reach the telemetry proxy", 502);
|
|
7797
7823
|
return true;
|
|
7798
7824
|
}
|
|
7799
|
-
await
|
|
7800
|
-
|
|
7801
|
-
|
|
7802
|
-
|
|
7803
|
-
|
|
7804
|
-
|
|
7825
|
+
await getDbClient2().transaction(async () => {
|
|
7826
|
+
await upsertSwarmConfig2({ scope: "global", key: CONSENT_KEY, value: String(granted) });
|
|
7827
|
+
await upsertSwarmConfig2({ scope: "global", key: CONSENT_AT_KEY, value: changedAt });
|
|
7828
|
+
if (granted) {
|
|
7829
|
+
await upsertSwarmConfig2({ scope: "global", key: GRANTED_NAME_KEY, value: orgName });
|
|
7830
|
+
await upsertSwarmConfig2({ scope: "global", key: GRANTED_WEBSITE_KEY, value: orgWebsite });
|
|
7831
|
+
}
|
|
7832
|
+
for (const [key, value, isSecret] of [
|
|
7833
|
+
[CONTACT_EMAIL_KEY, contactEmail, true],
|
|
7834
|
+
[CONTACT_FUNCTION_KEY, contactFunction, false],
|
|
7835
|
+
[QUOTE_KEY, quote, false]
|
|
7836
|
+
]) {
|
|
7837
|
+
await upsertSwarmConfig2({
|
|
7838
|
+
scope: "global",
|
|
7839
|
+
key,
|
|
7840
|
+
value: granted ? value ?? "" : "",
|
|
7841
|
+
isSecret,
|
|
7842
|
+
exportToEnv: false
|
|
7843
|
+
});
|
|
7844
|
+
}
|
|
7845
|
+
});
|
|
7805
7846
|
scheduleIntegrationsReload();
|
|
7806
7847
|
const owner = await resolveHttpFavoriteOwner(req, myAgentId);
|
|
7807
|
-
trackRelayed("used_by.consent_changed", {
|
|
7848
|
+
trackRelayed("used_by.consent_changed", {
|
|
7849
|
+
granted,
|
|
7850
|
+
has_quote: granted && Boolean(quote),
|
|
7851
|
+
has_function: granted && Boolean(contactFunction)
|
|
7852
|
+
}, { actor: owner?.userId ? { userId: owner.userId } : undefined, emitter: "ui" });
|
|
7808
7853
|
usedBy.respond(res, 200, { granted, changedAt });
|
|
7809
7854
|
return true;
|
|
7810
7855
|
}
|
|
@@ -7812,7 +7857,6 @@ async function handleUsedBy(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
7812
7857
|
// src/http/ranking.ts
|
|
7813
7858
|
var ListingSchema = object2({
|
|
7814
7859
|
v: literal2(1),
|
|
7815
|
-
claim: string2(),
|
|
7816
7860
|
name: string2(),
|
|
7817
7861
|
domain: string2(),
|
|
7818
7862
|
category: _enum2(RANKING_CATEGORIES),
|
|
@@ -7830,28 +7874,22 @@ var RankingStateSchema = object2({
|
|
|
7830
7874
|
domain: string2().nullable(),
|
|
7831
7875
|
listing: ListingSchema.nullable(),
|
|
7832
7876
|
listingMatchesDomain: boolean(),
|
|
7833
|
-
fileJson: string2().nullable(),
|
|
7834
|
-
prUrl: string2().nullable(),
|
|
7835
7877
|
verifyUrl: string2().nullable()
|
|
7836
7878
|
});
|
|
7837
7879
|
var OptInResponseSchema = object2({
|
|
7838
7880
|
domain: string2(),
|
|
7839
|
-
claim: string2(),
|
|
7840
7881
|
listing: ListingSchema,
|
|
7841
|
-
fileJson: string2(),
|
|
7842
|
-
prUrl: string2(),
|
|
7843
7882
|
verifyUrl: string2()
|
|
7844
7883
|
});
|
|
7845
7884
|
var OptOutResponseSchema = object2({
|
|
7846
|
-
enabled: literal2(false)
|
|
7847
|
-
leaveUrl: string2().nullable()
|
|
7885
|
+
enabled: literal2(false)
|
|
7848
7886
|
});
|
|
7849
7887
|
var getRanking = route({
|
|
7850
7888
|
method: "get",
|
|
7851
7889
|
path: "/api/ranking",
|
|
7852
7890
|
pattern: ["api", "ranking"],
|
|
7853
7891
|
summary: "Public ranking state",
|
|
7854
|
-
description: "Whether this install can join the public agent-swarm.dev ranking (telemetry on, organization name and website set), whether it is opted in, and its stored listing.
|
|
7892
|
+
description: "Whether this install can join the public agent-swarm.dev ranking (telemetry on, organization name and website set), whether it is opted in, and its stored listing. Only a config admin can read it.",
|
|
7855
7893
|
tags: ["Telemetry"],
|
|
7856
7894
|
responses: {
|
|
7857
7895
|
200: { description: "Ranking state", schema: RankingStateSchema },
|
|
@@ -7865,7 +7903,7 @@ var optIn = route({
|
|
|
7865
7903
|
path: "/api/ranking/opt-in",
|
|
7866
7904
|
pattern: ["api", "ranking", "opt-in"],
|
|
7867
7905
|
summary: "Opt this install into the public ranking",
|
|
7868
|
-
description: "Builds the telemetry_ranking listing from the organization name and website plus the chosen category, stores it, turns PUBLIC_RANKING_ENABLED on and sends ranking.opted_in.
|
|
7906
|
+
description: "Builds the telemetry_ranking listing from the organization name and website plus the chosen category, stores it, turns PUBLIC_RANKING_ENABLED on and sends ranking.opted_in. That is the whole opt-in: the install shows on agent-swarm.dev/ranking at the next hourly refresh.",
|
|
7869
7907
|
tags: ["Telemetry"],
|
|
7870
7908
|
body: rankingFormSchema,
|
|
7871
7909
|
responses: {
|
|
@@ -7884,7 +7922,7 @@ var optOut = route({
|
|
|
7884
7922
|
path: "/api/ranking/opt-out",
|
|
7885
7923
|
pattern: ["api", "ranking", "opt-out"],
|
|
7886
7924
|
summary: "Leave the public ranking",
|
|
7887
|
-
description: "Turns PUBLIC_RANKING_ENABLED off and sends ranking.opted_out, so workers stop sending ranking.usage.
|
|
7925
|
+
description: "Turns PUBLIC_RANKING_ENABLED off and sends ranking.opted_out, so workers stop sending ranking.usage. The install leaves agent-swarm.dev/ranking at the next hourly refresh.",
|
|
7888
7926
|
tags: ["Telemetry"],
|
|
7889
7927
|
responses: {
|
|
7890
7928
|
200: { description: "Opted out", schema: OptOutResponseSchema },
|
|
@@ -7913,10 +7951,14 @@ async function rankingEnabled() {
|
|
|
7913
7951
|
async function telemetryReady() {
|
|
7914
7952
|
return isTelemetryEnabled() && Boolean(await globalConfig("telemetry_installation_id"));
|
|
7915
7953
|
}
|
|
7916
|
-
async function verifyUrl(
|
|
7917
|
-
const params = new URLSearchParams({ domain
|
|
7954
|
+
async function verifyUrl(domain) {
|
|
7955
|
+
const params = new URLSearchParams({ domain });
|
|
7918
7956
|
return `${await telemetryProxyEndpoint("/v1/ranking/verify")}?${params.toString()}`;
|
|
7919
7957
|
}
|
|
7958
|
+
function withoutClaim(listing) {
|
|
7959
|
+
const { claim: _claim, ...rest } = listing;
|
|
7960
|
+
return rest;
|
|
7961
|
+
}
|
|
7920
7962
|
async function setEnabled(enabled) {
|
|
7921
7963
|
await upsertSwarmConfig2({
|
|
7922
7964
|
scope: "global",
|
|
@@ -7925,7 +7967,7 @@ async function setEnabled(enabled) {
|
|
|
7925
7967
|
});
|
|
7926
7968
|
}
|
|
7927
7969
|
function emitOptedIn(listing) {
|
|
7928
|
-
telemetry.ranking("opted_in", { listing: JSON.stringify(listing) }, { orgName: listing.name, orgWebsite: listing.domain });
|
|
7970
|
+
telemetry.ranking("opted_in", { listing: JSON.stringify(withoutClaim(listing)) }, { orgName: listing.name, orgWebsite: listing.domain });
|
|
7929
7971
|
}
|
|
7930
7972
|
function emitOptedOut(domain) {
|
|
7931
7973
|
telemetry.ranking("opted_out", { domain });
|
|
@@ -7946,11 +7988,9 @@ async function buildRankingState() {
|
|
|
7946
7988
|
enabled: enabled && listingMatchesDomain,
|
|
7947
7989
|
name: identity.name,
|
|
7948
7990
|
domain: identity.website,
|
|
7949
|
-
listing,
|
|
7991
|
+
listing: listing ? withoutClaim(listing) : null,
|
|
7950
7992
|
listingMatchesDomain,
|
|
7951
|
-
|
|
7952
|
-
prUrl: current ? rankingPrUrl(current) : null,
|
|
7953
|
-
verifyUrl: current ? await verifyUrl(current) : null
|
|
7993
|
+
verifyUrl: current ? await verifyUrl(current.domain) : null
|
|
7954
7994
|
};
|
|
7955
7995
|
}
|
|
7956
7996
|
async function syncRankingAfterConfigChange(key, value) {
|
|
@@ -7973,7 +8013,7 @@ async function syncRankingAfterConfigChange(key, value) {
|
|
|
7973
8013
|
if (identity.name === listing.name)
|
|
7974
8014
|
return;
|
|
7975
8015
|
try {
|
|
7976
|
-
rebuilt = buildListing(identity, listing
|
|
8016
|
+
rebuilt = buildListing(identity, listing);
|
|
7977
8017
|
} catch {}
|
|
7978
8018
|
}
|
|
7979
8019
|
if (!rebuilt) {
|
|
@@ -8024,14 +8064,11 @@ async function handleRanking(req, res, pathSegments, queryParams) {
|
|
|
8024
8064
|
});
|
|
8025
8065
|
return true;
|
|
8026
8066
|
}
|
|
8027
|
-
const website = identity.website;
|
|
8028
8067
|
const db = getDbClient2();
|
|
8029
8068
|
const built = await db.transaction(async () => {
|
|
8030
|
-
const stored = await storedListing();
|
|
8031
|
-
const claim = stored?.domain === website ? stored.claim : mintRankingClaim();
|
|
8032
8069
|
let listing;
|
|
8033
8070
|
try {
|
|
8034
|
-
listing = buildListing(identity, parsed.body
|
|
8071
|
+
listing = buildListing(identity, parsed.body);
|
|
8035
8072
|
} catch (error) {
|
|
8036
8073
|
return { ok: false, error };
|
|
8037
8074
|
}
|
|
@@ -8056,11 +8093,8 @@ async function handleRanking(req, res, pathSegments, queryParams) {
|
|
|
8056
8093
|
scheduleIntegrationsReload();
|
|
8057
8094
|
optIn.respond(res, 200, {
|
|
8058
8095
|
domain: listing.domain,
|
|
8059
|
-
claim: listing.claim,
|
|
8060
8096
|
listing,
|
|
8061
|
-
|
|
8062
|
-
prUrl: rankingPrUrl(listing),
|
|
8063
|
-
verifyUrl: await verifyUrl(listing)
|
|
8097
|
+
verifyUrl: await verifyUrl(listing.domain)
|
|
8064
8098
|
});
|
|
8065
8099
|
return true;
|
|
8066
8100
|
}
|
|
@@ -8075,10 +8109,7 @@ async function handleRanking(req, res, pathSegments, queryParams) {
|
|
|
8075
8109
|
if (listing)
|
|
8076
8110
|
emitOptedOut(listing.domain);
|
|
8077
8111
|
scheduleIntegrationsReload();
|
|
8078
|
-
optOut.respond(res, 200, {
|
|
8079
|
-
enabled: false,
|
|
8080
|
-
leaveUrl: listing ? rankingLeaveUrl(listing.domain) : null
|
|
8081
|
-
});
|
|
8112
|
+
optOut.respond(res, 200, { enabled: false });
|
|
8082
8113
|
return true;
|
|
8083
8114
|
}
|
|
8084
8115
|
return false;
|
|
@@ -12926,7 +12957,6 @@ async function handleFavorites(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
12926
12957
|
|
|
12927
12958
|
// src/http/fleet-benchmark.ts
|
|
12928
12959
|
init_zod();
|
|
12929
|
-
init_db3();
|
|
12930
12960
|
|
|
12931
12961
|
// src/fleet-benchmark.ts
|
|
12932
12962
|
var FLEET_WINDOW_DAYS = 30;
|
|
@@ -13005,8 +13035,8 @@ function round(value, decimals) {
|
|
|
13005
13035
|
|
|
13006
13036
|
// src/be/fleet-benchmark-stats.ts
|
|
13007
13037
|
init_runtime();
|
|
13008
|
-
async function getLocalFleetStats(now = new Date) {
|
|
13009
|
-
const start = fleetCountStart(await getTelemetryIngestAnchor(), now);
|
|
13038
|
+
async function getLocalFleetStats(now = new Date, { requireIngestAnchor = true } = {}) {
|
|
13039
|
+
const start = requireIngestAnchor ? fleetCountStart(await getTelemetryIngestAnchor(), now) : new Date(now.getTime() - FLEET_WINDOW_DAYS * 86400000);
|
|
13010
13040
|
if (!start)
|
|
13011
13041
|
return null;
|
|
13012
13042
|
const since = start.toISOString();
|
|
@@ -13027,6 +13057,8 @@ async function getLocalFleetStats(now = new Date) {
|
|
|
13027
13057
|
|
|
13028
13058
|
// src/http/fleet-benchmark.ts
|
|
13029
13059
|
init_telemetry();
|
|
13060
|
+
init_company_profile();
|
|
13061
|
+
init_org_website();
|
|
13030
13062
|
var FLEET_TTL_MS = 24 * 60 * 60 * 1000;
|
|
13031
13063
|
var FLEET_FAILURE_TTL_MS = 60 * 60 * 1000;
|
|
13032
13064
|
var LOCAL_TTL_MS = 10 * 60 * 1000;
|
|
@@ -13040,6 +13072,12 @@ var FleetStateSchema = _enum2([
|
|
|
13040
13072
|
]);
|
|
13041
13073
|
var FleetBenchmarkResponseSchema = object2({
|
|
13042
13074
|
state: FleetStateSchema,
|
|
13075
|
+
level: _enum2(["basic", "full"]),
|
|
13076
|
+
peerGroup: object2({
|
|
13077
|
+
teamSize: string2().nullable(),
|
|
13078
|
+
useCase: string2().nullable(),
|
|
13079
|
+
orgs: number2().int()
|
|
13080
|
+
}).nullable(),
|
|
13043
13081
|
local: object2({
|
|
13044
13082
|
tasksPerWeek: number2(),
|
|
13045
13083
|
taskSuccessRate: number2().nullable(),
|
|
@@ -13063,7 +13101,7 @@ var fleetBenchmark = route({
|
|
|
13063
13101
|
path: "/api/fleet-benchmark",
|
|
13064
13102
|
pattern: ["api", "fleet-benchmark"],
|
|
13065
13103
|
summary: "Compare this swarm with similar swarms",
|
|
13066
|
-
description: "
|
|
13104
|
+
description: "Compares local task volume and success rate with fleet percentiles over the last 30 days. Comparisons require telemetry, an organization name, and a known proxy ingest date. A website, team size, and use case enable full comparisons with peer filters. The response includes the proxy's peer group when available. With telemetry off, it returns local DB counts without a proxy request. The fleet cache key includes the peer filters.",
|
|
13067
13105
|
tags: ["Telemetry"],
|
|
13068
13106
|
responses: {
|
|
13069
13107
|
200: {
|
|
@@ -13099,48 +13137,64 @@ var ProxyFleetBenchmarksSchema = object2({
|
|
|
13099
13137
|
"1": ProxyBlockSchema.optional(),
|
|
13100
13138
|
"2-5": ProxyBlockSchema.optional(),
|
|
13101
13139
|
"6+": ProxyBlockSchema.optional()
|
|
13102
|
-
})
|
|
13103
|
-
|
|
13104
|
-
|
|
13105
|
-
|
|
13140
|
+
}),
|
|
13141
|
+
peer_group: object2({
|
|
13142
|
+
team_size: string2().nullable(),
|
|
13143
|
+
use_case: string2().nullable(),
|
|
13144
|
+
orgs: number2().int().nonnegative()
|
|
13145
|
+
}).nullable().optional()
|
|
13146
|
+
});
|
|
13147
|
+
async function fleetBenchmarks(now, peerGroup) {
|
|
13148
|
+
const endpoint = new URL(await telemetryProxyEndpoint("/v1/fleet/benchmarks"));
|
|
13149
|
+
endpoint.searchParams.set("window", "30d");
|
|
13150
|
+
if (peerGroup) {
|
|
13151
|
+
endpoint.searchParams.set("team_size", peerGroup.teamSize);
|
|
13152
|
+
endpoint.searchParams.set("use_case", peerGroup.useCase);
|
|
13153
|
+
}
|
|
13154
|
+
const key = endpoint.toString();
|
|
13155
|
+
if (fleetCache?.key === key && fleetCache.until > now)
|
|
13106
13156
|
return fleetCache.value;
|
|
13107
13157
|
let value = null;
|
|
13108
13158
|
try {
|
|
13109
|
-
const response = await fetch(
|
|
13110
|
-
signal: AbortSignal.timeout(TIMEOUT_MS2)
|
|
13111
|
-
});
|
|
13159
|
+
const response = await fetch(key, { signal: AbortSignal.timeout(TIMEOUT_MS2) });
|
|
13112
13160
|
if (response.ok) {
|
|
13113
13161
|
const parsed = ProxyFleetBenchmarksSchema.safeParse(await response.json());
|
|
13114
13162
|
if (parsed.success)
|
|
13115
13163
|
value = parsed.data;
|
|
13116
13164
|
}
|
|
13117
13165
|
} catch {}
|
|
13118
|
-
fleetCache = { value, until: now + (value ? FLEET_TTL_MS : FLEET_FAILURE_TTL_MS) };
|
|
13166
|
+
fleetCache = { key, value, until: now + (value ? FLEET_TTL_MS : FLEET_FAILURE_TTL_MS) };
|
|
13119
13167
|
return value;
|
|
13120
13168
|
}
|
|
13121
|
-
async function localStats(now) {
|
|
13122
|
-
if (localCache && localCache.until > now.getTime())
|
|
13169
|
+
async function localStats(now, requireIngestAnchor = true) {
|
|
13170
|
+
if (localCache?.requireIngestAnchor === requireIngestAnchor && localCache.until > now.getTime())
|
|
13123
13171
|
return localCache.value;
|
|
13124
|
-
const value = await getLocalFleetStats(now);
|
|
13125
|
-
localCache = { value, until: now.getTime() + LOCAL_TTL_MS };
|
|
13172
|
+
const value = await getLocalFleetStats(now, { requireIngestAnchor });
|
|
13173
|
+
localCache = { requireIngestAnchor, value, until: now.getTime() + LOCAL_TTL_MS };
|
|
13126
13174
|
return value;
|
|
13127
13175
|
}
|
|
13128
|
-
async function orgName() {
|
|
13129
|
-
const stored = (await getSwarmConfigs2({ scope: "global", key: "SWARM_ORG_NAME" }))?.[0]?.value?.trim();
|
|
13130
|
-
return stored || process.env.SWARM_ORG_NAME?.trim() || undefined;
|
|
13131
|
-
}
|
|
13132
13176
|
async function buildFleetBenchmarkResponse(now = new Date) {
|
|
13177
|
+
const [name, website, teamSize, useCase] = await Promise.all([
|
|
13178
|
+
globalConfig("SWARM_ORG_NAME"),
|
|
13179
|
+
globalConfig("SWARM_ORG_WEBSITE"),
|
|
13180
|
+
globalConfig("SWARM_ORG_TEAM_SIZE"),
|
|
13181
|
+
globalConfig("SWARM_ORG_USE_CASE")
|
|
13182
|
+
]);
|
|
13183
|
+
const team = _enum2(COMPANY_TEAM_SIZES).safeParse(teamSize);
|
|
13184
|
+
const use = _enum2(COMPANY_USE_CASES).safeParse(useCase);
|
|
13185
|
+
const peerGroup = normalizeOrgWebsite(website) && team.success && use.success ? { teamSize: team.data, useCase: use.data } : null;
|
|
13133
13186
|
const empty = {
|
|
13187
|
+
level: peerGroup ? "full" : "basic",
|
|
13188
|
+
peerGroup: null,
|
|
13134
13189
|
local: null,
|
|
13135
13190
|
minFinishedTasks: FLEET_MIN_FINISHED_TASKS,
|
|
13136
13191
|
generatedAt: null,
|
|
13137
13192
|
comparisons: []
|
|
13138
13193
|
};
|
|
13139
|
-
|
|
13140
|
-
|
|
13141
|
-
if (!await orgName())
|
|
13194
|
+
const telemetryEnabled = isTelemetryEnabled();
|
|
13195
|
+
if (telemetryEnabled && !name)
|
|
13142
13196
|
return { state: "no_org_name", ...empty };
|
|
13143
|
-
const stats = await localStats(now);
|
|
13197
|
+
const stats = await localStats(now, telemetryEnabled);
|
|
13144
13198
|
if (!stats)
|
|
13145
13199
|
return { state: "unavailable", ...empty };
|
|
13146
13200
|
const finishedTasks = stats.tasksCompleted + stats.tasksFailed;
|
|
@@ -13151,14 +13205,23 @@ async function buildFleetBenchmarkResponse(now = new Date) {
|
|
|
13151
13205
|
agents: stats.agents,
|
|
13152
13206
|
bucket: fleetBucketFor(stats.agents)
|
|
13153
13207
|
};
|
|
13208
|
+
if (!telemetryEnabled)
|
|
13209
|
+
return { ...empty, state: "telemetry_off", local };
|
|
13154
13210
|
if (finishedTasks < FLEET_MIN_FINISHED_TASKS)
|
|
13155
13211
|
return { ...empty, state: "not_enough_tasks", local };
|
|
13156
|
-
const fleet = await fleetBenchmarks(now.getTime());
|
|
13212
|
+
const fleet = await fleetBenchmarks(now.getTime(), peerGroup);
|
|
13213
|
+
const responsePeerGroup = peerGroup && fleet?.peer_group ? {
|
|
13214
|
+
teamSize: fleet.peer_group.team_size,
|
|
13215
|
+
useCase: fleet.peer_group.use_case,
|
|
13216
|
+
orgs: fleet.peer_group.orgs
|
|
13217
|
+
} : null;
|
|
13157
13218
|
const comparisons = fleet ? compareWithFleet(stats, fleet, now) : [];
|
|
13158
13219
|
if (!fleet || comparisons.length === 0)
|
|
13159
|
-
return { ...empty, state: "unavailable", local };
|
|
13220
|
+
return { ...empty, state: "unavailable", local, peerGroup: responsePeerGroup };
|
|
13160
13221
|
return {
|
|
13222
|
+
...empty,
|
|
13161
13223
|
state: "ready",
|
|
13224
|
+
peerGroup: responsePeerGroup,
|
|
13162
13225
|
local,
|
|
13163
13226
|
minFinishedTasks: FLEET_MIN_FINISHED_TASKS,
|
|
13164
13227
|
generatedAt: fleet.generatedAt,
|
|
@@ -23575,7 +23638,7 @@ async function handleTasks(req, res, pathSegments, queryParams, myAgentId) {
|
|
|
23575
23638
|
return true;
|
|
23576
23639
|
}
|
|
23577
23640
|
if (task.workflowRunStepId != null) {
|
|
23578
|
-
const failed = await failTask2(parsed.params.id,
|
|
23641
|
+
const failed = await failTask2(parsed.params.id, SUPERSEDED_WORKFLOW_TASK_REASON);
|
|
23579
23642
|
ensure({
|
|
23580
23643
|
id: "task.workflow_step_failed_on_supersede",
|
|
23581
23644
|
flow: "task",
|
|
@@ -34968,9 +35031,8 @@ function uiEventEmitter(event) {
|
|
|
34968
35031
|
return relayable.get(event)?.source;
|
|
34969
35032
|
}
|
|
34970
35033
|
function resolveSpec(spec) {
|
|
34971
|
-
|
|
34972
|
-
|
|
34973
|
-
return { ...file.definitions[spec.ref], ...spec };
|
|
35034
|
+
const resolved = spec.ref ? { ...file.definitions[spec.ref], ...spec } : spec;
|
|
35035
|
+
return resolved.items ? { ...resolved, items: resolveSpec(resolved.items) } : resolved;
|
|
34974
35036
|
}
|
|
34975
35037
|
function typeMatches(type, value) {
|
|
34976
35038
|
switch (type) {
|
|
@@ -35015,6 +35077,12 @@ function validateUiEvent(event, properties) {
|
|
|
35015
35077
|
if (spec.enum && !spec.enum.includes(value)) {
|
|
35016
35078
|
problems.push(`"${key}" must be one of ${spec.enum.join(", ")}`);
|
|
35017
35079
|
}
|
|
35080
|
+
if (Array.isArray(value) && spec.items?.enum) {
|
|
35081
|
+
const allowed = spec.items.enum;
|
|
35082
|
+
if (value.some((item) => !allowed.includes(item))) {
|
|
35083
|
+
problems.push(`"${key}" items must be one of ${allowed.join(", ")}`);
|
|
35084
|
+
}
|
|
35085
|
+
}
|
|
35018
35086
|
if (typeof spec.minimum === "number" && typeof value === "number" && value < spec.minimum) {
|
|
35019
35087
|
problems.push(`"${key}" must be at least ${spec.minimum}`);
|
|
35020
35088
|
}
|
|
@@ -35055,7 +35123,7 @@ var enableTelemetry = route({
|
|
|
35055
35123
|
summary: "Turn telemetry on",
|
|
35056
35124
|
description: "Stores `ANONYMIZED_TELEMETRY=true` and applies it to the running server: the install ID is minted if needed and `telemetry.enabled` is sent once, so no restart is needed.",
|
|
35057
35125
|
tags: ["Telemetry"],
|
|
35058
|
-
body: object2({ via: _enum2(["banner", "settings"]).default("banner") }),
|
|
35126
|
+
body: object2({ via: _enum2(["banner", "settings", "benchmark"]).default("banner") }),
|
|
35059
35127
|
responses: {
|
|
35060
35128
|
200: {
|
|
35061
35129
|
description: "Telemetry is on",
|
|
@@ -36006,7 +36074,7 @@ var createUserRoute = route({
|
|
|
36006
36074
|
tags: ["Users"],
|
|
36007
36075
|
body: object2({
|
|
36008
36076
|
name: string2().min(1),
|
|
36009
|
-
email: string2().optional(),
|
|
36077
|
+
email: string2().email("Email must be a valid email address").optional(),
|
|
36010
36078
|
role: string2().optional(),
|
|
36011
36079
|
notes: string2().optional(),
|
|
36012
36080
|
emailAliases: array2(string2()).optional(),
|
|
@@ -36101,7 +36169,7 @@ var updateUserRoute = route({
|
|
|
36101
36169
|
params: object2({ id: string2() }),
|
|
36102
36170
|
body: object2({
|
|
36103
36171
|
name: string2().min(1).optional(),
|
|
36104
|
-
email: string2().optional(),
|
|
36172
|
+
email: string2().email("Email must be a valid email address").nullable().optional(),
|
|
36105
36173
|
role: string2().optional(),
|
|
36106
36174
|
notes: string2().optional(),
|
|
36107
36175
|
emailAliases: array2(string2()).optional(),
|
|
@@ -39012,7 +39080,7 @@ var httpServer = createHttpServer(async (req, res) => {
|
|
|
39012
39080
|
});
|
|
39013
39081
|
});
|
|
39014
39082
|
var detachRealtime = attachRealtimeTransport(httpServer);
|
|
39015
|
-
var { attachControllerTransport } = await import("./controllers-connect-
|
|
39083
|
+
var { attachControllerTransport } = await import("./controllers-connect-bg33ae53.js");
|
|
39016
39084
|
var detachControllers = attachControllerTransport(httpServer);
|
|
39017
39085
|
var stopWorkerNudges = startWorkerNudgeListener();
|
|
39018
39086
|
var stopRoomDeletion = realtimeBus.subscribe("room:namespace-deleted", (namespace) => {
|
|
@@ -39041,7 +39109,7 @@ async function shutdown() {
|
|
|
39041
39109
|
sessionsProcessed: getServerSessionsProcessed()
|
|
39042
39110
|
});
|
|
39043
39111
|
if (hasCapability("scheduling")) {
|
|
39044
|
-
const { stopScheduler } = await import("./index-
|
|
39112
|
+
const { stopScheduler } = await import("./index-h2ek08d6.js");
|
|
39045
39113
|
stopScheduler();
|
|
39046
39114
|
}
|
|
39047
39115
|
stopHeartbeat2();
|
|
@@ -39053,7 +39121,7 @@ async function shutdown() {
|
|
|
39053
39121
|
await stopSlackApp2();
|
|
39054
39122
|
await stopChatSdk();
|
|
39055
39123
|
if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
|
|
39056
|
-
const { stopOAuthKeepalive } = await import("./keepalive-
|
|
39124
|
+
const { stopOAuthKeepalive } = await import("./keepalive-nhvpw10z.js");
|
|
39057
39125
|
await stopOAuthKeepalive();
|
|
39058
39126
|
}
|
|
39059
39127
|
stopOAuthPendingGc();
|
|
@@ -39133,21 +39201,21 @@ try {
|
|
|
39133
39201
|
console.warn("[startup] CAPABILITIES upgrade seed failed (non-fatal):", err);
|
|
39134
39202
|
}
|
|
39135
39203
|
try {
|
|
39136
|
-
const { ensurePricingSeeded } = await import("./boot-seeds-
|
|
39204
|
+
const { ensurePricingSeeded } = await import("./boot-seeds-6wxqkfk2.js");
|
|
39137
39205
|
ensurePricingSeeded();
|
|
39138
|
-
const { startPricingRefreshLoop } = await import("./pricing-refresh-
|
|
39206
|
+
const { startPricingRefreshLoop } = await import("./pricing-refresh-3cqx3f3x.js");
|
|
39139
39207
|
startPricingRefreshLoop();
|
|
39140
39208
|
} catch (err) {
|
|
39141
39209
|
console.error("[startup] Failed to seed pricing rows:", err);
|
|
39142
39210
|
}
|
|
39143
39211
|
try {
|
|
39144
|
-
const { ensureModelProfilesSeeded } = await import("./boot-seeds-
|
|
39212
|
+
const { ensureModelProfilesSeeded } = await import("./boot-seeds-6wxqkfk2.js");
|
|
39145
39213
|
await ensureModelProfilesSeeded();
|
|
39146
39214
|
} catch (err) {
|
|
39147
39215
|
console.error("[startup] Failed to seed model profiles:", err);
|
|
39148
39216
|
}
|
|
39149
39217
|
try {
|
|
39150
|
-
const { ensureRbacSeeded } = await import("./boot-seeds-
|
|
39218
|
+
const { ensureRbacSeeded } = await import("./boot-seeds-6wxqkfk2.js");
|
|
39151
39219
|
ensureRbacSeeded();
|
|
39152
39220
|
} catch (err) {
|
|
39153
39221
|
console.error("[startup] Failed to sync RBAC seed rows:", err);
|
|
@@ -39155,7 +39223,7 @@ try {
|
|
|
39155
39223
|
throw err;
|
|
39156
39224
|
}
|
|
39157
39225
|
try {
|
|
39158
|
-
const { runAllSeeders } = await import("./index-
|
|
39226
|
+
const { runAllSeeders } = await import("./index-2z710v4x.js");
|
|
39159
39227
|
await runAllSeeders({ scriptEmbeddingMode: "skip" });
|
|
39160
39228
|
} catch (err) {
|
|
39161
39229
|
console.error("[startup] Failed to seed built-in entities:", err);
|
|
@@ -39217,39 +39285,39 @@ httpServer.listen(port, async () => {
|
|
|
39217
39285
|
await initWorkflows2();
|
|
39218
39286
|
await startScriptRunSupervisor(getMcpBaseUrl());
|
|
39219
39287
|
if (hasCapability("scheduling")) {
|
|
39220
|
-
const { startScheduler } = await import("./index-
|
|
39221
|
-
const { getExecutorRegistry } = await import("./index-
|
|
39288
|
+
const { startScheduler } = await import("./index-h2ek08d6.js");
|
|
39289
|
+
const { getExecutorRegistry } = await import("./index-dgz61nff.js");
|
|
39222
39290
|
const intervalMs = Number(process.env.SCHEDULER_INTERVAL_MS) || 1e4;
|
|
39223
39291
|
startScheduler(getExecutorRegistry(), intervalMs, {
|
|
39224
39292
|
runId: globalState.__runId
|
|
39225
39293
|
});
|
|
39226
39294
|
}
|
|
39227
39295
|
if (!isEnvFlagEnabled("HEARTBEAT_DISABLE", false)) {
|
|
39228
|
-
const { startHeartbeat } = await import("./index-
|
|
39296
|
+
const { startHeartbeat } = await import("./index-pqfwh9nn.js");
|
|
39229
39297
|
const heartbeatMs = Number(process.env.HEARTBEAT_INTERVAL_MS) || 90000;
|
|
39230
39298
|
startHeartbeat(heartbeatMs);
|
|
39231
39299
|
}
|
|
39232
39300
|
startPoolRouting();
|
|
39233
39301
|
startRuntimeSupervisor();
|
|
39234
39302
|
if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
|
|
39235
|
-
const { startOAuthKeepalive } = await import("./keepalive-
|
|
39303
|
+
const { startOAuthKeepalive } = await import("./keepalive-nhvpw10z.js");
|
|
39236
39304
|
startOAuthKeepalive();
|
|
39237
39305
|
}
|
|
39238
39306
|
if (process.env.OAUTH_REFRESH_SWEEP_DISABLE !== "true") {
|
|
39239
|
-
const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-
|
|
39307
|
+
const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-4dcbhtn0.js");
|
|
39240
39308
|
startOAuthRefreshSweep();
|
|
39241
39309
|
}
|
|
39242
39310
|
startOAuthPendingGc();
|
|
39243
39311
|
await startMemoryGc();
|
|
39244
39312
|
await startDbRetention();
|
|
39245
39313
|
startHumanFreeDrain();
|
|
39246
|
-
import("./boot-reembed-
|
|
39314
|
+
import("./boot-reembed-e53x6b9v.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
|
|
39247
39315
|
console.error("[boot-reembed] startup backfill failed (non-fatal):", err);
|
|
39248
39316
|
});
|
|
39249
|
-
import("./boot-reembed-
|
|
39317
|
+
import("./boot-reembed-f6z923ny.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
|
|
39250
39318
|
console.error("[boot-reembed-scripts] startup backfill failed (non-fatal):", err);
|
|
39251
39319
|
});
|
|
39252
|
-
import("./boot-scrub-sweep-
|
|
39320
|
+
import("./boot-scrub-sweep-0538vsb7.js").then(({ runBootScrubSweep }) => runBootScrubSweep()).catch((err) => {
|
|
39253
39321
|
console.error("[boot-scrub-sweep] startup scrub failed (non-fatal):", err);
|
|
39254
39322
|
});
|
|
39255
39323
|
}).on("error", (err) => {
|