bazilion 0.17.0 → 0.18.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.
Files changed (104) hide show
  1. package/dist/cli.js +336 -67
  2. package/dist/cli.js.map +1 -1
  3. package/dist/daemon.js +1770 -151
  4. package/dist/daemon.js.map +1 -1
  5. package/dist/migrations/0001_init.sql +107 -0
  6. package/dist/web/client/assets/{ChatPane-BI3QVX2A.js → ChatPane-CAYS_fIQ.js} +1 -1
  7. package/dist/web/client/assets/ConfirmDialog-BzIiABOP.js +1 -0
  8. package/dist/web/client/assets/{FieldRow-swJ5qn2h.js → FieldRow-W_54rw5c.js} +1 -1
  9. package/dist/web/client/assets/{ProductionTeamPolicyEditor-LGw1UuF-.js → ProductionTeamPolicyEditor-DNXVX8Lz.js} +2 -2
  10. package/dist/web/client/assets/{ProfileCommunicationEditor-raoau_YB.js → ProfileCommunicationEditor-DN0fOzqn.js} +1 -1
  11. package/dist/web/client/assets/{ResultSourceConversation-BEwkhFog.js → ResultSourceConversation-DoU4tOWc.js} +1 -1
  12. package/dist/web/client/assets/TeamTabs-BmTZRI4T.js +1 -0
  13. package/dist/web/client/assets/{TemplatesTabs-BX5hhEJ7.js → TemplatesTabs-Bs_OXKwx.js} +1 -1
  14. package/dist/web/client/assets/{UnsavedChangesGuard-CVJtmR1D.js → UnsavedChangesGuard-CPRtFReU.js} +1 -1
  15. package/dist/web/client/assets/{_id-DmEVZIlx.js → _id-CxAB4TDr.js} +1 -1
  16. package/dist/web/client/assets/{_id-DHqq2W34.js → _id-DL4tJFQB.js} +1 -1
  17. package/dist/web/client/assets/{_id-BQPOE3gj.js → _id-DR9eFC17.js} +1 -1
  18. package/dist/web/client/assets/{_id-BkYrUP0R.js → _id-Dbmei5tg.js} +1 -1
  19. package/dist/web/client/assets/{_id-CriixlZD.js → _id-ybF-pqmr.js} +1 -1
  20. package/dist/web/client/assets/{activity-Bzr8R18n.js → activity-oUyy77jD.js} +1 -1
  21. package/dist/web/client/assets/{agents-13oafeOA.js → agents-D_TrEqAg.js} +1 -1
  22. package/dist/web/client/assets/{agents-DF4NALmJ.js → agents-DkjJp7JP.js} +1 -1
  23. package/dist/web/client/assets/{approvals-DsG0Ijls.js → approvals-DhOerWdt.js} +1 -1
  24. package/dist/web/client/assets/{attention-DG7K25mz.js → attention-DGwiF-Jy.js} +1 -1
  25. package/dist/web/client/assets/chevron-right-DSa4xPTs.js +1 -0
  26. package/dist/web/client/assets/{config-DAaDbFhS.js → config-BJ2ZzHPR.js} +1 -1
  27. package/dist/web/client/assets/{inbox-C9e7QjsX.js → inbox-BUElnGep.js} +1 -1
  28. package/dist/web/client/assets/{index-Dsstm2hf.js → index-Bi-HxcPG.js} +2 -2
  29. package/dist/web/client/assets/{learning-23arTd21.js → learning-BiTHNwB3.js} +1 -1
  30. package/dist/web/client/assets/login-BmcZvAH2.js +1 -0
  31. package/dist/web/client/assets/{mcp-Cdx9qAl8.js → mcp-Cwk9V82W.js} +1 -1
  32. package/dist/web/client/assets/{members-fotOz4rR.js → members-CHDNabFh.js} +1 -1
  33. package/dist/web/client/assets/{memory-C7UznVot.js → memory-Cx_Fpd4e.js} +1 -1
  34. package/dist/web/client/assets/{policy-CactLW1X.js → policy-C0nMdwcG.js} +1 -1
  35. package/dist/web/client/assets/{results-DqEuYnQH.js → results-Bz3jASs-.js} +1 -1
  36. package/dist/web/client/assets/{review-CnBSYclb.js → review-AK9WGmpv.js} +1 -1
  37. package/dist/web/client/assets/routes-DsMY_6oy.js +1 -0
  38. package/dist/web/client/assets/{services-xEANwZAu.js → services-DItA6fJ7.js} +1 -1
  39. package/dist/web/client/assets/{skills-CamV6wYM.js → skills-DbNV2vgL.js} +1 -1
  40. package/dist/web/client/assets/{teams-B12dMSjW.js → teams-D83scDxw.js} +1 -1
  41. package/dist/web/client/assets/{teams-CbH43zSG.js → teams-DAny1ypN.js} +1 -1
  42. package/dist/web/client/assets/{telegram-muIql4u-.js → telegram-BOmf9vUh.js} +1 -1
  43. package/dist/web/client/assets/{tokens-DGFmApdF.js → tokens-DBGH6Bw5.js} +1 -1
  44. package/dist/web/client/assets/{triggers-D8n3sCBW.js → triggers-D1_pseI3.js} +1 -1
  45. package/dist/web/client/assets/verifications-CBTo-FyV.js +2 -0
  46. package/dist/web/client/assets/{welcome-CMHWRZhs.js → welcome-DAfPOm15.js} +1 -1
  47. package/dist/web/client/assets/{x-BGCHwZOH.js → x-CWY-gUaM.js} +1 -1
  48. package/dist/web/server/assets/{TeamTabs-DQXh-3ij.js → TeamTabs-Dg4v6x0-.js} +4 -0
  49. package/dist/web/server/assets/{_id-DDyA9CGX.js → _id--onriuvj.js} +1 -1
  50. package/dist/web/server/assets/{_id-XkxlX036.js → _id--zoh1vv7.js} +1 -1
  51. package/dist/web/server/assets/{_id-Dw3gKOGv.js → _id-6p-mDmI8.js} +1 -1
  52. package/dist/web/server/assets/{_id-CPfILjMa.js → _id-DptBl3X8.js} +1 -1
  53. package/dist/web/server/assets/{_id-DtJn-yzu.js → _id-EAjRXNbD.js} +2 -2
  54. package/dist/web/server/assets/{_id-DSPFJMzf.js → _id-dUnXL-My2.js} +1 -1
  55. package/dist/web/server/assets/{_tanstack-start-manifest_v-vOXRfKJD.js → _tanstack-start-manifest_v-B3M-dfRO.js} +90 -79
  56. package/dist/web/server/assets/{activity-pYQPT3QT.js → activity-C5jpoEQI.js} +1 -1
  57. package/dist/web/server/assets/{activity-BX1jZBPQ.js → activity-Cu7zKPGD.js} +1 -1
  58. package/dist/web/server/assets/{activity-bozPMU2v.js → activity-Dn50vkQP.js} +2 -2
  59. package/dist/web/server/assets/{agents-BKBfW700.js → agents-RE6aYOb-.js} +1 -1
  60. package/dist/web/server/assets/{agents-CVCfxnE2.js → agents-nAOx_H7s.js} +1 -1
  61. package/dist/web/server/assets/{approvals-C3ya6B6U.js → approvals-DhHxIDrL.js} +1 -1
  62. package/dist/web/server/assets/{attention-l28hGCHS.js → attention-CBWzWRni.js} +1 -1
  63. package/dist/web/server/assets/{auth-AvDFNeOv.js → auth-tB3i6cFd.js} +1 -1
  64. package/dist/web/server/assets/{config-BWKn4XII.js → config-D1k_tTAw.js} +1 -1
  65. package/dist/web/server/assets/{daemon-client-Cgx-YW4l.js → daemon-client-C7qjQ2iO.js} +15 -0
  66. package/dist/web/server/assets/{git-review-f_uta4Mx.js → git-review-Bf5ABFJg.js} +1 -1
  67. package/dist/web/server/assets/{inbox-BBZiOOQs.js → inbox-Dw4pTevh.js} +1 -1
  68. package/dist/web/server/assets/{learning-CheVay1i.js → learning-CF8ZzFVD.js} +1 -1
  69. package/dist/web/server/assets/{mcp-DCBDmNtQ.js → mcp-D5dmBT82.js} +1 -1
  70. package/dist/web/server/assets/{members-C5FQruRZ.js → members-Bd0OtiTr.js} +1 -1
  71. package/dist/web/server/assets/{members-C2He8mrU.js → members-CvwEN9pm.js} +1 -1
  72. package/dist/web/server/assets/{members-C_2xB9pr.js → members-xSXoYUOd.js} +2 -2
  73. package/dist/web/server/assets/{memory-rmiFNj7T.js → memory-CcPK7um7.js} +1 -1
  74. package/dist/web/server/assets/{memory-BTcmf0sD.js → memory-UP6AsRkO.js} +2 -2
  75. package/dist/web/server/assets/{memory-4tI-UbOf.js → memory-lo2vHRNw.js} +1 -1
  76. package/dist/web/server/assets/{policy-C3D2Q1EA.js → policy-B62WXIFo.js} +1 -1
  77. package/dist/web/server/assets/{policy-BGILKGHz.js → policy-Bze9Krhg.js} +2 -2
  78. package/dist/web/server/assets/{policy-DS7LGe--.js → policy-Dh6wd2wN.js} +1 -1
  79. package/dist/web/server/assets/{results-_6K_zXQS.js → results-BFqs2iOu.js} +1 -1
  80. package/dist/web/server/assets/{results-C6H42tjq.js → results-BWnu3gXP.js} +1 -1
  81. package/dist/web/server/assets/{results-Cgx7SrFt.js → results-CzZk50Fu.js} +2 -2
  82. package/dist/web/server/assets/{review-DHhiL-JQ.js → review-DUe3vHPU.js} +2 -2
  83. package/dist/web/server/assets/{review-DSTMCwP4.js → review-c_-cFi7H.js} +1 -1
  84. package/dist/web/server/assets/{router-ElARvZzI.js → router-Deq94UJQ.js} +33 -26
  85. package/dist/web/server/assets/{routes-BgMvLvS-.js → routes-CVKkvFVv.js} +1 -1
  86. package/dist/web/server/assets/{services-yHZroxsi.js → services-CEr61xb5.js} +1 -1
  87. package/dist/web/server/assets/{skills--bIKID1Q.js → skills-BImC3LTO.js} +1 -1
  88. package/dist/web/server/assets/{teams-BbRfuVXY.js → teams-8zEIo08E.js} +1 -1
  89. package/dist/web/server/assets/{teams--a956vWL.js → teams-D-yaAWLV.js} +1 -1
  90. package/dist/web/server/assets/{telegram-4kMxRtVZ.js → telegram-CGl_LFtJ.js} +1 -1
  91. package/dist/web/server/assets/{tokens-BYwTN9JZ.js → tokens-cB-uf7qm.js} +1 -1
  92. package/dist/web/server/assets/{triggers-BM6mzLuH.js → triggers-CtSj79L0.js} +1 -1
  93. package/dist/web/server/assets/verification-B5QjcpIo.js +97 -0
  94. package/dist/web/server/assets/verifications-BfQsfwSE.js +268 -0
  95. package/dist/web/server/assets/verifications-CUq_6ZqL.js +26 -0
  96. package/dist/web/server/server.js +51 -35
  97. package/dist/worker.js +178 -4
  98. package/dist/worker.js.map +1 -1
  99. package/package.json +3 -3
  100. package/dist/web/client/assets/ConfirmDialog-Qam6Ut08.js +0 -1
  101. package/dist/web/client/assets/TeamTabs-BDdTLGIf.js +0 -1
  102. package/dist/web/client/assets/chevron-right-DFqFHtLy.js +0 -1
  103. package/dist/web/client/assets/login-BIXnBsuj.js +0 -1
  104. package/dist/web/client/assets/routes-COxMuwVz.js +0 -1
@@ -1,8 +1,8 @@
1
- import { t as Route } from "./policy-C3D2Q1EA.js";
1
+ import { t as Route } from "./policy-B62WXIFo.js";
2
2
  import { r as PageShell } from "./Page-Bz-ydB8j.js";
3
3
  import { t as Button } from "./Button-Dsnw22OF.js";
4
4
  import { t as RecoveryState } from "./RecoveryState-B2SG-mrY.js";
5
- import { t as TeamTabs } from "./TeamTabs-DQXh-3ij.js";
5
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
6
6
  import { t as ProductionTeamPolicyEditor } from "./ProductionTeamPolicyEditor-DQSdP7Yx.js";
7
7
  import { useEffect, useMemo, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/teams/$id/policy.tsx?tss-serverfn-split
5
5
  var fetchPolicy_createServerFn_handler = createServerRpc({
6
6
  id: "fc940d6dec5305aa64bdb9b9f5f7d4f925b2ba0608cb6d39af854a94872fc867",
@@ -2,7 +2,7 @@ import { n as createServerFn } from "../server.js";
2
2
  import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
3
3
  import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
4
4
  //#region src/routes/teams/$id/results.tsx
5
- var $$splitComponentImporter = () => import("./results-Cgx7SrFt.js");
5
+ var $$splitComponentImporter = () => import("./results-CzZk50Fu.js");
6
6
  var fetchTeam = createServerFn({ method: "POST" }).validator((data) => data).handler(createSsrRpc("6650438083b26964e4d4f7bf27caa6fe94c74a008e5b37a4d609180a9bf98b59"));
7
7
  var Route = createFileRoute("/teams/$id/results")({
8
8
  loader: ({ params }) => fetchTeam({ data: { id: params.id } }),
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/teams/$id/results.tsx?tss-serverfn-split
5
5
  var fetchTeam_createServerFn_handler = createServerRpc({
6
6
  id: "6650438083b26964e4d4f7bf27caa6fe94c74a008e5b37a4d609180a9bf98b59",
@@ -1,10 +1,10 @@
1
- import { t as Route } from "./results-_6K_zXQS.js";
1
+ import { t as Route } from "./results-BFqs2iOu.js";
2
2
  import { r as PageShell } from "./Page-Bz-ydB8j.js";
3
3
  import { t as Button } from "./Button-Dsnw22OF.js";
4
4
  import { t as ResultCard } from "./ResultCard-B3zD9N0t.js";
5
5
  import { n as ResultSourceLink } from "./ResultSourceConversation-BmXTcEOA.js";
6
6
  import { t as ConfirmDialog } from "./ConfirmDialog-C-MPYYSU.js";
7
- import { t as TeamTabs } from "./TeamTabs-DQXh-3ij.js";
7
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
8
8
  import { useEffect, useState } from "react";
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  //#region src/routes/teams/$id/results.tsx?tsr-split=component
@@ -1,9 +1,9 @@
1
1
  import { a as fetchTeamSnapshot, i as fetchTeamReview, n as fetchFileDiff, o as prepareReviewFeedback, s as sendReviewFeedback, t as captureTeamSnapshot } from "./git-review-BB3M9nYg.js";
2
- import { t as Route } from "./review-DSTMCwP4.js";
2
+ import { t as Route } from "./review-c_-cFi7H.js";
3
3
  import { r as PageShell } from "./Page-Bz-ydB8j.js";
4
4
  import { t as Button } from "./Button-Dsnw22OF.js";
5
5
  import { a as referenceLabel, i as changeSummary, o as snapshotLabel, r as baseLabel, s as unavailableMessage } from "./git-review-presentation-TJiHJhen.js";
6
- import { t as TeamTabs } from "./TeamTabs-DQXh-3ij.js";
6
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
7
7
  import { useState } from "react";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/routes/teams/$id/review.tsx?tsr-split=component
@@ -1,7 +1,7 @@
1
1
  import { i as fetchTeamReview } from "./git-review-BB3M9nYg.js";
2
2
  import { createFileRoute, lazyRouteComponent, redirect } from "@tanstack/react-router";
3
3
  //#region src/routes/teams/$id/review.tsx
4
- var $$splitComponentImporter = () => import("./review-DHhiL-JQ.js");
4
+ var $$splitComponentImporter = () => import("./review-DUe3vHPU.js");
5
5
  var Route = createFileRoute("/teams/$id/review")({
6
6
  loader: async ({ params }) => {
7
7
  const data = await fetchTeamReview({ data: { id: params.id } });
@@ -1,5 +1,5 @@
1
1
  import { a as getCookie, n as createServerFn } from "../server.js";
2
- import { t as DAEMON_BASE_URL } from "./daemon-client-Cgx-YW4l.js";
2
+ import { t as DAEMON_BASE_URL } from "./daemon-client-C7qjQ2iO.js";
3
3
  import { t as webOriginConfig } from "./public-origin-xV0lm0Ty.js";
4
4
  import { i as BaziuLogo, n as ThemeToggle, r as PawIcon, t as Route$5 } from "./login-rDox7PRD.js";
5
5
  import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
@@ -16,20 +16,21 @@ import { t as Route$15 } from "./services-DgoU1udp.js";
16
16
  import { t as Route$16 } from "./mcp-B0goWO8Q.js";
17
17
  import { t as Route$17 } from "./teams-BJuoNOTB.js";
18
18
  import { t as Route$18 } from "./agents-CJk4pxKu.js";
19
- import { t as Route$19 } from "./_id-DDyA9CGX.js";
19
+ import { t as Route$19 } from "./_id--onriuvj.js";
20
20
  import { t as Route$20 } from "./_id-BN1BPEDI.js";
21
- import { t as Route$21 } from "./review-DSTMCwP4.js";
22
- import { t as Route$22 } from "./results-_6K_zXQS.js";
23
- import { t as Route$23 } from "./policy-C3D2Q1EA.js";
24
- import { t as Route$24 } from "./memory-4tI-UbOf.js";
25
- import { t as Route$25 } from "./members-C5FQruRZ.js";
26
- import { t as Route$26 } from "./activity-BX1jZBPQ.js";
27
- import { t as Route$27 } from "./telegram-Zd1rIZxg.js";
28
- import { t as Route$28 } from "./triggers-BvjYNmmY.js";
29
- import { t as Route$29 } from "./learning-BaKM6qaw.js";
30
- import { t as Route$30 } from "./inbox-cu3jLzNP.js";
31
- import { t as Route$31 } from "./_id-BwvCtzlD.js";
32
- import { t as Route$32 } from "./_id-BYKpT2Tu.js";
21
+ import { t as Route$21 } from "./verifications-CUq_6ZqL.js";
22
+ import { t as Route$22 } from "./review-c_-cFi7H.js";
23
+ import { t as Route$23 } from "./results-BFqs2iOu.js";
24
+ import { t as Route$24 } from "./policy-B62WXIFo.js";
25
+ import { t as Route$25 } from "./memory-lo2vHRNw.js";
26
+ import { t as Route$26 } from "./members-Bd0OtiTr.js";
27
+ import { t as Route$27 } from "./activity-Cu7zKPGD.js";
28
+ import { t as Route$28 } from "./telegram-Zd1rIZxg.js";
29
+ import { t as Route$29 } from "./triggers-BvjYNmmY.js";
30
+ import { t as Route$30 } from "./learning-BaKM6qaw.js";
31
+ import { t as Route$31 } from "./inbox-cu3jLzNP.js";
32
+ import { t as Route$32 } from "./_id-BwvCtzlD.js";
33
+ import { t as Route$33 } from "./_id-BYKpT2Tu.js";
33
34
  import { useEffect, useState } from "react";
34
35
  import { HeadContent, Link, Outlet, Scripts, createFileRoute, createRootRoute, createRouter, lazyRouteComponent, redirect, useRouterState } from "@tanstack/react-router";
35
36
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -726,27 +727,32 @@ var AgentsIdIndexRoute = Route$20.update({
726
727
  path: "/agents/$id/",
727
728
  getParentRoute: () => Route$4
728
729
  });
729
- var TeamsIdReviewRoute = Route$21.update({
730
+ var TeamsIdVerificationsRoute = Route$21.update({
731
+ id: "/teams/$id/verifications",
732
+ path: "/teams/$id/verifications",
733
+ getParentRoute: () => Route$4
734
+ });
735
+ var TeamsIdReviewRoute = Route$22.update({
730
736
  id: "/teams/$id/review",
731
737
  path: "/teams/$id/review",
732
738
  getParentRoute: () => Route$4
733
739
  });
734
- var TeamsIdResultsRoute = Route$22.update({
740
+ var TeamsIdResultsRoute = Route$23.update({
735
741
  id: "/teams/$id/results",
736
742
  path: "/teams/$id/results",
737
743
  getParentRoute: () => Route$4
738
744
  });
739
- var TeamsIdPolicyRoute = Route$23.update({
745
+ var TeamsIdPolicyRoute = Route$24.update({
740
746
  id: "/teams/$id/policy",
741
747
  path: "/teams/$id/policy",
742
748
  getParentRoute: () => Route$4
743
749
  });
744
- var TeamsIdMemoryRoute = Route$24.update({
750
+ var TeamsIdMemoryRoute = Route$25.update({
745
751
  id: "/teams/$id/memory",
746
752
  path: "/teams/$id/memory",
747
753
  getParentRoute: () => Route$4
748
754
  });
749
- var TeamsIdMembersRoute = Route$25.update({
755
+ var TeamsIdMembersRoute = Route$26.update({
750
756
  id: "/teams/$id/members",
751
757
  path: "/teams/$id/members",
752
758
  getParentRoute: () => Route$4
@@ -756,32 +762,32 @@ var TeamsIdContextRoute = Route.update({
756
762
  path: "/teams/$id/context",
757
763
  getParentRoute: () => Route$4
758
764
  });
759
- var TeamsIdActivityRoute = Route$26.update({
765
+ var TeamsIdActivityRoute = Route$27.update({
760
766
  id: "/teams/$id/activity",
761
767
  path: "/teams/$id/activity",
762
768
  getParentRoute: () => Route$4
763
769
  });
764
- var ConfigIntegrationsTelegramRoute = Route$27.update({
770
+ var ConfigIntegrationsTelegramRoute = Route$28.update({
765
771
  id: "/config/integrations/telegram",
766
772
  path: "/config/integrations/telegram",
767
773
  getParentRoute: () => Route$4
768
774
  });
769
- var AgentsIdTriggersRoute = Route$28.update({
775
+ var AgentsIdTriggersRoute = Route$29.update({
770
776
  id: "/agents/$id/triggers",
771
777
  path: "/agents/$id/triggers",
772
778
  getParentRoute: () => Route$4
773
779
  });
774
- var AgentsIdLearningRoute = Route$29.update({
780
+ var AgentsIdLearningRoute = Route$30.update({
775
781
  id: "/agents/$id/learning",
776
782
  path: "/agents/$id/learning",
777
783
  getParentRoute: () => Route$4
778
784
  });
779
- var AgentsIdInboxRoute = Route$30.update({
785
+ var AgentsIdInboxRoute = Route$31.update({
780
786
  id: "/agents/$id/inbox",
781
787
  path: "/agents/$id/inbox",
782
788
  getParentRoute: () => Route$4
783
789
  });
784
- var TemplatesTeamsIdIndexRoute = Route$31.update({
790
+ var TemplatesTeamsIdIndexRoute = Route$32.update({
785
791
  id: "/templates/teams/$id/",
786
792
  path: "/templates/teams/$id/",
787
793
  getParentRoute: () => Route$4
@@ -813,11 +819,12 @@ var rootRouteChildren = {
813
819
  TeamsIdPolicyRoute,
814
820
  TeamsIdResultsRoute,
815
821
  TeamsIdReviewRoute,
822
+ TeamsIdVerificationsRoute,
816
823
  AgentsIdIndexRoute,
817
824
  TeamsIdIndexRoute,
818
825
  TemplatesAgentsIndexRoute,
819
826
  TemplatesTeamsIndexRoute,
820
- TemplatesAgentsIdIndexRoute: Route$32.update({
827
+ TemplatesAgentsIdIndexRoute: Route$33.update({
821
828
  id: "/templates/agents/$id/",
822
829
  path: "/templates/agents/$id/",
823
830
  getParentRoute: () => Route$4
@@ -1,6 +1,6 @@
1
1
  import { a as getCookie, n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient, r as ApiClientError } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
4
  import { t as SIDEBAR_OPEN_GROUPS_COOKIE } from "./Sidebar-DKyk7oIo.js";
5
5
  //#region src/routes/index.tsx?tss-serverfn-split
6
6
  function parseOpenGroupsCookie(raw) {
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/config/services.tsx?tss-serverfn-split
5
5
  var fetchServices_createServerFn_handler = createServerRpc({
6
6
  id: "6afd81bef0ee381d6e3641cd8e269968429c874e2f9d56c8f818cc9d180ee477",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/skills/index.tsx?tss-serverfn-split
5
5
  var fetchSkills_createServerFn_handler = createServerRpc({
6
6
  id: "ae1d30575b229c1e2622fbaf2252800a9a7acc84afdd68cba025ca890b8d52c5",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/templates/teams/index.tsx?tss-serverfn-split
5
5
  var fetchTeams_createServerFn_handler = createServerRpc({
6
6
  id: "1bb12262aaa902fa208aafaa70b69c63da34c1fe523ab0322fe766903fc6b4c1",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/teams/index.tsx?tss-serverfn-split
5
5
  var fetchTeamsData_createServerFn_handler = createServerRpc({
6
6
  id: "1ab05a58944792f34ad279deeaa56f70e9360687856b18327f335b022e8d21a5",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/config/integrations/telegram.tsx?tss-serverfn-split
5
5
  var fetchTelegramConfig_createServerFn_handler = createServerRpc({
6
6
  id: "00a157dd07824e1f126f06646effd1d876f280f6fc64c144d2f6429414a4e58a",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/config/tokens.tsx?tss-serverfn-split
5
5
  var fetchTokens_createServerFn_handler = createServerRpc({
6
6
  id: "46e35c9f1afc79423cb49703b454ef684344db08ec19775efd70a8768c7837f1",
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "../server.js";
2
2
  import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
- import { n as daemonClient, r as ApiClientError } from "./daemon-client-Cgx-YW4l.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/agents/$id/triggers.tsx?tss-serverfn-split
5
5
  var fetchTriggers_createServerFn_handler = createServerRpc({
6
6
  id: "57ebf437fdb3fcfc63b176e796a55f04bdfec0b230059673196e98d413d15c4d",
@@ -0,0 +1,97 @@
1
+ import { n as createServerFn } from "../server.js";
2
+ import { t as createServerRpc } from "./createServerRpc-B7Yr1K8i.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
+ //#region src/lib/verification.ts?tss-serverfn-split
5
+ function failure(error, fallback) {
6
+ if (!(error instanceof ApiClientError)) throw error;
7
+ const body = error.body;
8
+ return {
9
+ code: body.code,
10
+ message: body.error ?? fallback
11
+ };
12
+ }
13
+ var fetchTeamVerifications_createServerFn_handler = createServerRpc({
14
+ id: "2a72cbadf7e2fa943de062817aed454cd746f9ab8b95fce78f94d327756363b1",
15
+ name: "fetchTeamVerifications",
16
+ filename: "src/lib/verification.ts"
17
+ }, (opts) => fetchTeamVerifications.__executeServer(opts));
18
+ var fetchTeamVerifications = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchTeamVerifications_createServerFn_handler, async ({ data }) => {
19
+ const client = daemonClient();
20
+ try {
21
+ const [listed, agents] = await Promise.all([client.get(`/api/teams/${encodeURIComponent(data.id)}/verifications`), client.get("/api/agents")]);
22
+ return {
23
+ requests: listed.requests,
24
+ members: agents.filter((agent) => agent.teamId === data.id).map((agent) => ({
25
+ id: agent.id,
26
+ name: agent.name
27
+ })),
28
+ unavailable: null
29
+ };
30
+ } catch (error) {
31
+ return {
32
+ requests: [],
33
+ members: [],
34
+ unavailable: failure(error, "Verifications unavailable")
35
+ };
36
+ }
37
+ });
38
+ var fetchVerification_createServerFn_handler = createServerRpc({
39
+ id: "9160671c06186ff835338f053559f4fad74360808e5cdb399e45c3a198f57f59",
40
+ name: "fetchVerification",
41
+ filename: "src/lib/verification.ts"
42
+ }, (opts) => fetchVerification.__executeServer(opts));
43
+ var fetchVerification = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchVerification_createServerFn_handler, async ({ data }) => {
44
+ try {
45
+ return { report: (await daemonClient().get(`/api/teams/${encodeURIComponent(data.id)}/verifications/${encodeURIComponent(data.requestId)}`)).request };
46
+ } catch (error) {
47
+ const unavailable = failure(error, "Verification request could not be loaded");
48
+ if (unavailable) return unavailable;
49
+ throw error;
50
+ }
51
+ });
52
+ var createVerification_createServerFn_handler = createServerRpc({
53
+ id: "74977c4474f1c4e67bbd844d3c182cb5ceeda6e70b71cda2ad0ba046bb53e67a",
54
+ name: "createVerification",
55
+ filename: "src/lib/verification.ts"
56
+ }, (opts) => createVerification.__executeServer(opts));
57
+ var createVerification = createServerFn({ method: "POST" }).validator((input) => input).handler(createVerification_createServerFn_handler, async ({ data }) => {
58
+ try {
59
+ await daemonClient().post(`/api/teams/${encodeURIComponent(data.id)}/verifications`, {
60
+ recipientAgentId: data.recipientAgentId,
61
+ snapshotId: data.snapshotId,
62
+ checks: data.checks,
63
+ summary: data.summary ?? null
64
+ });
65
+ return { ok: true };
66
+ } catch (error) {
67
+ if (error instanceof ApiClientError && error.status === 409) {
68
+ const body = error.body;
69
+ if (body.blocked) return {
70
+ ok: false,
71
+ blocker: body.blocked
72
+ };
73
+ }
74
+ const unavailable = failure(error, "Verification could not be requested");
75
+ if (unavailable) return unavailable;
76
+ throw error;
77
+ }
78
+ });
79
+ var cancelVerification_createServerFn_handler = createServerRpc({
80
+ id: "8f81bc274b3fa565cdb912454629cacae4686a46b7e672331432b113484722c3",
81
+ name: "cancelVerification",
82
+ filename: "src/lib/verification.ts"
83
+ }, (opts) => cancelVerification.__executeServer(opts));
84
+ var cancelVerification = createServerFn({ method: "POST" }).validator((input) => input).handler(cancelVerification_createServerFn_handler, async ({ data }) => {
85
+ try {
86
+ await daemonClient().post(`/api/teams/${encodeURIComponent(data.id)}/verifications/${encodeURIComponent(data.requestId)}/cancel`, {});
87
+ return { ok: true };
88
+ } catch (error) {
89
+ if (error instanceof ApiClientError) return {
90
+ ok: false,
91
+ message: error.body?.error ?? `cancel failed (${error.status})`
92
+ };
93
+ throw error;
94
+ }
95
+ });
96
+ //#endregion
97
+ export { cancelVerification_createServerFn_handler, createVerification_createServerFn_handler, fetchTeamVerifications_createServerFn_handler, fetchVerification_createServerFn_handler };
@@ -0,0 +1,268 @@
1
+ import { a as fetchVerification, i as fetchTeamVerifications, n as cancelVerification, r as createVerification, t as Route } from "./verifications-CUq_6ZqL.js";
2
+ import { r as PageShell } from "./Page-Bz-ydB8j.js";
3
+ import { t as Button } from "./Button-Dsnw22OF.js";
4
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
5
+ import { useState } from "react";
6
+ import { Link } from "@tanstack/react-router";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/routes/teams/$id/verifications.tsx?tsr-split=component
9
+ /** Three-valued and never a badge: "changed" proves the source moved, not that it was relevant. */
10
+ function applicabilityLabel(comparison) {
11
+ if (comparison === "identical") return "unchanged since capture";
12
+ if (comparison === "changed") return "changed since capture — re-verify";
13
+ return "not checked";
14
+ }
15
+ function outcomeLabel(state, exitCode) {
16
+ if (state === "not_executed") return "not run";
17
+ if (state === "succeeded") return `ok${exitCode === null ? "" : ` (exit ${exitCode})`}`;
18
+ if (state === "failed") return `failed${exitCode === null ? "" : ` (exit ${exitCode})`}`;
19
+ return state.replace(/_/g, " ");
20
+ }
21
+ function VerificationsPage() {
22
+ const loaded = Route.useLoaderData();
23
+ const teamId = Route.useParams().id;
24
+ const [requests, setRequests] = useState(loaded.requests);
25
+ const [unavailable, setUnavailable] = useState(loaded.unavailable);
26
+ const [agentId, setAgentId] = useState(() => loaded.members[0]?.id ?? "");
27
+ const [snapshotId, setSnapshotId] = useState("");
28
+ const [checks, setChecks] = useState("pnpm test :: unit suite");
29
+ const [summary, setSummary] = useState("");
30
+ const [status, setStatus] = useState(null);
31
+ const [busy, setBusy] = useState(false);
32
+ const [applicability, setApplicability] = useState({});
33
+ async function reload() {
34
+ const next = await fetchTeamVerifications({ data: { id: teamId } });
35
+ if (next) {
36
+ setRequests(next.requests);
37
+ setUnavailable(next.unavailable);
38
+ }
39
+ }
40
+ async function request() {
41
+ setBusy(true);
42
+ setStatus({
43
+ kind: "info",
44
+ message: "Capturing the request…"
45
+ });
46
+ try {
47
+ const result = await createVerification({ data: {
48
+ id: teamId,
49
+ recipientAgentId: agentId,
50
+ snapshotId,
51
+ checks: checks.split("\n").map((line) => line.trim()).filter(Boolean).map((line) => {
52
+ const [command, purpose, cwd, seconds] = line.split("::").map((part) => part?.trim());
53
+ return {
54
+ command: command ?? "",
55
+ purpose: purpose ?? "",
56
+ cwd: cwd || ".",
57
+ timeoutMs: Math.round((seconds ? Number(seconds) : 120) * 1e3)
58
+ };
59
+ }),
60
+ ...summary ? { summary } : {}
61
+ } });
62
+ if ("blocker" in result && result.blocker) {
63
+ setStatus({
64
+ kind: "error",
65
+ message: `Blocked: ${result.blocker.detail}`
66
+ });
67
+ return;
68
+ }
69
+ if ("ok" in result && result.ok) {
70
+ setStatus({
71
+ kind: "info",
72
+ message: "Captured. The specialist is admitted by the scheduler."
73
+ });
74
+ setSnapshotId("");
75
+ await reload();
76
+ return;
77
+ }
78
+ setStatus({
79
+ kind: "error",
80
+ message: "message" in result ? result.message ?? "Request failed" : "Request failed"
81
+ });
82
+ } finally {
83
+ setBusy(false);
84
+ }
85
+ }
86
+ async function checkApplicability(requestId) {
87
+ setBusy(true);
88
+ try {
89
+ const result = await fetchVerification({ data: {
90
+ id: teamId,
91
+ requestId
92
+ } });
93
+ setApplicability((current) => ({
94
+ ...current,
95
+ [requestId]: "report" in result ? applicabilityLabel(result.report.applicability.comparison) : "unavailable"
96
+ }));
97
+ } finally {
98
+ setBusy(false);
99
+ }
100
+ }
101
+ async function cancel(requestId) {
102
+ setBusy(true);
103
+ try {
104
+ const result = await cancelVerification({ data: {
105
+ id: teamId,
106
+ requestId
107
+ } });
108
+ setStatus(result.ok ? {
109
+ kind: "info",
110
+ message: "Cancellation requested."
111
+ } : {
112
+ kind: "error",
113
+ message: result.message ?? "Cancel failed"
114
+ });
115
+ await reload();
116
+ } finally {
117
+ setBusy(false);
118
+ }
119
+ }
120
+ return /* @__PURE__ */ jsxs(PageShell, { children: [
121
+ /* @__PURE__ */ jsx(TeamTabs, { teamId }),
122
+ /* @__PURE__ */ jsx("h2", { children: "Specialist verification" }),
123
+ unavailable ? /* @__PURE__ */ jsx("p", {
124
+ className: "muted",
125
+ children: unavailable.message
126
+ }) : null,
127
+ status ? /* @__PURE__ */ jsx("p", {
128
+ className: status.kind === "error" ? "error" : "muted",
129
+ role: "status",
130
+ children: status.message
131
+ }) : null,
132
+ /* @__PURE__ */ jsxs("section", {
133
+ "aria-label": "Request verification",
134
+ className: "card",
135
+ children: [
136
+ /* @__PURE__ */ jsx("h3", { children: "Request verification of a captured change" }),
137
+ /* @__PURE__ */ jsxs("p", {
138
+ className: "muted",
139
+ children: [
140
+ "Capture a source snapshot on the",
141
+ " ",
142
+ /* @__PURE__ */ jsx(Link, {
143
+ to: "/teams/$id/review",
144
+ params: { id: teamId },
145
+ children: "Review"
146
+ }),
147
+ " ",
148
+ "page first, then name it here with the checks you want run. Nothing runs until the daemon admits the request."
149
+ ]
150
+ }),
151
+ /* @__PURE__ */ jsxs("label", { children: ["Specialist", /* @__PURE__ */ jsx("select", {
152
+ value: agentId,
153
+ onChange: (event) => setAgentId(event.target.value),
154
+ children: loaded.members.map((member) => /* @__PURE__ */ jsx("option", {
155
+ value: member.id,
156
+ children: member.name
157
+ }, member.id))
158
+ })] }),
159
+ /* @__PURE__ */ jsxs("label", { children: ["Snapshot id", /* @__PURE__ */ jsx("input", {
160
+ value: snapshotId,
161
+ onChange: (event) => setSnapshotId(event.target.value),
162
+ placeholder: "captured snapshot id"
163
+ })] }),
164
+ /* @__PURE__ */ jsxs("label", { children: ["Checks (one per line: command :: purpose [:: cwd] [:: seconds])", /* @__PURE__ */ jsx("textarea", {
165
+ value: checks,
166
+ onChange: (event) => setChecks(event.target.value),
167
+ rows: 4
168
+ })] }),
169
+ /* @__PURE__ */ jsxs("label", { children: ["Acceptance summary (optional)", /* @__PURE__ */ jsx("input", {
170
+ value: summary,
171
+ onChange: (event) => setSummary(event.target.value)
172
+ })] }),
173
+ /* @__PURE__ */ jsx(Button, {
174
+ variant: "primary",
175
+ disabled: busy || !agentId || !snapshotId || !checks.trim(),
176
+ onClick: request,
177
+ children: "Request verification"
178
+ })
179
+ ]
180
+ }),
181
+ /* @__PURE__ */ jsxs("section", {
182
+ "aria-label": "Verification requests",
183
+ children: [/* @__PURE__ */ jsx("h3", { children: "Requests" }), requests.length === 0 ? /* @__PURE__ */ jsx("p", {
184
+ className: "muted",
185
+ children: "No verification requests yet."
186
+ }) : /* @__PURE__ */ jsx("ul", {
187
+ className: "list",
188
+ children: requests.map((report) => {
189
+ const attempt = [...report.attempts].sort((a, b) => b.attemptNumber - a.attemptNumber)[0];
190
+ const outcomes = new Map((attempt?.outcomes ?? []).map((outcome) => [outcome.ordinal, outcome]));
191
+ const cancellable = report.request.state === "pending" || report.request.state === "awaiting_approval" || report.request.state === "running";
192
+ return /* @__PURE__ */ jsxs("li", {
193
+ className: "card",
194
+ children: [
195
+ /* @__PURE__ */ jsxs("div", { children: [
196
+ /* @__PURE__ */ jsx("strong", { children: report.request.state }),
197
+ " ",
198
+ /* @__PURE__ */ jsxs("span", {
199
+ className: "muted",
200
+ children: [
201
+ report.request.recipientAgentId,
202
+ " · ",
203
+ report.request.id
204
+ ]
205
+ })
206
+ ] }),
207
+ /* @__PURE__ */ jsxs("p", {
208
+ className: "muted",
209
+ children: [
210
+ "change ",
211
+ report.request.snapshot.id.slice(0, 12),
212
+ " ·",
213
+ " ",
214
+ report.request.environment.image,
215
+ " (shell ",
216
+ report.request.environment.sandbox,
217
+ ")"
218
+ ]
219
+ }),
220
+ /* @__PURE__ */ jsx("ul", { children: report.checks.map((check) => {
221
+ const outcome = outcomes.get(check.ordinal);
222
+ return /* @__PURE__ */ jsxs("li", { children: [
223
+ "[",
224
+ check.ordinal,
225
+ "] ",
226
+ outcomeLabel(outcome?.state ?? "not_executed", outcome?.exitCode ?? null),
227
+ " ",
228
+ "— ",
229
+ /* @__PURE__ */ jsx("code", { children: check.command }),
230
+ outcome?.commandId ? /* @__PURE__ */ jsxs(Fragment, { children: [" ", /* @__PURE__ */ jsxs("span", {
231
+ className: "muted",
232
+ children: ["receipt ", outcome.commandId.slice(0, 8)]
233
+ })] }) : outcome?.receiptUnavailable ? /* @__PURE__ */ jsxs(Fragment, { children: [" ", /* @__PURE__ */ jsx("span", {
234
+ className: "muted",
235
+ children: "receipt no longer available"
236
+ })] }) : null
237
+ ] }, check.ordinal);
238
+ }) }),
239
+ attempt?.error ? /* @__PURE__ */ jsxs("p", {
240
+ className: "muted",
241
+ children: ["note: ", attempt.error]
242
+ }) : null,
243
+ /* @__PURE__ */ jsxs("p", {
244
+ className: "muted",
245
+ children: ["applicability: ", applicability[report.request.id] ?? "not checked"]
246
+ }),
247
+ /* @__PURE__ */ jsx(Button, {
248
+ variant: "ghost",
249
+ disabled: busy,
250
+ onClick: () => checkApplicability(report.request.id),
251
+ children: "Check applicability"
252
+ }),
253
+ " ",
254
+ cancellable ? /* @__PURE__ */ jsx(Button, {
255
+ variant: "danger",
256
+ disabled: busy,
257
+ onClick: () => cancel(report.request.id),
258
+ children: "Cancel"
259
+ }) : null
260
+ ]
261
+ }, report.request.id);
262
+ })
263
+ })]
264
+ })
265
+ ] });
266
+ }
267
+ //#endregion
268
+ export { VerificationsPage as component };