@thxgg/steward 0.1.17 → 0.1.18

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 (94) hide show
  1. package/.env.example +0 -6
  2. package/.output/nitro.json +1 -1
  3. package/.output/public/_nuxt/{By7gAVcL.js → -z_Gr0GN.js} +1 -1
  4. package/.output/public/_nuxt/{DhKWRjCh.js → 5LlyHjkF.js} +1 -1
  5. package/.output/public/_nuxt/{CmhLcqDu.js → BA0u_CRT.js} +1 -1
  6. package/.output/public/_nuxt/{BlTKcjLJ.js → BA4e9-N5.js} +2 -2
  7. package/.output/public/_nuxt/{DD--ojY9.js → BO8EM227.js} +1 -1
  8. package/.output/public/_nuxt/{CbJfCtEa.js → C0XT5P3Q.js} +1 -1
  9. package/.output/public/_nuxt/{BSZqAKg4.js → CGzrvVc6.js} +1 -1
  10. package/.output/public/_nuxt/{BdjPva1I.js → CJlXUkTg.js} +1 -1
  11. package/.output/public/_nuxt/{c1sXju8w.js → CZsXZugv.js} +1 -1
  12. package/.output/public/_nuxt/{BMdjSp24.js → C_HVaH3B.js} +1 -1
  13. package/.output/public/_nuxt/{4r0X30JV.js → DAnnHVQP.js} +1 -1
  14. package/.output/public/_nuxt/{CbkpNvIu.js → DEr8q68O.js} +1 -1
  15. package/.output/public/_nuxt/DrXxYwWw.js +30 -0
  16. package/.output/public/_nuxt/{Beeir9iR.js → QAzsKGuP.js} +1 -1
  17. package/.output/public/_nuxt/{Bh3vsUvl.js → TSsR_oCL.js} +1 -1
  18. package/.output/public/_nuxt/{nX8Sf7cz.js → WUF6Thhn.js} +1 -1
  19. package/.output/public/_nuxt/builds/latest.json +1 -1
  20. package/.output/public/_nuxt/builds/meta/19e0e040-a531-4c25-b46d-a6ca54a1ae3e.json +1 -0
  21. package/.output/public/_nuxt/{eGCjCghR.js → i9wn3hS7.js} +1 -1
  22. package/.output/server/chunks/_/git-api.mjs +1 -1
  23. package/.output/server/chunks/_/prd-service.mjs +138 -6
  24. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  25. package/.output/server/chunks/_/repos.mjs +448 -0
  26. package/.output/server/chunks/_/repos.mjs.map +1 -0
  27. package/.output/server/chunks/_/task-graph.mjs +12 -13
  28. package/.output/server/chunks/_/task-graph.mjs.map +1 -1
  29. package/.output/server/chunks/_/watcher.mjs +42 -36
  30. package/.output/server/chunks/_/watcher.mjs.map +1 -1
  31. package/.output/server/chunks/build/{Detail-MGwP_u2d.mjs → Detail-BQSkP9Zm.mjs} +108 -41
  32. package/.output/server/chunks/build/Detail-BQSkP9Zm.mjs.map +1 -0
  33. package/.output/server/chunks/build/{_prd_-C-Aj4fVa.mjs → _prd_-CBR_wm9i.mjs} +2 -4
  34. package/.output/server/chunks/build/_prd_-CBR_wm9i.mjs.map +1 -0
  35. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  36. package/.output/server/chunks/build/default-Cao5eO80.mjs +0 -2
  37. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +0 -2
  38. package/.output/server/chunks/build/error-500-D_bcARXN.mjs +0 -2
  39. package/.output/server/chunks/build/index-ljj9uTXI.mjs +0 -2
  40. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
  41. package/.output/server/chunks/build/{repo-graph-EuhMeFt7.mjs → repo-graph-CVnkmn8i.mjs} +2 -4
  42. package/.output/server/chunks/build/repo-graph-CVnkmn8i.mjs.map +1 -0
  43. package/.output/server/chunks/build/server.mjs +3 -5
  44. package/.output/server/chunks/build/usePrd-f7ylhIqs.mjs +1 -1
  45. package/.output/server/chunks/nitro/nitro.mjs +569 -1595
  46. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/browse.get.mjs +24 -6
  48. package/.output/server/chunks/routes/api/browse.get.mjs.map +1 -1
  49. package/.output/server/chunks/routes/api/index.get.mjs +2 -2
  50. package/.output/server/chunks/routes/api/index.post.mjs +21 -7
  51. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  52. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +19 -11
  53. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
  54. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +2 -2
  55. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +2 -2
  56. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +2 -2
  57. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +3 -2
  58. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
  59. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +3 -2
  60. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs.map +1 -1
  61. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +5 -4
  62. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs.map +1 -1
  63. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +5 -4
  64. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs.map +1 -1
  65. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +5 -4
  66. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs.map +1 -1
  67. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +4 -3
  68. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs.map +1 -1
  69. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +4 -3
  70. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
  71. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +2 -2
  72. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +2 -2
  73. package/.output/server/chunks/routes/api/runtime.get.mjs +1 -3
  74. package/.output/server/chunks/routes/api/runtime.get.mjs.map +1 -1
  75. package/.output/server/chunks/routes/api/watch.get.mjs +4 -4
  76. package/.output/server/chunks/routes/renderer.mjs +1 -1
  77. package/.output/server/index.mjs +1 -3
  78. package/.output/server/index.mjs.map +1 -1
  79. package/.output/server/package.json +1 -1
  80. package/README.md +2 -7
  81. package/dist/host/src/api/repos.js +0 -2
  82. package/dist/host/src/api/state.js +1 -7
  83. package/dist/host/src/index.js +2 -7
  84. package/dist/host/src/ui.js +2 -7
  85. package/dist/server/utils/prd-service.js +1 -5
  86. package/dist/server/utils/prd-state.js +0 -120
  87. package/dist/server/utils/repos.js +14 -4
  88. package/dist/server/utils/task-graph.js +11 -11
  89. package/package.json +1 -1
  90. package/.output/public/_nuxt/DC6iPLz1.js +0 -30
  91. package/.output/public/_nuxt/builds/meta/f3f42dbd-d501-442b-871c-3d06157e7aa1.json +0 -1
  92. package/.output/server/chunks/build/Detail-MGwP_u2d.mjs.map +0 -1
  93. package/.output/server/chunks/build/_prd_-C-Aj4fVa.mjs.map +0 -1
  94. package/.output/server/chunks/build/repo-graph-EuhMeFt7.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.mjs","sources":["../../../../server/utils/watcher.ts"],"names":["repos"],"mappings":"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"}
1
+ {"version":3,"file":"watcher.mjs","sources":["../../../../server/utils/change-events.ts","../../../../server/utils/watcher.ts"],"names":["repos"],"mappings":"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"}
@@ -1379,7 +1379,7 @@ function useGit() {
1379
1379
  return files;
1380
1380
  } catch (error) {
1381
1381
  showError("Failed to fetch diff", getErrorMessage(error));
1382
- return [];
1382
+ throw error;
1383
1383
  } finally {
1384
1384
  isLoadingDiff.value = false;
1385
1385
  }
@@ -1401,7 +1401,7 @@ function useGit() {
1401
1401
  return hunks;
1402
1402
  } catch (error) {
1403
1403
  showError("Failed to fetch file diff", getErrorMessage(error));
1404
- return [];
1404
+ throw error;
1405
1405
  } finally {
1406
1406
  isLoadingFileDiff.value = false;
1407
1407
  }
@@ -1423,7 +1423,7 @@ function useGit() {
1423
1423
  return result.content;
1424
1424
  } catch (error) {
1425
1425
  showError("Failed to fetch file content", getErrorMessage(error));
1426
- return null;
1426
+ throw error;
1427
1427
  } finally {
1428
1428
  isLoadingFileContent.value = false;
1429
1429
  }
@@ -1460,19 +1460,28 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1460
1460
  const error = ref(null);
1461
1461
  const fileDiffError = ref(null);
1462
1462
  const viewMode = ref("changes");
1463
+ function getErrorMessage(error2, fallback) {
1464
+ if (error2 && typeof error2 === "object") {
1465
+ const fetchError = error2;
1466
+ return fetchError.data?.message || fetchError.data?.statusMessage || fetchError.statusMessage || fetchError.message || fallback;
1467
+ }
1468
+ return fallback;
1469
+ }
1463
1470
  const selectedFileDiff = computed(() => files.value.find((f) => f.path === selectedFile.value));
1464
1471
  async function loadDiff() {
1465
1472
  error.value = null;
1466
1473
  files.value = [];
1467
1474
  selectedFile.value = void 0;
1468
1475
  hunks.value = [];
1469
- const result = await fetchDiff(props.repoId, props.commitSha, props.repoPath);
1470
- if (result.length === 0 && !isLoadingDiff.value) {
1471
- error.value = null;
1472
- }
1473
- files.value = result;
1474
- if (result.length > 0) {
1475
- selectedFile.value = result[0].path;
1476
+ fileContent.value = null;
1477
+ try {
1478
+ const result = await fetchDiff(props.repoId, props.commitSha, props.repoPath);
1479
+ files.value = result;
1480
+ if (result.length > 0) {
1481
+ selectedFile.value = result[0].path;
1482
+ }
1483
+ } catch (loadError) {
1484
+ error.value = getErrorMessage(loadError, "Could not load commit diff.");
1476
1485
  }
1477
1486
  }
1478
1487
  async function loadFileDiff() {
@@ -1482,11 +1491,17 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1482
1491
  return;
1483
1492
  }
1484
1493
  fileDiffError.value = null;
1485
- const result = await fetchFileDiff(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1486
- hunks.value = result;
1487
- if (viewMode.value === "full") {
1488
- const content = await fetchFileContent(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1489
- fileContent.value = content;
1494
+ try {
1495
+ const result = await fetchFileDiff(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1496
+ hunks.value = result;
1497
+ if (viewMode.value === "full") {
1498
+ const content = await fetchFileContent(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1499
+ fileContent.value = content;
1500
+ } else {
1501
+ fileContent.value = null;
1502
+ }
1503
+ } catch (loadError) {
1504
+ fileDiffError.value = getErrorMessage(loadError, "Could not load file diff.");
1490
1505
  }
1491
1506
  }
1492
1507
  function toggleViewMode() {
@@ -1494,8 +1509,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1494
1509
  }
1495
1510
  watch(viewMode, async (mode) => {
1496
1511
  if (mode === "full" && selectedFile.value && !fileContent.value) {
1497
- const content = await fetchFileContent(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1498
- fileContent.value = content;
1512
+ try {
1513
+ const content = await fetchFileContent(props.repoId, props.commitSha, selectedFile.value, props.repoPath);
1514
+ fileContent.value = content;
1515
+ fileDiffError.value = null;
1516
+ } catch (loadError) {
1517
+ fileDiffError.value = getErrorMessage(loadError, "Could not load file content.");
1518
+ }
1499
1519
  }
1500
1520
  });
1501
1521
  function handleFileSelect(path) {
@@ -1934,6 +1954,21 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1934
1954
  const { fetchCommits, isLoadingCommits } = useGit();
1935
1955
  const commitDetails = ref(/* @__PURE__ */ new Map());
1936
1956
  const failedCommits = ref(/* @__PURE__ */ new Set());
1957
+ function toShaLookupValue(sha) {
1958
+ return sha.trim().toLowerCase();
1959
+ }
1960
+ function toRepoLookupValue(repo) {
1961
+ return (repo || "").trim();
1962
+ }
1963
+ function createCommitKey(sha, repo) {
1964
+ return `${toRepoLookupValue(repo)}::${toShaLookupValue(sha)}`;
1965
+ }
1966
+ function matchesRequestedSha(requestedSha, commit) {
1967
+ const requested = toShaLookupValue(requestedSha);
1968
+ const fullSha = toShaLookupValue(commit.sha);
1969
+ const shortSha = toShaLookupValue(commit.shortSha);
1970
+ return fullSha === requested || shortSha === requested || fullSha.startsWith(requested) || requested.startsWith(fullSha) || shortSha.startsWith(requested) || requested.startsWith(shortSha);
1971
+ }
1937
1972
  const hasMultipleRepos = computed(() => {
1938
1973
  const repos = new Set(props.commits.map((c) => c.repo).filter(Boolean));
1939
1974
  return repos.size > 1;
@@ -1958,19 +1993,34 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1958
1993
  Array.from(commitsByRepo.entries()).map(async ([repoPath, shas]) => {
1959
1994
  const result = await fetchCommits(repoId, shas, repoPath || void 0);
1960
1995
  return {
1961
- commits: result.commits.map((c) => ({ ...c, repoPath })),
1996
+ repoPath,
1997
+ requestedShas: [...shas],
1998
+ commits: result.commits,
1962
1999
  failedShas: result.failedShas
1963
2000
  };
1964
2001
  })
1965
2002
  );
1966
2003
  const detailsMap = /* @__PURE__ */ new Map();
1967
2004
  const failed = /* @__PURE__ */ new Set();
1968
- for (const { commits: repoCommits, failedShas } of results) {
1969
- for (const commit of repoCommits) {
1970
- detailsMap.set(commit.shortSha, commit);
2005
+ for (const { repoPath, requestedShas, commits: repoCommits, failedShas } of results) {
2006
+ const remainingCommits = [...repoCommits];
2007
+ for (const requestedSha of requestedShas) {
2008
+ const key = createCommitKey(requestedSha, repoPath);
2009
+ const matchIndex = remainingCommits.findIndex((commit) => matchesRequestedSha(requestedSha, commit));
2010
+ if (matchIndex >= 0) {
2011
+ const [matchedCommit] = remainingCommits.splice(matchIndex, 1);
2012
+ if (matchedCommit) {
2013
+ detailsMap.set(key, {
2014
+ ...matchedCommit,
2015
+ repoPath
2016
+ });
2017
+ continue;
2018
+ }
2019
+ }
2020
+ failed.add(key);
1971
2021
  }
1972
2022
  for (const sha of failedShas) {
1973
- failed.add(sha);
2023
+ failed.add(createCommitKey(sha, repoPath));
1974
2024
  }
1975
2025
  }
1976
2026
  commitDetails.value = detailsMap;
@@ -1998,20 +2048,37 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1998
2048
  return date.toLocaleDateString();
1999
2049
  }
2000
2050
  }
2001
- function getDetails(sha) {
2002
- const direct = commitDetails.value.get(sha);
2003
- if (direct) return direct;
2051
+ function getDetails(commitRef) {
2052
+ const direct = commitDetails.value.get(createCommitKey(commitRef.sha, commitRef.repo));
2053
+ if (direct) {
2054
+ return direct;
2055
+ }
2056
+ const requestedSha = toShaLookupValue(commitRef.sha);
2057
+ const repoPrefix = `${toRepoLookupValue(commitRef.repo)}::`;
2004
2058
  for (const [key, commit] of commitDetails.value) {
2005
- if (key.startsWith(sha) || sha.startsWith(key)) {
2059
+ if (!key.startsWith(repoPrefix)) {
2060
+ continue;
2061
+ }
2062
+ const storedSha = key.slice(repoPrefix.length);
2063
+ if (storedSha.startsWith(requestedSha) || requestedSha.startsWith(storedSha)) {
2006
2064
  return commit;
2007
2065
  }
2008
2066
  }
2009
2067
  return void 0;
2010
2068
  }
2011
- function isFailed(sha) {
2012
- if (failedCommits.value.has(sha)) return true;
2013
- for (const failedSha of failedCommits.value) {
2014
- if (failedSha.startsWith(sha) || sha.startsWith(failedSha)) {
2069
+ function isFailed(commitRef) {
2070
+ const directKey = createCommitKey(commitRef.sha, commitRef.repo);
2071
+ if (failedCommits.value.has(directKey)) {
2072
+ return true;
2073
+ }
2074
+ const requestedSha = toShaLookupValue(commitRef.sha);
2075
+ const repoPrefix = `${toRepoLookupValue(commitRef.repo)}::`;
2076
+ for (const failedKey of failedCommits.value) {
2077
+ if (!failedKey.startsWith(repoPrefix)) {
2078
+ continue;
2079
+ }
2080
+ const failedSha = failedKey.slice(repoPrefix.length);
2081
+ if (failedSha.startsWith(requestedSha) || requestedSha.startsWith(failedSha)) {
2015
2082
  return true;
2016
2083
  }
2017
2084
  }
@@ -2032,15 +2099,15 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2032
2099
  ssrRenderList(__props.commits, (commit) => {
2033
2100
  _push(`<button class="w-full rounded-lg border bg-card p-3 text-left transition-colors hover:bg-muted/50 focus:outline-none focus:ring-2 focus:ring-ring"><div class="flex items-start gap-3">`);
2034
2101
  _push(ssrRenderComponent(unref(GitCommit), { class: "mt-0.5 size-5 shrink-0 text-muted-foreground" }, null, _parent));
2035
- _push(`<div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-2"><code class="font-mono text-xs font-medium text-primary">${ssrInterpolate(getDetails(commit.sha)?.shortSha || commit.sha.substring(0, 7))}</code>`);
2036
- if (getDetails(commit.sha)) {
2102
+ _push(`<div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-2"><code class="font-mono text-xs font-medium text-primary">${ssrInterpolate(getDetails(commit)?.shortSha || commit.sha.substring(0, 7))}</code>`);
2103
+ if (getDetails(commit)) {
2037
2104
  _push(`<!--[--><span class="flex items-center gap-1 text-xs text-muted-foreground">`);
2038
2105
  _push(ssrRenderComponent(unref(FileText), { class: "size-3" }, null, _parent));
2039
- _push(` ${ssrInterpolate(getDetails(commit.sha).filesChanged)}</span><span class="flex items-center gap-0.5 text-xs text-green-600 dark:text-green-400">`);
2106
+ _push(` ${ssrInterpolate(getDetails(commit).filesChanged)}</span><span class="flex items-center gap-0.5 text-xs text-green-600 dark:text-green-400">`);
2040
2107
  _push(ssrRenderComponent(unref(Plus), { class: "size-3" }, null, _parent));
2041
- _push(`${ssrInterpolate(getDetails(commit.sha).additions)}</span><span class="flex items-center gap-0.5 text-xs text-red-600 dark:text-red-400">`);
2108
+ _push(`${ssrInterpolate(getDetails(commit).additions)}</span><span class="flex items-center gap-0.5 text-xs text-red-600 dark:text-red-400">`);
2042
2109
  _push(ssrRenderComponent(unref(Minus), { class: "size-3" }, null, _parent));
2043
- _push(`${ssrInterpolate(getDetails(commit.sha).deletions)}</span><!--]-->`);
2110
+ _push(`${ssrInterpolate(getDetails(commit).deletions)}</span><!--]-->`);
2044
2111
  } else {
2045
2112
  _push(`<!---->`);
2046
2113
  }
@@ -2066,9 +2133,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2066
2133
  _push(`<!---->`);
2067
2134
  }
2068
2135
  _push(`</div><p class="mt-1 truncate text-sm">`);
2069
- if (getDetails(commit.sha)) {
2070
- _push(`<!--[-->${ssrInterpolate(getDetails(commit.sha).message)}<!--]-->`);
2071
- } else if (isFailed(commit.sha)) {
2136
+ if (getDetails(commit)) {
2137
+ _push(`<!--[-->${ssrInterpolate(getDetails(commit).message)}<!--]-->`);
2138
+ } else if (isFailed(commit)) {
2072
2139
  _push(`<span class="flex items-center gap-1 text-muted-foreground">`);
2073
2140
  _push(ssrRenderComponent(unref(AlertCircle), { class: "size-3" }, null, _parent));
2074
2141
  _push(` Commit unavailable </span>`);
@@ -2076,8 +2143,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2076
2143
  _push(`<span class="text-muted-foreground">Loading...</span>`);
2077
2144
  }
2078
2145
  _push(`</p>`);
2079
- if (getDetails(commit.sha)) {
2080
- _push(`<p class="mt-1 text-xs text-muted-foreground">${ssrInterpolate(getDetails(commit.sha).author)} · ${ssrInterpolate(formatRelativeDate(getDetails(commit.sha).date))}</p>`);
2146
+ if (getDetails(commit)) {
2147
+ _push(`<p class="mt-1 text-xs text-muted-foreground">${ssrInterpolate(getDetails(commit).author)} · ${ssrInterpolate(formatRelativeDate(getDetails(commit).date))}</p>`);
2081
2148
  } else {
2082
2149
  _push(`<!---->`);
2083
2150
  }
@@ -3474,4 +3541,4 @@ _sfc_main.setup = (props, ctx) => {
3474
3541
  const __nuxt_component_1 = Object.assign(_sfc_main, { __name: "TasksDetail" });
3475
3542
 
3476
3543
  export { Badge as B, __nuxt_component_0$2 as _, __nuxt_component_1 as a };
3477
- //# sourceMappingURL=Detail-MGwP_u2d.mjs.map
3544
+ //# sourceMappingURL=Detail-BQSkP9Zm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Detail-BQSkP9Zm.mjs","sources":["../../../../node_modules/@dagrejs/dagre/dist/dagre.esm.js","../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Detail-BQSkP9Zm.js"],"names":[],"mappings":"","x_google_ignoreList":[0,1]}
@@ -2,7 +2,7 @@ import { _ as __nuxt_component_0$2 } from './nuxt-link-SvT1nf8Z.mjs';
2
2
  import { defineComponent, computed, ref, watch, inject, mergeProps, unref, withCtx, createVNode, createTextVNode, isRef, openBlock, createBlock, toDisplayString, createCommentVNode, renderSlot, resolveDynamicComponent, useSSRContext } from 'vue';
3
3
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderSlot, ssrRenderList, ssrRenderClass, ssrRenderVNode } from 'vue/server-renderer';
4
4
  import { Loader2, AlertCircle, RefreshCw, FileText, LayoutGrid, GitBranch, User, Calendar, CircleDot, ExternalLink, Circle, CheckCircle2, PlayCircle, Minus, ArrowDown, ArrowUp } from 'lucide-vue-next';
5
- import { _ as __nuxt_component_0$2$1, a as __nuxt_component_1$1, B as Badge } from './Detail-MGwP_u2d.mjs';
5
+ import { _ as __nuxt_component_0$2$1, a as __nuxt_component_1$1, B as Badge } from './Detail-BQSkP9Zm.mjs';
6
6
  import { marked } from 'marked';
7
7
  import { codeToHtml } from 'shiki';
8
8
  import DOMPurify from 'dompurify';
@@ -21,8 +21,6 @@ import 'node:fs';
21
21
  import 'node:path';
22
22
  import 'node:crypto';
23
23
  import 'node:url';
24
- import 'node:os';
25
- import 'zod';
26
24
  import '@vue-flow/background';
27
25
  import '@vue-flow/controls';
28
26
  import '@vue-flow/core';
@@ -1635,4 +1633,4 @@ _sfc_main.setup = (props, ctx) => {
1635
1633
  };
1636
1634
 
1637
1635
  export { _sfc_main as default };
1638
- //# sourceMappingURL=_prd_-C-Aj4fVa.mjs.map
1636
+ //# sourceMappingURL=_prd_-CBR_wm9i.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_prd_-CBR_wm9i.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_prd_-CBR_wm9i.js"],"names":["__nuxt_component_0$3"],"mappings":"","x_google_ignoreList":[0]}