agentme 0.30.1 → 0.30.3

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.
@@ -0,0 +1,155 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 560" font-family="'Segoe UI', system-ui, sans-serif">
2
+ <!-- Background -->
3
+ <rect width="900" height="560" fill="#f8f9fa" rx="8"/>
4
+
5
+ <!-- Title -->
6
+ <text x="450" y="38" text-anchor="middle" font-size="18" font-weight="700" fill="#1a1a2e">Pragmatic Hexagonal Architecture</text>
7
+ <text x="450" y="58" text-anchor="middle" font-size="12" fill="#6b7280">agentme-edr-126</text>
8
+
9
+ <!-- ── EXTERNAL (left) ── -->
10
+ <rect x="20" y="90" width="150" height="380" rx="10" fill="#e8eaf6" stroke="#7986cb" stroke-width="1.5"/>
11
+ <text x="95" y="115" text-anchor="middle" font-size="13" font-weight="700" fill="#3949ab">External</text>
12
+ <text x="95" y="132" text-anchor="middle" font-size="10" fill="#5c6bc0">(inbound triggers)</text>
13
+
14
+ <!-- Inbound external items -->
15
+ <rect x="35" y="145" width="120" height="30" rx="6" fill="#c5cae9" stroke="#7986cb" stroke-width="1"/>
16
+ <text x="95" y="165" text-anchor="middle" font-size="12" fill="#1a237e">HTTP Client</text>
17
+ <rect x="35" y="185" width="120" height="30" rx="6" fill="#c5cae9" stroke="#7986cb" stroke-width="1"/>
18
+ <text x="95" y="205" text-anchor="middle" font-size="12" fill="#1a237e">CLI User</text>
19
+ <rect x="35" y="225" width="120" height="30" rx="6" fill="#c5cae9" stroke="#7986cb" stroke-width="1"/>
20
+ <text x="95" y="245" text-anchor="middle" font-size="12" fill="#1a237e">Kafka Topic</text>
21
+ <rect x="35" y="265" width="120" height="30" rx="6" fill="#c5cae9" stroke="#7986cb" stroke-width="1"/>
22
+ <text x="95" y="285" text-anchor="middle" font-size="12" fill="#1a237e">gRPC Client</text>
23
+ <rect x="35" y="305" width="120" height="30" rx="6" fill="#c5cae9" stroke="#7986cb" stroke-width="1"/>
24
+ <text x="95" y="325" text-anchor="middle" font-size="12" fill="#1a237e">WebSocket</text>
25
+
26
+ <!-- ── EXTERNAL (right) ── -->
27
+ <rect x="730" y="90" width="150" height="380" rx="10" fill="#fce4ec" stroke="#e57373" stroke-width="1.5"/>
28
+ <text x="805" y="115" text-anchor="middle" font-size="13" font-weight="700" fill="#c62828">External</text>
29
+ <text x="805" y="132" text-anchor="middle" font-size="10" fill="#e53935">(outbound targets)</text>
30
+
31
+ <!-- Outbound external items -->
32
+ <rect x="745" y="145" width="120" height="30" rx="6" fill="#f8bbd9" stroke="#e57373" stroke-width="1"/>
33
+ <text x="805" y="165" text-anchor="middle" font-size="12" fill="#880e4f">PostgreSQL</text>
34
+ <rect x="745" y="185" width="120" height="30" rx="6" fill="#f8bbd9" stroke="#e57373" stroke-width="1"/>
35
+ <text x="805" y="205" text-anchor="middle" font-size="12" fill="#880e4f">Stripe API</text>
36
+ <rect x="745" y="225" width="120" height="30" rx="6" fill="#f8bbd9" stroke="#e57373" stroke-width="1"/>
37
+ <text x="805" y="245" text-anchor="middle" font-size="12" fill="#880e4f">S3 / Storage</text>
38
+ <rect x="745" y="265" width="120" height="30" rx="6" fill="#f8bbd9" stroke="#e57373" stroke-width="1"/>
39
+ <text x="805" y="285" text-anchor="middle" font-size="12" fill="#880e4f">Redis Cache</text>
40
+ <rect x="745" y="305" width="120" height="30" rx="6" fill="#f8bbd9" stroke="#e57373" stroke-width="1"/>
41
+ <text x="805" y="325" text-anchor="middle" font-size="12" fill="#880e4f">WhatsApp API</text>
42
+
43
+ <!-- ── ADAPTERS (inbound) ── -->
44
+ <rect x="195" y="90" width="155" height="380" rx="10" fill="#e8f5e9" stroke="#66bb6a" stroke-width="1.5"/>
45
+ <text x="272" y="115" text-anchor="middle" font-size="13" font-weight="700" fill="#2e7d32">Adapters</text>
46
+ <text x="272" y="132" text-anchor="middle" font-size="10" fill="#388e3c">(inbound)</text>
47
+
48
+ <!-- Inbound adapters -->
49
+ <rect x="210" y="145" width="125" height="30" rx="6" fill="#c8e6c9" stroke="#66bb6a" stroke-width="1"/>
50
+ <text x="272" y="165" text-anchor="middle" font-size="12" fill="#1b5e20">adapters/http/</text>
51
+ <rect x="210" y="185" width="125" height="30" rx="6" fill="#c8e6c9" stroke="#66bb6a" stroke-width="1"/>
52
+ <text x="272" y="205" text-anchor="middle" font-size="12" fill="#1b5e20">adapters/cli/</text>
53
+ <rect x="210" y="225" width="125" height="30" rx="6" fill="#c8e6c9" stroke="#66bb6a" stroke-width="1"/>
54
+ <text x="272" y="245" text-anchor="middle" font-size="12" fill="#1b5e20">adapters/kafka/</text>
55
+ <rect x="210" y="265" width="125" height="30" rx="6" fill="#c8e6c9" stroke="#66bb6a" stroke-width="1"/>
56
+ <text x="272" y="285" text-anchor="middle" font-size="12" fill="#1b5e20">adapters/grpc/</text>
57
+ <rect x="210" y="305" width="125" height="30" rx="6" fill="#c8e6c9" stroke="#66bb6a" stroke-width="1"/>
58
+ <text x="272" y="325" text-anchor="middle" font-size="12" fill="#1b5e20">adapters/ws/</text>
59
+
60
+ <!-- ── ADAPTERS (outbound/connectors) ── -->
61
+ <rect x="550" y="90" width="155" height="380" rx="10" fill="#fff3e0" stroke="#ffa726" stroke-width="1.5"/>
62
+ <text x="627" y="115" text-anchor="middle" font-size="13" font-weight="700" fill="#e65100">Adapters</text>
63
+ <text x="627" y="132" text-anchor="middle" font-size="10" fill="#ef6c00">(outbound connectors)</text>
64
+
65
+ <!-- Outbound connectors -->
66
+ <rect x="565" y="145" width="125" height="30" rx="6" fill="#ffe0b2" stroke="#ffa726" stroke-width="1"/>
67
+ <text x="627" y="162" text-anchor="middle" font-size="10" fill="#bf360c">connectors/</text>
68
+ <text x="627" y="173" text-anchor="middle" font-size="10" fill="#bf360c">postgres/</text>
69
+ <rect x="565" y="185" width="125" height="30" rx="6" fill="#ffe0b2" stroke="#ffa726" stroke-width="1"/>
70
+ <text x="627" y="202" text-anchor="middle" font-size="10" fill="#bf360c">connectors/</text>
71
+ <text x="627" y="213" text-anchor="middle" font-size="10" fill="#bf360c">stripe-api/</text>
72
+ <rect x="565" y="225" width="125" height="30" rx="6" fill="#ffe0b2" stroke="#ffa726" stroke-width="1"/>
73
+ <text x="627" y="242" text-anchor="middle" font-size="10" fill="#bf360c">connectors/</text>
74
+ <text x="627" y="253" text-anchor="middle" font-size="10" fill="#bf360c">s3-datalake/</text>
75
+ <rect x="565" y="265" width="125" height="30" rx="6" fill="#ffe0b2" stroke="#ffa726" stroke-width="1"/>
76
+ <text x="627" y="282" text-anchor="middle" font-size="10" fill="#bf360c">connectors/</text>
77
+ <text x="627" y="293" text-anchor="middle" font-size="10" fill="#bf360c">redis-cache/</text>
78
+ <rect x="565" y="305" width="125" height="30" rx="6" fill="#ffe0b2" stroke="#ffa726" stroke-width="1"/>
79
+ <text x="627" y="322" text-anchor="middle" font-size="10" fill="#bf360c">connectors/</text>
80
+ <text x="627" y="333" text-anchor="middle" font-size="10" fill="#bf360c">whatsapp/</text>
81
+
82
+ <!-- ── APPLICATION (center) ── -->
83
+ <rect x="375" y="90" width="150" height="380" rx="12" fill="#e3f2fd" stroke="#42a5f5" stroke-width="2"/>
84
+ <text x="450" y="118" text-anchor="middle" font-size="14" font-weight="700" fill="#0d47a1">Application</text>
85
+ <text x="450" y="135" text-anchor="middle" font-size="10" fill="#1565c0">(business logic)</text>
86
+
87
+ <!-- App items -->
88
+ <rect x="390" y="148" width="120" height="28" rx="6" fill="#bbdefb" stroke="#42a5f5" stroke-width="1"/>
89
+ <text x="450" y="166" text-anchor="middle" font-size="11" fill="#0d47a1">app/create-user</text>
90
+ <rect x="390" y="185" width="120" height="28" rx="6" fill="#bbdefb" stroke="#42a5f5" stroke-width="1"/>
91
+ <text x="450" y="203" text-anchor="middle" font-size="11" fill="#0d47a1">app/process-event</text>
92
+ <rect x="390" y="222" width="120" height="28" rx="6" fill="#bbdefb" stroke="#42a5f5" stroke-width="1"/>
93
+ <text x="450" y="240" text-anchor="middle" font-size="11" fill="#0d47a1">app/feature-group/</text>
94
+ <rect x="390" y="259" width="120" height="28" rx="6" fill="#bbdefb" stroke="#42a5f5" stroke-width="1"/>
95
+ <text x="450" y="277" text-anchor="middle" font-size="11" fill="#0d47a1">app/create-dir</text>
96
+
97
+ <!-- Shared -->
98
+ <rect x="390" y="305" width="120" height="45" rx="6" fill="#e1f5fe" stroke="#29b6f6" stroke-width="1" stroke-dasharray="5,3"/>
99
+ <text x="450" y="325" text-anchor="middle" font-size="11" font-weight="600" fill="#01579b">shared/</text>
100
+ <text x="450" y="340" text-anchor="middle" font-size="10" fill="#0277bd">logging, errors…</text>
101
+
102
+ <!-- ── ARROWS: External → Inbound Adapters ── -->
103
+ <defs>
104
+ <marker id="arrow-in" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
105
+ <path d="M0,0 L0,6 L8,3 z" fill="#388e3c"/>
106
+ </marker>
107
+ <marker id="arrow-out" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
108
+ <path d="M0,0 L0,6 L8,3 z" fill="#e65100"/>
109
+ </marker>
110
+ <marker id="arrow-app-in" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
111
+ <path d="M0,0 L0,6 L8,3 z" fill="#0d47a1"/>
112
+ </marker>
113
+ <marker id="arrow-app-out" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
114
+ <path d="M0,0 L0,6 L8,3 z" fill="#0d47a1"/>
115
+ </marker>
116
+ </defs>
117
+
118
+ <!-- External(L) → Inbound Adapters -->
119
+ <line x1="170" y1="160" x2="208" y2="160" stroke="#388e3c" stroke-width="1.5" marker-end="url(#arrow-in)"/>
120
+ <line x1="170" y1="200" x2="208" y2="200" stroke="#388e3c" stroke-width="1.5" marker-end="url(#arrow-in)"/>
121
+ <line x1="170" y1="240" x2="208" y2="240" stroke="#388e3c" stroke-width="1.5" marker-end="url(#arrow-in)"/>
122
+ <line x1="170" y1="280" x2="208" y2="280" stroke="#388e3c" stroke-width="1.5" marker-end="url(#arrow-in)"/>
123
+ <line x1="170" y1="320" x2="208" y2="320" stroke="#388e3c" stroke-width="1.5" marker-end="url(#arrow-in)"/>
124
+
125
+ <!-- Inbound Adapters → Application -->
126
+ <line x1="350" y1="160" x2="373" y2="162" stroke="#0d47a1" stroke-width="1.5" marker-end="url(#arrow-app-in)"/>
127
+ <line x1="350" y1="200" x2="373" y2="198" stroke="#0d47a1" stroke-width="1.5" marker-end="url(#arrow-app-in)"/>
128
+ <line x1="350" y1="240" x2="373" y2="236" stroke="#0d47a1" stroke-width="1.5" marker-end="url(#arrow-app-in)"/>
129
+ <line x1="350" y1="280" x2="373" y2="270" stroke="#0d47a1" stroke-width="1.5" marker-end="url(#arrow-app-in)"/>
130
+
131
+ <!-- Application → Outbound Connectors -->
132
+ <line x1="527" y1="162" x2="563" y2="160" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
133
+ <line x1="527" y1="198" x2="563" y2="200" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
134
+ <line x1="527" y1="236" x2="563" y2="240" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
135
+ <line x1="527" y1="270" x2="563" y2="280" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
136
+
137
+ <!-- Outbound Connectors → External(R) -->
138
+ <line x1="690" y1="160" x2="743" y2="160" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
139
+ <line x1="690" y1="200" x2="743" y2="200" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
140
+ <line x1="690" y1="240" x2="743" y2="240" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
141
+ <line x1="690" y1="280" x2="743" y2="280" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
142
+ <line x1="690" y1="320" x2="743" y2="320" stroke="#e65100" stroke-width="1.5" marker-end="url(#arrow-out)"/>
143
+
144
+ <!-- ── LEGEND / LABELS ── -->
145
+ <line x1="200" y1="490" x2="240" y2="490" stroke="#388e3c" stroke-width="2" marker-end="url(#arrow-in)"/>
146
+ <text x="248" y="494" font-size="11" fill="#333">inbound trigger</text>
147
+ <line x1="370" y1="490" x2="410" y2="490" stroke="#0d47a1" stroke-width="2" marker-end="url(#arrow-app-in)"/>
148
+ <text x="418" y="494" font-size="11" fill="#333">app call</text>
149
+ <line x1="520" y1="490" x2="560" y2="490" stroke="#e65100" stroke-width="2" marker-end="url(#arrow-out)"/>
150
+ <text x="568" y="494" font-size="11" fill="#333">outbound call</text>
151
+
152
+ <!-- Pragma note -->
153
+ <rect x="280" y="460" width="340" height="22" rx="4" fill="none" stroke="#bdbdbd" stroke-width="1" stroke-dasharray="4,2"/>
154
+ <text x="450" y="475" text-anchor="middle" font-size="10" fill="#757575">Application MAY import Adapters — pragmatic coupling is accepted</text>
155
+ </svg>
@@ -29,6 +29,8 @@ Every application MUST be organized into these three conceptual layers:
29
29
  | **Adapters** | Bridge between External and Application — translate external protocols into application calls and vice versa |
30
30
  | **Application** | Business logic that delegates I/O to adapters |
31
31
 
32
+ ![Overview](.assets/126-overview.svg)
33
+
32
34
  #### 02-adapter-naming-conventions
33
35
 
34
36
  Adapters MUST follow these naming conventions:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentme",
3
- "version": "0.30.1",
3
+ "version": "0.30.3",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "filedist": "^0.39.0"
@@ -18,6 +18,6 @@
18
18
  "url": "https://github.com/flaviostutz/agentme.git"
19
19
  },
20
20
  "devDependencies": {
21
- "xdrs-core": "^0.45.0"
21
+ "xdrs-core": "^0.46.2"
22
22
  }
23
23
  }