@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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@misha_misha/agentwatch",
3
- "version": "0.0.2",
4
- "description": "Local-only observability for AI coding agents. See what Claude, Codex, Cursor, Gemini, and OpenClaw are touching on your machine in one timeline.",
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",
@@ -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
- };
@@ -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
- };
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- detectAgents
4
- } from "./chunk-5QNDC2VP.js";
5
- export {
6
- detectAgents
7
- };
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- claudeProjectsDir,
4
- detectWorkspaceRoot
5
- } from "./chunk-EMMMIDXY.js";
6
- export {
7
- claudeProjectsDir,
8
- detectWorkspaceRoot
9
- };