openplanr 3.5.0 → 3.6.0

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 (217) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/cli/commands/backlog-commands.d.ts +3 -0
  3. package/dist/cli/commands/backlog-commands.d.ts.map +1 -0
  4. package/dist/cli/commands/backlog-commands.js +60 -0
  5. package/dist/cli/commands/backlog-commands.js.map +1 -0
  6. package/dist/cli/commands/company.d.ts.map +1 -1
  7. package/dist/cli/commands/company.js +17 -0
  8. package/dist/cli/commands/company.js.map +1 -1
  9. package/dist/cli/commands/planning-artifacts.d.ts.map +1 -1
  10. package/dist/cli/commands/planning-artifacts.js +13 -5
  11. package/dist/cli/commands/planning-artifacts.js.map +1 -1
  12. package/dist/dashboard/.vite/manifest.json +1 -1
  13. package/dist/dashboard/assets/{index-B-l_941W.js → index-C_OquZVk.js} +2 -2
  14. package/dist/dashboard/assets/{index-B-l_941W.js.map → index-C_OquZVk.js.map} +1 -1
  15. package/dist/dashboard/dashboard-manifest.json +8 -8
  16. package/dist/dashboard/index.html +1 -1
  17. package/dist/services/artifact-service.d.ts.map +1 -1
  18. package/dist/services/artifact-service.js +13 -6
  19. package/dist/services/artifact-service.js.map +1 -1
  20. package/dist/services/company-export-service.d.ts +41 -0
  21. package/dist/services/company-export-service.d.ts.map +1 -0
  22. package/dist/services/company-export-service.js +429 -0
  23. package/dist/services/company-export-service.js.map +1 -0
  24. package/dist/services/company-sync-service.d.ts +24 -1
  25. package/dist/services/company-sync-service.d.ts.map +1 -1
  26. package/dist/services/company-sync-service.js +36 -19
  27. package/dist/services/company-sync-service.js.map +1 -1
  28. package/docs/CLI.md +97 -1
  29. package/lib/backlog-item.d.mts +45 -1
  30. package/lib/backlog-item.mjs +302 -34
  31. package/lib/host-packages/adapter-registry.json +4 -4
  32. package/lib/host-packages/capability-map.json +1 -1
  33. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  34. package/lib/host-packages/claude/openplanr/.claude-plugin/icon.png +0 -0
  35. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  36. package/lib/host-packages/claude/openplanr/.openplanr-content.json +77 -77
  37. package/lib/host-packages/claude/openplanr/README.md +1 -1
  38. package/lib/host-packages/claude/openplanr/skills/ceo-review/references/note-checklist.md +131 -0
  39. package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +2 -7
  40. package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +2 -7
  41. package/lib/host-packages/claude/openplanr/skills/chair-review/references/note-checklist.md +131 -0
  42. package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +3 -7
  43. package/lib/host-packages/claude/openplanr/skills/challenger-review/references/note-checklist.md +131 -0
  44. package/lib/host-packages/claude/openplanr/skills/cmo-review/references/note-checklist.md +131 -0
  45. package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +2 -7
  46. package/lib/host-packages/claude/openplanr/skills/coo-review/references/note-checklist.md +131 -0
  47. package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +2 -7
  48. package/lib/host-packages/claude/openplanr/skills/cpo-review/references/note-checklist.md +131 -0
  49. package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +2 -7
  50. package/lib/host-packages/claude/openplanr/skills/cto-review/references/note-checklist.md +131 -0
  51. package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +2 -7
  52. package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +2 -3
  53. package/lib/host-packages/claude/openplanr/skills/investigate/references/backlog-filing.md +102 -0
  54. package/lib/host-packages/claude/openplanr/skills/investigate/references/findings.md +8 -16
  55. package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +73 -84
  56. package/lib/host-packages/claude/openplanr/skills/operate/references/note-checklist.md +131 -0
  57. package/lib/host-packages/claude/openplanr/skills/operate/references/return-contract.md +10 -0
  58. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +16 -17
  59. package/lib/host-packages/claude/openplanr/skills/plan/references/planning-ids.md +53 -0
  60. package/lib/host-packages/claude/openplanr/skills/plan/references/return-contract.md +10 -0
  61. package/lib/host-packages/claude/openplanr/skills/plan-review/SKILL.md +6 -6
  62. package/lib/host-packages/claude/openplanr/skills/plan-review/references/return-contract.md +10 -0
  63. package/lib/host-packages/claude/openplanr/skills/release/SKILL.md +40 -139
  64. package/lib/host-packages/claude/openplanr/skills/release/references/cadence.md +10 -0
  65. package/lib/host-packages/claude/openplanr/skills/release/references/release-notes.md +1 -1
  66. package/lib/host-packages/claude/openplanr/skills/release/references/return-contract.md +10 -0
  67. package/lib/host-packages/claude/openplanr/skills/release/references/schemes.md +4 -2
  68. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +37 -24
  69. package/lib/host-packages/claude/openplanr/skills/ship/references/backlog-filing.md +102 -0
  70. package/lib/host-packages/claude/openplanr/skills/ship/references/findings.md +8 -16
  71. package/lib/host-packages/claude/openplanr/skills/ship/references/return-contract.md +10 -0
  72. package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +9 -9
  73. package/lib/host-packages/claude/openplanr/skills/spec/references/return-contract.md +10 -0
  74. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +74 -74
  75. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  76. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/note-checklist.md +131 -0
  77. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +2 -7
  78. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review/references/note-checklist.md +131 -0
  79. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +2 -7
  80. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review/references/note-checklist.md +131 -0
  81. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +3 -7
  82. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/note-checklist.md +131 -0
  83. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +2 -7
  84. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/note-checklist.md +131 -0
  85. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +2 -7
  86. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/note-checklist.md +131 -0
  87. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +2 -7
  88. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/note-checklist.md +131 -0
  89. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +2 -7
  90. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/backlog-filing.md +102 -0
  91. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/findings.md +8 -16
  92. package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +2 -3
  93. package/lib/host-packages/cursor/openplanr/rules/planr-operate/references/note-checklist.md +131 -0
  94. package/lib/host-packages/cursor/openplanr/rules/planr-operate/references/return-contract.md +10 -0
  95. package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +73 -84
  96. package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/planning-ids.md +53 -0
  97. package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/return-contract.md +10 -0
  98. package/lib/host-packages/cursor/openplanr/rules/planr-plan-review/references/return-contract.md +10 -0
  99. package/lib/host-packages/cursor/openplanr/rules/planr-plan-review.mdc +6 -6
  100. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +16 -17
  101. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/cadence.md +10 -0
  102. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/release-notes.md +1 -1
  103. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/return-contract.md +10 -0
  104. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/schemes.md +4 -2
  105. package/lib/host-packages/cursor/openplanr/rules/planr-release.mdc +40 -139
  106. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/backlog-filing.md +102 -0
  107. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/findings.md +8 -16
  108. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/return-contract.md +10 -0
  109. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +37 -24
  110. package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/return-contract.md +10 -0
  111. package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +9 -9
  112. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  113. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  114. package/lib/host-packages/openai/openplanr/.openplanr-content.json +89 -89
  115. package/lib/host-packages/openai/openplanr/skills/ceo-review/openplanr.skill.json +4 -4
  116. package/lib/host-packages/openai/openplanr/skills/ceo-review/references/note-checklist.md +131 -0
  117. package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +2 -7
  118. package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +2 -7
  119. package/lib/host-packages/openai/openplanr/skills/chair-review/openplanr.skill.json +4 -4
  120. package/lib/host-packages/openai/openplanr/skills/chair-review/references/note-checklist.md +131 -0
  121. package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +3 -7
  122. package/lib/host-packages/openai/openplanr/skills/challenger-review/openplanr.skill.json +4 -4
  123. package/lib/host-packages/openai/openplanr/skills/challenger-review/references/note-checklist.md +131 -0
  124. package/lib/host-packages/openai/openplanr/skills/cmo-review/openplanr.skill.json +4 -4
  125. package/lib/host-packages/openai/openplanr/skills/cmo-review/references/note-checklist.md +131 -0
  126. package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +2 -7
  127. package/lib/host-packages/openai/openplanr/skills/coo-review/openplanr.skill.json +4 -4
  128. package/lib/host-packages/openai/openplanr/skills/coo-review/references/note-checklist.md +131 -0
  129. package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +2 -7
  130. package/lib/host-packages/openai/openplanr/skills/cpo-review/openplanr.skill.json +4 -4
  131. package/lib/host-packages/openai/openplanr/skills/cpo-review/references/note-checklist.md +131 -0
  132. package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +2 -7
  133. package/lib/host-packages/openai/openplanr/skills/cto-review/openplanr.skill.json +4 -4
  134. package/lib/host-packages/openai/openplanr/skills/cto-review/references/note-checklist.md +131 -0
  135. package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +2 -7
  136. package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +2 -3
  137. package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +4 -4
  138. package/lib/host-packages/openai/openplanr/skills/investigate/references/backlog-filing.md +102 -0
  139. package/lib/host-packages/openai/openplanr/skills/investigate/references/findings.md +8 -16
  140. package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +73 -84
  141. package/lib/host-packages/openai/openplanr/skills/operate/openplanr.skill.json +15 -4
  142. package/lib/host-packages/openai/openplanr/skills/operate/references/note-checklist.md +131 -0
  143. package/lib/host-packages/openai/openplanr/skills/operate/references/return-contract.md +10 -0
  144. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +16 -17
  145. package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +15 -4
  146. package/lib/host-packages/openai/openplanr/skills/plan/references/planning-ids.md +53 -0
  147. package/lib/host-packages/openai/openplanr/skills/plan/references/return-contract.md +10 -0
  148. package/lib/host-packages/openai/openplanr/skills/plan-review/SKILL.md +6 -6
  149. package/lib/host-packages/openai/openplanr/skills/plan-review/openplanr.skill.json +12 -1
  150. package/lib/host-packages/openai/openplanr/skills/plan-review/references/return-contract.md +10 -0
  151. package/lib/host-packages/openai/openplanr/skills/release/SKILL.md +40 -139
  152. package/lib/host-packages/openai/openplanr/skills/release/openplanr.skill.json +4 -4
  153. package/lib/host-packages/openai/openplanr/skills/release/references/cadence.md +10 -0
  154. package/lib/host-packages/openai/openplanr/skills/release/references/release-notes.md +1 -1
  155. package/lib/host-packages/openai/openplanr/skills/release/references/return-contract.md +10 -0
  156. package/lib/host-packages/openai/openplanr/skills/release/references/schemes.md +4 -2
  157. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +37 -24
  158. package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +9 -9
  159. package/lib/host-packages/openai/openplanr/skills/ship/references/backlog-filing.md +102 -0
  160. package/lib/host-packages/openai/openplanr/skills/ship/references/findings.md +8 -16
  161. package/lib/host-packages/openai/openplanr/skills/ship/references/return-contract.md +10 -0
  162. package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +9 -9
  163. package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +12 -1
  164. package/lib/host-packages/openai/openplanr/skills/spec/references/return-contract.md +10 -0
  165. package/package.json +1 -1
  166. package/lib/host-packages/claude/openplanr/.claude-plugin/icon.svg +0 -11
  167. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  168. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  169. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  170. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  171. package/lib/host-packages/claude/openplanr/skills/ceo-review/scripts/validate-note.mjs +0 -12
  172. package/lib/host-packages/claude/openplanr/skills/chair-review/scripts/validate-note.mjs +0 -12
  173. package/lib/host-packages/claude/openplanr/skills/challenger-review/scripts/validate-note.mjs +0 -12
  174. package/lib/host-packages/claude/openplanr/skills/cmo-review/scripts/validate-note.mjs +0 -12
  175. package/lib/host-packages/claude/openplanr/skills/coo-review/scripts/validate-note.mjs +0 -12
  176. package/lib/host-packages/claude/openplanr/skills/cpo-review/scripts/validate-note.mjs +0 -12
  177. package/lib/host-packages/claude/openplanr/skills/cto-review/scripts/validate-note.mjs +0 -12
  178. package/lib/host-packages/claude/openplanr/skills/investigate/scripts/backlog-item.mjs +0 -339
  179. package/lib/host-packages/claude/openplanr/skills/operate/scripts/validate-note.mjs +0 -12
  180. package/lib/host-packages/claude/openplanr/skills/plan/scripts/planning-ids.mjs +0 -166
  181. package/lib/host-packages/claude/openplanr/skills/release/scripts/collect_changes.sh +0 -85
  182. package/lib/host-packages/claude/openplanr/skills/ship/scripts/backlog-item.mjs +0 -339
  183. package/lib/host-packages/claude/openplanr/skills/ship/scripts/discover-verification.mjs +0 -108
  184. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/scripts/validate-note.mjs +0 -12
  185. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review/scripts/validate-note.mjs +0 -12
  186. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review/scripts/validate-note.mjs +0 -12
  187. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/scripts/validate-note.mjs +0 -12
  188. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/scripts/validate-note.mjs +0 -12
  189. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/scripts/validate-note.mjs +0 -12
  190. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/scripts/validate-note.mjs +0 -12
  191. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/scripts/backlog-item.mjs +0 -339
  192. package/lib/host-packages/cursor/openplanr/rules/planr-operate/scripts/validate-note.mjs +0 -12
  193. package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/planning-ids.mjs +0 -166
  194. package/lib/host-packages/cursor/openplanr/rules/planr-release/scripts/collect_changes.sh +0 -85
  195. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/backlog-item.mjs +0 -339
  196. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/discover-verification.mjs +0 -108
  197. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  198. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  199. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  200. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  201. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  202. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  203. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  204. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  205. package/lib/host-packages/openai/openplanr/skills/ceo-review/scripts/validate-note.mjs +0 -12
  206. package/lib/host-packages/openai/openplanr/skills/chair-review/scripts/validate-note.mjs +0 -12
  207. package/lib/host-packages/openai/openplanr/skills/challenger-review/scripts/validate-note.mjs +0 -12
  208. package/lib/host-packages/openai/openplanr/skills/cmo-review/scripts/validate-note.mjs +0 -12
  209. package/lib/host-packages/openai/openplanr/skills/coo-review/scripts/validate-note.mjs +0 -12
  210. package/lib/host-packages/openai/openplanr/skills/cpo-review/scripts/validate-note.mjs +0 -12
  211. package/lib/host-packages/openai/openplanr/skills/cto-review/scripts/validate-note.mjs +0 -12
  212. package/lib/host-packages/openai/openplanr/skills/investigate/scripts/backlog-item.mjs +0 -339
  213. package/lib/host-packages/openai/openplanr/skills/operate/scripts/validate-note.mjs +0 -12
  214. package/lib/host-packages/openai/openplanr/skills/plan/scripts/planning-ids.mjs +0 -166
  215. package/lib/host-packages/openai/openplanr/skills/release/scripts/collect_changes.sh +0 -85
  216. package/lib/host-packages/openai/openplanr/skills/ship/scripts/backlog-item.mjs +0 -339
  217. package/lib/host-packages/openai/openplanr/skills/ship/scripts/discover-verification.mjs +0 -108
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "kind": "openplanr-dashboard-build",
3
3
  "schemaVersion": "1.0.0",
4
- "buildId": "dashboard-0.1.24-a45b8b75cef359dc",
4
+ "buildId": "dashboard-0.1.25-b410f4fea75d24c5",
5
5
  "entry": "index.html",
6
6
  "assets": [
7
7
  "assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2",
@@ -15,8 +15,8 @@
15
15
  "assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2",
16
16
  "assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2",
17
17
  "assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2",
18
- "assets/index-B-l_941W.js",
19
- "assets/index-B-l_941W.js.map",
18
+ "assets/index-C_OquZVk.js",
19
+ "assets/index-C_OquZVk.js.map",
20
20
  "assets/index-Cv4Vwhuw.css"
21
21
  ],
22
22
  "assetDigests": {
@@ -64,13 +64,13 @@
64
64
  "bytes": 8004,
65
65
  "sha256": "sha256:8fa40e5d248247735eb97a0bd593b8852440430600d6ba01364c31fe0abc1fe1"
66
66
  },
67
- "assets/index-B-l_941W.js": {
67
+ "assets/index-C_OquZVk.js": {
68
68
  "bytes": 958023,
69
- "sha256": "sha256:04c732a0c691dfcab5d7d4525315b462f299774c74866960ba1103547d2cdb08"
69
+ "sha256": "sha256:fa2a888ea9db5d65d12ef3fe13f0ce760bdd239bf446a1fe97e0d81ba91329c9"
70
70
  },
71
- "assets/index-B-l_941W.js.map": {
71
+ "assets/index-C_OquZVk.js.map": {
72
72
  "bytes": 3693981,
73
- "sha256": "sha256:b01ab31b380386ec0bf82a37965983f1ef767e60777c9b63d95a3075caa8a35f"
73
+ "sha256": "sha256:d6f1430ae15bdd9c75d17fc3d25801c7023f3aed60d61a0482e8a64f0f989432"
74
74
  },
75
75
  "assets/index-Cv4Vwhuw.css": {
76
76
  "bytes": 187319,
@@ -78,7 +78,7 @@
78
78
  },
79
79
  "index.html": {
80
80
  "bytes": 396,
81
- "sha256": "sha256:4e1b4cff8b0eaf144c2164bc1b9c5d8a33376de56185824541c64dd22d1e76ac"
81
+ "sha256": "sha256:7a7d4389a53657ad17c38deadd2d753d8c3923ce0100ab319b4c9662c35bb568"
82
82
  }
83
83
  }
84
84
  }
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>OpenPlanr</title>
7
- <script type="module" crossorigin src="./assets/index-B-l_941W.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-C_OquZVk.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-Cv4Vwhuw.css">
9
9
  </head>
10
10
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/artifact-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/artifact-service.ts"],"names":[],"mappings":"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"}
@@ -181,14 +181,21 @@ export async function updateArtifactFields(projectDir, config, type, id, fields)
181
181
  }
182
182
  let frontmatter = raw.slice(openIdx, closeIdx);
183
183
  let body = raw.slice(closeIdx);
184
+ const blockLines = '(?:(?:\\r?\\n[ \\t]*(?:#[^\\r\\n]*)?)*\\r?\\n(?:[ \\t]+[^ \\t\\r\\n#][^\\r\\n]*|-[ \\t]+[^\\r\\n]*))*';
184
185
  for (const [key, value] of Object.entries(allFields)) {
185
- const pattern = new RegExp(`^${escapeRegExp(key)}:\\s*.*$`, 'm');
186
- const replacement = `${key}: ${yamlEscape(value)}`;
186
+ const pattern = new RegExp(`^${escapeRegExp(key)}:[^\\r\\n]*${blockLines}`, 'm');
187
+ if (value === undefined) {
188
+ frontmatter = frontmatter.replace(new RegExp(`\\r?\\n${pattern.source}`, 'm'), '');
189
+ continue;
190
+ }
191
+ const formatted = Array.isArray(value)
192
+ ? `[${value.map((item) => yamlEscape(item)).join(', ')}]`
193
+ : typeof value === 'boolean'
194
+ ? String(value)
195
+ : yamlEscape(value);
196
+ const replacement = `${key}: ${formatted}`;
187
197
  if (pattern.test(frontmatter)) {
188
- // Function form bypasses regex replacement specials (`$1`, `$&`, `` $` ``,
189
- // `$'`, `$$`) in the replacement string. Needed because `yamlEscape`
190
- // only escapes `\` and `"`; a value containing `$1` would otherwise be
191
- // interpreted as a backreference and silently corrupt the frontmatter.
198
+ // Keep replacement tokens such as $1 literal.
192
199
  frontmatter = frontmatter.replace(pattern, () => replacement);
193
200
  }
194
201
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-service.js","sourceRoot":"","sources":["../../src/services/artifact-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-service.js","sourceRoot":"","sources":["../../src/services/artifact-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ type RecordData = Record<string, unknown>;
2
+ interface ExportFile {
3
+ path: string;
4
+ byteLength: number;
5
+ sha256: string;
6
+ }
7
+ interface ExportScope {
8
+ organizationId: string;
9
+ projectId: string;
10
+ artifactId: string;
11
+ }
12
+ export interface CompanyOrganizationExport {
13
+ schemaVersion: '1.0.0';
14
+ complete: boolean;
15
+ apiUrl: string | null;
16
+ generatedAt: string;
17
+ summary: {
18
+ projects: number;
19
+ artifacts: number;
20
+ revisions: number;
21
+ files: number;
22
+ bytes: number;
23
+ notExported: number;
24
+ };
25
+ files: ExportFile[];
26
+ notExported: Array<{
27
+ project: RecordData;
28
+ reason: string;
29
+ }>;
30
+ reviews: Array<ExportScope & {
31
+ revisionId: string;
32
+ path: string;
33
+ source: 'export' | 'paginated';
34
+ }>;
35
+ notices: string[];
36
+ error?: string;
37
+ }
38
+ /** Exports all readable company revisions and records inaccessible project inventory. */
39
+ export declare function exportCompanyOrganization(apiUrl: string, outDir: string): Promise<CompanyOrganizationExport>;
40
+ export {};
41
+ //# sourceMappingURL=company-export-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-export-service.d.ts","sourceRoot":"","sources":["../../src/services/company-export-service.ts"],"names":[],"mappings":"AAwBA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,CACZ,WAAW,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAA;KAAE,CACnF,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyED,yFAAyF;AACzF,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,yBAAyB,CAAC,CAqYpC"}
@@ -0,0 +1,429 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { lstat, mkdir, readdir, unlink, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { LARGE_OBJECT_LIMITS } from '../../lib/resource-limits.mjs';
5
+ import { assertCompanyResourceManifest, assertRemoteRevision, CompanySyncError, companyJourneyContracts, companyResourceContracts, companyResourceRuntime, companyResponse, id, MAX_RESPONSE_BYTES, normalizeCompanyOrigin, readCompanyBody, readCompanyBytes, readCompanyRevisionContent, } from './company-sync-service.js';
6
+ // Review pages hold ten complete threads, including up to 100 replies each.
7
+ const MAX_REVIEW_PAGE_BYTES = 64 * 1024 * 1024;
8
+ class ExportRequestError extends CompanySyncError {
9
+ status;
10
+ apiCode;
11
+ constructor(status, apiCode, options) {
12
+ super('E_COMPANY_REQUEST', `Company request failed (${status}${apiCode ? ` ${apiCode}` : ''}).`, options);
13
+ this.status = status;
14
+ this.apiCode = apiCode;
15
+ }
16
+ }
17
+ function fail(message, cause) {
18
+ throw new CompanySyncError('E_COMPANY_EXPORT', message, cause === undefined ? undefined : { cause });
19
+ }
20
+ const hash = (value) => createHash('sha256').update(value).digest('hex');
21
+ const serialize = (value) => Buffer.from(JSON.stringify(value, null, 2) + '\n');
22
+ function record(value) {
23
+ if (!value || typeof value !== 'object' || Array.isArray(value))
24
+ return fail('Invalid company response object.');
25
+ return value;
26
+ }
27
+ function parse(content) {
28
+ try {
29
+ return record(JSON.parse(content));
30
+ }
31
+ catch (cause) {
32
+ return fail('Invalid company JSON response.', cause);
33
+ }
34
+ }
35
+ function filesystemCode(error) {
36
+ const codes = [
37
+ 'EACCES',
38
+ 'EPERM',
39
+ 'ENOENT',
40
+ 'ENOTDIR',
41
+ 'EEXIST',
42
+ 'ENOSPC',
43
+ 'EIO',
44
+ 'EROFS',
45
+ 'EMFILE',
46
+ ];
47
+ return error instanceof Error &&
48
+ 'code' in error &&
49
+ typeof error.code === 'string' &&
50
+ codes.includes(error.code)
51
+ ? error.code
52
+ : undefined;
53
+ }
54
+ function errorDetail(error) {
55
+ if (error instanceof CompanySyncError)
56
+ return error.message;
57
+ const code = filesystemCode(error);
58
+ if (code)
59
+ return `Filesystem operation failed (${code}).`;
60
+ return error instanceof Error ? `${error.name}: ${error.message}` : 'Unknown export failure.';
61
+ }
62
+ async function prepareDirectory(directory) {
63
+ if (!directory.trim())
64
+ fail('Supply a non-existent or empty output directory.');
65
+ try {
66
+ const info = await lstat(directory);
67
+ if (!info.isDirectory() || info.isSymbolicLink())
68
+ fail('The output must be a directory, not a symbolic link.');
69
+ if ((await readdir(directory)).length)
70
+ fail('The output directory must be empty.');
71
+ }
72
+ catch (error) {
73
+ if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT'))
74
+ throw error;
75
+ await mkdir(directory, { recursive: true, mode: 0o700 });
76
+ }
77
+ }
78
+ /** Exports all readable company revisions and records inaccessible project inventory. */
79
+ export async function exportCompanyOrganization(apiUrl, outDir) {
80
+ const directory = path.resolve(outDir);
81
+ try {
82
+ await prepareDirectory(outDir);
83
+ }
84
+ catch (error) {
85
+ if (error instanceof CompanySyncError)
86
+ throw error;
87
+ fail(`Cannot prepare the output directory (${filesystemCode(error) ?? 'invalid or inaccessible path'}).`, error);
88
+ }
89
+ const manifest = {
90
+ schemaVersion: '1.0.0',
91
+ complete: false,
92
+ apiUrl: null,
93
+ generatedAt: new Date().toISOString(),
94
+ summary: { projects: 0, artifacts: 0, revisions: 0, files: 0, bytes: 0, notExported: 0 },
95
+ files: [],
96
+ notExported: [],
97
+ reviews: [],
98
+ notices: [],
99
+ };
100
+ let item = 'organization';
101
+ let origin;
102
+ async function request(route) {
103
+ const response = await companyResponse(origin, route, {
104
+ allowErrorResponse: true,
105
+ });
106
+ if (response.ok)
107
+ return response;
108
+ let error;
109
+ try {
110
+ const { content } = await readCompanyBody(response, MAX_RESPONSE_BYTES);
111
+ error = record(parse(content).error);
112
+ }
113
+ catch (cause) {
114
+ throw new ExportRequestError(response.status, undefined, { cause });
115
+ }
116
+ const code = typeof error.code === 'string' &&
117
+ error.code.trim() === error.code &&
118
+ /^E_[A-Z0-9_]{1,64}$/.test(error.code)
119
+ ? error.code
120
+ : undefined;
121
+ throw new ExportRequestError(response.status, code);
122
+ }
123
+ async function readJson(route, maximum = MAX_RESPONSE_BYTES) {
124
+ const { content } = await readCompanyBody(await request(route), maximum);
125
+ const value = parse(content);
126
+ return value;
127
+ }
128
+ async function write(relative, bytes) {
129
+ const parts = relative.split('/');
130
+ let current = directory;
131
+ for (const part of parts.slice(0, -1)) {
132
+ current = path.join(current, part);
133
+ try {
134
+ await mkdir(current, { mode: 0o700 });
135
+ }
136
+ catch (error) {
137
+ if (!(error instanceof Error && 'code' in error && error.code === 'EEXIST'))
138
+ throw error;
139
+ }
140
+ const info = await lstat(current);
141
+ if (!info.isDirectory() || info.isSymbolicLink())
142
+ fail('Export directories must not contain symbolic links.');
143
+ }
144
+ const target = path.join(directory, relative);
145
+ try {
146
+ await writeFile(target, bytes, { flag: 'wx', mode: 0o600 });
147
+ }
148
+ catch (error) {
149
+ if (!(error instanceof Error && 'code' in error && error.code === 'EEXIST')) {
150
+ try {
151
+ await unlink(target);
152
+ }
153
+ catch (cleanup) {
154
+ if (!(cleanup instanceof Error && 'code' in cleanup && cleanup.code === 'ENOENT'))
155
+ fail(`Payload write failed: ${errorDetail(error)} Partial file cleanup failed: ${errorDetail(cleanup)}`, new AggregateError([error, cleanup], 'Payload write and partial file cleanup failed.'));
156
+ }
157
+ }
158
+ throw error;
159
+ }
160
+ manifest.files.push({ path: relative, byteLength: bytes.byteLength, sha256: hash(bytes) });
161
+ manifest.summary.files++;
162
+ manifest.summary.bytes += bytes.byteLength;
163
+ }
164
+ async function* pages(route, key, size = 50) {
165
+ let cursor = 0;
166
+ const seen = new Set();
167
+ for (let page = 0; page < 2000; page++) {
168
+ const result = await readJson(`${route}?cursor=${cursor}`, key === 'threads' ? MAX_REVIEW_PAGE_BYTES : MAX_RESPONSE_BYTES);
169
+ const rows = result[key];
170
+ if (!Array.isArray(rows) || rows.length > size)
171
+ fail(`Invalid ${key} page.`);
172
+ for (const row of rows) {
173
+ const value = record(row);
174
+ const identity = id(value.id);
175
+ if (seen.has(identity))
176
+ fail(`Duplicate ${key} identifier ${identity}.`);
177
+ seen.add(identity);
178
+ yield value;
179
+ }
180
+ if (result.nextCursor === null)
181
+ return;
182
+ const next = result.nextCursor;
183
+ if (typeof next !== 'number' ||
184
+ !Number.isSafeInteger(next) ||
185
+ next <= cursor ||
186
+ next > 1000000)
187
+ fail(`Invalid ${key} cursor.`);
188
+ cursor = next;
189
+ }
190
+ fail(`${key} pagination exceeded 2000 pages; export incomplete.`);
191
+ }
192
+ async function* projectCatalog() {
193
+ const { assertEnterpriseJourneyContract, enterprisePageQueryDigest } = await companyJourneyContracts();
194
+ const route = '/v1/project-catalog?status=all&pageSize=100';
195
+ let cursor;
196
+ let queryDigest;
197
+ let organizationId;
198
+ const seenProjects = new Set();
199
+ const seenCursors = new Set();
200
+ for (let page = 0; page < 2000; page++) {
201
+ const result = assertEnterpriseJourneyContract(await readJson(route + (cursor === undefined ? '' : `&cursor=${encodeURIComponent(cursor)}`)), 'enterprise-project-page');
202
+ if (result.kind !== 'openplanr-enterprise-project-page' ||
203
+ result.schemaVersion !== '1.0.0' ||
204
+ !Array.isArray(result.items) ||
205
+ result.items.length > 100)
206
+ fail('Invalid project catalog page.');
207
+ const query = record(result.query);
208
+ const filter = record(query.filter);
209
+ if (query.scope !== 'projects' || filter.status !== 'all' || filter.search !== '')
210
+ fail('The project catalog query does not match the requested scope.');
211
+ const organization = id(query.organizationId);
212
+ id(query.actorId);
213
+ if (organizationId && organizationId !== organization)
214
+ fail('Catalog pages belong to different organizations.');
215
+ organizationId = organization;
216
+ const digest = enterprisePageQueryDigest(query);
217
+ if (queryDigest !== undefined && queryDigest !== digest)
218
+ fail('The project catalog queryDigest changed across pages.');
219
+ queryDigest = digest;
220
+ for (const value of result.items) {
221
+ const project = record(value);
222
+ const projectId = id(project.projectId);
223
+ if (id(project.organizationId) !== organizationId)
224
+ fail('Catalog projects belong to different organizations.');
225
+ if (seenProjects.has(projectId))
226
+ fail(`Duplicate project ${projectId}.`);
227
+ if (typeof project.status !== 'string' ||
228
+ !['active', 'archiving', 'archived', 'restoring'].includes(project.status))
229
+ fail(`Invalid project status for project ${projectId}.`);
230
+ seenProjects.add(projectId);
231
+ yield project;
232
+ }
233
+ if (result.nextCursor === null)
234
+ return;
235
+ const next = result.nextCursor;
236
+ if (!/^[A-Za-z0-9_-]{1,2048}$/.test(next.token) ||
237
+ next.token.trim() !== next.token ||
238
+ next.queryDigest !== queryDigest ||
239
+ seenCursors.has(next.token))
240
+ fail('Invalid or repeated project catalog cursor.');
241
+ seenCursors.add(next.token);
242
+ cursor = next.token;
243
+ }
244
+ fail('Project catalog pagination exceeded 2000 pages; export incomplete.');
245
+ }
246
+ function assertScope(value, scope) {
247
+ if (value.organizationId !== scope.organizationId ||
248
+ value.projectId !== scope.projectId ||
249
+ value.artifactId !== scope.artifactId)
250
+ fail('The response belongs to a different project or artifact.');
251
+ }
252
+ async function exportReviews(scope, revision, route, folder) {
253
+ let reviews;
254
+ let source = 'export';
255
+ try {
256
+ reviews = await readJson(`${route}/export?format=json&revisionId=${revision.id}`, MAX_REVIEW_PAGE_BYTES);
257
+ }
258
+ catch (error) {
259
+ const limited = error instanceof ExportRequestError &&
260
+ error.status === 413 &&
261
+ error.apiCode === 'E_EXPORT_LIMIT';
262
+ if (!limited)
263
+ throw error;
264
+ source = 'paginated';
265
+ const threads = [];
266
+ for await (const thread of pages(`${route}/reviews`, 'threads', 10)) {
267
+ assertScope(thread, scope);
268
+ if (id(record(thread.anchor).revisionId) === revision.id)
269
+ threads.push(thread);
270
+ }
271
+ reviews = {
272
+ ...scope,
273
+ revisionId: revision.id,
274
+ generatedAt: new Date().toISOString(),
275
+ authority: 'feedback-only',
276
+ contentTrust: 'untrusted',
277
+ threads,
278
+ };
279
+ }
280
+ assertScope(reviews, scope);
281
+ if (reviews.revisionId !== revision.id || !Array.isArray(reviews.threads))
282
+ fail('The review export does not match the selected revision.');
283
+ const seen = new Set();
284
+ for (const value of reviews.threads) {
285
+ const thread = record(value);
286
+ assertScope(thread, scope);
287
+ const identity = id(thread.id);
288
+ if (record(thread.anchor).revisionId !== revision.id || seen.has(identity))
289
+ fail('The review export has invalid or duplicate revision anchors.');
290
+ seen.add(identity);
291
+ }
292
+ const relative = `${folder}/reviews.json`;
293
+ await write(relative, serialize(reviews));
294
+ manifest.reviews.push({ ...scope, revisionId: revision.id, path: relative, source });
295
+ }
296
+ async function exportContent(scope, revision, route, folder) {
297
+ if (revision.contentReference?.transport !== 'resources-v2') {
298
+ const content = await readCompanyRevisionContent(await request(`${route}/content?revisionId=${revision.id}`), revision);
299
+ await write(`${folder}/content.txt`, Buffer.from(content));
300
+ return;
301
+ }
302
+ const resourceRoute = `${route}/revisions/${revision.id}`;
303
+ const resourceManifest = (await readJson(`${resourceRoute}/manifest`));
304
+ await assertCompanyResourceManifest(scope, revision, resourceManifest);
305
+ const chunks = new Map();
306
+ for (const chunk of resourceManifest.chunks) {
307
+ const bytes = await readCompanyBytes(await request(`${resourceRoute}/chunks/${chunk.index}`), LARGE_OBJECT_LIMITS.chunkBytes);
308
+ if (bytes.byteLength !== chunk.byteLength || hash(bytes) !== chunk.sha256)
309
+ fail(`Resource chunk ${chunk.index} digest or length mismatch.`);
310
+ chunks.set(chunk.index, bytes);
311
+ }
312
+ const { openCompanyResourcePack } = await companyResourceRuntime();
313
+ const { canonicalizeJson } = await companyResourceContracts();
314
+ let content;
315
+ try {
316
+ const opened = await openCompanyResourcePack(resourceManifest, {
317
+ fetchChunk: async (index) => {
318
+ const bytes = chunks.get(index);
319
+ if (!bytes)
320
+ fail('The resource manifest references an unavailable chunk.');
321
+ return bytes;
322
+ },
323
+ });
324
+ try {
325
+ content = canonicalizeJson(await opened.loadBundle());
326
+ }
327
+ finally {
328
+ opened.dispose();
329
+ }
330
+ }
331
+ catch (cause) {
332
+ fail('Resource catalog, chunk or reassembled content failed integrity verification.', cause);
333
+ }
334
+ for (const [index, bytes] of chunks)
335
+ await write(`${folder}/chunks/${id(String(index))}.bin`, bytes);
336
+ await write(`${folder}/resource-manifest.json`, serialize(resourceManifest));
337
+ await write(`${folder}/content.json`, Buffer.from(content));
338
+ }
339
+ async function exportProject(project) {
340
+ const projectId = id(project.projectId);
341
+ item = `project ${projectId}`;
342
+ const organizationId = id(project.organizationId);
343
+ await write(`projects/${projectId}/project.json`, serialize(project));
344
+ const route = `/v1/projects/${projectId}/artifacts`;
345
+ for await (const artifact of pages(route, 'artifacts')) {
346
+ const artifactId = id(artifact.id);
347
+ item = `project ${projectId}, artifact ${artifactId}`;
348
+ if (artifact.organizationId !== organizationId || artifact.projectId !== projectId)
349
+ fail('The artifact belongs to a different project.');
350
+ const scope = { organizationId, projectId, artifactId };
351
+ const folder = `projects/${projectId}/artifacts/${artifactId}`;
352
+ await write(`${folder}/artifact.json`, serialize(artifact));
353
+ for await (const value of pages(`${route}/${artifactId}/revisions`, 'revisions')) {
354
+ const revisionId = id(value.id);
355
+ item = `project ${projectId}, artifact ${artifactId}, revision ${revisionId}`;
356
+ const revision = await assertRemoteRevision(scope, value);
357
+ const revisionFolder = `${folder}/revisions/${revisionId}`;
358
+ await write(`${revisionFolder}/revision.json`, serialize(revision));
359
+ await exportContent(scope, revision, `${route}/${artifactId}`, revisionFolder);
360
+ await exportReviews(scope, revision, `${route}/${artifactId}`, revisionFolder);
361
+ manifest.summary.revisions++;
362
+ item = `project ${projectId}, artifact ${artifactId}`;
363
+ }
364
+ manifest.summary.artifacts++;
365
+ item = `project ${projectId}`;
366
+ }
367
+ manifest.summary.projects++;
368
+ }
369
+ let failure;
370
+ try {
371
+ origin = normalizeCompanyOrigin(apiUrl);
372
+ manifest.apiUrl = origin;
373
+ item = 'project catalog';
374
+ const projects = [];
375
+ const knownProjects = new Set();
376
+ const archived = [];
377
+ for await (const project of projectCatalog()) {
378
+ const projectId = id(project.projectId);
379
+ knownProjects.add(projectId);
380
+ if (project.status === 'active')
381
+ projects.push(project);
382
+ else {
383
+ archived.push(projectId);
384
+ manifest.notExported.push({ project, reason: 'archived; restore first' });
385
+ }
386
+ }
387
+ item = 'admin projects';
388
+ try {
389
+ for await (const project of pages('/v1/admin/projects', 'projects')) {
390
+ if (!knownProjects.has(id(project.id)))
391
+ manifest.notExported.push({ project, reason: 'no readable project role' });
392
+ }
393
+ }
394
+ catch (error) {
395
+ if (!(error instanceof ExportRequestError &&
396
+ error.status === 403 &&
397
+ error.apiCode !== undefined &&
398
+ ['E_ROLE', 'E_MFA_REQUIRED', 'E_REVERIFICATION_REQUIRED'].includes(error.apiCode)))
399
+ throw error;
400
+ manifest.notices.push(error.apiCode === 'E_ROLE'
401
+ ? 'admin listing unavailable: not an organization admin; projects without a role not checked'
402
+ : 'admin listing unavailable: needs an MFA-verified browser session; projects without a role not checked');
403
+ }
404
+ for (const project of projects)
405
+ await exportProject(project);
406
+ item = 'organization';
407
+ if (archived.length)
408
+ fail(archived.map((projectId) => `project ${projectId}: archived; restore first`).join('; '));
409
+ manifest.complete = true;
410
+ }
411
+ catch (error) {
412
+ failure = error;
413
+ manifest.error = `${item}: ${errorDetail(error)}`;
414
+ }
415
+ manifest.summary.notExported = manifest.notExported.length;
416
+ const bytes = serialize(manifest);
417
+ try {
418
+ await writeFile(path.join(directory, 'manifest.json'), bytes, { flag: 'wx', mode: 0o600 });
419
+ }
420
+ catch (error) {
421
+ fail(`Cannot write manifest.json: ${errorDetail(error)} ${manifest.error ?? 'The export could not be finalized.'}`, failure === undefined
422
+ ? error
423
+ : new AggregateError([error, failure], 'Manifest write and organization export failed.'));
424
+ }
425
+ if (!manifest.complete)
426
+ throw new CompanySyncError('E_COMPANY_EXPORT', manifest.error ?? 'Organization export incomplete.', { cause: failure });
427
+ return manifest;
428
+ }
429
+ //# sourceMappingURL=company-export-service.js.map