@spilno/herald-mcp 1.35.0 → 1.36.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 +27 -23
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +5 -8
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +57 -31
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/login.d.ts +1 -0
- package/dist/cli/login.d.ts.map +1 -1
- package/dist/cli/login.js +15 -2
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/templates/claude-md.d.ts +3 -3
- package/dist/cli/templates/claude-md.d.ts.map +1 -1
- package/dist/cli/templates/claude-md.js +9 -9
- package/dist/cli/templates/claude-md.js.map +1 -1
- package/dist/cli.js +264 -83
- package/dist/cli.js.map +1 -1
- package/dist/sanitization.spec.js +1 -1
- package/dist/sanitization.spec.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +74 -2
- package/dist/sdk.js.map +1 -1
- package/dist/session-tools.spec.js +3 -3
- package/dist/session-tools.spec.js.map +1 -1
- package/package.json +3 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2822
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -32,6 +32,14 @@ herald.gotStuck('What failed');
|
|
|
32
32
|
|
|
33
33
|
### MCP Server (for AI agents like Claude)
|
|
34
34
|
|
|
35
|
+
**Recommended: Global install** (prevents npx process spawning issues)
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g @spilno/herald-mcp
|
|
38
|
+
cd your-project
|
|
39
|
+
herald-mcp init
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Alternative: npx**
|
|
35
43
|
```bash
|
|
36
44
|
cd your-project
|
|
37
45
|
npx @spilno/herald-mcp init
|
|
@@ -60,7 +68,7 @@ herald.configure({ baseUrl: 'https://custom.ceda.com', token: 'your-token' });
|
|
|
60
68
|
2. Fetches learned patterns from CEDA (if any exist)
|
|
61
69
|
3. Creates/updates `CLAUDE.md` with patterns baked in
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
Org and project default to your folder name. Zero config.
|
|
64
72
|
|
|
65
73
|
## Interactive Chat
|
|
66
74
|
|
|
@@ -100,32 +108,26 @@ No AI key needed. Just pattern capture and recall.
|
|
|
100
108
|
## Init Options
|
|
101
109
|
|
|
102
110
|
```bash
|
|
103
|
-
|
|
111
|
+
herald-mcp init [options]
|
|
104
112
|
```
|
|
105
113
|
|
|
106
114
|
| Option | Description |
|
|
107
115
|
|--------|-------------|
|
|
108
116
|
| `--sync`, `-s` | Just sync patterns to CLAUDE.md (quick update) |
|
|
109
117
|
| `--hookify` | Generate hookify rules for auto pattern reminders |
|
|
110
|
-
| `--company`, `-c` | Override company (default: folder name) |
|
|
111
|
-
| `--project`, `-p` | Override project (default: folder name) |
|
|
112
|
-
| `--user`, `-u` | Override user (default: "default") |
|
|
113
118
|
| `--force`, `-f` | Overwrite existing config |
|
|
114
119
|
| `--help`, `-h` | Show help |
|
|
115
120
|
|
|
116
121
|
**Examples:**
|
|
117
122
|
```bash
|
|
118
|
-
# Basic setup (zero config)
|
|
119
|
-
|
|
123
|
+
# Basic setup (zero config - context from git)
|
|
124
|
+
herald-mcp init
|
|
120
125
|
|
|
121
126
|
# Sync latest patterns to CLAUDE.md
|
|
122
|
-
|
|
127
|
+
herald-mcp init --sync
|
|
123
128
|
|
|
124
129
|
# Add auto-reminder hooks
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
# Custom context
|
|
128
|
-
npx @spilno/herald-mcp init --company acme --project safety
|
|
130
|
+
herald-mcp init --hookify
|
|
129
131
|
```
|
|
130
132
|
|
|
131
133
|
## Pattern Inheritance
|
|
@@ -137,10 +139,10 @@ user (your personal patterns)
|
|
|
137
139
|
↓ inherits from
|
|
138
140
|
project (team patterns)
|
|
139
141
|
↓ inherits from
|
|
140
|
-
|
|
142
|
+
org (org-wide patterns)
|
|
141
143
|
```
|
|
142
144
|
|
|
143
|
-
More specific patterns take precedence. If you have a pattern and your
|
|
145
|
+
More specific patterns take precedence. If you have a pattern and your org has the same one, yours wins.
|
|
144
146
|
|
|
145
147
|
## MCP Resources
|
|
146
148
|
|
|
@@ -149,7 +151,7 @@ Herald exposes patterns as MCP resources (auto-readable by Claude Code):
|
|
|
149
151
|
| Resource | Description |
|
|
150
152
|
|----------|-------------|
|
|
151
153
|
| `herald://patterns` | Learned patterns for current context |
|
|
152
|
-
| `herald://context` | Current configuration (
|
|
154
|
+
| `herald://context` | Current configuration (org/project/user) |
|
|
153
155
|
|
|
154
156
|
## Core Tools
|
|
155
157
|
|
|
@@ -208,9 +210,12 @@ Requires [hookify plugin](https://github.com/anthropics/claude-code/tree/main/pl
|
|
|
208
210
|
| Variable | Default | Description |
|
|
209
211
|
|----------|---------|-------------|
|
|
210
212
|
| `CEDA_URL` | https://getceda.com | CEDA backend URL |
|
|
211
|
-
| `
|
|
212
|
-
|
|
213
|
-
|
|
213
|
+
| `CEDA_TOKEN` | - | Auth token from getceda.com |
|
|
214
|
+
|
|
215
|
+
**Context is derived from git** (no env vars needed):
|
|
216
|
+
- `org` ← git remote (github.com/**org**/repo)
|
|
217
|
+
- `project` ← git remote (github.com/org/**project**)
|
|
218
|
+
- `user` ← git config user.name
|
|
214
219
|
|
|
215
220
|
## How It Works
|
|
216
221
|
|
|
@@ -302,13 +307,12 @@ Configure the SDK (optional - uses git context by default).
|
|
|
302
307
|
```typescript
|
|
303
308
|
herald.configure({
|
|
304
309
|
baseUrl: 'https://custom.ceda.com',
|
|
305
|
-
token: 'your-api-token'
|
|
306
|
-
company: 'acme',
|
|
307
|
-
project: 'backend',
|
|
308
|
-
user: 'developer'
|
|
310
|
+
token: 'your-api-token'
|
|
309
311
|
});
|
|
310
312
|
```
|
|
311
313
|
|
|
314
|
+
Context (org/project/user) is always derived from git. No manual override needed.
|
|
315
|
+
|
|
312
316
|
### Context Detection
|
|
313
317
|
|
|
314
318
|
By default, the SDK automatically derives context from:
|
|
@@ -331,4 +335,4 @@ MIT
|
|
|
331
335
|
|
|
332
336
|
---
|
|
333
337
|
|
|
334
|
-
*Herald v1.
|
|
338
|
+
*Herald v1.36.0 — Pattern memory for AI agents*
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAuBH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAiB7D;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAuBH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAiB7D;AAmFD,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ClE"}
|
package/dist/cli/config.js
CHANGED
|
@@ -63,19 +63,16 @@ The config uses your logged-in identity. Run 'herald login' first.
|
|
|
63
63
|
`);
|
|
64
64
|
}
|
|
65
65
|
function buildConfig(auth, project) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
// Add token if authenticated
|
|
70
|
-
if (auth?.token) {
|
|
71
|
-
env.CEDA_TOKEN = auth.token;
|
|
72
|
-
}
|
|
66
|
+
// CEDA-FIX: No CEDA_TOKEN needed in config - MCP server reads from ~/.herald/token.json
|
|
67
|
+
// This means ONE login works for ALL projects
|
|
73
68
|
return {
|
|
74
69
|
mcpServers: {
|
|
75
70
|
herald: {
|
|
76
71
|
command: "npx",
|
|
77
72
|
args: ["@spilno/herald-mcp@latest"],
|
|
78
|
-
env
|
|
73
|
+
env: {
|
|
74
|
+
CEDA_URL: "https://getceda.com"
|
|
75
|
+
}
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
78
|
};
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAOlD,SAAS,aAAa;IACpB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AASD,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;CAkBb,CAAC,CAAC;AACH,CAAC;AAYD,SAAS,WAAW,CAAC,IAAuB,EAAE,OAAe;IAC3D,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.d.ts
CHANGED
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AA+DH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAyBzD;AAgDD,wBAAsB,OAAO,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKhE"}
|
package/dist/cli/init.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
|
|
11
11
|
import { join, basename } from "path";
|
|
12
|
-
import { userInfo } from "os";
|
|
12
|
+
import { userInfo, homedir } from "os";
|
|
13
13
|
import { updateClaudeMdContent, fetchLearnedPatterns } from "./templates/claude-md.js";
|
|
14
14
|
import { getHookifyRulesContent } from "./templates/hookify-rules.js";
|
|
15
15
|
function deriveUser() {
|
|
@@ -20,16 +20,18 @@ function deriveUser() {
|
|
|
20
20
|
return "unknown";
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
function buildHeraldConfig(
|
|
23
|
+
function buildHeraldConfig() {
|
|
24
|
+
// CEDA-105: Pure git derivation - no HERALD_* env vars needed
|
|
25
|
+
// org/project/user all derived from git remote and git config
|
|
26
|
+
// Auth: Global token from ~/.herald/token.json (via `herald login`)
|
|
24
27
|
return {
|
|
25
28
|
mcpServers: {
|
|
26
29
|
herald: {
|
|
27
30
|
command: "npx",
|
|
28
31
|
args: ["@spilno/herald-mcp@latest"],
|
|
29
32
|
env: {
|
|
30
|
-
CEDA_URL: "https://getceda.com"
|
|
31
|
-
|
|
32
|
-
HERALD_PROJECT: project
|
|
33
|
+
CEDA_URL: "https://getceda.com"
|
|
34
|
+
// No CEDA_TOKEN needed here - uses global ~/.herald/token.json
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
}
|
|
@@ -41,27 +43,26 @@ Herald MCP Init - One command setup for CEDA pattern learning
|
|
|
41
43
|
|
|
42
44
|
Usage:
|
|
43
45
|
cd your-project
|
|
44
|
-
|
|
46
|
+
herald-mcp init
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
Context (org/project/user) is derived from git automatically.
|
|
47
49
|
|
|
48
50
|
Options:
|
|
49
51
|
--sync, -s Sync patterns to CLAUDE.md (quick update, no full init)
|
|
50
52
|
--hookify Generate hookify rules for auto pattern reminders
|
|
51
|
-
--company, -c Override company (default: folder name)
|
|
52
|
-
--project, -p Override project (default: folder name)
|
|
53
|
-
--user, -u Override user (default: OS username)
|
|
54
53
|
--force, -f Overwrite existing config
|
|
55
54
|
--no-claude-md Skip CLAUDE.md modification
|
|
56
55
|
--help, -h Show this help
|
|
57
56
|
|
|
58
57
|
Examples:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
npx @spilno/herald-mcp@latest init --company goprint
|
|
58
|
+
herald-mcp init # Basic setup
|
|
59
|
+
herald-mcp init --sync # Just sync patterns
|
|
60
|
+
herald-mcp init --hookify # Add auto-reminders
|
|
63
61
|
|
|
64
|
-
|
|
62
|
+
After init:
|
|
63
|
+
1. Add CEDA_TOKEN from getceda.com to .mcp.json
|
|
64
|
+
2. Start Claude Code
|
|
65
|
+
3. Say "herald health" to verify
|
|
65
66
|
`);
|
|
66
67
|
}
|
|
67
68
|
export function parseInitArgs(args) {
|
|
@@ -74,8 +75,8 @@ export function parseInitArgs(args) {
|
|
|
74
75
|
else if (arg === "--force" || arg === "-f") {
|
|
75
76
|
options.force = true;
|
|
76
77
|
}
|
|
77
|
-
else if (arg === "--
|
|
78
|
-
options.
|
|
78
|
+
else if (arg === "--org" || arg === "-c") {
|
|
79
|
+
options.org = args[++i];
|
|
79
80
|
}
|
|
80
81
|
else if (arg === "--project" || arg === "-p") {
|
|
81
82
|
options.project = args[++i];
|
|
@@ -99,23 +100,24 @@ async function runSyncPatterns(cwd, claudeMdPath, options) {
|
|
|
99
100
|
const projectName = basename(cwd);
|
|
100
101
|
const mcpJsonPath = join(cwd, ".mcp.json");
|
|
101
102
|
// Try to get context from .mcp.json, fall back to folder name
|
|
102
|
-
let
|
|
103
|
+
let org = options.org || projectName;
|
|
103
104
|
let project = options.project || projectName;
|
|
104
105
|
let user = options.user || deriveUser();
|
|
105
106
|
if (existsSync(mcpJsonPath)) {
|
|
106
107
|
try {
|
|
107
108
|
const mcpConfig = JSON.parse(readFileSync(mcpJsonPath, "utf-8"));
|
|
108
109
|
const heraldEnv = mcpConfig.mcpServers?.herald?.env || {};
|
|
109
|
-
|
|
110
|
+
// Support both HERALD_ORG (new) and HERALD_ORG (legacy)
|
|
111
|
+
org = options.org || heraldEnv.HERALD_ORG || heraldEnv.HERALD_ORG || projectName;
|
|
110
112
|
project = options.project || heraldEnv.HERALD_PROJECT || projectName;
|
|
111
113
|
user = options.user || heraldEnv.HERALD_USER || deriveUser();
|
|
112
114
|
}
|
|
113
115
|
catch { /* ignore */ }
|
|
114
116
|
}
|
|
115
|
-
const context = {
|
|
117
|
+
const context = { org, project, user };
|
|
116
118
|
const cedaUrl = "https://getceda.com";
|
|
117
|
-
console.log(`Syncing patterns for ${user}→${project}→${
|
|
118
|
-
const learnedPatterns = await fetchLearnedPatterns(cedaUrl,
|
|
119
|
+
console.log(`Syncing patterns for ${user}→${project}→${org}...`);
|
|
120
|
+
const learnedPatterns = await fetchLearnedPatterns(cedaUrl, org, project, user);
|
|
119
121
|
if (!learnedPatterns) {
|
|
120
122
|
console.log("Failed to fetch patterns from CEDA");
|
|
121
123
|
return;
|
|
@@ -146,10 +148,10 @@ export async function runInit(args = []) {
|
|
|
146
148
|
return runSyncPatterns(cwd, claudeMdPath, options);
|
|
147
149
|
}
|
|
148
150
|
// Zero-config: derive from folder name, flags override
|
|
149
|
-
const
|
|
151
|
+
const org = options.org || projectName;
|
|
150
152
|
const project = options.project || projectName;
|
|
151
153
|
const context = {
|
|
152
|
-
|
|
154
|
+
org,
|
|
153
155
|
project,
|
|
154
156
|
user: options.user || deriveUser(),
|
|
155
157
|
};
|
|
@@ -178,7 +180,7 @@ To overwrite:
|
|
|
178
180
|
`);
|
|
179
181
|
return;
|
|
180
182
|
}
|
|
181
|
-
const heraldConfig = buildHeraldConfig(
|
|
183
|
+
const heraldConfig = buildHeraldConfig();
|
|
182
184
|
let finalConfig = heraldConfig;
|
|
183
185
|
if (existsSync(mcpJsonPath)) {
|
|
184
186
|
try {
|
|
@@ -207,7 +209,7 @@ To overwrite:
|
|
|
207
209
|
// Fetch learned patterns from CEDA
|
|
208
210
|
const cedaUrl = "https://getceda.com";
|
|
209
211
|
console.log("Fetching learned patterns from CEDA...");
|
|
210
|
-
const learnedPatterns = await fetchLearnedPatterns(cedaUrl,
|
|
212
|
+
const learnedPatterns = await fetchLearnedPatterns(cedaUrl, org, project);
|
|
211
213
|
if (learnedPatterns) {
|
|
212
214
|
const totalPatterns = learnedPatterns.patterns.length + learnedPatterns.antipatterns.length;
|
|
213
215
|
if (totalPatterns > 0) {
|
|
@@ -238,19 +240,43 @@ To overwrite:
|
|
|
238
240
|
console.log(" - Pattern check reminder on prompts");
|
|
239
241
|
console.log(" - Pattern capture reminder on session end");
|
|
240
242
|
}
|
|
241
|
-
|
|
243
|
+
// Check if user is already logged in globally
|
|
244
|
+
const globalTokenPath = join(homedir(), ".herald", "token.json");
|
|
245
|
+
const hasGlobalToken = existsSync(globalTokenPath);
|
|
246
|
+
if (hasGlobalToken) {
|
|
247
|
+
console.log(`
|
|
248
|
+
✓ Herald configured
|
|
249
|
+
|
|
250
|
+
Backend: https://getceda.com
|
|
251
|
+
Context: Derived from git (org/project/user)
|
|
252
|
+
Auth: Using global token from ~/.herald/token.json ✓
|
|
253
|
+
|
|
254
|
+
Next steps:
|
|
255
|
+
1. Start Claude Code in this directory
|
|
256
|
+
2. Say "herald health" to verify
|
|
257
|
+
|
|
258
|
+
Capture patterns:
|
|
259
|
+
Say "Herald reflect - that was smooth"
|
|
260
|
+
Claude asks what worked → you answer → saved.
|
|
261
|
+
`);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
console.log(`
|
|
242
265
|
✓ Herald configured
|
|
243
266
|
|
|
244
|
-
Company: ${company}
|
|
245
|
-
Project: ${project}
|
|
246
267
|
Backend: https://getceda.com
|
|
268
|
+
Context: Derived from git (org/project/user)
|
|
247
269
|
|
|
248
|
-
Next:
|
|
249
|
-
|
|
270
|
+
Next steps:
|
|
271
|
+
1. Run: npx @spilno/herald-mcp login
|
|
272
|
+
(One-time login - works for all your projects)
|
|
273
|
+
2. Start Claude Code in this directory
|
|
274
|
+
3. Say "herald health" to verify
|
|
250
275
|
|
|
251
276
|
Capture patterns:
|
|
252
277
|
Say "Herald reflect - that was smooth"
|
|
253
278
|
Claude asks what worked → you answer → saved.
|
|
254
279
|
`);
|
|
280
|
+
}
|
|
255
281
|
}
|
|
256
282
|
//# sourceMappingURL=init.js.map
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/login.d.ts
CHANGED
package/dist/cli/login.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAYH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA0CD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAY3D;AAuBD,wBAAsB,QAAQ,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAYH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA0CD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAY3D;AAuBD,wBAAsB,QAAQ,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHjE"}
|
package/dist/cli/login.js
CHANGED
|
@@ -114,6 +114,7 @@ To logout:
|
|
|
114
114
|
const url = new URL(req.url || "", `http://localhost:${PORT}`);
|
|
115
115
|
if (url.pathname === CALLBACK_PATH) {
|
|
116
116
|
const token = url.searchParams.get("token");
|
|
117
|
+
const refreshToken = url.searchParams.get("refresh_token");
|
|
117
118
|
const login = url.searchParams.get("login");
|
|
118
119
|
const email = url.searchParams.get("email");
|
|
119
120
|
const error = url.searchParams.get("error");
|
|
@@ -133,10 +134,22 @@ To logout:
|
|
|
133
134
|
process.exit(1);
|
|
134
135
|
}
|
|
135
136
|
if (token && login) {
|
|
136
|
-
//
|
|
137
|
+
// Compute expiresAt from JWT exp claim
|
|
138
|
+
let expiresAt;
|
|
139
|
+
try {
|
|
140
|
+
const payload = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
|
|
141
|
+
expiresAt = payload.exp
|
|
142
|
+
? new Date(payload.exp * 1000).toISOString()
|
|
143
|
+
: new Date(Date.now() + 60 * 60 * 1000).toISOString(); // fallback 1h
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
expiresAt = new Date(Date.now() + 60 * 60 * 1000).toISOString();
|
|
147
|
+
}
|
|
148
|
+
// Store the token (and refresh token if provided)
|
|
137
149
|
const auth = {
|
|
138
150
|
token,
|
|
139
|
-
|
|
151
|
+
refreshToken: refreshToken || undefined,
|
|
152
|
+
expiresAt,
|
|
140
153
|
user: { login, email: email || undefined }
|
|
141
154
|
};
|
|
142
155
|
storeAuth(auth);
|
package/dist/cli/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,qBAAqB,CAAC;AAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* when running `herald-mcp init`.
|
|
6
6
|
*/
|
|
7
7
|
export interface HeraldContext {
|
|
8
|
-
|
|
8
|
+
org: string;
|
|
9
9
|
project: string;
|
|
10
10
|
user: string;
|
|
11
11
|
}
|
|
@@ -22,8 +22,8 @@ export interface LearnedPatterns {
|
|
|
22
22
|
}>;
|
|
23
23
|
}
|
|
24
24
|
export declare const HERALD_SECTION_MARKER = "## Herald Integration";
|
|
25
|
-
export declare const HERALD_SECTION_TEMPLATE = "## Herald Integration\n\nYou have Herald MCP tools available. USE THEM.\n\n### On Session Start\n- Call `herald_patterns()` to learn from past sessions\n- Review antipatterns below BEFORE starting work\n\n### Pattern Capture\n- When things go WRONG: \"Herald reflect - that was rough\"\n- When things go WELL: \"Herald reflect - that was smooth\"\n- For deep analysis: \"Herald simulate\"\n\n### Context\n-
|
|
25
|
+
export declare const HERALD_SECTION_TEMPLATE = "## Herald Integration\n\nYou have Herald MCP tools available. USE THEM.\n\n### On Session Start\n- Call `herald_patterns()` to learn from past sessions\n- Review antipatterns below BEFORE starting work\n\n### Pattern Capture\n- When things go WRONG: \"Herald reflect - that was rough\"\n- When things go WELL: \"Herald reflect - that was smooth\"\n- For deep analysis: \"Herald simulate\"\n\n### Context\n- Org: {{org}}\n- Project: {{project}}\n- User: {{user}}\n\n{{learned_patterns}}\n";
|
|
26
26
|
export declare function renderHeraldSection(context: HeraldContext, learnedPatterns?: LearnedPatterns): string;
|
|
27
|
-
export declare function fetchLearnedPatterns(cedaUrl: string,
|
|
27
|
+
export declare function fetchLearnedPatterns(cedaUrl: string, org: string, project: string, user?: string): Promise<LearnedPatterns | null>;
|
|
28
28
|
export declare function updateClaudeMdContent(existingContent: string | null, context: HeraldContext, projectName: string, learnedPatterns?: LearnedPatterns): string;
|
|
29
29
|
//# sourceMappingURL=claude-md.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,
|
|
1
|
+
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,uBAAuB,4eAmBnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CAkCrG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkDjC;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,eAAe,GAChC,MAAM,CAaR"}
|
|
@@ -19,7 +19,7 @@ You have Herald MCP tools available. USE THEM.
|
|
|
19
19
|
- For deep analysis: "Herald simulate"
|
|
20
20
|
|
|
21
21
|
### Context
|
|
22
|
-
-
|
|
22
|
+
- Org: {{org}}
|
|
23
23
|
- Project: {{project}}
|
|
24
24
|
- User: {{user}}
|
|
25
25
|
|
|
@@ -29,7 +29,7 @@ export function renderHeraldSection(context, learnedPatterns) {
|
|
|
29
29
|
let learnedSection = "";
|
|
30
30
|
if (learnedPatterns && (learnedPatterns.antipatterns.length > 0 || learnedPatterns.patterns.length > 0)) {
|
|
31
31
|
learnedSection = "### Learned from Past Sessions\n\n";
|
|
32
|
-
learnedSection += `*Inheritance: ${context.user}→${context.project}→${context.
|
|
32
|
+
learnedSection += `*Inheritance: ${context.user}→${context.project}→${context.org}*\n\n`;
|
|
33
33
|
if (learnedPatterns.antipatterns.length > 0) {
|
|
34
34
|
learnedSection += "**Antipatterns (AVOID THESE):**\n";
|
|
35
35
|
learnedPatterns.antipatterns.slice(0, 5).forEach((ap, i) => {
|
|
@@ -53,23 +53,23 @@ export function renderHeraldSection(context, learnedPatterns) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
return HERALD_SECTION_TEMPLATE
|
|
56
|
-
.replace("{{
|
|
56
|
+
.replace("{{org}}", context.org)
|
|
57
57
|
.replace("{{project}}", context.project)
|
|
58
58
|
.replace("{{user}}", context.user)
|
|
59
59
|
.replace("{{learned_patterns}}", learnedSection);
|
|
60
60
|
}
|
|
61
|
-
export async function fetchLearnedPatterns(cedaUrl,
|
|
61
|
+
export async function fetchLearnedPatterns(cedaUrl, org, project, user = "unknown") {
|
|
62
62
|
try {
|
|
63
|
-
// Cascade: user → project →
|
|
63
|
+
// Cascade: user → project → org (more specific wins)
|
|
64
64
|
const queries = [
|
|
65
|
-
`${cedaUrl}/api/herald/reflections?
|
|
66
|
-
`${cedaUrl}/api/herald/reflections?
|
|
67
|
-
`${cedaUrl}/api/herald/reflections?
|
|
65
|
+
`${cedaUrl}/api/herald/reflections?org=${org}&project=${project}&user=${user}&limit=10`,
|
|
66
|
+
`${cedaUrl}/api/herald/reflections?org=${org}&project=${project}&limit=10`,
|
|
67
|
+
`${cedaUrl}/api/herald/reflections?org=${org}&limit=10`,
|
|
68
68
|
];
|
|
69
69
|
const seenInsights = new Set();
|
|
70
70
|
const patterns = [];
|
|
71
71
|
const antipatterns = [];
|
|
72
|
-
const scopes = ["user", "project", "
|
|
72
|
+
const scopes = ["user", "project", "org"];
|
|
73
73
|
for (let i = 0; i < queries.length; i++) {
|
|
74
74
|
try {
|
|
75
75
|
const response = await fetch(queries[i]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;CAmBtC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAAsB,EAAE,eAAiC;IAC3F,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACxG,cAAc,GAAG,oCAAoC,CAAC;QACtD,cAAc,IAAI,iBAAiB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../../src/cli/templates/claude-md.ts"],"names":[],"mappings":"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"}
|