@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.
Files changed (68) hide show
  1. package/README.md +81 -862
  2. package/bin/install.js +4 -3
  3. package/package.json +2 -3
  4. package/src/claude/agents/code-auditor.md +25 -1
  5. package/src/claude/agents/god-developer.md +1 -1
  6. package/src/claude/agents/spec-maker.md +25 -3
  7. package/src/claude/agents/test-runner.md +22 -3
  8. package/src/claude/hooks/spec-state.cjs +24 -5
  9. package/src/claude/migration-manifest.json +1 -1
  10. package/src/claude/rules/manage-docs.md +5 -5
  11. package/src/claude/rules/state-sync.md +11 -8
  12. package/src/claude/skills/code-review/references/spec-compliance-review.md +8 -1
  13. package/src/claude/skills/develop/SKILL.md +32 -4
  14. package/src/claude/skills/develop/references/quality-gate.md +23 -13
  15. package/src/claude/skills/generate-graph/LICENSE +21 -0
  16. package/src/claude/skills/generate-graph/README.md +523 -0
  17. package/src/claude/skills/generate-graph/SKILL.md +427 -0
  18. package/src/claude/skills/generate-graph/agentloop-core.svg +101 -0
  19. package/src/claude/skills/generate-graph/agents/openai.yaml +4 -0
  20. package/src/claude/skills/generate-graph/assets/samples/sample-style1-flat.png +0 -0
  21. package/src/claude/skills/generate-graph/assets/samples/sample-style2-dark.png +0 -0
  22. package/src/claude/skills/generate-graph/assets/samples/sample-style3-blueprint.png +0 -0
  23. package/src/claude/skills/generate-graph/assets/samples/sample-style4-notion.png +0 -0
  24. package/src/claude/skills/generate-graph/assets/samples/sample-style5-glass.png +0 -0
  25. package/src/claude/skills/generate-graph/assets/samples/sample-style6-claude.png +0 -0
  26. package/src/claude/skills/generate-graph/assets/samples/sample-style7-openai.png +0 -0
  27. package/src/claude/skills/generate-graph/fixtures/agent-memory-types-style4.json +181 -0
  28. package/src/claude/skills/generate-graph/fixtures/api-flow-style7.json +40 -0
  29. package/src/claude/skills/generate-graph/fixtures/mem0-style1.json +297 -0
  30. package/src/claude/skills/generate-graph/fixtures/microservices-style3.json +64 -0
  31. package/src/claude/skills/generate-graph/fixtures/multi-agent-style5.json +45 -0
  32. package/src/claude/skills/generate-graph/fixtures/system-architecture-style6.json +48 -0
  33. package/src/claude/skills/generate-graph/fixtures/tool-call-style2.json +182 -0
  34. package/src/claude/skills/generate-graph/package.json +42 -0
  35. package/src/claude/skills/generate-graph/references/icons.md +281 -0
  36. package/src/claude/skills/generate-graph/references/style-1-flat-icon.md +108 -0
  37. package/src/claude/skills/generate-graph/references/style-2-dark-terminal.md +107 -0
  38. package/src/claude/skills/generate-graph/references/style-3-blueprint.md +113 -0
  39. package/src/claude/skills/generate-graph/references/style-4-notion-clean.md +94 -0
  40. package/src/claude/skills/generate-graph/references/style-5-glassmorphism.md +125 -0
  41. package/src/claude/skills/generate-graph/references/style-6-claude-official.md +209 -0
  42. package/src/claude/skills/generate-graph/references/style-7-openai.md +215 -0
  43. package/src/claude/skills/generate-graph/references/style-diagram-matrix.md +135 -0
  44. package/src/claude/skills/generate-graph/references/svg-layout-best-practices.md +100 -0
  45. package/src/claude/skills/generate-graph/scripts/generate-diagram.sh +157 -0
  46. package/src/claude/skills/generate-graph/scripts/generate-from-template.py +1556 -0
  47. package/src/claude/skills/generate-graph/scripts/test-all-styles.sh +135 -0
  48. package/src/claude/skills/generate-graph/scripts/validate-svg.sh +292 -0
  49. package/src/claude/skills/generate-graph/templates/agent-architecture.svg +28 -0
  50. package/src/claude/skills/generate-graph/templates/architecture.svg +23 -0
  51. package/src/claude/skills/generate-graph/templates/comparison-matrix.svg +14 -0
  52. package/src/claude/skills/generate-graph/templates/data-flow.svg +28 -0
  53. package/src/claude/skills/generate-graph/templates/er-diagram.svg +21 -0
  54. package/src/claude/skills/generate-graph/templates/flowchart.svg +21 -0
  55. package/src/claude/skills/generate-graph/templates/sequence.svg +20 -0
  56. package/src/claude/skills/generate-graph/templates/state-machine.svg +20 -0
  57. package/src/claude/skills/generate-graph/templates/timeline.svg +19 -0
  58. package/src/claude/skills/generate-graph/templates/use-case.svg +21 -0
  59. package/src/claude/skills/specs/SKILL.md +67 -10
  60. package/src/claude/skills/specs/references/review.md +32 -3
  61. package/src/claude/skills/specs/references/task-hydration.md +14 -12
  62. package/src/claude/skills/specs/rules/tasks-generation.md +21 -0
  63. package/src/claude/skills/specs/templates/design.md +14 -0
  64. package/src/claude/skills/specs/templates/init.json +7 -2
  65. package/src/claude/skills/specs/templates/requirements.md +21 -8
  66. package/src/claude/skills/specs/templates/task.md +16 -3
  67. package/src/claude/skills/sync/SKILL.md +11 -10
  68. 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
+ }