@peasant-labs/fairtrade 0.0.3 → 0.0.5

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 (40) hide show
  1. package/dist/lib/ChartLine-Dlp6-CLL.js +264 -0
  2. package/dist/lib/InUseShell-DZvmRdj-.js +1532 -0
  3. package/dist/lib/analytics.css +1 -0
  4. package/dist/lib/analytics.js +1052 -0
  5. package/dist/lib/commons.css +1 -0
  6. package/dist/lib/commons.js +3275 -0
  7. package/dist/lib/components.css +1 -1
  8. package/dist/lib/graph.css +1 -0
  9. package/dist/lib/graph.js +823 -0
  10. package/dist/lib/tokens.css +1 -1
  11. package/dist/lib/tokens.json +1 -1
  12. package/dist/lib/types/Intensity.d.ts +3 -3
  13. package/dist/lib/types/MapCanvas.d.ts +37 -5
  14. package/dist/lib/types/RoleRoster.d.ts +12 -1
  15. package/dist/lib/types/analytics/ChartCard.d.ts +18 -0
  16. package/dist/lib/types/analytics/ContributorTable.d.ts +16 -0
  17. package/dist/lib/types/analytics/ProjectOverview.d.ts +40 -0
  18. package/dist/lib/types/analytics/format.d.ts +48 -0
  19. package/dist/lib/types/analytics/index.d.ts +24 -0
  20. package/dist/lib/types/analytics/metrics.d.ts +130 -0
  21. package/dist/lib/types/analytics/stats.d.ts +23 -0
  22. package/dist/lib/types/analytics/time.d.ts +32 -0
  23. package/dist/lib/types/analytics/types.d.ts +453 -0
  24. package/dist/lib/types/commons/Explore.d.ts +6 -0
  25. package/dist/lib/types/commons/Manage.d.ts +34 -0
  26. package/dist/lib/types/commons/index.d.ts +24 -0
  27. package/dist/lib/types/commons/providers.d.ts +8 -0
  28. package/dist/lib/types/commons/types.d.ts +356 -0
  29. package/dist/lib/types/graph/ChangeDetail.d.ts +28 -0
  30. package/dist/lib/types/graph/Changes.d.ts +21 -0
  31. package/dist/lib/types/graph/CodeMap.d.ts +49 -0
  32. package/dist/lib/types/graph/CodeMapComposition.d.ts +85 -0
  33. package/dist/lib/types/graph/changeGraph.d.ts +106 -0
  34. package/dist/lib/types/graph/index.d.ts +30 -0
  35. package/dist/lib/types/graph/types.d.ts +579 -0
  36. package/dist/lib/types/index.d.ts +1 -0
  37. package/dist/lib/types/inuse/InUseShell.d.ts +50 -0
  38. package/dist/lib/ui-oBFnHPFe.js +11146 -0
  39. package/dist/lib/ui.js +4 -12693
  40. package/package.json +37 -6
@@ -0,0 +1,3275 @@
1
+ import { Cn as e, Ct as t, Dt as n, G as r, Gn as i, J as a, Ot as o, Rn as s, St as c, Tt as l, Un as u, Vn as d, Wn as f, Y as p, Z as m, kt as h, q as g, wt as _, yn as v } from "./ui-oBFnHPFe.js";
2
+ import { useEffect as y, useId as b, useMemo as x, useRef as S, useState as C } from "react";
3
+ import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
4
+ import { AlertTriangle as D, ArrowRight as O, Check as k, ChevronDown as A, ChevronRight as j, CircleDot as M, Compass as N, Copy as P, ExternalLink as F, Eye as I, EyeOff as L, FileText as R, FolderGit2 as z, GitBranch as B, Hash as V, LayoutGrid as ee, List as te, Lock as H, LogOut as U, Plus as W, SearchX as ne, Settings as G, ShieldAlert as K, ShieldCheck as q, Terminal as J, Upload as re, User as ie, UserPlus as Y, Users as X, X as Z } from "lucide-react";
5
+ //#region src/ui/commons/types.js
6
+ var ae = Object.freeze([
7
+ "public",
8
+ "private",
9
+ "shared"
10
+ ]), oe = Object.freeze([
11
+ "open",
12
+ "verified_only",
13
+ "curated"
14
+ ]), se = Object.freeze([
15
+ "members_only",
16
+ "contributors",
17
+ "public"
18
+ ]), Q = Object.freeze(["user_choice", "mandatory"]), $ = Object.freeze([
19
+ "owner",
20
+ "member",
21
+ "contributor",
22
+ "pending"
23
+ ]), ce = Object.freeze({
24
+ transcripts: {
25
+ transcripts: [
26
+ {
27
+ id: "d41a8e",
28
+ title: "building a rest api from scratch",
29
+ visibility: "public",
30
+ modelProvider: "claude-code",
31
+ modelName: "Claude Opus 4.5",
32
+ harnessVersion: "2026.06",
33
+ sessionStart: "2026-06-15T00:00:00Z",
34
+ sessionEnd: "2026-06-15T01:20:00Z",
35
+ turnCount: 128,
36
+ tokenCount: 412300,
37
+ toolCallCount: 37,
38
+ durationMs: 48e5,
39
+ gitBranch: "main",
40
+ projectName: "go-rest-api",
41
+ tags: [{
42
+ id: "greenfield",
43
+ name: "greenfield"
44
+ }, {
45
+ id: "claude-code",
46
+ name: "claude-code"
47
+ }],
48
+ owner: {
49
+ githubUsername: "alice-dev",
50
+ displayName: "Alice Developer",
51
+ avatarUrl: null
52
+ }
53
+ },
54
+ {
55
+ id: "7c2b90",
56
+ title: "debugging auth middleware with claude code",
57
+ visibility: "shared",
58
+ modelProvider: "claude-code",
59
+ modelName: "Claude Sonnet 4.5",
60
+ harnessVersion: "2026.06",
61
+ sessionStart: "2026-06-14T00:00:00Z",
62
+ sessionEnd: "2026-06-14T00:45:00Z",
63
+ turnCount: 64,
64
+ tokenCount: 138400,
65
+ toolCallCount: 19,
66
+ durationMs: 27e5,
67
+ gitBranch: "develop",
68
+ projectName: "village",
69
+ tags: [{
70
+ id: "debugging",
71
+ name: "debugging"
72
+ }, {
73
+ id: "claude-code",
74
+ name: "claude-code"
75
+ }],
76
+ owner: {
77
+ githubUsername: "alice-dev",
78
+ displayName: "Alice Developer",
79
+ avatarUrl: null
80
+ }
81
+ },
82
+ {
83
+ id: "b9f33c",
84
+ title: "refactoring database queries with gemini",
85
+ visibility: "public",
86
+ modelProvider: "gemini-cli",
87
+ modelName: "Gemini 2.5 Pro",
88
+ harnessVersion: "2026.06",
89
+ sessionStart: "2026-06-13T00:00:00Z",
90
+ sessionEnd: "2026-06-13T01:36:00Z",
91
+ turnCount: 91,
92
+ tokenCount: 221700,
93
+ toolCallCount: 28,
94
+ durationMs: 576e4,
95
+ gitBranch: "develop",
96
+ projectName: "api-server",
97
+ tags: [{
98
+ id: "refactoring",
99
+ name: "refactoring"
100
+ }, {
101
+ id: "gemini-cli",
102
+ name: "gemini-cli"
103
+ }],
104
+ owner: {
105
+ githubUsername: "charlie-ml",
106
+ displayName: "Charlie ML",
107
+ avatarUrl: null
108
+ }
109
+ },
110
+ {
111
+ id: "e2107a",
112
+ title: "greenfield react app setup",
113
+ visibility: "public",
114
+ modelProvider: "opencode",
115
+ modelName: "OpenCode",
116
+ harnessVersion: "2026.06",
117
+ sessionStart: "2026-06-12T00:00:00Z",
118
+ sessionEnd: "2026-06-12T00:38:00Z",
119
+ turnCount: 47,
120
+ tokenCount: 96200,
121
+ toolCallCount: 14,
122
+ durationMs: 228e4,
123
+ gitBranch: "feature/lift",
124
+ projectName: "frontend-app",
125
+ tags: [{
126
+ id: "greenfield",
127
+ name: "greenfield"
128
+ }, {
129
+ id: "iterative-refinement",
130
+ name: "iterative-refinement"
131
+ }],
132
+ owner: {
133
+ githubUsername: "bob-ai",
134
+ displayName: "Bob AI",
135
+ avatarUrl: null
136
+ }
137
+ }
138
+ ],
139
+ total: 4,
140
+ page: 0,
141
+ limit: 4
142
+ },
143
+ collectives: [{
144
+ id: "ai-research-team",
145
+ name: "AI Research Team",
146
+ description: "Sharing transcripts related to AI research",
147
+ linkedGithubOrg: "anthropic-labs",
148
+ memberCount: 12,
149
+ transcriptCount: 48
150
+ }, {
151
+ id: "verified-contributors",
152
+ name: "Verified Contributors",
153
+ description: "Only verified org members can share here",
154
+ linkedGithubOrg: "data-collective",
155
+ memberCount: 31,
156
+ transcriptCount: 126
157
+ }],
158
+ popularTags: [
159
+ {
160
+ id: "claude-code",
161
+ name: "claude-code",
162
+ usageCount: 41
163
+ },
164
+ {
165
+ id: "debugging",
166
+ name: "debugging",
167
+ usageCount: 33
168
+ },
169
+ {
170
+ id: "gemini-cli",
171
+ name: "gemini-cli",
172
+ usageCount: 28
173
+ },
174
+ {
175
+ id: "refactoring",
176
+ name: "refactoring",
177
+ usageCount: 24
178
+ }
179
+ ]
180
+ }), le = (e) => e.toLocaleString("en-US"), ue = (e) => {
181
+ let t = Math.max(0, Math.round(e / 6e4));
182
+ return t >= 60 ? `${Math.floor(t / 60)}h ${String(t % 60).padStart(2, "0")}m` : `${t}min`;
183
+ }, de = (e) => {
184
+ let t = new Date(e);
185
+ return Number.isNaN(t.getTime()) ? "" : t.toLocaleDateString("en-US", {
186
+ month: "short",
187
+ day: "numeric",
188
+ year: "numeric"
189
+ });
190
+ }, fe = (e = "") => e.split(/[\s-]+/).filter(Boolean).slice(0, 2).map((e) => e[0]).join("").toUpperCase() || "?", pe = (e) => e.trim().toLowerCase();
191
+ function me(e) {
192
+ return e ? e.length ? e[0].toUpperCase() + e.slice(1) : e : "";
193
+ }
194
+ function he(e, t) {
195
+ let n = /* @__PURE__ */ new Map();
196
+ for (let r of e) {
197
+ let e = t(r);
198
+ n.has(e) || n.set(e, []), n.get(e).push(r);
199
+ }
200
+ return n;
201
+ }
202
+ function ge(e, t, n) {
203
+ t && (e.preventDefault(), t(n));
204
+ }
205
+ function _e(e) {
206
+ return e ?? ce;
207
+ }
208
+ function ve({ transcript: e, href: t, onOpen: n }) {
209
+ let i = /* @__PURE__ */ E(w, { children: [
210
+ /* @__PURE__ */ E("div", {
211
+ className: "card-head",
212
+ children: [/* @__PURE__ */ E("span", {
213
+ className: "metaitem cex-model",
214
+ children: [/* @__PURE__ */ T(c, {
215
+ harness: e.modelProvider,
216
+ accent: !0
217
+ }), /* @__PURE__ */ T("span", {
218
+ className: "mono",
219
+ children: e.modelName || e.modelProvider
220
+ })]
221
+ }), /* @__PURE__ */ T(r, { visibility: e.visibility })]
222
+ }),
223
+ /* @__PURE__ */ T("h3", {
224
+ className: "cex-title",
225
+ children: me(e.title || "untitled transcript")
226
+ }),
227
+ e.projectName && /* @__PURE__ */ T("p", {
228
+ className: "cex-proj",
229
+ children: e.projectName
230
+ }),
231
+ /* @__PURE__ */ T("p", {
232
+ className: "cex-desc",
233
+ children: e.tags.map((e) => `#${e.name}`).join(" ")
234
+ }),
235
+ /* @__PURE__ */ E("div", {
236
+ className: "cex-foot row",
237
+ children: [/* @__PURE__ */ E("span", {
238
+ className: "cex-author",
239
+ children: [/* @__PURE__ */ T("span", {
240
+ className: "avatar",
241
+ "aria-hidden": "true",
242
+ children: fe(e.owner.displayName || e.owner.githubUsername)
243
+ }), /* @__PURE__ */ E("span", {
244
+ className: "cex-handle mono",
245
+ children: ["@", e.owner.githubUsername]
246
+ })]
247
+ }), /* @__PURE__ */ T("span", {
248
+ className: "cex-date tnum",
249
+ children: de(e.sessionStart || e.sessionEnd || "")
250
+ })]
251
+ })
252
+ ] });
253
+ return t ? /* @__PURE__ */ T("a", {
254
+ href: t,
255
+ className: "card cex-tcard",
256
+ onClick: (t) => ge(t, n, e),
257
+ children: i
258
+ }) : /* @__PURE__ */ T("button", {
259
+ type: "button",
260
+ className: "card cex-tcard",
261
+ onClick: () => n?.(e),
262
+ children: i
263
+ });
264
+ }
265
+ function ye({ transcript: e, href: t, onOpen: n }) {
266
+ let i = /* @__PURE__ */ E(w, { children: [
267
+ /* @__PURE__ */ E("span", {
268
+ className: "cex-trow-model",
269
+ children: [/* @__PURE__ */ T(c, { harness: e.modelProvider }), /* @__PURE__ */ T("b", { children: e.modelName || e.modelProvider })]
270
+ }),
271
+ /* @__PURE__ */ T("span", {
272
+ className: "cex-trow-title",
273
+ children: me(e.title || "untitled transcript")
274
+ }),
275
+ /* @__PURE__ */ E("span", {
276
+ className: "cex-trow-stats mono tnum",
277
+ children: [
278
+ e.durationMs != null && /* @__PURE__ */ T("span", { children: ue(e.durationMs) }),
279
+ e.turnCount != null && /* @__PURE__ */ E("span", { children: [e.turnCount, " turns"] }),
280
+ e.toolCallCount != null && /* @__PURE__ */ E("span", { children: [e.toolCallCount, " tools"] })
281
+ ]
282
+ }),
283
+ /* @__PURE__ */ T("span", {
284
+ className: "cex-trow-date mono tnum",
285
+ children: de(e.sessionStart || e.sessionEnd || "")
286
+ }),
287
+ /* @__PURE__ */ T(r, { visibility: e.visibility })
288
+ ] });
289
+ return t ? /* @__PURE__ */ T("a", {
290
+ href: t,
291
+ className: "row cex-trow",
292
+ onClick: (t) => ge(t, n, e),
293
+ children: i
294
+ }) : /* @__PURE__ */ T("button", {
295
+ type: "button",
296
+ className: "row cex-trow",
297
+ onClick: () => n?.(e),
298
+ children: i
299
+ });
300
+ }
301
+ function be({ collective: e, href: t, onOpen: n }) {
302
+ let r = /* @__PURE__ */ E(w, { children: [
303
+ /* @__PURE__ */ E("div", {
304
+ className: "cex-cname",
305
+ children: [/* @__PURE__ */ T("span", {
306
+ className: "avatar",
307
+ "aria-hidden": "true",
308
+ children: "C"
309
+ }), /* @__PURE__ */ T("b", { children: e.name })]
310
+ }),
311
+ e.description && /* @__PURE__ */ T("p", {
312
+ className: "cex-desc",
313
+ children: e.description
314
+ }),
315
+ /* @__PURE__ */ E("div", {
316
+ className: "cex-cfoot mono tnum",
317
+ children: [
318
+ e.memberCount,
319
+ " members · ",
320
+ e.transcriptCount,
321
+ " transcripts"
322
+ ]
323
+ })
324
+ ] });
325
+ return t ? /* @__PURE__ */ T("a", {
326
+ href: t,
327
+ className: "card cex-ccard",
328
+ onClick: (t) => ge(t, n, e),
329
+ children: r
330
+ }) : /* @__PURE__ */ T("button", {
331
+ type: "button",
332
+ className: "card cex-ccard",
333
+ onClick: () => n?.(e),
334
+ children: r
335
+ });
336
+ }
337
+ function xe({ data: t, className: n = "", onFiltersChange: i, onOpenTranscript: a, onOpenProfile: o, onOpenCollective: s, transcriptHref: l, profileHref: u, collectiveHref: d }) {
338
+ let f = _e(t), h = f.transcripts.transcripts, [g, _] = C(""), [v, b] = C(""), [w, D] = C("recent"), [O, k] = C("all"), [A, j] = C(() => /* @__PURE__ */ new Set()), [M, P] = C("grid"), [F, I] = C(1), [L, z] = C(null), [B, V] = C("browse"), H = S(!0);
339
+ y(() => {
340
+ if (H.current) {
341
+ H.current = !1, b(g);
342
+ return;
343
+ }
344
+ let e = setTimeout(() => b(g), 250);
345
+ return () => clearTimeout(e);
346
+ }, [H, g]), y(() => {
347
+ I(1);
348
+ }, [
349
+ v,
350
+ w,
351
+ O,
352
+ A
353
+ ]), y(() => {
354
+ i?.({
355
+ query: v,
356
+ provider: O,
357
+ topics: [...A],
358
+ order: w,
359
+ page: F
360
+ });
361
+ }, [
362
+ w,
363
+ i,
364
+ F,
365
+ O,
366
+ v,
367
+ A
368
+ ]), y(() => {
369
+ f.transcripts.page && f.transcripts.page !== F && I(f.transcripts.page);
370
+ }, [F, f.transcripts.page]);
371
+ let U = h.find((e) => e.id === L) ?? h[0] ?? null, W = U?.owner ?? null, G = W ? h.filter((e) => e.owner.githubUsername === W.githubUsername) : [], K = x(() => {
372
+ let e = /* @__PURE__ */ new Map();
373
+ for (let t of h) e.set(t.modelProvider, (e.get(t.modelProvider) || 0) + 1);
374
+ return [{
375
+ slug: "all",
376
+ count: h.length
377
+ }, ...[...e.entries()].map(([e, t]) => ({
378
+ slug: e,
379
+ count: t
380
+ }))];
381
+ }, [h]);
382
+ y(() => {
383
+ L && !h.some((e) => e.id === L) && (z(null), V("browse"));
384
+ }, [L, h]);
385
+ let q = x(() => {
386
+ let e = pe(v);
387
+ return e ? f.collectives.filter((t) => [
388
+ t.name,
389
+ t.description,
390
+ t.linkedGithubOrg
391
+ ].filter(Boolean).join(" ").toLowerCase().includes(e)) : null;
392
+ }, [f.collectives, v]), J = h, re = A.size, Y = f.transcripts.total ?? h.length, X = f.transcripts.page || F, Z = f.transcripts.limit || h.length || 1, ae = (e) => {
393
+ if (a) {
394
+ a(e);
395
+ return;
396
+ }
397
+ z(e.id), V("detail");
398
+ }, oe = () => {
399
+ if (o && W) {
400
+ o(W);
401
+ return;
402
+ }
403
+ U ? (z(U.id), V("profile")) : h[0] && (z(h[0].id), V("profile"));
404
+ }, se = () => {
405
+ _(""), b(""), D("recent"), k("all"), j(/* @__PURE__ */ new Set()), I(1);
406
+ }, Q = x(() => W ? [...he(G, (e) => e.projectName || "untitled project").entries()].map(([e, t]) => ({
407
+ project: e,
408
+ items: t
409
+ })) : [], [G, W]), $ = x(() => {
410
+ let e = G.reduce((e, t) => e + (t.tokenCount || 0), 0);
411
+ return {
412
+ transcripts: G.length,
413
+ projects: Q.length,
414
+ tokens: e
415
+ };
416
+ }, [G, Q.length]);
417
+ return B === "detail" && U ? /* @__PURE__ */ E("div", {
418
+ className: `cex-root cex-detail ${n}`.trim(),
419
+ children: [/* @__PURE__ */ E("div", {
420
+ className: "cex-detail-back",
421
+ children: [/* @__PURE__ */ E("button", {
422
+ type: "button",
423
+ className: "btn btn-secondary btn-sm",
424
+ onClick: () => V("browse"),
425
+ children: [/* @__PURE__ */ T(R, {
426
+ size: 14,
427
+ "aria-hidden": "true"
428
+ }), " back to explore"]
429
+ }), /* @__PURE__ */ E("button", {
430
+ type: "button",
431
+ className: "btn btn-secondary btn-sm",
432
+ onClick: oe,
433
+ children: [/* @__PURE__ */ T(ie, {
434
+ size: 14,
435
+ "aria-hidden": "true"
436
+ }), " profile"]
437
+ })]
438
+ }), /* @__PURE__ */ E("div", {
439
+ className: "window cex-viewer",
440
+ children: [/* @__PURE__ */ E("div", {
441
+ className: "win-head cex-viewer-head",
442
+ children: [
443
+ /* @__PURE__ */ T("div", {
444
+ className: "cex-head-top",
445
+ children: /* @__PURE__ */ E("div", {
446
+ className: "crumb",
447
+ children: [
448
+ "commons ",
449
+ /* @__PURE__ */ T("span", {
450
+ "aria-hidden": "true",
451
+ children: "›"
452
+ }),
453
+ " explore ",
454
+ /* @__PURE__ */ T("span", {
455
+ "aria-hidden": "true",
456
+ children: "›"
457
+ }),
458
+ " ",
459
+ /* @__PURE__ */ T("span", {
460
+ className: "cur mono",
461
+ children: U.id
462
+ })
463
+ ]
464
+ })
465
+ }),
466
+ /* @__PURE__ */ E("div", {
467
+ className: "cex-hero-title",
468
+ children: [/* @__PURE__ */ T("h2", {
469
+ className: "win-title cex-vtitle",
470
+ children: me(U.title || "untitled transcript")
471
+ }), /* @__PURE__ */ T(r, { visibility: U.visibility })]
472
+ }),
473
+ /* @__PURE__ */ E("p", {
474
+ className: "cex-vdesc",
475
+ children: [
476
+ U.projectName || "shared transcript",
477
+ " · ",
478
+ U.owner.displayName || U.owner.githubUsername
479
+ ]
480
+ }),
481
+ /* @__PURE__ */ E("div", {
482
+ className: "cex-vmeta win-meta",
483
+ children: [
484
+ /* @__PURE__ */ E("span", {
485
+ className: "metaitem",
486
+ children: [/* @__PURE__ */ T(c, {
487
+ harness: U.modelProvider,
488
+ accent: !0
489
+ }), /* @__PURE__ */ T("span", { children: U.modelName || U.modelProvider })]
490
+ }),
491
+ /* @__PURE__ */ E("span", {
492
+ className: "metaitem mono tnum",
493
+ children: [
494
+ /* @__PURE__ */ T(R, {
495
+ size: 14,
496
+ "aria-hidden": "true"
497
+ }),
498
+ " ",
499
+ U.turnCount ?? 0,
500
+ " turns"
501
+ ]
502
+ }),
503
+ /* @__PURE__ */ E("span", {
504
+ className: "metaitem mono tnum",
505
+ children: [
506
+ /* @__PURE__ */ T("span", {
507
+ "aria-hidden": "true",
508
+ children: "#"
509
+ }),
510
+ " ",
511
+ le(U.tokenCount || 0),
512
+ " tokens"
513
+ ]
514
+ }),
515
+ /* @__PURE__ */ E("span", {
516
+ className: "metaitem mono tnum",
517
+ children: [U.toolCallCount ?? 0, " tools"]
518
+ })
519
+ ]
520
+ })
521
+ ]
522
+ }), /* @__PURE__ */ E("div", {
523
+ className: "cex-viewer-body",
524
+ children: [/* @__PURE__ */ E("div", {
525
+ className: "cex-stream",
526
+ role: "tabpanel",
527
+ tabIndex: -1,
528
+ children: [/* @__PURE__ */ E("div", {
529
+ className: "phase",
530
+ children: [/* @__PURE__ */ T("span", {
531
+ className: "lbl",
532
+ children: "about"
533
+ }), /* @__PURE__ */ T("span", {
534
+ className: "meta mono tnum",
535
+ children: de(U.sessionStart || U.sessionEnd || "")
536
+ })]
537
+ }), /* @__PURE__ */ E("div", {
538
+ className: "turn",
539
+ children: [/* @__PURE__ */ T("div", {
540
+ className: "head",
541
+ children: /* @__PURE__ */ T("span", {
542
+ className: "name",
543
+ children: "session summary"
544
+ })
545
+ }), /* @__PURE__ */ E("div", {
546
+ className: "body",
547
+ children: [/* @__PURE__ */ T("p", { children: "This view surfaces the loaded transcript metadata, then lets the user move to the owner profile without leaving the shared surface." }), U.tags.length > 0 && /* @__PURE__ */ T("div", {
548
+ className: "cex-tags",
549
+ children: U.tags.map((e) => /* @__PURE__ */ E("span", {
550
+ className: "chip",
551
+ children: ["#", e.name]
552
+ }, e.id))
553
+ })]
554
+ })]
555
+ })]
556
+ }), /* @__PURE__ */ E("aside", {
557
+ className: "cex-psec",
558
+ "aria-label": "owner snapshot",
559
+ children: [
560
+ /* @__PURE__ */ T("h3", {
561
+ className: "cex-psec-title",
562
+ children: "owner snapshot"
563
+ }),
564
+ /* @__PURE__ */ E("div", {
565
+ className: "cex-phero",
566
+ children: [/* @__PURE__ */ T("div", {
567
+ className: "cex-phero-av",
568
+ "aria-hidden": "true",
569
+ children: fe(U.owner.displayName || U.owner.githubUsername)
570
+ }), /* @__PURE__ */ E("div", {
571
+ className: "cex-phero-id",
572
+ children: [/* @__PURE__ */ T("h2", {
573
+ className: "cex-h2 cex-pname",
574
+ children: U.owner.displayName || U.owner.githubUsername
575
+ }), /* @__PURE__ */ E("span", {
576
+ className: "cex-phandle mono",
577
+ children: ["@", U.owner.githubUsername]
578
+ })]
579
+ })]
580
+ }),
581
+ /* @__PURE__ */ T(p, { tiles: [
582
+ {
583
+ key: "transcripts",
584
+ label: "transcripts",
585
+ value: $.transcripts
586
+ },
587
+ {
588
+ key: "projects",
589
+ label: "projects",
590
+ value: $.projects
591
+ },
592
+ {
593
+ key: "tokens",
594
+ label: "tokens",
595
+ value: le($.tokens)
596
+ }
597
+ ] })
598
+ ]
599
+ })]
600
+ })]
601
+ })]
602
+ }) : B === "profile" && W ? /* @__PURE__ */ E("div", {
603
+ className: `cex-root cex-profile ${n}`.trim(),
604
+ children: [
605
+ /* @__PURE__ */ E("div", {
606
+ className: "cex-detail-back",
607
+ children: [/* @__PURE__ */ E("button", {
608
+ type: "button",
609
+ className: "btn btn-secondary btn-sm",
610
+ onClick: () => V("detail"),
611
+ children: [/* @__PURE__ */ T(R, {
612
+ size: 14,
613
+ "aria-hidden": "true"
614
+ }), " back to transcript"]
615
+ }), /* @__PURE__ */ E("button", {
616
+ type: "button",
617
+ className: "btn btn-secondary btn-sm",
618
+ onClick: () => V("browse"),
619
+ children: [/* @__PURE__ */ T(N, {
620
+ size: 14,
621
+ "aria-hidden": "true"
622
+ }), " back to explore"]
623
+ })]
624
+ }),
625
+ /* @__PURE__ */ E("div", {
626
+ className: "crumb cex-profile-crumb",
627
+ children: [
628
+ "commons ",
629
+ /* @__PURE__ */ T("span", {
630
+ "aria-hidden": "true",
631
+ children: "›"
632
+ }),
633
+ " ",
634
+ /* @__PURE__ */ E("span", {
635
+ className: "cur mono",
636
+ children: ["@", W.githubUsername]
637
+ })
638
+ ]
639
+ }),
640
+ /* @__PURE__ */ E("header", {
641
+ className: "cex-phero",
642
+ children: [/* @__PURE__ */ T("div", {
643
+ className: "cex-phero-av",
644
+ "aria-hidden": "true",
645
+ children: fe(W.displayName || W.githubUsername)
646
+ }), /* @__PURE__ */ E("div", {
647
+ className: "cex-phero-id",
648
+ children: [/* @__PURE__ */ T("h2", {
649
+ className: "cex-h2 cex-pname",
650
+ children: W.displayName || W.githubUsername
651
+ }), /* @__PURE__ */ E("span", {
652
+ className: "cex-phandle mono",
653
+ children: ["@", W.githubUsername]
654
+ })]
655
+ })]
656
+ }),
657
+ /* @__PURE__ */ T(p, { tiles: [
658
+ {
659
+ key: "transcripts",
660
+ label: "transcripts",
661
+ value: $.transcripts
662
+ },
663
+ {
664
+ key: "projects",
665
+ label: "projects",
666
+ value: $.projects
667
+ },
668
+ {
669
+ key: "tokens",
670
+ label: "tokens",
671
+ value: le($.tokens)
672
+ }
673
+ ] }),
674
+ /* @__PURE__ */ E("section", {
675
+ className: "cex-psec",
676
+ "aria-label": "published library",
677
+ children: [/* @__PURE__ */ T("h3", {
678
+ className: "cex-psec-title",
679
+ children: "published library"
680
+ }), Q.length === 0 ? /* @__PURE__ */ E("div", {
681
+ className: "empty cex-empty",
682
+ children: [
683
+ /* @__PURE__ */ T("div", {
684
+ className: "ring",
685
+ children: /* @__PURE__ */ T(N, {
686
+ size: 20,
687
+ "aria-hidden": "true"
688
+ })
689
+ }),
690
+ /* @__PURE__ */ T("h3", { children: "no transcripts yet" }),
691
+ /* @__PURE__ */ T("p", { children: "this profile has not shared any transcripts in the commons." })
692
+ ]
693
+ }) : /* @__PURE__ */ T("div", {
694
+ className: "cex-projects",
695
+ children: Q.map(({ project: e, items: t }) => /* @__PURE__ */ E("div", {
696
+ className: "cex-project",
697
+ children: [/* @__PURE__ */ E("div", {
698
+ className: "cex-project-head",
699
+ children: [/* @__PURE__ */ E("span", {
700
+ className: "cex-project-name",
701
+ children: [/* @__PURE__ */ T("span", {
702
+ "aria-hidden": "true",
703
+ children: "▣"
704
+ }), /* @__PURE__ */ T("b", { children: e })]
705
+ }), /* @__PURE__ */ E("span", {
706
+ className: "cex-project-cnt mono tnum",
707
+ children: [
708
+ t.length,
709
+ " session",
710
+ t.length === 1 ? "" : "s"
711
+ ]
712
+ })]
713
+ }), /* @__PURE__ */ T("div", {
714
+ className: "cex-lib-rows",
715
+ children: t.map((e) => /* @__PURE__ */ T(ye, {
716
+ transcript: e,
717
+ href: l?.(e),
718
+ onOpen: ae
719
+ }, e.id))
720
+ })]
721
+ }, e))
722
+ })]
723
+ })
724
+ ]
725
+ }) : /* @__PURE__ */ E("div", {
726
+ className: `cex-root ${n}`.trim(),
727
+ children: [/* @__PURE__ */ E("header", {
728
+ className: "cex-explore-head",
729
+ children: [
730
+ /* @__PURE__ */ T("h2", {
731
+ className: "cex-h2",
732
+ children: "explore transcripts"
733
+ }),
734
+ /* @__PURE__ */ T("p", {
735
+ className: "cex-deck",
736
+ children: "search redacted ai agent transcripts shared by the community."
737
+ }),
738
+ /* @__PURE__ */ E("div", {
739
+ className: "input-ico cex-searchbar",
740
+ children: [/* @__PURE__ */ T("input", {
741
+ className: "input",
742
+ type: "text",
743
+ value: g,
744
+ onChange: (e) => _(e.target.value),
745
+ placeholder: "search transcripts, collectives, projects, models...",
746
+ "aria-label": "search transcripts, collectives, projects, models"
747
+ }), g && /* @__PURE__ */ T("button", {
748
+ type: "button",
749
+ className: "cex-clear",
750
+ "aria-label": "clear search",
751
+ onClick: () => _(""),
752
+ children: /* @__PURE__ */ T(ne, {
753
+ size: 14,
754
+ "aria-hidden": "true"
755
+ })
756
+ })]
757
+ })
758
+ ]
759
+ }), /* @__PURE__ */ E("div", {
760
+ className: "cex-explore-body",
761
+ children: [/* @__PURE__ */ T(m, {
762
+ order: w,
763
+ onOrder: (e) => D(e),
764
+ providers: K,
765
+ activeProviders: O === "all" ? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([O]),
766
+ onProvider: (e) => k((t) => t === e ? "all" : e),
767
+ topics: f.popularTags.map((e) => ({
768
+ tag: e.name,
769
+ count: e.usageCount
770
+ })),
771
+ activeTopics: A,
772
+ onTopic: (e) => {
773
+ j((t) => {
774
+ let n = new Set(t);
775
+ return n.has(e) ? n.delete(e) : n.add(e), n;
776
+ });
777
+ },
778
+ onClear: se,
779
+ className: "cex-rail"
780
+ }), /* @__PURE__ */ E("div", {
781
+ className: "cex-results",
782
+ children: [
783
+ q && /* @__PURE__ */ E("section", {
784
+ className: "cex-coll-results",
785
+ "aria-label": "matching collectives",
786
+ children: [/* @__PURE__ */ T("div", {
787
+ className: "cex-results-head",
788
+ children: /* @__PURE__ */ E("span", {
789
+ className: "cex-eyebrow",
790
+ children: ["collectives ", /* @__PURE__ */ T("span", {
791
+ className: "cex-count tnum",
792
+ children: q.length
793
+ })]
794
+ })
795
+ }), q.length === 0 ? /* @__PURE__ */ T("p", {
796
+ className: "cex-nomatch-inline mono",
797
+ children: "no matching collectives."
798
+ }) : /* @__PURE__ */ T("div", {
799
+ className: "cex-coll-grid",
800
+ children: q.map((e) => /* @__PURE__ */ T(be, {
801
+ collective: e,
802
+ href: d?.(e),
803
+ onOpen: s
804
+ }, e.id))
805
+ })]
806
+ }),
807
+ /* @__PURE__ */ E("div", {
808
+ className: "cex-results-head",
809
+ children: [/* @__PURE__ */ E("span", {
810
+ className: "cex-eyebrow",
811
+ children: ["transcripts ", /* @__PURE__ */ T("span", {
812
+ className: "cex-count tnum",
813
+ role: "status",
814
+ "aria-live": "polite",
815
+ children: Y
816
+ })]
817
+ }), /* @__PURE__ */ E("div", {
818
+ className: "bs-seg cex-viewseg",
819
+ role: "group",
820
+ "aria-label": "view mode",
821
+ children: [
822
+ /* @__PURE__ */ E("button", {
823
+ type: "button",
824
+ className: "bs-seg-opt",
825
+ "aria-pressed": M === "grid",
826
+ "aria-label": "grid view",
827
+ onClick: () => P("grid"),
828
+ children: [/* @__PURE__ */ T(ee, { size: 14 }), " grid"]
829
+ }),
830
+ /* @__PURE__ */ E("button", {
831
+ type: "button",
832
+ className: "bs-seg-opt",
833
+ "aria-pressed": M === "list",
834
+ "aria-label": "list view",
835
+ onClick: () => P("list"),
836
+ children: [/* @__PURE__ */ T(te, { size: 14 }), " list"]
837
+ }),
838
+ /* @__PURE__ */ E("button", {
839
+ type: "button",
840
+ className: "bs-seg-opt",
841
+ "aria-pressed": B === "profile",
842
+ "aria-label": "profile view",
843
+ onClick: oe,
844
+ disabled: !J.length,
845
+ children: [/* @__PURE__ */ T(ie, { size: 14 }), " profile"]
846
+ })
847
+ ]
848
+ })]
849
+ }),
850
+ J.length === 0 ? v.trim() || O !== "all" || re ? /* @__PURE__ */ E("div", {
851
+ className: "empty cex-empty",
852
+ children: [
853
+ /* @__PURE__ */ T("div", {
854
+ className: "ring",
855
+ children: /* @__PURE__ */ T(ne, {
856
+ size: 20,
857
+ "aria-hidden": "true"
858
+ })
859
+ }),
860
+ /* @__PURE__ */ T("h3", { children: "no matches" }),
861
+ /* @__PURE__ */ T("p", { children: "no transcripts match your search and filters. broaden the query or clear the filters." }),
862
+ /* @__PURE__ */ T("button", {
863
+ type: "button",
864
+ className: "btn btn-secondary btn-sm",
865
+ onClick: se,
866
+ children: "clear filters"
867
+ })
868
+ ]
869
+ }) : /* @__PURE__ */ E("div", {
870
+ className: "empty cex-empty",
871
+ children: [
872
+ /* @__PURE__ */ T("div", {
873
+ className: "ring",
874
+ children: /* @__PURE__ */ T(N, {
875
+ size: 20,
876
+ "aria-hidden": "true"
877
+ })
878
+ }),
879
+ /* @__PURE__ */ T("h3", { children: "the commons is empty" }),
880
+ /* @__PURE__ */ T("p", { children: "no transcripts have been shared yet. once contributors publish, they show up here." })
881
+ ]
882
+ }) : M === "grid" ? /* @__PURE__ */ T("div", {
883
+ className: "cex-grid",
884
+ children: J.map((e) => /* @__PURE__ */ T(ve, {
885
+ transcript: e,
886
+ href: l?.(e),
887
+ onOpen: ae
888
+ }, e.id))
889
+ }) : /* @__PURE__ */ T("div", {
890
+ className: "cex-list",
891
+ children: J.map((e) => /* @__PURE__ */ T(ye, {
892
+ transcript: e,
893
+ href: l?.(e),
894
+ onOpen: ae
895
+ }, e.id))
896
+ }),
897
+ Y > Z && /* @__PURE__ */ T(e, {
898
+ page: X,
899
+ totalItems: Y,
900
+ pageSize: Z,
901
+ onChange: I,
902
+ className: "cex-pgn"
903
+ })
904
+ ]
905
+ })]
906
+ })]
907
+ });
908
+ }
909
+ //#endregion
910
+ //#region src/ui/commons/providers.js
911
+ var Se = {
912
+ "claude-code": "Claude Code",
913
+ "gemini-cli": "Gemini",
914
+ opencode: "OpenCode",
915
+ codex: "Codex"
916
+ };
917
+ function Ce(e) {
918
+ return String(e || "unknown").replace(/[-_]+/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
919
+ }
920
+ function we(e) {
921
+ return Se[e] || Ce(e);
922
+ }
923
+ //#endregion
924
+ //#region src/mockups/inuse/CommonsManage.jsx
925
+ function Te({ id: e }) {
926
+ let t = {
927
+ "claude-code": "g-claude",
928
+ "gemini-cli": "g-gemini",
929
+ opencode: "g-opencode",
930
+ codex: "g-codex"
931
+ }[e], n = {
932
+ "claude-code": "#b-claude",
933
+ "gemini-cli": "#b-gemini",
934
+ opencode: "#b-opencode"
935
+ }[e];
936
+ return n ? /* @__PURE__ */ T("span", {
937
+ className: t,
938
+ children: /* @__PURE__ */ T("svg", {
939
+ className: "brand",
940
+ width: "14",
941
+ height: "14",
942
+ viewBox: "0 0 24 24",
943
+ "aria-hidden": "true",
944
+ children: /* @__PURE__ */ T("use", { href: n })
945
+ })
946
+ }) : /* @__PURE__ */ T("span", {
947
+ className: t,
948
+ children: /* @__PURE__ */ T(J, {
949
+ className: "lucide",
950
+ size: 14,
951
+ "aria-hidden": "true"
952
+ })
953
+ });
954
+ }
955
+ function Ee({ cmd: e, note: t }) {
956
+ let [n, r] = C(!1);
957
+ function i() {
958
+ try {
959
+ navigator.clipboard?.writeText(e);
960
+ } catch {}
961
+ r(!0), window.setTimeout(() => r(!1), 2e3);
962
+ }
963
+ return /* @__PURE__ */ E("div", {
964
+ className: "cmg-cmd",
965
+ children: [
966
+ /* @__PURE__ */ E("code", {
967
+ className: "cmg-cmd-text mono",
968
+ children: [/* @__PURE__ */ T("span", {
969
+ className: "cmg-cmd-prompt",
970
+ "aria-hidden": "true",
971
+ children: "$ "
972
+ }), e]
973
+ }),
974
+ /* @__PURE__ */ E("button", {
975
+ type: "button",
976
+ className: "btn btn-sm btn-secondary cmg-cmd-copy",
977
+ onClick: i,
978
+ "aria-label": n ? "copied" : "copy command",
979
+ children: [T(n ? k : P, {
980
+ size: 14,
981
+ "aria-hidden": "true"
982
+ }), n ? "copied" : "copy"]
983
+ }),
984
+ t ? /* @__PURE__ */ T("span", {
985
+ className: "cmg-cmd-note mono",
986
+ children: t
987
+ }) : null
988
+ ]
989
+ });
990
+ }
991
+ var De = [
992
+ {
993
+ id: "a1",
994
+ provider: "claude-code",
995
+ title: "Debugging auth middleware with Claude Code",
996
+ visibility: "public",
997
+ date: "Jun 15",
998
+ turns: 64,
999
+ project: "village"
1000
+ },
1001
+ {
1002
+ id: "a2",
1003
+ provider: "gemini-cli",
1004
+ title: "Optimizing N+1 query issues using Gemini CLI",
1005
+ visibility: "shared",
1006
+ date: "Jun 14",
1007
+ turns: 31,
1008
+ project: "api-server"
1009
+ },
1010
+ {
1011
+ id: "a3",
1012
+ provider: "claude-code",
1013
+ title: "Greenfield React app setup",
1014
+ visibility: "private",
1015
+ date: "Jun 12",
1016
+ turns: 47,
1017
+ project: "frontend-app"
1018
+ },
1019
+ {
1020
+ id: "a4",
1021
+ provider: "opencode",
1022
+ title: "Multi-agent debugging session",
1023
+ visibility: "public",
1024
+ date: "Jun 10",
1025
+ turns: 128,
1026
+ project: "platform"
1027
+ }
1028
+ ], Oe = [
1029
+ {
1030
+ n: 1,
1031
+ title: "install the cli",
1032
+ cmd: "go install github.com/peasant-labs/peasant/cmd/peasant@latest"
1033
+ },
1034
+ {
1035
+ n: 2,
1036
+ title: "sign in",
1037
+ cmd: "peasant login",
1038
+ note: "opens a browser OAuth flow; stores ~/.config/peasant/credentials.json"
1039
+ },
1040
+ {
1041
+ n: 3,
1042
+ title: "run the setup wizard",
1043
+ cmd: "peasant kickstart"
1044
+ },
1045
+ {
1046
+ n: 4,
1047
+ title: "push your transcripts",
1048
+ cmd: "peasant village push --dry-run --visibility public"
1049
+ }
1050
+ ];
1051
+ function ke({ v: e, names: t }) {
1052
+ let n = {
1053
+ public: {
1054
+ Icon: I,
1055
+ label: "visible to everyone",
1056
+ cls: ""
1057
+ },
1058
+ shared: {
1059
+ Icon: X,
1060
+ label: t ? `shared with: ${t}` : "shared with collectives",
1061
+ cls: "cmg-eye-shared"
1062
+ },
1063
+ private: {
1064
+ Icon: L,
1065
+ label: "only visible to you",
1066
+ cls: "cmg-eye-private"
1067
+ }
1068
+ }, { Icon: r, label: i, cls: a } = n[e] || n.private;
1069
+ return /* @__PURE__ */ E("span", {
1070
+ className: "cmg-eye " + a,
1071
+ title: i,
1072
+ children: [/* @__PURE__ */ T(r, {
1073
+ size: 14,
1074
+ "aria-hidden": "true"
1075
+ }), /* @__PURE__ */ T("span", {
1076
+ className: "cmg-sr",
1077
+ children: i
1078
+ })]
1079
+ });
1080
+ }
1081
+ function Ae() {
1082
+ let [e, t] = C(!0), [n, r] = C(!1);
1083
+ return /* @__PURE__ */ E("div", {
1084
+ className: "cmg-root",
1085
+ children: [/* @__PURE__ */ E("div", {
1086
+ className: "cmg-page",
1087
+ children: [
1088
+ /* @__PURE__ */ E("div", {
1089
+ className: "crumb cmg-crumb",
1090
+ children: [
1091
+ "village ",
1092
+ /* @__PURE__ */ T(j, {
1093
+ size: 13,
1094
+ "aria-hidden": "true"
1095
+ }),
1096
+ " ",
1097
+ /* @__PURE__ */ T("span", {
1098
+ className: "cur",
1099
+ children: "publish"
1100
+ })
1101
+ ]
1102
+ }),
1103
+ /* @__PURE__ */ T("header", {
1104
+ className: "cmg-head",
1105
+ children: /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
1106
+ className: "cmg-title",
1107
+ children: "publishing dashboard"
1108
+ }), /* @__PURE__ */ T("p", {
1109
+ className: "cmg-deck",
1110
+ children: "push transcripts from the peasant cli to the village."
1111
+ })] })
1112
+ }),
1113
+ e && /* @__PURE__ */ E("section", {
1114
+ className: "cmg-gs card",
1115
+ "aria-labelledby": "cmg-gs-h",
1116
+ children: [/* @__PURE__ */ E("div", {
1117
+ className: "cmg-gs-head",
1118
+ children: [/* @__PURE__ */ E("span", {
1119
+ className: "cmg-gs-h-l",
1120
+ children: [/* @__PURE__ */ T(J, {
1121
+ size: 16,
1122
+ "aria-hidden": "true",
1123
+ className: "cmg-gs-ico"
1124
+ }), /* @__PURE__ */ T("h3", {
1125
+ id: "cmg-gs-h",
1126
+ className: "cmg-sub",
1127
+ children: "getting started"
1128
+ })]
1129
+ }), /* @__PURE__ */ T("button", {
1130
+ type: "button",
1131
+ className: "btn btn-sm btn-icon btn-ghost",
1132
+ onClick: () => t(!1),
1133
+ "aria-label": "dismiss getting started",
1134
+ children: /* @__PURE__ */ T(Z, {
1135
+ size: 14,
1136
+ "aria-hidden": "true"
1137
+ })
1138
+ })]
1139
+ }), /* @__PURE__ */ E("div", {
1140
+ className: "cmg-gs-body",
1141
+ children: [/* @__PURE__ */ E("div", {
1142
+ className: "cmg-step",
1143
+ children: [/* @__PURE__ */ T("span", {
1144
+ className: "cmg-step-n tnum",
1145
+ "aria-hidden": "true",
1146
+ children: "1"
1147
+ }), /* @__PURE__ */ E("div", {
1148
+ className: "cmg-step-main",
1149
+ children: [
1150
+ /* @__PURE__ */ T("div", {
1151
+ className: "cmg-step-title",
1152
+ children: "run the setup wizard"
1153
+ }),
1154
+ /* @__PURE__ */ T("p", {
1155
+ className: "cmg-step-desc",
1156
+ children: "connects github, discovers agent transcripts, configures providers (Claude Code / OpenCode), sets your redaction level."
1157
+ }),
1158
+ /* @__PURE__ */ T(Ee, { cmd: "peasant kickstart" })
1159
+ ]
1160
+ })]
1161
+ }), /* @__PURE__ */ E("div", {
1162
+ className: "cmg-step",
1163
+ children: [/* @__PURE__ */ T("span", {
1164
+ className: "cmg-step-n tnum",
1165
+ "aria-hidden": "true",
1166
+ children: "2"
1167
+ }), /* @__PURE__ */ E("div", {
1168
+ className: "cmg-step-main",
1169
+ children: [
1170
+ /* @__PURE__ */ T("div", {
1171
+ className: "cmg-step-title",
1172
+ children: "push transcripts"
1173
+ }),
1174
+ /* @__PURE__ */ T("p", {
1175
+ className: "cmg-step-desc",
1176
+ children: "auto-redaction runs before upload. add --dry-run to preview, or --visibility public to override."
1177
+ }),
1178
+ /* @__PURE__ */ T(Ee, {
1179
+ cmd: "peasant village push",
1180
+ note: "--dry-run preview · --visibility public override"
1181
+ })
1182
+ ]
1183
+ })]
1184
+ })]
1185
+ })]
1186
+ }),
1187
+ /* @__PURE__ */ E("section", {
1188
+ className: "cmg-recent card",
1189
+ "aria-labelledby": "cmg-recent-h",
1190
+ children: [/* @__PURE__ */ E("div", {
1191
+ className: "cmg-recent-head",
1192
+ children: [/* @__PURE__ */ T("h3", {
1193
+ id: "cmg-recent-h",
1194
+ className: "cmg-sub",
1195
+ children: "recent publishes"
1196
+ }), /* @__PURE__ */ E("button", {
1197
+ type: "button",
1198
+ className: "btn btn-sm btn-secondary",
1199
+ onClick: () => r(!0),
1200
+ children: [/* @__PURE__ */ T(re, {
1201
+ size: 14,
1202
+ "aria-hidden": "true"
1203
+ }), " import"]
1204
+ })]
1205
+ }), De.length === 0 ? /* @__PURE__ */ T("div", {
1206
+ className: "cmg-recent-empty mono",
1207
+ children: "no transcripts published yet."
1208
+ }) : /* @__PURE__ */ T("ul", {
1209
+ className: "cmg-pub-list",
1210
+ children: De.map((e) => /* @__PURE__ */ E("li", {
1211
+ className: "cmg-pub-row",
1212
+ children: [
1213
+ /* @__PURE__ */ T("span", {
1214
+ className: "cmg-pub-prov",
1215
+ children: /* @__PURE__ */ T(Te, { id: e.provider })
1216
+ }),
1217
+ /* @__PURE__ */ T("span", {
1218
+ className: "cmg-pub-title",
1219
+ children: e.title
1220
+ }),
1221
+ /* @__PURE__ */ T("span", {
1222
+ className: "cmg-pub-meta mono",
1223
+ children: e.project
1224
+ }),
1225
+ /* @__PURE__ */ E("span", {
1226
+ className: "cmg-pub-meta mono tnum",
1227
+ children: [
1228
+ /* @__PURE__ */ T(V, {
1229
+ size: 13,
1230
+ "aria-hidden": "true"
1231
+ }),
1232
+ " ",
1233
+ e.turns
1234
+ ]
1235
+ }),
1236
+ /* @__PURE__ */ T(ke, { v: e.visibility }),
1237
+ /* @__PURE__ */ T("span", {
1238
+ className: "cmg-pub-date mono tnum",
1239
+ children: e.date
1240
+ })
1241
+ ]
1242
+ }, e.id))
1243
+ })]
1244
+ })
1245
+ ]
1246
+ }), n && /* @__PURE__ */ T("div", {
1247
+ className: "cmg-scrim",
1248
+ role: "presentation",
1249
+ onClick: () => r(!1),
1250
+ children: /* @__PURE__ */ E("div", {
1251
+ className: "cmg-dialog",
1252
+ role: "dialog",
1253
+ "aria-modal": "true",
1254
+ "aria-labelledby": "cmg-import-h",
1255
+ onClick: (e) => e.stopPropagation(),
1256
+ onKeyDown: (e) => e.key === "Escape" && r(!1),
1257
+ children: [
1258
+ /* @__PURE__ */ E("div", {
1259
+ className: "cmg-dlg-head",
1260
+ children: [/* @__PURE__ */ T("h3", {
1261
+ id: "cmg-import-h",
1262
+ className: "cmg-sub",
1263
+ children: "how to import transcripts"
1264
+ }), /* @__PURE__ */ T("button", {
1265
+ type: "button",
1266
+ className: "btn btn-sm btn-icon btn-ghost",
1267
+ onClick: () => r(!1),
1268
+ "aria-label": "close dialog",
1269
+ children: /* @__PURE__ */ T(Z, {
1270
+ size: 14,
1271
+ "aria-hidden": "true"
1272
+ })
1273
+ })]
1274
+ }),
1275
+ /* @__PURE__ */ E("div", {
1276
+ className: "cmg-dlg-body",
1277
+ children: [/* @__PURE__ */ T("p", {
1278
+ className: "cmg-dlg-intro mono",
1279
+ children: "transcripts are imported through the peasant cli, not the web ui. follow these steps from a terminal:"
1280
+ }), /* @__PURE__ */ T("ol", {
1281
+ className: "cmg-import-steps",
1282
+ children: Oe.map((e) => /* @__PURE__ */ E("li", {
1283
+ className: "cmg-step",
1284
+ children: [/* @__PURE__ */ T("span", {
1285
+ className: "cmg-step-n tnum",
1286
+ "aria-hidden": "true",
1287
+ children: e.n
1288
+ }), /* @__PURE__ */ E("div", {
1289
+ className: "cmg-step-main",
1290
+ children: [/* @__PURE__ */ T("div", {
1291
+ className: "cmg-step-title",
1292
+ children: e.title
1293
+ }), /* @__PURE__ */ T(Ee, {
1294
+ cmd: e.cmd,
1295
+ note: e.note
1296
+ })]
1297
+ })]
1298
+ }, e.n))
1299
+ })]
1300
+ }),
1301
+ /* @__PURE__ */ T("div", {
1302
+ className: "cmg-dlg-foot",
1303
+ children: /* @__PURE__ */ T("button", {
1304
+ type: "button",
1305
+ className: "btn btn-sm btn-secondary",
1306
+ onClick: () => r(!1),
1307
+ children: "close"
1308
+ })
1309
+ })
1310
+ ]
1311
+ })
1312
+ })]
1313
+ });
1314
+ }
1315
+ var je = [
1316
+ {
1317
+ value: "open",
1318
+ short: "Open",
1319
+ label: "open",
1320
+ rationale: "anyone can share. contributions are auto-approved."
1321
+ },
1322
+ {
1323
+ value: "verified_only",
1324
+ short: "Verified only",
1325
+ label: "verified only",
1326
+ rationale: "sharing requires an org affiliation."
1327
+ },
1328
+ {
1329
+ value: "curated",
1330
+ short: "Curated",
1331
+ label: "curated",
1332
+ rationale: "the owner must approve each share before it appears."
1333
+ }
1334
+ ], Me = [
1335
+ {
1336
+ value: "members_only",
1337
+ short: "Members only",
1338
+ label: "members only",
1339
+ rationale: "full members can browse the collected data."
1340
+ },
1341
+ {
1342
+ value: "contributors",
1343
+ short: "Contributors",
1344
+ label: "contributors",
1345
+ rationale: "anyone who contributes can browse the data."
1346
+ },
1347
+ {
1348
+ value: "public",
1349
+ short: "Public",
1350
+ label: "public",
1351
+ rationale: "anyone at all can browse the dataset."
1352
+ }
1353
+ ], Ne = [
1354
+ "@anthropic-labs",
1355
+ "@data-collective",
1356
+ "@openai-research"
1357
+ ], Pe = [
1358
+ {
1359
+ id: "c1",
1360
+ name: "AI Research Team",
1361
+ desc: "Sharing transcripts related to AI research",
1362
+ members: 12,
1363
+ transcripts: 248,
1364
+ mode: "open",
1365
+ role: "owner",
1366
+ since: "Member for 5mo"
1367
+ },
1368
+ {
1369
+ id: "c2",
1370
+ name: "Verified Contributors",
1371
+ desc: "Only verified org members can share here",
1372
+ members: 7,
1373
+ transcripts: 96,
1374
+ mode: "verified_only",
1375
+ role: "member",
1376
+ since: "Member for 2mo"
1377
+ },
1378
+ {
1379
+ id: "c3",
1380
+ name: "Curated Showcase",
1381
+ desc: "Owner-approved transcripts only",
1382
+ members: 21,
1383
+ transcripts: 54,
1384
+ mode: "curated",
1385
+ role: "contributor",
1386
+ since: "Joined today"
1387
+ }
1388
+ ];
1389
+ function Fe({ mode: e }) {
1390
+ let t = je.find((t) => t.value === e);
1391
+ return /* @__PURE__ */ T("span", {
1392
+ className: "chip " + (e === "open" ? "chip-ok" : e === "curated" ? "chip-warn" : ""),
1393
+ children: t ? t.short.toLowerCase() : e
1394
+ });
1395
+ }
1396
+ function Ie({ data: e = {}, actions: t = {} } = {}) {
1397
+ let { collectives: n = Pe, linkedOrgs: r = Ne, title: i = "collectives", deck: a = "groups that govern shared data together.", crumb: s = "collectives", createLabel: c = "new collective", createBusy: l = !1 } = e, { onCreateCollective: u, onOpenCollective: d } = t, [f, p] = C(!1), [m, h] = C(""), [g, _] = C(""), [v, y] = C("open"), [x, S] = C("members_only"), [D, O] = C(""), k = b();
1398
+ return /* @__PURE__ */ T("div", {
1399
+ className: "cmg-root",
1400
+ children: /* @__PURE__ */ E("div", {
1401
+ className: "cmg-page",
1402
+ children: [
1403
+ /* @__PURE__ */ E("div", {
1404
+ className: "crumb cmg-crumb",
1405
+ children: [
1406
+ "village ",
1407
+ /* @__PURE__ */ T(j, {
1408
+ size: 13,
1409
+ "aria-hidden": "true"
1410
+ }),
1411
+ " ",
1412
+ /* @__PURE__ */ T("span", {
1413
+ className: "cur",
1414
+ children: s
1415
+ })
1416
+ ]
1417
+ }),
1418
+ /* @__PURE__ */ E("header", {
1419
+ className: "cmg-head",
1420
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
1421
+ className: "cmg-title",
1422
+ children: i
1423
+ }), /* @__PURE__ */ T("p", {
1424
+ className: "cmg-deck",
1425
+ children: a
1426
+ })] }), /* @__PURE__ */ E("button", {
1427
+ type: "button",
1428
+ className: "btn btn-sm " + (f ? "btn-secondary" : "btn-primary"),
1429
+ "aria-expanded": f,
1430
+ onClick: () => p((e) => !e),
1431
+ children: [T(f ? Z : W, {
1432
+ size: 14,
1433
+ "aria-hidden": "true"
1434
+ }), f ? "cancel" : c]
1435
+ })]
1436
+ }),
1437
+ f && /* @__PURE__ */ E("section", {
1438
+ className: "cmg-form card",
1439
+ "aria-labelledby": "cmg-form-h",
1440
+ children: [
1441
+ /* @__PURE__ */ T("h3", {
1442
+ id: "cmg-form-h",
1443
+ className: "cmg-sub",
1444
+ children: "create a collective"
1445
+ }),
1446
+ /* @__PURE__ */ E("div", {
1447
+ className: "cmg-form-grid",
1448
+ children: [
1449
+ /* @__PURE__ */ E("label", {
1450
+ className: "cmg-field",
1451
+ children: [/* @__PURE__ */ T("span", {
1452
+ className: "label",
1453
+ children: "name"
1454
+ }), /* @__PURE__ */ T("input", {
1455
+ className: "input",
1456
+ type: "text",
1457
+ placeholder: "AI Research Collective",
1458
+ value: m,
1459
+ onChange: (e) => h(e.target.value)
1460
+ })]
1461
+ }),
1462
+ /* @__PURE__ */ E("label", {
1463
+ className: "cmg-field cmg-field-wide",
1464
+ children: [/* @__PURE__ */ T("span", {
1465
+ className: "label",
1466
+ children: "purpose"
1467
+ }), /* @__PURE__ */ T("textarea", {
1468
+ className: "input",
1469
+ rows: 2,
1470
+ placeholder: "What does this collective do?",
1471
+ value: g,
1472
+ onChange: (e) => _(e.target.value)
1473
+ })]
1474
+ }),
1475
+ /* @__PURE__ */ T("div", {
1476
+ className: "cmg-field",
1477
+ children: /* @__PURE__ */ T(o, {
1478
+ variant: "select",
1479
+ label: "acceptance mode",
1480
+ name: "acceptance-mode",
1481
+ value: v,
1482
+ onChange: y,
1483
+ options: je
1484
+ })
1485
+ }),
1486
+ /* @__PURE__ */ T("div", {
1487
+ className: "cmg-field",
1488
+ children: /* @__PURE__ */ T(o, {
1489
+ variant: "select",
1490
+ label: "data access policy",
1491
+ name: "data-access",
1492
+ value: x,
1493
+ onChange: S,
1494
+ options: Me
1495
+ })
1496
+ }),
1497
+ /* @__PURE__ */ E("label", {
1498
+ className: "cmg-field",
1499
+ children: [/* @__PURE__ */ T("span", {
1500
+ className: "label",
1501
+ children: "link to github org (optional)"
1502
+ }), /* @__PURE__ */ E("div", {
1503
+ className: "select-wrap",
1504
+ children: [/* @__PURE__ */ E("select", {
1505
+ className: "select",
1506
+ value: D,
1507
+ onChange: (e) => O(e.target.value),
1508
+ children: [/* @__PURE__ */ T("option", {
1509
+ value: "",
1510
+ children: "Not linked"
1511
+ }), r.map((e) => /* @__PURE__ */ T("option", {
1512
+ value: e,
1513
+ children: e
1514
+ }, e))]
1515
+ }), /* @__PURE__ */ T(A, {
1516
+ className: "lucide",
1517
+ "aria-hidden": "true"
1518
+ })]
1519
+ })]
1520
+ })
1521
+ ]
1522
+ }),
1523
+ /* @__PURE__ */ E("div", {
1524
+ className: "cmg-form-foot",
1525
+ children: [/* @__PURE__ */ T("button", {
1526
+ type: "button",
1527
+ className: "btn btn-sm btn-primary",
1528
+ disabled: !m.trim() || l,
1529
+ "aria-describedby": k,
1530
+ onClick: () => u?.({
1531
+ name: m,
1532
+ purpose: g,
1533
+ mode: v,
1534
+ access: x,
1535
+ org: D
1536
+ }),
1537
+ children: l ? "creating…" : "create collective"
1538
+ }), /* @__PURE__ */ T("span", {
1539
+ id: k,
1540
+ className: "cmg-form-hint mono",
1541
+ children: je.find((e) => e.value === v)?.rationale
1542
+ })]
1543
+ })
1544
+ ]
1545
+ }),
1546
+ /* @__PURE__ */ T("ul", {
1547
+ className: "cmg-grid",
1548
+ children: n.map((e) => /* @__PURE__ */ T("li", { children: /* @__PURE__ */ E("button", {
1549
+ type: "button",
1550
+ className: "card cmg-col-card",
1551
+ onClick: () => d?.(e.id),
1552
+ children: [
1553
+ /* @__PURE__ */ T("span", {
1554
+ className: "cmg-col-ico",
1555
+ "aria-hidden": "true",
1556
+ children: /* @__PURE__ */ T(X, { size: 18 })
1557
+ }),
1558
+ /* @__PURE__ */ E("span", {
1559
+ className: "cmg-col-main",
1560
+ children: [
1561
+ /* @__PURE__ */ E("span", {
1562
+ className: "cmg-col-head",
1563
+ children: [/* @__PURE__ */ T("span", {
1564
+ className: "cmg-col-name",
1565
+ children: e.name
1566
+ }), /* @__PURE__ */ T(Fe, { mode: e.mode })]
1567
+ }),
1568
+ /* @__PURE__ */ T("span", {
1569
+ className: "cmg-col-desc",
1570
+ children: e.desc
1571
+ }),
1572
+ /* @__PURE__ */ E("span", {
1573
+ className: "cmg-col-foot mono",
1574
+ children: [
1575
+ /* @__PURE__ */ T("span", {
1576
+ className: "cmg-col-role",
1577
+ children: e.role
1578
+ }),
1579
+ e.since ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("span", {
1580
+ className: "cmg-dot",
1581
+ "aria-hidden": "true",
1582
+ children: "·"
1583
+ }), /* @__PURE__ */ T("span", { children: e.since })] }) : null,
1584
+ e.members == null ? null : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("span", {
1585
+ className: "cmg-dot",
1586
+ "aria-hidden": "true",
1587
+ children: "·"
1588
+ }), /* @__PURE__ */ E("span", {
1589
+ className: "tnum",
1590
+ children: [e.members, " members"]
1591
+ })] }),
1592
+ e.transcripts == null ? null : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("span", {
1593
+ className: "cmg-dot",
1594
+ "aria-hidden": "true",
1595
+ children: "·"
1596
+ }), /* @__PURE__ */ E("span", {
1597
+ className: "tnum",
1598
+ children: [e.transcripts, " transcripts"]
1599
+ })] })
1600
+ ]
1601
+ })
1602
+ ]
1603
+ }),
1604
+ /* @__PURE__ */ T(j, {
1605
+ size: 16,
1606
+ "aria-hidden": "true",
1607
+ className: "cmg-col-chev"
1608
+ })
1609
+ ]
1610
+ }) }, e.id))
1611
+ })
1612
+ ]
1613
+ })
1614
+ });
1615
+ }
1616
+ var Le = [
1617
+ "owner",
1618
+ "member",
1619
+ "contributor",
1620
+ "guest"
1621
+ ], Re = [
1622
+ {
1623
+ id: "claude-code",
1624
+ pct: 58
1625
+ },
1626
+ {
1627
+ id: "gemini-cli",
1628
+ pct: 24
1629
+ },
1630
+ {
1631
+ id: "opencode",
1632
+ pct: 12
1633
+ },
1634
+ {
1635
+ id: "codex",
1636
+ pct: 6
1637
+ }
1638
+ ], ze = [
1639
+ {
1640
+ id: "p1",
1641
+ provider: "claude-code",
1642
+ title: "Building a REST API from scratch",
1643
+ by: "@alice-dev"
1644
+ },
1645
+ {
1646
+ id: "p2",
1647
+ provider: "gemini-cli",
1648
+ title: "Refactoring database queries with Gemini",
1649
+ by: "anon"
1650
+ },
1651
+ {
1652
+ id: "p3",
1653
+ provider: "opencode",
1654
+ title: "Multi-agent debugging session",
1655
+ by: "@bob-ai"
1656
+ }
1657
+ ], Be = [
1658
+ {
1659
+ handle: "@alice-dev",
1660
+ name: "Alice Developer",
1661
+ role: "owner",
1662
+ n: 84
1663
+ },
1664
+ {
1665
+ handle: "@bob-ai",
1666
+ name: "Bob AI",
1667
+ role: "member",
1668
+ n: 37
1669
+ },
1670
+ {
1671
+ handle: "@charlie-ml",
1672
+ name: "Charlie ML",
1673
+ role: "member",
1674
+ n: 22
1675
+ },
1676
+ {
1677
+ handle: "anon",
1678
+ name: "anonymous",
1679
+ role: "contributor",
1680
+ n: 9
1681
+ }
1682
+ ], Ve = [
1683
+ {
1684
+ id: "r1",
1685
+ cat: "CREDENTIAL",
1686
+ catLabel: "Credential",
1687
+ catTone: "chip-err",
1688
+ tip: "A secret, token, key, or password.",
1689
+ confidence: 96,
1690
+ line: 142,
1691
+ file: "internal/aws/client.go",
1692
+ original: "AWS_SECRET = \"AKIA4F8X2Q9ZJ7K1MN3P\"",
1693
+ replacement: "AWS_SECRET = \"[REDACTED:credential]\"",
1694
+ summary: "AWS access key detected"
1695
+ },
1696
+ {
1697
+ id: "r2",
1698
+ cat: "PII",
1699
+ catLabel: "PII",
1700
+ catTone: "chip-warn",
1701
+ tip: "Personally identifiable information (name, email, phone).",
1702
+ confidence: 62,
1703
+ line: 318,
1704
+ file: "cmd/notify/main.go",
1705
+ original: "to := \"alice.developer@example.com\"",
1706
+ replacement: "to := \"[REDACTED:pii]\"",
1707
+ summary: "email address detected"
1708
+ },
1709
+ {
1710
+ id: "r3",
1711
+ cat: "PATH",
1712
+ catLabel: "Path",
1713
+ catTone: "",
1714
+ tip: "A local filesystem path.",
1715
+ confidence: 88,
1716
+ line: 12,
1717
+ file: "config/dev.yaml",
1718
+ original: "home: /Users/pigeonzow/Documents/GitHub/Neurondle",
1719
+ replacement: "home: [REDACTED:path]",
1720
+ summary: "local path detected"
1721
+ }
1722
+ ];
1723
+ function He({ item: e }) {
1724
+ let [t, n] = C(!1), r = e.confidence < 70;
1725
+ return /* @__PURE__ */ E("div", {
1726
+ className: "cmg-redact" + (t ? " cmg-redact-exposed" : "") + (r && !t ? " cmg-redact-low" : ""),
1727
+ children: [
1728
+ /* @__PURE__ */ E("div", {
1729
+ className: "cmg-redact-head",
1730
+ children: [/* @__PURE__ */ E("span", {
1731
+ className: "cmg-redact-badges",
1732
+ children: [
1733
+ /* @__PURE__ */ T("span", {
1734
+ className: "chip " + e.catTone,
1735
+ title: e.tip,
1736
+ children: e.catLabel.toLowerCase()
1737
+ }),
1738
+ /* @__PURE__ */ E("span", {
1739
+ className: "chip " + (r ? "chip-warn" : ""),
1740
+ children: [
1741
+ r ? /* @__PURE__ */ T(D, {
1742
+ size: 13,
1743
+ "aria-hidden": "true"
1744
+ }) : null,
1745
+ /* @__PURE__ */ E("span", {
1746
+ className: "tnum",
1747
+ children: [e.confidence, "%"]
1748
+ }),
1749
+ " confidence"
1750
+ ]
1751
+ }),
1752
+ t ? /* @__PURE__ */ T("span", {
1753
+ className: "chip chip-err",
1754
+ children: "un-redacted"
1755
+ }) : null
1756
+ ]
1757
+ }), /* @__PURE__ */ T("span", {
1758
+ className: "cmg-redact-file mono",
1759
+ children: e.file
1760
+ })]
1761
+ }),
1762
+ /* @__PURE__ */ T("p", {
1763
+ className: "cmg-redact-summary mono",
1764
+ children: e.summary
1765
+ }),
1766
+ /* @__PURE__ */ E("div", {
1767
+ className: "diff cmg-redact-diff",
1768
+ children: [
1769
+ /* @__PURE__ */ E("div", {
1770
+ className: "dl ctx",
1771
+ children: [
1772
+ /* @__PURE__ */ T("span", { className: "rail" }),
1773
+ /* @__PURE__ */ T("span", {
1774
+ className: "gut tnum",
1775
+ children: e.line - 1
1776
+ }),
1777
+ /* @__PURE__ */ T("span", { className: "sign" }),
1778
+ /* @__PURE__ */ T("span", {
1779
+ className: "t",
1780
+ children: "func configure() {"
1781
+ })
1782
+ ]
1783
+ }),
1784
+ /* @__PURE__ */ E("div", {
1785
+ className: "dl del",
1786
+ children: [
1787
+ /* @__PURE__ */ T("span", { className: "rail" }),
1788
+ /* @__PURE__ */ T("span", {
1789
+ className: "gut tnum",
1790
+ children: e.line
1791
+ }),
1792
+ /* @__PURE__ */ T("span", {
1793
+ className: "sign",
1794
+ children: "−"
1795
+ }),
1796
+ /* @__PURE__ */ T("span", {
1797
+ className: "t cmg-strike",
1798
+ children: e.original
1799
+ })
1800
+ ]
1801
+ }),
1802
+ /* @__PURE__ */ E("div", {
1803
+ className: "dl add",
1804
+ children: [
1805
+ /* @__PURE__ */ T("span", { className: "rail" }),
1806
+ /* @__PURE__ */ T("span", {
1807
+ className: "gut tnum",
1808
+ children: e.line
1809
+ }),
1810
+ /* @__PURE__ */ T("span", {
1811
+ className: "sign",
1812
+ children: "+"
1813
+ }),
1814
+ /* @__PURE__ */ T("span", {
1815
+ className: "t",
1816
+ children: e.replacement
1817
+ })
1818
+ ]
1819
+ }),
1820
+ /* @__PURE__ */ E("div", {
1821
+ className: "dl ctx",
1822
+ children: [
1823
+ /* @__PURE__ */ T("span", { className: "rail" }),
1824
+ /* @__PURE__ */ T("span", {
1825
+ className: "gut tnum",
1826
+ children: e.line + 1
1827
+ }),
1828
+ /* @__PURE__ */ T("span", { className: "sign" }),
1829
+ /* @__PURE__ */ T("span", {
1830
+ className: "t",
1831
+ children: "}"
1832
+ })
1833
+ ]
1834
+ })
1835
+ ]
1836
+ }),
1837
+ /* @__PURE__ */ E("div", {
1838
+ className: "cmg-redact-foot",
1839
+ children: [t ? /* @__PURE__ */ E("span", {
1840
+ className: "cmg-redact-warn mono",
1841
+ children: [/* @__PURE__ */ T(D, {
1842
+ size: 13,
1843
+ "aria-hidden": "true"
1844
+ }), " this content will be exposed"]
1845
+ }) : /* @__PURE__ */ E("span", {
1846
+ className: "cmg-redact-safe mono",
1847
+ children: [/* @__PURE__ */ T(q, {
1848
+ size: 13,
1849
+ "aria-hidden": "true"
1850
+ }), " redacted (safe default)"]
1851
+ }), t ? /* @__PURE__ */ E("button", {
1852
+ type: "button",
1853
+ className: "btn btn-sm btn-secondary",
1854
+ onClick: () => n(!1),
1855
+ children: [/* @__PURE__ */ T(L, {
1856
+ size: 14,
1857
+ "aria-hidden": "true"
1858
+ }), " redact"]
1859
+ }) : /* @__PURE__ */ E("button", {
1860
+ type: "button",
1861
+ className: "btn btn-sm btn-danger",
1862
+ onClick: () => n(!0),
1863
+ children: [/* @__PURE__ */ T(I, {
1864
+ size: 14,
1865
+ "aria-hidden": "true"
1866
+ }), " opt out"]
1867
+ })]
1868
+ })
1869
+ ]
1870
+ });
1871
+ }
1872
+ function Ue({ data: e = {}, actions: t = {} } = {}) {
1873
+ let { collective: r = {
1874
+ name: "AI Research Team",
1875
+ description: "Sharing transcripts related to AI research",
1876
+ linkedGithubOrg: "@anthropic-labs"
1877
+ }, providerShare: i = Re, pendingReview: o = ze, members: s = Be, redactions: c = Ve, browseRows: u = [
1878
+ {
1879
+ title: "Building a REST API from scratch",
1880
+ contributor: "@alice-dev",
1881
+ providerId: "claude-code",
1882
+ provider: "Claude Code",
1883
+ turns: "64",
1884
+ tokens: "182K",
1885
+ date: "Jun 15"
1886
+ },
1887
+ {
1888
+ title: "Debugging auth middleware",
1889
+ contributor: "anon",
1890
+ providerId: "gemini-cli",
1891
+ provider: "Gemini",
1892
+ turns: "31",
1893
+ tokens: "94K",
1894
+ date: "Jun 14"
1895
+ },
1896
+ {
1897
+ title: "Greenfield React app setup",
1898
+ contributor: "@bob-ai",
1899
+ providerId: "opencode",
1900
+ provider: "OpenCode",
1901
+ turns: "47",
1902
+ tokens: "121K",
1903
+ date: "Jun 12"
1904
+ }
1905
+ ], roleOptions: d = Le, initialRole: f = "owner", initialShowRedaction: m = !0, initialBrowseGated: h = !1, targetCollective: _ = Ke, stats: v = {
1906
+ transcripts: "248",
1907
+ projects: "31 projects",
1908
+ tokens: "4.2M",
1909
+ turns: "18.4K turns",
1910
+ contributors: "12",
1911
+ hours: "63h total"
1912
+ } } = e, { onRoleChange: y, onJoin: b, onLeave: x, onSettings: S, onToggleBrowse: D, onContribute: O } = t, [k, N] = C(f), [P, F] = C(m), [L, R] = C(h), B = k === "owner", V = k === "guest", ee = (e) => {
1913
+ N(e), y?.(e);
1914
+ };
1915
+ return /* @__PURE__ */ T("div", {
1916
+ className: "cmg-root",
1917
+ children: /* @__PURE__ */ E("div", {
1918
+ className: "cmg-detail",
1919
+ children: [
1920
+ /* @__PURE__ */ E("header", {
1921
+ className: "cmg-d-hero",
1922
+ children: [/* @__PURE__ */ E("div", {
1923
+ className: "crumb cmg-crumb",
1924
+ children: [
1925
+ "village ",
1926
+ /* @__PURE__ */ T(j, {
1927
+ size: 13,
1928
+ "aria-hidden": "true"
1929
+ }),
1930
+ " collectives ",
1931
+ /* @__PURE__ */ T(j, {
1932
+ size: 13,
1933
+ "aria-hidden": "true"
1934
+ }),
1935
+ " ",
1936
+ /* @__PURE__ */ T("span", {
1937
+ className: "cur",
1938
+ children: r.name
1939
+ })
1940
+ ]
1941
+ }), /* @__PURE__ */ E("div", {
1942
+ className: "cmg-d-hero-row",
1943
+ children: [/* @__PURE__ */ E("div", { children: [
1944
+ /* @__PURE__ */ T("h2", {
1945
+ className: "cmg-title",
1946
+ children: r.name
1947
+ }),
1948
+ /* @__PURE__ */ T("p", {
1949
+ className: "cmg-deck",
1950
+ children: r.description
1951
+ }),
1952
+ /* @__PURE__ */ E("span", {
1953
+ className: "cmg-orgpill mono",
1954
+ children: [
1955
+ /* @__PURE__ */ T(z, {
1956
+ size: 13,
1957
+ "aria-hidden": "true"
1958
+ }),
1959
+ " ",
1960
+ r.linkedGithubOrg || "not linked"
1961
+ ]
1962
+ })
1963
+ ] }), /* @__PURE__ */ E("div", {
1964
+ className: "cmg-d-actions btn-row",
1965
+ children: [
1966
+ /* @__PURE__ */ T("div", {
1967
+ className: "cmg-roleswitch",
1968
+ role: "group",
1969
+ "aria-label": "view as role",
1970
+ children: d.map((e) => /* @__PURE__ */ T("button", {
1971
+ type: "button",
1972
+ className: "cmg-roleseg",
1973
+ "aria-pressed": k === e,
1974
+ onClick: () => ee(e),
1975
+ children: e
1976
+ }, e))
1977
+ }),
1978
+ V && /* @__PURE__ */ E("button", {
1979
+ type: "button",
1980
+ className: "btn btn-sm btn-primary",
1981
+ onClick: () => b?.(),
1982
+ children: [/* @__PURE__ */ T(Y, {
1983
+ size: 14,
1984
+ "aria-hidden": "true"
1985
+ }), " join as contributor"]
1986
+ }),
1987
+ (k === "member" || k === "contributor") && /* @__PURE__ */ E("button", {
1988
+ type: "button",
1989
+ className: "btn btn-sm btn-primary",
1990
+ onClick: () => O?.(),
1991
+ children: [/* @__PURE__ */ T(re, {
1992
+ size: 14,
1993
+ "aria-hidden": "true"
1994
+ }), " contribute"]
1995
+ }),
1996
+ (k === "member" || k === "contributor") && /* @__PURE__ */ E("button", {
1997
+ type: "button",
1998
+ className: "btn btn-sm btn-danger",
1999
+ onClick: () => x?.(),
2000
+ children: [/* @__PURE__ */ T(U, {
2001
+ size: 14,
2002
+ "aria-hidden": "true"
2003
+ }), " leave"]
2004
+ }),
2005
+ B && /* @__PURE__ */ E("button", {
2006
+ type: "button",
2007
+ className: "btn btn-sm btn-secondary",
2008
+ onClick: () => S?.(),
2009
+ children: [/* @__PURE__ */ T(G, {
2010
+ size: 14,
2011
+ "aria-hidden": "true"
2012
+ }), " settings"]
2013
+ })
2014
+ ]
2015
+ })]
2016
+ })]
2017
+ }),
2018
+ /* @__PURE__ */ E("div", {
2019
+ className: "cmg-tiles",
2020
+ children: [
2021
+ /* @__PURE__ */ T(g, {
2022
+ label: "contributions",
2023
+ value: r.acceptanceMode || "open",
2024
+ tone: "teal"
2025
+ }),
2026
+ /* @__PURE__ */ T(g, {
2027
+ label: "access",
2028
+ value: r.dataAccess || "members only",
2029
+ tone: "amber"
2030
+ }),
2031
+ /* @__PURE__ */ T(g, {
2032
+ label: "your role",
2033
+ value: k
2034
+ })
2035
+ ]
2036
+ }),
2037
+ /* @__PURE__ */ T(p, { tiles: [
2038
+ {
2039
+ key: "transcripts",
2040
+ label: "transcripts",
2041
+ value: v.transcripts,
2042
+ sub: `across ${v.projects}`
2043
+ },
2044
+ {
2045
+ key: "tokens",
2046
+ label: "tokens",
2047
+ value: v.tokens,
2048
+ sub: v.turns
2049
+ },
2050
+ {
2051
+ key: "contributors",
2052
+ label: "contributors",
2053
+ value: v.contributors,
2054
+ sub: v.hours
2055
+ }
2056
+ ] }),
2057
+ /* @__PURE__ */ E("div", {
2058
+ className: "cmg-d-grid",
2059
+ children: [/* @__PURE__ */ E("main", {
2060
+ className: "cmg-d-main",
2061
+ children: [
2062
+ /* @__PURE__ */ E("section", {
2063
+ className: "card cmg-share",
2064
+ "aria-labelledby": "cmg-share-h",
2065
+ children: [/* @__PURE__ */ T("h3", {
2066
+ id: "cmg-share-h",
2067
+ className: "cmg-sub",
2068
+ children: "provider share"
2069
+ }), /* @__PURE__ */ T(a, {
2070
+ label: "provider share",
2071
+ total: 100,
2072
+ data: i.map((e) => ({
2073
+ label: we(e.id),
2074
+ value: e.pct
2075
+ }))
2076
+ })]
2077
+ }),
2078
+ B && /* @__PURE__ */ T("div", {
2079
+ style: {
2080
+ overflow: "auto",
2081
+ maxWidth: "100%"
2082
+ },
2083
+ children: /* @__PURE__ */ T(n, {
2084
+ title: "pending review",
2085
+ emptyLabel: "no shares awaiting review.",
2086
+ items: o.map((e) => ({
2087
+ id: e.id,
2088
+ kind: "share",
2089
+ who: e.title,
2090
+ detail: `by ${e.by}`
2091
+ }))
2092
+ })
2093
+ }),
2094
+ /* @__PURE__ */ E("section", {
2095
+ className: "card cmg-redact-sec",
2096
+ "aria-labelledby": "cmg-redact-h",
2097
+ children: [/* @__PURE__ */ E("div", {
2098
+ className: "cmg-queue-head",
2099
+ children: [/* @__PURE__ */ E("h3", {
2100
+ id: "cmg-redact-h",
2101
+ className: "cmg-sub",
2102
+ children: [/* @__PURE__ */ T(K, {
2103
+ size: 15,
2104
+ "aria-hidden": "true"
2105
+ }), " redaction review"]
2106
+ }), /* @__PURE__ */ E("button", {
2107
+ type: "button",
2108
+ className: "btn btn-sm btn-ghost",
2109
+ "aria-expanded": P,
2110
+ onClick: () => F((e) => !e),
2111
+ children: [T(P ? A : j, {
2112
+ size: 14,
2113
+ "aria-hidden": "true"
2114
+ }), P ? "hide" : "show"]
2115
+ })]
2116
+ }), P && /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ E("div", {
2117
+ className: "callout cmg-redact-note",
2118
+ children: [/* @__PURE__ */ T(K, {
2119
+ size: 16,
2120
+ "aria-hidden": "true"
2121
+ }), /* @__PURE__ */ T("div", { children: "safe by default: every detected item stays redacted unless you opt out per item. there is no bulk accept." })]
2122
+ }), /* @__PURE__ */ T("div", {
2123
+ className: "cmg-redact-list",
2124
+ children: c.map((e) => /* @__PURE__ */ T(He, { item: e }, e.id))
2125
+ })] })]
2126
+ }),
2127
+ /* @__PURE__ */ E("section", {
2128
+ className: "card cmg-browser",
2129
+ "aria-labelledby": "cmg-browser-h",
2130
+ children: [/* @__PURE__ */ E("div", {
2131
+ className: "cmg-queue-head",
2132
+ children: [/* @__PURE__ */ T("h3", {
2133
+ id: "cmg-browser-h",
2134
+ className: "cmg-sub",
2135
+ children: "data"
2136
+ }), /* @__PURE__ */ E("button", {
2137
+ type: "button",
2138
+ className: "btn btn-sm btn-ghost",
2139
+ "aria-pressed": L,
2140
+ onClick: () => {
2141
+ R((e) => {
2142
+ let t = !e;
2143
+ return D?.(t), t;
2144
+ });
2145
+ },
2146
+ children: [T(L ? H : I, {
2147
+ size: 14,
2148
+ "aria-hidden": "true"
2149
+ }), L ? "gated view" : "open view"]
2150
+ })]
2151
+ }), L ? /* @__PURE__ */ E("div", {
2152
+ className: "empty cmg-locked",
2153
+ children: [
2154
+ /* @__PURE__ */ T("span", {
2155
+ className: "ring",
2156
+ children: /* @__PURE__ */ T(H, {
2157
+ size: 20,
2158
+ "aria-hidden": "true"
2159
+ })
2160
+ }),
2161
+ /* @__PURE__ */ T("h3", { children: "data access restricted" }),
2162
+ /* @__PURE__ */ T("p", { children: "this collective is members-only. join as a full member to browse the dataset." }),
2163
+ V && /* @__PURE__ */ E("button", {
2164
+ type: "button",
2165
+ className: "btn btn-sm btn-primary",
2166
+ children: [/* @__PURE__ */ T(Y, {
2167
+ size: 14,
2168
+ "aria-hidden": "true"
2169
+ }), " join as contributor"]
2170
+ })
2171
+ ]
2172
+ }) : /* @__PURE__ */ E("table", {
2173
+ className: "dtable cmg-dtable",
2174
+ children: [/* @__PURE__ */ T("thead", { children: /* @__PURE__ */ E("tr", { children: [
2175
+ /* @__PURE__ */ T("th", {
2176
+ scope: "col",
2177
+ children: "title"
2178
+ }),
2179
+ /* @__PURE__ */ T("th", {
2180
+ scope: "col",
2181
+ children: "contributor"
2182
+ }),
2183
+ /* @__PURE__ */ T("th", {
2184
+ scope: "col",
2185
+ children: "provider"
2186
+ }),
2187
+ /* @__PURE__ */ T("th", {
2188
+ scope: "col",
2189
+ className: "cmg-num",
2190
+ children: "turns"
2191
+ }),
2192
+ /* @__PURE__ */ T("th", {
2193
+ scope: "col",
2194
+ className: "cmg-num",
2195
+ children: "tokens"
2196
+ }),
2197
+ /* @__PURE__ */ T("th", {
2198
+ scope: "col",
2199
+ children: "date"
2200
+ })
2201
+ ] }) }), /* @__PURE__ */ T("tbody", { children: u.map((e) => /* @__PURE__ */ E("tr", { children: [
2202
+ /* @__PURE__ */ T("td", { children: e.title }),
2203
+ /* @__PURE__ */ T("td", {
2204
+ className: "mono",
2205
+ children: e.contributor
2206
+ }),
2207
+ /* @__PURE__ */ E("td", { children: [
2208
+ /* @__PURE__ */ T(Te, { id: e.providerId || "codex" }),
2209
+ " ",
2210
+ e.provider
2211
+ ] }),
2212
+ /* @__PURE__ */ T("td", {
2213
+ className: "cmg-num tnum",
2214
+ children: e.turns
2215
+ }),
2216
+ /* @__PURE__ */ T("td", {
2217
+ className: "cmg-num tnum",
2218
+ children: e.tokens
2219
+ }),
2220
+ /* @__PURE__ */ T("td", {
2221
+ className: "mono tnum",
2222
+ children: e.date
2223
+ })
2224
+ ] }, e.title)) })]
2225
+ })]
2226
+ })
2227
+ ]
2228
+ }), /* @__PURE__ */ E("aside", {
2229
+ className: "sidebar cmg-d-rail",
2230
+ "aria-label": "collective sidebar",
2231
+ children: [
2232
+ B && /* @__PURE__ */ T("div", {
2233
+ style: {
2234
+ overflow: "auto",
2235
+ maxWidth: "100%"
2236
+ },
2237
+ children: /* @__PURE__ */ T(n, {
2238
+ title: "pending requests",
2239
+ emptyLabel: "no pending requests.",
2240
+ items: [{
2241
+ id: "dana-codes",
2242
+ kind: "member",
2243
+ who: "@dana-codes"
2244
+ }]
2245
+ })
2246
+ }),
2247
+ /* @__PURE__ */ T("div", {
2248
+ style: {
2249
+ overflow: "auto",
2250
+ maxWidth: "100%"
2251
+ },
2252
+ children: /* @__PURE__ */ T(l, {
2253
+ title: "members",
2254
+ roles: ["member", "contributor"],
2255
+ members: s.map((e) => ({
2256
+ handle: e.handle,
2257
+ name: e.name,
2258
+ role: e.role,
2259
+ owner: e.role === "owner"
2260
+ }))
2261
+ })
2262
+ }),
2263
+ /* @__PURE__ */ E("div", {
2264
+ className: "sb-sec",
2265
+ children: [/* @__PURE__ */ E("div", {
2266
+ className: "sb-head",
2267
+ children: [/* @__PURE__ */ T(z, {
2268
+ size: 14,
2269
+ "aria-hidden": "true",
2270
+ style: {
2271
+ verticalAlign: "-0.16em",
2272
+ marginRight: 6
2273
+ }
2274
+ }), " linked repositories"]
2275
+ }), /* @__PURE__ */ E("div", {
2276
+ className: "cmg-repo-note callout",
2277
+ children: [/* @__PURE__ */ T(M, {
2278
+ size: 16,
2279
+ "aria-hidden": "true"
2280
+ }), /* @__PURE__ */ T("div", { children: r.linkedGithubOrg ? `linked to ${r.linkedGithubOrg}.` : "the github connection isn't set up. an admin must register the github app to overlay commit timelines." })]
2281
+ })]
2282
+ })
2283
+ ]
2284
+ })]
2285
+ })
2286
+ ]
2287
+ })
2288
+ });
2289
+ }
2290
+ function We() {
2291
+ let [e, n] = C("AI Research Team"), [r, a] = C("Sharing transcripts related to AI research"), [o, c] = C("curated"), [p, m] = C("members_only"), [h, g] = C(!0), [y, b] = C("user_choice"), [x, S] = C(!1);
2292
+ return /* @__PURE__ */ T("div", {
2293
+ className: "cmg-root cmg-settings",
2294
+ children: /* @__PURE__ */ E("div", {
2295
+ className: "cmg-detail",
2296
+ children: [
2297
+ /* @__PURE__ */ E("div", {
2298
+ className: "crumb cmg-crumb",
2299
+ children: [
2300
+ "village ",
2301
+ /* @__PURE__ */ T(j, {
2302
+ size: 13,
2303
+ "aria-hidden": "true"
2304
+ }),
2305
+ " collectives ",
2306
+ /* @__PURE__ */ T(j, {
2307
+ size: 13,
2308
+ "aria-hidden": "true"
2309
+ }),
2310
+ /* @__PURE__ */ T("span", {
2311
+ className: "cur",
2312
+ children: "settings"
2313
+ })
2314
+ ]
2315
+ }),
2316
+ /* @__PURE__ */ T("header", {
2317
+ className: "cmg-d-hero",
2318
+ children: /* @__PURE__ */ E("div", {
2319
+ className: "cmg-d-hero-row",
2320
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
2321
+ className: "cmg-title",
2322
+ children: "collective settings"
2323
+ }), /* @__PURE__ */ T("p", {
2324
+ className: "cmg-deck",
2325
+ children: "edit how this collective accepts contributions and shares data."
2326
+ })] }), /* @__PURE__ */ T(v, { children: "settings" })]
2327
+ })
2328
+ }),
2329
+ /* @__PURE__ */ E("div", {
2330
+ className: "cmg-d-grid",
2331
+ children: [/* @__PURE__ */ E("main", {
2332
+ className: "cmg-d-main",
2333
+ children: [/* @__PURE__ */ E("form", {
2334
+ className: "card cmg-settings-form",
2335
+ onSubmit: (e) => {
2336
+ e.preventDefault(), S(!0), window.setTimeout(() => S(!1), 1800);
2337
+ },
2338
+ children: [/* @__PURE__ */ E("div", {
2339
+ className: "cmg-queue-head",
2340
+ children: [/* @__PURE__ */ T("h3", {
2341
+ className: "cmg-sub",
2342
+ children: "general"
2343
+ }), x ? /* @__PURE__ */ T("span", {
2344
+ className: "chip chip-ok",
2345
+ children: "saved"
2346
+ }) : null]
2347
+ }), /* @__PURE__ */ E("div", {
2348
+ className: "cmg-settings-stack",
2349
+ children: [
2350
+ /* @__PURE__ */ T(u, {
2351
+ label: "Name",
2352
+ id: "cmg-name",
2353
+ value: e,
2354
+ onChange: (e) => n(e.target.value),
2355
+ required: !0
2356
+ }),
2357
+ /* @__PURE__ */ T(i, {
2358
+ label: "Description",
2359
+ id: "cmg-description",
2360
+ value: r,
2361
+ onChange: (e) => a(e.target.value),
2362
+ rows: 2
2363
+ }),
2364
+ /* @__PURE__ */ T(f, {
2365
+ label: "Acceptance mode",
2366
+ id: "cmg-acceptance",
2367
+ value: o,
2368
+ onChange: (e) => c(e.target.value),
2369
+ options: [
2370
+ {
2371
+ value: "open",
2372
+ label: "open - anyone can share, auto-approved"
2373
+ },
2374
+ {
2375
+ value: "verified_only",
2376
+ label: "verified only - requires org affiliation"
2377
+ },
2378
+ {
2379
+ value: "curated",
2380
+ label: "curated - owner must approve each share"
2381
+ }
2382
+ ]
2383
+ }),
2384
+ /* @__PURE__ */ T(f, {
2385
+ label: "Data access",
2386
+ id: "cmg-access",
2387
+ value: p,
2388
+ onChange: (e) => m(e.target.value),
2389
+ options: [
2390
+ {
2391
+ value: "members_only",
2392
+ label: "members only - full members can browse data"
2393
+ },
2394
+ {
2395
+ value: "contributors",
2396
+ label: "contributors - anyone who contributes can browse"
2397
+ },
2398
+ {
2399
+ value: "public",
2400
+ label: "public - anyone can browse the dataset"
2401
+ }
2402
+ ]
2403
+ }),
2404
+ /* @__PURE__ */ E("div", {
2405
+ className: "sw-stack",
2406
+ children: [
2407
+ /* @__PURE__ */ T("label", {
2408
+ htmlFor: "cmg-display-members",
2409
+ className: "sw-label",
2410
+ children: "Show the members card on the collective page"
2411
+ }),
2412
+ /* @__PURE__ */ T("span", {
2413
+ className: "sw-hint",
2414
+ children: "When off, only owners can see the member list."
2415
+ }),
2416
+ /* @__PURE__ */ T("div", {
2417
+ className: "sw-toggle-row",
2418
+ children: /* @__PURE__ */ T(s, {
2419
+ id: "cmg-display-members",
2420
+ checked: h,
2421
+ onChange: (e) => g(e)
2422
+ })
2423
+ })
2424
+ ]
2425
+ }),
2426
+ /* @__PURE__ */ T(d, {
2427
+ name: "cmg-deletion-policy",
2428
+ ariaLabel: "Transcript retention on leave",
2429
+ value: y,
2430
+ onChange: b,
2431
+ options: [{
2432
+ value: "user_choice",
2433
+ label: /* @__PURE__ */ E("span", {
2434
+ className: "flex flex-col gap-0.5",
2435
+ children: [/* @__PURE__ */ T("span", {
2436
+ className: "font-mono text-[14px] text-ink-2 lowercase",
2437
+ children: "User's choice"
2438
+ }), /* @__PURE__ */ T("span", {
2439
+ className: "muted lowercase",
2440
+ children: "Each leaving member decides whether to retract their contributions."
2441
+ })]
2442
+ })
2443
+ }, {
2444
+ value: "mandatory",
2445
+ label: /* @__PURE__ */ E("span", {
2446
+ className: "flex flex-col gap-0.5",
2447
+ children: [/* @__PURE__ */ T("span", {
2448
+ className: "font-mono text-[14px] text-ink-2 lowercase",
2449
+ children: "Mandatory"
2450
+ }), /* @__PURE__ */ T("span", {
2451
+ className: "muted lowercase",
2452
+ children: "All of a leaving member's contributions are auto-retracted."
2453
+ })]
2454
+ })
2455
+ }]
2456
+ }),
2457
+ /* @__PURE__ */ E("div", {
2458
+ className: "flex items-center gap-3",
2459
+ children: [/* @__PURE__ */ T("button", {
2460
+ type: "submit",
2461
+ className: "btn btn-sm btn-primary",
2462
+ children: "save changes"
2463
+ }), /* @__PURE__ */ T(t, {
2464
+ label: "reset form",
2465
+ onConfirm: () => S(!1)
2466
+ })]
2467
+ })
2468
+ ]
2469
+ })]
2470
+ }), /* @__PURE__ */ E(_, {
2471
+ title: "danger zone",
2472
+ children: [/* @__PURE__ */ T("p", {
2473
+ className: "mono",
2474
+ children: "deleting this collective removes the governance settings and member roster."
2475
+ }), /* @__PURE__ */ T(t, {
2476
+ label: "delete collective",
2477
+ confirmLabel: "delete",
2478
+ onConfirm: () => S(!1)
2479
+ })]
2480
+ })]
2481
+ }), /* @__PURE__ */ T("aside", {
2482
+ className: "sidebar cmg-d-rail",
2483
+ "aria-label": "settings sidebar",
2484
+ children: /* @__PURE__ */ T("div", {
2485
+ style: {
2486
+ overflow: "auto",
2487
+ maxWidth: "100%"
2488
+ },
2489
+ children: /* @__PURE__ */ T(l, {
2490
+ title: "members",
2491
+ roles: ["member", "contributor"],
2492
+ members: [
2493
+ {
2494
+ id: "alice-dev",
2495
+ handle: "@alice-dev",
2496
+ name: "Alice Developer",
2497
+ role: "owner",
2498
+ owner: !0
2499
+ },
2500
+ {
2501
+ id: "bob-ai",
2502
+ handle: "@bob-ai",
2503
+ name: "Bob AI",
2504
+ role: "member",
2505
+ owner: !1
2506
+ },
2507
+ {
2508
+ id: "charlie-ml",
2509
+ handle: "@charlie-ml",
2510
+ name: "Charlie ML",
2511
+ role: "contributor",
2512
+ owner: !1
2513
+ }
2514
+ ]
2515
+ })
2516
+ })
2517
+ })]
2518
+ })
2519
+ ]
2520
+ })
2521
+ });
2522
+ }
2523
+ var Ge = [
2524
+ {
2525
+ id: "village",
2526
+ name: "village",
2527
+ branch: "fix/auth-middleware",
2528
+ transcripts: [{
2529
+ id: "v1",
2530
+ provider: "claude-code",
2531
+ title: "Debugging auth middleware with Claude Code",
2532
+ date: "Jun 15",
2533
+ visibility: "public"
2534
+ }, {
2535
+ id: "v2",
2536
+ provider: "claude-code",
2537
+ title: "Add OAuth provider split-button",
2538
+ date: "Jun 11",
2539
+ visibility: "private"
2540
+ }]
2541
+ },
2542
+ {
2543
+ id: "api-server",
2544
+ name: "api-server",
2545
+ branch: "perf/query-optimization",
2546
+ transcripts: [{
2547
+ id: "a1",
2548
+ provider: "gemini-cli",
2549
+ title: "Optimizing N+1 query issues using Gemini CLI",
2550
+ date: "Jun 14",
2551
+ visibility: "private"
2552
+ }, {
2553
+ id: "a2",
2554
+ provider: "gemini-cli",
2555
+ title: "Index audit on the events table",
2556
+ date: "Jun 09",
2557
+ visibility: "public"
2558
+ }]
2559
+ },
2560
+ {
2561
+ id: "frontend-app",
2562
+ name: "frontend-app",
2563
+ branch: "main",
2564
+ transcripts: [{
2565
+ id: "f1",
2566
+ provider: "opencode",
2567
+ title: "Greenfield React app setup",
2568
+ date: "Jun 12",
2569
+ visibility: "private"
2570
+ }]
2571
+ }
2572
+ ], Ke = {
2573
+ name: "AI Research Team",
2574
+ members: 12
2575
+ };
2576
+ function qe() {
2577
+ let [e, t] = C(() => /* @__PURE__ */ new Set(["v1"])), [n, r] = C(() => new Set(Ge.map((e) => e.id))), [i, a] = C(!1), o = x(() => {
2578
+ let e = {};
2579
+ return Ge.forEach((t) => t.transcripts.forEach((n) => e[n.id] = {
2580
+ ...n,
2581
+ project: t.name
2582
+ })), e;
2583
+ }, []);
2584
+ function s(e) {
2585
+ t((t) => {
2586
+ let n = new Set(t);
2587
+ return n.has(e) ? n.delete(e) : n.add(e), n;
2588
+ });
2589
+ }
2590
+ function c(t) {
2591
+ let n = t.transcripts.map((e) => e.id), r = n.filter((t) => e.has(t)).length;
2592
+ return r === 0 ? "none" : r === n.length ? "all" : "some";
2593
+ }
2594
+ function l(e) {
2595
+ let n = c(e);
2596
+ t((t) => {
2597
+ let r = new Set(t);
2598
+ return e.transcripts.forEach((e) => n === "all" ? r.delete(e.id) : r.add(e.id)), r;
2599
+ });
2600
+ }
2601
+ function u(e) {
2602
+ r((t) => {
2603
+ let n = new Set(t);
2604
+ return n.has(e) ? n.delete(e) : n.add(e), n;
2605
+ });
2606
+ }
2607
+ let d = [...e].map((e) => o[e]).filter(Boolean), f = d.filter((e) => e.visibility === "private").length;
2608
+ return /* @__PURE__ */ E("div", {
2609
+ className: "cmg-root",
2610
+ children: [/* @__PURE__ */ E("div", {
2611
+ className: "cmg-page",
2612
+ children: [
2613
+ /* @__PURE__ */ E("div", {
2614
+ className: "crumb cmg-crumb",
2615
+ children: [
2616
+ "village ",
2617
+ /* @__PURE__ */ T(j, {
2618
+ size: 13,
2619
+ "aria-hidden": "true"
2620
+ }),
2621
+ " AI Research Team ",
2622
+ /* @__PURE__ */ T(j, {
2623
+ size: 13,
2624
+ "aria-hidden": "true"
2625
+ }),
2626
+ " ",
2627
+ /* @__PURE__ */ T("span", {
2628
+ className: "cur",
2629
+ children: "contribute"
2630
+ })
2631
+ ]
2632
+ }),
2633
+ /* @__PURE__ */ T("header", {
2634
+ className: "cmg-head",
2635
+ children: /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
2636
+ className: "cmg-title",
2637
+ children: "contribute to AI Research Team"
2638
+ }), /* @__PURE__ */ T("p", {
2639
+ className: "cmg-deck",
2640
+ children: "select your own transcripts to share with this collective."
2641
+ })] })
2642
+ }),
2643
+ /* @__PURE__ */ T("section", {
2644
+ className: "card cmg-contribute",
2645
+ "aria-label": "your transcripts by project",
2646
+ children: Ge.map((t) => {
2647
+ let r = c(t), i = n.has(t.id);
2648
+ return /* @__PURE__ */ E("div", {
2649
+ className: "cmg-proj",
2650
+ children: [/* @__PURE__ */ E("div", {
2651
+ className: "cmg-proj-head",
2652
+ children: [/* @__PURE__ */ T("label", {
2653
+ className: "check cmg-proj-check",
2654
+ children: /* @__PURE__ */ T("input", {
2655
+ type: "checkbox",
2656
+ className: "check-box",
2657
+ checked: r === "all",
2658
+ ref: (e) => e && (e.indeterminate = r === "some"),
2659
+ onChange: () => l(t),
2660
+ "aria-label": `select all in ${t.name}`
2661
+ })
2662
+ }), /* @__PURE__ */ E("button", {
2663
+ type: "button",
2664
+ className: "cmg-proj-toggle",
2665
+ "aria-expanded": i,
2666
+ onClick: () => u(t.id),
2667
+ children: [
2668
+ T(i ? A : j, {
2669
+ size: 15,
2670
+ "aria-hidden": "true"
2671
+ }),
2672
+ /* @__PURE__ */ T("span", {
2673
+ className: "cmg-proj-name mono",
2674
+ children: t.name
2675
+ }),
2676
+ /* @__PURE__ */ E("span", {
2677
+ className: "cmg-proj-branch mono",
2678
+ children: [
2679
+ /* @__PURE__ */ T(B, {
2680
+ size: 12,
2681
+ "aria-hidden": "true"
2682
+ }),
2683
+ " ",
2684
+ t.branch
2685
+ ]
2686
+ }),
2687
+ /* @__PURE__ */ T("span", {
2688
+ className: "cmg-proj-cnt mono tnum",
2689
+ children: t.transcripts.length
2690
+ })
2691
+ ]
2692
+ })]
2693
+ }), i && /* @__PURE__ */ T("ul", {
2694
+ className: "cmg-tx-list",
2695
+ children: t.transcripts.map((t) => /* @__PURE__ */ E("li", {
2696
+ className: "cmg-tx-row",
2697
+ children: [
2698
+ /* @__PURE__ */ T("label", {
2699
+ className: "check cmg-tx-check",
2700
+ children: /* @__PURE__ */ T("input", {
2701
+ type: "checkbox",
2702
+ className: "check-box",
2703
+ checked: e.has(t.id),
2704
+ onChange: () => s(t.id),
2705
+ "aria-label": `select ${t.title}`
2706
+ })
2707
+ }),
2708
+ /* @__PURE__ */ T("span", {
2709
+ className: "cmg-pub-prov",
2710
+ children: /* @__PURE__ */ T(Te, { id: t.provider })
2711
+ }),
2712
+ /* @__PURE__ */ T("span", {
2713
+ className: "cmg-tx-title",
2714
+ children: t.title
2715
+ }),
2716
+ /* @__PURE__ */ T(ke, { v: t.visibility }),
2717
+ /* @__PURE__ */ T("span", {
2718
+ className: "cmg-tx-date mono tnum",
2719
+ children: t.date
2720
+ }),
2721
+ /* @__PURE__ */ T("button", {
2722
+ type: "button",
2723
+ className: "btn btn-sm btn-icon btn-ghost",
2724
+ "aria-label": `preview ${t.title}`,
2725
+ children: /* @__PURE__ */ T(F, {
2726
+ size: 14,
2727
+ "aria-hidden": "true"
2728
+ })
2729
+ })
2730
+ ]
2731
+ }, t.id))
2732
+ })]
2733
+ }, t.id);
2734
+ })
2735
+ }),
2736
+ /* @__PURE__ */ E("div", {
2737
+ className: "cmg-contribute-foot",
2738
+ children: [/* @__PURE__ */ E("span", {
2739
+ className: "cmg-sel-count mono",
2740
+ children: [
2741
+ /* @__PURE__ */ T("span", {
2742
+ className: "tnum",
2743
+ children: e.size
2744
+ }),
2745
+ " selected",
2746
+ f > 0 ? /* @__PURE__ */ E("span", {
2747
+ className: "cmg-sel-warn",
2748
+ children: [
2749
+ " · ",
2750
+ /* @__PURE__ */ T("span", {
2751
+ className: "tnum",
2752
+ children: f
2753
+ }),
2754
+ " private"
2755
+ ]
2756
+ }) : null
2757
+ ]
2758
+ }), /* @__PURE__ */ E("button", {
2759
+ type: "button",
2760
+ className: "btn btn-sm btn-primary",
2761
+ disabled: e.size === 0,
2762
+ onClick: () => a(!0),
2763
+ children: [
2764
+ /* @__PURE__ */ T(re, {
2765
+ size: 14,
2766
+ "aria-hidden": "true"
2767
+ }),
2768
+ " contribute ",
2769
+ e.size,
2770
+ " transcript",
2771
+ e.size === 1 ? "" : "s"
2772
+ ]
2773
+ })]
2774
+ })
2775
+ ]
2776
+ }), /* @__PURE__ */ T(h, {
2777
+ open: i,
2778
+ title: /* @__PURE__ */ E(w, { children: [
2779
+ "make ",
2780
+ f > 1 ? "these" : "this",
2781
+ " visible?"
2782
+ ] }),
2783
+ intro: f > 0 ? /* @__PURE__ */ E("p", { children: [
2784
+ /* @__PURE__ */ T("span", {
2785
+ className: "tnum",
2786
+ children: f
2787
+ }),
2788
+ " private transcript",
2789
+ f === 1 ? "" : "s",
2790
+ " will become visible to members of ",
2791
+ /* @__PURE__ */ T("b", { children: Ke.name }),
2792
+ ". visibility will change from private to shared."
2793
+ ] }) : /* @__PURE__ */ E("p", { children: [
2794
+ "contributing ",
2795
+ e.size,
2796
+ " already-visible transcript",
2797
+ e.size === 1 ? "" : "s",
2798
+ ". no visibility change."
2799
+ ] }),
2800
+ axes: [{
2801
+ icon: I,
2802
+ key: "visibility",
2803
+ value: f > 0 ? "private → shared" : "unchanged",
2804
+ scope: f > 0 ? `${f} transcript${f === 1 ? "" : "s"} newly exposed` : "no visibility change",
2805
+ tone: f > 0 ? "reveal" : "open"
2806
+ }, {
2807
+ icon: X,
2808
+ key: "shared with",
2809
+ value: Ke.name,
2810
+ scope: `${Ke.members} members can see it`,
2811
+ tone: "open"
2812
+ }],
2813
+ requireConsent: f > 0,
2814
+ confirmLabel: f > 0 ? "contribute & make visible" : "contribute",
2815
+ confirmIcon: O,
2816
+ onCancel: () => a(!1),
2817
+ onConfirm: () => a(!1),
2818
+ children: /* @__PURE__ */ E("ul", {
2819
+ className: "cmg-confirm-list",
2820
+ children: [d.slice(0, 5).map((e) => /* @__PURE__ */ E("li", {
2821
+ className: "cmg-confirm-tx",
2822
+ children: [
2823
+ /* @__PURE__ */ T(Te, { id: e.provider }),
2824
+ /* @__PURE__ */ T("span", {
2825
+ className: "cmg-confirm-title",
2826
+ children: e.title
2827
+ }),
2828
+ /* @__PURE__ */ T(ke, { v: e.visibility })
2829
+ ]
2830
+ }, e.id)), d.length > 5 ? /* @__PURE__ */ E("li", {
2831
+ className: "cmg-confirm-more mono",
2832
+ children: [
2833
+ "…and ",
2834
+ d.length - 5,
2835
+ " more"
2836
+ ]
2837
+ }) : null]
2838
+ })
2839
+ })]
2840
+ });
2841
+ }
2842
+ //#endregion
2843
+ //#region src/ui/commons/Manage.jsx
2844
+ var Je = {
2845
+ name: "",
2846
+ description: null,
2847
+ linkedGithubOrg: null,
2848
+ acceptanceMode: "",
2849
+ dataAccess: "",
2850
+ role: "",
2851
+ memberSince: null
2852
+ }, Ye = {
2853
+ transcripts: "0",
2854
+ projects: "0 providers",
2855
+ tokens: "0",
2856
+ turns: "0 turns",
2857
+ contributors: "0 members",
2858
+ hours: "0 total"
2859
+ }, Xe = {
2860
+ collective: Je,
2861
+ providerShare: [],
2862
+ pendingReview: [],
2863
+ members: [],
2864
+ redactions: [],
2865
+ browseRows: [],
2866
+ roleOptions: [],
2867
+ initialRole: "",
2868
+ initialShowRedaction: !1,
2869
+ initialBrowseGated: !1,
2870
+ stats: Ye
2871
+ }, Ze = [
2872
+ "owner",
2873
+ "member",
2874
+ "contributor",
2875
+ "guest"
2876
+ ];
2877
+ function Qe(e) {
2878
+ if (!e) return "unknown";
2879
+ let t = new Date(e);
2880
+ return Number.isNaN(t.getTime()) ? "unknown" : new Intl.DateTimeFormat("en-US", {
2881
+ month: "short",
2882
+ day: "numeric"
2883
+ }).format(t);
2884
+ }
2885
+ function $e({ data: e = Xe, actions: t = {}, demoRoleSwitcher: r = !1 } = {}) {
2886
+ let { collective: i = Je, providerShare: o = [], pendingReview: s = [], members: c = [], redactions: u = [], browseRows: d = [], roleOptions: f = [], initialRole: m = "", initialShowRedaction: h = !1, initialBrowseGated: _ = !1, stats: y = Ye } = e || Xe, { onRoleChange: b, onJoin: S, onLeave: w, onSettings: D, onContribute: O, onToggleBrowse: k } = t || {}, [A, M] = C(m || i.role || ""), [N, P] = C(!!h), [F, R] = C(!!_), B = A || i.role || "guest", V = B === "owner", ee = B === "guest", te = r && f.length > 0, W = x(() => te ? f : [], [te, f]), ne = (e) => {
2887
+ M(e), b?.(e);
2888
+ };
2889
+ return /* @__PURE__ */ T("div", {
2890
+ className: "cmg-root",
2891
+ children: /* @__PURE__ */ E("div", {
2892
+ className: "cmg-detail",
2893
+ children: [
2894
+ /* @__PURE__ */ E("header", {
2895
+ className: "cmg-d-hero",
2896
+ children: [/* @__PURE__ */ E("div", {
2897
+ className: "crumb cmg-crumb",
2898
+ children: [
2899
+ "village ",
2900
+ /* @__PURE__ */ T(j, {
2901
+ size: 13,
2902
+ "aria-hidden": "true"
2903
+ }),
2904
+ " collectives",
2905
+ " ",
2906
+ /* @__PURE__ */ T(j, {
2907
+ size: 13,
2908
+ "aria-hidden": "true"
2909
+ }),
2910
+ /* @__PURE__ */ T("span", {
2911
+ className: "cur",
2912
+ children: i.name || "collective"
2913
+ })
2914
+ ]
2915
+ }), /* @__PURE__ */ E("div", {
2916
+ className: "cmg-d-hero-row",
2917
+ children: [/* @__PURE__ */ E("div", { children: [
2918
+ /* @__PURE__ */ T("h2", {
2919
+ className: "cmg-title",
2920
+ children: i.name || "collective"
2921
+ }),
2922
+ /* @__PURE__ */ T("p", {
2923
+ className: "cmg-deck",
2924
+ children: i.description || "shared collective governance"
2925
+ }),
2926
+ /* @__PURE__ */ E("span", {
2927
+ className: "cmg-orgpill mono",
2928
+ children: [
2929
+ /* @__PURE__ */ T(z, {
2930
+ size: 13,
2931
+ "aria-hidden": "true"
2932
+ }),
2933
+ " ",
2934
+ i.linkedGithubOrg || "not linked"
2935
+ ]
2936
+ })
2937
+ ] }), /* @__PURE__ */ E("div", {
2938
+ className: "cmg-d-actions btn-row",
2939
+ children: [
2940
+ te ? /* @__PURE__ */ T("div", {
2941
+ className: "cmg-roleswitch",
2942
+ role: "group",
2943
+ "aria-label": "view as role",
2944
+ children: W.map((e) => /* @__PURE__ */ T("button", {
2945
+ type: "button",
2946
+ className: "cmg-roleseg",
2947
+ "aria-pressed": A === e,
2948
+ onClick: () => ne(e),
2949
+ children: e
2950
+ }, e))
2951
+ }) : /* @__PURE__ */ T("div", {
2952
+ className: "cmg-roleswitch",
2953
+ role: "group",
2954
+ "aria-label": "your role",
2955
+ children: Ze.map((e) => /* @__PURE__ */ T("span", {
2956
+ className: "cmg-roleseg",
2957
+ "aria-current": B === e ? "true" : void 0,
2958
+ "data-active": B === e || void 0,
2959
+ style: { cursor: "default" },
2960
+ children: e
2961
+ }, e))
2962
+ }),
2963
+ ee ? /* @__PURE__ */ E("button", {
2964
+ type: "button",
2965
+ className: "btn btn-sm btn-primary",
2966
+ onClick: () => S?.(),
2967
+ children: [/* @__PURE__ */ T(Y, {
2968
+ size: 14,
2969
+ "aria-hidden": "true"
2970
+ }), " join as contributor"]
2971
+ }) : null,
2972
+ (B === "member" || B === "contributor") && O ? /* @__PURE__ */ E("button", {
2973
+ type: "button",
2974
+ className: "btn btn-sm btn-primary",
2975
+ onClick: () => O?.(),
2976
+ children: [/* @__PURE__ */ T(K, {
2977
+ size: 14,
2978
+ "aria-hidden": "true"
2979
+ }), " contribute"]
2980
+ }) : null,
2981
+ (B === "member" || B === "contributor") && w ? /* @__PURE__ */ E("button", {
2982
+ type: "button",
2983
+ className: "btn btn-sm btn-danger",
2984
+ onClick: () => w?.(),
2985
+ children: [/* @__PURE__ */ T(U, {
2986
+ size: 14,
2987
+ "aria-hidden": "true"
2988
+ }), " leave"]
2989
+ }) : null,
2990
+ V && D ? /* @__PURE__ */ E("button", {
2991
+ type: "button",
2992
+ className: "btn btn-sm btn-secondary",
2993
+ onClick: () => D?.(),
2994
+ children: [/* @__PURE__ */ T(G, {
2995
+ size: 14,
2996
+ "aria-hidden": "true"
2997
+ }), " settings"]
2998
+ }) : null
2999
+ ]
3000
+ })]
3001
+ })]
3002
+ }),
3003
+ /* @__PURE__ */ E("div", {
3004
+ className: "cmg-tiles",
3005
+ children: [
3006
+ /* @__PURE__ */ T(g, {
3007
+ label: "contributions",
3008
+ value: i.acceptanceMode || "open",
3009
+ tone: "teal"
3010
+ }),
3011
+ /* @__PURE__ */ T(g, {
3012
+ label: "access",
3013
+ value: i.dataAccess || "members only",
3014
+ tone: "amber"
3015
+ }),
3016
+ /* @__PURE__ */ T(g, {
3017
+ label: "your role",
3018
+ value: B
3019
+ })
3020
+ ]
3021
+ }),
3022
+ /* @__PURE__ */ T(p, { tiles: [
3023
+ {
3024
+ key: "transcripts",
3025
+ label: "transcripts",
3026
+ value: y.transcripts,
3027
+ sub: `across ${y.projects}`
3028
+ },
3029
+ {
3030
+ key: "tokens",
3031
+ label: "tokens",
3032
+ value: y.tokens,
3033
+ sub: y.turns
3034
+ },
3035
+ {
3036
+ key: "contributors",
3037
+ label: "contributors",
3038
+ value: y.contributors,
3039
+ sub: y.hours
3040
+ }
3041
+ ] }),
3042
+ /* @__PURE__ */ E("div", {
3043
+ className: "cmg-d-grid",
3044
+ children: [/* @__PURE__ */ E("main", {
3045
+ className: "cmg-d-main",
3046
+ children: [
3047
+ o.length > 0 ? /* @__PURE__ */ E("section", {
3048
+ className: "card cmg-share",
3049
+ "aria-labelledby": "cmg-share-h",
3050
+ children: [/* @__PURE__ */ T("h3", {
3051
+ id: "cmg-share-h",
3052
+ className: "cmg-sub",
3053
+ children: "provider share"
3054
+ }), /* @__PURE__ */ T(a, {
3055
+ label: "provider share",
3056
+ total: 100,
3057
+ data: o.map((e) => ({
3058
+ label: we(e.id),
3059
+ value: e.pct
3060
+ }))
3061
+ })]
3062
+ }) : null,
3063
+ s.length > 0 ? /* @__PURE__ */ T("div", {
3064
+ style: {
3065
+ overflow: "auto",
3066
+ maxWidth: "100%"
3067
+ },
3068
+ children: /* @__PURE__ */ T(n, {
3069
+ title: "pending review",
3070
+ emptyLabel: "no shares awaiting review.",
3071
+ items: s.map((e) => ({
3072
+ id: e.id,
3073
+ kind: "share",
3074
+ who: e.title || "untitled transcript",
3075
+ detail: `by ${e.by || "anon"}`
3076
+ }))
3077
+ })
3078
+ }) : null,
3079
+ u.length > 0 ? /* @__PURE__ */ E("section", {
3080
+ className: "card cmg-redact-sec",
3081
+ "aria-labelledby": "cmg-redact-h",
3082
+ children: [/* @__PURE__ */ E("div", {
3083
+ className: "cmg-queue-head",
3084
+ children: [/* @__PURE__ */ E("h3", {
3085
+ id: "cmg-redact-h",
3086
+ className: "cmg-sub",
3087
+ children: [/* @__PURE__ */ T(K, {
3088
+ size: 15,
3089
+ "aria-hidden": "true"
3090
+ }), " redaction review"]
3091
+ }), /* @__PURE__ */ E("button", {
3092
+ type: "button",
3093
+ className: "btn btn-sm btn-ghost",
3094
+ "aria-expanded": N,
3095
+ onClick: () => P((e) => !e),
3096
+ children: [T(N ? L : I, {
3097
+ size: 14,
3098
+ "aria-hidden": "true"
3099
+ }), N ? "hide" : "show"]
3100
+ })]
3101
+ }), N ? /* @__PURE__ */ T("div", {
3102
+ className: "cmg-redact-list",
3103
+ children: u.map((e) => /* @__PURE__ */ E("article", {
3104
+ className: "cmg-redact",
3105
+ children: [
3106
+ /* @__PURE__ */ E("div", {
3107
+ className: "cmg-redact-head",
3108
+ children: [/* @__PURE__ */ T("span", {
3109
+ className: "cmg-redact-badges",
3110
+ children: /* @__PURE__ */ T(v, { children: String(e.catLabel || e.cat || "item").toLowerCase() })
3111
+ }), /* @__PURE__ */ T("span", {
3112
+ className: "cmg-redact-file mono",
3113
+ children: e.file || "unknown"
3114
+ })]
3115
+ }),
3116
+ /* @__PURE__ */ T("p", {
3117
+ className: "cmg-redact-summary mono",
3118
+ children: e.summary || "redaction review item"
3119
+ }),
3120
+ /* @__PURE__ */ E("div", {
3121
+ className: "callout cmg-redact-note",
3122
+ children: [/* @__PURE__ */ T(K, {
3123
+ size: 16,
3124
+ "aria-hidden": "true"
3125
+ }), /* @__PURE__ */ T("div", { children: e.tip || "review this redaction item before exposing it." })]
3126
+ })
3127
+ ]
3128
+ }, e.id))
3129
+ }) : null]
3130
+ }) : null,
3131
+ /* @__PURE__ */ E("section", {
3132
+ className: "card cmg-browser",
3133
+ "aria-labelledby": "cmg-browser-h",
3134
+ children: [/* @__PURE__ */ E("div", {
3135
+ className: "cmg-queue-head",
3136
+ children: [/* @__PURE__ */ T("h3", {
3137
+ id: "cmg-browser-h",
3138
+ className: "cmg-sub",
3139
+ children: "data"
3140
+ }), /* @__PURE__ */ E("button", {
3141
+ type: "button",
3142
+ className: "btn btn-sm btn-ghost",
3143
+ "aria-pressed": F,
3144
+ onClick: () => {
3145
+ R((e) => {
3146
+ let t = !e;
3147
+ return k?.(t), t;
3148
+ });
3149
+ },
3150
+ children: [T(F ? H : I, {
3151
+ size: 14,
3152
+ "aria-hidden": "true"
3153
+ }), F ? "gated view" : "open view"]
3154
+ })]
3155
+ }), F ? /* @__PURE__ */ E("div", {
3156
+ className: "empty cmg-locked",
3157
+ children: [
3158
+ /* @__PURE__ */ T("span", {
3159
+ className: "ring",
3160
+ children: /* @__PURE__ */ T(H, {
3161
+ size: 20,
3162
+ "aria-hidden": "true"
3163
+ })
3164
+ }),
3165
+ /* @__PURE__ */ T("h3", { children: "data access restricted" }),
3166
+ /* @__PURE__ */ T("p", { children: "this collective is members-only. join as a full member to browse the dataset." }),
3167
+ ee ? /* @__PURE__ */ E("button", {
3168
+ type: "button",
3169
+ className: "btn btn-sm btn-primary",
3170
+ onClick: () => S?.(),
3171
+ children: [/* @__PURE__ */ T(Y, {
3172
+ size: 14,
3173
+ "aria-hidden": "true"
3174
+ }), " join as contributor"]
3175
+ }) : null
3176
+ ]
3177
+ }) : d.length > 0 ? /* @__PURE__ */ E("table", {
3178
+ className: "dtable cmg-dtable",
3179
+ children: [/* @__PURE__ */ T("thead", { children: /* @__PURE__ */ E("tr", { children: [
3180
+ /* @__PURE__ */ T("th", {
3181
+ scope: "col",
3182
+ children: "title"
3183
+ }),
3184
+ /* @__PURE__ */ T("th", {
3185
+ scope: "col",
3186
+ children: "contributor"
3187
+ }),
3188
+ /* @__PURE__ */ T("th", {
3189
+ scope: "col",
3190
+ children: "provider"
3191
+ }),
3192
+ /* @__PURE__ */ T("th", {
3193
+ scope: "col",
3194
+ className: "cmg-num",
3195
+ children: "turns"
3196
+ }),
3197
+ /* @__PURE__ */ T("th", {
3198
+ scope: "col",
3199
+ className: "cmg-num",
3200
+ children: "tokens"
3201
+ }),
3202
+ /* @__PURE__ */ T("th", {
3203
+ scope: "col",
3204
+ children: "date"
3205
+ })
3206
+ ] }) }), /* @__PURE__ */ T("tbody", { children: d.map((e) => /* @__PURE__ */ E("tr", { children: [
3207
+ /* @__PURE__ */ T("td", { children: e.title || "untitled transcript" }),
3208
+ /* @__PURE__ */ T("td", {
3209
+ className: "mono",
3210
+ children: e.contributor || "anon"
3211
+ }),
3212
+ /* @__PURE__ */ E("td", { children: [
3213
+ /* @__PURE__ */ T(z, {
3214
+ size: 12,
3215
+ "aria-hidden": "true"
3216
+ }),
3217
+ " ",
3218
+ e.providerId ? we(e.providerId) : e.provider || Ce(e.providerId)
3219
+ ] }),
3220
+ /* @__PURE__ */ T("td", {
3221
+ className: "cmg-num tnum",
3222
+ children: e.turns || "0"
3223
+ }),
3224
+ /* @__PURE__ */ T("td", {
3225
+ className: "cmg-num tnum",
3226
+ children: e.tokens || "0"
3227
+ }),
3228
+ /* @__PURE__ */ T("td", {
3229
+ className: "mono tnum",
3230
+ children: e.date || Qe(null)
3231
+ })
3232
+ ] }, `${e.title}-${e.contributor}`)) })]
3233
+ }) : /* @__PURE__ */ E("div", {
3234
+ className: "empty cmg-locked",
3235
+ children: [
3236
+ /* @__PURE__ */ T("span", {
3237
+ className: "ring",
3238
+ children: /* @__PURE__ */ T(X, {
3239
+ size: 20,
3240
+ "aria-hidden": "true"
3241
+ })
3242
+ }),
3243
+ /* @__PURE__ */ T("h3", { children: "no data yet" }),
3244
+ /* @__PURE__ */ T("p", { children: "this collective has no visible transcripts to browse." })
3245
+ ]
3246
+ })]
3247
+ })
3248
+ ]
3249
+ }), c.length > 0 ? /* @__PURE__ */ T("aside", {
3250
+ className: "sidebar cmg-d-rail",
3251
+ "aria-label": "collective sidebar",
3252
+ children: /* @__PURE__ */ T("div", {
3253
+ style: {
3254
+ overflow: "auto",
3255
+ maxWidth: "100%"
3256
+ },
3257
+ children: /* @__PURE__ */ T(l, {
3258
+ title: "members",
3259
+ roles: ["member", "contributor"],
3260
+ members: c.map((e) => ({
3261
+ handle: e.handle || e.githubUsername || "@unknown",
3262
+ name: e.name || e.displayName || e.githubUsername || "unknown",
3263
+ role: e.role || "member",
3264
+ owner: e.role === "owner"
3265
+ }))
3266
+ })
3267
+ })
3268
+ }) : null]
3269
+ })
3270
+ ]
3271
+ })
3272
+ });
3273
+ }
3274
+ //#endregion
3275
+ export { oe as ACCEPTANCE_MODES, $ as COLLECTIVE_ROLES, Ue as CollectiveDetailView, We as CollectiveSettingsView, Ie as CollectivesView, qe as ContributeView, se as DATA_ACCESS_POLICIES, xe as Explore, $e as Manage, Ae as PublishView, Q as TRANSCRIPT_DELETION_POLICIES, ae as TRANSCRIPT_VISIBILITIES };