@thxgg/steward 0.1.18 → 0.1.20

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 (126) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B3PShd4B.js +3 -0
  3. package/.output/public/_nuxt/{CJlXUkTg.js → B7kcsnX1.js} +1 -1
  4. package/.output/public/_nuxt/B9j1BHt9.js +1 -0
  5. package/.output/public/_nuxt/BGSfDLaX.js +1 -0
  6. package/.output/public/_nuxt/{C_HVaH3B.js → BTHAQvnA.js} +1 -1
  7. package/.output/public/_nuxt/C2LWefrW.js +1 -0
  8. package/.output/public/_nuxt/{WUF6Thhn.js → CV5HFGKm.js} +1 -1
  9. package/.output/public/_nuxt/{CGzrvVc6.js → ClxxfTZn.js} +1 -1
  10. package/.output/public/_nuxt/{QAzsKGuP.js → CzCDTesu.js} +1 -1
  11. package/.output/public/_nuxt/{DEr8q68O.js → D6aZT905.js} +1 -1
  12. package/.output/public/_nuxt/{TSsR_oCL.js → D9fz0wy8.js} +1 -1
  13. package/.output/public/_nuxt/DDV2bymk.js +60 -0
  14. package/.output/public/_nuxt/DK5VWQk7.js +1 -0
  15. package/.output/public/_nuxt/{DAnnHVQP.js → DSqaInP-.js} +1 -1
  16. package/.output/public/_nuxt/Detail.CYc96mGf.css +1 -0
  17. package/.output/public/_nuxt/{BA4e9-N5.js → Dn6yoG20.js} +2 -2
  18. package/.output/public/_nuxt/{-z_Gr0GN.js → a87LfEfa.js} +1 -1
  19. package/.output/public/_nuxt/builds/latest.json +1 -1
  20. package/.output/public/_nuxt/builds/meta/37438177-5e14-4a46-9af4-eae491ba1f24.json +1 -0
  21. package/.output/public/_nuxt/entry.Dp3jx0Yw.css +1 -0
  22. package/.output/public/_nuxt/zhOijcjw.js +30 -0
  23. package/.output/server/chunks/_/prd-service.mjs +101 -68
  24. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  25. package/.output/server/chunks/_/repos.mjs +3 -179
  26. package/.output/server/chunks/_/repos.mjs.map +1 -1
  27. package/.output/server/chunks/_/task-graph.mjs +8 -4
  28. package/.output/server/chunks/_/task-graph.mjs.map +1 -1
  29. package/.output/server/chunks/_/watcher.mjs +2 -32
  30. package/.output/server/chunks/_/watcher.mjs.map +1 -1
  31. package/.output/server/chunks/build/{Detail-BQSkP9Zm.mjs → Detail-B7yBNjgp.mjs} +324 -140
  32. package/.output/server/chunks/build/Detail-B7yBNjgp.mjs.map +1 -0
  33. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs +4 -0
  34. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs.map +1 -0
  35. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs +8 -0
  36. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs.map +1 -0
  37. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs +10 -0
  38. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs.map +1 -0
  39. package/.output/server/chunks/build/{_prd_-CBR_wm9i.mjs → _prd_-DY25apyl.mjs} +81 -6
  40. package/.output/server/chunks/build/_prd_-DY25apyl.mjs.map +1 -0
  41. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  42. package/.output/server/chunks/build/{default-Cao5eO80.mjs → default-BKKgG7HJ.mjs} +221 -23
  43. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +1 -0
  44. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +2 -0
  45. package/.output/server/chunks/build/error-500-D_bcARXN.mjs +2 -0
  46. package/.output/server/chunks/build/{index-ljj9uTXI.mjs → index-DE1tjHAd.mjs} +4 -3
  47. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +1 -0
  48. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
  49. package/.output/server/chunks/build/{repo-graph-CVnkmn8i.mjs → repo-graph-CUcJKW1F.mjs} +26 -11
  50. package/.output/server/chunks/build/repo-graph-CUcJKW1F.mjs.map +1 -0
  51. package/.output/server/chunks/build/server.mjs +15 -13
  52. package/.output/server/chunks/build/styles.mjs +2 -2
  53. package/.output/server/chunks/build/{usePrd-f7ylhIqs.mjs → usePrd-hXZOmvAv.mjs} +113 -9
  54. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +1 -0
  55. package/.output/server/chunks/nitro/nitro.mjs +1311 -599
  56. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  57. package/.output/server/chunks/routes/api/index.get.mjs +2 -1
  58. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  59. package/.output/server/chunks/routes/api/index.post.mjs +2 -2
  60. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +2 -1
  61. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
  62. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +2 -1
  63. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs.map +1 -1
  64. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +2 -1
  65. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs.map +1 -1
  66. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +2 -1
  67. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs.map +1 -1
  68. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +27 -4
  69. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
  70. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs +93 -0
  71. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs.map +1 -0
  72. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +2 -2
  73. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +3 -3
  74. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +3 -3
  75. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +3 -3
  76. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +2 -2
  77. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +27 -4
  78. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
  79. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +2 -1
  80. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs.map +1 -1
  81. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +2 -1
  82. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs.map +1 -1
  83. package/.output/server/chunks/routes/api/runtime.get.mjs +2 -0
  84. package/.output/server/chunks/routes/api/runtime.get.mjs.map +1 -1
  85. package/.output/server/chunks/routes/api/state-migration/status.get.mjs +21 -0
  86. package/.output/server/chunks/routes/api/state-migration/status.get.mjs.map +1 -0
  87. package/.output/server/chunks/routes/api/watch.get.mjs +4 -3
  88. package/.output/server/chunks/routes/api/watch.get.mjs.map +1 -1
  89. package/.output/server/chunks/routes/renderer.mjs +1 -1
  90. package/.output/server/index.mjs +3 -1
  91. package/.output/server/index.mjs.map +1 -1
  92. package/.output/server/package.json +1 -1
  93. package/README.md +3 -0
  94. package/dist/app/lib/async-request.js +39 -0
  95. package/dist/server/utils/db.js +15 -0
  96. package/dist/server/utils/prd-archive.js +53 -0
  97. package/dist/server/utils/prd-service.js +26 -6
  98. package/dist/server/utils/prd-state.js +11 -2
  99. package/dist/server/utils/state-migration.js +225 -0
  100. package/dist/server/utils/state-schema.js +181 -4
  101. package/dist/server/utils/task-graph.js +10 -3
  102. package/package.json +1 -1
  103. package/.output/public/_nuxt/5LlyHjkF.js +0 -60
  104. package/.output/public/_nuxt/BA0u_CRT.js +0 -1
  105. package/.output/public/_nuxt/BO8EM227.js +0 -3
  106. package/.output/public/_nuxt/C0XT5P3Q.js +0 -1
  107. package/.output/public/_nuxt/CZsXZugv.js +0 -1
  108. package/.output/public/_nuxt/Detail.DSyVQNdr.css +0 -1
  109. package/.output/public/_nuxt/DrXxYwWw.js +0 -30
  110. package/.output/public/_nuxt/builds/meta/19e0e040-a531-4c25-b46d-a6ca54a1ae3e.json +0 -1
  111. package/.output/public/_nuxt/entry.LcDOtJnR.css +0 -1
  112. package/.output/public/_nuxt/i9wn3hS7.js +0 -1
  113. package/.output/server/chunks/build/Detail-BQSkP9Zm.mjs.map +0 -1
  114. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-BFsE2PCW.mjs +0 -4
  115. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-BFsE2PCW.mjs.map +0 -1
  116. package/.output/server/chunks/build/DiffViewer-styles.D2bqX3nK.mjs +0 -8
  117. package/.output/server/chunks/build/DiffViewer-styles.D2bqX3nK.mjs.map +0 -1
  118. package/.output/server/chunks/build/DiffViewer-styles.FoV36wuV.mjs +0 -10
  119. package/.output/server/chunks/build/DiffViewer-styles.FoV36wuV.mjs.map +0 -1
  120. package/.output/server/chunks/build/_prd_-CBR_wm9i.mjs.map +0 -1
  121. package/.output/server/chunks/build/default-Cao5eO80.mjs.map +0 -1
  122. package/.output/server/chunks/build/index-ByZO4Bvq.mjs +0 -76
  123. package/.output/server/chunks/build/index-ByZO4Bvq.mjs.map +0 -1
  124. package/.output/server/chunks/build/index-ljj9uTXI.mjs.map +0 -1
  125. package/.output/server/chunks/build/repo-graph-CVnkmn8i.mjs.map +0 -1
  126. package/.output/server/chunks/build/usePrd-f7ylhIqs.mjs.map +0 -1
@@ -1,10 +1,14 @@
1
- import { g as useThemeMode, b as useRoute, _ as __nuxt_component_0, a as useRouter } from './server.mjs';
2
- import { defineComponent, ref, provide, mergeProps, isRef, unref, withCtx, createVNode, useModel, computed, watch, createTextVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, createCommentVNode, mergeModels, renderSlot, reactive, useSSRContext } from 'vue';
3
- import { ssrRenderAttrs, ssrRenderComponent, ssrRenderSlot, ssrRenderList, ssrInterpolate } from 'vue/server-renderer';
4
- import { FileText, Folder, Check, Monitor, Sun, Moon, GitBranch, Keyboard, RefreshCw, Search, X } from 'lucide-vue-next';
1
+ import { defineComponent, computed, ref, provide, mergeProps, isRef, unref, withCtx, createVNode, createTextVNode, useModel, watch, toDisplayString, openBlock, createBlock, createCommentVNode, Fragment, renderList, mergeModels, renderSlot, reactive, useSSRContext } from 'vue';
2
+ import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderSlot, ssrRenderClass, ssrRenderStyle, ssrRenderList } from 'vue/server-renderer';
3
+ import { Loader2, AlertTriangle, Database, FileText, Folder, Check, Monitor, Sun, Moon, GitBranch, Keyboard, RefreshCw, Archive, Search, X } from 'lucide-vue-next';
4
+ import { useMediaQuery, reactiveOmit, useCurrentElement } from '@vueuse/core';
5
+ import { a as usePrd, u as useRepos, B as Button, c as cn, b as useToast } from './usePrd-hXZOmvAv.mjs';
6
+ import { h as useThemeMode, b as useRoute, _ as __nuxt_component_1, d as useRuntimeConfig, a as useRouter, g as useState } from './server.mjs';
5
7
  import { useForwardPropsEmits, useForwardProps, ListboxFilter, ListboxContent, Primitive, useId, ListboxGroup, ListboxGroupLabel, ListboxItem, Separator, DialogRoot, DialogPortal, DialogContent as DialogContent$1, DialogClose, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, createContext, useFilter, ListboxRoot, DialogOverlay as DialogOverlay$1, DialogTrigger } from 'reka-ui';
6
- import { reactiveOmit, useCurrentElement } from '@vueuse/core';
7
- import { a as usePrd, u as useRepos, c as cn, b as useToast } from './usePrd-f7ylhIqs.mjs';
8
+ import 'class-variance-authority';
9
+ import 'clsx';
10
+ import 'tailwind-merge';
11
+ import 'vue-sonner';
8
12
  import '../nitro/nitro.mjs';
9
13
  import 'node:http';
10
14
  import 'node:https';
@@ -13,19 +17,127 @@ import 'node:buffer';
13
17
  import 'node:fs';
14
18
  import 'node:path';
15
19
  import 'node:crypto';
20
+ import 'node:os';
21
+ import 'zod';
16
22
  import 'node:url';
23
+ import '@vue/shared';
24
+ import 'perfect-debounce';
17
25
  import '../routes/renderer.mjs';
18
26
  import 'vue-bundle-renderer/runtime';
19
27
  import 'unhead/server';
20
28
  import 'devalue';
21
29
  import 'unhead/utils';
22
30
  import 'vue-router';
23
- import 'clsx';
24
- import 'tailwind-merge';
25
- import 'vue-sonner';
26
- import '@vue/shared';
27
- import 'perfect-debounce';
28
31
 
32
+ const defaultStatus = {
33
+ state: "idle",
34
+ version: "progress-json-v2",
35
+ startedAt: null,
36
+ completedAt: null,
37
+ totalRows: 0,
38
+ processedRows: 0,
39
+ migratedRows: 0,
40
+ failedRows: 0,
41
+ currentSlug: null,
42
+ errorMessage: null,
43
+ percent: 0
44
+ };
45
+ function useStateMigration() {
46
+ const status = useState("state-migration:status", () => ({ ...defaultStatus }));
47
+ const initialized = useState("state-migration:initialized", () => false);
48
+ const isBlocking = computed(() => status.value.state === "running" || status.value.state === "failed");
49
+ async function refreshStatus() {
50
+ {
51
+ return;
52
+ }
53
+ }
54
+ return {
55
+ status,
56
+ initialized,
57
+ isBlocking,
58
+ refreshStatus
59
+ };
60
+ }
61
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
62
+ __name: "StateMigrationOverlay",
63
+ __ssrInlineRender: true,
64
+ setup(__props) {
65
+ const { status, initialized, isBlocking, refreshStatus } = useStateMigration();
66
+ const prefersReducedMotion = useMediaQuery("(prefers-reduced-motion: reduce)");
67
+ const progressPercent = computed(() => Math.max(0, Math.min(100, status.value.percent)));
68
+ const progressWidth = computed(() => `${progressPercent.value}%`);
69
+ const progressLabel = computed(() => {
70
+ const total = status.value.totalRows;
71
+ const processed = status.value.processedRows;
72
+ if (total <= 0) {
73
+ return "Preparing migration...";
74
+ }
75
+ return `${processed} of ${total} PRD states migrated`;
76
+ });
77
+ const statusText = computed(() => {
78
+ if (status.value.state === "failed") {
79
+ return status.value.errorMessage || "Migration failed before completion.";
80
+ }
81
+ if (status.value.currentSlug) {
82
+ return `Migrating ${status.value.currentSlug}`;
83
+ }
84
+ return "Preparing migration steps";
85
+ });
86
+ const shouldShow = computed(() => initialized.value && isBlocking.value);
87
+ return (_ctx, _push, _parent, _attrs) => {
88
+ if (unref(shouldShow)) {
89
+ _push(`<div${ssrRenderAttrs(mergeProps({
90
+ class: "fixed inset-0 z-[110] flex items-center justify-center bg-[radial-gradient(circle_at_18%_20%,oklch(0.92_0.03_218_/_0.65),transparent_52%),radial-gradient(circle_at_82%_80%,oklch(0.95_0.04_40_/_0.5),transparent_46%),oklch(0.17_0.02_240_/_0.72)] px-4 backdrop-blur-sm",
91
+ role: "alert",
92
+ "aria-live": "assertive",
93
+ "aria-busy": "true"
94
+ }, _attrs))}><div class="w-full max-w-xl rounded-2xl border border-border/70 bg-background/95 p-6 shadow-2xl md:p-7"><div class="mb-4 flex items-start gap-3"><div class="flex size-11 shrink-0 items-center justify-center rounded-xl border border-border bg-muted/60">`);
95
+ if (unref(status).state === "running") {
96
+ _push(ssrRenderComponent(unref(Loader2), {
97
+ class: ["size-5 text-primary", unref(prefersReducedMotion) ? "" : "animate-spin"]
98
+ }, null, _parent));
99
+ } else {
100
+ _push(ssrRenderComponent(unref(AlertTriangle), { class: "size-5 text-destructive" }, null, _parent));
101
+ }
102
+ _push(`</div><div class="space-y-1"><p class="text-sm font-semibold uppercase tracking-[0.09em] text-muted-foreground">Data upgrade</p><h2 class="text-xl font-semibold tracking-tight">${ssrInterpolate(unref(status).state === "running" ? "One-time migration in progress" : "Migration needs attention")}</h2><p class="text-sm text-muted-foreground"> Steward is upgrading legacy PRD progress data to the latest format. This runs once per local database. </p></div></div><div class="space-y-3 rounded-xl border border-border/80 bg-card/70 p-4"><div class="flex items-center justify-between gap-3 text-sm"><span class="inline-flex items-center gap-1.5 text-muted-foreground">`);
103
+ _push(ssrRenderComponent(unref(Database), { class: "size-3.5" }, null, _parent));
104
+ _push(` ${ssrInterpolate(unref(progressLabel))}</span><span class="font-medium tabular-nums">${ssrInterpolate(unref(progressPercent))}%</span></div><div class="h-2 overflow-hidden rounded-full border border-border/70 bg-muted/60"><div class="${ssrRenderClass([unref(prefersReducedMotion) ? "" : "migration-progress-fill--animated", "migration-progress-fill h-full rounded-full motion-reduce:transition-none"])}" style="${ssrRenderStyle({ width: unref(progressWidth) })}"></div></div><p class="text-sm text-muted-foreground">${ssrInterpolate(unref(statusText))}</p></div>`);
105
+ if (unref(status).state === "failed") {
106
+ _push(`<div class="mt-4 flex items-center justify-end">`);
107
+ _push(ssrRenderComponent(unref(Button), {
108
+ size: "sm",
109
+ variant: "outline",
110
+ onClick: unref(refreshStatus)
111
+ }, {
112
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
113
+ if (_push2) {
114
+ _push2(` Retry status check `);
115
+ } else {
116
+ return [
117
+ createTextVNode(" Retry status check ")
118
+ ];
119
+ }
120
+ }),
121
+ _: 1
122
+ }, _parent));
123
+ _push(`</div>`);
124
+ } else {
125
+ _push(`<!---->`);
126
+ }
127
+ _push(`</div></div>`);
128
+ } else {
129
+ _push(`<!---->`);
130
+ }
131
+ };
132
+ }
133
+ });
134
+ const _sfc_setup$m = _sfc_main$m.setup;
135
+ _sfc_main$m.setup = (props, ctx) => {
136
+ const ssrContext = useSSRContext();
137
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/layout/StateMigrationOverlay.vue");
138
+ return _sfc_setup$m ? _sfc_setup$m(props, ctx) : void 0;
139
+ };
140
+ const __nuxt_component_0 = Object.assign(_sfc_main$m, { __name: "LayoutStateMigrationOverlay" });
29
141
  const _sfc_main$l = /* @__PURE__ */ defineComponent({
30
142
  __name: "Command",
31
143
  __ssrInlineRender: true,
@@ -1176,7 +1288,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1176
1288
  const emit = __emit;
1177
1289
  const router = useRouter();
1178
1290
  const { themeMode, cycleThemeMode } = useThemeMode();
1179
- const { prds } = usePrd();
1291
+ const { prds, showArchived, toggleShowArchived } = usePrd();
1180
1292
  const { repos, currentRepoId, selectRepo, refreshGitRepos } = useRepos();
1181
1293
  const { showSuccess, showError } = useToast();
1182
1294
  const TAB_ORDER = ["document", "board", "graph"];
@@ -1215,6 +1327,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1215
1327
  open.value = false;
1216
1328
  emit("openShortcutsHelp");
1217
1329
  }
1330
+ function toggleArchivedVisibility() {
1331
+ toggleShowArchived();
1332
+ open.value = false;
1333
+ }
1218
1334
  const isRefreshingGitRepos = ref(false);
1219
1335
  async function handleRefreshGitRepos() {
1220
1336
  if (!currentRepoId.value || isRefreshingGitRepos.value) return;
@@ -1276,11 +1392,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1276
1392
  default: withCtx((_4, _push5, _parent5, _scopeId4) => {
1277
1393
  if (_push5) {
1278
1394
  _push5(ssrRenderComponent(unref(FileText), { class: "size-4" }, null, _parent5, _scopeId4));
1279
- _push5(`<span${_scopeId4}>${ssrInterpolate(prd.name)}</span>`);
1395
+ _push5(`<span class="flex items-center gap-1"${_scopeId4}><span${_scopeId4}>${ssrInterpolate(prd.name)}</span>`);
1396
+ if (prd.archived) {
1397
+ _push5(`<span class="text-[10px] uppercase tracking-wide text-muted-foreground"${_scopeId4}>Archived</span>`);
1398
+ } else {
1399
+ _push5(`<!---->`);
1400
+ }
1401
+ _push5(`</span>`);
1280
1402
  } else {
1281
1403
  return [
1282
1404
  createVNode(unref(FileText), { class: "size-4" }),
1283
- createVNode("span", null, toDisplayString(prd.name), 1)
1405
+ createVNode("span", { class: "flex items-center gap-1" }, [
1406
+ createVNode("span", null, toDisplayString(prd.name), 1),
1407
+ prd.archived ? (openBlock(), createBlock("span", {
1408
+ key: 0,
1409
+ class: "text-[10px] uppercase tracking-wide text-muted-foreground"
1410
+ }, "Archived")) : createCommentVNode("", true)
1411
+ ])
1284
1412
  ];
1285
1413
  }
1286
1414
  }),
@@ -1298,7 +1426,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1298
1426
  }, {
1299
1427
  default: withCtx(() => [
1300
1428
  createVNode(unref(FileText), { class: "size-4" }),
1301
- createVNode("span", null, toDisplayString(prd.name), 1)
1429
+ createVNode("span", { class: "flex items-center gap-1" }, [
1430
+ createVNode("span", null, toDisplayString(prd.name), 1),
1431
+ prd.archived ? (openBlock(), createBlock("span", {
1432
+ key: 0,
1433
+ class: "text-[10px] uppercase tracking-wide text-muted-foreground"
1434
+ }, "Archived")) : createCommentVNode("", true)
1435
+ ])
1302
1436
  ]),
1303
1437
  _: 2
1304
1438
  }, 1032, ["value", "onSelect"]);
@@ -1490,6 +1624,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1490
1624
  } else {
1491
1625
  _push4(`<!---->`);
1492
1626
  }
1627
+ _push4(ssrRenderComponent(unref(CommandItem), {
1628
+ value: "toggle archived documents",
1629
+ onSelect: toggleArchivedVisibility
1630
+ }, {
1631
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
1632
+ if (_push5) {
1633
+ _push5(ssrRenderComponent(unref(Archive), { class: "size-4" }, null, _parent5, _scopeId4));
1634
+ _push5(`<span class="flex-1"${_scopeId4}>${ssrInterpolate(unref(showArchived) ? "Hide archived documents" : "Show archived documents")}</span>`);
1635
+ } else {
1636
+ return [
1637
+ createVNode(unref(Archive), { class: "size-4" }),
1638
+ createVNode("span", { class: "flex-1" }, toDisplayString(unref(showArchived) ? "Hide archived documents" : "Show archived documents"), 1)
1639
+ ];
1640
+ }
1641
+ }),
1642
+ _: 1
1643
+ }, _parent4, _scopeId3));
1493
1644
  } else {
1494
1645
  return [
1495
1646
  createVNode(unref(CommandItem), {
@@ -1556,7 +1707,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1556
1707
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1557
1708
  ]),
1558
1709
  _: 1
1559
- }, 8, ["disabled"])) : createCommentVNode("", true)
1710
+ }, 8, ["disabled"])) : createCommentVNode("", true),
1711
+ createVNode(unref(CommandItem), {
1712
+ value: "toggle archived documents",
1713
+ onSelect: toggleArchivedVisibility
1714
+ }, {
1715
+ default: withCtx(() => [
1716
+ createVNode(unref(Archive), { class: "size-4" }),
1717
+ createVNode("span", { class: "flex-1" }, toDisplayString(unref(showArchived) ? "Hide archived documents" : "Show archived documents"), 1)
1718
+ ]),
1719
+ _: 1
1720
+ })
1560
1721
  ];
1561
1722
  }
1562
1723
  }),
@@ -1583,7 +1744,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1583
1744
  }, {
1584
1745
  default: withCtx(() => [
1585
1746
  createVNode(unref(FileText), { class: "size-4" }),
1586
- createVNode("span", null, toDisplayString(prd.name), 1)
1747
+ createVNode("span", { class: "flex items-center gap-1" }, [
1748
+ createVNode("span", null, toDisplayString(prd.name), 1),
1749
+ prd.archived ? (openBlock(), createBlock("span", {
1750
+ key: 0,
1751
+ class: "text-[10px] uppercase tracking-wide text-muted-foreground"
1752
+ }, "Archived")) : createCommentVNode("", true)
1753
+ ])
1587
1754
  ]),
1588
1755
  _: 2
1589
1756
  }, 1032, ["value", "onSelect"]);
@@ -1684,7 +1851,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1684
1851
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1685
1852
  ]),
1686
1853
  _: 1
1687
- }, 8, ["disabled"])) : createCommentVNode("", true)
1854
+ }, 8, ["disabled"])) : createCommentVNode("", true),
1855
+ createVNode(unref(CommandItem), {
1856
+ value: "toggle archived documents",
1857
+ onSelect: toggleArchivedVisibility
1858
+ }, {
1859
+ default: withCtx(() => [
1860
+ createVNode(unref(Archive), { class: "size-4" }),
1861
+ createVNode("span", { class: "flex-1" }, toDisplayString(unref(showArchived) ? "Hide archived documents" : "Show archived documents"), 1)
1862
+ ]),
1863
+ _: 1
1864
+ })
1688
1865
  ]),
1689
1866
  _: 1
1690
1867
  })
@@ -1717,7 +1894,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1717
1894
  }, {
1718
1895
  default: withCtx(() => [
1719
1896
  createVNode(unref(FileText), { class: "size-4" }),
1720
- createVNode("span", null, toDisplayString(prd.name), 1)
1897
+ createVNode("span", { class: "flex items-center gap-1" }, [
1898
+ createVNode("span", null, toDisplayString(prd.name), 1),
1899
+ prd.archived ? (openBlock(), createBlock("span", {
1900
+ key: 0,
1901
+ class: "text-[10px] uppercase tracking-wide text-muted-foreground"
1902
+ }, "Archived")) : createCommentVNode("", true)
1903
+ ])
1721
1904
  ]),
1722
1905
  _: 2
1723
1906
  }, 1032, ["value", "onSelect"]);
@@ -1818,7 +2001,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1818
2001
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1819
2002
  ]),
1820
2003
  _: 1
1821
- }, 8, ["disabled"])) : createCommentVNode("", true)
2004
+ }, 8, ["disabled"])) : createCommentVNode("", true),
2005
+ createVNode(unref(CommandItem), {
2006
+ value: "toggle archived documents",
2007
+ onSelect: toggleArchivedVisibility
2008
+ }, {
2009
+ default: withCtx(() => [
2010
+ createVNode(unref(Archive), { class: "size-4" }),
2011
+ createVNode("span", { class: "flex-1" }, toDisplayString(unref(showArchived) ? "Hide archived documents" : "Show archived documents"), 1)
2012
+ ]),
2013
+ _: 1
2014
+ })
1822
2015
  ]),
1823
2016
  _: 1
1824
2017
  })
@@ -2143,6 +2336,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2143
2336
  usePrd();
2144
2337
  useRepos();
2145
2338
  useRoute();
2339
+ const runtimeConfig = useRuntimeConfig();
2340
+ const stewardVersion = computed(() => runtimeConfig.public.stewardVersion || "0.0.0");
2341
+ const stewardPackageName = computed(() => runtimeConfig.public.stewardPackageName || "steward");
2146
2342
  const fileChangeEvent = ref(null);
2147
2343
  provide("fileChangeEvent", fileChangeEvent);
2148
2344
  const commandPaletteOpen = ref(false);
@@ -2188,8 +2384,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2188
2384
  onShortcut("Ctrl+Shift+/", openShortcutsHelp);
2189
2385
  useFileWatch();
2190
2386
  return (_ctx, _push, _parent, _attrs) => {
2191
- const _component_ClientOnly = __nuxt_component_0;
2387
+ const _component_LayoutStateMigrationOverlay = __nuxt_component_0;
2388
+ const _component_ClientOnly = __nuxt_component_1;
2192
2389
  _push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-screen bg-background text-foreground" }, _attrs))}>`);
2390
+ _push(ssrRenderComponent(_component_LayoutStateMigrationOverlay, null, null, _parent));
2193
2391
  _push(ssrRenderComponent(CommandPalette, {
2194
2392
  open: unref(commandPaletteOpen),
2195
2393
  "onUpdate:open": ($event) => isRef(commandPaletteOpen) ? commandPaletteOpen.value = $event : null,
@@ -2201,7 +2399,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2201
2399
  open: unref(shortcutsHelpOpen),
2202
2400
  "onUpdate:open": ($event) => isRef(shortcutsHelpOpen) ? shortcutsHelpOpen.value = $event : null
2203
2401
  }, null, _parent));
2204
- _push(`<header class="fixed top-0 left-0 right-0 z-50 h-14 border-b border-border bg-background/95 backdrop-blur-sm supports-[backdrop-filter]:bg-background/80"><div class="flex h-full items-center justify-between px-4 md:px-6"><div class="flex items-center gap-4"><h1 class="text-lg font-semibold tracking-tight"> PRD Viewer </h1></div>`);
2402
+ _push(`<header class="fixed top-0 left-0 right-0 z-50 h-14 border-b border-border bg-background/95 backdrop-blur-sm supports-[backdrop-filter]:bg-background/80"><div class="flex h-full items-center justify-between px-4 md:px-6"><div class="flex items-center gap-3"><h1 class="text-lg font-semibold tracking-tight"> PRD Viewer </h1><span class="hidden text-xs text-muted-foreground md:inline">${ssrInterpolate(unref(stewardPackageName))} v${ssrInterpolate(unref(stewardVersion))}</span></div>`);
2205
2403
  _push(ssrRenderComponent(_component_ClientOnly, null, {
2206
2404
  fallback: withCtx((_, _push2, _parent2, _scopeId) => {
2207
2405
  if (_push2) {
@@ -2251,4 +2449,4 @@ _sfc_main.setup = (props, ctx) => {
2251
2449
  };
2252
2450
 
2253
2451
  export { _sfc_main as default };
2254
- //# sourceMappingURL=default-Cao5eO80.mjs.map
2452
+ //# sourceMappingURL=default-BKKgG7HJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-BKKgG7HJ.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-BKKgG7HJ.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
@@ -11,6 +11,8 @@ import 'node:buffer';
11
11
  import 'node:fs';
12
12
  import 'node:path';
13
13
  import 'node:crypto';
14
+ import 'node:os';
15
+ import 'zod';
14
16
  import 'node:url';
15
17
  import '../routes/renderer.mjs';
16
18
  import 'vue-bundle-renderer/runtime';
@@ -10,6 +10,8 @@ import 'node:buffer';
10
10
  import 'node:fs';
11
11
  import 'node:path';
12
12
  import 'node:crypto';
13
+ import 'node:os';
14
+ import 'zod';
13
15
  import 'node:url';
14
16
  import '../routes/renderer.mjs';
15
17
  import 'vue-bundle-renderer/runtime';
@@ -1,9 +1,8 @@
1
1
  import { defineComponent, ref, computed, watch, mergeProps, unref, isRef, withCtx, createVNode, createTextVNode, openBlock, createBlock, useSSRContext } from 'vue';
2
2
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderList, ssrGetDynamicModelProps } from 'vue/server-renderer';
3
3
  import { FolderOpen, Folder, ArrowRight, FileText } from 'lucide-vue-next';
4
- import { B as Button } from './index-ByZO4Bvq.mjs';
4
+ import { u as useRepos, a as usePrd, B as Button, c as cn } from './usePrd-hXZOmvAv.mjs';
5
5
  import { useVModel } from '@vueuse/core';
6
- import { u as useRepos, a as usePrd, c as cn } from './usePrd-f7ylhIqs.mjs';
7
6
  import { a as useRouter } from './server.mjs';
8
7
  import 'class-variance-authority';
9
8
  import 'reka-ui';
@@ -18,6 +17,8 @@ import 'node:buffer';
18
17
  import 'node:fs';
19
18
  import 'node:path';
20
19
  import 'node:crypto';
20
+ import 'node:os';
21
+ import 'zod';
21
22
  import 'node:url';
22
23
  import '@vue/shared';
23
24
  import 'perfect-debounce';
@@ -254,4 +255,4 @@ _sfc_main.setup = (props, ctx) => {
254
255
  };
255
256
 
256
257
  export { _sfc_main as default };
257
- //# sourceMappingURL=index-ljj9uTXI.mjs.map
258
+ //# sourceMappingURL=index-DE1tjHAd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DE1tjHAd.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DE1tjHAd.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, shallowRef, h, resolveComponent, computed } from 'vue';
2
- import { B as parseQuery, o as hasProtocol, k as joinURL, C as withTrailingSlash, D as withoutTrailingSlash } from '../nitro/nitro.mjs';
2
+ import { L as parseQuery, C as hasProtocol, x as joinURL, M as withTrailingSlash, N as withoutTrailingSlash } from '../nitro/nitro.mjs';
3
3
  import { a as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, c as useNuxtApp, d as useRuntimeConfig, f as nuxtLinkDefaults } from './server.mjs';
4
4
 
5
5
  const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);
@@ -1,10 +1,9 @@
1
- import { _ as __nuxt_component_0$2, a as __nuxt_component_1 } from './Detail-BQSkP9Zm.mjs';
1
+ import { _ as __nuxt_component_0$2, a as __nuxt_component_1 } from './Detail-B7yBNjgp.mjs';
2
2
  import { defineComponent, computed, ref, inject, watch, mergeProps, unref, withCtx, createVNode, createTextVNode, isRef, useSSRContext } from 'vue';
3
3
  import { ssrRenderAttrs, ssrRenderComponent } from 'vue/server-renderer';
4
4
  import { GitBranch, RefreshCw } from 'lucide-vue-next';
5
- import { B as Button } from './index-ByZO4Bvq.mjs';
5
+ import { u as useRepos, a as usePrd, B as Button, b as useToast } from './usePrd-hXZOmvAv.mjs';
6
6
  import { b as useRoute } from './server.mjs';
7
- import { u as useRepos, a as usePrd, b as useToast } from './usePrd-f7ylhIqs.mjs';
8
7
  import '@vueuse/core';
9
8
  import '@vue-flow/background';
10
9
  import '@vue-flow/controls';
@@ -21,18 +20,20 @@ import 'node:buffer';
21
20
  import 'node:fs';
22
21
  import 'node:path';
23
22
  import 'node:crypto';
23
+ import 'node:os';
24
+ import 'zod';
24
25
  import 'node:url';
26
+ import 'clsx';
27
+ import 'tailwind-merge';
28
+ import 'vue-sonner';
29
+ import '@vue/shared';
30
+ import 'perfect-debounce';
25
31
  import '../routes/renderer.mjs';
26
32
  import 'vue-bundle-renderer/runtime';
27
33
  import 'unhead/server';
28
34
  import 'devalue';
29
35
  import 'unhead/utils';
30
36
  import 'vue-router';
31
- import 'clsx';
32
- import 'tailwind-merge';
33
- import 'vue-sonner';
34
- import '@vue/shared';
35
- import 'perfect-debounce';
36
37
 
37
38
  const _sfc_main = /* @__PURE__ */ defineComponent({
38
39
  __name: "repo-graph",
@@ -40,7 +41,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
40
41
  setup(__props) {
41
42
  const route = useRoute();
42
43
  const { selectRepo } = useRepos();
43
- const { fetchRepoGraph, fetchTasks, fetchTaskCommits } = usePrd();
44
+ const { fetchRepoGraph, fetchTasks, fetchTaskCommits, showArchived } = usePrd();
44
45
  const { showError } = useToast();
45
46
  const repoId = computed(() => route.params.repo);
46
47
  const graph = ref(null);
@@ -155,12 +156,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
155
156
  selectRepo(repoId.value);
156
157
  await loadGraph(true);
157
158
  });
159
+ watch(showArchived, async () => {
160
+ graph.value = null;
161
+ graphError.value = null;
162
+ if (!repoId.value) {
163
+ return;
164
+ }
165
+ await loadGraph(true);
166
+ });
158
167
  return (_ctx, _push, _parent, _attrs) => {
159
168
  const _component_GraphExplorer = __nuxt_component_0$2;
160
169
  const _component_TasksDetail = __nuxt_component_1;
161
170
  _push(`<div${ssrRenderAttrs(mergeProps({ class: "h-full p-4 md:p-6" }, _attrs))}><div class="mx-auto max-w-[1500px] space-y-4"><div class="flex flex-wrap items-center justify-between gap-3"><div><h1 class="flex items-center gap-2 text-2xl font-bold tracking-tight">`);
162
171
  _push(ssrRenderComponent(unref(GitBranch), { class: "size-5" }, null, _parent));
163
- _push(` Repository Graph </h1><p class="mt-1 text-sm text-muted-foreground"> Dependency graph across PRDs with task state in this repository. </p></div>`);
172
+ _push(` Repository Graph </h1><p class="mt-1 text-sm text-muted-foreground"> Dependency graph across PRDs with task state in this repository. `);
173
+ if (!unref(showArchived)) {
174
+ _push(`<span class="ml-1">Archived PRDs are hidden.</span>`);
175
+ } else {
176
+ _push(`<!---->`);
177
+ }
178
+ _push(`</p></div>`);
164
179
  _push(ssrRenderComponent(unref(Button), {
165
180
  variant: "outline",
166
181
  size: "sm",
@@ -215,4 +230,4 @@ _sfc_main.setup = (props, ctx) => {
215
230
  };
216
231
 
217
232
  export { _sfc_main as default };
218
- //# sourceMappingURL=repo-graph-CVnkmn8i.mjs.map
233
+ //# sourceMappingURL=repo-graph-CUcJKW1F.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-graph-CUcJKW1F.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/repo-graph-CUcJKW1F.js"],"names":["__nuxt_component_0"],"mappings":"","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
- import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { defineComponent, shallowRef, getCurrentInstance, provide, cloneVNode, h, createElementBlock, hasInjectionContext, inject, computed, toRef, isRef, defineAsyncComponent, unref, shallowReactive, ref, Suspense, Fragment, useSSRContext, createApp, withCtx, createVNode, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, nextTick, mergeProps, getCurrentScope, isReadonly, isShallow, isReactive, toRaw } from 'vue';
2
- import { p as parseURL, m as encodePath, n as decodePath, c as createError$1, o as hasProtocol, q as isScriptProtocol, k as joinURL, w as withQuery, t as sanitizeStatusCode, v as getContext, $ as $fetch, x as createHooks, y as defu, z as executeAsync } from '../nitro/nitro.mjs';
1
+ import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { defineComponent, shallowRef, getCurrentInstance, provide, cloneVNode, h, createElementBlock, hasInjectionContext, inject, toRef, isRef, computed, defineAsyncComponent, unref, shallowReactive, ref, Suspense, Fragment, useSSRContext, createApp, withCtx, createVNode, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, nextTick, mergeProps, getCurrentScope, isReadonly, isShallow, isReactive, toRaw } from 'vue';
2
+ import { z as parseURL, A as encodePath, B as decodePath, c as createError$1, C as hasProtocol, D as isScriptProtocol, x as joinURL, E as withQuery, F as sanitizeStatusCode, G as getContext, $ as $fetch, H as createHooks, I as defu, J as executeAsync } from '../nitro/nitro.mjs';
3
3
  import { u as useHead$1, h as headSymbol, b as baseURL } from '../routes/renderer.mjs';
4
4
  import { useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, START_LOCATION } from 'vue-router';
5
5
  import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from 'vue/server-renderer';
@@ -10,6 +10,8 @@ import 'node:buffer';
10
10
  import 'node:fs';
11
11
  import 'node:path';
12
12
  import 'node:crypto';
13
+ import 'node:os';
14
+ import 'zod';
13
15
  import 'node:url';
14
16
  import 'vue-bundle-renderer/runtime';
15
17
  import 'unhead/server';
@@ -424,19 +426,19 @@ const _routes = [
424
426
  {
425
427
  name: "index",
426
428
  path: "/",
427
- component: () => import('./index-ljj9uTXI.mjs')
429
+ component: () => import('./index-DE1tjHAd.mjs')
428
430
  },
429
431
  {
430
432
  name: "repo-prd",
431
433
  path: "/:repo()/:prd()",
432
434
  meta: __nuxt_page_meta$1 || {},
433
- component: () => import('./_prd_-CBR_wm9i.mjs')
435
+ component: () => import('./_prd_-DY25apyl.mjs')
434
436
  },
435
437
  {
436
438
  name: "repo-repo-graph",
437
439
  path: "/:repo()/repo-graph",
438
440
  meta: __nuxt_page_meta || {},
439
- component: () => import('./repo-graph-CVnkmn8i.mjs')
441
+ component: () => import('./repo-graph-CUcJKW1F.mjs')
440
442
  }
441
443
  ];
442
444
  const _wrapInTransition = (props, children) => {
@@ -850,7 +852,7 @@ const plugins = [
850
852
  plugin_server_9Ca9_HhnjAGwBWpwAydRauMHxWoxTDY60BrArRnXN_A
851
853
  ];
852
854
  const layouts = {
853
- default: defineAsyncComponent(() => import('./default-Cao5eO80.mjs').then((m) => m.default || m))
855
+ default: defineAsyncComponent(() => import('./default-BKKgG7HJ.mjs').then((m) => m.default || m))
854
856
  };
855
857
  const routeRulesMatcher = _routeRulesMatcher;
856
858
  const LayoutLoader = defineComponent({
@@ -874,7 +876,7 @@ const nuxtLayoutProps = {
874
876
  default: null
875
877
  }
876
878
  };
877
- const __nuxt_component_0$1 = defineComponent({
879
+ const __nuxt_component_0 = defineComponent({
878
880
  name: "NuxtLayout",
879
881
  inheritAttrs: false,
880
882
  props: nuxtLayoutProps,
@@ -1013,7 +1015,7 @@ const defineRouteProvider = (name = "RouteProvider") => defineComponent({
1013
1015
  }
1014
1016
  });
1015
1017
  const RouteProvider = defineRouteProvider();
1016
- const __nuxt_component_1 = defineComponent({
1018
+ const __nuxt_component_1$1 = defineComponent({
1017
1019
  name: "NuxtPage",
1018
1020
  inheritAttrs: false,
1019
1021
  props: {
@@ -1071,7 +1073,7 @@ defineComponent({
1071
1073
  }
1072
1074
  });
1073
1075
  const clientOnlySymbol = /* @__PURE__ */ Symbol.for("nuxt:client-only");
1074
- const __nuxt_component_0 = defineComponent({
1076
+ const __nuxt_component_1 = defineComponent({
1075
1077
  name: "ClientOnly",
1076
1078
  inheritAttrs: false,
1077
1079
  props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"],
@@ -1138,9 +1140,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1138
1140
  setup(__props) {
1139
1141
  useThemeMode();
1140
1142
  return (_ctx, _push, _parent, _attrs) => {
1141
- const _component_NuxtLayout = __nuxt_component_0$1;
1142
- const _component_NuxtPage = __nuxt_component_1;
1143
- const _component_ClientOnly = __nuxt_component_0;
1143
+ const _component_NuxtLayout = __nuxt_component_0;
1144
+ const _component_NuxtPage = __nuxt_component_1$1;
1145
+ const _component_ClientOnly = __nuxt_component_1;
1144
1146
  _push(`<!--[-->`);
1145
1147
  _push(ssrRenderComponent(_component_NuxtLayout, null, {
1146
1148
  default: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -1261,5 +1263,5 @@ let entry;
1261
1263
  }
1262
1264
  const entry_default = ((ssrContext) => entry(ssrContext));
1263
1265
 
1264
- export { __nuxt_component_0 as _, useRouter as a, useRoute as b, useNuxtApp as c, useRuntimeConfig as d, entry_default as default, encodeRoutePath as e, nuxtLinkDefaults as f, useThemeMode as g, asyncDataDefaults as h, createError as i, fetchDefaults as j, useState as k, navigateTo as n, resolveRouteObject as r, useHead as u };
1266
+ export { __nuxt_component_1 as _, useRouter as a, useRoute as b, useNuxtApp as c, useRuntimeConfig as d, entry_default as default, encodeRoutePath as e, nuxtLinkDefaults as f, useState as g, useThemeMode as h, asyncDataDefaults as i, createError as j, fetchDefaults as k, navigateTo as n, resolveRouteObject as r, useHead as u };
1265
1267
  //# sourceMappingURL=server.mjs.map
@@ -8,9 +8,9 @@ const styles = {
8
8
  "components/prd/Viewer.vue?vue&type=style&index=0&lang.css": () => import('./Viewer-styles.D6wYWFb1.mjs').then(interopDefault),
9
9
  "components/tasks/Column.vue": () => import('./Column-styles.fAtZNsCt.mjs').then(interopDefault),
10
10
  "components/tasks/Column.vue?vue&type=style&index=0&scoped=a1317eba&lang.css": () => import('./Column-styles.fAtZNsCt.mjs').then(interopDefault),
11
- "components/git/DiffViewer.vue": () => import('./DiffViewer-styles.FoV36wuV.mjs').then(interopDefault),
11
+ "components/git/DiffViewer.vue": () => import('./DiffViewer-styles.DRJh5Ui4.mjs').then(interopDefault),
12
12
  "components/git/DiffViewer.vue?vue&type=style&index=1&lang.css": () => import('./DiffViewer-styles.0AbHFl6N.mjs').then(interopDefault),
13
- "components/git/DiffViewer.vue?vue&type=style&index=0&scoped=a5da7e6e&lang.css": () => import('./DiffViewer-styles.D2bqX3nK.mjs').then(interopDefault)
13
+ "components/git/DiffViewer.vue?vue&type=style&index=0&scoped=9eb8ced7&lang.css": () => import('./DiffViewer-styles.BDwAqkTk.mjs').then(interopDefault)
14
14
  };
15
15
 
16
16
  export { styles as default };