@misha_misha/agentwatch 0.0.2 → 0.0.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.
- package/README.md +368 -312
- package/dist/index.js +4602 -841
- package/package.json +15 -3
- package/dist/chunk-5QNDC2VP.js +0 -98
- package/dist/chunk-EMMMIDXY.js +0 -37
- package/dist/detect-JH6COHZ5.js +0 -7
- package/dist/workspace-N6FQVHKD.js +0 -9
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@misha_misha/agentwatch",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "Local-only observability for AI
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Local-only observability for every AI agent on your machine. Unified timeline across Claude Code, Codex, Gemini CLI, Cursor, OpenClaw — with token attribution, anomaly detection, MCP server mode, OpenTelemetry exporter, and hybrid semantic search. No cloud, no telemetry, no sign-in.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Misha Nefedov",
|
|
7
7
|
"repository": {
|
|
@@ -44,11 +44,23 @@
|
|
|
44
44
|
],
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"dependencies": {
|
|
47
|
+
"@huggingface/transformers": "^4.1.0",
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
49
|
+
"@opentelemetry/api": "^1.9.1",
|
|
50
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.214.0",
|
|
51
|
+
"@opentelemetry/resources": "^2.6.1",
|
|
52
|
+
"@opentelemetry/sdk-node": "^0.214.0",
|
|
53
|
+
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
54
|
+
"better-sqlite3": "^12.9.0",
|
|
47
55
|
"chokidar": "^4.0.3",
|
|
56
|
+
"cli-highlight": "^2.1.11",
|
|
57
|
+
"gpt-tokenizer": "^3.4.0",
|
|
48
58
|
"ink": "^5.1.0",
|
|
49
|
-
"react": "^18.3.1"
|
|
59
|
+
"react": "^18.3.1",
|
|
60
|
+
"zod": "^4.3.6"
|
|
50
61
|
},
|
|
51
62
|
"devDependencies": {
|
|
63
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
52
64
|
"@types/node": "^22.10.2",
|
|
53
65
|
"@types/react": "^18.3.18",
|
|
54
66
|
"tsup": "^8.3.5",
|
package/dist/chunk-5QNDC2VP.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/adapters/detect.ts
|
|
4
|
-
import { existsSync } from "fs";
|
|
5
|
-
import { homedir, platform } from "os";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
function detectAgents() {
|
|
8
|
-
const home = homedir();
|
|
9
|
-
const os = platform();
|
|
10
|
-
const clineDir = os === "darwin" ? join(
|
|
11
|
-
home,
|
|
12
|
-
"Library",
|
|
13
|
-
"Application Support",
|
|
14
|
-
"Code",
|
|
15
|
-
"User",
|
|
16
|
-
"globalStorage",
|
|
17
|
-
"saoudrizwan.claude-dev"
|
|
18
|
-
) : join(home, ".config", "Code", "User", "globalStorage", "saoudrizwan.claude-dev");
|
|
19
|
-
return [
|
|
20
|
-
{
|
|
21
|
-
name: "claude-code",
|
|
22
|
-
label: "Claude Code",
|
|
23
|
-
configPath: join(home, ".claude", "settings.json"),
|
|
24
|
-
present: existsSync(join(home, ".claude", "projects")),
|
|
25
|
-
instrumented: true
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "openclaw",
|
|
29
|
-
label: "OpenClaw",
|
|
30
|
-
configPath: join(home, ".openclaw"),
|
|
31
|
-
present: existsSync(join(home, ".openclaw")),
|
|
32
|
-
instrumented: true
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "cursor",
|
|
36
|
-
label: "Cursor",
|
|
37
|
-
configPath: join(home, ".cursor", "mcp.json"),
|
|
38
|
-
present: existsSync(join(home, ".cursor")),
|
|
39
|
-
instrumented: true
|
|
40
|
-
// config-level only in v0; SQLite DB TBD
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: "gemini",
|
|
44
|
-
label: "Gemini CLI",
|
|
45
|
-
configPath: join(home, ".gemini", "settings.json"),
|
|
46
|
-
present: existsSync(join(home, ".gemini")),
|
|
47
|
-
instrumented: true
|
|
48
|
-
},
|
|
49
|
-
// Detected but not yet instrumented — surfaced so users don't think
|
|
50
|
-
// agentwatch is broken when these show up in their workflow.
|
|
51
|
-
{
|
|
52
|
-
name: "codex",
|
|
53
|
-
label: "Codex",
|
|
54
|
-
configPath: join(home, ".codex", "sessions"),
|
|
55
|
-
present: existsSync(join(home, ".codex")),
|
|
56
|
-
instrumented: false
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "aider",
|
|
60
|
-
label: "Aider",
|
|
61
|
-
configPath: "./.aider.chat.history.md (per-repo)",
|
|
62
|
-
present: existsSync(join(home, ".aider.chat.history.md")) || existsSync(join(home, ".aider.input.history")),
|
|
63
|
-
instrumented: false
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "cline",
|
|
67
|
-
label: "Cline (VS Code)",
|
|
68
|
-
configPath: clineDir,
|
|
69
|
-
present: existsSync(clineDir),
|
|
70
|
-
instrumented: false
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "continue",
|
|
74
|
-
label: "Continue.dev",
|
|
75
|
-
configPath: join(home, ".continue"),
|
|
76
|
-
present: existsSync(join(home, ".continue")),
|
|
77
|
-
instrumented: false
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
name: "windsurf",
|
|
81
|
-
label: "Windsurf",
|
|
82
|
-
configPath: join(home, ".codeium"),
|
|
83
|
-
present: existsSync(join(home, ".codeium")),
|
|
84
|
-
instrumented: false
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: "goose",
|
|
88
|
-
label: "Goose (Block)",
|
|
89
|
-
configPath: join(home, ".config", "goose"),
|
|
90
|
-
present: existsSync(join(home, ".config", "goose")),
|
|
91
|
-
instrumented: false
|
|
92
|
-
}
|
|
93
|
-
];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export {
|
|
97
|
-
detectAgents
|
|
98
|
-
};
|
package/dist/chunk-EMMMIDXY.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/util/workspace.ts
|
|
4
|
-
import { existsSync, statSync } from "fs";
|
|
5
|
-
import { homedir } from "os";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
function detectWorkspaceRoot() {
|
|
8
|
-
const envRoot = process.env.WORKSPACE_ROOT;
|
|
9
|
-
if (envRoot && isDir(envRoot)) return envRoot;
|
|
10
|
-
const home = homedir();
|
|
11
|
-
const candidates = [
|
|
12
|
-
join(home, "IdeaProjects"),
|
|
13
|
-
join(home, "src"),
|
|
14
|
-
join(home, "code"),
|
|
15
|
-
join(home, "Projects"),
|
|
16
|
-
join(home, "dev")
|
|
17
|
-
];
|
|
18
|
-
for (const c of candidates) {
|
|
19
|
-
if (isDir(c)) return c;
|
|
20
|
-
}
|
|
21
|
-
return home;
|
|
22
|
-
}
|
|
23
|
-
function claudeProjectsDir() {
|
|
24
|
-
return join(homedir(), ".claude", "projects");
|
|
25
|
-
}
|
|
26
|
-
function isDir(p) {
|
|
27
|
-
try {
|
|
28
|
-
return existsSync(p) && statSync(p).isDirectory();
|
|
29
|
-
} catch {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export {
|
|
35
|
-
detectWorkspaceRoot,
|
|
36
|
-
claudeProjectsDir
|
|
37
|
-
};
|
package/dist/detect-JH6COHZ5.js
DELETED