@covro/covro 0.5.1-dev.4 → 0.5.1-dev.5

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 (87) hide show
  1. package/README.md +14 -51
  2. package/README.zh-CN.md +14 -51
  3. package/dist/web/assets/{abnfDiagram-WEYOIA3C-2_00Zp4O.js → abnfDiagram-WEYOIA3C-BMy2AwDH.js} +1 -1
  4. package/dist/web/assets/{arc-DAyuVDVU.js → arc-DeUcXVmK.js} +1 -1
  5. package/dist/web/assets/{architecture-WOLXFQ4H-CgR1C4gR.js → architecture-WOLXFQ4H-B5DscTAH.js} +1 -1
  6. package/dist/web/assets/{architectureDiagram-ZHVYKT53-Dkb6AWjz.js → architectureDiagram-ZHVYKT53-CwmVMMBS.js} +1 -1
  7. package/dist/web/assets/{blockDiagram-RJAE7QA3-NtOGZdkX.js → blockDiagram-RJAE7QA3-CebOV20Y.js} +1 -1
  8. package/dist/web/assets/{c4Diagram-XDPPPE54-C1dqWKb1.js → c4Diagram-XDPPPE54-ssP1dgbB.js} +1 -1
  9. package/dist/web/assets/channel-BONlMBPL.js +1 -0
  10. package/dist/web/assets/{chunk-2E7WHVMD-ClzuEiGk.js → chunk-2E7WHVMD-BvN6p7-r.js} +1 -1
  11. package/dist/web/assets/{chunk-4EMNKR2T-DyTpkWag.js → chunk-4EMNKR2T-B5lsOa5d.js} +1 -1
  12. package/dist/web/assets/{chunk-55XCU76K-DXBA4ib1.js → chunk-55XCU76K-C7v-VLmv.js} +1 -1
  13. package/dist/web/assets/{chunk-7S6XSTFO-DA_aq0zc.js → chunk-7S6XSTFO-DlQvFeJv.js} +1 -1
  14. package/dist/web/assets/{chunk-AQDTSKZB-BWTN3SC_.js → chunk-AQDTSKZB-DY66z9o6.js} +1 -1
  15. package/dist/web/assets/{chunk-DSNLSHJZ-DJnLTeE9.js → chunk-DSNLSHJZ-CNTCEJar.js} +1 -1
  16. package/dist/web/assets/{chunk-HAGFOTED-cDP-g1Eh.js → chunk-HAGFOTED-Ds8gP_pC.js} +1 -1
  17. package/dist/web/assets/{chunk-HNE4Q36P-B3TTIYd_.js → chunk-HNE4Q36P-DmElQsSf.js} +1 -1
  18. package/dist/web/assets/{chunk-NQOKRVIF-D8mmhZHq.js → chunk-NQOKRVIF-PvGRAuAw.js} +1 -1
  19. package/dist/web/assets/{chunk-UHW7PFBP-DWIIg_jq.js → chunk-UHW7PFBP-CtgMZDoT.js} +1 -1
  20. package/dist/web/assets/{chunk-VQ5W62QI-Bu3R2cpS.js → chunk-VQ5W62QI-6NJrEIzR.js} +1 -1
  21. package/dist/web/assets/{chunk-WQQL4CDK-BxsR1mXs.js → chunk-WQQL4CDK-DI2mRFvc.js} +1 -1
  22. package/dist/web/assets/{chunk-XXDRQBXY-Ds0JNdm-.js → chunk-XXDRQBXY-CiBCRo3T.js} +1 -1
  23. package/dist/web/assets/{chunk-YZO67HFG-COpqyQaD.js → chunk-YZO67HFG-DtCoGutI.js} +1 -1
  24. package/dist/web/assets/{chunk-ZAUX2LTX-BUrGjDuS.js → chunk-ZAUX2LTX-B7ylZUnx.js} +1 -1
  25. package/dist/web/assets/{chunk-ZCHMQSOR-DYMM9mEK.js → chunk-ZCHMQSOR-BwN6F2pb.js} +1 -1
  26. package/dist/web/assets/{classDiagram-v2-4MYWR3UA-DfJvks0C.js → classDiagram-v2-4MYWR3UA-DI-dMW0L.js} +1 -1
  27. package/dist/web/assets/{cose-bilkent-JH36ORCC-CN5mpYIb.js → cose-bilkent-JH36ORCC-BqNb8Qsf.js} +1 -1
  28. package/dist/web/assets/{cynefin-EF2NZ3EQ-DmlCHkY-.js → cynefin-EF2NZ3EQ-B9F8Lxxt.js} +1 -1
  29. package/dist/web/assets/{cynefinDiagram-WF24UDRP-C0aUblC2.js → cynefinDiagram-WF24UDRP-V8w1XJro.js} +1 -1
  30. package/dist/web/assets/{dagre-NK4GIZVX-Ba7RcAgP.js → dagre-NK4GIZVX-CrQEcCfE.js} +1 -1
  31. package/dist/web/assets/{diagram-CBK3MWTC-BYQDjB9i.js → diagram-CBK3MWTC-CPcuEQV3.js} +1 -1
  32. package/dist/web/assets/{diagram-I5XIIV2D-EV79hoob.js → diagram-I5XIIV2D-_QhPHtw6.js} +1 -1
  33. package/dist/web/assets/{diagram-ODIL2UCW-BvQdwmgA.js → diagram-ODIL2UCW-RA65VX6F.js} +1 -1
  34. package/dist/web/assets/{diagram-PFBEJUXE-hxwI3F00.js → diagram-PFBEJUXE-9OI5etAn.js} +1 -1
  35. package/dist/web/assets/{diagram-RJA3I4VV-DwaHE2iB.js → diagram-RJA3I4VV-B10DlhGR.js} +1 -1
  36. package/dist/web/assets/{diagram-TYUNFSNR-BxiOemA0.js → diagram-TYUNFSNR-BLwN-9mB.js} +1 -1
  37. package/dist/web/assets/{dist-nfRX7L9k.js → dist-DwHukJTB.js} +1 -1
  38. package/dist/web/assets/{ebnfDiagram-V4P3TTPT-CzQv5iDM.js → ebnfDiagram-V4P3TTPT-J7MBvK86.js} +1 -1
  39. package/dist/web/assets/{elk-QONTBCTQ-DNR9HWcl.js → elk-QONTBCTQ-DgtewEoX.js} +1 -1
  40. package/dist/web/assets/{erDiagram-KYQIGQAA-aJlTdb9w.js → erDiagram-KYQIGQAA-Cn5kVne3.js} +1 -1
  41. package/dist/web/assets/{eventmodeling-K75KTNOO-D4J-ujy-.js → eventmodeling-K75KTNOO-Cx1OdjIB.js} +1 -1
  42. package/dist/web/assets/flowDiagram-IUGLLWBU-HLbjrYlZ.js +1 -0
  43. package/dist/web/assets/{ganttDiagram-R7GPNTJY-DgytSfqO.js → ganttDiagram-R7GPNTJY-x2B7XlcJ.js} +1 -1
  44. package/dist/web/assets/{gitGraph-VSP46ZUC-BtjueFHB.js → gitGraph-VSP46ZUC-CP1CGXSo.js} +1 -1
  45. package/dist/web/assets/{gitGraphDiagram-PDYL7XHY-WP0Hjdh9.js → gitGraphDiagram-PDYL7XHY-B32E1dRa.js} +1 -1
  46. package/dist/web/assets/{index-BesPYgjq.js → index-DXEj9ZMB.js} +3 -3
  47. package/dist/web/assets/{info-OHQRW6UA-iuP0WTfn.js → info-OHQRW6UA-BqgII2wT.js} +1 -1
  48. package/dist/web/assets/{infoDiagram-MVDRKAX5-CpAtMyKS.js → infoDiagram-MVDRKAX5-BV-WLQ_Y.js} +1 -1
  49. package/dist/web/assets/{ishikawaDiagram-HPEHV2GE-JTnItv7N.js → ishikawaDiagram-HPEHV2GE-D2d2TDHI.js} +1 -1
  50. package/dist/web/assets/{journeyDiagram-BOSHW7O7-B333k1QJ.js → journeyDiagram-BOSHW7O7-DdgHsdHz.js} +1 -1
  51. package/dist/web/assets/{kanban-definition-FNSA4HC5-DpCk5ZH0.js → kanban-definition-FNSA4HC5-bzF0Iyr6.js} +1 -1
  52. package/dist/web/assets/{line-CLs-qFxt.js → line-DA04Ug-X.js} +1 -1
  53. package/dist/web/assets/{linear-E9AWqBNs.js → linear-DIrAIB_A.js} +1 -1
  54. package/dist/web/assets/{mermaid-parser.core-D1rEzlb-.js → mermaid-parser.core-DhCddf6t.js} +3 -3
  55. package/dist/web/assets/{mermaid.core-D6TNGGsX.js → mermaid.core-sAbEeclG.js} +4 -4
  56. package/dist/web/assets/{mindmap-definition-6OY57UG3-DrpuGWuc.js → mindmap-definition-6OY57UG3-B7pbG4qr.js} +1 -1
  57. package/dist/web/assets/{packet-JDAUHWVQ-BpBr3aKk.js → packet-JDAUHWVQ-BpXWi4v7.js} +1 -1
  58. package/dist/web/assets/{pegDiagram-ECIUJNBX-BrZX1cdv.js → pegDiagram-ECIUJNBX-CnIz50ZX.js} +1 -1
  59. package/dist/web/assets/{pie-XZMESJXO-CcTpis-K.js → pie-XZMESJXO-Cif1Ynbj.js} +1 -1
  60. package/dist/web/assets/{pieDiagram-GNMPY74T-CR2em875.js → pieDiagram-GNMPY74T-Ck5nOYI8.js} +1 -1
  61. package/dist/web/assets/{quadrantDiagram-D57K4MC3-D-ET5xbH.js → quadrantDiagram-D57K4MC3-DGWT1xA2.js} +1 -1
  62. package/dist/web/assets/{radar-ABXABTNO-CTFFPCi_.js → radar-ABXABTNO-Cs5Evg0F.js} +1 -1
  63. package/dist/web/assets/{railroad-I3PHUGI6-S6MHolw_.js → railroad-I3PHUGI6-bPE2bl6t.js} +1 -1
  64. package/dist/web/assets/{railroad-abnf-LNEFI6M7-NWxYLYMN.js → railroad-abnf-LNEFI6M7-Bf9uUUsQ.js} +1 -1
  65. package/dist/web/assets/{railroad-ebnf-DWYD2UWJ-CRnaPl26.js → railroad-ebnf-DWYD2UWJ-M2tmC6nN.js} +1 -1
  66. package/dist/web/assets/{railroad-peg-JR7BVNR7-CB85ffhO.js → railroad-peg-JR7BVNR7-BLrv00Iy.js} +1 -1
  67. package/dist/web/assets/{railroadDiagram-Y72NRBL7-Ba2xIF7q.js → railroadDiagram-Y72NRBL7-BKzTLgo8.js} +1 -1
  68. package/dist/web/assets/{requirementDiagram-EQYSW5RA-B7faqgDT.js → requirementDiagram-EQYSW5RA-B99o2Aj1.js} +1 -1
  69. package/dist/web/assets/{sankeyDiagram-SY24JHO5-IjJVI58S.js → sankeyDiagram-SY24JHO5-Bf5ZtsJ_.js} +1 -1
  70. package/dist/web/assets/{sequenceDiagram-BLEHNHQU-D-h5jxwQ.js → sequenceDiagram-BLEHNHQU-BGuIX9o_.js} +1 -1
  71. package/dist/web/assets/{src-hBdSvoFJ.js → src-CohAWB0C.js} +1 -1
  72. package/dist/web/assets/{stateDiagram-v2-A6IESKWZ-rlZaPFqZ.js → stateDiagram-v2-A6IESKWZ-26L-tE9O.js} +1 -1
  73. package/dist/web/assets/{swimlanes-B3ENRKFQ-CqgKwSbP.js → swimlanes-B3ENRKFQ-C15cbuwK.js} +1 -1
  74. package/dist/web/assets/swimlanesDiagram-AYQRV4AK-CJVz2uN5.js +8 -0
  75. package/dist/web/assets/{timeline-definition-JXYKGLGB-DD76ZtY0.js → timeline-definition-JXYKGLGB-BeL4WpaZ.js} +1 -1
  76. package/dist/web/assets/{treeView-D4JQ5SDB-CcwWh4Bw.js → treeView-D4JQ5SDB-DizQY9xz.js} +1 -1
  77. package/dist/web/assets/{treemap-SAJKECNS-8lde6V5O.js → treemap-SAJKECNS-D91-mGk5.js} +1 -1
  78. package/dist/web/assets/{usecaseDiagram-WPOLBNNX-CWowobZv.js → usecaseDiagram-WPOLBNNX-Ba0T4eoq.js} +1 -1
  79. package/dist/web/assets/{vennDiagram-Q3Y3IDCW-U11W8pHe.js → vennDiagram-Q3Y3IDCW-B0Q_6_0E.js} +1 -1
  80. package/dist/web/assets/{wardley-7MLQ67FV-Dp2EaBmo.js → wardley-7MLQ67FV-BMqvKWF0.js} +1 -1
  81. package/dist/web/assets/{wardleyDiagram-IVAIDKWA-7Qnos8ak.js → wardleyDiagram-IVAIDKWA-shZdkY_1.js} +1 -1
  82. package/dist/web/assets/{xychartDiagram-4URNHDU4-BwfHNtsG.js → xychartDiagram-4URNHDU4-DAt5ftPl.js} +1 -1
  83. package/dist/web/index.html +1 -1
  84. package/package.json +3 -3
  85. package/dist/web/assets/channel-Co9_v2dk.js +0 -1
  86. package/dist/web/assets/flowDiagram-IUGLLWBU-Bq7dmPlS.js +0 -1
  87. package/dist/web/assets/swimlanesDiagram-AYQRV4AK-BGvWQ2Hp.js +0 -8
package/README.md CHANGED
@@ -34,21 +34,7 @@
34
34
  - 📖 **Read results while you chat.** Preview documents, diagrams, and code changes beside the conversation on desktop, or full-screen on mobile.
35
35
  - 🔔 **Know when your attention is needed.** Enable browser notifications for completed work, questions, and approvals; keep the page open in a supported desktop browser.
36
36
 
37
- Use **+** in the message box to attach images from your phone or computer. Open the combined model control to choose the model, reasoning effort, Fast mode, and Plan/Execute mode. Use `/plan [task]` to select Plan mode or submit a planning task.
38
-
39
- When the selected model is at capacity, Covro shows native retry progress and can make up to three additional attempts after 5, 10, and 20 seconds when Codex does not retry and no output or tool work has started. You can cancel, or choose another model and retry manually. See [retry behavior](docs/capacity-retry.md) for recovery boundaries.
40
-
41
- Use `/review` to choose uncommitted changes, a base branch, a commit, or custom review instructions. Use `/init` to request a project contributor guide; an existing `AGENTS.md` is preserved.
42
-
43
- Use `/diff` to inspect staged, unstaged, and untracked Git changes in the current workspace without starting a model task. Use `/approve` to explicitly authorize a recorded automatic-review denial once, then ask Codex to continue.
44
-
45
- Use `/recap` to summarize recent visible messages in a separate model request without changing conversation context.
46
-
47
- Use `/goal` to view and manage a native session goal, its token budget and actual progress. Activating a goal can start automatic continuation; pausing and clearing remain available during a task.
48
-
49
- See the [usage guide · 中文](docs/usage.zh-CN.md) for workflow details and controls.
50
-
51
- Start a new conversation in the current workspace with **⌘ + Option + N** on macOS or **Ctrl + Alt + N** on Windows/Linux. The message box receives focus and existing drafts stay available. When the workspace has a recognized GitHub remote, the GitHub icon in the header opens its repository in a new tab. See [workspace details](docs/workspaces.md#open-the-github-repository) for remote selection rules.
37
+ Find controls, shortcuts, and supported commands in the [usage guide · 中文](docs/usage.zh-CN.md) and [command guide](docs/slash-commands.md).
52
38
 
53
39
  <details>
54
40
  <summary><strong>📱 A workspace that fits your phone</strong></summary>
@@ -78,9 +64,9 @@ npm install -g @covro/covro
78
64
  covro
79
65
  ```
80
66
 
81
- `covro` starts in the background and prints the local address. Use `covro stop` to stop it. See [installation and service management](docs/distribution.md) for configuration, logs, login auto-start, macOS credential diagnostics, and release channels.
67
+ `covro` runs in the background; stop it with `covro stop`. See the [installation guide](docs/distribution.md) for configuration, logs, and login auto-start.
82
68
 
83
- Open **<http://127.0.0.1:8787>** and click **+** beside **Unassigned** to send your first task. Or use **Add project** to import a host directory or clone a Git repository. See [project setup](docs/project-clone.md) and [conversation workspaces](docs/workspaces.md) for directory options.
69
+ Open **<http://127.0.0.1:8787>** and click **+** beside **Unassigned** to start a task, or use **Add project** to [import a directory or clone a repository](docs/project-clone.md).
84
70
 
85
71
  <a id="run-from-source"></a>
86
72
 
@@ -109,11 +95,7 @@ The host computer must stay awake and online. When adding projects remotely, ent
109
95
 
110
96
  ## Updates and release channels
111
97
 
112
- Use the update panel to check versions and choose stable, beta, or dev. Beta and Dev also receive newer stable releases. **macOS and Linux npm global installations** support managed upgrades from this panel or `covro update`; other installations use their original update method.
113
-
114
- Automatic installation is off by default and requires a verified Codex combination. Unverified combinations need explicit confirmation; unknown versions, missing or invalid compatibility declarations, and explicitly unsupported combinations block managed upgrades. Covro does not upgrade Codex CLI. See [updates and recovery](docs/distribution.md) for commands, compatibility checks, and backups.
115
-
116
- DB Schema **7** is tracked separately from the application version; older applications cannot open newer databases. Backups cover Covro’s database and service configuration, excluding project files, Codex history, and credentials. Restore requires stopping the service; see [backups](docs/backups.md) and [database compatibility](docs/database.md).
98
+ Choose stable, beta, or dev in the update panel or with `covro update`. Managed upgrades support **macOS and Linux npm global installations**; other installations use their original update method. Automatic installation is off by default and requires verified Codex compatibility; unverified combinations need explicit confirmation. Covro does not upgrade Codex CLI. See [updates and recovery](docs/distribution.md).
117
99
 
118
100
  ## Your computer, your workspace
119
101
 
@@ -121,42 +103,23 @@ Covro connects to your existing CLI through `codex app-server`. Tasks, projects,
121
103
 
122
104
  Covro is for a single user. The [Shell panel](docs/shell.md) runs non-interactive commands using Codex’s configured sandbox. An interactive terminal, file editor, Git GUI, and multi-user team management are outside the current scope.
123
105
 
124
- ## Development and contribution
125
-
126
- ```sh
127
- pnpm format:check
128
- pnpm typecheck
129
- pnpm lint
130
- pnpm test
131
- pnpm build
132
- pnpm test:e2e
133
- ```
134
-
135
- Browser tests require the Chromium version used by the existing Playwright dependency. Tests and CI use explicit fixtures; they do not send real model requests.
106
+ DB Schema **7** is independent of the application version; older applications cannot open newer databases. Backups cover only Covro’s database and service configuration, excluding project files, Codex history, and credentials. Restore requires stopping the service. See [backups](docs/backups.md) and [database compatibility](docs/database.md).
136
107
 
137
- Use `pnpm format` to fix formatting; PR titles follow Conventional Commits. See [contribution and release conventions](docs/contributing.md).
108
+ ## Development and contribution
138
109
 
139
- Found a problem or have an idea? [Open an issue](https://github.com/yuzheng14/covro/issues) with your OS, Node.js and Codex versions, installation method, and steps to reproduce. Small, focused PRs are welcome; update both READMEs when changing user-facing facts or setup instructions.
110
+ See the [contribution guide](docs/contributing.md) for development setup, checks, and PR conventions. [Open an issue](https://github.com/yuzheng14/covro/issues) or send a focused PR; update both READMEs when changing user-facing facts.
140
111
 
141
112
  <a id="documentation"></a>
142
113
 
143
114
  ## 📚 Documentation
144
115
 
145
- | Guide | Contents |
146
- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- |
147
- | [Detailed usage · 中文](docs/usage.zh-CN.md) | Projects, conversations, approvals, notifications, images, and recovery |
148
- | [Deployment](docs/deployment.md) | Local access, Tailscale, and Cloudflare Access |
149
- | [Distribution](docs/distribution.md) | CLI, services, data locations, upgrades, and repair |
150
- | [Compatibility](docs/compatibility.md) | Verified Codex versions and behavior boundaries |
151
- | [Slash commands](docs/slash-commands.md) | Supported commands and usage |
152
- | [Architecture](docs/architecture.md) | How the gateway, Codex adapter, and browser fit together |
153
- | [Verification](docs/verification.md) | Test coverage and recorded live checks |
154
- | [Projects](docs/project-clone.md) · [Workspaces](docs/workspaces.md) | Importing, cloning, and conversation directories |
155
- | [Languages](docs/i18n.md) · [History loading](docs/session-history.md) | Interface language and conversation loading |
156
- | [Shell](docs/shell.md) | Command execution and sandbox limits |
157
- | [Backups](docs/backups.md) · [Database](docs/database.md) | Snapshot scope, compatibility, and offline recovery |
158
- | [Contributing](docs/contributing.md) · [Releases](docs/releases.md) | Formatting, PRs, and publishing |
159
- | [Brand assets](docs/brand.md) | Editable SVG logo and wordmarks |
116
+ | Topic | Guides |
117
+ | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
118
+ | Everyday use | [Usage · 中文](docs/usage.zh-CN.md) · [Commands](docs/slash-commands.md) · [Shell](docs/shell.md) · [Capacity retries](docs/capacity-retry.md) |
119
+ | Projects and conversations | [Import and clone](docs/project-clone.md) · [Workspaces](docs/workspaces.md) · [History loading](docs/session-history.md) |
120
+ | Setup and access | [Install and update](docs/distribution.md) · [Deployment](docs/deployment.md) · [Interface languages](docs/i18n.md) |
121
+ | Data and compatibility | [Backups](docs/backups.md) · [Database](docs/database.md) · [Codex compatibility](docs/compatibility.md) |
122
+ | Development and releases | [Contributing](docs/contributing.md) · [Architecture](docs/architecture.md) · [Verification](docs/verification.md) · [Releases](docs/releases.md) · [Brand assets](docs/brand.md) |
160
123
 
161
124
  ## License
162
125
 
package/README.zh-CN.md CHANGED
@@ -34,21 +34,7 @@
34
34
  - 📖 **一边看产出,一边讨论。** 电脑上将文档、图表和代码变更与会话并排阅读,手机上使用全屏阅读器。
35
35
  - 🔔 **及时收到待办提醒。** 开启浏览器通知,在工作结束、需要回答或审批时收到提醒;需在支持通知的桌面浏览器中保持页面运行。
36
36
 
37
- 点击输入框中的 **+**,可从手机或电脑选择图片附件。模型、推理强度、Fast 和 Plan/执行模式统一收进模型设置入口。使用 `/plan [任务]` 可选择 Plan 模式或直接提交规划任务。
38
-
39
- 当前模型容量不足时,Covro 会展示原生重试进度;如果 Codex 没有自行重试,且本轮尚无输出或工具操作,会在 5、10、20 秒后最多补偿重试 3 次。可以取消,也可以选择其他模型后手动重试。恢复边界见[容量重试说明](docs/capacity-retry.md)。
40
-
41
- 使用 `/review` 可选择未提交改动、基础分支、指定 commit 或自定义要求进行代码审查。使用 `/init` 可请求生成项目说明,已有 `AGENTS.md` 会保留。
42
-
43
- 使用 `/diff` 可查看当前工作区已暂存、未暂存和未跟踪的 Git 改动,不创建模型任务。使用 `/approve` 可显式单次授权一条自动审核拒绝记录,再发送任务让 Codex 继续。
44
-
45
- 使用 `/recap` 可通过独立模型请求总结近期可见消息,不改变会话上下文。
46
-
47
- 使用 `/goal` 可查看和管理原生会话目标、Token 预算与实际进度。激活后 Codex 可自动继续工作,任务运行期间仍可暂停或清除目标。
48
-
49
- 操作方式与使用细节见[使用指南](docs/usage.zh-CN.md)。
50
-
51
- 在当前工作区新建会话:macOS 按 **⌘ + Option + N**,Windows/Linux 按 **Ctrl + Alt + N**。输入框会自动获得焦点,已有草稿继续保留。工作区有可识别的 GitHub remote 时,点击顶部 GitHub 图标即可在新标签页打开仓库;remote 选择规则见[工作区说明](docs/workspaces.md#快捷打开-github-仓库)。
37
+ 操作、快捷键和命令用法见[使用指南](docs/usage.zh-CN.md)与[Slash 命令说明](docs/slash-commands.md)。
52
38
 
53
39
  <details>
54
40
  <summary><strong>📱 手机上也能舒服地使用</strong></summary>
@@ -78,9 +64,9 @@ npm install -g @covro/covro
78
64
  covro
79
65
  ```
80
66
 
81
- `covro` 默认在后台启动并输出本机访问地址,使用 `covro stop` 停止。配置、日志、登录自启、macOS 凭证诊断和版本渠道见[安装与服务管理](docs/distribution.md)。
67
+ `covro` 在后台启动,使用 `covro stop` 停止。配置、日志与登录自启见[安装指南](docs/distribution.md)。
82
68
 
83
- 打开 **<http://127.0.0.1:8787>**,点击 **未关联项目** 右侧的 **+** 即可发送第一条任务。也可通过 **添加项目** 导入主机目录或克隆 Git 仓库。目录选项见[项目配置](docs/project-clone.md)和[会话工作目录](docs/workspaces.md)。
69
+ 打开 **<http://127.0.0.1:8787>**,点击 **未关联项目** 旁的 **+** 开始任务,或通过 **添加项目** [导入目录或克隆仓库](docs/project-clone.md)。
84
70
 
85
71
  <a id="从源码运行"></a>
86
72
 
@@ -109,11 +95,7 @@ pnpm start -- --config ./config.local.json
109
95
 
110
96
  ## 更新与版本渠道
111
97
 
112
- 在更新面板检查版本,选择稳定版、预览版或开发版;预览版和开发版也会接收更新的稳定版本。**macOS 和 Linux 的 npm 全局安装**支持在此面板或通过 `covro update` 受管升级;其他安装方式沿用原更新方法。
113
-
114
- 自动安装默认关闭,且只接受已验证的 Codex 组合。未验证组合需要明确确认;版本未知、兼容声明缺失或无效、明确不支持的组合会阻止受管升级。Covro 不会升级 Codex CLI。完整命令、兼容检查和备份说明见[更新与恢复](docs/distribution.md)。
115
-
116
- DB Schema **7** 独立于应用版本管理,旧应用不能打开更新的数据库。备份覆盖 Covro 数据库和服务配置,不包含项目文件、Codex 历史或凭据。恢复需要停服,详见[备份与恢复](docs/backups.md)和[数据库兼容规则](docs/database.md)。
98
+ 在更新面板或通过 `covro update` 选择稳定、预览或开发渠道。受管升级支持 **macOS 和 Linux 的 npm 全局安装**,其他安装方式沿用原更新方法。自动安装默认关闭,且只接受已验证的 Codex 组合;未验证组合需明确确认。Covro 不会升级 Codex CLI。详见[更新与恢复](docs/distribution.md)。
117
99
 
118
100
  ## 你的电脑,你的工作台
119
101
 
@@ -121,42 +103,23 @@ Covro 通过 `codex app-server` 连接已有 CLI,沿用你的 Codex 登录与
121
103
 
122
104
  Covro 面向单用户。[Shell 面板](docs/shell.md)沿用 Codex 配置的沙箱执行非交互命令。交互终端、文件编辑器、Git 图形界面与多人团队管理不在当前范围内。
123
105
 
124
- ## 开发与参与
125
-
126
- ```sh
127
- pnpm format:check
128
- pnpm typecheck
129
- pnpm lint
130
- pnpm test
131
- pnpm build
132
- pnpm test:e2e
133
- ```
134
-
135
- 浏览器测试需要现有 Playwright 依赖所对应的 Chromium。测试与 CI 使用明确的测试夹具,不发起真实模型请求。
106
+ DB Schema **7** 独立于应用版本,旧应用不能打开更新的数据库。备份只覆盖 Covro 数据库和服务配置,不包含项目文件、Codex 历史或凭据;恢复需停服。详见[备份](docs/backups.md)与[数据库兼容规则](docs/database.md)。
136
107
 
137
- 使用 `pnpm format` 修复格式,PR 标题遵循 Conventional Commits,详见[开发与发版约定](docs/contributing.md)。
108
+ ## 开发与参与
138
109
 
139
- 遇到问题或有想法,欢迎[提交 Issue](https://github.com/yuzheng14/covro/issues),附上操作系统、Node.js 与 Codex 版本、安装方式和复现步骤。也欢迎范围明确的小 PR;修改面向使用者的事实或安装步骤时,请同步更新两份 README。
110
+ 开发环境、检查命令与 PR 约定见[贡献指南](docs/contributing.md)。欢迎[提交 Issue](https://github.com/yuzheng14/covro/issues) 或范围明确的 PR;面向使用者的变更需同步更新两份 README。
140
111
 
141
112
  <a id="文档导航"></a>
142
113
 
143
114
  ## 📚 文档导航
144
115
 
145
- | 指南 | 内容 |
146
- | -------------------------------------------------------------- | ------------------------------------ |
147
- | [详细使用指南](docs/usage.zh-CN.md) | 项目、会话、审批、通知、图片和恢复 |
148
- | [部署](docs/deployment.md) | 本机、Tailscale 与 Cloudflare Access |
149
- | [分发](docs/distribution.md) | CLI、服务、数据位置、升级与修复 |
150
- | [兼容性](docs/compatibility.md) | 已验证的 Codex 版本与行为边界 |
151
- | [Slash 命令](docs/slash-commands.md) | 支持的命令和用法 |
152
- | [架构](docs/architecture.md) | 网关、Codex 适配器与浏览器的协作方式 |
153
- | [验证记录](docs/verification.md) | 测试范围与真实环境检查记录 |
154
- | [项目](docs/project-clone.md) · [工作目录](docs/workspaces.md) | 导入、克隆与会话目录 |
155
- | [语言](docs/i18n.md) · [历史加载](docs/session-history.md) | 界面语言与会话加载 |
156
- | [Shell](docs/shell.md) | 命令执行与沙箱限制 |
157
- | [备份](docs/backups.md) · [数据库](docs/database.md) | 快照范围、兼容性与停服恢复 |
158
- | [开发约定](docs/contributing.md) · [发版](docs/releases.md) | 格式、PR 与发布流程 |
159
- | [品牌素材](docs/brand.md) | 可编辑的 SVG 图标与完整标识 |
116
+ | 主题 | 指南 |
117
+ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
118
+ | 日常使用 | [使用指南](docs/usage.zh-CN.md) · [命令](docs/slash-commands.md) · [Shell](docs/shell.md) · [容量重试](docs/capacity-retry.md) |
119
+ | 项目与会话 | [导入与克隆](docs/project-clone.md) · [工作目录](docs/workspaces.md) · [历史加载](docs/session-history.md) |
120
+ | 安装与访问 | [安装与更新](docs/distribution.md) · [部署](docs/deployment.md) · [界面语言](docs/i18n.md) |
121
+ | 数据与兼容 | [备份](docs/backups.md) · [数据库](docs/database.md) · [Codex 兼容性](docs/compatibility.md) |
122
+ | 开发与发布 | [贡献](docs/contributing.md) · [架构](docs/architecture.md) · [验证](docs/verification.md) · [发版](docs/releases.md) · [品牌素材](docs/brand.md) |
160
123
 
161
124
  ## 许可证
162
125
 
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-D1rEzlb-.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-hBdSvoFJ.js";import"./chunk-DSNLSHJZ-DJnLTeE9.js";import{n as i,r as a,t as o}from"./chunk-2E7WHVMD-ClzuEiGk.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-D6TNGGsX.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-DhCddf6t.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-CohAWB0C.js";import"./chunk-DSNLSHJZ-CNTCEJar.js";import{n as i,r as a,t as o}from"./chunk-2E7WHVMD-BvN6p7-r.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-sAbEeclG.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -1 +1 @@
1
- import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-nfRX7L9k.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
1
+ import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-DwHukJTB.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
@@ -1 +1 @@
1
- import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-D1rEzlb-.js";
1
+ import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-DhCddf6t.js";