bazilion 0.16.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 (128) hide show
  1. package/dist/cli.js +672 -87
  2. package/dist/cli.js.map +1 -1
  3. package/dist/daemon.js +3759 -432
  4. package/dist/daemon.js.map +1 -1
  5. package/dist/migrations/0001_init.sql +169 -0
  6. package/dist/web/client/assets/ChatPane-CAYS_fIQ.js +76 -0
  7. package/dist/web/client/assets/ConfirmDialog-BzIiABOP.js +1 -0
  8. package/dist/web/client/assets/{FieldRow-DJ2Gx4Du.js → FieldRow-W_54rw5c.js} +1 -1
  9. package/dist/web/client/assets/ProductionTeamPolicyEditor-DNXVX8Lz.js +7 -0
  10. package/dist/web/client/assets/ProfileCommunicationEditor-DN0fOzqn.js +1 -0
  11. package/dist/web/client/assets/{ResultSourceConversation-CtzJ8QA-.js → ResultSourceConversation-DoU4tOWc.js} +1 -1
  12. package/dist/web/client/assets/TeamTabs-BmTZRI4T.js +1 -0
  13. package/dist/web/client/assets/TemplatesTabs-Bs_OXKwx.js +1 -0
  14. package/dist/web/client/assets/{UnsavedChangesGuard-BCsLw-mU.js → UnsavedChangesGuard-CPRtFReU.js} +1 -1
  15. package/dist/web/client/assets/{_id-DxopIW-y.js → _id-CxAB4TDr.js} +1 -1
  16. package/dist/web/client/assets/_id-DL4tJFQB.js +1 -0
  17. package/dist/web/client/assets/{_id-BEDmIXVf.js → _id-DR9eFC17.js} +1 -1
  18. package/dist/web/client/assets/{_id-BFM_tn_s.js → _id-Dbmei5tg.js} +1 -1
  19. package/dist/web/client/assets/{_id-B5Ov7cdO.js → _id-ybF-pqmr.js} +1 -1
  20. package/dist/web/client/assets/activity-oUyy77jD.js +1 -0
  21. package/dist/web/client/assets/{agents-CMPOFcs-.js → agents-D_TrEqAg.js} +1 -1
  22. package/dist/web/client/assets/{agents-O4soKZND.js → agents-DkjJp7JP.js} +1 -1
  23. package/dist/web/client/assets/{approvals-CwDu_lrA.js → approvals-DhOerWdt.js} +1 -1
  24. package/dist/web/client/assets/{attention-BY8MMuM_.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-BJ2ZzHPR.js +3 -0
  27. package/dist/web/client/assets/createServerFn-Dzfjt7mA.js +3 -0
  28. package/dist/web/client/assets/git-review-presentation-CzHQulDk.js +1 -0
  29. package/dist/web/client/assets/{inbox-CWXql0K3.js → inbox-BUElnGep.js} +1 -1
  30. package/dist/web/client/assets/index-Bi-HxcPG.js +50 -0
  31. package/dist/web/client/assets/{learning-DAm4dyyc.js → learning-BiTHNwB3.js} +1 -1
  32. package/dist/web/client/assets/login-BmcZvAH2.js +1 -0
  33. package/dist/web/client/assets/{mcp-loLB0wuh.js → mcp-Cwk9V82W.js} +1 -1
  34. package/dist/web/client/assets/{members-BJ0ikkTl.js → members-CHDNabFh.js} +1 -1
  35. package/dist/web/client/assets/{memory-Drn9Gv53.js → memory-Cx_Fpd4e.js} +1 -1
  36. package/dist/web/client/assets/policy-C0nMdwcG.js +1 -0
  37. package/dist/web/client/assets/{results-9exU6f7m.js → results-Bz3jASs-.js} +1 -1
  38. package/dist/web/client/assets/review-AK9WGmpv.js +1 -0
  39. package/dist/web/client/assets/routes-DsMY_6oy.js +1 -0
  40. package/dist/web/client/assets/{services-BLso1BhA.js → services-DItA6fJ7.js} +1 -1
  41. package/dist/web/client/assets/{skills-BodqX3OI.js → skills-DbNV2vgL.js} +1 -1
  42. package/dist/web/client/assets/{styles-d1yjBpud.css → styles-C6br2xxl.css} +1 -1
  43. package/dist/web/client/assets/{teams-ByQedXZi.js → teams-D83scDxw.js} +1 -1
  44. package/dist/web/client/assets/{teams-SYsF1bOR.js → teams-DAny1ypN.js} +1 -1
  45. package/dist/web/client/assets/{telegram-DC9PLFbB.js → telegram-BOmf9vUh.js} +1 -1
  46. package/dist/web/client/assets/{tokens-DGy8Ijpo.js → tokens-DBGH6Bw5.js} +1 -1
  47. package/dist/web/client/assets/{triggers-BXpVmHDG.js → triggers-D1_pseI3.js} +1 -1
  48. package/dist/web/client/assets/verifications-CBTo-FyV.js +2 -0
  49. package/dist/web/client/assets/welcome-DAfPOm15.js +1 -0
  50. package/dist/web/client/assets/x-CWY-gUaM.js +1 -0
  51. package/dist/web/server/assets/{ChatPane-CS5oI7ef.js → ChatPane-DybH39WK.js} +301 -14
  52. package/dist/web/server/assets/{ResultSourceConversation-BpVWBRYq.js → ResultSourceConversation-BmXTcEOA.js} +1 -1
  53. package/dist/web/server/assets/{TeamTabs-TCKjCvMA.js → TeamTabs-Dg4v6x0-.js} +8 -0
  54. package/dist/web/server/assets/{_id-DtIYuJJX.js → _id--onriuvj.js} +1 -1
  55. package/dist/web/server/assets/{_id-DOnInzLb.js → _id--zoh1vv7.js} +1 -1
  56. package/dist/web/server/assets/{_id-CeyHEsCZ.js → _id-6p-mDmI8.js} +1 -1
  57. package/dist/web/server/assets/{_id-5pgKoid8.js → _id-BN1BPEDI.js} +1 -1
  58. package/dist/web/server/assets/{_id-DFHB9JFQ.js → _id-BYKpT2Tu.js} +1 -1
  59. package/dist/web/server/assets/{_id-B_-CDHOi2.js → _id-BqWTB8Wl.js} +1 -1
  60. package/dist/web/server/assets/{_id-BnqodC1c2.js → _id-C_2er0_G.js} +3 -3
  61. package/dist/web/server/assets/{_id-BG2nkGxa.js → _id-DptBl3X8.js} +1 -1
  62. package/dist/web/server/assets/{_id-DwZXhLlL.js → _id-EAjRXNbD.js} +2 -2
  63. package/dist/web/server/assets/{_id-DrB9uR1b.js → _id-dUnXL-My2.js} +1 -1
  64. package/dist/web/server/assets/{_tanstack-start-manifest_v-D7gKv6m6.js → _tanstack-start-manifest_v-B3M-dfRO.js} +108 -84
  65. package/dist/web/server/assets/{activity-0VUkStOu.js → activity-C5jpoEQI.js} +1 -1
  66. package/dist/web/server/assets/{activity-C88qrNqv.js → activity-Cu7zKPGD.js} +1 -1
  67. package/dist/web/server/assets/{activity-5fWKPDxj.js → activity-Dn50vkQP.js} +2 -2
  68. package/dist/web/server/assets/{agents-CSXLaM2W.js → agents-RE6aYOb-.js} +1 -1
  69. package/dist/web/server/assets/{agents-C86K6HvS.js → agents-nAOx_H7s.js} +1 -1
  70. package/dist/web/server/assets/{approvals-C3MysI6l.js → approvals-DhHxIDrL.js} +1 -1
  71. package/dist/web/server/assets/{attention-DLeLCKah.js → attention-CBWzWRni.js} +1 -1
  72. package/dist/web/server/assets/{auth-CDZp9aEk.js → auth-tB3i6cFd.js} +1 -1
  73. package/dist/web/server/assets/{config-BVTHvljR.js → config-D1k_tTAw.js} +1 -1
  74. package/dist/web/server/assets/{daemon-client-xWyYKAcx.js → daemon-client-C7qjQ2iO.js} +45 -0
  75. package/dist/web/server/assets/git-review-BB3M9nYg.js +26 -0
  76. package/dist/web/server/assets/git-review-Bf5ABFJg.js +179 -0
  77. package/dist/web/server/assets/git-review-presentation-TJiHJhen.js +81 -0
  78. package/dist/web/server/assets/{inbox-PQTrjtOw.js → inbox-Dw4pTevh.js} +1 -1
  79. package/dist/web/server/assets/{learning-K0cmDsZR.js → learning-CF8ZzFVD.js} +1 -1
  80. package/dist/web/server/assets/{mcp-Rtraochg.js → mcp-D5dmBT82.js} +1 -1
  81. package/dist/web/server/assets/{members-CD3GiTfF.js → members-Bd0OtiTr.js} +1 -1
  82. package/dist/web/server/assets/{members-grAKFWgv.js → members-CvwEN9pm.js} +1 -1
  83. package/dist/web/server/assets/{members-cc5SeEaW.js → members-xSXoYUOd.js} +2 -2
  84. package/dist/web/server/assets/{memory-egFpBD1g.js → memory-CcPK7um7.js} +1 -1
  85. package/dist/web/server/assets/{memory-C5i_GxlY.js → memory-UP6AsRkO.js} +2 -2
  86. package/dist/web/server/assets/{memory-CVqnyUaM.js → memory-lo2vHRNw.js} +1 -1
  87. package/dist/web/server/assets/{policy-bLKwvnja.js → policy-B62WXIFo.js} +1 -1
  88. package/dist/web/server/assets/{policy-Dgjb0_gK.js → policy-Bze9Krhg.js} +2 -2
  89. package/dist/web/server/assets/{policy-ooSBgiDS.js → policy-Dh6wd2wN.js} +1 -1
  90. package/dist/web/server/assets/{results-N-kP4iFT.js → results-BFqs2iOu.js} +1 -1
  91. package/dist/web/server/assets/{results-DXdYtHaq.js → results-BWnu3gXP.js} +1 -1
  92. package/dist/web/server/assets/{results-CfNsFncJ.js → results-CzZk50Fu.js} +3 -3
  93. package/dist/web/server/assets/review-DUe3vHPU.js +393 -0
  94. package/dist/web/server/assets/review-c_-cFi7H.js +14 -0
  95. package/dist/web/server/assets/{router-B6g_s7W3.js → router-Deq94UJQ.js} +41 -27
  96. package/dist/web/server/assets/{routes-pcRy_Sf8.js → routes-B6x3pEW8.js} +1 -1
  97. package/dist/web/server/assets/{routes-BqSaZvlu.js → routes-CVKkvFVv.js} +1 -1
  98. package/dist/web/server/assets/{routes-Dsh8F_7i.js → routes-DsUzzxk4.js} +2 -2
  99. package/dist/web/server/assets/{services-DlZA8fRL.js → services-CEr61xb5.js} +1 -1
  100. package/dist/web/server/assets/{skills-i2duvgW-.js → skills-BImC3LTO.js} +1 -1
  101. package/dist/web/server/assets/{teams-6RYIj1Xm.js → teams-8zEIo08E.js} +1 -1
  102. package/dist/web/server/assets/{teams-B1AI3NfN.js → teams-D-yaAWLV.js} +1 -1
  103. package/dist/web/server/assets/{telegram-C4q0YTVn.js → telegram-CGl_LFtJ.js} +1 -1
  104. package/dist/web/server/assets/{tokens-RFquA2Bx.js → tokens-cB-uf7qm.js} +1 -1
  105. package/dist/web/server/assets/{triggers-DVD-iE-N.js → triggers-CtSj79L0.js} +1 -1
  106. package/dist/web/server/assets/verification-B5QjcpIo.js +97 -0
  107. package/dist/web/server/assets/verifications-BfQsfwSE.js +268 -0
  108. package/dist/web/server/assets/verifications-CUq_6ZqL.js +26 -0
  109. package/dist/web/server/server.js +72 -28
  110. package/dist/worker.js +470 -79
  111. package/dist/worker.js.map +1 -1
  112. package/package.json +3 -3
  113. package/dist/web/client/assets/ChatPane-CQZzxOir.js +0 -76
  114. package/dist/web/client/assets/ConfirmDialog-MicTTwdy.js +0 -1
  115. package/dist/web/client/assets/ProductionTeamPolicyEditor-DqUnN_ce.js +0 -7
  116. package/dist/web/client/assets/ProfileCommunicationEditor-DArXub0b.js +0 -1
  117. package/dist/web/client/assets/TeamTabs-DbIk5vvT.js +0 -1
  118. package/dist/web/client/assets/TemplatesTabs-CatJIjGi.js +0 -1
  119. package/dist/web/client/assets/_id-CrnEVcw8.js +0 -1
  120. package/dist/web/client/assets/activity-CrG8Bg60.js +0 -1
  121. package/dist/web/client/assets/chevron-right-Cf6vKeLq.js +0 -1
  122. package/dist/web/client/assets/config-Cn4iBJFz.js +0 -3
  123. package/dist/web/client/assets/index-Bq2zrG2_.js +0 -52
  124. package/dist/web/client/assets/login-BsABI8Ux.js +0 -1
  125. package/dist/web/client/assets/policy-pQadZyk0.js +0 -1
  126. package/dist/web/client/assets/routes-jw1PuqiR.js +0 -1
  127. package/dist/web/client/assets/welcome-BKsnsCxJ.js +0 -1
  128. package/dist/web/client/assets/x-BK4xNCzS.js +0 -1
@@ -0,0 +1,179 @@
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/git-review.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 fetchTeamReview_createServerFn_handler = createServerRpc({
14
+ id: "bb4ccf9a1b372d6a1a53bd79690c50e3e1af2e641a96eead1f906da580df8656",
15
+ name: "fetchTeamReview",
16
+ filename: "src/lib/git-review.ts"
17
+ }, (opts) => fetchTeamReview.__executeServer(opts));
18
+ var fetchTeamReview = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchTeamReview_createServerFn_handler, async ({ data }) => {
19
+ const client = daemonClient();
20
+ let team;
21
+ try {
22
+ team = await client.get(`/api/teams/${encodeURIComponent(data.id)}`);
23
+ } catch (error) {
24
+ if (error instanceof ApiClientError && error.status === 404) return null;
25
+ throw error;
26
+ }
27
+ const reviewPath = `/api/teams/${encodeURIComponent(team.id)}/review${data.base ? `?base=${encodeURIComponent(data.base)}` : ""}`;
28
+ let review = null;
29
+ let unavailable = null;
30
+ try {
31
+ review = await client.get(reviewPath);
32
+ } catch (error) {
33
+ unavailable = failure(error, "This Team cannot be reviewed right now.");
34
+ }
35
+ let snapshots = [];
36
+ try {
37
+ snapshots = (await client.get(`/api/teams/${encodeURIComponent(team.id)}/review/snapshots`)).snapshots;
38
+ } catch {
39
+ snapshots = [];
40
+ }
41
+ let members = [];
42
+ try {
43
+ members = (await client.get("/api/agents?includeArchived=true")).filter((agent) => agent.teamId === team.id).map((agent) => ({
44
+ id: agent.id,
45
+ name: agent.name
46
+ }));
47
+ } catch {
48
+ members = [];
49
+ }
50
+ return {
51
+ team,
52
+ review,
53
+ unavailable,
54
+ snapshots,
55
+ members
56
+ };
57
+ });
58
+ var prepareReviewFeedback_createServerFn_handler = createServerRpc({
59
+ id: "02c73d4452ed9650535784fb09231e39498bb4cb53c19ff2285bc964ee104fc4",
60
+ name: "prepareReviewFeedback",
61
+ filename: "src/lib/git-review.ts"
62
+ }, (opts) => prepareReviewFeedback.__executeServer(opts));
63
+ var prepareReviewFeedback = createServerFn({ method: "POST" }).validator((input) => input).handler(prepareReviewFeedback_createServerFn_handler, async ({ data }) => {
64
+ const { id, ...body } = data;
65
+ try {
66
+ const response = await daemonClient().post(`/api/teams/${encodeURIComponent(id)}/review/feedback`, body);
67
+ return {
68
+ reference: response.reference,
69
+ message: response.message,
70
+ applicability: response.feedback.applicability,
71
+ applicabilityReason: response.feedback.applicabilityReason
72
+ };
73
+ } catch (error) {
74
+ return failure(error, "Feedback could not be prepared.") ?? {
75
+ code: void 0,
76
+ message: "Feedback could not be prepared."
77
+ };
78
+ }
79
+ });
80
+ var sendReviewFeedback_createServerFn_handler = createServerRpc({
81
+ id: "9a8661a3c685ee418f1fcc86715772f45831c758764baa8a0a5a7e071797b17e",
82
+ name: "sendReviewFeedback",
83
+ filename: "src/lib/git-review.ts"
84
+ }, (opts) => sendReviewFeedback.__executeServer(opts));
85
+ var sendReviewFeedback = createServerFn({ method: "POST" }).validator((input) => input).handler(sendReviewFeedback_createServerFn_handler, async ({ data }) => {
86
+ const client = daemonClient();
87
+ try {
88
+ const head = await client.get(`/api/agents/${encodeURIComponent(data.agentId)}/sessions/head`);
89
+ await client.post(`/api/agents/${encodeURIComponent(data.agentId)}/queue`, {
90
+ requestId: crypto.randomUUID(),
91
+ message: data.message,
92
+ expectedSelection: head.selection
93
+ });
94
+ return { queued: true };
95
+ } catch (error) {
96
+ return failure(error, "The feedback could not be queued.") ?? {
97
+ code: void 0,
98
+ message: "The feedback could not be queued."
99
+ };
100
+ }
101
+ });
102
+ var fetchFileDiff_createServerFn_handler = createServerRpc({
103
+ id: "6e1e5dbdf3d8a469dbabab94d492969e688abf38413493d78eea220588e1c6c1",
104
+ name: "fetchFileDiff",
105
+ filename: "src/lib/git-review.ts"
106
+ }, (opts) => fetchFileDiff.__executeServer(opts));
107
+ var fetchFileDiff = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchFileDiff_createServerFn_handler, async ({ data }) => {
108
+ const client = daemonClient();
109
+ const params = new URLSearchParams({
110
+ patches: "1",
111
+ path: data.path
112
+ });
113
+ if (data.base) params.set("base", data.base);
114
+ try {
115
+ const change = (await client.get(`/api/teams/${encodeURIComponent(data.id)}/review?${params}`)).changes.changes.find((entry) => entry.path === data.path);
116
+ if (!change) return null;
117
+ return {
118
+ path: change.path,
119
+ patch: change.patch,
120
+ truncated: change.patchTruncated,
121
+ omitted: change.contentOmitted
122
+ };
123
+ } catch (error) {
124
+ if (error instanceof ApiClientError) return null;
125
+ throw error;
126
+ }
127
+ });
128
+ var fetchSnapshotApplicability_createServerFn_handler = createServerRpc({
129
+ id: "abd437df3a2fa92f958ae178941f5c068556ee48f7236d50b56e400013023cf9",
130
+ name: "fetchSnapshotApplicability",
131
+ filename: "src/lib/git-review.ts"
132
+ }, (opts) => fetchSnapshotApplicability.__executeServer(opts));
133
+ var fetchSnapshotApplicability = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchSnapshotApplicability_createServerFn_handler, async ({ data }) => {
134
+ try {
135
+ const response = await daemonClient().get(`/api/teams/${encodeURIComponent(data.teamId)}/review/snapshots/${encodeURIComponent(data.snapshotId)}/applicability`);
136
+ return {
137
+ status: "ok",
138
+ comparison: response.comparison,
139
+ reason: response.reason
140
+ };
141
+ } catch (error) {
142
+ const unavailable = failure(error, "Applicability could not be established.");
143
+ return {
144
+ status: "unavailable",
145
+ code: unavailable?.code,
146
+ message: unavailable?.message ?? "Applicability could not be established."
147
+ };
148
+ }
149
+ });
150
+ var captureTeamSnapshot_createServerFn_handler = createServerRpc({
151
+ id: "735ff1d3cd2b2c166114532550a784f626afc1b26f9dea3aea17796bc9e08124",
152
+ name: "captureTeamSnapshot",
153
+ filename: "src/lib/git-review.ts"
154
+ }, (opts) => captureTeamSnapshot.__executeServer(opts));
155
+ var captureTeamSnapshot = createServerFn({ method: "POST" }).validator((input) => input).handler(captureTeamSnapshot_createServerFn_handler, async ({ data }) => {
156
+ try {
157
+ return { reference: (await daemonClient().post(`/api/teams/${encodeURIComponent(data.id)}/review/snapshots`, {})).reference };
158
+ } catch (error) {
159
+ return failure(error, "The snapshot could not be captured.") ?? {
160
+ code: void 0,
161
+ message: "The snapshot could not be captured."
162
+ };
163
+ }
164
+ });
165
+ var fetchTeamSnapshot_createServerFn_handler = createServerRpc({
166
+ id: "aafdc541f3ce0218b08e13928281a9422b3917d8bcedc687e73a9fec2984124c",
167
+ name: "fetchTeamSnapshot",
168
+ filename: "src/lib/git-review.ts"
169
+ }, (opts) => fetchTeamSnapshot.__executeServer(opts));
170
+ var fetchTeamSnapshot = createServerFn({ method: "POST" }).validator((input) => input).handler(fetchTeamSnapshot_createServerFn_handler, async ({ data }) => {
171
+ try {
172
+ return (await daemonClient().get(`/api/teams/${encodeURIComponent(data.id)}/review/snapshots/${encodeURIComponent(data.snapshotId)}`)).snapshot;
173
+ } catch (error) {
174
+ if (error instanceof ApiClientError) return null;
175
+ throw error;
176
+ }
177
+ });
178
+ //#endregion
179
+ export { captureTeamSnapshot_createServerFn_handler, fetchFileDiff_createServerFn_handler, fetchSnapshotApplicability_createServerFn_handler, fetchTeamReview_createServerFn_handler, fetchTeamSnapshot_createServerFn_handler, prepareReviewFeedback_createServerFn_handler, sendReviewFeedback_createServerFn_handler };
@@ -0,0 +1,81 @@
1
+ //#region src/lib/git-review-presentation.ts
2
+ /** Readable label for a change status. */
3
+ function changeStatusLabel(status) {
4
+ switch (status) {
5
+ case "added": return "added";
6
+ case "modified": return "modified";
7
+ case "deleted": return "deleted";
8
+ case "renamed": return "renamed";
9
+ case "copied": return "copied";
10
+ case "type_changed": return "type changed";
11
+ case "unmerged": return "unmerged";
12
+ case "untracked": return "untracked";
13
+ default: return "changed";
14
+ }
15
+ }
16
+ /**
17
+ * One-line summary of a change.
18
+ *
19
+ * A withheld path says what was withheld instead of showing a bare or misleading zero, and a binary
20
+ * file is never described with line counts it does not have.
21
+ */
22
+ function changeSummary(change) {
23
+ const label = changeStatusLabel(change.status);
24
+ if (change.excludedReason === "credential_shaped") return `${label} · content withheld (credential-shaped)`;
25
+ if (change.excludedReason === "bazilion_state") return `${label} · content withheld (Bazilion state)`;
26
+ if (change.contentOmitted === "untracked_not_selected") return `${label} · content not selected`;
27
+ if (change.binary) return `${label} · binary`;
28
+ if (change.addedLines === null || change.deletedLines === null) return label;
29
+ return `${label} · +${change.addedLines} −${change.deletedLines}`;
30
+ }
31
+ /** Where the review's baseline came from, and what it resolved to. */
32
+ function baseLabel(identity, changes) {
33
+ return `${identity.headState === "detached" ? `detached at ${short(identity.head)}` : identity.headState === "unborn" ? `unborn on ${identity.branch ?? "(unknown branch)"}` : identity.branch ?? "(unknown branch)"} · base ${changes.base.requestedRef} (${short(changes.base.resolvedOid)})`;
34
+ }
35
+ function short(oid) {
36
+ return oid === null ? "—" : oid.slice(0, 12);
37
+ }
38
+ /**
39
+ * Truthful copy for an unavailable review.
40
+ *
41
+ * A Team that is not a repository, or whose layout is unsupported, must read as *not reviewable* —
42
+ * never as an empty change list, which would look like "nothing changed".
43
+ */
44
+ function unavailableMessage(code, fallback) {
45
+ switch (code) {
46
+ case "not_repository": return "This Team workspace is not a Git repository, so there are no changes to review.";
47
+ case "unsupported_layout": return `${fallback} Bazilion does not widen mounts or run repository helpers to make inspection work; use a repository whose work tree and metadata are reachable from the Team root.`;
48
+ case "invalid_base": return "That comparison base is not a plain branch, tag or commit id.";
49
+ case "unknown_base": return "That comparison base does not name a commit in this repository.";
50
+ default: return fallback;
51
+ }
52
+ }
53
+ /** Snapshot list label, distinguishing an incomplete capture from an exact one. */
54
+ function snapshotLabel(snapshot) {
55
+ const when = new Date(snapshot.createdAt).toISOString().replace("T", " ").slice(0, 16);
56
+ const state = snapshot.complete ? "complete" : "incomplete (applicability unknown)";
57
+ return `${snapshot.snapshotId.slice(0, 12)} · ${state} · ${snapshot.capturedBy} · ${when} · ${snapshot.entryCount} entries`;
58
+ }
59
+ /**
60
+ * Wording for a receipt's source applicability.
61
+ *
62
+ * Absence is **Not checked**: a receipt with no captured source can never read as passing, and
63
+ * `changed` says only that the code moved, never that the result is wrong.
64
+ */
65
+ function applicabilityLabel(state) {
66
+ if (state === null) return "Source: Not checked";
67
+ switch (state.comparison) {
68
+ case "identical": return "Source: unchanged since this result was produced";
69
+ case "changed": return "Source: changed since this result was produced — relevance unknown";
70
+ default: return `Source: unknown (${state.reason.replaceAll("_", " ")})`;
71
+ }
72
+ }
73
+ /** Whether an applicability verdict warrants a warning presentation. */
74
+ function applicabilityWarns(state) {
75
+ return state !== null && state.comparison !== "identical";
76
+ }
77
+ function referenceLabel(reference) {
78
+ return `${reference.id.slice(0, 12)} · ${reference.complete ? "complete" : "incomplete"}`;
79
+ }
80
+ //#endregion
81
+ export { referenceLabel as a, changeSummary as i, applicabilityWarns as n, snapshotLabel as o, baseLabel as r, unavailableMessage as s, applicabilityLabel as t };
@@ -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-xWyYKAcx.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/agents/$id/inbox.tsx?tss-serverfn-split
5
5
  var fetchInbox_createServerFn_handler = createServerRpc({
6
6
  id: "2cd8c6ec40e2e2d9518b5f127a518ecd83a2222d85665cc61d5144bcf59ed4fb",
@@ -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-xWyYKAcx.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/agents/$id/learning.tsx?tss-serverfn-split
5
5
  var fetchLearning_createServerFn_handler = createServerRpc({
6
6
  id: "fcdd0f08b635c7c501caa840d01d1376ace6683e26cc5ac7dead28d7870f98b9",
@@ -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-xWyYKAcx.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/config/mcp.tsx?tss-serverfn-split
5
5
  var fetchServers_createServerFn_handler = createServerRpc({
6
6
  id: "278849457893891c3d22806d15e11a0a42cc3630b30e9e62b74cf2d3b982ded7",
@@ -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/members.tsx
5
- var $$splitComponentImporter = () => import("./members-cc5SeEaW.js");
5
+ var $$splitComponentImporter = () => import("./members-xSXoYUOd.js");
6
6
  var fetchMembers = createServerFn({ method: "POST" }).validator((data) => data).handler(createSsrRpc("0a6e766d2b4ea526da34cefed5342a6ecc5ff35ad1ce38fba4129b8c24d8e6e5"));
7
7
  var Route = createFileRoute("/teams/$id/members")({
8
8
  loader: ({ params }) => fetchMembers({ data: params }),
@@ -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-xWyYKAcx.js";
3
+ import { n as daemonClient } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/teams/$id/members.tsx?tss-serverfn-split
5
5
  var fetchMembers_createServerFn_handler = createServerRpc({
6
6
  id: "0a6e766d2b4ea526da34cefed5342a6ecc5ff35ad1ce38fba4129b8c24d8e6e5",
@@ -1,6 +1,6 @@
1
- import { t as Route } from "./members-CD3GiTfF.js";
1
+ import { t as Route } from "./members-Bd0OtiTr.js";
2
2
  import { a as StatusBadge, i as SectionCard, r as PageShell, t as EmptyState } from "./Page-Bz-ydB8j.js";
3
- import { t as TeamTabs } from "./TeamTabs-TCKjCvMA.js";
3
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/routes/teams/$id/members.tsx?tsr-split=component
6
6
  function TeamMembersPage() {
@@ -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-xWyYKAcx.js";
3
+ import { n as daemonClient, r as ApiClientError } from "./daemon-client-C7qjQ2iO.js";
4
4
  //#region src/routes/teams/$id/memory.tsx?tss-serverfn-split
5
5
  var fetchMemory_createServerFn_handler = createServerRpc({
6
6
  id: "b96a98e3ed6c8a3ab5f6a4ed8458e93da753ffd74e2912ef1724bb6e58030cb5",
@@ -1,8 +1,8 @@
1
- import { t as Route } from "./memory-CVqnyUaM.js";
1
+ import { t as Route } from "./memory-lo2vHRNw.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 ConfirmDialog } from "./ConfirmDialog-C-MPYYSU.js";
5
- import { t as TeamTabs } from "./TeamTabs-TCKjCvMA.js";
5
+ import { t as TeamTabs } from "./TeamTabs-Dg4v6x0-.js";
6
6
  import { t as UnsavedChangesGuard } from "./UnsavedChangesGuard-CiStXyBI.js";
7
7
  import { useEffect, useRef, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -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, redirect } from "@tanstack/react-router";
4
4
  //#region src/routes/teams/$id/memory.tsx
5
- var $$splitComponentImporter = () => import("./memory-C5i_GxlY.js");
5
+ var $$splitComponentImporter = () => import("./memory-UP6AsRkO.js");
6
6
  var fetchMemory = createServerFn({ method: "POST" }).validator((d) => d).handler(createSsrRpc("b96a98e3ed6c8a3ab5f6a4ed8458e93da753ffd74e2912ef1724bb6e58030cb5"));
7
7
  var Route = createFileRoute("/teams/$id/memory")({
8
8
  loader: async ({ params }) => {
@@ -3,7 +3,7 @@ import { t as createSsrRpc } from "./createSsrRpc-6LHNEsSK.js";
3
3
  import { createFileRoute, lazyRouteComponent } from "@tanstack/react-router";
4
4
  //#region src/routes/teams/$id/policy.tsx
5
5
  var $$splitErrorComponentImporter = () => import("./policy-BYVXqsan.js");
6
- var $$splitComponentImporter = () => import("./policy-Dgjb0_gK.js");
6
+ var $$splitComponentImporter = () => import("./policy-Bze9Krhg.js");
7
7
  var fetchPolicy = createServerFn({ method: "POST" }).validator((data) => data).handler(createSsrRpc("fc940d6dec5305aa64bdb9b9f5f7d4f925b2ba0608cb6d39af854a94872fc867"));
8
8
  var Route = createFileRoute("/teams/$id/policy")({
9
9
  validateSearch: (search) => ({
@@ -1,8 +1,8 @@
1
- import { t as Route } from "./policy-bLKwvnja.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-TCKjCvMA.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-xWyYKAcx.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-CfNsFncJ.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-xWyYKAcx.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-N-kP4iFT.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
- import { n as ResultSourceLink } from "./ResultSourceConversation-BpVWBRYq.js";
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-TCKjCvMA.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