archer-wizard 0.1.0 → 0.1.1
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 +200 -90
- package/dist/lib/ascii.d.ts.map +1 -1
- package/dist/lib/ascii.js +31 -3
- package/dist/lib/ascii.js.map +1 -1
- package/dist/tools/watch.js +1 -1
- package/dist/tools/watch.js.map +1 -1
- package/dist/wizard/detector.d.ts +1 -1
- package/dist/wizard/detector.d.ts.map +1 -1
- package/dist/wizard/detector.js +14 -10
- package/dist/wizard/detector.js.map +1 -1
- package/dist/wizard/index.js +1 -1
- package/dist/wizard/index.js.map +1 -1
- package/dist/wizard/injector.js +1 -1
- package/dist/wizard/injector.js.map +1 -1
- package/dist/wizard/rules.d.ts +1 -1
- package/dist/wizard/rules.d.ts.map +1 -1
- package/dist/wizard/rules.js +24 -9
- package/dist/wizard/rules.js.map +1 -1
- package/dist/wizard/scanner.d.ts.map +1 -1
- package/dist/wizard/scanner.js +71 -0
- package/dist/wizard/scanner.js.map +1 -1
- package/package.json +2 -1
- package/src/lib/ascii.ts +34 -3
- package/src/tools/watch.ts +1 -1
- package/src/wizard/detector.ts +15 -10
- package/src/wizard/index.ts +1 -1
- package/src/wizard/injector.ts +1 -1
- package/src/wizard/rules.ts +24 -9
- package/src/wizard/scanner.ts +74 -0
package/README.md
CHANGED
|
@@ -1,140 +1,250 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
**Event intelligence for AI agents.** One command connects your backend to Cursor, Claude Code, Windsurf, and any MCP-compatible agent.
|
|
1
|
+
<div align="center">
|
|
4
2
|
|
|
5
3
|
```
|
|
6
|
-
|
|
4
|
+
█████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗
|
|
5
|
+
██╔══██╗██╔══██╗██╔════╝██║ ██║██╔════╝██╔══██╗
|
|
6
|
+
███████║██████╔╝██║ ███████║█████╗ ██████╔╝
|
|
7
|
+
██╔══██║██╔══██╗██║ ██╔══██║██╔══╝ ██╔══██╗
|
|
8
|
+
██║ ██║██║ ██║╚██████╗██║ ██║███████╗██║ ██║
|
|
9
|
+
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
7
10
|
```
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
**event intelligence layer for AI agents**
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
</div>
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## what is Archer
|
|
19
|
+
|
|
20
|
+
Zapier was built for apps talking to apps.
|
|
21
|
+
**Archer was built for the world talking to AI agents.**
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
Every AI agent today is reactive. Cursor, Claude Code, opencode — they sit completely idle until you manually talk to them. Nobody built the layer that lets them feel what's happening in real time and act on their own.
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
Archer is that layer.
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|--------|--------|--------|
|
|
23
|
-
| **Supabase** | `auth.signup`, `table.insert`, `table.update`, `table.delete` | ✅ Available |
|
|
24
|
-
| **Firebase** | Auth, Firestore, Realtime DB | 🔜 Coming soon |
|
|
25
|
-
| **Stripe** | Payments, subscriptions, invoices | 🔜 Coming soon |
|
|
26
|
-
| **GitHub** | Push, PR, issues, deployments | 🔜 Coming soon |
|
|
27
|
-
| **Custom Webhooks** | Any incoming webhook | 🔜 Coming soon |
|
|
27
|
+
You define a condition once in plain english. Archer watches your data sources 24/7. The moment that condition is true — your AI agent wakes up, already loaded with full context, and acts immediately. No prompting. No polling. No manual triggers.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
---
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## install
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npx archer
|
|
34
|
+
npx archer@latest
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Run this inside any project folder. Archer handles everything else automatically.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
2. **Detect** installed AI agents (Cursor, Claude Code, Windsurf, etc.)
|
|
41
|
-
3. **Inject** the Archer MCP server into each agent's config
|
|
42
|
-
4. **Write** agent rules so the LLM knows how to use the tool
|
|
39
|
+
---
|
|
43
40
|
|
|
44
|
-
##
|
|
41
|
+
## how it works
|
|
45
42
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
| Claude Code | Platform-specific | ✅ |
|
|
50
|
-
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | ✅ |
|
|
51
|
-
| OpenCode | `~/.config/opencode/config.json` | ✅ |
|
|
43
|
+
```
|
|
44
|
+
your data source ──→ Archer watches 24/7 ──→ condition met ──→ agent fires
|
|
45
|
+
```
|
|
52
46
|
|
|
53
|
-
|
|
47
|
+
1. **scans** your project for data source credentials automatically
|
|
48
|
+
2. **detects** which AI agents you have installed on your machine
|
|
49
|
+
3. **injects** itself into all their configs — one confirmation, no manual JSON
|
|
50
|
+
4. **teaches** every agent when to call `archer.watch()` automatically via global rules
|
|
51
|
+
5. your agent now has a nervous system — it feels the world and acts on its own
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
---
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
|-----------|------|----------|-------------|
|
|
59
|
-
| `source` | `string` | Yes | Event source (`"supabase"`, more coming) |
|
|
60
|
-
| `event` | `string` | Yes | Event type (source-specific) |
|
|
61
|
-
| `table` | `string` | Depends | Resource name (e.g. table for Supabase) |
|
|
62
|
-
| `condition` | `string` | No | Filter like `"email ends with @gmail.com"` |
|
|
63
|
-
| `webhookUrl` | `string` | Yes | URL to receive POST notifications |
|
|
55
|
+
## quickstart
|
|
64
56
|
|
|
65
|
-
|
|
57
|
+
```bash
|
|
58
|
+
# 1. run inside your project
|
|
59
|
+
npx archer-wizard@latest
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
- `starts with` — `"name starts with John"`
|
|
69
|
-
- `contains` — `"status contains active"`
|
|
70
|
-
- `equals` — `"role equals admin"`
|
|
61
|
+
# 2. Archer scans your .env, finds your credentials, injects into your agents
|
|
71
62
|
|
|
72
|
-
|
|
63
|
+
# 3. open your AI agent and say:
|
|
64
|
+
"watch my users table for new signups and fire https://your-webhook-url"
|
|
73
65
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"event": "auth.signup",
|
|
78
|
-
"webhookUrl": "https://hooks.example.com/signups"
|
|
79
|
-
}
|
|
66
|
+
# 4. insert a row in your database
|
|
67
|
+
|
|
68
|
+
# 5. your agent fires automatically
|
|
80
69
|
```
|
|
81
70
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## the tool — `archer.watch()`
|
|
74
|
+
|
|
75
|
+
Once Archer is set up, your AI agent has access to this tool natively. You never call it directly — your agent calls it when you describe what you want.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
archer.watch({
|
|
79
|
+
source: string, // data source
|
|
80
|
+
event: string, // what to listen for
|
|
81
|
+
table?: string, // table name for table events
|
|
82
|
+
condition?: string, // plain english condition (optional)
|
|
83
|
+
webhookUrl: string // where to fire when condition is met
|
|
84
|
+
})
|
|
90
85
|
```
|
|
91
86
|
|
|
92
|
-
|
|
87
|
+
**just talk to your agent:**
|
|
93
88
|
|
|
94
|
-
|
|
89
|
+
```
|
|
90
|
+
"watch my users table and fire https://your-webhook.com
|
|
91
|
+
when a new user signs up with a .edu email"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
"watch my orders table for new inserts and notify https://your-webhook.com"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
"fire https://your-webhook.com every time a row is deleted from sessions"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## supported events (currently only supabase, p.s. we will add more soon)
|
|
105
|
+
|
|
106
|
+
| event | description |
|
|
107
|
+
|---|---|
|
|
108
|
+
| `auth.signup` | new user registers |
|
|
109
|
+
| `table.insert` | new row inserted into any table |
|
|
110
|
+
| `table.update` | existing row updated |
|
|
111
|
+
| `table.delete` | row deleted |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## webhook payload
|
|
116
|
+
|
|
117
|
+
Every time Archer fires, your agent receives this:
|
|
95
118
|
|
|
96
119
|
```json
|
|
97
120
|
{
|
|
98
121
|
"archer": {
|
|
99
|
-
"watchId": "
|
|
122
|
+
"watchId": "uuid",
|
|
100
123
|
"event": "table.insert",
|
|
101
124
|
"source": "supabase",
|
|
102
|
-
"firedAt": "
|
|
125
|
+
"firedAt": "ISO timestamp"
|
|
103
126
|
},
|
|
104
|
-
"data": {
|
|
127
|
+
"data": {
|
|
128
|
+
"id": "row-id",
|
|
129
|
+
"email": "user@university.edu",
|
|
130
|
+
"created_at": "timestamp"
|
|
131
|
+
}
|
|
105
132
|
}
|
|
106
133
|
```
|
|
107
134
|
|
|
108
|
-
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## supported agents
|
|
138
|
+
|
|
139
|
+
Archer auto-detects and injects into all of these:
|
|
140
|
+
|
|
141
|
+
| agent | status |
|
|
142
|
+
|---|---|
|
|
143
|
+
| Cursor | ✓ supported |
|
|
144
|
+
| Claude Code | ✓ supported |
|
|
145
|
+
| opencode | ✓ supported |
|
|
146
|
+
| Google Antigravity | ✓ supported |
|
|
147
|
+
| Windsurf | ✓ supported |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## supported data sources
|
|
152
|
+
|
|
153
|
+
Archer is built universal — any data source, any platform.
|
|
154
|
+
|
|
155
|
+
| source | status |
|
|
156
|
+
|---|---|
|
|
157
|
+
| Supabase | ✓ available now |
|
|
158
|
+
| GitHub | coming soon |
|
|
159
|
+
| Stripe | coming soon |
|
|
160
|
+
| Linear | coming soon |
|
|
161
|
+
| Vercel | coming soon |
|
|
162
|
+
| custom webhooks | coming soon |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## credentials
|
|
167
|
+
|
|
168
|
+
Archer scans these files automatically in priority order:
|
|
109
169
|
|
|
110
170
|
```
|
|
111
|
-
|
|
112
|
-
|
|
171
|
+
.env.local
|
|
172
|
+
.env
|
|
173
|
+
.env.development
|
|
174
|
+
.env.production
|
|
113
175
|
```
|
|
114
176
|
|
|
115
|
-
|
|
177
|
+
It recognizes all common aliases automatically:
|
|
116
178
|
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
179
|
+
```bash
|
|
180
|
+
# standard
|
|
181
|
+
SUPABASE_URL=https://yourproject.supabase.co
|
|
182
|
+
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
|
|
183
|
+
|
|
184
|
+
# Next.js — also recognized automatically
|
|
185
|
+
NEXT_PUBLIC_SUPABASE_URL=...
|
|
186
|
+
|
|
187
|
+
# Vite — also recognized automatically
|
|
188
|
+
VITE_SUPABASE_URL=...
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
You never paste credentials manually. Archer finds them.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## requirements
|
|
196
|
+
|
|
197
|
+
- Node.js 18 or higher
|
|
198
|
+
- at least one supported AI agent installed
|
|
199
|
+
- a `.env` file with your data source credentials
|
|
200
|
+
- realtime enabled on tables you want to watch
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## architecture
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
developer's machine data source
|
|
208
|
+
─────────────────── ───────────
|
|
209
|
+
npx archer-wizard@latest realtime channel
|
|
210
|
+
↓ ↓
|
|
211
|
+
wizard scans .env Archer subscribes to changes 24/7
|
|
212
|
+
↓ ↓
|
|
213
|
+
injects into agents condition matched → webhook fires
|
|
214
|
+
↓ ↓
|
|
215
|
+
agent calls archer.watch() AI agent wakes up with full context
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
No AI at runtime. Once a condition is defined it is pure logic — fast, cheap, reliable.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## what v1 does not include
|
|
223
|
+
|
|
224
|
+
- no dashboard
|
|
225
|
+
- no account required
|
|
226
|
+
- no sign in
|
|
227
|
+
- no API key
|
|
228
|
+
- no cloud service
|
|
229
|
+
|
|
230
|
+
Everything runs locally on your machine using your own credentials. The architecture is universal from day one — the simplicity is intentional.
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Install from npm
|
|
236
|
+
npx archer-wizard@latest
|
|
237
|
+
|
|
238
|
+
# Or from source:
|
|
239
|
+
git clone https://github.com/amirlan-labs/archer-mcp
|
|
240
|
+
cd archer-mcp
|
|
241
|
+
npm install
|
|
242
|
+
npm run dev
|
|
130
243
|
```
|
|
131
244
|
|
|
132
|
-
## Requirements
|
|
133
245
|
|
|
134
|
-
|
|
135
|
-
- At least one supported AI agent installed
|
|
136
|
-
- Credentials for your event source (e.g. Supabase URL + service role key)
|
|
246
|
+
<div align="center">
|
|
137
247
|
|
|
138
|
-
|
|
248
|
+
*agents stop waiting. the world starts talking.*
|
|
139
249
|
|
|
140
|
-
|
|
250
|
+
</div>
|
package/dist/lib/ascii.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascii.d.ts","sourceRoot":"","sources":["../../src/lib/ascii.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ascii.d.ts","sourceRoot":"","sources":["../../src/lib/ascii.ts"],"names":[],"mappings":"AAWA,wBAAgB,YAAY,IAAI,IAAI,CAkDnC;AAID,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAID,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAqBvD;AAID,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD"}
|
package/dist/lib/ascii.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import pc from 'picocolors';
|
|
2
|
+
// Force colors for better visibility
|
|
3
|
+
const colors = pc.createColors(true);
|
|
4
|
+
// Use picocolors green (more compatible than true color)
|
|
5
|
+
const emerald = colors.green;
|
|
6
|
+
const emeraldDim = colors.dim;
|
|
2
7
|
// ─── ASCII Art ──────────────────────────────────────────────
|
|
3
8
|
export function showAsciiArt() {
|
|
4
9
|
const lines = [
|
|
@@ -11,17 +16,40 @@ export function showAsciiArt() {
|
|
|
11
16
|
];
|
|
12
17
|
// Column boundaries for coloring:
|
|
13
18
|
// A: cols 0-5, R: 6-13, C: 14-21, H: 22-29, E: 30-37, R: 38-45
|
|
14
|
-
// ARCH = white, ER = green
|
|
19
|
+
// ARCH = white, ER = emerald green
|
|
15
20
|
const archEnd = 30; // columns 0-29 are A R C H
|
|
16
21
|
const erEnd = 46; // columns 30-45 are E R
|
|
17
22
|
for (const line of lines) {
|
|
18
23
|
const archPart = line.slice(0, archEnd);
|
|
19
24
|
const erPart = line.slice(archEnd, erEnd);
|
|
20
25
|
const rest = line.slice(erEnd);
|
|
21
|
-
process.stdout.write(
|
|
26
|
+
process.stdout.write(colors.white(archPart) + emerald(erPart) + rest + '\n');
|
|
22
27
|
}
|
|
28
|
+
// Pixel art bow and arrow (emerald green)
|
|
29
|
+
const bowArrow = [
|
|
30
|
+
` ${emerald('╭───╮')}`,
|
|
31
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
32
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
33
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
34
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
35
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
36
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
37
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
38
|
+
`${emerald('╱')} ${emerald('╲')}`,
|
|
39
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
40
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
41
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
42
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
43
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
44
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
45
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
46
|
+
` ${emerald('╰───╯')}`,
|
|
47
|
+
` ${emerald('───►')}`,
|
|
48
|
+
];
|
|
49
|
+
console.log();
|
|
50
|
+
bowArrow.forEach(line => console.log(line));
|
|
23
51
|
console.log();
|
|
24
|
-
console.log(
|
|
52
|
+
console.log(emeraldDim(' v0.1.0 · event intelligence for AI agents'));
|
|
25
53
|
console.log();
|
|
26
54
|
}
|
|
27
55
|
// ─── Status Logger ──────────────────────────────────────────
|
package/dist/lib/ascii.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascii.js","sourceRoot":"","sources":["../../src/lib/ascii.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,+DAA+D;AAE/D,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG;QACZ,iDAAiD;QACjD,kDAAkD;QAClD,kDAAkD;QAClD,kDAAkD;QAClD,kDAAkD;QAClD,kDAAkD;KACnD,CAAC;IAEF,kCAAkC;IAClC,+DAA+D;IAC/D,
|
|
1
|
+
{"version":3,"file":"ascii.js","sourceRoot":"","sources":["../../src/lib/ascii.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/watch.js
CHANGED
|
@@ -145,7 +145,7 @@ export function executeWatch(rawInput) {
|
|
|
145
145
|
// ─── Tool Schema (for MCP registration) ─────────────────────
|
|
146
146
|
export const WATCH_TOOL_SCHEMA = {
|
|
147
147
|
name: 'archer_watch',
|
|
148
|
-
description: 'Watch real-time events from
|
|
148
|
+
description: 'Archer is the event intelligence layer for AI agents. Watch real-time events from data sources. Monitors auth signups, table inserts, updates, and deletes. Fires a webhook when conditions are met. Agents stop waiting for you to talk to them and start acting on their own when the world moves.',
|
|
149
149
|
inputSchema: {
|
|
150
150
|
type: 'object',
|
|
151
151
|
properties: {
|
package/dist/tools/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/tools/watch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/tools/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentInfo } from '../types/index.js';
|
|
2
2
|
export declare function detectAgents(): AgentInfo[];
|
|
3
3
|
export declare function getConfigKey(agentName: string): 'mcpServers' | 'mcp';
|
|
4
|
-
export declare function getRulesPath(agentName: string
|
|
4
|
+
export declare function getRulesPath(agentName: string): string;
|
|
5
5
|
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/wizard/detector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAiGnD,wBAAgB,YAAY,IAAI,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/wizard/detector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAiGnD,wBAAgB,YAAY,IAAI,SAAS,EAAE,CAsB1C;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAMpE;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
|
package/dist/wizard/detector.js
CHANGED
|
@@ -84,9 +84,10 @@ export function detectAgents() {
|
|
|
84
84
|
const configPath = getConfigPath(agent);
|
|
85
85
|
const configExists = fileExists(configPath);
|
|
86
86
|
const dirExists = parentDirExists(configPath);
|
|
87
|
-
// Agent is "installed" if
|
|
88
|
-
//
|
|
89
|
-
|
|
87
|
+
// Agent is "installed" if:
|
|
88
|
+
// 1. The config file exists, OR
|
|
89
|
+
// 2. The parent directory exists (for first-time setup)
|
|
90
|
+
if (configExists || dirExists) {
|
|
90
91
|
detected.push({
|
|
91
92
|
name: agent.name,
|
|
92
93
|
installed: true,
|
|
@@ -106,20 +107,23 @@ export function getConfigKey(agentName) {
|
|
|
106
107
|
return 'mcpServers';
|
|
107
108
|
}
|
|
108
109
|
// ─── Get Rules Path For Agent ───────────────────────────────
|
|
109
|
-
export function getRulesPath(agentName
|
|
110
|
+
export function getRulesPath(agentName) {
|
|
111
|
+
const homeDir = os.homedir();
|
|
110
112
|
switch (agentName) {
|
|
111
113
|
case 'cursor':
|
|
112
|
-
return path.join(
|
|
114
|
+
return path.join(homeDir, '.cursor', 'rules', 'archer.mdc');
|
|
113
115
|
case 'claude-code':
|
|
114
|
-
|
|
116
|
+
// For Claude Code, we'll use the project's CLAUDE.md
|
|
117
|
+
// but we need to get the current working directory
|
|
118
|
+
return path.join(process.cwd(), 'CLAUDE.md');
|
|
115
119
|
case 'opencode':
|
|
116
|
-
return path.join(
|
|
120
|
+
return path.join(homeDir, '.config', 'opencode', 'rules.md');
|
|
117
121
|
case 'antigravity':
|
|
118
|
-
return path.join(
|
|
122
|
+
return path.join(homeDir, '.config', 'antigravity', 'rules.md');
|
|
119
123
|
case 'windsurf':
|
|
120
|
-
return path.join(
|
|
124
|
+
return path.join(homeDir, '.codeium', 'windsurf', 'rules.md');
|
|
121
125
|
default:
|
|
122
|
-
return path.join(
|
|
126
|
+
return path.join(homeDir, '.archer', 'rules.md');
|
|
123
127
|
}
|
|
124
128
|
}
|
|
125
129
|
//# sourceMappingURL=detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/wizard/detector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/wizard/detector.ts"],"names":[],"mappings":"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"}
|
package/dist/wizard/index.js
CHANGED
|
@@ -40,7 +40,7 @@ export async function runWizard() {
|
|
|
40
40
|
// ─ Step 13: Inject rules ─
|
|
41
41
|
if (successfulAgents.length > 0) {
|
|
42
42
|
logAction('writing agent rules...');
|
|
43
|
-
injectRules(successfulAgents
|
|
43
|
+
injectRules(successfulAgents);
|
|
44
44
|
console.log();
|
|
45
45
|
}
|
|
46
46
|
// ─ Step 14: Success ─
|
package/dist/wizard/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,wBAAwB;IACxB,YAAY,EAAE,CAAC;IAEf,0BAA0B;IAC1B,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEpD,uBAAuB;IACvB,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,+BAA+B;IAC/B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kCAAkC;IAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,UAAU,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IAED,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4BAA4B;IAC5B,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAC7C,MAAM,EACN,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,cAAc,CAC3B,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAC9D,CAAC;IAEF,4BAA4B;IAC5B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpC,WAAW,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wizard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,wBAAwB;IACxB,YAAY,EAAE,CAAC;IAEf,0BAA0B;IAC1B,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEpD,uBAAuB;IACvB,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,+BAA+B;IAC/B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kCAAkC;IAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,UAAU,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IAED,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4BAA4B;IAC5B,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAC7C,MAAM,EACN,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,cAAc,CAC3B,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAC9D,CAAC;IAEF,4BAA4B;IAC5B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB;IACvB,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAExC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/wizard/injector.js
CHANGED
|
@@ -8,7 +8,7 @@ import { getConfigKey } from './detector.js';
|
|
|
8
8
|
function buildArcherEntry(supabaseUrl, serviceRoleKey) {
|
|
9
9
|
return {
|
|
10
10
|
command: 'npx',
|
|
11
|
-
args: ['-y', 'archer', '--mcp'],
|
|
11
|
+
args: ['-y', 'archer-wizard@latest', '--mcp'],
|
|
12
12
|
env: {
|
|
13
13
|
SUPABASE_URL: supabaseUrl,
|
|
14
14
|
SUPABASE_SERVICE_ROLE_KEY: serviceRoleKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/wizard/injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,+DAA+D;AAE/D,SAAS,gBAAgB,CAAC,WAAmB,EAAE,cAAsB;IACnE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/wizard/injector.ts"],"names":[],"mappings":"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"}
|
package/dist/wizard/rules.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/wizard/rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/wizard/rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsHnD,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAIrD"}
|
package/dist/wizard/rules.js
CHANGED
|
@@ -6,19 +6,28 @@ import { getRulesPath } from './detector.js';
|
|
|
6
6
|
const RULE_CONTENT = `
|
|
7
7
|
# Archer — Event Intelligence for AI Agents
|
|
8
8
|
|
|
9
|
-
Archer is
|
|
9
|
+
Archer is the event intelligence layer for AI agents. It connects to your data sources (Supabase, GitHub, Stripe, Linear, etc.), watches for conditions you define in plain english, and fires your AI agent the moment those conditions are true, with full context already loaded.
|
|
10
10
|
|
|
11
11
|
## Available Tool: archer.watch
|
|
12
12
|
|
|
13
|
-
You can watch real-time events from
|
|
13
|
+
You can watch real-time events from data sources using the \`archer.watch\` MCP tool.
|
|
14
|
+
|
|
15
|
+
### When to Use Archer
|
|
16
|
+
|
|
17
|
+
Use Archer whenever you need to:
|
|
18
|
+
- Monitor database changes (inserts, updates, deletes)
|
|
19
|
+
- Watch for new user signups
|
|
20
|
+
- React to events in external services
|
|
21
|
+
- Automate responses to data changes
|
|
22
|
+
- Set up real-time notifications
|
|
14
23
|
|
|
15
24
|
### Parameters
|
|
16
25
|
|
|
17
|
-
- **source**:
|
|
26
|
+
- **source**: data source (currently \`"supabase"\`)
|
|
18
27
|
- **event**: one of \`"auth.signup"\`, \`"table.insert"\`, \`"table.update"\`, \`"table.delete"\`
|
|
19
28
|
- **table**: the table name (required for table events)
|
|
20
29
|
- **condition**: optional filter like \`"email ends with @gmail.com"\`
|
|
21
|
-
- **webhookUrl**: URL to receive POST notifications
|
|
30
|
+
- **webhookUrl**: URL to receive POST notifications when events match
|
|
22
31
|
|
|
23
32
|
### Examples
|
|
24
33
|
|
|
@@ -37,7 +46,13 @@ You can watch real-time events from Supabase using the \`archer.watch\` MCP tool
|
|
|
37
46
|
archer.watch({ source: "supabase", event: "table.insert", table: "users", condition: "email ends with @company.com", webhookUrl: "https://hooks.example.com/vip" })
|
|
38
47
|
\`\`\`
|
|
39
48
|
|
|
40
|
-
|
|
49
|
+
### Best Practices
|
|
50
|
+
|
|
51
|
+
- Use descriptive webhook URLs that indicate the action to take
|
|
52
|
+
- Add conditions to filter events and reduce noise
|
|
53
|
+
- Combine with your existing workflows for maximum impact
|
|
54
|
+
|
|
55
|
+
When the user asks to "watch", "monitor", "notify", or "fire" something, use Archer.
|
|
41
56
|
`.trim();
|
|
42
57
|
// ─── Archer Block Markers ───────────────────────────────────
|
|
43
58
|
const BLOCK_START = '<!-- archer:start -->';
|
|
@@ -60,9 +75,9 @@ function insertContent(existingContent, newBlock) {
|
|
|
60
75
|
return existingContent + separator + newBlock + '\n';
|
|
61
76
|
}
|
|
62
77
|
// ─── Write Rules to Agent ───────────────────────────────────
|
|
63
|
-
function writeRulesForAgent(agent
|
|
78
|
+
function writeRulesForAgent(agent) {
|
|
64
79
|
try {
|
|
65
|
-
const rulesPath = getRulesPath(agent.name
|
|
80
|
+
const rulesPath = getRulesPath(agent.name);
|
|
66
81
|
const dir = path.dirname(rulesPath);
|
|
67
82
|
const wrappedContent = wrapInBlock(RULE_CONTENT);
|
|
68
83
|
// Ensure directory exists
|
|
@@ -86,9 +101,9 @@ function writeRulesForAgent(agent, cwd) {
|
|
|
86
101
|
}
|
|
87
102
|
}
|
|
88
103
|
// ─── Main Rules Injector ────────────────────────────────────
|
|
89
|
-
export function injectRules(agents
|
|
104
|
+
export function injectRules(agents) {
|
|
90
105
|
for (const agent of agents) {
|
|
91
|
-
writeRulesForAgent(agent
|
|
106
|
+
writeRulesForAgent(agent);
|
|
92
107
|
}
|
|
93
108
|
}
|
|
94
109
|
//# sourceMappingURL=rules.js.map
|
package/dist/wizard/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/wizard/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,+DAA+D;AAE/D,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/wizard/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/wizard/scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/wizard/scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;AAgL/D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwFlE;AAID,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD1D"}
|
package/dist/wizard/scanner.js
CHANGED
|
@@ -3,6 +3,51 @@ import path from 'node:path';
|
|
|
3
3
|
import * as clack from '@clack/prompts';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { logSuccess, logError, maskCredential } from '../lib/ascii.js';
|
|
6
|
+
// Helper to search for keys in files
|
|
7
|
+
function searchInFiles(cwd, patterns) {
|
|
8
|
+
const results = new Map();
|
|
9
|
+
function scanDir(dir) {
|
|
10
|
+
try {
|
|
11
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
12
|
+
for (const entry of entries) {
|
|
13
|
+
const fullPath = path.join(dir, entry.name);
|
|
14
|
+
// Skip node_modules, .git, and other hidden directories
|
|
15
|
+
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules' && entry.name !== '.git') {
|
|
16
|
+
scanDir(fullPath);
|
|
17
|
+
}
|
|
18
|
+
else if (entry.isFile()) {
|
|
19
|
+
try {
|
|
20
|
+
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
21
|
+
const lines = content.split('\n');
|
|
22
|
+
lines.forEach((line, lineNum) => {
|
|
23
|
+
patterns.forEach(pattern => {
|
|
24
|
+
const match = line.match(pattern);
|
|
25
|
+
if (match) {
|
|
26
|
+
// Extract value from regex capture groups
|
|
27
|
+
const value = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
|
|
28
|
+
if (value) {
|
|
29
|
+
const key = match[0].split('=')[0].trim();
|
|
30
|
+
if (!results.has(key)) {
|
|
31
|
+
results.set(key, value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Skip unreadable files
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Skip unreadable directories
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
scanDir(cwd);
|
|
49
|
+
return results;
|
|
50
|
+
}
|
|
6
51
|
// ─── Env File Priority ──────────────────────────────────────
|
|
7
52
|
const ENV_FILES = [
|
|
8
53
|
'.env.local',
|
|
@@ -123,6 +168,29 @@ export async function scanProject(cwd) {
|
|
|
123
168
|
break;
|
|
124
169
|
}
|
|
125
170
|
}
|
|
171
|
+
// Search in codebase for Supabase keys
|
|
172
|
+
const codebasePatterns = [
|
|
173
|
+
/SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
174
|
+
/NEXT_PUBLIC_SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
175
|
+
/VITE_SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
176
|
+
/SUPABASE_SERVICE_ROLE_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
177
|
+
/SUPABASE_SERVICE_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
178
|
+
/SUPABASE_ANON_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
179
|
+
];
|
|
180
|
+
const codebaseResults = searchInFiles(cwd, codebasePatterns);
|
|
181
|
+
// Merge codebase results (env files take precedence)
|
|
182
|
+
for (const [key, value] of codebaseResults) {
|
|
183
|
+
const lowerKey = key.toLowerCase();
|
|
184
|
+
if (lowerKey.includes('url') && !mergedEnv.has('SUPABASE_URL')) {
|
|
185
|
+
mergedEnv.set('SUPABASE_URL', value);
|
|
186
|
+
}
|
|
187
|
+
else if (lowerKey.includes('service') && !mergedEnv.has('SUPABASE_SERVICE_ROLE_KEY')) {
|
|
188
|
+
mergedEnv.set('SUPABASE_SERVICE_ROLE_KEY', value);
|
|
189
|
+
}
|
|
190
|
+
else if (lowerKey.includes('anon') && !mergedEnv.has('SUPABASE_ANON_KEY')) {
|
|
191
|
+
mergedEnv.set('SUPABASE_ANON_KEY', value);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
126
194
|
const supabaseUrl = findByAliases(mergedEnv, SUPABASE_URL_ALIASES);
|
|
127
195
|
const serviceRoleKey = findByAliases(mergedEnv, SERVICE_ROLE_KEY_ALIASES);
|
|
128
196
|
const anonKey = findByAliases(mergedEnv, ANON_KEY_ALIASES);
|
|
@@ -146,6 +214,9 @@ export async function scanProject(cwd) {
|
|
|
146
214
|
if (foundInFile) {
|
|
147
215
|
logSuccess(`found credentials in ${foundInFile}`);
|
|
148
216
|
}
|
|
217
|
+
else if (codebaseResults.size > 0) {
|
|
218
|
+
logSuccess(`found credentials in codebase`);
|
|
219
|
+
}
|
|
149
220
|
return {
|
|
150
221
|
supabaseUrl,
|
|
151
222
|
serviceRoleKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/wizard/scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/wizard/scanner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/lib/ascii.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import pc from 'picocolors';
|
|
2
2
|
|
|
3
|
+
// Force colors for better visibility
|
|
4
|
+
const colors = pc.createColors(true);
|
|
5
|
+
|
|
6
|
+
// Use picocolors green (more compatible than true color)
|
|
7
|
+
const emerald = colors.green;
|
|
8
|
+
const emeraldDim = colors.dim;
|
|
9
|
+
|
|
3
10
|
// ─── ASCII Art ──────────────────────────────────────────────
|
|
4
11
|
|
|
5
12
|
export function showAsciiArt(): void {
|
|
@@ -14,7 +21,7 @@ export function showAsciiArt(): void {
|
|
|
14
21
|
|
|
15
22
|
// Column boundaries for coloring:
|
|
16
23
|
// A: cols 0-5, R: 6-13, C: 14-21, H: 22-29, E: 30-37, R: 38-45
|
|
17
|
-
// ARCH = white, ER = green
|
|
24
|
+
// ARCH = white, ER = emerald green
|
|
18
25
|
const archEnd = 30; // columns 0-29 are A R C H
|
|
19
26
|
const erEnd = 46; // columns 30-45 are E R
|
|
20
27
|
|
|
@@ -22,11 +29,35 @@ export function showAsciiArt(): void {
|
|
|
22
29
|
const archPart = line.slice(0, archEnd);
|
|
23
30
|
const erPart = line.slice(archEnd, erEnd);
|
|
24
31
|
const rest = line.slice(erEnd);
|
|
25
|
-
process.stdout.write(
|
|
32
|
+
process.stdout.write(colors.white(archPart) + emerald(erPart) + rest + '\n');
|
|
26
33
|
}
|
|
27
34
|
|
|
35
|
+
// Pixel art bow and arrow (emerald green)
|
|
36
|
+
const bowArrow = [
|
|
37
|
+
` ${emerald('╭───╮')}`,
|
|
38
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
39
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
40
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
41
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
42
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
43
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
44
|
+
` ${emerald('╱')} ${emerald('╲')}`,
|
|
45
|
+
`${emerald('╱')} ${emerald('╲')}`,
|
|
46
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
47
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
48
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
49
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
50
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
51
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
52
|
+
` ${emerald('╲')} ${emerald('╱')}`,
|
|
53
|
+
` ${emerald('╰───╯')}`,
|
|
54
|
+
` ${emerald('───►')}`,
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
console.log();
|
|
58
|
+
bowArrow.forEach(line => console.log(line));
|
|
28
59
|
console.log();
|
|
29
|
-
console.log(
|
|
60
|
+
console.log(emeraldDim(' v0.1.0 · event intelligence for AI agents'));
|
|
30
61
|
console.log();
|
|
31
62
|
}
|
|
32
63
|
|
package/src/tools/watch.ts
CHANGED
|
@@ -190,7 +190,7 @@ export function executeWatch(rawInput: unknown): WatchResult {
|
|
|
190
190
|
export const WATCH_TOOL_SCHEMA = {
|
|
191
191
|
name: 'archer_watch',
|
|
192
192
|
description:
|
|
193
|
-
'Watch real-time events from
|
|
193
|
+
'Archer is the event intelligence layer for AI agents. Watch real-time events from data sources. Monitors auth signups, table inserts, updates, and deletes. Fires a webhook when conditions are met. Agents stop waiting for you to talk to them and start acting on their own when the world moves.',
|
|
194
194
|
inputSchema: {
|
|
195
195
|
type: 'object' as const,
|
|
196
196
|
properties: {
|
package/src/wizard/detector.ts
CHANGED
|
@@ -106,9 +106,10 @@ export function detectAgents(): AgentInfo[] {
|
|
|
106
106
|
const configExists = fileExists(configPath);
|
|
107
107
|
const dirExists = parentDirExists(configPath);
|
|
108
108
|
|
|
109
|
-
// Agent is "installed" if
|
|
110
|
-
//
|
|
111
|
-
|
|
109
|
+
// Agent is "installed" if:
|
|
110
|
+
// 1. The config file exists, OR
|
|
111
|
+
// 2. The parent directory exists (for first-time setup)
|
|
112
|
+
if (configExists || dirExists) {
|
|
112
113
|
detected.push({
|
|
113
114
|
name: agent.name,
|
|
114
115
|
installed: true,
|
|
@@ -133,19 +134,23 @@ export function getConfigKey(agentName: string): 'mcpServers' | 'mcp' {
|
|
|
133
134
|
|
|
134
135
|
// ─── Get Rules Path For Agent ───────────────────────────────
|
|
135
136
|
|
|
136
|
-
export function getRulesPath(agentName: string
|
|
137
|
+
export function getRulesPath(agentName: string): string {
|
|
138
|
+
const homeDir = os.homedir();
|
|
139
|
+
|
|
137
140
|
switch (agentName) {
|
|
138
141
|
case 'cursor':
|
|
139
|
-
return path.join(
|
|
142
|
+
return path.join(homeDir, '.cursor', 'rules', 'archer.mdc');
|
|
140
143
|
case 'claude-code':
|
|
141
|
-
|
|
144
|
+
// For Claude Code, we'll use the project's CLAUDE.md
|
|
145
|
+
// but we need to get the current working directory
|
|
146
|
+
return path.join(process.cwd(), 'CLAUDE.md');
|
|
142
147
|
case 'opencode':
|
|
143
|
-
return path.join(
|
|
148
|
+
return path.join(homeDir, '.config', 'opencode', 'rules.md');
|
|
144
149
|
case 'antigravity':
|
|
145
|
-
return path.join(
|
|
150
|
+
return path.join(homeDir, '.config', 'antigravity', 'rules.md');
|
|
146
151
|
case 'windsurf':
|
|
147
|
-
return path.join(
|
|
152
|
+
return path.join(homeDir, '.codeium', 'windsurf', 'rules.md');
|
|
148
153
|
default:
|
|
149
|
-
return path.join(
|
|
154
|
+
return path.join(homeDir, '.archer', 'rules.md');
|
|
150
155
|
}
|
|
151
156
|
}
|
package/src/wizard/index.ts
CHANGED
package/src/wizard/injector.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { AgentInfo, InjectionResult, McpServerEntry } from '../types/index.
|
|
|
11
11
|
function buildArcherEntry(supabaseUrl: string, serviceRoleKey: string): McpServerEntry {
|
|
12
12
|
return {
|
|
13
13
|
command: 'npx',
|
|
14
|
-
args: ['-y', 'archer', '--mcp'],
|
|
14
|
+
args: ['-y', 'archer-wizard@latest', '--mcp'],
|
|
15
15
|
env: {
|
|
16
16
|
SUPABASE_URL: supabaseUrl,
|
|
17
17
|
SUPABASE_SERVICE_ROLE_KEY: serviceRoleKey,
|
package/src/wizard/rules.ts
CHANGED
|
@@ -9,19 +9,28 @@ import type { AgentInfo } from '../types/index.js';
|
|
|
9
9
|
const RULE_CONTENT = `
|
|
10
10
|
# Archer — Event Intelligence for AI Agents
|
|
11
11
|
|
|
12
|
-
Archer is
|
|
12
|
+
Archer is the event intelligence layer for AI agents. It connects to your data sources (Supabase, GitHub, Stripe, Linear, etc.), watches for conditions you define in plain english, and fires your AI agent the moment those conditions are true, with full context already loaded.
|
|
13
13
|
|
|
14
14
|
## Available Tool: archer.watch
|
|
15
15
|
|
|
16
|
-
You can watch real-time events from
|
|
16
|
+
You can watch real-time events from data sources using the \`archer.watch\` MCP tool.
|
|
17
|
+
|
|
18
|
+
### When to Use Archer
|
|
19
|
+
|
|
20
|
+
Use Archer whenever you need to:
|
|
21
|
+
- Monitor database changes (inserts, updates, deletes)
|
|
22
|
+
- Watch for new user signups
|
|
23
|
+
- React to events in external services
|
|
24
|
+
- Automate responses to data changes
|
|
25
|
+
- Set up real-time notifications
|
|
17
26
|
|
|
18
27
|
### Parameters
|
|
19
28
|
|
|
20
|
-
- **source**:
|
|
29
|
+
- **source**: data source (currently \`"supabase"\`)
|
|
21
30
|
- **event**: one of \`"auth.signup"\`, \`"table.insert"\`, \`"table.update"\`, \`"table.delete"\`
|
|
22
31
|
- **table**: the table name (required for table events)
|
|
23
32
|
- **condition**: optional filter like \`"email ends with @gmail.com"\`
|
|
24
|
-
- **webhookUrl**: URL to receive POST notifications
|
|
33
|
+
- **webhookUrl**: URL to receive POST notifications when events match
|
|
25
34
|
|
|
26
35
|
### Examples
|
|
27
36
|
|
|
@@ -40,7 +49,13 @@ You can watch real-time events from Supabase using the \`archer.watch\` MCP tool
|
|
|
40
49
|
archer.watch({ source: "supabase", event: "table.insert", table: "users", condition: "email ends with @company.com", webhookUrl: "https://hooks.example.com/vip" })
|
|
41
50
|
\`\`\`
|
|
42
51
|
|
|
43
|
-
|
|
52
|
+
### Best Practices
|
|
53
|
+
|
|
54
|
+
- Use descriptive webhook URLs that indicate the action to take
|
|
55
|
+
- Add conditions to filter events and reduce noise
|
|
56
|
+
- Combine with your existing workflows for maximum impact
|
|
57
|
+
|
|
58
|
+
When the user asks to "watch", "monitor", "notify", or "fire" something, use Archer.
|
|
44
59
|
`.trim();
|
|
45
60
|
|
|
46
61
|
// ─── Archer Block Markers ───────────────────────────────────
|
|
@@ -74,9 +89,9 @@ function insertContent(existingContent: string, newBlock: string): string {
|
|
|
74
89
|
|
|
75
90
|
// ─── Write Rules to Agent ───────────────────────────────────
|
|
76
91
|
|
|
77
|
-
function writeRulesForAgent(agent: AgentInfo
|
|
92
|
+
function writeRulesForAgent(agent: AgentInfo): boolean {
|
|
78
93
|
try {
|
|
79
|
-
const rulesPath = getRulesPath(agent.name
|
|
94
|
+
const rulesPath = getRulesPath(agent.name);
|
|
80
95
|
const dir = path.dirname(rulesPath);
|
|
81
96
|
const wrappedContent = wrapInBlock(RULE_CONTENT);
|
|
82
97
|
|
|
@@ -105,8 +120,8 @@ function writeRulesForAgent(agent: AgentInfo, cwd: string): boolean {
|
|
|
105
120
|
|
|
106
121
|
// ─── Main Rules Injector ────────────────────────────────────
|
|
107
122
|
|
|
108
|
-
export function injectRules(agents: AgentInfo[]
|
|
123
|
+
export function injectRules(agents: AgentInfo[]): void {
|
|
109
124
|
for (const agent of agents) {
|
|
110
|
-
writeRulesForAgent(agent
|
|
125
|
+
writeRulesForAgent(agent);
|
|
111
126
|
}
|
|
112
127
|
}
|
package/src/wizard/scanner.ts
CHANGED
|
@@ -5,6 +5,54 @@ import { z } from 'zod';
|
|
|
5
5
|
import { logSuccess, logError, maskCredential } from '../lib/ascii.js';
|
|
6
6
|
import type { ScanResult, Framework } from '../types/index.js';
|
|
7
7
|
|
|
8
|
+
// Helper to search for keys in files
|
|
9
|
+
function searchInFiles(cwd: string, patterns: RegExp[]): Map<string, string> {
|
|
10
|
+
const results = new Map<string, string>();
|
|
11
|
+
|
|
12
|
+
function scanDir(dir: string) {
|
|
13
|
+
try {
|
|
14
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
15
|
+
|
|
16
|
+
for (const entry of entries) {
|
|
17
|
+
const fullPath = path.join(dir, entry.name);
|
|
18
|
+
|
|
19
|
+
// Skip node_modules, .git, and other hidden directories
|
|
20
|
+
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules' && entry.name !== '.git') {
|
|
21
|
+
scanDir(fullPath);
|
|
22
|
+
} else if (entry.isFile()) {
|
|
23
|
+
try {
|
|
24
|
+
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
25
|
+
const lines = content.split('\n');
|
|
26
|
+
|
|
27
|
+
lines.forEach((line, lineNum) => {
|
|
28
|
+
patterns.forEach(pattern => {
|
|
29
|
+
const match = line.match(pattern);
|
|
30
|
+
if (match) {
|
|
31
|
+
// Extract value from regex capture groups
|
|
32
|
+
const value = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
|
|
33
|
+
if (value) {
|
|
34
|
+
const key = match[0].split('=')[0].trim();
|
|
35
|
+
if (!results.has(key)) {
|
|
36
|
+
results.set(key, value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
} catch {
|
|
43
|
+
// Skip unreadable files
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
} catch {
|
|
48
|
+
// Skip unreadable directories
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
scanDir(cwd);
|
|
53
|
+
return results;
|
|
54
|
+
}
|
|
55
|
+
|
|
8
56
|
// ─── Env File Priority ──────────────────────────────────────
|
|
9
57
|
|
|
10
58
|
const ENV_FILES = [
|
|
@@ -158,6 +206,30 @@ export async function scanProject(cwd: string): Promise<ScanResult> {
|
|
|
158
206
|
}
|
|
159
207
|
}
|
|
160
208
|
|
|
209
|
+
// Search in codebase for Supabase keys
|
|
210
|
+
const codebasePatterns = [
|
|
211
|
+
/SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
212
|
+
/NEXT_PUBLIC_SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
213
|
+
/VITE_SUPABASE_URL\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
214
|
+
/SUPABASE_SERVICE_ROLE_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
215
|
+
/SUPABASE_SERVICE_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
216
|
+
/SUPABASE_ANON_KEY\s*=\s*(?:['"]([^'"]+)['"]|([^\s;]+))/i,
|
|
217
|
+
];
|
|
218
|
+
|
|
219
|
+
const codebaseResults = searchInFiles(cwd, codebasePatterns);
|
|
220
|
+
|
|
221
|
+
// Merge codebase results (env files take precedence)
|
|
222
|
+
for (const [key, value] of codebaseResults) {
|
|
223
|
+
const lowerKey = key.toLowerCase();
|
|
224
|
+
if (lowerKey.includes('url') && !mergedEnv.has('SUPABASE_URL')) {
|
|
225
|
+
mergedEnv.set('SUPABASE_URL', value);
|
|
226
|
+
} else if (lowerKey.includes('service') && !mergedEnv.has('SUPABASE_SERVICE_ROLE_KEY')) {
|
|
227
|
+
mergedEnv.set('SUPABASE_SERVICE_ROLE_KEY', value);
|
|
228
|
+
} else if (lowerKey.includes('anon') && !mergedEnv.has('SUPABASE_ANON_KEY')) {
|
|
229
|
+
mergedEnv.set('SUPABASE_ANON_KEY', value);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
161
233
|
const supabaseUrl = findByAliases(mergedEnv, SUPABASE_URL_ALIASES);
|
|
162
234
|
const serviceRoleKey = findByAliases(mergedEnv, SERVICE_ROLE_KEY_ALIASES);
|
|
163
235
|
const anonKey = findByAliases(mergedEnv, ANON_KEY_ALIASES);
|
|
@@ -183,6 +255,8 @@ export async function scanProject(cwd: string): Promise<ScanResult> {
|
|
|
183
255
|
|
|
184
256
|
if (foundInFile) {
|
|
185
257
|
logSuccess(`found credentials in ${foundInFile}`);
|
|
258
|
+
} else if (codebaseResults.size > 0) {
|
|
259
|
+
logSuccess(`found credentials in codebase`);
|
|
186
260
|
}
|
|
187
261
|
|
|
188
262
|
return {
|