yycode 0.3.2__py3-none-any.whl
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.
- agent/__init__.py +33 -0
- agent/acp/__init__.py +2 -0
- agent/acp/approval_adapter.py +134 -0
- agent/acp/content_adapter.py +45 -0
- agent/acp/jsonrpc.py +92 -0
- agent/acp/server.py +197 -0
- agent/acp/session_manager.py +193 -0
- agent/acp/update_adapter.py +192 -0
- agent/app_paths.py +25 -0
- agent/approval.py +169 -0
- agent/cancellation.py +52 -0
- agent/change_snapshot.py +186 -0
- agent/context_compressor.py +116 -0
- agent/graph.py +137 -0
- agent/llm_retry.py +434 -0
- agent/logger.py +97 -0
- agent/lsp/__init__.py +13 -0
- agent/lsp/client.py +151 -0
- agent/lsp/manager.py +234 -0
- agent/lsp/types.py +119 -0
- agent/message_context_manager.py +322 -0
- agent/message_format.py +105 -0
- agent/nodes/llm_node.py +58 -0
- agent/nodes/state.py +12 -0
- agent/nodes/task_guard_node.py +50 -0
- agent/nodes/tools_node.py +70 -0
- agent/plan_snapshot.py +70 -0
- agent/providers/__init__.py +13 -0
- agent/providers/anthropic_provider.py +268 -0
- agent/providers/base.py +52 -0
- agent/providers/openai_provider.py +279 -0
- agent/providers/text_tool_calls.py +118 -0
- agent/runtime/approval_service.py +184 -0
- agent/runtime/context.py +43 -0
- agent/runtime/tool_events.py +368 -0
- agent/runtime/tool_executor.py +208 -0
- agent/runtime/tool_output.py +261 -0
- agent/runtime/tool_registry.py +91 -0
- agent/runtime/tool_scheduler.py +35 -0
- agent/runtime/workflow_guard.py +217 -0
- agent/runtime/workspace.py +5 -0
- agent/runtime/workspace_tools.py +22 -0
- agent/session.py +787 -0
- agent/session_replay.py +95 -0
- agent/session_store.py +186 -0
- agent/skills.py +254 -0
- agent/streaming.py +248 -0
- agent/subagent.py +634 -0
- agent/task_memory.py +340 -0
- agent/todo_manager.py +304 -0
- agent/tool_retry.py +106 -0
- agent/tui/__init__.py +14 -0
- agent/tui/app.py +1325 -0
- agent/tui/approval.py +53 -0
- agent/tui/commands/__init__.py +6 -0
- agent/tui/commands/base.py +48 -0
- agent/tui/commands/clear.py +37 -0
- agent/tui/commands/help.py +27 -0
- agent/tui/commands/registry.py +94 -0
- agent/tui/help_content.py +108 -0
- agent/tui/renderers.py +1961 -0
- agent/tui/runner.py +439 -0
- agent/tui/state.py +653 -0
- main.py +465 -0
- tools/__init__.py +50 -0
- tools/apply_patch.py +305 -0
- tools/bash.py +76 -0
- tools/diff_utils.py +139 -0
- tools/edit_file.py +40 -0
- tools/git_diff.py +72 -0
- tools/git_show.py +65 -0
- tools/grep.py +149 -0
- tools/list_files.py +90 -0
- tools/list_skills.py +24 -0
- tools/load_skill.py +30 -0
- tools/lsp_definition.py +27 -0
- tools/lsp_diagnostics.py +32 -0
- tools/lsp_document_symbols.py +23 -0
- tools/lsp_hover.py +29 -0
- tools/lsp_references.py +37 -0
- tools/lsp_utils.py +38 -0
- tools/lsp_workspace_symbols.py +23 -0
- tools/read_file.py +61 -0
- tools/read_many_files.py +50 -0
- tools/safety.py +50 -0
- tools/subagent.py +57 -0
- tools/todo.py +89 -0
- tools/verify.py +107 -0
- tools/web_search.py +250 -0
- tools/workspace.py +36 -0
- tools/workspace_state.py +60 -0
- tools/write_file.py +88 -0
- utils/__init__.py +5 -0
- utils/retry.py +13 -0
- yycode-0.3.2.data/data/skills/code_review.md +61 -0
- yycode-0.3.2.data/data/skills/code_workflow.md +404 -0
- yycode-0.3.2.data/data/skills/drawio/SKILL.md +636 -0
- yycode-0.3.2.data/data/skills/drawio/agents/openai.yaml +19 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-erd.drawio +84 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.drawio +91 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.drawio +112 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ml.drawio +90 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.drawio +68 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.drawio +86 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-sequence.drawio +116 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.drawio +66 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star.drawio +79 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-uml-class.drawio +64 -0
- yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.drawio +173 -0
- yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.drawio +120 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow.drawio +120 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/docs/index.html +469 -0
- yycode-0.3.2.data/data/skills/drawio/docs/zh.html +456 -0
- yycode-0.3.2.data/data/skills/drawio/references/style-extraction.md +254 -0
- yycode-0.3.2.data/data/skills/drawio/styles/schema.json +112 -0
- yycode-0.3.2.data/data/skills/plan.md +115 -0
- yycode-0.3.2.data/data/skills/ppt/SKILL.md +254 -0
- yycode-0.3.2.dist-info/METADATA +12 -0
- yycode-0.3.2.dist-info/RECORD +131 -0
- yycode-0.3.2.dist-info/WHEEL +5 -0
- yycode-0.3.2.dist-info/entry_points.txt +2 -0
- yycode-0.3.2.dist-info/top_level.txt +4 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Draw.io Diagrams"
|
|
3
|
+
short_description: "Generate draw.io diagrams from natural language and export to PNG/SVG/PDF/JPG with self-check and iterative refinement"
|
|
4
|
+
brand_color: "#F08705"
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
8
|
+
|
|
9
|
+
capabilities:
|
|
10
|
+
- Generate .drawio XML from natural language descriptions
|
|
11
|
+
- Export to PNG, SVG, PDF, JPG via draw.io desktop CLI
|
|
12
|
+
- 6 diagram presets (ERD, UML Class, Sequence, Architecture, ML/DL, Flowchart)
|
|
13
|
+
- Self-check exported images and auto-fix layout issues
|
|
14
|
+
- Iterative review loop with targeted XML edits
|
|
15
|
+
- Browser fallback via diagrams.net URL when CLI unavailable
|
|
16
|
+
- Animated connectors for data-flow diagrams
|
|
17
|
+
|
|
18
|
+
prerequisites:
|
|
19
|
+
- draw.io desktop app (macOS/Linux/Windows)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Users Table -->
|
|
10
|
+
<mxCell id="2" value="Users" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;strokeColor=#6c8ebf;fillColor=#dae8fc;html=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="40" y="40" width="220" height="150" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="id PK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;fontStyle=1;html=1;" vertex="1" parent="2">
|
|
14
|
+
<mxGeometry y="30" width="220" height="30" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
<mxCell id="4" value="username" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="2">
|
|
17
|
+
<mxGeometry y="60" width="220" height="30" as="geometry" />
|
|
18
|
+
</mxCell>
|
|
19
|
+
<mxCell id="5" value="email" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="2">
|
|
20
|
+
<mxGeometry y="90" width="220" height="30" as="geometry" />
|
|
21
|
+
</mxCell>
|
|
22
|
+
<mxCell id="6" value="created_at" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="2">
|
|
23
|
+
<mxGeometry y="120" width="220" height="30" as="geometry" />
|
|
24
|
+
</mxCell>
|
|
25
|
+
|
|
26
|
+
<!-- Posts Table -->
|
|
27
|
+
<mxCell id="7" value="Posts" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;strokeColor=#6c8ebf;fillColor=#dae8fc;html=1;" vertex="1" parent="1">
|
|
28
|
+
<mxGeometry x="340" y="40" width="220" height="180" as="geometry" />
|
|
29
|
+
</mxCell>
|
|
30
|
+
<mxCell id="8" value="id PK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;fontStyle=1;html=1;" vertex="1" parent="7">
|
|
31
|
+
<mxGeometry y="30" width="220" height="30" as="geometry" />
|
|
32
|
+
</mxCell>
|
|
33
|
+
<mxCell id="9" value="title" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="7">
|
|
34
|
+
<mxGeometry y="60" width="220" height="30" as="geometry" />
|
|
35
|
+
</mxCell>
|
|
36
|
+
<mxCell id="10" value="content" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="7">
|
|
37
|
+
<mxGeometry y="90" width="220" height="30" as="geometry" />
|
|
38
|
+
</mxCell>
|
|
39
|
+
<mxCell id="11" value="user_id FK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="7">
|
|
40
|
+
<mxGeometry y="120" width="220" height="30" as="geometry" />
|
|
41
|
+
</mxCell>
|
|
42
|
+
<mxCell id="12" value="created_at" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="7">
|
|
43
|
+
<mxGeometry y="150" width="220" height="30" as="geometry" />
|
|
44
|
+
</mxCell>
|
|
45
|
+
|
|
46
|
+
<!-- Comments Table -->
|
|
47
|
+
<mxCell id="13" value="Comments" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;strokeColor=#6c8ebf;fillColor=#dae8fc;html=1;" vertex="1" parent="1">
|
|
48
|
+
<mxGeometry x="640" y="40" width="220" height="180" as="geometry" />
|
|
49
|
+
</mxCell>
|
|
50
|
+
<mxCell id="14" value="id PK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;fontStyle=1;html=1;" vertex="1" parent="13">
|
|
51
|
+
<mxGeometry y="30" width="220" height="30" as="geometry" />
|
|
52
|
+
</mxCell>
|
|
53
|
+
<mxCell id="15" value="body" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="13">
|
|
54
|
+
<mxGeometry y="60" width="220" height="30" as="geometry" />
|
|
55
|
+
</mxCell>
|
|
56
|
+
<mxCell id="16" value="post_id FK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="13">
|
|
57
|
+
<mxGeometry y="90" width="220" height="30" as="geometry" />
|
|
58
|
+
</mxCell>
|
|
59
|
+
<mxCell id="17" value="user_id FK" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="13">
|
|
60
|
+
<mxGeometry y="120" width="220" height="30" as="geometry" />
|
|
61
|
+
</mxCell>
|
|
62
|
+
<mxCell id="18" value="created_at" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;html=1;" vertex="1" parent="13">
|
|
63
|
+
<mxGeometry y="150" width="220" height="30" as="geometry" />
|
|
64
|
+
</mxCell>
|
|
65
|
+
|
|
66
|
+
<!-- FK: Posts.user_id -> Users.id -->
|
|
67
|
+
<mxCell id="19" value="" style="dashed=1;endArrow=ERmandOne;startArrow=ERmandOne;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="11" target="3">
|
|
68
|
+
<mxGeometry relative="1" as="geometry" />
|
|
69
|
+
</mxCell>
|
|
70
|
+
|
|
71
|
+
<!-- FK: Comments.post_id -> Posts.id -->
|
|
72
|
+
<mxCell id="20" value="" style="dashed=1;endArrow=ERmandOne;startArrow=ERmandOne;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="16" target="8">
|
|
73
|
+
<mxGeometry relative="1" as="geometry" />
|
|
74
|
+
</mxCell>
|
|
75
|
+
|
|
76
|
+
<!-- FK: Comments.user_id -> Users.id -->
|
|
77
|
+
<mxCell id="21" value="" style="dashed=1;endArrow=ERmandOne;startArrow=ERmandOne;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="17" target="3">
|
|
78
|
+
<mxGeometry relative="1" as="geometry" />
|
|
79
|
+
</mxCell>
|
|
80
|
+
|
|
81
|
+
</root>
|
|
82
|
+
</mxGraphModel>
|
|
83
|
+
</diagram>
|
|
84
|
+
</mxfile>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Tier 1: 客户端 -->
|
|
10
|
+
<mxCell id="2" value="浏览器" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="220" y="40" width="140" height="50" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="移动端 App" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
14
|
+
<mxGeometry x="500" y="40" width="140" height="50" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
|
|
17
|
+
<!-- Tier 2: API 网关 -->
|
|
18
|
+
<mxCell id="4" value="API 网关" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;fontSize=14;" vertex="1" parent="1">
|
|
19
|
+
<mxGeometry x="320" y="220" width="180" height="60" as="geometry" />
|
|
20
|
+
</mxCell>
|
|
21
|
+
|
|
22
|
+
<!-- Tier 3: 服务层 -->
|
|
23
|
+
<mxCell id="5" value="认证服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
24
|
+
<mxGeometry x="60" y="430" width="150" height="60" as="geometry" />
|
|
25
|
+
</mxCell>
|
|
26
|
+
<mxCell id="6" value="商品服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
27
|
+
<mxGeometry x="340" y="430" width="160" height="60" as="geometry" />
|
|
28
|
+
</mxCell>
|
|
29
|
+
<mxCell id="7" value="订单服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
30
|
+
<mxGeometry x="640" y="430" width="160" height="60" as="geometry" />
|
|
31
|
+
</mxCell>
|
|
32
|
+
|
|
33
|
+
<!-- Tier 4: 数据层 -->
|
|
34
|
+
<mxCell id="8" value="用户 DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
35
|
+
<mxGeometry x="75" y="650" width="120" height="80" as="geometry" />
|
|
36
|
+
</mxCell>
|
|
37
|
+
<mxCell id="9" value="商品 DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
38
|
+
<mxGeometry x="300" y="650" width="120" height="80" as="geometry" />
|
|
39
|
+
</mxCell>
|
|
40
|
+
<mxCell id="10" value="Redis 缓存" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
41
|
+
<mxGeometry x="490" y="660" width="120" height="60" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
<mxCell id="11" value="订单 DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
44
|
+
<mxGeometry x="660" y="650" width="120" height="80" as="geometry" />
|
|
45
|
+
</mxCell>
|
|
46
|
+
|
|
47
|
+
<!-- Edges -->
|
|
48
|
+
<mxCell id="30" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
|
|
49
|
+
<mxGeometry relative="1" as="geometry" />
|
|
50
|
+
</mxCell>
|
|
51
|
+
<mxCell id="31" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
|
|
52
|
+
<mxGeometry relative="1" as="geometry" />
|
|
53
|
+
</mxCell>
|
|
54
|
+
<mxCell id="32" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="5">
|
|
55
|
+
<mxGeometry relative="1" as="geometry" />
|
|
56
|
+
</mxCell>
|
|
57
|
+
<mxCell id="33" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="6">
|
|
58
|
+
<mxGeometry relative="1" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
<mxCell id="34" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="7">
|
|
61
|
+
<mxGeometry relative="1" as="geometry" />
|
|
62
|
+
</mxCell>
|
|
63
|
+
<mxCell id="35" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="8">
|
|
64
|
+
<mxGeometry relative="1" as="geometry" />
|
|
65
|
+
</mxCell>
|
|
66
|
+
<mxCell id="36" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="9">
|
|
67
|
+
<mxGeometry relative="1" as="geometry" />
|
|
68
|
+
</mxCell>
|
|
69
|
+
<mxCell id="37" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="10">
|
|
70
|
+
<mxGeometry relative="1" as="geometry" />
|
|
71
|
+
</mxCell>
|
|
72
|
+
<mxCell id="38" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="11">
|
|
73
|
+
<mxGeometry relative="1" as="geometry" />
|
|
74
|
+
</mxCell>
|
|
75
|
+
<!-- CROSS: 订单→商品 (check stock) -->
|
|
76
|
+
<mxCell id="39" value="查库存" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="6">
|
|
77
|
+
<mxGeometry relative="1" as="geometry" />
|
|
78
|
+
</mxCell>
|
|
79
|
+
<!-- CROSS: 认证→Redis (session) -->
|
|
80
|
+
<mxCell id="40" value="会话缓存" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="10">
|
|
81
|
+
<mxGeometry relative="1" as="geometry">
|
|
82
|
+
<Array as="points">
|
|
83
|
+
<mxPoint x="173" y="590" />
|
|
84
|
+
<mxPoint x="550" y="590" />
|
|
85
|
+
</Array>
|
|
86
|
+
</mxGeometry>
|
|
87
|
+
</mxCell>
|
|
88
|
+
</root>
|
|
89
|
+
</mxGraphModel>
|
|
90
|
+
</diagram>
|
|
91
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Tier 1 (y=40): Clients -->
|
|
10
|
+
<mxCell id="2" value="Browser" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="220" y="40" width="140" height="50" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="Mobile App" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
14
|
+
<mxGeometry x="500" y="40" width="140" height="50" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
|
|
17
|
+
<!-- Tier 2 (y=240): API Gateway -->
|
|
18
|
+
<mxCell id="4" value="API Gateway" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;fontSize=14;" vertex="1" parent="1">
|
|
19
|
+
<mxGeometry x="320" y="220" width="180" height="60" as="geometry" />
|
|
20
|
+
</mxCell>
|
|
21
|
+
|
|
22
|
+
<!-- Tier 3 (y=440): Services -->
|
|
23
|
+
<mxCell id="5" value="Auth Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
24
|
+
<mxGeometry x="60" y="430" width="150" height="60" as="geometry" />
|
|
25
|
+
</mxCell>
|
|
26
|
+
<mxCell id="6" value="Product Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
27
|
+
<mxGeometry x="340" y="430" width="160" height="60" as="geometry" />
|
|
28
|
+
</mxCell>
|
|
29
|
+
<mxCell id="7" value="Order Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
30
|
+
<mxGeometry x="640" y="430" width="160" height="60" as="geometry" />
|
|
31
|
+
</mxCell>
|
|
32
|
+
|
|
33
|
+
<!-- Tier 4 (y=650): Data stores -->
|
|
34
|
+
<mxCell id="8" value="User DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
35
|
+
<mxGeometry x="75" y="650" width="120" height="80" as="geometry" />
|
|
36
|
+
</mxCell>
|
|
37
|
+
<mxCell id="9" value="Product DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
38
|
+
<mxGeometry x="300" y="650" width="120" height="80" as="geometry" />
|
|
39
|
+
</mxCell>
|
|
40
|
+
<mxCell id="10" value="Redis Cache" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
41
|
+
<mxGeometry x="490" y="660" width="120" height="60" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
<mxCell id="11" value="Order DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
44
|
+
<mxGeometry x="660" y="650" width="120" height="80" as="geometry" />
|
|
45
|
+
</mxCell>
|
|
46
|
+
|
|
47
|
+
<!-- === EDGES === -->
|
|
48
|
+
|
|
49
|
+
<!-- Browser → API Gateway -->
|
|
50
|
+
<mxCell id="30" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
|
|
51
|
+
<mxGeometry relative="1" as="geometry" />
|
|
52
|
+
</mxCell>
|
|
53
|
+
|
|
54
|
+
<!-- Mobile → API Gateway -->
|
|
55
|
+
<mxCell id="31" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
|
|
56
|
+
<mxGeometry relative="1" as="geometry" />
|
|
57
|
+
</mxCell>
|
|
58
|
+
|
|
59
|
+
<!-- API Gateway → Auth -->
|
|
60
|
+
<mxCell id="32" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="5">
|
|
61
|
+
<mxGeometry relative="1" as="geometry" />
|
|
62
|
+
</mxCell>
|
|
63
|
+
|
|
64
|
+
<!-- API Gateway → Product Svc -->
|
|
65
|
+
<mxCell id="33" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="6">
|
|
66
|
+
<mxGeometry relative="1" as="geometry" />
|
|
67
|
+
</mxCell>
|
|
68
|
+
|
|
69
|
+
<!-- API Gateway → Order Svc -->
|
|
70
|
+
<mxCell id="34" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="7">
|
|
71
|
+
<mxGeometry relative="1" as="geometry" />
|
|
72
|
+
</mxCell>
|
|
73
|
+
|
|
74
|
+
<!-- Auth → User DB (straight down) -->
|
|
75
|
+
<mxCell id="35" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="8">
|
|
76
|
+
<mxGeometry relative="1" as="geometry" />
|
|
77
|
+
</mxCell>
|
|
78
|
+
|
|
79
|
+
<!-- Product Svc → Product DB -->
|
|
80
|
+
<mxCell id="36" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="9">
|
|
81
|
+
<mxGeometry relative="1" as="geometry" />
|
|
82
|
+
</mxCell>
|
|
83
|
+
|
|
84
|
+
<!-- Product Svc → Redis Cache -->
|
|
85
|
+
<mxCell id="37" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="10">
|
|
86
|
+
<mxGeometry relative="1" as="geometry" />
|
|
87
|
+
</mxCell>
|
|
88
|
+
|
|
89
|
+
<!-- Order Svc → Order DB (straight down) -->
|
|
90
|
+
<mxCell id="38" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="11">
|
|
91
|
+
<mxGeometry relative="1" as="geometry" />
|
|
92
|
+
</mxCell>
|
|
93
|
+
|
|
94
|
+
<!-- CROSS: Order Svc → Product Svc (same tier, horizontal) -->
|
|
95
|
+
<mxCell id="39" value="check stock" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="6">
|
|
96
|
+
<mxGeometry relative="1" as="geometry" />
|
|
97
|
+
</mxCell>
|
|
98
|
+
|
|
99
|
+
<!-- CROSS: Auth → Redis (diagonal, waypoint through corridor) -->
|
|
100
|
+
<mxCell id="40" value="session" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="10">
|
|
101
|
+
<mxGeometry relative="1" as="geometry">
|
|
102
|
+
<Array as="points">
|
|
103
|
+
<mxPoint x="173" y="590" />
|
|
104
|
+
<mxPoint x="550" y="590" />
|
|
105
|
+
</Array>
|
|
106
|
+
</mxGeometry>
|
|
107
|
+
</mxCell>
|
|
108
|
+
|
|
109
|
+
</root>
|
|
110
|
+
</mxGraphModel>
|
|
111
|
+
</diagram>
|
|
112
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="draw.io" type="device">
|
|
3
|
+
<diagram name="CNN Architecture" id="cnn-arch">
|
|
4
|
+
<mxGraphModel dx="1200" dy="1400" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="800" pageHeight="1600" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Input Image -->
|
|
10
|
+
<mxCell id="10" value="Input Image
(B, 3, 224, 224)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontStyle=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="320" y="40" width="160" height="60" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
|
|
14
|
+
<!-- Conv2D + ReLU (1) -->
|
|
15
|
+
<mxCell id="20" value="Conv2D + ReLU
(B, 64, 112, 112)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
|
|
16
|
+
<mxGeometry x="320" y="190" width="160" height="60" as="geometry" />
|
|
17
|
+
</mxCell>
|
|
18
|
+
|
|
19
|
+
<!-- MaxPool (1) -->
|
|
20
|
+
<mxCell id="30" value="MaxPool 2x2
(B, 64, 56, 56)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="320" y="340" width="160" height="60" as="geometry" />
|
|
22
|
+
</mxCell>
|
|
23
|
+
|
|
24
|
+
<!-- Conv2D + ReLU (2) -->
|
|
25
|
+
<mxCell id="40" value="Conv2D + ReLU
(B, 128, 56, 56)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
|
|
26
|
+
<mxGeometry x="320" y="490" width="160" height="60" as="geometry" />
|
|
27
|
+
</mxCell>
|
|
28
|
+
|
|
29
|
+
<!-- MaxPool (2) -->
|
|
30
|
+
<mxCell id="50" value="MaxPool 2x2
(B, 128, 28, 28)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
31
|
+
<mxGeometry x="320" y="640" width="160" height="60" as="geometry" />
|
|
32
|
+
</mxCell>
|
|
33
|
+
|
|
34
|
+
<!-- Flatten -->
|
|
35
|
+
<mxCell id="60" value="Flatten
(B, 100352)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="320" y="790" width="160" height="60" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- FC (512) -->
|
|
40
|
+
<mxCell id="70" value="FC + ReLU
(B, 512)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
|
|
41
|
+
<mxGeometry x="320" y="940" width="160" height="60" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
|
|
44
|
+
<!-- FC (10) -->
|
|
45
|
+
<mxCell id="80" value="FC
(B, 10)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
|
|
46
|
+
<mxGeometry x="320" y="1090" width="160" height="60" as="geometry" />
|
|
47
|
+
</mxCell>
|
|
48
|
+
|
|
49
|
+
<!-- Softmax Output -->
|
|
50
|
+
<mxCell id="90" value="Softmax Output
(B, 10)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontStyle=1;" vertex="1" parent="1">
|
|
51
|
+
<mxGeometry x="320" y="1240" width="160" height="60" as="geometry" />
|
|
52
|
+
</mxCell>
|
|
53
|
+
|
|
54
|
+
<!-- Arrows -->
|
|
55
|
+
<mxCell id="101" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="10" target="20">
|
|
56
|
+
<mxGeometry relative="1" as="geometry" />
|
|
57
|
+
</mxCell>
|
|
58
|
+
|
|
59
|
+
<mxCell id="102" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="20" target="30">
|
|
60
|
+
<mxGeometry relative="1" as="geometry" />
|
|
61
|
+
</mxCell>
|
|
62
|
+
|
|
63
|
+
<mxCell id="103" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="30" target="40">
|
|
64
|
+
<mxGeometry relative="1" as="geometry" />
|
|
65
|
+
</mxCell>
|
|
66
|
+
|
|
67
|
+
<mxCell id="104" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="40" target="50">
|
|
68
|
+
<mxGeometry relative="1" as="geometry" />
|
|
69
|
+
</mxCell>
|
|
70
|
+
|
|
71
|
+
<mxCell id="105" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="50" target="60">
|
|
72
|
+
<mxGeometry relative="1" as="geometry" />
|
|
73
|
+
</mxCell>
|
|
74
|
+
|
|
75
|
+
<mxCell id="106" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="60" target="70">
|
|
76
|
+
<mxGeometry relative="1" as="geometry" />
|
|
77
|
+
</mxCell>
|
|
78
|
+
|
|
79
|
+
<mxCell id="107" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="70" target="80">
|
|
80
|
+
<mxGeometry relative="1" as="geometry" />
|
|
81
|
+
</mxCell>
|
|
82
|
+
|
|
83
|
+
<mxCell id="108" style="endArrow=block;endFill=1;html=1;" edge="1" parent="1" source="80" target="90">
|
|
84
|
+
<mxGeometry relative="1" as="geometry" />
|
|
85
|
+
</mxCell>
|
|
86
|
+
|
|
87
|
+
</root>
|
|
88
|
+
</mxGraphModel>
|
|
89
|
+
</diagram>
|
|
90
|
+
</mxfile>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Ring top row -->
|
|
10
|
+
<mxCell id="2" value="规划" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="100" y="80" width="140" height="60" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="编码" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
14
|
+
<mxGeometry x="380" y="80" width="140" height="60" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
<mxCell id="4" value="构建" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
17
|
+
<mxGeometry x="660" y="80" width="140" height="60" as="geometry" />
|
|
18
|
+
</mxCell>
|
|
19
|
+
|
|
20
|
+
<!-- Ring bottom row -->
|
|
21
|
+
<mxCell id="5" value="测试" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
22
|
+
<mxGeometry x="660" y="360" width="140" height="60" as="geometry" />
|
|
23
|
+
</mxCell>
|
|
24
|
+
<mxCell id="6" value="部署" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
|
|
25
|
+
<mxGeometry x="380" y="360" width="140" height="60" as="geometry" />
|
|
26
|
+
</mxCell>
|
|
27
|
+
<mxCell id="7" value="监控" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
28
|
+
<mxGeometry x="100" y="360" width="140" height="60" as="geometry" />
|
|
29
|
+
</mxCell>
|
|
30
|
+
|
|
31
|
+
<!-- Spurs -->
|
|
32
|
+
<mxCell id="8" value="制品仓库" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
33
|
+
<mxGeometry x="910" y="190" width="120" height="80" as="geometry" />
|
|
34
|
+
</mxCell>
|
|
35
|
+
<mxCell id="9" value="告警 & 仪表盘" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="80" y="540" width="180" height="60" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- Ring edges -->
|
|
40
|
+
<mxCell id="20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="3">
|
|
41
|
+
<mxGeometry relative="1" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
<mxCell id="21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
|
|
44
|
+
<mxGeometry relative="1" as="geometry" />
|
|
45
|
+
</mxCell>
|
|
46
|
+
<mxCell id="22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="5">
|
|
47
|
+
<mxGeometry relative="1" as="geometry" />
|
|
48
|
+
</mxCell>
|
|
49
|
+
<mxCell id="23" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="6">
|
|
50
|
+
<mxGeometry relative="1" as="geometry" />
|
|
51
|
+
</mxCell>
|
|
52
|
+
<mxCell id="24" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="7">
|
|
53
|
+
<mxGeometry relative="1" as="geometry" />
|
|
54
|
+
</mxCell>
|
|
55
|
+
<mxCell id="25" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="2">
|
|
56
|
+
<mxGeometry relative="1" as="geometry" />
|
|
57
|
+
</mxCell>
|
|
58
|
+
<!-- Spur edges -->
|
|
59
|
+
<mxCell id="26" value="发布" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="8">
|
|
60
|
+
<mxGeometry relative="1" as="geometry" />
|
|
61
|
+
</mxCell>
|
|
62
|
+
<mxCell id="27" value="触发" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="9">
|
|
63
|
+
<mxGeometry relative="1" as="geometry" />
|
|
64
|
+
</mxCell>
|
|
65
|
+
</root>
|
|
66
|
+
</mxGraphModel>
|
|
67
|
+
</diagram>
|
|
68
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Ring top row (y=80): Plan → Code → Build -->
|
|
10
|
+
<mxCell id="2" value="Plan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="100" y="80" width="140" height="60" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="Code" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
14
|
+
<mxGeometry x="380" y="80" width="140" height="60" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
<mxCell id="4" value="Build" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
17
|
+
<mxGeometry x="660" y="80" width="140" height="60" as="geometry" />
|
|
18
|
+
</mxCell>
|
|
19
|
+
|
|
20
|
+
<!-- Ring bottom row (y=360): Monitor ← Deploy ← Test -->
|
|
21
|
+
<mxCell id="5" value="Test" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
22
|
+
<mxGeometry x="660" y="360" width="140" height="60" as="geometry" />
|
|
23
|
+
</mxCell>
|
|
24
|
+
<mxCell id="6" value="Deploy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
|
|
25
|
+
<mxGeometry x="380" y="360" width="140" height="60" as="geometry" />
|
|
26
|
+
</mxCell>
|
|
27
|
+
<mxCell id="7" value="Monitor" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
28
|
+
<mxGeometry x="100" y="360" width="140" height="60" as="geometry" />
|
|
29
|
+
</mxCell>
|
|
30
|
+
|
|
31
|
+
<!-- Spurs -->
|
|
32
|
+
<mxCell id="8" value="Artifacts" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
33
|
+
<mxGeometry x="910" y="190" width="120" height="80" as="geometry" />
|
|
34
|
+
</mxCell>
|
|
35
|
+
<mxCell id="9" value="Alerts & Dashboard" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="80" y="540" width="180" height="60" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- === RING EDGES (clockwise) === -->
|
|
40
|
+
|
|
41
|
+
<!-- Plan → Code (right) -->
|
|
42
|
+
<mxCell id="20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="3">
|
|
43
|
+
<mxGeometry relative="1" as="geometry" />
|
|
44
|
+
</mxCell>
|
|
45
|
+
|
|
46
|
+
<!-- Code → Build (right) -->
|
|
47
|
+
<mxCell id="21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
|
|
48
|
+
<mxGeometry relative="1" as="geometry" />
|
|
49
|
+
</mxCell>
|
|
50
|
+
|
|
51
|
+
<!-- Build → Test (down) -->
|
|
52
|
+
<mxCell id="22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="5">
|
|
53
|
+
<mxGeometry relative="1" as="geometry" />
|
|
54
|
+
</mxCell>
|
|
55
|
+
|
|
56
|
+
<!-- Test → Deploy (left) -->
|
|
57
|
+
<mxCell id="23" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="6">
|
|
58
|
+
<mxGeometry relative="1" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
|
|
61
|
+
<!-- Deploy → Monitor (left) -->
|
|
62
|
+
<mxCell id="24" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="7">
|
|
63
|
+
<mxGeometry relative="1" as="geometry" />
|
|
64
|
+
</mxCell>
|
|
65
|
+
|
|
66
|
+
<!-- Monitor → Plan (up) -->
|
|
67
|
+
<mxCell id="25" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="2">
|
|
68
|
+
<mxGeometry relative="1" as="geometry" />
|
|
69
|
+
</mxCell>
|
|
70
|
+
|
|
71
|
+
<!-- === SPUR EDGES === -->
|
|
72
|
+
|
|
73
|
+
<!-- Test → Artifacts (right-up) -->
|
|
74
|
+
<mxCell id="26" value="publish" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="8">
|
|
75
|
+
<mxGeometry relative="1" as="geometry" />
|
|
76
|
+
</mxCell>
|
|
77
|
+
|
|
78
|
+
<!-- Monitor → Alerts (down) -->
|
|
79
|
+
<mxCell id="27" value="trigger" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="9">
|
|
80
|
+
<mxGeometry relative="1" as="geometry" />
|
|
81
|
+
</mxCell>
|
|
82
|
+
|
|
83
|
+
</root>
|
|
84
|
+
</mxGraphModel>
|
|
85
|
+
</diagram>
|
|
86
|
+
</mxfile>
|
|
Binary file
|