@haposoft/cafekit 0.13.3 → 0.14.0

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 (114) hide show
  1. package/README.md +1 -2
  2. package/bin/lib/i18n.js +2 -2
  3. package/bin/lib/manifest.js +15 -0
  4. package/bin/lib/opencode-install.js +0 -14
  5. package/bin/phases/claude-runtime.js +4 -1
  6. package/bin/phases/claude-settings.js +38 -7
  7. package/package.json +1 -1
  8. package/src/claude/agents/ui-ux-designer.md +4 -4
  9. package/src/claude/hooks/__tests__/privacy-block.test.js +79 -0
  10. package/src/claude/hooks/__tests__/session-writeenv.test.js +68 -0
  11. package/src/claude/hooks/__tests__/spec-gate.test.js +270 -0
  12. package/src/claude/hooks/privacy-block.cjs +22 -2
  13. package/src/claude/hooks/session.cjs +5 -1
  14. package/src/claude/hooks/spec-gate.cjs +173 -0
  15. package/src/claude/hooks/spec-state.cjs +10 -17
  16. package/src/claude/hooks/task-scaffold-guard.cjs +4 -2
  17. package/src/claude/migration-manifest.json +5 -4
  18. package/src/claude/rules/skill-domain-routing.md +2 -3
  19. package/src/claude/rules/skill-workflow-routing.md +2 -3
  20. package/src/claude/rules/state-sync.md +4 -0
  21. package/src/claude/runtime.json +4 -0
  22. package/src/claude/scripts/validate-docs.cjs +4 -7
  23. package/src/claude/scripts/validate-spec-output.cjs +29 -9
  24. package/src/claude/settings/settings.json +4 -0
  25. package/src/claude/skills/ai-multimodal/.env.example +11 -13
  26. package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
  27. package/src/claude/skills/ai-multimodal/references/audio-processing.md +25 -27
  28. package/src/claude/skills/ai-multimodal/references/video-analysis.md +23 -27
  29. package/src/claude/skills/ai-multimodal/references/vision-understanding.md +26 -26
  30. package/src/claude/skills/ai-multimodal/scripts/check_setup.py +1 -1
  31. package/src/claude/skills/ai-multimodal/scripts/gemini_batch_process.py +7 -9
  32. package/src/claude/skills/brainstorm/SKILL.md +1 -2
  33. package/src/claude/skills/docx/SKILL.md +1 -1
  34. package/src/claude/skills/frontend-design/SKILL.md +1 -1
  35. package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +4 -4
  36. package/src/claude/skills/frontend-design/references/analysis-techniques.md +3 -3
  37. package/src/claude/skills/frontend-design/references/asset-generation.md +2 -2
  38. package/src/claude/skills/frontend-design/references/design-extraction-overview.md +4 -4
  39. package/src/claude/skills/frontend-design/references/extraction-best-practices.md +3 -3
  40. package/src/claude/skills/frontend-design/references/technical-accessibility.md +1 -1
  41. package/src/claude/skills/frontend-design/references/technical-optimization.md +1 -1
  42. package/src/claude/skills/frontend-design/references/technical-overview.md +2 -2
  43. package/src/claude/skills/frontend-design/references/technical-workflows.md +6 -6
  44. package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +3 -3
  45. package/src/claude/skills/inspect/SKILL.md +3 -3
  46. package/src/claude/skills/inspect/references/external-gemini-inspection.md +9 -9
  47. package/src/claude/skills/pdf/SKILL.md +1 -1
  48. package/src/claude/skills/pptx/SKILL.md +1 -1
  49. package/src/claude/skills/specs/SKILL.md +1 -1
  50. package/src/claude/skills/xlsx/SKILL.md +1 -1
  51. package/src/opencode/AGENTS.md +1 -2
  52. package/src/opencode/plugins/session.ts +2 -2
  53. package/src/opencode/plugins/spec-state.ts +244 -0
  54. package/src/opencode/plugins/task-scaffold-guard.ts +161 -0
  55. package/src/claude/scripts/browser-tool.cjs +0 -138
  56. package/src/claude/skills/generate-graph/LICENSE +0 -21
  57. package/src/claude/skills/generate-graph/README.md +0 -523
  58. package/src/claude/skills/generate-graph/SKILL.md +0 -429
  59. package/src/claude/skills/generate-graph/agentloop-core.svg +0 -101
  60. package/src/claude/skills/generate-graph/agents/openai.yaml +0 -4
  61. package/src/claude/skills/generate-graph/assets/samples/sample-style1-flat.png +0 -0
  62. package/src/claude/skills/generate-graph/assets/samples/sample-style2-dark.png +0 -0
  63. package/src/claude/skills/generate-graph/assets/samples/sample-style3-blueprint.png +0 -0
  64. package/src/claude/skills/generate-graph/assets/samples/sample-style4-notion.png +0 -0
  65. package/src/claude/skills/generate-graph/assets/samples/sample-style5-glass.png +0 -0
  66. package/src/claude/skills/generate-graph/assets/samples/sample-style6-claude.png +0 -0
  67. package/src/claude/skills/generate-graph/assets/samples/sample-style7-openai.png +0 -0
  68. package/src/claude/skills/generate-graph/fixtures/agent-memory-types-style4.json +0 -181
  69. package/src/claude/skills/generate-graph/fixtures/api-flow-style7.json +0 -40
  70. package/src/claude/skills/generate-graph/fixtures/mem0-style1.json +0 -297
  71. package/src/claude/skills/generate-graph/fixtures/microservices-style3.json +0 -64
  72. package/src/claude/skills/generate-graph/fixtures/multi-agent-style5.json +0 -45
  73. package/src/claude/skills/generate-graph/fixtures/system-architecture-style6.json +0 -48
  74. package/src/claude/skills/generate-graph/fixtures/tool-call-style2.json +0 -182
  75. package/src/claude/skills/generate-graph/package.json +0 -42
  76. package/src/claude/skills/generate-graph/references/icons.md +0 -281
  77. package/src/claude/skills/generate-graph/references/style-1-flat-icon.md +0 -108
  78. package/src/claude/skills/generate-graph/references/style-2-dark-terminal.md +0 -107
  79. package/src/claude/skills/generate-graph/references/style-3-blueprint.md +0 -113
  80. package/src/claude/skills/generate-graph/references/style-4-notion-clean.md +0 -94
  81. package/src/claude/skills/generate-graph/references/style-5-glassmorphism.md +0 -125
  82. package/src/claude/skills/generate-graph/references/style-6-claude-official.md +0 -209
  83. package/src/claude/skills/generate-graph/references/style-7-openai.md +0 -215
  84. package/src/claude/skills/generate-graph/references/style-diagram-matrix.md +0 -135
  85. package/src/claude/skills/generate-graph/references/svg-layout-best-practices.md +0 -100
  86. package/src/claude/skills/generate-graph/scripts/generate-diagram.sh +0 -157
  87. package/src/claude/skills/generate-graph/scripts/generate-from-template.py +0 -1556
  88. package/src/claude/skills/generate-graph/scripts/test-all-styles.sh +0 -135
  89. package/src/claude/skills/generate-graph/scripts/validate-svg.sh +0 -292
  90. package/src/claude/skills/generate-graph/templates/agent-architecture.svg +0 -28
  91. package/src/claude/skills/generate-graph/templates/architecture.svg +0 -23
  92. package/src/claude/skills/generate-graph/templates/comparison-matrix.svg +0 -14
  93. package/src/claude/skills/generate-graph/templates/data-flow.svg +0 -28
  94. package/src/claude/skills/generate-graph/templates/er-diagram.svg +0 -21
  95. package/src/claude/skills/generate-graph/templates/flowchart.svg +0 -21
  96. package/src/claude/skills/generate-graph/templates/sequence.svg +0 -20
  97. package/src/claude/skills/generate-graph/templates/state-machine.svg +0 -20
  98. package/src/claude/skills/generate-graph/templates/timeline.svg +0 -19
  99. package/src/claude/skills/generate-graph/templates/use-case.svg +0 -21
  100. package/src/claude/skills/impact-analysis/SKILL.md +0 -276
  101. package/src/claude/skills/impact-analysis/references/change-detection.md +0 -270
  102. package/src/claude/skills/impact-analysis/references/dependency-scouting.md +0 -338
  103. package/src/claude/skills/impact-analysis/references/edge-case-identification.md +0 -439
  104. package/src/claude/skills/impact-analysis/references/industry-techniques.md +0 -695
  105. package/src/claude/skills/impact-analysis/references/practical-techniques-guide.md +0 -753
  106. package/src/claude/skills/impact-analysis/references/project-detection.md +0 -704
  107. package/src/claude/skills/impact-analysis/references/react-native-customization.md +0 -508
  108. package/src/claude/skills/impact-analysis/references/report-template.md +0 -604
  109. package/src/claude/skills/impact-analysis/references/test-scenario-generation.md +0 -459
  110. package/src/claude/skills/impact-analysis/scripts/README.md +0 -476
  111. package/src/claude/skills/impact-analysis/scripts/ast-analyze.js +0 -403
  112. package/src/claude/skills/impact-analysis/scripts/calculate-risk.js +0 -475
  113. package/src/claude/skills/impact-analysis/scripts/find-dependencies.sh +0 -202
  114. package/src/claude/skills/impact-analysis/scripts/run-analysis.sh +0 -312
@@ -1,181 +0,0 @@
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
- }
@@ -1,40 +0,0 @@
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
- }
@@ -1,297 +0,0 @@
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
- }
@@ -1,64 +0,0 @@
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
- }
@@ -1,45 +0,0 @@
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
- }