@haposoft/cafekit 0.7.23 → 0.7.25
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.
- package/README.md +81 -862
- package/bin/install.js +4 -3
- package/package.json +2 -3
- package/src/claude/agents/code-auditor.md +25 -1
- package/src/claude/agents/god-developer.md +1 -1
- package/src/claude/agents/spec-maker.md +25 -3
- package/src/claude/agents/test-runner.md +22 -3
- package/src/claude/hooks/spec-state.cjs +24 -5
- package/src/claude/migration-manifest.json +1 -1
- package/src/claude/rules/manage-docs.md +5 -5
- package/src/claude/rules/state-sync.md +11 -8
- package/src/claude/skills/code-review/references/spec-compliance-review.md +8 -1
- package/src/claude/skills/develop/SKILL.md +32 -4
- package/src/claude/skills/develop/references/quality-gate.md +23 -13
- package/src/claude/skills/generate-graph/LICENSE +21 -0
- package/src/claude/skills/generate-graph/README.md +523 -0
- package/src/claude/skills/generate-graph/SKILL.md +427 -0
- package/src/claude/skills/generate-graph/agentloop-core.svg +101 -0
- package/src/claude/skills/generate-graph/agents/openai.yaml +4 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style1-flat.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style2-dark.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style3-blueprint.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style4-notion.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style5-glass.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style6-claude.png +0 -0
- package/src/claude/skills/generate-graph/assets/samples/sample-style7-openai.png +0 -0
- package/src/claude/skills/generate-graph/fixtures/agent-memory-types-style4.json +181 -0
- package/src/claude/skills/generate-graph/fixtures/api-flow-style7.json +40 -0
- package/src/claude/skills/generate-graph/fixtures/mem0-style1.json +297 -0
- package/src/claude/skills/generate-graph/fixtures/microservices-style3.json +64 -0
- package/src/claude/skills/generate-graph/fixtures/multi-agent-style5.json +45 -0
- package/src/claude/skills/generate-graph/fixtures/system-architecture-style6.json +48 -0
- package/src/claude/skills/generate-graph/fixtures/tool-call-style2.json +182 -0
- package/src/claude/skills/generate-graph/package.json +42 -0
- package/src/claude/skills/generate-graph/references/icons.md +281 -0
- package/src/claude/skills/generate-graph/references/style-1-flat-icon.md +108 -0
- package/src/claude/skills/generate-graph/references/style-2-dark-terminal.md +107 -0
- package/src/claude/skills/generate-graph/references/style-3-blueprint.md +113 -0
- package/src/claude/skills/generate-graph/references/style-4-notion-clean.md +94 -0
- package/src/claude/skills/generate-graph/references/style-5-glassmorphism.md +125 -0
- package/src/claude/skills/generate-graph/references/style-6-claude-official.md +209 -0
- package/src/claude/skills/generate-graph/references/style-7-openai.md +215 -0
- package/src/claude/skills/generate-graph/references/style-diagram-matrix.md +135 -0
- package/src/claude/skills/generate-graph/references/svg-layout-best-practices.md +100 -0
- package/src/claude/skills/generate-graph/scripts/generate-diagram.sh +157 -0
- package/src/claude/skills/generate-graph/scripts/generate-from-template.py +1556 -0
- package/src/claude/skills/generate-graph/scripts/test-all-styles.sh +135 -0
- package/src/claude/skills/generate-graph/scripts/validate-svg.sh +292 -0
- package/src/claude/skills/generate-graph/templates/agent-architecture.svg +28 -0
- package/src/claude/skills/generate-graph/templates/architecture.svg +23 -0
- package/src/claude/skills/generate-graph/templates/comparison-matrix.svg +14 -0
- package/src/claude/skills/generate-graph/templates/data-flow.svg +28 -0
- package/src/claude/skills/generate-graph/templates/er-diagram.svg +21 -0
- package/src/claude/skills/generate-graph/templates/flowchart.svg +21 -0
- package/src/claude/skills/generate-graph/templates/sequence.svg +20 -0
- package/src/claude/skills/generate-graph/templates/state-machine.svg +20 -0
- package/src/claude/skills/generate-graph/templates/timeline.svg +19 -0
- package/src/claude/skills/generate-graph/templates/use-case.svg +21 -0
- package/src/claude/skills/specs/SKILL.md +67 -10
- package/src/claude/skills/specs/references/review.md +32 -3
- package/src/claude/skills/specs/references/task-hydration.md +14 -12
- package/src/claude/skills/specs/rules/tasks-generation.md +21 -0
- package/src/claude/skills/specs/templates/design.md +14 -0
- package/src/claude/skills/specs/templates/init.json +7 -2
- package/src/claude/skills/specs/templates/requirements.md +21 -8
- package/src/claude/skills/specs/templates/task.md +16 -3
- package/src/claude/skills/sync/SKILL.md +11 -10
- package/src/claude/skills/sync/references/sync-protocols.md +33 -13
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template_type": "memory",
|
|
3
|
+
"style": 4,
|
|
4
|
+
"width": 1120,
|
|
5
|
+
"height": 760,
|
|
6
|
+
"title": "Agent Memory Types",
|
|
7
|
+
"subtitle": "Five memory systems an AI agent can use — characteristics, storage backends, and persistence",
|
|
8
|
+
"containers": [
|
|
9
|
+
{
|
|
10
|
+
"x": 18,
|
|
11
|
+
"y": 32,
|
|
12
|
+
"width": 1084,
|
|
13
|
+
"height": 696,
|
|
14
|
+
"label": "",
|
|
15
|
+
"subtitle": "",
|
|
16
|
+
"stroke": "#e5e7eb",
|
|
17
|
+
"fill": "none",
|
|
18
|
+
"rx": 6
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"nodes": [
|
|
22
|
+
{
|
|
23
|
+
"id": "sensory",
|
|
24
|
+
"kind": "rect",
|
|
25
|
+
"x": 56,
|
|
26
|
+
"y": 118,
|
|
27
|
+
"width": 266,
|
|
28
|
+
"height": 106,
|
|
29
|
+
"label": "Raw input, very short-lived",
|
|
30
|
+
"sublabel": "\"Current image / audio\"",
|
|
31
|
+
"type_label": "SENSORY MEMORY",
|
|
32
|
+
"fill": "#ffffff",
|
|
33
|
+
"stroke": "#e5e7eb",
|
|
34
|
+
"flat": true,
|
|
35
|
+
"tags": [
|
|
36
|
+
{ "label": "RAM / context", "fill": "#eff6ff", "stroke": "#bfdbfe", "text_fill": "#3b82f6" }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "working",
|
|
41
|
+
"kind": "rect",
|
|
42
|
+
"x": 56,
|
|
43
|
+
"y": 308,
|
|
44
|
+
"width": 266,
|
|
45
|
+
"height": 106,
|
|
46
|
+
"label": "Active context, session-scoped",
|
|
47
|
+
"sublabel": "\"Current conversation\"",
|
|
48
|
+
"type_label": "WORKING MEMORY",
|
|
49
|
+
"fill": "#ffffff",
|
|
50
|
+
"stroke": "#e5e7eb",
|
|
51
|
+
"flat": true,
|
|
52
|
+
"tags": [
|
|
53
|
+
{ "label": "Context Window", "fill": "#eff6ff", "stroke": "#bfdbfe", "text_fill": "#3b82f6" }
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "episodic",
|
|
58
|
+
"kind": "rect",
|
|
59
|
+
"x": 56,
|
|
60
|
+
"y": 498,
|
|
61
|
+
"width": 266,
|
|
62
|
+
"height": 106,
|
|
63
|
+
"label": "Past interactions, retrievable",
|
|
64
|
+
"sublabel": "\"Last week's chat summary\"",
|
|
65
|
+
"type_label": "EPISODIC MEMORY",
|
|
66
|
+
"fill": "#ffffff",
|
|
67
|
+
"stroke": "#e5e7eb",
|
|
68
|
+
"flat": true,
|
|
69
|
+
"tags": [
|
|
70
|
+
{ "label": "Vector DB + timestamp", "fill": "#eff6ff", "stroke": "#bfdbfe", "text_fill": "#3b82f6" }
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "agent",
|
|
75
|
+
"kind": "hexagon",
|
|
76
|
+
"x": 492,
|
|
77
|
+
"y": 324,
|
|
78
|
+
"width": 118,
|
|
79
|
+
"height": 90,
|
|
80
|
+
"label": "Agent",
|
|
81
|
+
"sublabel": "LLM + Planner",
|
|
82
|
+
"type_label": "CORE",
|
|
83
|
+
"fill": "#ffffff",
|
|
84
|
+
"stroke": "#3b82f6",
|
|
85
|
+
"stroke_width": 1.6,
|
|
86
|
+
"flat": true
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "semantic",
|
|
90
|
+
"kind": "rect",
|
|
91
|
+
"x": 810,
|
|
92
|
+
"y": 218,
|
|
93
|
+
"width": 266,
|
|
94
|
+
"height": 106,
|
|
95
|
+
"label": "Facts & knowledge, long-term",
|
|
96
|
+
"sublabel": "\"User prefers Python\"",
|
|
97
|
+
"type_label": "SEMANTIC MEMORY",
|
|
98
|
+
"fill": "#ffffff",
|
|
99
|
+
"stroke": "#e5e7eb",
|
|
100
|
+
"flat": true,
|
|
101
|
+
"tags": [
|
|
102
|
+
{ "label": "Vector DB + Graph DB", "fill": "#eff6ff", "stroke": "#bfdbfe", "text_fill": "#3b82f6" }
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "procedural",
|
|
107
|
+
"kind": "rect",
|
|
108
|
+
"x": 810,
|
|
109
|
+
"y": 408,
|
|
110
|
+
"width": 266,
|
|
111
|
+
"height": 106,
|
|
112
|
+
"label": "Skills & how-to, persistent",
|
|
113
|
+
"sublabel": "\"How to call Stripe API\"",
|
|
114
|
+
"type_label": "PROCEDURAL MEMORY",
|
|
115
|
+
"fill": "#ffffff",
|
|
116
|
+
"stroke": "#e5e7eb",
|
|
117
|
+
"flat": true,
|
|
118
|
+
"tags": [
|
|
119
|
+
{ "label": "Code store / fine-tune", "fill": "#eff6ff", "stroke": "#bfdbfe", "text_fill": "#3b82f6" }
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"arrows": [
|
|
124
|
+
{
|
|
125
|
+
"source": "agent",
|
|
126
|
+
"target": "sensory",
|
|
127
|
+
"source_port": "left",
|
|
128
|
+
"target_port": "right",
|
|
129
|
+
"flow": "read",
|
|
130
|
+
"label": "read/write",
|
|
131
|
+
"route_points": [[432, 360], [386, 360], [386, 172], [322, 172]],
|
|
132
|
+
"label_dx": -18,
|
|
133
|
+
"label_dy": -8
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"source": "agent",
|
|
137
|
+
"target": "working",
|
|
138
|
+
"source_port": "left",
|
|
139
|
+
"target_port": "right",
|
|
140
|
+
"flow": "read",
|
|
141
|
+
"label": "read/write",
|
|
142
|
+
"route_points": [[432, 369], [404, 369], [322, 360]],
|
|
143
|
+
"label_dx": -6,
|
|
144
|
+
"label_dy": -6
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"source": "agent",
|
|
148
|
+
"target": "episodic",
|
|
149
|
+
"source_port": "left",
|
|
150
|
+
"target_port": "right",
|
|
151
|
+
"flow": "read",
|
|
152
|
+
"label": "read/write",
|
|
153
|
+
"route_points": [[432, 394], [386, 430], [386, 552], [322, 552]],
|
|
154
|
+
"label_dx": -18,
|
|
155
|
+
"label_dy": -6
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"source": "agent",
|
|
159
|
+
"target": "semantic",
|
|
160
|
+
"source_port": "right",
|
|
161
|
+
"target_port": "left",
|
|
162
|
+
"flow": "read",
|
|
163
|
+
"label": "read/write",
|
|
164
|
+
"route_points": [[668, 360], [726, 360], [726, 271], [810, 271]],
|
|
165
|
+
"label_dx": 10,
|
|
166
|
+
"label_dy": -8
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"source": "agent",
|
|
170
|
+
"target": "procedural",
|
|
171
|
+
"source_port": "right",
|
|
172
|
+
"target_port": "left",
|
|
173
|
+
"flow": "read",
|
|
174
|
+
"label": "read/write",
|
|
175
|
+
"route_points": [[668, 388], [740, 404], [810, 461]],
|
|
176
|
+
"label_dx": 8,
|
|
177
|
+
"label_dy": -8
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"footer": ""
|
|
181
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template_type": "architecture",
|
|
3
|
+
"style": 7,
|
|
4
|
+
"width": 1100,
|
|
5
|
+
"height": 680,
|
|
6
|
+
"title": "API Integration Flow",
|
|
7
|
+
"subtitle": "OpenAI-style clean integration diagram with precise control and response stages",
|
|
8
|
+
"containers": [
|
|
9
|
+
{ "x": 40, "y": 118, "width": 1020, "height": 104, "label": "ENTRY", "subtitle": "", "stroke": "#e2e8f0", "fill": "none" },
|
|
10
|
+
{ "x": 40, "y": 252, "width": 1020, "height": 154, "label": "MODEL + TOOLS", "subtitle": "", "stroke": "#e2e8f0", "fill": "none" },
|
|
11
|
+
{ "x": 40, "y": 438, "width": 1020, "height": 154, "label": "DELIVERY", "subtitle": "", "stroke": "#e2e8f0", "fill": "none" }
|
|
12
|
+
],
|
|
13
|
+
"nodes": [
|
|
14
|
+
{ "id": "app", "kind": "rect", "x": 90, "y": 146, "width": 176, "height": 56, "label": "Application", "type_label": "CLIENT", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
|
|
15
|
+
{ "id": "sdk", "kind": "double_rect", "x": 350, "y": 142, "width": 196, "height": 64, "label": "OpenAI SDK Layer", "type_label": "SDK", "fill": "#ffffff", "stroke": "#10a37f" },
|
|
16
|
+
{ "id": "prompt", "kind": "rect", "x": 114, "y": 300, "width": 188, "height": 60, "label": "Prompt Builder", "type_label": "INPUT", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
|
|
17
|
+
{ "id": "model", "kind": "double_rect", "x": 418, "y": 292, "width": 236, "height": 76, "label": "Model Runtime", "type_label": "REASONING", "fill": "#ffffff", "stroke": "#10a37f" },
|
|
18
|
+
{ "id": "tools", "kind": "rect", "x": 782, "y": 300, "width": 188, "height": 60, "label": "Tool Calls", "type_label": "ACTIONS", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
|
|
19
|
+
{ "id": "formatter", "kind": "rect", "x": 148, "y": 486, "width": 198, "height": 60, "label": "Response Formatter", "type_label": "OUTPUT", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
|
|
20
|
+
{ "id": "obs", "kind": "rect", "x": 470, "y": 486, "width": 176, "height": 60, "label": "Observability", "type_label": "METRICS", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true },
|
|
21
|
+
{ "id": "release", "kind": "rect", "x": 770, "y": 486, "width": 176, "height": 60, "label": "Release Control", "type_label": "CONFIG", "fill": "#ffffff", "stroke": "#dce5e3", "flat": true }
|
|
22
|
+
],
|
|
23
|
+
"arrows": [
|
|
24
|
+
{ "source": "app", "target": "sdk", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
25
|
+
{ "source": "sdk", "target": "prompt", "source_port": "bottom", "target_port": "top", "flow": "read", "label": "prepare", "route_points": [[370,232], [236,232], [236,300]] },
|
|
26
|
+
{ "source": "sdk", "target": "model", "source_port": "bottom", "target_port": "top", "flow": "control", "corridor_x": [520] },
|
|
27
|
+
{ "source": "model", "target": "tools", "source_port": "right", "target_port": "left", "flow": "read", "label": "tool use" },
|
|
28
|
+
{ "source": "model", "target": "formatter", "source_port": "bottom", "target_port": "top", "flow": "control", "corridor_x": [278] },
|
|
29
|
+
{ "source": "model", "target": "obs", "source_port": "bottom", "target_port": "top", "flow": "feedback", "dashed": true },
|
|
30
|
+
{ "source": "obs", "target": "release", "source_port": "right", "target_port": "left", "flow": "control" }
|
|
31
|
+
],
|
|
32
|
+
"legend": [
|
|
33
|
+
{ "flow": "control", "label": "Primary integration path" },
|
|
34
|
+
{ "flow": "read", "label": "Prompt / tool context" },
|
|
35
|
+
{ "flow": "feedback", "label": "Operational feedback" }
|
|
36
|
+
],
|
|
37
|
+
"legend_position": "bottom-left",
|
|
38
|
+
"legend_y": 612,
|
|
39
|
+
"footer": ""
|
|
40
|
+
}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template_type": "memory",
|
|
3
|
+
"style": 1,
|
|
4
|
+
"width": 1080,
|
|
5
|
+
"height": 760,
|
|
6
|
+
"title": "Mem0 Memory Architecture",
|
|
7
|
+
"subtitle": "Personalized AI Memory Layer for LLM Applications",
|
|
8
|
+
"containers": [
|
|
9
|
+
{
|
|
10
|
+
"x": 30,
|
|
11
|
+
"y": 84,
|
|
12
|
+
"width": 1020,
|
|
13
|
+
"height": 74,
|
|
14
|
+
"label": "Input Layer",
|
|
15
|
+
"subtitle": "",
|
|
16
|
+
"stroke": "#dbeafe"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"x": 30,
|
|
20
|
+
"y": 186,
|
|
21
|
+
"width": 1020,
|
|
22
|
+
"height": 118,
|
|
23
|
+
"label": "Memory Manager (mem0 Core)",
|
|
24
|
+
"subtitle": "",
|
|
25
|
+
"stroke": "#e9d5ff",
|
|
26
|
+
"fill": "#fdf4ff"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"x": 30,
|
|
30
|
+
"y": 332,
|
|
31
|
+
"width": 1020,
|
|
32
|
+
"height": 204,
|
|
33
|
+
"label": "Storage Layer",
|
|
34
|
+
"subtitle": "",
|
|
35
|
+
"stroke": "#bbf7d0",
|
|
36
|
+
"fill": "#f0fdf4"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"x": 30,
|
|
40
|
+
"y": 564,
|
|
41
|
+
"width": 1020,
|
|
42
|
+
"height": 118,
|
|
43
|
+
"label": "Output / Retrieval",
|
|
44
|
+
"subtitle": "",
|
|
45
|
+
"stroke": "#fed7aa",
|
|
46
|
+
"fill": "#fff7ed"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"nodes": [
|
|
50
|
+
{
|
|
51
|
+
"id": "user",
|
|
52
|
+
"kind": "user_avatar",
|
|
53
|
+
"x": 54,
|
|
54
|
+
"y": 108,
|
|
55
|
+
"width": 90,
|
|
56
|
+
"height": 46,
|
|
57
|
+
"label": "User",
|
|
58
|
+
"fill": "#eff6ff",
|
|
59
|
+
"stroke": "#2563eb",
|
|
60
|
+
"icon_fill": "#dbeafe",
|
|
61
|
+
"icon_stroke": "#2563eb",
|
|
62
|
+
"flat": true
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "app",
|
|
66
|
+
"kind": "rect",
|
|
67
|
+
"x": 190,
|
|
68
|
+
"y": 102,
|
|
69
|
+
"width": 160,
|
|
70
|
+
"height": 58,
|
|
71
|
+
"label": "AI App / Agent",
|
|
72
|
+
"type_label": "APPLICATION",
|
|
73
|
+
"fill": "#ffffff",
|
|
74
|
+
"stroke": "#d1d5db"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "llm",
|
|
78
|
+
"kind": "double_rect",
|
|
79
|
+
"x": 418,
|
|
80
|
+
"y": 102,
|
|
81
|
+
"width": 136,
|
|
82
|
+
"height": 58,
|
|
83
|
+
"label": "LLM",
|
|
84
|
+
"type_label": "MODEL",
|
|
85
|
+
"fill": "#f5f3ff",
|
|
86
|
+
"stroke": "#8b5cf6",
|
|
87
|
+
"sublabel": "retrieve()"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "client",
|
|
91
|
+
"kind": "rect",
|
|
92
|
+
"x": 620,
|
|
93
|
+
"y": 102,
|
|
94
|
+
"width": 158,
|
|
95
|
+
"height": 58,
|
|
96
|
+
"label": "mem0 Client",
|
|
97
|
+
"type_label": "SDK",
|
|
98
|
+
"fill": "#eef2ff",
|
|
99
|
+
"stroke": "#6366f1"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "extractor",
|
|
103
|
+
"kind": "rect",
|
|
104
|
+
"x": 78,
|
|
105
|
+
"y": 226,
|
|
106
|
+
"width": 158,
|
|
107
|
+
"height": 66,
|
|
108
|
+
"label": "Fact Extractor",
|
|
109
|
+
"type_label": "PROCESSOR",
|
|
110
|
+
"fill": "#ffffff",
|
|
111
|
+
"stroke": "#d1d5db"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "manager",
|
|
115
|
+
"kind": "double_rect",
|
|
116
|
+
"x": 370,
|
|
117
|
+
"y": 222,
|
|
118
|
+
"width": 340,
|
|
119
|
+
"height": 74,
|
|
120
|
+
"label": "Memory Manager",
|
|
121
|
+
"fill": "#ffffff",
|
|
122
|
+
"stroke": "#8b5cf6",
|
|
123
|
+
"tags": [
|
|
124
|
+
{ "label": "store()", "fill": "#faf5ff", "stroke": "#ddd6fe", "text_fill": "#7c3aed" },
|
|
125
|
+
{ "label": "retrieve()", "fill": "#faf5ff", "stroke": "#ddd6fe", "text_fill": "#7c3aed" },
|
|
126
|
+
{ "label": "update()", "fill": "#faf5ff", "stroke": "#ddd6fe", "text_fill": "#7c3aed" }
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "resolver",
|
|
131
|
+
"kind": "rect",
|
|
132
|
+
"x": 812,
|
|
133
|
+
"y": 226,
|
|
134
|
+
"width": 172,
|
|
135
|
+
"height": 66,
|
|
136
|
+
"label": "Conflict Resolver",
|
|
137
|
+
"type_label": "RESOLVER",
|
|
138
|
+
"fill": "#ffffff",
|
|
139
|
+
"stroke": "#d1d5db"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "vector",
|
|
143
|
+
"kind": "cylinder",
|
|
144
|
+
"x": 82,
|
|
145
|
+
"y": 390,
|
|
146
|
+
"width": 136,
|
|
147
|
+
"height": 106,
|
|
148
|
+
"label": "Vector Store",
|
|
149
|
+
"sublabel": "embeddings",
|
|
150
|
+
"fill": "#ecfdf5",
|
|
151
|
+
"stroke": "#10b981"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "graph",
|
|
155
|
+
"kind": "circle_cluster",
|
|
156
|
+
"x": 306,
|
|
157
|
+
"y": 380,
|
|
158
|
+
"width": 176,
|
|
159
|
+
"height": 126,
|
|
160
|
+
"label": "Graph DB",
|
|
161
|
+
"sublabel": "relations",
|
|
162
|
+
"fill": "#dbeafe",
|
|
163
|
+
"stroke": "#3b82f6"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "kv",
|
|
167
|
+
"kind": "rect",
|
|
168
|
+
"x": 560,
|
|
169
|
+
"y": 390,
|
|
170
|
+
"width": 162,
|
|
171
|
+
"height": 96,
|
|
172
|
+
"label": "Key-Value Store",
|
|
173
|
+
"fill": "#fff7ed",
|
|
174
|
+
"stroke": "#f97316",
|
|
175
|
+
"type_label": "WORKING MEMORY",
|
|
176
|
+
"sublabel": "user_123 likes Python"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"id": "history",
|
|
180
|
+
"kind": "document",
|
|
181
|
+
"x": 790,
|
|
182
|
+
"y": 390,
|
|
183
|
+
"width": 136,
|
|
184
|
+
"height": 96,
|
|
185
|
+
"label": "History Store",
|
|
186
|
+
"fill": "#faf5ff",
|
|
187
|
+
"stroke": "#8b5cf6",
|
|
188
|
+
"line_stroke": "#c4b5fd",
|
|
189
|
+
"sublabel": "Episodic Memory"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "builder",
|
|
193
|
+
"kind": "rect",
|
|
194
|
+
"x": 224,
|
|
195
|
+
"y": 608,
|
|
196
|
+
"width": 180,
|
|
197
|
+
"height": 58,
|
|
198
|
+
"label": "Context Builder",
|
|
199
|
+
"type_label": "ASSEMBLER",
|
|
200
|
+
"fill": "#ffffff",
|
|
201
|
+
"stroke": "#d1d5db"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"id": "ranker",
|
|
205
|
+
"kind": "rect",
|
|
206
|
+
"x": 484,
|
|
207
|
+
"y": 608,
|
|
208
|
+
"width": 180,
|
|
209
|
+
"height": 58,
|
|
210
|
+
"label": "Ranked Results",
|
|
211
|
+
"type_label": "RERANKER",
|
|
212
|
+
"fill": "#ffffff",
|
|
213
|
+
"stroke": "#d1d5db"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"id": "output",
|
|
217
|
+
"kind": "rect",
|
|
218
|
+
"x": 744,
|
|
219
|
+
"y": 608,
|
|
220
|
+
"width": 204,
|
|
221
|
+
"height": 58,
|
|
222
|
+
"label": "Personalized Response",
|
|
223
|
+
"type_label": "OUTPUT",
|
|
224
|
+
"fill": "#faf5ff",
|
|
225
|
+
"stroke": "#8b5cf6"
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"arrows": [
|
|
229
|
+
{ "source": "user", "target": "app", "source_port": "right", "target_port": "left", "flow": "read" },
|
|
230
|
+
{ "source": "app", "target": "llm", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
231
|
+
{ "source": "llm", "target": "client", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
232
|
+
{
|
|
233
|
+
"source": "llm",
|
|
234
|
+
"target": "manager",
|
|
235
|
+
"source_port": "bottom",
|
|
236
|
+
"target_port": "top",
|
|
237
|
+
"flow": "control",
|
|
238
|
+
"label": "retrieve()",
|
|
239
|
+
"label_dx": 12,
|
|
240
|
+
"label_dy": -10
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"source": "client",
|
|
244
|
+
"target": "manager",
|
|
245
|
+
"source_port": "bottom",
|
|
246
|
+
"target_port": "top",
|
|
247
|
+
"flow": "control",
|
|
248
|
+
"label": "store()",
|
|
249
|
+
"corridor_x": [760],
|
|
250
|
+
"label_dx": 18,
|
|
251
|
+
"label_dy": -12
|
|
252
|
+
},
|
|
253
|
+
{ "source": "extractor", "target": "manager", "source_port": "right", "target_port": "left", "flow": "data", "label": "facts" },
|
|
254
|
+
{ "source": "resolver", "target": "manager", "source_port": "left", "target_port": "right", "flow": "data", "label": "resolved" },
|
|
255
|
+
{
|
|
256
|
+
"source": "manager",
|
|
257
|
+
"target": "vector",
|
|
258
|
+
"source_port": "bottom",
|
|
259
|
+
"target_port": "top",
|
|
260
|
+
"flow": "write",
|
|
261
|
+
"dashed": true,
|
|
262
|
+
"label": "write",
|
|
263
|
+
"route_points": [[370, 332], [150, 332]]
|
|
264
|
+
},
|
|
265
|
+
{ "source": "manager", "target": "graph", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true, "route_points": [[470, 332], [394, 332]] },
|
|
266
|
+
{ "source": "manager", "target": "kv", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true, "route_points": [[610, 332], [641, 332]] },
|
|
267
|
+
{ "source": "manager", "target": "history", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true, "route_points": [[725, 332], [858, 332]] },
|
|
268
|
+
{ "source": "vector", "target": "builder", "source_port": "bottom", "target_port": "top", "flow": "read", "label": "read" },
|
|
269
|
+
{ "source": "graph", "target": "builder", "source_port": "bottom", "target_port": "top", "flow": "read" },
|
|
270
|
+
{ "source": "kv", "target": "ranker", "source_port": "bottom", "target_port": "top", "flow": "read" },
|
|
271
|
+
{ "source": "history", "target": "ranker", "source_port": "bottom", "target_port": "top", "flow": "read" },
|
|
272
|
+
{ "source": "builder", "target": "ranker", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
273
|
+
{ "source": "ranker", "target": "output", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
274
|
+
{
|
|
275
|
+
"source": "client",
|
|
276
|
+
"target": "output",
|
|
277
|
+
"source_port": "right",
|
|
278
|
+
"target_port": "right",
|
|
279
|
+
"flow": "control",
|
|
280
|
+
"dashed": true,
|
|
281
|
+
"route_points": [[1060, 131], [1060, 637]],
|
|
282
|
+
"corridor_x": [970],
|
|
283
|
+
"label": "context",
|
|
284
|
+
"label_dx": 28,
|
|
285
|
+
"label_dy": -14
|
|
286
|
+
}
|
|
287
|
+
],
|
|
288
|
+
"legend": [
|
|
289
|
+
{ "flow": "control", "label": "API / control flow" },
|
|
290
|
+
{ "flow": "write", "label": "Memory write" },
|
|
291
|
+
{ "flow": "read", "label": "Memory read" },
|
|
292
|
+
{ "flow": "data", "label": "Data transform" }
|
|
293
|
+
],
|
|
294
|
+
"legend_position": "bottom-left",
|
|
295
|
+
"legend_y": 666,
|
|
296
|
+
"footer": ""
|
|
297
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template_type": "architecture",
|
|
3
|
+
"style": 3,
|
|
4
|
+
"width": 1120,
|
|
5
|
+
"height": 760,
|
|
6
|
+
"title": "Microservices Architecture",
|
|
7
|
+
"subtitle": "Blueprint style with tiered zones, service groups, and deployment pathways",
|
|
8
|
+
"blueprint_title_block": {
|
|
9
|
+
"title": "AI MICROSERVICES",
|
|
10
|
+
"subtitle": "SYSTEM ARCHITECTURE",
|
|
11
|
+
"center_caption": "BLUEPRINT STYLE 3",
|
|
12
|
+
"left_caption": "REV: 1.0",
|
|
13
|
+
"right_caption": "DWG: ARCH-001",
|
|
14
|
+
"width": 220,
|
|
15
|
+
"height": 76,
|
|
16
|
+
"x": 868,
|
|
17
|
+
"y": 664
|
|
18
|
+
},
|
|
19
|
+
"containers": [
|
|
20
|
+
{ "x": 40, "y": 96, "width": 1040, "height": 94, "label": "EDGE", "header_prefix": "01", "subtitle": "", "stroke": "#0ea5e9", "fill": "none" },
|
|
21
|
+
{ "x": 40, "y": 224, "width": 1040, "height": 152, "label": "APPLICATION SERVICES", "header_prefix": "02", "subtitle": "", "stroke": "#0ea5e9", "fill": "none" },
|
|
22
|
+
{ "x": 40, "y": 410, "width": 1040, "height": 150, "label": "DATA + EVENT INFRA", "header_prefix": "03", "subtitle": "", "stroke": "#0ea5e9", "fill": "none" },
|
|
23
|
+
{ "x": 40, "y": 590, "width": 1040, "height": 100, "label": "OBSERVABILITY", "header_prefix": "04", "subtitle": "", "stroke": "#0ea5e9", "fill": "none" }
|
|
24
|
+
],
|
|
25
|
+
"nodes": [
|
|
26
|
+
{ "id": "clients", "kind": "rect", "x": 80, "y": 120, "width": 160, "height": 54, "label": "Client Apps", "type_label": "TRAFFIC", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
27
|
+
{ "id": "gateway", "kind": "double_rect", "x": 314, "y": 116, "width": 184, "height": 62, "label": "API Gateway", "type_label": "EDGE", "fill": "#0b3b5e", "stroke": "#67e8f9" },
|
|
28
|
+
{ "id": "auth", "kind": "rect", "x": 572, "y": 120, "width": 164, "height": 54, "label": "Auth / Policy", "type_label": "GUARD", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
29
|
+
{ "id": "svc-a", "kind": "rect", "x": 110, "y": 270, "width": 176, "height": 60, "label": "Order Service", "type_label": "SERVICE", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
30
|
+
{ "id": "svc-b", "kind": "rect", "x": 356, "y": 270, "width": 176, "height": 60, "label": "Catalog Service", "type_label": "SERVICE", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
31
|
+
{ "id": "svc-c", "kind": "rect", "x": 602, "y": 270, "width": 176, "height": 60, "label": "Billing Service", "type_label": "SERVICE", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
32
|
+
{ "id": "bus", "kind": "double_rect", "x": 848, "y": 262, "width": 166, "height": 76, "label": "Event Router", "type_label": "STREAM", "fill": "#0b3b5e", "stroke": "#fde047" },
|
|
33
|
+
{ "id": "pg", "kind": "cylinder", "x": 116, "y": 446, "width": 144, "height": 90, "label": "Postgres", "sublabel": "orders", "fill": "#0b3b5e", "stroke": "#67e8f9" },
|
|
34
|
+
{ "id": "cache", "kind": "rect", "x": 370, "y": 456, "width": 144, "height": 70, "label": "Redis Cache", "type_label": "LOW LATENCY", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true },
|
|
35
|
+
{ "id": "warehouse", "kind": "cylinder", "x": 624, "y": 446, "width": 154, "height": 90, "label": "Warehouse", "sublabel": "analytics", "fill": "#0b3b5e", "stroke": "#67e8f9" },
|
|
36
|
+
{ "id": "metrics", "kind": "rect", "x": 94, "y": 620, "width": 188, "height": 44, "label": "Metrics / Traces", "type_label": "OPS", "fill": "#0b3b5e", "stroke": "#67e8f9", "flat": true }
|
|
37
|
+
],
|
|
38
|
+
"arrows": [
|
|
39
|
+
{ "source": "clients", "target": "gateway", "source_port": "right", "target_port": "left", "flow": "read" },
|
|
40
|
+
{ "source": "gateway", "target": "auth", "source_port": "right", "target_port": "left", "flow": "control" },
|
|
41
|
+
{ "source": "gateway", "target": "svc-a", "source_port": "bottom", "target_port": "top", "flow": "read", "label": "route" },
|
|
42
|
+
{ "source": "gateway", "target": "svc-b", "source_port": "bottom", "target_port": "top", "flow": "read", "corridor_x": [444] },
|
|
43
|
+
{ "source": "gateway", "target": "svc-c", "source_port": "bottom", "target_port": "top", "flow": "read", "corridor_x": [688] },
|
|
44
|
+
{ "source": "svc-a", "target": "pg", "source_port": "bottom", "target_port": "top", "flow": "read" },
|
|
45
|
+
{ "source": "svc-b", "target": "cache", "source_port": "bottom", "target_port": "top", "flow": "read" },
|
|
46
|
+
{ "source": "svc-c", "target": "warehouse", "source_port": "bottom", "target_port": "top", "flow": "data" },
|
|
47
|
+
{ "source": "svc-a", "target": "bus", "source_port": "right", "target_port": "left", "flow": "feedback", "dashed": true, "route_points": [[286,300], [286,246], [818,246], [818,300]] },
|
|
48
|
+
{ "source": "svc-b", "target": "bus", "source_port": "right", "target_port": "left", "flow": "feedback", "dashed": true, "route_points": [[532,300], [532,246], [824,246], [824,300]] },
|
|
49
|
+
{ "source": "svc-c", "target": "bus", "source_port": "right", "target_port": "left", "flow": "feedback", "dashed": true, "route_points": [[778,300], [812,300]] },
|
|
50
|
+
{ "source": "bus", "target": "metrics", "source_port": "bottom", "target_port": "top", "flow": "control", "label": "events", "route_points": [[942, 620], [188, 620]], "label_dx": 8 }
|
|
51
|
+
],
|
|
52
|
+
"legend": [
|
|
53
|
+
{ "flow": "read", "label": "Primary request flow" },
|
|
54
|
+
{ "flow": "control", "label": "Control routing" },
|
|
55
|
+
{ "flow": "data", "label": "Analytics path" },
|
|
56
|
+
{ "flow": "feedback", "label": "Event stream" }
|
|
57
|
+
],
|
|
58
|
+
"legend_position": "bottom-right",
|
|
59
|
+
"legend_box": true,
|
|
60
|
+
"legend_box_fill": "#0b3552",
|
|
61
|
+
"legend_x": 760,
|
|
62
|
+
"legend_y": 572,
|
|
63
|
+
"footer": ""
|
|
64
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template_type": "agent",
|
|
3
|
+
"style": 5,
|
|
4
|
+
"width": 1160,
|
|
5
|
+
"height": 720,
|
|
6
|
+
"title": "Multi-Agent Collaboration",
|
|
7
|
+
"subtitle": "Glassmorphism style with coordinator, specialists, shared memory, and delivery loop",
|
|
8
|
+
"containers": [
|
|
9
|
+
{ "x": 42, "y": 108, "width": 1076, "height": 150, "label": "MISSION CONTROL", "subtitle": "", "stroke": "rgba(255,255,255,0.2)", "fill": "rgba(255,255,255,0.05)" },
|
|
10
|
+
{ "x": 42, "y": 290, "width": 1076, "height": 204, "label": "SPECIALIST AGENTS", "subtitle": "", "stroke": "rgba(255,255,255,0.2)", "fill": "rgba(255,255,255,0.05)" },
|
|
11
|
+
{ "x": 42, "y": 526, "width": 1076, "height": 138, "label": "SYNTHESIS", "subtitle": "", "stroke": "rgba(255,255,255,0.2)", "fill": "rgba(255,255,255,0.05)" }
|
|
12
|
+
],
|
|
13
|
+
"nodes": [
|
|
14
|
+
{ "id": "request", "kind": "speech", "x": 78, "y": 142, "width": 148, "height": 66, "label": "User brief", "fill": "rgba(255,255,255,0.12)", "stroke": "rgba(255,255,255,0.35)", "flat": true },
|
|
15
|
+
{ "id": "coord", "kind": "double_rect", "x": 416, "y": 136, "width": 220, "height": 78, "label": "Coordinator Agent", "type_label": "ORCHESTRATOR", "fill": "rgba(255,255,255,0.12)", "stroke": "#c084fc" },
|
|
16
|
+
{ "id": "research", "kind": "rect", "x": 112, "y": 344, "width": 206, "height": 74, "label": "Research Agent", "type_label": "SPECIALIST", "fill": "rgba(255,255,255,0.12)", "stroke": "#60a5fa" },
|
|
17
|
+
{ "id": "coding", "kind": "terminal", "x": 478, "y": 332, "width": 198, "height": 108, "label": "Coding Agent", "fill": "#0f172a", "stroke": "rgba(255,255,255,0.24)", "header_fill": "rgba(255,255,255,0.12)" },
|
|
18
|
+
{ "id": "review", "kind": "rect", "x": 826, "y": 344, "width": 206, "height": 74, "label": "Review Agent", "type_label": "SPECIALIST", "fill": "rgba(255,255,255,0.12)", "stroke": "#34d399" },
|
|
19
|
+
{ "id": "memory", "kind": "cylinder", "x": 158, "y": 560, "width": 168, "height": 92, "label": "Shared Memory", "sublabel": "facts + plans", "fill": "rgba(255,255,255,0.08)", "stroke": "#34d399" },
|
|
20
|
+
{ "id": "merge", "kind": "double_rect", "x": 472, "y": 566, "width": 210, "height": 74, "label": "Synthesis Engine", "type_label": "MERGE", "fill": "rgba(255,255,255,0.12)", "stroke": "#c084fc" },
|
|
21
|
+
{ "id": "response", "kind": "speech", "x": 884, "y": 568, "width": 166, "height": 70, "label": "Final response", "fill": "rgba(255,255,255,0.12)", "stroke": "#f59e0b", "flat": true }
|
|
22
|
+
],
|
|
23
|
+
"arrows": [
|
|
24
|
+
{ "source": "request", "target": "coord", "source_port": "right", "target_port": "left", "flow": "read" },
|
|
25
|
+
{ "source": "coord", "target": "research", "source_port": "bottom", "target_port": "top", "flow": "control", "label": "delegate" },
|
|
26
|
+
{ "source": "coord", "target": "coding", "source_port": "bottom", "target_port": "top", "flow": "control", "corridor_x": [590] },
|
|
27
|
+
{ "source": "coord", "target": "review", "source_port": "bottom", "target_port": "top", "flow": "control", "corridor_x": [910] },
|
|
28
|
+
{ "source": "research", "target": "memory", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true },
|
|
29
|
+
{ "source": "coding", "target": "memory", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true, "corridor_x": [560] },
|
|
30
|
+
{ "source": "review", "target": "memory", "source_port": "bottom", "target_port": "top", "flow": "write", "dashed": true, "corridor_x": [930], "route_points": [[929, 470], [242, 470]] },
|
|
31
|
+
{ "source": "memory", "target": "merge", "source_port": "right", "target_port": "left", "flow": "read", "label": "shared context" },
|
|
32
|
+
{ "source": "merge", "target": "response", "source_port": "right", "target_port": "left", "flow": "feedback" }
|
|
33
|
+
],
|
|
34
|
+
"legend": [
|
|
35
|
+
{ "flow": "read", "label": "Input / retrieval" },
|
|
36
|
+
{ "flow": "control", "label": "Delegation" },
|
|
37
|
+
{ "flow": "write", "label": "Shared memory write" },
|
|
38
|
+
{ "flow": "feedback", "label": "Synthesis output" }
|
|
39
|
+
],
|
|
40
|
+
"legend_position": "bottom-left",
|
|
41
|
+
"legend_y": 604,
|
|
42
|
+
"legend_box": true,
|
|
43
|
+
"legend_box_fill": "rgba(15,23,42,0.68)",
|
|
44
|
+
"footer": ""
|
|
45
|
+
}
|