@desplega.ai/agent-swarm 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/{acp-adapter-zvzr538d.js → acp-adapter-dv7hmx4r.js} +1 -1
  2. package/dist/{actions-jhtqdw69.js → actions-51nc1gny.js} +16 -16
  3. package/dist/{amp-adapter-bd84rhs2.js → amp-adapter-abp5tdx8.js} +1 -1
  4. package/dist/{app-kreq1gwg.js → app-9h14qvr6.js} +3 -3
  5. package/dist/{assistant-3k22sbsq.js → assistant-wv1gz3mt.js} +17 -17
  6. package/dist/{boot-reembed-e53x6b9v.js → boot-reembed-6yn53ms9.js} +1 -1
  7. package/dist/{boot-reembed-f6z923ny.js → boot-reembed-7fcka4z5.js} +1 -1
  8. package/dist/{boot-scrub-sweep-0538vsb7.js → boot-scrub-sweep-pm1580ax.js} +2 -2
  9. package/dist/{boot-seeds-6wxqkfk2.js → boot-seeds-g5hfc1x8.js} +4 -4
  10. package/dist/{claude-adapter-gfts5044.js → claude-adapter-gf3kxhf0.js} +2 -2
  11. package/dist/{claude-sdk-session-56besmfz.js → claude-sdk-session-s2k1qd8y.js} +2 -2
  12. package/dist/{cli-tbhwrxpt.js → cli-02qm7src.js} +3 -3
  13. package/dist/{cli-3kh4kpqy.js → cli-0qvtffe9.js} +5 -5
  14. package/dist/{cli-p6argxh9.js → cli-10hhg0km.js} +6 -6
  15. package/dist/{cli-gf0kfg81.js → cli-239yjk27.js} +2 -2
  16. package/dist/{cli-kr2pmfqx.js → cli-5rk36sjf.js} +72 -59
  17. package/dist/{cli-nx462e4v.js → cli-7awf1fp8.js} +1 -1
  18. package/dist/{cli-jh0qcrga.js → cli-8sxqsbbq.js} +1 -1
  19. package/dist/{cli-axh29tyr.js → cli-8zwe9mpk.js} +5 -5
  20. package/dist/{cli-z1ew8vbq.js → cli-ahtpy9kf.js} +1 -1
  21. package/dist/{cli-3r448dqn.js → cli-bcj753sq.js} +3 -3
  22. package/dist/{cli-rqqsfz30.js → cli-d3qqdy4c.js} +82 -12
  23. package/dist/{cli-z071fb95.js → cli-efaqv1c7.js} +4 -4
  24. package/dist/{cli-s48yvzb8.js → cli-faypxz7q.js} +3 -3
  25. package/dist/{cli-m2qgh5sv.js → cli-ftyypbg5.js} +1 -1
  26. package/dist/{cli-6ncjvx55.js → cli-fyzjmseb.js} +1 -1
  27. package/dist/{cli-0bh477zn.js → cli-h38rjv87.js} +117 -9
  28. package/dist/{cli-3p8fqcnh.js → cli-h93c9vb3.js} +1 -1
  29. package/dist/{cli-rdq7tzwm.js → cli-hyfw2j1e.js} +8 -8
  30. package/dist/{cli-bn5kevnf.js → cli-n85dqg6d.js} +2 -2
  31. package/dist/{cli-fz9kewbh.js → cli-nmqdc2t3.js} +1 -1
  32. package/dist/{cli-vy0fay6k.js → cli-nn47d7e8.js} +10 -10
  33. package/dist/{cli-mfe7f7b5.js → cli-pkht5hap.js} +1 -1
  34. package/dist/{cli-xftrvxag.js → cli-r99kc9yq.js} +1 -1
  35. package/dist/{cli-p0rakbrk.js → cli-rdyw3mct.js} +1 -1
  36. package/dist/{cli-sjyetj21.js → cli-s6vr7r2d.js} +1 -1
  37. package/dist/{cli-k9z4zd4p.js → cli-saw9a6f6.js} +2 -2
  38. package/dist/{cli-ash6xxk7.js → cli-shvfedvm.js} +2 -2
  39. package/dist/{cli-syhq378v.js → cli-t30yj95q.js} +1 -1
  40. package/dist/{cli-kmqgmcnb.js → cli-y2x52gs2.js} +4 -4
  41. package/dist/{cli-471qk6s2.js → cli-y8n5k515.js} +14 -14
  42. package/dist/{cli-3tnpj2bh.js → cli-z4wd2ftv.js} +1 -1
  43. package/dist/cli.js +12 -12
  44. package/dist/{codex-adapter-p6rmm7vv.js → codex-adapter-ttygw382.js} +1 -1
  45. package/dist/{codex-session-runner-8vd5t9t0.js → codex-session-runner-60b58vv3.js} +1 -1
  46. package/dist/{commands-7ems2p13.js → commands-edmdwa4x.js} +2 -2
  47. package/dist/{controllers-connect-bg33ae53.js → controllers-connect-5fym8sw1.js} +16 -16
  48. package/dist/{db-ys2rbdft.js → db-2y0mgstc.js} +3 -3
  49. package/dist/{db-w505dwa8.js → db-nn0hcmx5.js} +5 -1
  50. package/dist/{dispatcher-0s0mckqr.js → dispatcher-0a9wwjcx.js} +15 -15
  51. package/dist/{external-channel-5b23fv8z.js → external-channel-zhvt95n3.js} +2 -2
  52. package/dist/{grok-adapter-q9fghe5q.js → grok-adapter-qnr1hp2y.js} +2 -2
  53. package/dist/{handlers-mqrym347.js → handlers-dkcarkd0.js} +18 -18
  54. package/dist/{heartbeat-tww6yx1w.js → heartbeat-gz97r7ac.js} +17 -17
  55. package/dist/{hook-dx0pkvar.js → hook-1mmdgjqs.js} +1 -1
  56. package/dist/{hook-pvmh9b6m.js → hook-x8rthca4.js} +1 -1
  57. package/dist/{http-k2ejbt05.js → http-r8f85xr9.js} +111 -65
  58. package/dist/{index-pqfwh9nn.js → index-5jecgp3n.js} +17 -17
  59. package/dist/{index-h2ek08d6.js → index-aex0eba9.js} +15 -15
  60. package/dist/{index-x5aktmp8.js → index-smxyk04s.js} +1 -1
  61. package/dist/{index-dgz61nff.js → index-vzvfqzfj.js} +15 -15
  62. package/dist/{index-2z710v4x.js → index-y7rbcrc1.js} +8 -8
  63. package/dist/{keepalive-nhvpw10z.js → keepalive-64c0f34c.js} +3 -3
  64. package/dist/{lead-jb6sf69z.js → lead-b1da0f97.js} +23 -23
  65. package/dist/{maintenance-agakc519.js → maintenance-mnxpar12.js} +1 -1
  66. package/dist/{oauth-refresh-sweep-4dcbhtn0.js → oauth-refresh-sweep-36hs2v4h.js} +2 -2
  67. package/dist/{onboard-4n2kwa4v.js → onboard-xes8de61.js} +2 -2
  68. package/dist/{otel-impl-tfa12080.js → otel-impl-fzc57kcq.js} +1 -1
  69. package/dist/{pricing-refresh-3cqx3f3x.js → pricing-refresh-1nek2w7b.js} +3 -3
  70. package/dist/{rbac-roles-y6zbfzve.js → rbac-roles-sqefb5hw.js} +2 -2
  71. package/dist/{rbac-roles-9fae5rnv.js → rbac-roles-ttyfaep2.js} +1 -1
  72. package/dist/{render-v2-emawjvc4.js → render-v2-vb527jwn.js} +3 -3
  73. package/dist/{resume-zhgts7h7.js → resume-jcdzg1bn.js} +5 -5
  74. package/dist/{session-access-cm823e06.js → session-access-zsp4wsp0.js} +4 -4
  75. package/dist/{setup-tkp99w1e.js → setup-1nb2zqd3.js} +1 -1
  76. package/dist/{work-objects-f722h263.js → work-objects-61w08fwr.js} +18 -18
  77. package/dist/{worker-p7f336rq.js → worker-c1e68hpa.js} +23 -23
  78. package/openapi.json +393 -1
  79. package/package.json +2 -2
  80. package/src/apps/catalog.generated.json +3 -2
  81. package/src/apps/definition.ts +152 -4
  82. package/src/apps/row-store.ts +19 -7
  83. package/src/apps/schema-migrate.ts +14 -6
  84. package/src/apps/script-types.ts +1 -0
  85. package/src/apps/sync.ts +20 -19
  86. package/src/be/db/tasks/read.ts +112 -0
  87. package/src/be/db.ts +2 -0
  88. package/src/be/swarm-config-guard.ts +15 -0
  89. package/src/http/apps.ts +15 -2
  90. package/src/http/status.ts +49 -43
  91. package/src/http/tasks.ts +47 -0
  92. package/src/providers/acp-targets.ts +1 -1
  93. package/src/providers/amp-adapter.ts +1 -1
  94. package/src/telemetry.ts +15 -3
  95. package/src/tests/app-row-tools.test.ts +25 -0
  96. package/src/tests/apps-json-column.test.ts +611 -0
  97. package/src/tests/apps-script-types.test.ts +2 -0
  98. package/src/tests/apps-sync-engine.test.ts +42 -0
  99. package/src/tests/db-task-read-contract.test.ts +4 -0
  100. package/src/tests/db-task-write-contract.test.ts +2 -0
  101. package/src/tests/docs-index-footprint.test.js +2 -2
  102. package/src/tests/runner-harness-telemetry-env.test.ts +6 -0
  103. package/src/tests/status.test.ts +158 -9
  104. package/src/tests/task-lineage.test.ts +180 -0
  105. package/src/tests/telemetry-init.test.ts +62 -5
  106. package/src/tests/user-token-rest-auth.test.ts +38 -0
  107. package/src/tools/app-rows.ts +5 -0
  108. package/templates/skills/apps/SKILL.md +3 -2
  109. package/templates/skills/apps/content.md +3 -2
@@ -11,34 +11,34 @@ import {
11
11
  listRegistered2,
12
12
  dispatchPre2,
13
13
  dispatchPost2
14
- } from "./cli-kr2pmfqx.js";
14
+ } from "./cli-5rk36sjf.js";
15
15
  import"./cli-smvcw9z5.js";
16
16
  import"./cli-sv5gb0yb.js";
17
17
  import"./cli-qz93y3x5.js";
18
18
  import"./cli-3h26v7yj.js";
19
19
  import"./cli-7a91w22y.js";
20
- import"./cli-k9z4zd4p.js";
21
- import"./cli-0bh477zn.js";
20
+ import"./cli-saw9a6f6.js";
21
+ import"./cli-h38rjv87.js";
22
22
  import"./cli-3ggwdtb0.js";
23
- import"./cli-sjyetj21.js";
24
- import"./cli-s48yvzb8.js";
25
- import"./cli-3p8fqcnh.js";
23
+ import"./cli-s6vr7r2d.js";
24
+ import"./cli-faypxz7q.js";
25
+ import"./cli-h93c9vb3.js";
26
26
  import"./cli-qje9k2nh.js";
27
- import"./cli-kmqgmcnb.js";
28
- import"./cli-tbhwrxpt.js";
27
+ import"./cli-y2x52gs2.js";
28
+ import"./cli-02qm7src.js";
29
29
  import"./cli-8nyhf7za.js";
30
30
  import"./cli-ejs3m1sx.js";
31
- import"./cli-z071fb95.js";
31
+ import"./cli-efaqv1c7.js";
32
32
  import"./cli-13p25grh.js";
33
33
  import"./cli-0adyhvq2.js";
34
- import"./cli-vy0fay6k.js";
35
- import"./cli-mfe7f7b5.js";
36
- import"./cli-bn5kevnf.js";
37
- import"./cli-fz9kewbh.js";
34
+ import"./cli-nn47d7e8.js";
35
+ import"./cli-pkht5hap.js";
36
+ import"./cli-n85dqg6d.js";
37
+ import"./cli-nmqdc2t3.js";
38
38
  import"./cli-445c1vp7.js";
39
39
  import"./cli-kvzgak7c.js";
40
- import"./cli-nx462e4v.js";
41
- import"./cli-rqqsfz30.js";
40
+ import"./cli-7awf1fp8.js";
41
+ import"./cli-d3qqdy4c.js";
42
42
  import"./cli-wt645v7q.js";
43
43
  export {
44
44
  ExtensionAbortedError2 as ExtensionAbortedError,
@@ -8,8 +8,8 @@ import {
8
8
  shouldBlockChannel2,
9
9
  leaveExternalChannel2,
10
10
  scanExternalChannelsOnBoot2
11
- } from "./cli-mfe7f7b5.js";
12
- import"./cli-rqqsfz30.js";
11
+ } from "./cli-pkht5hap.js";
12
+ import"./cli-d3qqdy4c.js";
13
13
  export {
14
14
  EXTERNAL_CHANNEL_BLOCKED_REPLY2 as EXTERNAL_CHANNEL_BLOCKED_REPLY,
15
15
  externalChannelToolError2 as externalChannelToolError,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  checkGrokCredentials2,
3
3
  GrokAdapter2
4
- } from "./cli-6ncjvx55.js";
5
- import"./cli-3tnpj2bh.js";
4
+ } from "./cli-fyzjmseb.js";
5
+ import"./cli-z4wd2ftv.js";
6
6
  import"./cli-xbzvet96.js";
7
7
  import"./cli-zfg9enh9.js";
8
8
  import"./cli-4bd1rck6.js";
@@ -1,37 +1,37 @@
1
1
  import {
2
2
  isUserAllowed2,
3
3
  registerMessageHandler2
4
- } from "./cli-p6argxh9.js";
5
- import"./cli-3kh4kpqy.js";
6
- import"./cli-3r448dqn.js";
7
- import"./cli-kr2pmfqx.js";
4
+ } from "./cli-10hhg0km.js";
5
+ import"./cli-0qvtffe9.js";
6
+ import"./cli-bcj753sq.js";
7
+ import"./cli-5rk36sjf.js";
8
8
  import"./cli-smvcw9z5.js";
9
9
  import"./cli-sv5gb0yb.js";
10
10
  import"./cli-qz93y3x5.js";
11
11
  import"./cli-3h26v7yj.js";
12
12
  import"./cli-7a91w22y.js";
13
- import"./cli-k9z4zd4p.js";
14
- import"./cli-0bh477zn.js";
13
+ import"./cli-saw9a6f6.js";
14
+ import"./cli-h38rjv87.js";
15
15
  import"./cli-3ggwdtb0.js";
16
- import"./cli-sjyetj21.js";
17
- import"./cli-s48yvzb8.js";
18
- import"./cli-3p8fqcnh.js";
16
+ import"./cli-s6vr7r2d.js";
17
+ import"./cli-faypxz7q.js";
18
+ import"./cli-h93c9vb3.js";
19
19
  import"./cli-qje9k2nh.js";
20
- import"./cli-kmqgmcnb.js";
21
- import"./cli-tbhwrxpt.js";
20
+ import"./cli-y2x52gs2.js";
21
+ import"./cli-02qm7src.js";
22
22
  import"./cli-8nyhf7za.js";
23
23
  import"./cli-ejs3m1sx.js";
24
- import"./cli-z071fb95.js";
24
+ import"./cli-efaqv1c7.js";
25
25
  import"./cli-13p25grh.js";
26
26
  import"./cli-0adyhvq2.js";
27
- import"./cli-vy0fay6k.js";
28
- import"./cli-mfe7f7b5.js";
29
- import"./cli-bn5kevnf.js";
30
- import"./cli-fz9kewbh.js";
27
+ import"./cli-nn47d7e8.js";
28
+ import"./cli-pkht5hap.js";
29
+ import"./cli-n85dqg6d.js";
30
+ import"./cli-nmqdc2t3.js";
31
31
  import"./cli-445c1vp7.js";
32
32
  import"./cli-kvzgak7c.js";
33
- import"./cli-nx462e4v.js";
34
- import"./cli-rqqsfz30.js";
33
+ import"./cli-7awf1fp8.js";
34
+ import"./cli-d3qqdy4c.js";
35
35
  import"./cli-wt645v7q.js";
36
36
  export {
37
37
  isUserAllowed2 as isUserAllowed,
@@ -7,38 +7,38 @@ import {
7
7
  runHeartbeatSweep2,
8
8
  startHeartbeat2,
9
9
  stopHeartbeat2
10
- } from "./cli-rdq7tzwm.js";
11
- import"./cli-axh29tyr.js";
10
+ } from "./cli-hyfw2j1e.js";
11
+ import"./cli-8zwe9mpk.js";
12
12
  import"./cli-hqhzg1qq.js";
13
- import"./cli-kr2pmfqx.js";
13
+ import"./cli-5rk36sjf.js";
14
14
  import"./cli-smvcw9z5.js";
15
15
  import"./cli-sv5gb0yb.js";
16
16
  import"./cli-qz93y3x5.js";
17
17
  import"./cli-3h26v7yj.js";
18
18
  import"./cli-7a91w22y.js";
19
- import"./cli-k9z4zd4p.js";
20
- import"./cli-0bh477zn.js";
19
+ import"./cli-saw9a6f6.js";
20
+ import"./cli-h38rjv87.js";
21
21
  import"./cli-3ggwdtb0.js";
22
- import"./cli-sjyetj21.js";
23
- import"./cli-s48yvzb8.js";
24
- import"./cli-3p8fqcnh.js";
22
+ import"./cli-s6vr7r2d.js";
23
+ import"./cli-faypxz7q.js";
24
+ import"./cli-h93c9vb3.js";
25
25
  import"./cli-qje9k2nh.js";
26
- import"./cli-kmqgmcnb.js";
27
- import"./cli-tbhwrxpt.js";
26
+ import"./cli-y2x52gs2.js";
27
+ import"./cli-02qm7src.js";
28
28
  import"./cli-8nyhf7za.js";
29
29
  import"./cli-ejs3m1sx.js";
30
- import"./cli-z071fb95.js";
30
+ import"./cli-efaqv1c7.js";
31
31
  import"./cli-13p25grh.js";
32
32
  import"./cli-0adyhvq2.js";
33
- import"./cli-vy0fay6k.js";
34
- import"./cli-mfe7f7b5.js";
35
- import"./cli-bn5kevnf.js";
36
- import"./cli-fz9kewbh.js";
33
+ import"./cli-nn47d7e8.js";
34
+ import"./cli-pkht5hap.js";
35
+ import"./cli-n85dqg6d.js";
36
+ import"./cli-nmqdc2t3.js";
37
37
  import"./cli-445c1vp7.js";
38
38
  import"./cli-kvzgak7c.js";
39
39
  import"./cli-b2mz5mjc.js";
40
- import"./cli-nx462e4v.js";
41
- import"./cli-rqqsfz30.js";
40
+ import"./cli-7awf1fp8.js";
41
+ import"./cli-d3qqdy4c.js";
42
42
  import"./cli-wt645v7q.js";
43
43
  export {
44
44
  checkHeartbeatChecklist2 as checkHeartbeatChecklist,
@@ -38,7 +38,7 @@ import {
38
38
  import {
39
39
  init_package,
40
40
  package_default
41
- } from "./cli-ash6xxk7.js";
41
+ } from "./cli-shvfedvm.js";
42
42
  import {
43
43
  MAX_PROFILE_FILE_LENGTH,
44
44
  getMcpBaseUrl,
@@ -9,7 +9,7 @@ import"./cli-d82btycs.js";
9
9
  import"./cli-0726awxw.js";
10
10
  import {
11
11
  handleHook
12
- } from "./cli-z1ew8vbq.js";
12
+ } from "./cli-ahtpy9kf.js";
13
13
  import"./cli-13p25grh.js";
14
14
  import"./cli-0adyhvq2.js";
15
15
 
@@ -280,7 +280,7 @@ import {
280
280
  hasCapability,
281
281
  getEnabledCapabilities,
282
282
  createServer
283
- } from "./cli-kr2pmfqx.js";
283
+ } from "./cli-5rk36sjf.js";
284
284
  import {
285
285
  chatThreadOfContextKey,
286
286
  agentContextKey,
@@ -377,6 +377,8 @@ import {
377
377
  recordApprovalVotes2,
378
378
  computeContentHash2,
379
379
  getTaskById2,
380
+ TASK_LINEAGE_LIMITS2,
381
+ getTaskLineage2,
380
382
  getAllTasks2,
381
383
  getTasksCount2,
382
384
  getTaskStats2,
@@ -714,21 +716,21 @@ import {
714
716
  countScriptRunJournalSteps2,
715
717
  countScriptRunJournalAgentTaskSteps2,
716
718
  init_db3
717
- } from "./cli-rqqsfz30.js";
719
+ } from "./cli-d3qqdy4c.js";
718
720
  import {
719
721
  getUserGrant2,
720
722
  init_rbac_roles
721
- } from "./cli-nx462e4v.js";
722
- import"./cli-s48yvzb8.js";
723
+ } from "./cli-7awf1fp8.js";
724
+ import"./cli-faypxz7q.js";
723
725
  import {
724
726
  normalizeModelKey
725
- } from "./cli-3p8fqcnh.js";
727
+ } from "./cli-h93c9vb3.js";
726
728
  import {
727
729
  upsertModelCatalogOverlay,
728
730
  deleteModelCatalogOverlay,
729
731
  loadModelsCatalog,
730
732
  requestModelCatalogRefresh2
731
- } from "./cli-k9z4zd4p.js";
733
+ } from "./cli-saw9a6f6.js";
732
734
  import {
733
735
  AMP_ESTIMATE_MODELS,
734
736
  ampBillsCacheWrites,
@@ -745,7 +747,7 @@ import {
745
747
  cancelWorkflowRun2,
746
748
  TriggerSchemaError,
747
749
  startWorkflowExecution2
748
- } from "./cli-kmqgmcnb.js";
750
+ } from "./cli-y2x52gs2.js";
749
751
  import {
750
752
  require_dist2,
751
753
  isInvalidClientError,
@@ -825,14 +827,14 @@ import {
825
827
  typecheckWithAmbient,
826
828
  typecheckScript,
827
829
  parseSkillContent
828
- } from "./cli-0bh477zn.js";
830
+ } from "./cli-h38rjv87.js";
829
831
  import {
830
832
  buildAuthorizationUrl,
831
833
  exchangeAuthorizationCode,
832
834
  oauthAppRowToProviderConfig,
833
835
  forceRefreshAuthorizationOrThrow,
834
836
  forceRefreshTokenOrThrow
835
- } from "./cli-sjyetj21.js";
837
+ } from "./cli-s6vr7r2d.js";
836
838
  import {
837
839
  signalProcessGroup,
838
840
  detachedProcessGroup,
@@ -860,14 +862,14 @@ import {
860
862
  getSlackApp2,
861
863
  startSlackApp2,
862
864
  stopSlackApp2
863
- } from "./cli-vy0fay6k.js";
864
- import"./cli-mfe7f7b5.js";
865
+ } from "./cli-nn47d7e8.js";
866
+ import"./cli-pkht5hap.js";
865
867
  import {
866
868
  createApprovalFollowUpTask,
867
869
  generateEdges,
868
870
  definitionNodeIds,
869
871
  validateDefinition
870
- } from "./cli-tbhwrxpt.js";
872
+ } from "./cli-02qm7src.js";
871
873
  import"./cli-8nyhf7za.js";
872
874
  import {
873
875
  _fetchHolder,
@@ -925,7 +927,7 @@ import {
925
927
  bodyListTask,
926
928
  describeRequestRoute,
927
929
  route
928
- } from "./cli-z071fb95.js";
930
+ } from "./cli-efaqv1c7.js";
929
931
  import {
930
932
  isMultiRuntimeEnabled
931
933
  } from "./cli-7a91w22y.js";
@@ -956,7 +958,7 @@ import {
956
958
  resolvePoolDelivery2,
957
959
  createPoolAgent2,
958
960
  init_db
959
- } from "./cli-bn5kevnf.js";
961
+ } from "./cli-n85dqg6d.js";
960
962
  import {
961
963
  RATING_MODEL_MAX_LENGTH,
962
964
  REFERENCES_SOURCE_MAX_LENGTH,
@@ -972,7 +974,7 @@ import {
972
974
  checkHeartbeatChecklist2,
973
975
  runHeartbeatSweep2,
974
976
  stopHeartbeat2
975
- } from "./cli-rdq7tzwm.js";
977
+ } from "./cli-hyfw2j1e.js";
976
978
  import"./cli-hqhzg1qq.js";
977
979
  import {
978
980
  import_websocket,
@@ -982,7 +984,7 @@ import {
982
984
  runtimeSupervisorStatus,
983
985
  startRuntimeSupervisor,
984
986
  stopRuntimeSupervisor
985
- } from "./cli-axh29tyr.js";
987
+ } from "./cli-8zwe9mpk.js";
986
988
  import"./cli-ns59dc6r.js";
987
989
  import {
988
990
  ACP_TARGET_IDS
@@ -1002,11 +1004,11 @@ import {
1002
1004
  memoryRelevance,
1003
1005
  isUnknownModelError,
1004
1006
  writeSkillsToFilesystem
1005
- } from "./cli-m2qgh5sv.js";
1007
+ } from "./cli-ftyypbg5.js";
1006
1008
  import {
1007
1009
  inviteEmailToSharedOrg,
1008
1010
  ensureAgentFsCredentialsForAgent
1009
- } from "./cli-syhq378v.js";
1011
+ } from "./cli-t30yj95q.js";
1010
1012
  import {
1011
1013
  Anthropic
1012
1014
  } from "./cli-er83cjbn.js";
@@ -1041,7 +1043,7 @@ import {
1041
1043
  revokeSessionToken,
1042
1044
  fingerprintApiKey,
1043
1045
  init_users
1044
- } from "./cli-fz9kewbh.js";
1046
+ } from "./cli-nmqdc2t3.js";
1045
1047
  import"./cli-v41kn3cd.js";
1046
1048
  import"./cli-wgtk7xxr.js";
1047
1049
  import {
@@ -1270,7 +1272,7 @@ import {
1270
1272
  import {
1271
1273
  init_package,
1272
1274
  package_default
1273
- } from "./cli-ash6xxk7.js";
1275
+ } from "./cli-shvfedvm.js";
1274
1276
  import {
1275
1277
  realtimeBus,
1276
1278
  init_bus
@@ -21218,17 +21220,8 @@ var TestConnectionResponseSchema = object2({
21218
21220
  error: string2().optional(),
21219
21221
  latency_ms: number2().int().nonnegative()
21220
21222
  });
21221
- function getCredVerifyTtlMs() {
21222
- const raw = process.env.SWARM_VERIFY_TTL_MS;
21223
- if (!raw)
21224
- return 3600000;
21225
- const parsed = Number.parseInt(raw, 10);
21226
- if (Number.isNaN(parsed) || parsed <= 0)
21227
- return 3600000;
21228
- return parsed;
21229
- }
21230
21223
  async function rollupCredStatusForProvider(provider) {
21231
- const agents = await listAgentsWithCredStatusByProvider2(provider);
21224
+ const agents = (await listAgentsWithCredStatusByProvider2(provider)).filter((a) => a.status !== "offline");
21232
21225
  const reports = agents.map((a) => a.credStatus).filter((s) => s != null);
21233
21226
  if (reports.length === 0) {
21234
21227
  return {
@@ -21241,14 +21234,12 @@ async function rollupCredStatusForProvider(provider) {
21241
21234
  oldestReportAgeMs: null
21242
21235
  };
21243
21236
  }
21244
- const ttl = getCredVerifyTtlMs();
21245
21237
  const now = Date.now();
21246
- const isFreshPassingReport = (report) => report.liveTest?.ok === true && now - (report.liveTest?.testedAt ?? 0) < ttl;
21247
- const passing = reports.filter(isFreshPassingReport).sort((a, b) => (b.liveTest?.testedAt ?? 0) - (a.liveTest?.testedAt ?? 0));
21238
+ const passing = reports.filter((r) => r.liveTest?.ok === true);
21248
21239
  const anyLive = reports.filter((r) => r.liveTest != null).sort((a, b) => (b.liveTest?.testedAt ?? 0) - (a.liveTest?.testedAt ?? 0));
21249
- const latestLiveTest = passing[0]?.liveTest ?? anyLive[0]?.liveTest ?? null;
21240
+ const latestLiveTest = anyLive[0]?.liveTest ?? null;
21250
21241
  const anyReady = reports.some((r) => r.ready);
21251
- const state = passing.length > 0 ? "verified" : anyReady ? "configured" : "unverified";
21242
+ const state = latestLiveTest?.ok === true ? "verified" : anyReady ? "configured" : "unverified";
21252
21243
  const latestNotReady = reports.filter((r) => !r.ready).sort((a, b) => b.reportedAt - a.reportedAt)[0];
21253
21244
  const latestMissing = latestNotReady?.missing ?? [];
21254
21245
  const oldestReportAgeMs = reports.length > 0 ? Math.max(...reports.map((r) => now - r.reportedAt)) : null;
@@ -21276,17 +21267,16 @@ function buildIdentity() {
21276
21267
  };
21277
21268
  }
21278
21269
  function describeRoll(roll) {
21270
+ if (roll.state === "verified")
21271
+ return null;
21279
21272
  if (roll.workers === 0)
21280
21273
  return "no workers";
21281
- if (roll.reports === 0) {
21282
- return `${roll.workers} ${roll.workers === 1 ? "worker" : "workers"}, none reported`;
21274
+ if (roll.reports === 0)
21275
+ return "no credential report";
21276
+ if (roll.state === "configured") {
21277
+ return roll.latestLiveTest?.ok === false ? "live test failed" : "not live-tested";
21283
21278
  }
21284
- const w = `${roll.workers} ${roll.workers === 1 ? "worker" : "workers"}`;
21285
- if (roll.state === "verified")
21286
- return `${w} · live test ok`;
21287
- if (roll.state === "configured")
21288
- return `${w} · presence ok, awaiting live test`;
21289
- return roll.latestMissing.length > 0 ? `missing: ${roll.latestMissing.join(", ")}` : "creds blocked";
21279
+ return roll.latestMissing.length > 0 ? `missing: ${roll.latestMissing.join(", ")}` : "credentials blocked";
21290
21280
  }
21291
21281
  async function harnessMilestone() {
21292
21282
  const fleet = await getAgentHarnessProviders2();
@@ -21300,14 +21290,25 @@ async function harnessMilestone() {
21300
21290
  };
21301
21291
  }
21302
21292
  const perProvider = [];
21293
+ let recognised = 0;
21303
21294
  for (const { provider } of fleet) {
21304
21295
  const parsed = ProviderNameSchema.safeParse(provider);
21305
21296
  if (!parsed.success)
21306
21297
  continue;
21307
- perProvider.push({
21308
- provider: parsed.data,
21309
- roll: await rollupCredStatusForProvider(parsed.data)
21310
- });
21298
+ recognised++;
21299
+ const roll = await rollupCredStatusForProvider(parsed.data);
21300
+ if (roll.workers === 0)
21301
+ continue;
21302
+ perProvider.push({ provider: parsed.data, roll });
21303
+ }
21304
+ if (recognised > 0 && perProvider.length === 0) {
21305
+ return {
21306
+ id: "harness",
21307
+ label: "Harness configured",
21308
+ state: "unverified",
21309
+ hint: "No agents online. Start a worker to run a live credential test.",
21310
+ action_url: "/agents"
21311
+ };
21311
21312
  }
21312
21313
  if (perProvider.length === 0) {
21313
21314
  return {
@@ -21320,7 +21321,10 @@ async function harnessMilestone() {
21320
21321
  }
21321
21322
  const states = perProvider.map((p) => p.roll.state);
21322
21323
  const aggregateState = states.every((s) => s === "verified") ? "verified" : states.every((s) => s !== "unverified") ? "configured" : "unverified";
21323
- const hint = perProvider.map((p) => `${p.provider}: ${describeRoll(p.roll)}`).join(" · ");
21324
+ const hint = perProvider.flatMap((p) => {
21325
+ const phrase = describeRoll(p.roll);
21326
+ return phrase ? [`${p.provider}: ${phrase}`] : [];
21327
+ }).join(" · ") || undefined;
21324
21328
  const singleProvider = perProvider.length === 1 ? perProvider[0]?.provider : undefined;
21325
21329
  return {
21326
21330
  id: "harness",
@@ -21645,7 +21649,7 @@ async function handleStatus(req, res, pathSegments, queryParams) {
21645
21649
  if (roll.workers === 0) {
21646
21650
  json(res, {
21647
21651
  ok: false,
21648
- error: `No workers registered with HARNESS_PROVIDER=${provider}. Start a worker — its boot loop will run a live test and report it here.`,
21652
+ error: `No online workers with HARNESS_PROVIDER=${provider}. Start a worker — its boot loop will run a live test and report it here.`,
21649
21653
  latency_ms: 0
21650
21654
  });
21651
21655
  return true;
@@ -22549,6 +22553,32 @@ var getTask = route({
22549
22553
  404: { description: "Task not found" }
22550
22554
  }
22551
22555
  });
22556
+ var getTaskLineageRoute = route({
22557
+ method: "get",
22558
+ path: "/api/tasks/{id}/lineage",
22559
+ pattern: ["api", "tasks", null, "lineage"],
22560
+ session: { taskParam: "id" },
22561
+ summary: "Get the tree a task belongs to (ancestors and descendants)",
22562
+ description: `Follows \`parentTaskId\` up to the topmost ancestor, then returns every descendant of that root as slim task rows, the task's own subtree first. Bounded: at most ${TASK_LINEAGE_LIMITS2.maxAncestors} hops up, \`maxDepth\` levels down and about twice \`maxNodes\` rows; \`truncated\` is true when any task in the tree is missing from the response.`,
22563
+ tags: ["Tasks"],
22564
+ params: object2({ id: string2() }),
22565
+ query: object2({
22566
+ maxNodes: exports_coerce.number().int().min(1).max(TASK_LINEAGE_LIMITS2.maxNodes).optional(),
22567
+ maxDepth: exports_coerce.number().int().min(1).max(TASK_LINEAGE_LIMITS2.maxDepth).optional()
22568
+ }),
22569
+ responses: {
22570
+ 200: {
22571
+ description: "The lineage tree as a flat list linked by `parentTaskId`",
22572
+ schema: object2({
22573
+ rootTaskId: string2(),
22574
+ tasks: array2(AgentTaskSummarySchema.extend({ workflowRunId: string2().optional() })),
22575
+ truncated: boolean()
22576
+ })
22577
+ },
22578
+ 403: { description: "A user caller cannot read the task's session" },
22579
+ 404: { description: "Task not found" }
22580
+ }
22581
+ });
22552
22582
  var updateTaskProgressRoute = route({
22553
22583
  method: "post",
22554
22584
  path: "/api/tasks/{id}/progress",
@@ -22939,6 +22969,7 @@ async function handleTasks(req, res, pathSegments, queryParams, myAgentId) {
22939
22969
  offeredTo: parsed.body.offeredTo || undefined,
22940
22970
  dir: parsed.body.dir || undefined,
22941
22971
  parentTaskId: parsed.body.parentTaskId || undefined,
22972
+ inheritParentOutputSchema: principal.kind === "agent",
22942
22973
  source: parsed.body.source || "api",
22943
22974
  outputSchema: parsed.body.outputSchema || undefined,
22944
22975
  contextKey: parsed.body.contextKey || undefined,
@@ -23343,6 +23374,21 @@ async function handleTasks(req, res, pathSegments, queryParams, myAgentId) {
23343
23374
  });
23344
23375
  return true;
23345
23376
  }
23377
+ if (getTaskLineageRoute.match(req.method, pathSegments)) {
23378
+ const parsed = await getTaskLineageRoute.parse(req, res, pathSegments, queryParams);
23379
+ if (!parsed)
23380
+ return true;
23381
+ const lineage = await getTaskLineage2(parsed.params.id, {
23382
+ maxNodes: parsed.query.maxNodes,
23383
+ maxDepth: parsed.query.maxDepth
23384
+ });
23385
+ if (!lineage) {
23386
+ jsonError(res, "Task not found", 404);
23387
+ return true;
23388
+ }
23389
+ getTaskLineageRoute.respond(res, 200, lineage);
23390
+ return true;
23391
+ }
23346
23392
  if (updateTaskProgressRoute.match(req.method, pathSegments)) {
23347
23393
  const parsed = await updateTaskProgressRoute.parse(req, res, pathSegments, queryParams);
23348
23394
  if (!parsed)
@@ -39080,7 +39126,7 @@ var httpServer = createHttpServer(async (req, res) => {
39080
39126
  });
39081
39127
  });
39082
39128
  var detachRealtime = attachRealtimeTransport(httpServer);
39083
- var { attachControllerTransport } = await import("./controllers-connect-bg33ae53.js");
39129
+ var { attachControllerTransport } = await import("./controllers-connect-5fym8sw1.js");
39084
39130
  var detachControllers = attachControllerTransport(httpServer);
39085
39131
  var stopWorkerNudges = startWorkerNudgeListener();
39086
39132
  var stopRoomDeletion = realtimeBus.subscribe("room:namespace-deleted", (namespace) => {
@@ -39109,7 +39155,7 @@ async function shutdown() {
39109
39155
  sessionsProcessed: getServerSessionsProcessed()
39110
39156
  });
39111
39157
  if (hasCapability("scheduling")) {
39112
- const { stopScheduler } = await import("./index-h2ek08d6.js");
39158
+ const { stopScheduler } = await import("./index-aex0eba9.js");
39113
39159
  stopScheduler();
39114
39160
  }
39115
39161
  stopHeartbeat2();
@@ -39121,7 +39167,7 @@ async function shutdown() {
39121
39167
  await stopSlackApp2();
39122
39168
  await stopChatSdk();
39123
39169
  if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
39124
- const { stopOAuthKeepalive } = await import("./keepalive-nhvpw10z.js");
39170
+ const { stopOAuthKeepalive } = await import("./keepalive-64c0f34c.js");
39125
39171
  await stopOAuthKeepalive();
39126
39172
  }
39127
39173
  stopOAuthPendingGc();
@@ -39201,21 +39247,21 @@ try {
39201
39247
  console.warn("[startup] CAPABILITIES upgrade seed failed (non-fatal):", err);
39202
39248
  }
39203
39249
  try {
39204
- const { ensurePricingSeeded } = await import("./boot-seeds-6wxqkfk2.js");
39250
+ const { ensurePricingSeeded } = await import("./boot-seeds-g5hfc1x8.js");
39205
39251
  ensurePricingSeeded();
39206
- const { startPricingRefreshLoop } = await import("./pricing-refresh-3cqx3f3x.js");
39252
+ const { startPricingRefreshLoop } = await import("./pricing-refresh-1nek2w7b.js");
39207
39253
  startPricingRefreshLoop();
39208
39254
  } catch (err) {
39209
39255
  console.error("[startup] Failed to seed pricing rows:", err);
39210
39256
  }
39211
39257
  try {
39212
- const { ensureModelProfilesSeeded } = await import("./boot-seeds-6wxqkfk2.js");
39258
+ const { ensureModelProfilesSeeded } = await import("./boot-seeds-g5hfc1x8.js");
39213
39259
  await ensureModelProfilesSeeded();
39214
39260
  } catch (err) {
39215
39261
  console.error("[startup] Failed to seed model profiles:", err);
39216
39262
  }
39217
39263
  try {
39218
- const { ensureRbacSeeded } = await import("./boot-seeds-6wxqkfk2.js");
39264
+ const { ensureRbacSeeded } = await import("./boot-seeds-g5hfc1x8.js");
39219
39265
  ensureRbacSeeded();
39220
39266
  } catch (err) {
39221
39267
  console.error("[startup] Failed to sync RBAC seed rows:", err);
@@ -39223,7 +39269,7 @@ try {
39223
39269
  throw err;
39224
39270
  }
39225
39271
  try {
39226
- const { runAllSeeders } = await import("./index-2z710v4x.js");
39272
+ const { runAllSeeders } = await import("./index-y7rbcrc1.js");
39227
39273
  await runAllSeeders({ scriptEmbeddingMode: "skip" });
39228
39274
  } catch (err) {
39229
39275
  console.error("[startup] Failed to seed built-in entities:", err);
@@ -39285,39 +39331,39 @@ httpServer.listen(port, async () => {
39285
39331
  await initWorkflows2();
39286
39332
  await startScriptRunSupervisor(getMcpBaseUrl());
39287
39333
  if (hasCapability("scheduling")) {
39288
- const { startScheduler } = await import("./index-h2ek08d6.js");
39289
- const { getExecutorRegistry } = await import("./index-dgz61nff.js");
39334
+ const { startScheduler } = await import("./index-aex0eba9.js");
39335
+ const { getExecutorRegistry } = await import("./index-vzvfqzfj.js");
39290
39336
  const intervalMs = Number(process.env.SCHEDULER_INTERVAL_MS) || 1e4;
39291
39337
  startScheduler(getExecutorRegistry(), intervalMs, {
39292
39338
  runId: globalState.__runId
39293
39339
  });
39294
39340
  }
39295
39341
  if (!isEnvFlagEnabled("HEARTBEAT_DISABLE", false)) {
39296
- const { startHeartbeat } = await import("./index-pqfwh9nn.js");
39342
+ const { startHeartbeat } = await import("./index-5jecgp3n.js");
39297
39343
  const heartbeatMs = Number(process.env.HEARTBEAT_INTERVAL_MS) || 90000;
39298
39344
  startHeartbeat(heartbeatMs);
39299
39345
  }
39300
39346
  startPoolRouting();
39301
39347
  startRuntimeSupervisor();
39302
39348
  if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
39303
- const { startOAuthKeepalive } = await import("./keepalive-nhvpw10z.js");
39349
+ const { startOAuthKeepalive } = await import("./keepalive-64c0f34c.js");
39304
39350
  startOAuthKeepalive();
39305
39351
  }
39306
39352
  if (process.env.OAUTH_REFRESH_SWEEP_DISABLE !== "true") {
39307
- const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-4dcbhtn0.js");
39353
+ const { startOAuthRefreshSweep } = await import("./oauth-refresh-sweep-36hs2v4h.js");
39308
39354
  startOAuthRefreshSweep();
39309
39355
  }
39310
39356
  startOAuthPendingGc();
39311
39357
  await startMemoryGc();
39312
39358
  await startDbRetention();
39313
39359
  startHumanFreeDrain();
39314
- import("./boot-reembed-e53x6b9v.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
39360
+ import("./boot-reembed-6yn53ms9.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
39315
39361
  console.error("[boot-reembed] startup backfill failed (non-fatal):", err);
39316
39362
  });
39317
- import("./boot-reembed-f6z923ny.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
39363
+ import("./boot-reembed-7fcka4z5.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
39318
39364
  console.error("[boot-reembed-scripts] startup backfill failed (non-fatal):", err);
39319
39365
  });
39320
- import("./boot-scrub-sweep-0538vsb7.js").then(({ runBootScrubSweep }) => runBootScrubSweep()).catch((err) => {
39366
+ import("./boot-scrub-sweep-pm1580ax.js").then(({ runBootScrubSweep }) => runBootScrubSweep()).catch((err) => {
39321
39367
  console.error("[boot-scrub-sweep] startup scrub failed (non-fatal):", err);
39322
39368
  });
39323
39369
  }).on("error", (err) => {