@thxgg/steward 0.1.17 → 0.1.19

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 (124) hide show
  1. package/.env.example +0 -6
  2. package/.output/nitro.json +1 -1
  3. package/.output/public/_nuxt/{BlTKcjLJ.js → BCiXS3ZV.js} +2 -2
  4. package/.output/public/_nuxt/BfUfZSFp.js +60 -0
  5. package/.output/public/_nuxt/{BMdjSp24.js → BfV4oCiT.js} +1 -1
  6. package/.output/public/_nuxt/{BSZqAKg4.js → Bs6UO7IT.js} +1 -1
  7. package/.output/public/_nuxt/C9AsKFSQ.js +1 -0
  8. package/.output/public/_nuxt/{BdjPva1I.js → C9jB6HQI.js} +1 -1
  9. package/.output/public/_nuxt/CCruYste.js +3 -0
  10. package/.output/public/_nuxt/CIIE0-WR.js +1 -0
  11. package/.output/public/_nuxt/{By7gAVcL.js → Cg4hnDua.js} +1 -1
  12. package/.output/public/_nuxt/CwdD8083.js +30 -0
  13. package/.output/public/_nuxt/{4r0X30JV.js → D2RLSKEu.js} +1 -1
  14. package/.output/public/_nuxt/{CbkpNvIu.js → D30YtxUg.js} +1 -1
  15. package/.output/public/_nuxt/{Beeir9iR.js → DEekox9p.js} +1 -1
  16. package/.output/public/_nuxt/{nX8Sf7cz.js → DddVAa3N.js} +1 -1
  17. package/.output/public/_nuxt/{Bh3vsUvl.js → MO41rxll.js} +1 -1
  18. package/.output/public/_nuxt/builds/latest.json +1 -1
  19. package/.output/public/_nuxt/builds/meta/627332c0-2e14-4849-8cac-e350f64ed513.json +1 -0
  20. package/.output/public/_nuxt/entry.Dp3jx0Yw.css +1 -0
  21. package/.output/public/_nuxt/f7vKgp5U.js +1 -0
  22. package/.output/public/_nuxt/xc3v2JZH.js +1 -0
  23. package/.output/server/chunks/_/git-api.mjs +1 -1
  24. package/.output/server/chunks/_/prd-service.mjs +177 -12
  25. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  26. package/.output/server/chunks/_/repos.mjs +272 -0
  27. package/.output/server/chunks/_/repos.mjs.map +1 -0
  28. package/.output/server/chunks/_/task-graph.mjs +19 -16
  29. package/.output/server/chunks/_/task-graph.mjs.map +1 -1
  30. package/.output/server/chunks/_/watcher.mjs +11 -35
  31. package/.output/server/chunks/_/watcher.mjs.map +1 -1
  32. package/.output/server/chunks/build/{Detail-MGwP_u2d.mjs → Detail-BcQGdJY5.mjs} +112 -46
  33. package/.output/server/chunks/build/Detail-BcQGdJY5.mjs.map +1 -0
  34. package/.output/server/chunks/build/{_prd_-C-Aj4fVa.mjs → _prd_-CD_Bds_B.mjs} +80 -7
  35. package/.output/server/chunks/build/_prd_-CD_Bds_B.mjs.map +1 -0
  36. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  37. package/.output/server/chunks/build/{default-Cao5eO80.mjs → default-BKKgG7HJ.mjs} +220 -24
  38. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +1 -0
  39. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +1 -1
  40. package/.output/server/chunks/build/error-500-D_bcARXN.mjs +1 -1
  41. package/.output/server/chunks/build/{index-ljj9uTXI.mjs → index-DE1tjHAd.mjs} +3 -4
  42. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +1 -0
  43. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
  44. package/.output/server/chunks/build/{repo-graph-EuhMeFt7.mjs → repo-graph-CBfhpnd5.mjs} +25 -12
  45. package/.output/server/chunks/build/repo-graph-CBfhpnd5.mjs.map +1 -0
  46. package/.output/server/chunks/build/server.mjs +14 -14
  47. package/.output/server/chunks/build/styles.mjs +2 -2
  48. package/.output/server/chunks/build/{usePrd-f7ylhIqs.mjs → usePrd-hXZOmvAv.mjs} +113 -9
  49. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +1 -0
  50. package/.output/server/chunks/nitro/nitro.mjs +1051 -1365
  51. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  52. package/.output/server/chunks/routes/api/browse.get.mjs +24 -6
  53. package/.output/server/chunks/routes/api/browse.get.mjs.map +1 -1
  54. package/.output/server/chunks/routes/api/index.get.mjs +3 -2
  55. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  56. package/.output/server/chunks/routes/api/index.post.mjs +22 -8
  57. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  58. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +20 -11
  59. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
  60. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +3 -2
  61. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs.map +1 -1
  62. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +3 -2
  63. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs.map +1 -1
  64. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +3 -2
  65. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs.map +1 -1
  66. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +27 -3
  67. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
  68. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs +93 -0
  69. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs.map +1 -0
  70. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +3 -2
  71. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs.map +1 -1
  72. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +4 -3
  73. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs.map +1 -1
  74. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +4 -3
  75. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs.map +1 -1
  76. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +4 -3
  77. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs.map +1 -1
  78. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +3 -2
  79. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs.map +1 -1
  80. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +27 -3
  81. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
  82. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +3 -2
  83. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs.map +1 -1
  84. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +3 -2
  85. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs.map +1 -1
  86. package/.output/server/chunks/routes/api/runtime.get.mjs +2 -2
  87. package/.output/server/chunks/routes/api/state-migration/status.get.mjs +21 -0
  88. package/.output/server/chunks/routes/api/state-migration/status.get.mjs.map +1 -0
  89. package/.output/server/chunks/routes/api/watch.get.mjs +3 -2
  90. package/.output/server/chunks/routes/api/watch.get.mjs.map +1 -1
  91. package/.output/server/chunks/routes/renderer.mjs +1 -1
  92. package/.output/server/index.mjs +2 -2
  93. package/.output/server/package.json +1 -1
  94. package/README.md +5 -7
  95. package/dist/host/src/api/repos.js +0 -2
  96. package/dist/host/src/api/state.js +1 -7
  97. package/dist/host/src/index.js +2 -7
  98. package/dist/host/src/ui.js +2 -7
  99. package/dist/server/utils/db.js +15 -0
  100. package/dist/server/utils/prd-archive.js +53 -0
  101. package/dist/server/utils/prd-service.js +27 -11
  102. package/dist/server/utils/prd-state.js +11 -122
  103. package/dist/server/utils/repos.js +14 -4
  104. package/dist/server/utils/state-migration.js +225 -0
  105. package/dist/server/utils/state-schema.js +181 -4
  106. package/dist/server/utils/task-graph.js +21 -14
  107. package/package.json +1 -1
  108. package/.output/public/_nuxt/CbJfCtEa.js +0 -1
  109. package/.output/public/_nuxt/CmhLcqDu.js +0 -1
  110. package/.output/public/_nuxt/DC6iPLz1.js +0 -30
  111. package/.output/public/_nuxt/DD--ojY9.js +0 -3
  112. package/.output/public/_nuxt/DhKWRjCh.js +0 -60
  113. package/.output/public/_nuxt/builds/meta/f3f42dbd-d501-442b-871c-3d06157e7aa1.json +0 -1
  114. package/.output/public/_nuxt/c1sXju8w.js +0 -1
  115. package/.output/public/_nuxt/eGCjCghR.js +0 -1
  116. package/.output/public/_nuxt/entry.LcDOtJnR.css +0 -1
  117. package/.output/server/chunks/build/Detail-MGwP_u2d.mjs.map +0 -1
  118. package/.output/server/chunks/build/_prd_-C-Aj4fVa.mjs.map +0 -1
  119. package/.output/server/chunks/build/default-Cao5eO80.mjs.map +0 -1
  120. package/.output/server/chunks/build/index-ByZO4Bvq.mjs +0 -76
  121. package/.output/server/chunks/build/index-ByZO4Bvq.mjs.map +0 -1
  122. package/.output/server/chunks/build/index-ljj9uTXI.mjs.map +0 -1
  123. package/.output/server/chunks/build/repo-graph-EuhMeFt7.mjs.map +0 -1
  124. 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,21 +17,127 @@ import 'node:buffer';
13
17
  import 'node:fs';
14
18
  import 'node:path';
15
19
  import 'node:crypto';
16
- import 'node:url';
17
20
  import 'node:os';
18
21
  import 'zod';
22
+ import 'node:url';
23
+ import '@vue/shared';
24
+ import 'perfect-debounce';
19
25
  import '../routes/renderer.mjs';
20
26
  import 'vue-bundle-renderer/runtime';
21
27
  import 'unhead/server';
22
28
  import 'devalue';
23
29
  import 'unhead/utils';
24
30
  import 'vue-router';
25
- import 'clsx';
26
- import 'tailwind-merge';
27
- import 'vue-sonner';
28
- import '@vue/shared';
29
- import 'perfect-debounce';
30
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" });
31
141
  const _sfc_main$l = /* @__PURE__ */ defineComponent({
32
142
  __name: "Command",
33
143
  __ssrInlineRender: true,
@@ -1178,7 +1288,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1178
1288
  const emit = __emit;
1179
1289
  const router = useRouter();
1180
1290
  const { themeMode, cycleThemeMode } = useThemeMode();
1181
- const { prds } = usePrd();
1291
+ const { prds, showArchived, toggleShowArchived } = usePrd();
1182
1292
  const { repos, currentRepoId, selectRepo, refreshGitRepos } = useRepos();
1183
1293
  const { showSuccess, showError } = useToast();
1184
1294
  const TAB_ORDER = ["document", "board", "graph"];
@@ -1217,6 +1327,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1217
1327
  open.value = false;
1218
1328
  emit("openShortcutsHelp");
1219
1329
  }
1330
+ function toggleArchivedVisibility() {
1331
+ toggleShowArchived();
1332
+ open.value = false;
1333
+ }
1220
1334
  const isRefreshingGitRepos = ref(false);
1221
1335
  async function handleRefreshGitRepos() {
1222
1336
  if (!currentRepoId.value || isRefreshingGitRepos.value) return;
@@ -1278,11 +1392,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1278
1392
  default: withCtx((_4, _push5, _parent5, _scopeId4) => {
1279
1393
  if (_push5) {
1280
1394
  _push5(ssrRenderComponent(unref(FileText), { class: "size-4" }, null, _parent5, _scopeId4));
1281
- _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>`);
1282
1402
  } else {
1283
1403
  return [
1284
1404
  createVNode(unref(FileText), { class: "size-4" }),
1285
- 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
+ ])
1286
1412
  ];
1287
1413
  }
1288
1414
  }),
@@ -1300,7 +1426,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1300
1426
  }, {
1301
1427
  default: withCtx(() => [
1302
1428
  createVNode(unref(FileText), { class: "size-4" }),
1303
- 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
+ ])
1304
1436
  ]),
1305
1437
  _: 2
1306
1438
  }, 1032, ["value", "onSelect"]);
@@ -1492,6 +1624,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1492
1624
  } else {
1493
1625
  _push4(`<!---->`);
1494
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));
1495
1644
  } else {
1496
1645
  return [
1497
1646
  createVNode(unref(CommandItem), {
@@ -1558,7 +1707,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1558
1707
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1559
1708
  ]),
1560
1709
  _: 1
1561
- }, 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
+ })
1562
1721
  ];
1563
1722
  }
1564
1723
  }),
@@ -1585,7 +1744,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1585
1744
  }, {
1586
1745
  default: withCtx(() => [
1587
1746
  createVNode(unref(FileText), { class: "size-4" }),
1588
- 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
+ ])
1589
1754
  ]),
1590
1755
  _: 2
1591
1756
  }, 1032, ["value", "onSelect"]);
@@ -1686,7 +1851,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1686
1851
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1687
1852
  ]),
1688
1853
  _: 1
1689
- }, 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
+ })
1690
1865
  ]),
1691
1866
  _: 1
1692
1867
  })
@@ -1719,7 +1894,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1719
1894
  }, {
1720
1895
  default: withCtx(() => [
1721
1896
  createVNode(unref(FileText), { class: "size-4" }),
1722
- 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
+ ])
1723
1904
  ]),
1724
1905
  _: 2
1725
1906
  }, 1032, ["value", "onSelect"]);
@@ -1820,7 +2001,17 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1820
2001
  createVNode("span", { class: "flex-1" }, "Refresh git repos")
1821
2002
  ]),
1822
2003
  _: 1
1823
- }, 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
+ })
1824
2015
  ]),
1825
2016
  _: 1
1826
2017
  })
@@ -2145,6 +2336,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2145
2336
  usePrd();
2146
2337
  useRepos();
2147
2338
  useRoute();
2339
+ const runtimeConfig = useRuntimeConfig();
2340
+ const stewardVersion = computed(() => runtimeConfig.public.stewardVersion || "0.0.0");
2341
+ const stewardPackageName = computed(() => runtimeConfig.public.stewardPackageName || "steward");
2148
2342
  const fileChangeEvent = ref(null);
2149
2343
  provide("fileChangeEvent", fileChangeEvent);
2150
2344
  const commandPaletteOpen = ref(false);
@@ -2190,8 +2384,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2190
2384
  onShortcut("Ctrl+Shift+/", openShortcutsHelp);
2191
2385
  useFileWatch();
2192
2386
  return (_ctx, _push, _parent, _attrs) => {
2193
- const _component_ClientOnly = __nuxt_component_0;
2387
+ const _component_LayoutStateMigrationOverlay = __nuxt_component_0;
2388
+ const _component_ClientOnly = __nuxt_component_1;
2194
2389
  _push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-screen bg-background text-foreground" }, _attrs))}>`);
2390
+ _push(ssrRenderComponent(_component_LayoutStateMigrationOverlay, null, null, _parent));
2195
2391
  _push(ssrRenderComponent(CommandPalette, {
2196
2392
  open: unref(commandPaletteOpen),
2197
2393
  "onUpdate:open": ($event) => isRef(commandPaletteOpen) ? commandPaletteOpen.value = $event : null,
@@ -2203,7 +2399,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2203
2399
  open: unref(shortcutsHelpOpen),
2204
2400
  "onUpdate:open": ($event) => isRef(shortcutsHelpOpen) ? shortcutsHelpOpen.value = $event : null
2205
2401
  }, null, _parent));
2206
- _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>`);
2207
2403
  _push(ssrRenderComponent(_component_ClientOnly, null, {
2208
2404
  fallback: withCtx((_, _push2, _parent2, _scopeId) => {
2209
2405
  if (_push2) {
@@ -2253,4 +2449,4 @@ _sfc_main.setup = (props, ctx) => {
2253
2449
  };
2254
2450
 
2255
2451
  export { _sfc_main as default };
2256
- //# 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,9 +11,9 @@ import 'node:buffer';
11
11
  import 'node:fs';
12
12
  import 'node:path';
13
13
  import 'node:crypto';
14
- import 'node:url';
15
14
  import 'node:os';
16
15
  import 'zod';
16
+ import 'node:url';
17
17
  import '../routes/renderer.mjs';
18
18
  import 'vue-bundle-renderer/runtime';
19
19
  import 'unhead/server';
@@ -10,9 +10,9 @@ import 'node:buffer';
10
10
  import 'node:fs';
11
11
  import 'node:path';
12
12
  import 'node:crypto';
13
- import 'node:url';
14
13
  import 'node:os';
15
14
  import 'zod';
15
+ import 'node:url';
16
16
  import '../routes/renderer.mjs';
17
17
  import 'vue-bundle-renderer/runtime';
18
18
  import 'unhead/server';
@@ -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,9 +17,9 @@ import 'node:buffer';
18
17
  import 'node:fs';
19
18
  import 'node:path';
20
19
  import 'node:crypto';
21
- import 'node:url';
22
20
  import 'node:os';
23
21
  import 'zod';
22
+ import 'node:url';
24
23
  import '@vue/shared';
25
24
  import 'perfect-debounce';
26
25
  import '../routes/renderer.mjs';
@@ -256,4 +255,4 @@ _sfc_main.setup = (props, ctx) => {
256
255
  };
257
256
 
258
257
  export { _sfc_main as default };
259
- //# 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 { N as parseQuery, E as hasProtocol, z as joinURL, O as withTrailingSlash, P 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-MGwP_u2d.mjs';
1
+ import { _ as __nuxt_component_0$2, a as __nuxt_component_1 } from './Detail-BcQGdJY5.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,20 +20,20 @@ import 'node:buffer';
21
20
  import 'node:fs';
22
21
  import 'node:path';
23
22
  import 'node:crypto';
24
- import 'node:url';
25
23
  import 'node:os';
26
24
  import 'zod';
25
+ import 'node:url';
26
+ import 'clsx';
27
+ import 'tailwind-merge';
28
+ import 'vue-sonner';
29
+ import '@vue/shared';
30
+ import 'perfect-debounce';
27
31
  import '../routes/renderer.mjs';
28
32
  import 'vue-bundle-renderer/runtime';
29
33
  import 'unhead/server';
30
34
  import 'devalue';
31
35
  import 'unhead/utils';
32
36
  import 'vue-router';
33
- import 'clsx';
34
- import 'tailwind-merge';
35
- import 'vue-sonner';
36
- import '@vue/shared';
37
- import 'perfect-debounce';
38
37
 
39
38
  const _sfc_main = /* @__PURE__ */ defineComponent({
40
39
  __name: "repo-graph",
@@ -42,7 +41,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
41
  setup(__props) {
43
42
  const route = useRoute();
44
43
  const { selectRepo } = useRepos();
45
- const { fetchRepoGraph, fetchTasks, fetchTaskCommits } = usePrd();
44
+ const { fetchRepoGraph, fetchTasks, fetchTaskCommits, showArchived } = usePrd();
46
45
  const { showError } = useToast();
47
46
  const repoId = computed(() => route.params.repo);
48
47
  const graph = ref(null);
@@ -157,12 +156,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
157
156
  selectRepo(repoId.value);
158
157
  await loadGraph(true);
159
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
+ });
160
167
  return (_ctx, _push, _parent, _attrs) => {
161
168
  const _component_GraphExplorer = __nuxt_component_0$2;
162
169
  const _component_TasksDetail = __nuxt_component_1;
163
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">`);
164
171
  _push(ssrRenderComponent(unref(GitBranch), { class: "size-5" }, null, _parent));
165
- _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>`);
166
179
  _push(ssrRenderComponent(unref(Button), {
167
180
  variant: "outline",
168
181
  size: "sm",
@@ -217,4 +230,4 @@ _sfc_main.setup = (props, ctx) => {
217
230
  };
218
231
 
219
232
  export { _sfc_main as default };
220
- //# sourceMappingURL=repo-graph-EuhMeFt7.mjs.map
233
+ //# sourceMappingURL=repo-graph-CBfhpnd5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-graph-CBfhpnd5.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/repo-graph-CBfhpnd5.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 { B as parseURL, C as encodePath, D as decodePath, c as createError$1, E as hasProtocol, F as isScriptProtocol, z as joinURL, G as withQuery, H as sanitizeStatusCode, I as getContext, $ as $fetch, J as createHooks, K as defu, L 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,9 +10,9 @@ import 'node:buffer';
10
10
  import 'node:fs';
11
11
  import 'node:path';
12
12
  import 'node:crypto';
13
- import 'node:url';
14
13
  import 'node:os';
15
14
  import 'zod';
15
+ import 'node:url';
16
16
  import 'vue-bundle-renderer/runtime';
17
17
  import 'unhead/server';
18
18
  import 'devalue';
@@ -426,19 +426,19 @@ const _routes = [
426
426
  {
427
427
  name: "index",
428
428
  path: "/",
429
- component: () => import('./index-ljj9uTXI.mjs')
429
+ component: () => import('./index-DE1tjHAd.mjs')
430
430
  },
431
431
  {
432
432
  name: "repo-prd",
433
433
  path: "/:repo()/:prd()",
434
434
  meta: __nuxt_page_meta$1 || {},
435
- component: () => import('./_prd_-C-Aj4fVa.mjs')
435
+ component: () => import('./_prd_-CD_Bds_B.mjs')
436
436
  },
437
437
  {
438
438
  name: "repo-repo-graph",
439
439
  path: "/:repo()/repo-graph",
440
440
  meta: __nuxt_page_meta || {},
441
- component: () => import('./repo-graph-EuhMeFt7.mjs')
441
+ component: () => import('./repo-graph-CBfhpnd5.mjs')
442
442
  }
443
443
  ];
444
444
  const _wrapInTransition = (props, children) => {
@@ -852,7 +852,7 @@ const plugins = [
852
852
  plugin_server_9Ca9_HhnjAGwBWpwAydRauMHxWoxTDY60BrArRnXN_A
853
853
  ];
854
854
  const layouts = {
855
- default: defineAsyncComponent(() => import('./default-Cao5eO80.mjs').then((m) => m.default || m))
855
+ default: defineAsyncComponent(() => import('./default-BKKgG7HJ.mjs').then((m) => m.default || m))
856
856
  };
857
857
  const routeRulesMatcher = _routeRulesMatcher;
858
858
  const LayoutLoader = defineComponent({
@@ -876,7 +876,7 @@ const nuxtLayoutProps = {
876
876
  default: null
877
877
  }
878
878
  };
879
- const __nuxt_component_0$1 = defineComponent({
879
+ const __nuxt_component_0 = defineComponent({
880
880
  name: "NuxtLayout",
881
881
  inheritAttrs: false,
882
882
  props: nuxtLayoutProps,
@@ -1015,7 +1015,7 @@ const defineRouteProvider = (name = "RouteProvider") => defineComponent({
1015
1015
  }
1016
1016
  });
1017
1017
  const RouteProvider = defineRouteProvider();
1018
- const __nuxt_component_1 = defineComponent({
1018
+ const __nuxt_component_1$1 = defineComponent({
1019
1019
  name: "NuxtPage",
1020
1020
  inheritAttrs: false,
1021
1021
  props: {
@@ -1073,7 +1073,7 @@ defineComponent({
1073
1073
  }
1074
1074
  });
1075
1075
  const clientOnlySymbol = /* @__PURE__ */ Symbol.for("nuxt:client-only");
1076
- const __nuxt_component_0 = defineComponent({
1076
+ const __nuxt_component_1 = defineComponent({
1077
1077
  name: "ClientOnly",
1078
1078
  inheritAttrs: false,
1079
1079
  props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"],
@@ -1140,9 +1140,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1140
1140
  setup(__props) {
1141
1141
  useThemeMode();
1142
1142
  return (_ctx, _push, _parent, _attrs) => {
1143
- const _component_NuxtLayout = __nuxt_component_0$1;
1144
- const _component_NuxtPage = __nuxt_component_1;
1145
- 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;
1146
1146
  _push(`<!--[-->`);
1147
1147
  _push(ssrRenderComponent(_component_NuxtLayout, null, {
1148
1148
  default: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -1263,5 +1263,5 @@ let entry;
1263
1263
  }
1264
1264
  const entry_default = ((ssrContext) => entry(ssrContext));
1265
1265
 
1266
- 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 };
1267
1267
  //# sourceMappingURL=server.mjs.map
@@ -1,9 +1,9 @@
1
1
  const interopDefault = r => r.default || r || [];
2
2
  const styles = {
3
- "../node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.DjEXIT5C.mjs').then(interopDefault),
4
3
  "../node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.DObwArFs.mjs').then(interopDefault),
5
- "../node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=a548e1ee&lang.css": () => import('./error-404-styles.DjEXIT5C.mjs').then(interopDefault),
4
+ "../node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.DjEXIT5C.mjs').then(interopDefault),
6
5
  "../node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=647e9bc1&lang.css": () => import('./error-500-styles.DObwArFs.mjs').then(interopDefault),
6
+ "../node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=a548e1ee&lang.css": () => import('./error-404-styles.DjEXIT5C.mjs').then(interopDefault),
7
7
  "components/prd/Viewer.vue": () => import('./Viewer-styles.D6wYWFb1.mjs').then(interopDefault),
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),