create-workframe 0.1.23 → 0.1.27

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 (115) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/scripts/apply-update-hermes.sh +2 -0
  4. package/scripts/apply-update-workframe.sh +8 -0
  5. package/scripts/compose-docker-host.sh +25 -0
  6. package/workframe-api/site_meta.py +23 -7
  7. package/workframe-ui/public/apple-touch-icon.png +0 -0
  8. package/workframe-ui/public/assets/{arc-D-77-5Dd.js → arc-B1NzSPoc.js} +1 -1
  9. package/workframe-ui/public/assets/architecture-7EHR7CIX-DyE_i-rU.js +1 -0
  10. package/workframe-ui/public/assets/{architectureDiagram-3BPJPVTR-C1JLXdWl.js → architectureDiagram-3BPJPVTR-C2AhUBxm.js} +1 -1
  11. package/workframe-ui/public/assets/{blockDiagram-GPEHLZMM-T9xxoNvo.js → blockDiagram-GPEHLZMM-EaVo1AU7.js} +1 -1
  12. package/workframe-ui/public/assets/branding/apple-touch-icon.png +0 -0
  13. package/workframe-ui/public/assets/branding/favicon.svg +9 -0
  14. package/workframe-ui/public/assets/branding/icon-192.png +0 -0
  15. package/workframe-ui/public/assets/branding/icon-32.png +0 -0
  16. package/workframe-ui/public/assets/branding/icon-512.png +0 -0
  17. package/workframe-ui/public/assets/branding/icon-96.png +0 -0
  18. package/workframe-ui/public/assets/branding/og-default.png +0 -0
  19. package/workframe-ui/public/assets/branding/og-default.svg +11 -0
  20. package/workframe-ui/public/assets/branding/workframe-color.svg +6 -0
  21. package/workframe-ui/public/assets/branding/workframe-logo-horizontal.svg +43 -0
  22. package/workframe-ui/public/assets/branding/workframe-logo-vertical.svg +43 -0
  23. package/workframe-ui/public/assets/branding/workframe-mark-1024.svg +9 -0
  24. package/workframe-ui/public/assets/branding/workframe-slogan.svg +35 -0
  25. package/workframe-ui/public/assets/branding/workframe-wordmark.svg +19 -0
  26. package/workframe-ui/public/assets/branding/workframe.svg +6 -0
  27. package/workframe-ui/public/assets/branding/workframe_icon_color.svg +6 -0
  28. package/workframe-ui/public/assets/{c4Diagram-AAUBKEIU-CW6_rlVB.js → c4Diagram-AAUBKEIU-C3bMgnpU.js} +1 -1
  29. package/workframe-ui/public/assets/channel-C5m6L7LQ.js +1 -0
  30. package/workframe-ui/public/assets/{chunk-2J33WTMH-PHE0x4o6.js → chunk-2J33WTMH-Ddivjh8b.js} +1 -1
  31. package/workframe-ui/public/assets/{chunk-3OPIFGDE-AKpLnmi5.js → chunk-3OPIFGDE-DOPODp2q.js} +1 -1
  32. package/workframe-ui/public/assets/{chunk-4BX2VUAB-Cb0p7WbY.js → chunk-4BX2VUAB-CS_xAtbO.js} +1 -1
  33. package/workframe-ui/public/assets/{chunk-55IACEB6-Buz-qA4I.js → chunk-55IACEB6-DZ7Fa5Sa.js} +1 -1
  34. package/workframe-ui/public/assets/{chunk-5ZQYHXKU-C2icG3qM.js → chunk-5ZQYHXKU-M7GQJ5qW.js} +1 -1
  35. package/workframe-ui/public/assets/{chunk-727SXJPM-eeke759Q.js → chunk-727SXJPM-Bhvm6OPw.js} +1 -1
  36. package/workframe-ui/public/assets/{chunk-AQP2D5EJ-Bl0Jul7P.js → chunk-AQP2D5EJ-C2kXp1mw.js} +1 -1
  37. package/workframe-ui/public/assets/{chunk-BSJP7CBP-Bz9Q8NZ3.js → chunk-BSJP7CBP-B-0T3SdQ.js} +1 -1
  38. package/workframe-ui/public/assets/{chunk-CSCIHK7Q-D_XHQdeO.js → chunk-CSCIHK7Q-DF5L9MP6.js} +1 -1
  39. package/workframe-ui/public/assets/{chunk-FMBD7UC4-CUlTX65p.js → chunk-FMBD7UC4-W8MG2rFS.js} +1 -1
  40. package/workframe-ui/public/assets/{chunk-KSCS5N6A-CSyOAG4V.js → chunk-KSCS5N6A-5xs6JUOV.js} +1 -1
  41. package/workframe-ui/public/assets/{chunk-L5ZTLDWV-DmAdnpN_.js → chunk-L5ZTLDWV-D65YUwSD.js} +1 -1
  42. package/workframe-ui/public/assets/{chunk-LZXEDZCA-Cnp1Bqi8.js → chunk-LZXEDZCA-CnD9nqy-.js} +2 -2
  43. package/workframe-ui/public/assets/{chunk-ND2GUHAM-DG3qpqDw.js → chunk-ND2GUHAM-BXTwwLgY.js} +1 -1
  44. package/workframe-ui/public/assets/{chunk-NZK2D7GU-CGjMmqma.js → chunk-NZK2D7GU-B5jETQei.js} +1 -1
  45. package/workframe-ui/public/assets/{chunk-O5CBEL6O-xu0UxtMM.js → chunk-O5CBEL6O-B_WncWB4.js} +1 -1
  46. package/workframe-ui/public/assets/chunk-QZHKN3VN-QDLg0fd1.js +1 -0
  47. package/workframe-ui/public/assets/chunk-WU5MYG2G-Crahkgvj.js +1 -0
  48. package/workframe-ui/public/assets/{chunk-XPW4576I-DxyorPsM.js → chunk-XPW4576I-zSPP7c8h.js} +1 -1
  49. package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-BpbDNN1V.js +1 -0
  50. package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-BpbDNN1V.js +1 -0
  51. package/workframe-ui/public/assets/{cose-bilkent-S5V4N54A-CxpqI3gJ.js → cose-bilkent-S5V4N54A-DoPuVefq.js} +1 -1
  52. package/workframe-ui/public/assets/{dagre-BM42HDAG-DLSHxPvw.js → dagre-BM42HDAG-C_wUIAWb.js} +1 -1
  53. package/workframe-ui/public/assets/{diagram-2AECGRRQ-DjCZB2Eu.js → diagram-2AECGRRQ-B1jpEMYc.js} +1 -1
  54. package/workframe-ui/public/assets/{diagram-5GNKFQAL-DwxhCkmG.js → diagram-5GNKFQAL-CV2UOWB7.js} +1 -1
  55. package/workframe-ui/public/assets/{diagram-KO2AKTUF-0K1yu8Y7.js → diagram-KO2AKTUF-6xrS63nE.js} +1 -1
  56. package/workframe-ui/public/assets/{diagram-LMA3HP47-BsI9hmso.js → diagram-LMA3HP47-DgBPj8ib.js} +1 -1
  57. package/workframe-ui/public/assets/{diagram-OG6HWLK6-BdHvrW0y.js → diagram-OG6HWLK6-ejkQYVap.js} +1 -1
  58. package/workframe-ui/public/assets/{dist-BAseb5Go.js → dist-BbaMgTqQ.js} +1 -1
  59. package/workframe-ui/public/assets/{erDiagram-TEJ5UH35-Bft7WuJe.js → erDiagram-TEJ5UH35-BiSoJu03.js} +1 -1
  60. package/workframe-ui/public/assets/eventmodeling-FCH6USID-Dq_lGRoa.js +1 -0
  61. package/workframe-ui/public/assets/{flowDiagram-I6XJVG4X-CrGyStl1.js → flowDiagram-I6XJVG4X-BwPMcko1.js} +1 -1
  62. package/workframe-ui/public/assets/{ganttDiagram-6RSMTGT7-m2NHt64V.js → ganttDiagram-6RSMTGT7-cWBaD5RP.js} +1 -1
  63. package/workframe-ui/public/assets/{gitGraph-WXDBUCRP-CH_FKkp-.js → gitGraph-WXDBUCRP-CjYZBxSu.js} +1 -1
  64. package/workframe-ui/public/assets/{gitGraphDiagram-PVQCEYII-Y8-dN3S_.js → gitGraphDiagram-PVQCEYII-DvZ7wi2w.js} +1 -1
  65. package/workframe-ui/public/assets/index-C-Fc0Svu.js +133 -0
  66. package/workframe-ui/public/assets/index-Ct_WgqK_.css +1 -0
  67. package/workframe-ui/public/assets/{info-J43DQDTF-Cva-Bi2a.js → info-J43DQDTF-93tQ3bFg.js} +1 -1
  68. package/workframe-ui/public/assets/{infoDiagram-5YYISTIA-DDsPpn9B.js → infoDiagram-5YYISTIA-ml6wMPcJ.js} +1 -1
  69. package/workframe-ui/public/assets/{ishikawaDiagram-YF4QCWOH-kFaD1Kkh.js → ishikawaDiagram-YF4QCWOH-Bigxf51R.js} +1 -1
  70. package/workframe-ui/public/assets/{journeyDiagram-JHISSGLW-D4eDBF7o.js → journeyDiagram-JHISSGLW-oqj5zaDS.js} +1 -1
  71. package/workframe-ui/public/assets/{kanban-definition-UN3LZRKU-IYnpCDPR.js → kanban-definition-UN3LZRKU-e1AUE6SD.js} +1 -1
  72. package/workframe-ui/public/assets/{line-BNef88iP.js → line-DXim049p.js} +1 -1
  73. package/workframe-ui/public/assets/{linear-Cn6_4DZy.js → linear-CjJ0aUce.js} +1 -1
  74. package/workframe-ui/public/assets/{mermaid-parser.core-CnH-sDON.js → mermaid-parser.core-CEQ7hoGn.js} +2 -2
  75. package/workframe-ui/public/assets/{mermaid.core-DqL_plX0.js → mermaid.core-DlM744u8.js} +3 -3
  76. package/workframe-ui/public/assets/{mindmap-definition-RKZ34NQL-CuBcv1Or.js → mindmap-definition-RKZ34NQL-DVVu6Jor.js} +1 -1
  77. package/workframe-ui/public/assets/{packet-YPE3B663--TqPEIxy.js → packet-YPE3B663-DESmoHBl.js} +1 -1
  78. package/workframe-ui/public/assets/{pie-LRSECV5Y-DAbuHk81.js → pie-LRSECV5Y--vee5Ris.js} +1 -1
  79. package/workframe-ui/public/assets/{pieDiagram-4H26LBE5-LuPPjNao.js → pieDiagram-4H26LBE5-Cc9eMWdk.js} +1 -1
  80. package/workframe-ui/public/assets/{quadrantDiagram-W4KKPZXB-DBXbedvK.js → quadrantDiagram-W4KKPZXB-oHJN26Sx.js} +1 -1
  81. package/workframe-ui/public/assets/{radar-GUYGQ44K-I_v_C5JD.js → radar-GUYGQ44K-CwikE4Ww.js} +1 -1
  82. package/workframe-ui/public/assets/{requirementDiagram-4Y6WPE33-BwEEw5Mz.js → requirementDiagram-4Y6WPE33-Bq9i9HwH.js} +1 -1
  83. package/workframe-ui/public/assets/{sankeyDiagram-5OEKKPKP-CbDqrFze.js → sankeyDiagram-5OEKKPKP-Dqq4J1MD.js} +1 -1
  84. package/workframe-ui/public/assets/{sequenceDiagram-3UESZ5HK-Bh5BVOGB.js → sequenceDiagram-3UESZ5HK-DqFlE5kZ.js} +1 -1
  85. package/workframe-ui/public/assets/{src-BRhWc6f1.js → src-Blyt0aHN.js} +1 -1
  86. package/workframe-ui/public/assets/{stateDiagram-AJRCARHV-uzmqNA7-.js → stateDiagram-AJRCARHV-cem0gXBo.js} +1 -1
  87. package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-C9167KF6.js +1 -0
  88. package/workframe-ui/public/assets/{timeline-definition-PNZ67QCA-B5ThU6b5.js → timeline-definition-PNZ67QCA-CmQBdujr.js} +1 -1
  89. package/workframe-ui/public/assets/{treeView-BLDUP644-DwMX3tdb.js → treeView-BLDUP644-BJS26NiO.js} +1 -1
  90. package/workframe-ui/public/assets/{treemap-LRROVOQU-D3Xvc57y.js → treemap-LRROVOQU-B37nOhCC.js} +1 -1
  91. package/workframe-ui/public/assets/{vennDiagram-CIIHVFJN-B3nOhHBA.js → vennDiagram-CIIHVFJN-D4OZ82cy.js} +1 -1
  92. package/workframe-ui/public/assets/{wardley-L42UT6IY-Bt9YNelj.js → wardley-L42UT6IY-Caiq5hPX.js} +1 -1
  93. package/workframe-ui/public/assets/{wardleyDiagram-YWT4CUSO-DarFLt6z.js → wardleyDiagram-YWT4CUSO-DmsdnGnZ.js} +1 -1
  94. package/workframe-ui/public/assets/{xychartDiagram-2RQKCTM6-thD0o8eT.js → xychartDiagram-2RQKCTM6-C61g8Rf-.js} +1 -1
  95. package/workframe-ui/public/favicon.ico +0 -0
  96. package/workframe-ui/public/favicon.svg +9 -7
  97. package/workframe-ui/public/icon-192.png +0 -0
  98. package/workframe-ui/public/icon-32.png +0 -0
  99. package/workframe-ui/public/icon-512.png +0 -0
  100. package/workframe-ui/public/icon-96.png +0 -0
  101. package/workframe-ui/public/index.html +14 -10
  102. package/workframe-ui/public/manifest.webmanifest +27 -3
  103. package/workframe-ui/public/og-default.png +0 -0
  104. package/workframe-ui/public/workframe-build.json +4 -4
  105. package/workframe-ui/public/workframe-mark-1024.svg +9 -0
  106. package/workframe-ui/public/assets/architecture-7EHR7CIX-BMeH93qt.js +0 -1
  107. package/workframe-ui/public/assets/channel-Cwx9-jL9.js +0 -1
  108. package/workframe-ui/public/assets/chunk-QZHKN3VN-Cx_F5jc2.js +0 -1
  109. package/workframe-ui/public/assets/chunk-WU5MYG2G-DlwJ4jl0.js +0 -1
  110. package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-BWUEDql_.js +0 -1
  111. package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-BWUEDql_.js +0 -1
  112. package/workframe-ui/public/assets/eventmodeling-FCH6USID-B26Q6Svj.js +0 -1
  113. package/workframe-ui/public/assets/index-BO-agk3b.css +0 -1
  114. package/workframe-ui/public/assets/index-xD_BAFNg.js +0 -133
  115. package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-DSAOibVi.js +0 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Published on npm as **create-workframe**.
4
4
 
5
5
  ```bash
6
- npx create-workframe@0.1.23 MyProject
6
+ npx create-workframe@0.1.27 MyProject
7
7
  ```
8
8
 
9
9
  Scaffolds an isolated Workframe + Hermes project on Windows, macOS, and Linux.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-workframe",
3
- "version": "0.1.23",
3
+ "version": "0.1.27",
4
4
  "description": "Scaffold a Workframe + Hermes workspace with guided onboarding",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,4 +14,6 @@ SERVICES=(gateway dashboard)
14
14
  workframe_compose pull "${SERVICES[@]}"
15
15
  workframe_compose up -d --force-recreate --no-deps "${SERVICES[@]}"
16
16
 
17
+ workframe_docker_cleanup_after_update
18
+
17
19
  echo "=== Hermes update complete ==="
@@ -178,6 +178,7 @@ fi
178
178
 
179
179
  echo "Rebuilding workframe-api and workframe-supervisor..."
180
180
  workframe_compose build workframe-api workframe-supervisor
181
+ SUPERVISOR_RESTART_PID=""
181
182
  if [[ "${WORKFRAME_UPDATE_FROM_SUPERVISOR:-}" == "1" ]]; then
182
183
  # ponytail: supervisor cannot recreate itself inside the stack.apply request — defer after handler returns
183
184
  workframe_compose_host_bindings up -d --no-build --no-deps workframe-api
@@ -185,6 +186,7 @@ if [[ "${WORKFRAME_UPDATE_FROM_SUPERVISOR:-}" == "1" ]]; then
185
186
  sleep 3
186
187
  workframe_compose_host_bindings up -d --no-build --no-deps workframe-supervisor
187
188
  ) >/tmp/workframe-supervisor-restart.log 2>&1 &
189
+ SUPERVISOR_RESTART_PID=$!
188
190
  else
189
191
  workframe_compose up -d --build --no-deps workframe-api workframe-supervisor
190
192
  fi
@@ -195,6 +197,12 @@ elif workframe_compose config --services 2>/dev/null | grep -qx workframe; then
195
197
  workframe_compose_host_bindings up -d --no-build --no-deps workframe || workframe_compose_host_bindings restart workframe || true
196
198
  fi
197
199
 
200
+ if [[ -n "${SUPERVISOR_RESTART_PID}" ]]; then
201
+ wait "${SUPERVISOR_RESTART_PID}" 2>/dev/null || true
202
+ fi
203
+
198
204
  _wf_record_package_version "${TARGET_VERSION:-}"
199
205
 
206
+ workframe_docker_cleanup_after_update
207
+
200
208
  echo "=== Workframe update complete ==="
@@ -69,3 +69,28 @@ workframe_compose_host_bindings() {
69
69
  fi
70
70
  workframe_compose "$@"
71
71
  }
72
+
73
+ # After compose build/pull + recreate, drop stopped project containers and dangling images.
74
+ workframe_docker_cleanup_after_update() {
75
+ if ! command -v docker >/dev/null 2>&1; then
76
+ return 0
77
+ fi
78
+ workframe_compose_prepare || return 0
79
+ local project=""
80
+ if [[ -f "${compose_cd}/docker-compose.yml" ]]; then
81
+ cd "${compose_cd}"
82
+ project="$(docker compose "${compose_files[@]}" config --format '{{.name}}' 2>/dev/null || true)"
83
+ fi
84
+ echo "=== Docker cleanup after update ==="
85
+ if [[ -n "$project" ]]; then
86
+ echo "Removing stopped containers for compose project: ${project}"
87
+ docker container prune -f --filter "label=com.docker.compose.project=${project}" 2>/dev/null \
88
+ || docker container prune -f 2>/dev/null \
89
+ || true
90
+ else
91
+ docker container prune -f 2>/dev/null || true
92
+ fi
93
+ echo "Removing dangling images from rebuild/pull"
94
+ docker image prune -f 2>/dev/null || true
95
+ echo "=== Docker cleanup complete ==="
96
+ }
@@ -11,10 +11,22 @@ import stack_config
11
11
 
12
12
  DEFAULT_TITLE = "Workframe"
13
13
  DEFAULT_SHORT_NAME = "Workframe"
14
- DEFAULT_DESCRIPTION = "Project chat and workspace for Hermes agent crews"
15
- DEFAULT_THEME_COLOR = "#0A0A0F"
14
+ DEFAULT_DESCRIPTION = (
15
+ "The Social OS for Autonomous Businesses — humans and persistent AI coworkers "
16
+ "share chat, boards, and files."
17
+ )
18
+ DEFAULT_THEME_COLOR = "#79689D"
16
19
  DEFAULT_OG_IMAGE = "/assets/branding/og-default.png"
17
20
  DEFAULT_FAVICON = "/favicon.svg"
21
+ DEFAULT_APPLE_TOUCH_ICON = "/apple-touch-icon.png"
22
+
23
+ DEFAULT_PWA_ICONS = [
24
+ {"src": "./favicon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any"},
25
+ {"src": "./icon-32.png", "sizes": "32x32", "type": "image/png", "purpose": "any"},
26
+ {"src": "./icon-96.png", "sizes": "96x96", "type": "image/png", "purpose": "any"},
27
+ {"src": "./icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable"},
28
+ {"src": "./icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable"},
29
+ ]
18
30
 
19
31
  BRANDING_DIR_NAME = "site-branding"
20
32
  OG_FILENAME = "og-image"
@@ -169,8 +181,10 @@ def resolve_site_meta(
169
181
  fav_path = _branding_asset_path("favicon")
170
182
  if fav_path.is_file():
171
183
  favicon = _browser_asset_url(app_base_url, f"/api/public/branding/favicon{fav_path.suffix}")
184
+ apple_touch = favicon
172
185
  else:
173
186
  favicon = _browser_asset_url(app_base_url, DEFAULT_FAVICON)
187
+ apple_touch = _browser_asset_url(app_base_url, DEFAULT_APPLE_TOUCH_ICON)
174
188
 
175
189
  short_name = title if len(title) <= 16 else title[:15].rstrip() + "…"
176
190
  canonical = app_base_url.rstrip("/") + "/" if app_base_url else "/"
@@ -185,6 +199,7 @@ def resolve_site_meta(
185
199
  "theme_color": theme_color,
186
200
  "og_image": og_image,
187
201
  "favicon": favicon,
202
+ "apple_touch_icon": apple_touch,
188
203
  "canonical_url": canonical,
189
204
  "manifest_url": _browser_asset_url(app_base_url, "/manifest.webmanifest"),
190
205
  "source": {
@@ -197,10 +212,10 @@ def resolve_site_meta(
197
212
 
198
213
 
199
214
  def manifest_payload(meta: dict[str, Any]) -> dict[str, Any]:
200
- icons = []
201
215
  favicon = str(meta.get("favicon") or "").strip()
202
- if favicon:
203
- icons.append(
216
+ custom_icons = []
217
+ if favicon and favicon != _browser_asset_url("", DEFAULT_FAVICON):
218
+ custom_icons.append(
204
219
  {
205
220
  "src": favicon,
206
221
  "sizes": "any",
@@ -208,16 +223,17 @@ def manifest_payload(meta: dict[str, Any]) -> dict[str, Any]:
208
223
  "purpose": "any",
209
224
  },
210
225
  )
226
+ icons = custom_icons or DEFAULT_PWA_ICONS
211
227
  return {
212
228
  "name": meta.get("title") or DEFAULT_TITLE,
213
229
  "short_name": meta.get("short_name") or DEFAULT_SHORT_NAME,
214
230
  "description": meta.get("description") or DEFAULT_DESCRIPTION,
215
231
  "start_url": "./",
216
232
  "display": "standalone",
217
- "background_color": meta.get("theme_color") or DEFAULT_THEME_COLOR,
233
+ "background_color": "#ffffff",
218
234
  "theme_color": meta.get("theme_color") or DEFAULT_THEME_COLOR,
219
235
  "orientation": "any",
220
- "icons": icons or [{"src": "./favicon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any"}],
236
+ "icons": icons,
221
237
  }
222
238
 
223
239
 
@@ -1 +1 @@
1
- import{n as e,t}from"./path-BWPyau1x.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-BAseb5Go.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-BWPyau1x.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-BbaMgTqQ.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};
@@ -0,0 +1 @@
1
+ import"./chunk-NNHCCRGN-DlpIbxXb.js";import{x as e}from"./mermaid-parser.core-CEQ7hoGn.js";export{e as createArchitectureServices};