@mean-weasel/lineage 0.1.22 → 0.1.23

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 (219) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/MANUAL_INSTALL_DOGFOOD.md +1 -0
  3. package/README.md +8 -5
  4. package/dist/cli/lineage-dev.js +27 -21
  5. package/dist/cli/lineage-dev.js.map +3 -3
  6. package/dist/cli/lineage-preview.js +27 -21
  7. package/dist/cli/lineage-preview.js.map +3 -3
  8. package/dist/cli/lineage.js +27 -21
  9. package/dist/cli/lineage.js.map +3 -3
  10. package/dist/docs-site/404.html +41 -0
  11. package/dist/docs-site/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js +1 -0
  12. package/dist/docs-site/_astro/Search.astro_astro_type_script_index_0_lang.x2pVooPA.js +1 -0
  13. package/dist/docs-site/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js +1 -0
  14. package/dist/docs-site/_astro/common.DarLW4Vf.css +3 -0
  15. package/dist/docs-site/_astro/ec.0vx5m.js +3 -0
  16. package/dist/docs-site/_astro/ec.w36nc.css +1 -0
  17. package/dist/docs-site/_astro/page.LAbJoB63.js +1 -0
  18. package/dist/docs-site/_astro/print.ehPL0gv-.css +1 -0
  19. package/dist/docs-site/_astro/starlight-toc.CTCQXEge.js +1 -0
  20. package/dist/docs-site/_astro/ui-core.DWIqd25E.js +2 -0
  21. package/dist/docs-site/concepts/agent-claims-handoffs/index.html +99 -0
  22. package/dist/docs-site/concepts/attempts-current-version/index.html +86 -0
  23. package/dist/docs-site/concepts/branches-vs-rerolls/index.html +114 -0
  24. package/dist/docs-site/concepts/projects-workspaces-assets/index.html +89 -0
  25. package/dist/docs-site/concepts/selections-next-variations/index.html +86 -0
  26. package/dist/docs-site/index.html +92 -0
  27. package/dist/docs-site/integrations/cloud-storage/index.html +92 -0
  28. package/dist/docs-site/integrations/image-generation/index.html +93 -0
  29. package/dist/docs-site/integrations/index.html +112 -0
  30. package/dist/docs-site/integrations/social-scheduling/index.html +89 -0
  31. package/dist/docs-site/operations/backup-recovery/index.html +87 -0
  32. package/dist/docs-site/operations/channels/index.html +88 -0
  33. package/dist/docs-site/operations/local-first-data/index.html +90 -0
  34. package/dist/docs-site/operations/profiles-database-identity/index.html +90 -0
  35. package/dist/docs-site/operations/troubleshooting/index.html +89 -0
  36. package/dist/docs-site/pagefind/fragment/en_1126abb.pf_fragment +0 -0
  37. package/dist/docs-site/pagefind/fragment/en_19b3f6c.pf_fragment +0 -0
  38. package/dist/docs-site/pagefind/fragment/en_31aa611.pf_fragment +0 -0
  39. package/dist/docs-site/pagefind/fragment/en_38817cc.pf_fragment +0 -0
  40. package/dist/docs-site/pagefind/fragment/en_4184ad1.pf_fragment +0 -0
  41. package/dist/docs-site/pagefind/fragment/en_41db543.pf_fragment +0 -0
  42. package/dist/docs-site/pagefind/fragment/en_469f895.pf_fragment +0 -0
  43. package/dist/docs-site/pagefind/fragment/en_4db923b.pf_fragment +0 -0
  44. package/dist/docs-site/pagefind/fragment/en_56e45b6.pf_fragment +0 -0
  45. package/dist/docs-site/pagefind/fragment/en_56fe7ca.pf_fragment +0 -0
  46. package/dist/docs-site/pagefind/fragment/en_581a7cb.pf_fragment +0 -0
  47. package/dist/docs-site/pagefind/fragment/en_5be5e44.pf_fragment +0 -0
  48. package/dist/docs-site/pagefind/fragment/en_603c2be.pf_fragment +0 -0
  49. package/dist/docs-site/pagefind/fragment/en_66b3118.pf_fragment +0 -0
  50. package/dist/docs-site/pagefind/fragment/en_6a19c31.pf_fragment +0 -0
  51. package/dist/docs-site/pagefind/fragment/en_74e9307.pf_fragment +0 -0
  52. package/dist/docs-site/pagefind/fragment/en_7c9d5a2.pf_fragment +0 -0
  53. package/dist/docs-site/pagefind/fragment/en_818744b.pf_fragment +0 -0
  54. package/dist/docs-site/pagefind/fragment/en_8269752.pf_fragment +0 -0
  55. package/dist/docs-site/pagefind/fragment/en_88b38c1.pf_fragment +0 -0
  56. package/dist/docs-site/pagefind/fragment/en_8c1c735.pf_fragment +0 -0
  57. package/dist/docs-site/pagefind/fragment/en_98d9b16.pf_fragment +0 -0
  58. package/dist/docs-site/pagefind/fragment/en_a3d636e.pf_fragment +0 -0
  59. package/dist/docs-site/pagefind/fragment/en_b15ecf0.pf_fragment +0 -0
  60. package/dist/docs-site/pagefind/fragment/en_bcc29c5.pf_fragment +0 -0
  61. package/dist/docs-site/pagefind/fragment/en_bfb13e9.pf_fragment +0 -0
  62. package/dist/docs-site/pagefind/fragment/en_d0fca9e.pf_fragment +0 -0
  63. package/dist/docs-site/pagefind/fragment/en_d49ed00.pf_fragment +0 -0
  64. package/dist/docs-site/pagefind/fragment/en_e0786b9.pf_fragment +0 -0
  65. package/dist/docs-site/pagefind/fragment/en_e298dee.pf_fragment +0 -0
  66. package/dist/docs-site/pagefind/fragment/en_f6179a8.pf_fragment +0 -0
  67. package/dist/docs-site/pagefind/index/en_f279b04.pf_index +0 -0
  68. package/dist/docs-site/pagefind/pagefind-component-ui.css +1509 -0
  69. package/dist/docs-site/pagefind/pagefind-component-ui.js +56 -0
  70. package/dist/docs-site/pagefind/pagefind-entry.json +1 -0
  71. package/dist/docs-site/pagefind/pagefind-highlight.js +1070 -0
  72. package/dist/docs-site/pagefind/pagefind-modular-ui.css +214 -0
  73. package/dist/docs-site/pagefind/pagefind-modular-ui.js +8 -0
  74. package/dist/docs-site/pagefind/pagefind-ui.css +1 -0
  75. package/dist/docs-site/pagefind/pagefind-ui.js +2 -0
  76. package/dist/docs-site/pagefind/pagefind-worker.js +6 -0
  77. package/dist/docs-site/pagefind/pagefind.en_74951c3ca7.pf_meta +0 -0
  78. package/dist/docs-site/pagefind/pagefind.js +6 -0
  79. package/dist/docs-site/pagefind/wasm.en.pagefind +0 -0
  80. package/dist/docs-site/pagefind/wasm.unknown.pagefind +0 -0
  81. package/dist/docs-site/reference/cli/index.html +86 -0
  82. package/dist/docs-site/reference/interface-guide/index.html +86 -0
  83. package/dist/docs-site/reference/release-notes/index.html +80 -0
  84. package/dist/docs-site/reference/settings/index.html +86 -0
  85. package/dist/docs-site/reference/terminology/index.html +94 -0
  86. package/dist/docs-site/sitemap-0.xml +1 -0
  87. package/dist/docs-site/sitemap-index.xml +1 -0
  88. package/dist/docs-site/start-here/example-projects/index.html +88 -0
  89. package/dist/docs-site/start-here/first-workspace/index.html +91 -0
  90. package/dist/docs-site/start-here/installation-first-run/index.html +86 -0
  91. package/dist/docs-site/start-here/what-is-lineage/index.html +96 -0
  92. package/dist/docs-site/workflows/back-up-approved-assets/index.html +88 -0
  93. package/dist/docs-site/workflows/content-batches/index.html +88 -0
  94. package/dist/docs-site/workflows/continue-new-agent-session/index.html +89 -0
  95. package/dist/docs-site/workflows/create-grow-lineage/index.html +89 -0
  96. package/dist/docs-site/workflows/generate-import-variations/index.html +92 -0
  97. package/dist/docs-site/workflows/restore-earlier-attempt/index.html +87 -0
  98. package/dist/docs-site/workflows/review-approve-assets/index.html +87 -0
  99. package/dist/pages/.nojekyll +0 -0
  100. package/dist/pages/assets/agent-shared-state-DOfpTLiw.webp +0 -0
  101. package/dist/pages/assets/agent-to-canvas-DtIu_cPq.mp4 +0 -0
  102. package/dist/pages/assets/app-B-fAyNsU.css +1 -0
  103. package/dist/{web/assets/app-D-7R33Mc.js → pages/assets/app-DdU93vp2.js} +36 -2
  104. package/dist/pages/assets/attempt-history-D6wdic6n.webp +0 -0
  105. package/dist/pages/assets/branching-tree-B8I5_S6D.png +0 -0
  106. package/dist/pages/assets/canvas-cli-DHBacq7r.png +0 -0
  107. package/dist/pages/assets/hero-agent-sync-D8ibW83E.mp4 +0 -0
  108. package/dist/pages/assets/hero-agent-sync-poster-zBB3KpbO.png +0 -0
  109. package/dist/pages/assets/hero-board-DG3ED4AW.webp +0 -0
  110. package/dist/pages/assets/hero-lineage-growth-Bsl9tiq-.mp4 +0 -0
  111. package/dist/pages/assets/hero-trace-connections-Bb52ABBc.mp4 +0 -0
  112. package/dist/pages/assets/human-selection-BdDBDE-I.webp +0 -0
  113. package/dist/pages/assets/human-to-agent-D1z92ZO9.mp4 +0 -0
  114. package/dist/pages/assets/jsx-runtime-DAFSxiwi.js +8 -0
  115. package/dist/pages/assets/landing-MwOFmHoi.js +2 -0
  116. package/dist/pages/assets/landing-wy4L-yBm.css +1 -0
  117. package/dist/pages/assets/reroll-history-DQcEH42R.mp4 +0 -0
  118. package/dist/pages/docs/404.html +41 -0
  119. package/dist/pages/docs/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js +1 -0
  120. package/dist/pages/docs/_astro/Search.astro_astro_type_script_index_0_lang.x2pVooPA.js +1 -0
  121. package/dist/pages/docs/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js +1 -0
  122. package/dist/pages/docs/_astro/common.DarLW4Vf.css +3 -0
  123. package/dist/pages/docs/_astro/ec.0vx5m.js +3 -0
  124. package/dist/pages/docs/_astro/ec.w36nc.css +1 -0
  125. package/dist/pages/docs/_astro/page.LAbJoB63.js +1 -0
  126. package/dist/pages/docs/_astro/print.ehPL0gv-.css +1 -0
  127. package/dist/pages/docs/_astro/starlight-toc.CTCQXEge.js +1 -0
  128. package/dist/pages/docs/_astro/ui-core.DWIqd25E.js +2 -0
  129. package/dist/pages/docs/concepts/agent-claims-handoffs/index.html +99 -0
  130. package/dist/pages/docs/concepts/attempts-current-version/index.html +86 -0
  131. package/dist/pages/docs/concepts/branches-vs-rerolls/index.html +114 -0
  132. package/dist/pages/docs/concepts/projects-workspaces-assets/index.html +89 -0
  133. package/dist/pages/docs/concepts/selections-next-variations/index.html +86 -0
  134. package/dist/pages/docs/index.html +92 -0
  135. package/dist/pages/docs/integrations/cloud-storage/index.html +92 -0
  136. package/dist/pages/docs/integrations/image-generation/index.html +93 -0
  137. package/dist/pages/docs/integrations/index.html +112 -0
  138. package/dist/pages/docs/integrations/social-scheduling/index.html +89 -0
  139. package/dist/pages/docs/operations/backup-recovery/index.html +87 -0
  140. package/dist/pages/docs/operations/channels/index.html +88 -0
  141. package/dist/pages/docs/operations/local-first-data/index.html +90 -0
  142. package/dist/pages/docs/operations/profiles-database-identity/index.html +90 -0
  143. package/dist/pages/docs/operations/troubleshooting/index.html +89 -0
  144. package/dist/pages/docs/pagefind/fragment/en_1126abb.pf_fragment +0 -0
  145. package/dist/pages/docs/pagefind/fragment/en_19b3f6c.pf_fragment +0 -0
  146. package/dist/pages/docs/pagefind/fragment/en_31aa611.pf_fragment +0 -0
  147. package/dist/pages/docs/pagefind/fragment/en_38817cc.pf_fragment +0 -0
  148. package/dist/pages/docs/pagefind/fragment/en_4184ad1.pf_fragment +0 -0
  149. package/dist/pages/docs/pagefind/fragment/en_41db543.pf_fragment +0 -0
  150. package/dist/pages/docs/pagefind/fragment/en_469f895.pf_fragment +0 -0
  151. package/dist/pages/docs/pagefind/fragment/en_4db923b.pf_fragment +0 -0
  152. package/dist/pages/docs/pagefind/fragment/en_56e45b6.pf_fragment +0 -0
  153. package/dist/pages/docs/pagefind/fragment/en_56fe7ca.pf_fragment +0 -0
  154. package/dist/pages/docs/pagefind/fragment/en_581a7cb.pf_fragment +0 -0
  155. package/dist/pages/docs/pagefind/fragment/en_5be5e44.pf_fragment +0 -0
  156. package/dist/pages/docs/pagefind/fragment/en_603c2be.pf_fragment +0 -0
  157. package/dist/pages/docs/pagefind/fragment/en_66b3118.pf_fragment +0 -0
  158. package/dist/pages/docs/pagefind/fragment/en_6a19c31.pf_fragment +0 -0
  159. package/dist/pages/docs/pagefind/fragment/en_74e9307.pf_fragment +0 -0
  160. package/dist/pages/docs/pagefind/fragment/en_7c9d5a2.pf_fragment +0 -0
  161. package/dist/pages/docs/pagefind/fragment/en_818744b.pf_fragment +0 -0
  162. package/dist/pages/docs/pagefind/fragment/en_8269752.pf_fragment +0 -0
  163. package/dist/pages/docs/pagefind/fragment/en_88b38c1.pf_fragment +0 -0
  164. package/dist/pages/docs/pagefind/fragment/en_8c1c735.pf_fragment +0 -0
  165. package/dist/pages/docs/pagefind/fragment/en_98d9b16.pf_fragment +0 -0
  166. package/dist/pages/docs/pagefind/fragment/en_a3d636e.pf_fragment +0 -0
  167. package/dist/pages/docs/pagefind/fragment/en_b15ecf0.pf_fragment +0 -0
  168. package/dist/pages/docs/pagefind/fragment/en_bcc29c5.pf_fragment +0 -0
  169. package/dist/pages/docs/pagefind/fragment/en_bfb13e9.pf_fragment +0 -0
  170. package/dist/pages/docs/pagefind/fragment/en_d0fca9e.pf_fragment +0 -0
  171. package/dist/pages/docs/pagefind/fragment/en_d49ed00.pf_fragment +0 -0
  172. package/dist/pages/docs/pagefind/fragment/en_e0786b9.pf_fragment +0 -0
  173. package/dist/pages/docs/pagefind/fragment/en_e298dee.pf_fragment +0 -0
  174. package/dist/pages/docs/pagefind/fragment/en_f6179a8.pf_fragment +0 -0
  175. package/dist/pages/docs/pagefind/index/en_f279b04.pf_index +0 -0
  176. package/dist/pages/docs/pagefind/pagefind-component-ui.css +1509 -0
  177. package/dist/pages/docs/pagefind/pagefind-component-ui.js +56 -0
  178. package/dist/pages/docs/pagefind/pagefind-entry.json +1 -0
  179. package/dist/pages/docs/pagefind/pagefind-highlight.js +1070 -0
  180. package/dist/pages/docs/pagefind/pagefind-modular-ui.css +214 -0
  181. package/dist/pages/docs/pagefind/pagefind-modular-ui.js +8 -0
  182. package/dist/pages/docs/pagefind/pagefind-ui.css +1 -0
  183. package/dist/pages/docs/pagefind/pagefind-ui.js +2 -0
  184. package/dist/pages/docs/pagefind/pagefind-worker.js +6 -0
  185. package/dist/pages/docs/pagefind/pagefind.en_74951c3ca7.pf_meta +0 -0
  186. package/dist/pages/docs/pagefind/pagefind.js +6 -0
  187. package/dist/pages/docs/pagefind/wasm.en.pagefind +0 -0
  188. package/dist/pages/docs/pagefind/wasm.unknown.pagefind +0 -0
  189. package/dist/pages/docs/reference/cli/index.html +86 -0
  190. package/dist/pages/docs/reference/interface-guide/index.html +86 -0
  191. package/dist/pages/docs/reference/release-notes/index.html +80 -0
  192. package/dist/pages/docs/reference/settings/index.html +86 -0
  193. package/dist/pages/docs/reference/terminology/index.html +94 -0
  194. package/dist/pages/docs/sitemap-0.xml +1 -0
  195. package/dist/pages/docs/sitemap-index.xml +1 -0
  196. package/dist/pages/docs/start-here/example-projects/index.html +88 -0
  197. package/dist/pages/docs/start-here/first-workspace/index.html +91 -0
  198. package/dist/pages/docs/start-here/installation-first-run/index.html +86 -0
  199. package/dist/pages/docs/start-here/what-is-lineage/index.html +96 -0
  200. package/dist/pages/docs/workflows/back-up-approved-assets/index.html +88 -0
  201. package/dist/pages/docs/workflows/content-batches/index.html +88 -0
  202. package/dist/pages/docs/workflows/continue-new-agent-session/index.html +89 -0
  203. package/dist/pages/docs/workflows/create-grow-lineage/index.html +89 -0
  204. package/dist/pages/docs/workflows/generate-import-variations/index.html +92 -0
  205. package/dist/pages/docs/workflows/restore-earlier-attempt/index.html +87 -0
  206. package/dist/pages/docs/workflows/review-approve-assets/index.html +87 -0
  207. package/dist/pages/index.html +42 -0
  208. package/dist/pages/landing/index.html +42 -0
  209. package/dist/pages/lineage-showcase-cover-16x9.png +0 -0
  210. package/dist/runtime-build.json +5 -5
  211. package/dist/server.js +73 -24
  212. package/dist/server.js.map +4 -4
  213. package/dist/web/assets/app-DdU93vp2.js +50 -0
  214. package/dist/web/assets/landing-MwOFmHoi.js +2 -0
  215. package/dist/web/index.html +3 -3
  216. package/dist/web/landing/index.html +26 -3
  217. package/dist/web/lineage-showcase-cover-16x9.png +0 -0
  218. package/package.json +10 -2
  219. package/dist/web/assets/landing-DIjBBL33.js +0 -2
package/dist/server.js CHANGED
@@ -2177,7 +2177,7 @@ function lookupAssets(project, assetIds) {
2177
2177
  }
2178
2178
 
2179
2179
  // src/server/assetLineage.ts
2180
- import { join as join7 } from "node:path";
2180
+ import { isAbsolute as isAbsolute2, join as join7, resolve as resolve5 } from "node:path";
2181
2181
 
2182
2182
  // src/shared/edgeSummary.ts
2183
2183
  var edgeSummaryWordLimit = 2;
@@ -3493,6 +3493,11 @@ function collectAssets(project, source) {
3493
3493
  }
3494
3494
  return assets;
3495
3495
  }
3496
+ function absoluteLocalPath(localPath) {
3497
+ if (!localPath) return void 0;
3498
+ if (isAbsolute2(localPath)) return localPath;
3499
+ return resolve5(repoRoot, ".asset-scratch", localPath);
3500
+ }
3496
3501
  function upsertProject(database, project) {
3497
3502
  const timestamp = nowIso();
3498
3503
  database.prepare(`
@@ -3991,6 +3996,7 @@ function getLineageSnapshot(project, assetId) {
3991
3996
  const lineageTasks = lineageTasksByNode.get(row.asset_id);
3992
3997
  return {
3993
3998
  ...node,
3999
+ absolute_path: absoluteLocalPath(row.local_path),
3994
4000
  attempt_count: attempts.length,
3995
4001
  current_attempt: currentAttempt,
3996
4002
  is_latest: !childIds.has(row.asset_id),
@@ -5929,6 +5935,49 @@ function registerAgentClaimRoutes(app2, projectFrom2, asyncRoute2) {
5929
5935
  }));
5930
5936
  }
5931
5937
 
5938
+ // src/shared/adapterCatalog.ts
5939
+ var adapterCatalogJson = `[
5940
+ {
5941
+ "adapterType": "cloud",
5942
+ "capabilityId": "cloud-storage",
5943
+ "capabilityLabel": "Cloud storage",
5944
+ "description": "Inspect and back up approved assets with an explicitly configured cloud storage provider.",
5945
+ "docsSlug": "integrations/cloud-storage",
5946
+ "liveBehavior": "available",
5947
+ "maturity": "Available",
5948
+ "providerId": "s3",
5949
+ "providerLabel": "Amazon S3"
5950
+ },
5951
+ {
5952
+ "adapterType": "scheduler",
5953
+ "capabilityId": "social-scheduling",
5954
+ "capabilityLabel": "Social scheduling",
5955
+ "description": "Prepare and validate reviewed social posts for an external scheduler without publishing them live.",
5956
+ "docsSlug": "integrations/social-scheduling",
5957
+ "liveBehavior": "disabled",
5958
+ "maturity": "Preview",
5959
+ "providerId": "buffer",
5960
+ "providerLabel": "Buffer"
5961
+ },
5962
+ {
5963
+ "adapterType": "image_generator",
5964
+ "capabilityId": "image-generation",
5965
+ "capabilityLabel": "Image generation",
5966
+ "description": "Create Codex generation handoffs and durable import receipts without embedding a model service.",
5967
+ "docsSlug": "integrations/image-generation",
5968
+ "liveBehavior": "handoff",
5969
+ "maturity": "Available",
5970
+ "providerId": "codex-handoff",
5971
+ "providerLabel": "Codex handoff"
5972
+ }
5973
+ ]`;
5974
+ var adapterCatalog = JSON.parse(adapterCatalogJson);
5975
+ function findAdapterCatalogEntry(adapterType, providerId) {
5976
+ const entry = adapterCatalog.find((item) => item.adapterType === adapterType && item.providerId === providerId);
5977
+ if (!entry) throw new Error(`Missing public adapter catalog entry: ${adapterType}/${providerId}`);
5978
+ return entry;
5979
+ }
5980
+
5932
5981
  // src/server/adapters/adapterSettings.ts
5933
5982
  var AdapterSettingsError = class extends Error {
5934
5983
  constructor(message, status = 400) {
@@ -5944,8 +5993,8 @@ var definitions = [
5944
5993
  {
5945
5994
  adapter_type: "cloud",
5946
5995
  default_enabled: false,
5947
- description: "Optional cloud storage inspection for projects that configure it explicitly.",
5948
- label: "Cloud storage",
5996
+ description: findAdapterCatalogEntry("cloud", "s3").description,
5997
+ label: findAdapterCatalogEntry("cloud", "s3").providerLabel,
5949
5998
  provider: "s3",
5950
5999
  safeConfig: (project) => {
5951
6000
  if (project === defaultProject) return { bucket: "", mode: "local-public-fallback", region: "" };
@@ -5957,8 +6006,8 @@ var definitions = [
5957
6006
  {
5958
6007
  adapter_type: "scheduler",
5959
6008
  default_enabled: false,
5960
- description: "Prepare reviewed social posts for external scheduling.",
5961
- label: "Buffer",
6009
+ description: findAdapterCatalogEntry("scheduler", "buffer").description,
6010
+ label: findAdapterCatalogEntry("scheduler", "buffer").providerLabel,
5962
6011
  provider: "buffer",
5963
6012
  safeConfig: () => ({ defaultMode: "dry-run" }),
5964
6013
  secret_ref: "env:LINEAGE_SCHEDULER_TOKEN"
@@ -5966,8 +6015,8 @@ var definitions = [
5966
6015
  {
5967
6016
  adapter_type: "image_generator",
5968
6017
  default_enabled: true,
5969
- description: "Create generation handoff packets and store proof receipts.",
5970
- label: "Codex handoff",
6018
+ description: findAdapterCatalogEntry("image_generator", "codex-handoff").description,
6019
+ label: findAdapterCatalogEntry("image_generator", "codex-handoff").providerLabel,
5971
6020
  provider: "codex-handoff",
5972
6021
  safeConfig: () => ({ clearSelectionAfterImport: true, defaultVariationCount: 3, receipts: "sqlite" }),
5973
6022
  secret_ref: null
@@ -7213,7 +7262,7 @@ function contentBatchRouter(projectFrom2) {
7213
7262
 
7214
7263
  // src/server/generationReceipts.ts
7215
7264
  import { existsSync as existsSync9, realpathSync as realpathSync2, statSync as statSync4 } from "node:fs";
7216
- import { relative as relative4, resolve as resolve5 } from "node:path";
7265
+ import { relative as relative4, resolve as resolve6 } from "node:path";
7217
7266
  import { randomUUID as randomUUID3 } from "node:crypto";
7218
7267
 
7219
7268
  // src/shared/generationOutputManifest.ts
@@ -7751,8 +7800,8 @@ function isPathInside2(child, parent) {
7751
7800
  return Boolean(rel) && !rel.startsWith("..") && !rel.startsWith("/");
7752
7801
  }
7753
7802
  function scratchCandidate(file) {
7754
- const scratchRoot = resolve5(repoRoot, ".asset-scratch");
7755
- const candidate = file.startsWith(".asset-scratch/") || resolve5(file).startsWith(scratchRoot) ? resolve5(repoRoot, file) : resolve5(scratchRoot, file);
7803
+ const scratchRoot = resolve6(repoRoot, ".asset-scratch");
7804
+ const candidate = file.startsWith(".asset-scratch/") || resolve6(file).startsWith(scratchRoot) ? resolve6(repoRoot, file) : resolve6(scratchRoot, file);
7756
7805
  if (!isPathInside2(candidate, scratchRoot)) throw new GenerationReceiptError(`Import file must be under .asset-scratch: ${file}`);
7757
7806
  return { candidate, scratchRoot };
7758
7807
  }
@@ -8887,7 +8936,7 @@ function registerLineageWorkspaceRoutes(app2, projectFrom2, asyncRoute2) {
8887
8936
  import { createHash as createHash6 } from "node:crypto";
8888
8937
  import { spawnSync as spawnSync2 } from "node:child_process";
8889
8938
  import { existsSync as existsSync11, lstatSync as lstatSync3, readFileSync as readFileSync7, readdirSync as readdirSync4, readlinkSync, realpathSync as realpathSync3, statSync as statSync5 } from "node:fs";
8890
- import { dirname as dirname6, isAbsolute as isAbsolute2, join as join12, resolve as resolve6 } from "node:path";
8939
+ import { dirname as dirname6, isAbsolute as isAbsolute3, join as join12, resolve as resolve7 } from "node:path";
8891
8940
  import { fileURLToPath as fileURLToPath2 } from "node:url";
8892
8941
 
8893
8942
  // src/shared/runtimeInfoTypes.ts
@@ -8906,7 +8955,7 @@ function isLineagePackageRoot(root) {
8906
8955
  }
8907
8956
  function executingCodeRoot() {
8908
8957
  const moduleDirectory = dirname6(fileURLToPath2(import.meta.url));
8909
- const candidates = [resolve6(moduleDirectory, "../.."), resolve6(moduleDirectory, "..")];
8958
+ const candidates = [resolve7(moduleDirectory, "../.."), resolve7(moduleDirectory, "..")];
8910
8959
  const root = candidates.find(isLineagePackageRoot);
8911
8960
  if (!root) throw new Error(`Unable to derive Lineage code root from executing module ${fileURLToPath2(import.meta.url)}`);
8912
8961
  return canonicalRoot(root);
@@ -8919,7 +8968,7 @@ function canonicalRoot(root) {
8919
8968
  try {
8920
8969
  return realpathSync3(root);
8921
8970
  } catch {
8922
- return resolve6(root);
8971
+ return resolve7(root);
8923
8972
  }
8924
8973
  }
8925
8974
  function packageInfo(root = codeRoot) {
@@ -9019,7 +9068,7 @@ function readInstallReceipt(path, errors) {
9019
9068
  return void 0;
9020
9069
  }
9021
9070
  let receipt;
9022
- const receiptPath = resolve6(path);
9071
+ const receiptPath = resolve7(path);
9023
9072
  try {
9024
9073
  receipt = JSON.parse(readFileSync7(receiptPath, "utf8"));
9025
9074
  } catch (error) {
@@ -9027,7 +9076,7 @@ function readInstallReceipt(path, errors) {
9027
9076
  return void 0;
9028
9077
  }
9029
9078
  if (receipt.schema_version !== lineageRuntimeInstallSchemaVersion) errors.push(`Unsupported runtime install receipt schema: ${String(receipt.schema_version)}`);
9030
- if (!isAbsolute2(receipt.package_root || "")) errors.push("Runtime install receipt package_root must be absolute");
9079
+ if (!isAbsolute3(receipt.package_root || "")) errors.push("Runtime install receipt package_root must be absolute");
9031
9080
  if (!receipt.package_integrity?.startsWith("sha512-")) errors.push("Runtime install receipt package integrity is invalid");
9032
9081
  if (receipt.package_source !== "registry" && receipt.package_source !== "local") errors.push("Runtime install receipt package source is invalid");
9033
9082
  if (typeof receipt.package_spec !== "string" || !receipt.package_spec) errors.push("Runtime install receipt package spec is invalid");
@@ -9289,13 +9338,13 @@ function registerManagedWriterRoute(app2, fields) {
9289
9338
 
9290
9339
  // src/cli/lineageCli.ts
9291
9340
  import { existsSync as existsSync13, mkdirSync as mkdirSync8, readFileSync as readFileSync8, writeFileSync as writeFileSync6 } from "node:fs";
9292
- import { dirname as dirname7, join as join13, resolve as resolve8 } from "node:path";
9341
+ import { dirname as dirname7, join as join13, resolve as resolve9 } from "node:path";
9293
9342
  import { fileURLToPath as fileURLToPath3 } from "node:url";
9294
9343
 
9295
9344
  // src/server/lineageSelectionPacket.ts
9296
9345
  import { createHash as createHash7 } from "node:crypto";
9297
9346
  import { existsSync as existsSync12, statSync as statSync6 } from "node:fs";
9298
- import { isAbsolute as isAbsolute3, resolve as resolve7 } from "node:path";
9347
+ import { isAbsolute as isAbsolute4, resolve as resolve8 } from "node:path";
9299
9348
  var LineageSelectionPacketError = class extends Error {
9300
9349
  constructor(message, warnings = [], errors = [], diagnostics = []) {
9301
9350
  super(message);
@@ -9341,10 +9390,10 @@ function resolveWorkspace(project, options) {
9341
9390
  }
9342
9391
  function resolveLocalReference(reference) {
9343
9392
  if (!reference) return void 0;
9344
- if (isAbsolute3(reference)) return reference;
9345
- const repoRelative = resolve7(repoRoot, reference);
9393
+ if (isAbsolute4(reference)) return reference;
9394
+ const repoRelative = resolve8(repoRoot, reference);
9346
9395
  if (existsSync12(repoRelative)) return repoRelative;
9347
- return resolve7(repoRoot, ".asset-scratch", reference);
9396
+ return resolve8(repoRoot, ".asset-scratch", reference);
9348
9397
  }
9349
9398
  function fileSize(path) {
9350
9399
  if (!path || !existsSync12(path)) return void 0;
@@ -9797,7 +9846,7 @@ function getLineageSelectionPacket(project, options = {}) {
9797
9846
 
9798
9847
  // src/cli/lineageCli.ts
9799
9848
  function packageRoot2() {
9800
- return resolve8(dirname7(fileURLToPath3(import.meta.url)), "..", "..");
9849
+ return resolve9(dirname7(fileURLToPath3(import.meta.url)), "..", "..");
9801
9850
  }
9802
9851
  function packageVersion() {
9803
9852
  try {
@@ -9830,7 +9879,7 @@ function readOptions(args, name) {
9830
9879
  }
9831
9880
  function readJsonFile(path, label) {
9832
9881
  try {
9833
- return JSON.parse(readFileSync8(resolve8(path), "utf8"));
9882
+ return JSON.parse(readFileSync8(resolve9(path), "utf8"));
9834
9883
  } catch (error) {
9835
9884
  throw new Error(`${label} must be a readable JSON file: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
9836
9885
  }
@@ -9849,7 +9898,7 @@ function parentFilesOption(value) {
9849
9898
  return mappings;
9850
9899
  }
9851
9900
  function resolveCliAssetRoot(args) {
9852
- return resolve8(readOption(args, "--asset-root") || process.env.LINEAGE_ASSET_ROOT || packageRoot);
9901
+ return resolve9(readOption(args, "--asset-root") || process.env.LINEAGE_ASSET_ROOT || packageRoot);
9853
9902
  }
9854
9903
  function configureCliAssetRoot(args) {
9855
9904
  const assetRoot = resolveCliAssetRoot(args);
@@ -9914,7 +9963,7 @@ function runLineageDataCommand(command, args) {
9914
9963
  });
9915
9964
  const out = readOption(args, "--out");
9916
9965
  if (out) {
9917
- const outPath = resolve8(out);
9966
+ const outPath = resolve9(out);
9918
9967
  mkdirSync8(dirname7(outPath), { recursive: true });
9919
9968
  writeFileSync6(outPath, `${JSON.stringify(packet, null, 2)}
9920
9969
  `);