claudecto 0.1.0

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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -0
  3. package/dist/__tests__/package.test.d.ts +2 -0
  4. package/dist/__tests__/package.test.d.ts.map +1 -0
  5. package/dist/__tests__/package.test.js +53 -0
  6. package/dist/__tests__/package.test.js.map +1 -0
  7. package/dist/cli.d.ts +6 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +200 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/index.d.ts +12 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +12 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/server/index.d.ts +11 -0
  16. package/dist/server/index.d.ts.map +1 -0
  17. package/dist/server/index.js +1207 -0
  18. package/dist/server/index.js.map +1 -0
  19. package/dist/services/advisor.d.ts +117 -0
  20. package/dist/services/advisor.d.ts.map +1 -0
  21. package/dist/services/advisor.js +2636 -0
  22. package/dist/services/advisor.js.map +1 -0
  23. package/dist/services/agent-generator.d.ts +71 -0
  24. package/dist/services/agent-generator.d.ts.map +1 -0
  25. package/dist/services/agent-generator.js +295 -0
  26. package/dist/services/agent-generator.js.map +1 -0
  27. package/dist/services/agents.d.ts +67 -0
  28. package/dist/services/agents.d.ts.map +1 -0
  29. package/dist/services/agents.js +405 -0
  30. package/dist/services/agents.js.map +1 -0
  31. package/dist/services/analytics.d.ts +145 -0
  32. package/dist/services/analytics.d.ts.map +1 -0
  33. package/dist/services/analytics.js +609 -0
  34. package/dist/services/analytics.js.map +1 -0
  35. package/dist/services/blueprints.d.ts +31 -0
  36. package/dist/services/blueprints.d.ts.map +1 -0
  37. package/dist/services/blueprints.js +317 -0
  38. package/dist/services/blueprints.js.map +1 -0
  39. package/dist/services/claude-dir.d.ts +50 -0
  40. package/dist/services/claude-dir.d.ts.map +1 -0
  41. package/dist/services/claude-dir.js +193 -0
  42. package/dist/services/claude-dir.js.map +1 -0
  43. package/dist/services/hooks.d.ts +38 -0
  44. package/dist/services/hooks.d.ts.map +1 -0
  45. package/dist/services/hooks.js +165 -0
  46. package/dist/services/hooks.js.map +1 -0
  47. package/dist/services/insights.d.ts +52 -0
  48. package/dist/services/insights.d.ts.map +1 -0
  49. package/dist/services/insights.js +1035 -0
  50. package/dist/services/insights.js.map +1 -0
  51. package/dist/services/memory.d.ts +14 -0
  52. package/dist/services/memory.d.ts.map +1 -0
  53. package/dist/services/memory.js +25 -0
  54. package/dist/services/memory.js.map +1 -0
  55. package/dist/services/plans.d.ts +20 -0
  56. package/dist/services/plans.d.ts.map +1 -0
  57. package/dist/services/plans.js +149 -0
  58. package/dist/services/plans.js.map +1 -0
  59. package/dist/services/project-intelligence.d.ts +75 -0
  60. package/dist/services/project-intelligence.d.ts.map +1 -0
  61. package/dist/services/project-intelligence.js +731 -0
  62. package/dist/services/project-intelligence.js.map +1 -0
  63. package/dist/services/search.d.ts +32 -0
  64. package/dist/services/search.d.ts.map +1 -0
  65. package/dist/services/search.js +203 -0
  66. package/dist/services/search.js.map +1 -0
  67. package/dist/services/sessions.d.ts +25 -0
  68. package/dist/services/sessions.d.ts.map +1 -0
  69. package/dist/services/sessions.js +248 -0
  70. package/dist/services/sessions.js.map +1 -0
  71. package/dist/services/skills.d.ts +30 -0
  72. package/dist/services/skills.d.ts.map +1 -0
  73. package/dist/services/skills.js +197 -0
  74. package/dist/services/skills.js.map +1 -0
  75. package/dist/services/stats.d.ts +23 -0
  76. package/dist/services/stats.d.ts.map +1 -0
  77. package/dist/services/stats.js +88 -0
  78. package/dist/services/stats.js.map +1 -0
  79. package/dist/services/teams.d.ts +115 -0
  80. package/dist/services/teams.d.ts.map +1 -0
  81. package/dist/services/teams.js +421 -0
  82. package/dist/services/teams.js.map +1 -0
  83. package/dist/services/tech-stack.d.ts +98 -0
  84. package/dist/services/tech-stack.d.ts.map +1 -0
  85. package/dist/services/tech-stack.js +1088 -0
  86. package/dist/services/tech-stack.js.map +1 -0
  87. package/dist/services/terminal.d.ts +75 -0
  88. package/dist/services/terminal.d.ts.map +1 -0
  89. package/dist/services/terminal.js +224 -0
  90. package/dist/services/terminal.js.map +1 -0
  91. package/dist/types.d.ts +1095 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +18 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/ui/assets/index-BiH4Nhdk.css +1 -0
  96. package/dist/ui/assets/index-Brv-K8bd.css +1 -0
  97. package/dist/ui/assets/index-BwMBEdQz.js +3108 -0
  98. package/dist/ui/assets/index-BwMBEdQz.js.map +1 -0
  99. package/dist/ui/assets/index-CEWz7ABD.js +3108 -0
  100. package/dist/ui/assets/index-CEWz7ABD.js.map +1 -0
  101. package/dist/ui/assets/index-CIZ3vvc-.css +1 -0
  102. package/dist/ui/assets/index-CsU3cI0n.js +3108 -0
  103. package/dist/ui/assets/index-CsU3cI0n.js.map +1 -0
  104. package/dist/ui/assets/index-D3AY6iCS.js +3133 -0
  105. package/dist/ui/assets/index-D3AY6iCS.js.map +1 -0
  106. package/dist/ui/assets/index-D8lNZ0Ye.css +1 -0
  107. package/dist/ui/assets/index-DmgeppSA.js +3108 -0
  108. package/dist/ui/assets/index-DmgeppSA.js.map +1 -0
  109. package/dist/ui/favicon.svg +43 -0
  110. package/dist/ui/index.html +23 -0
  111. package/dist/utils/jsonl.d.ts +16 -0
  112. package/dist/utils/jsonl.d.ts.map +1 -0
  113. package/dist/utils/jsonl.js +51 -0
  114. package/dist/utils/jsonl.js.map +1 -0
  115. package/package.json +106 -0
@@ -0,0 +1,43 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <!-- Warm terracotta gradient matching the app theme -->
4
+ <linearGradient id="terracotta" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse">
5
+ <stop stop-color="#E8845C"/>
6
+ <stop offset="1" stop-color="#C96A42"/>
7
+ </linearGradient>
8
+ <!-- Subtle inner shadow -->
9
+ <filter id="inner-glow" x="-20%" y="-20%" width="140%" height="140%">
10
+ <feGaussianBlur in="SourceAlpha" stdDeviation="1" result="blur"/>
11
+ <feOffset in="blur" dx="0" dy="1" result="offsetBlur"/>
12
+ <feComposite in="SourceGraphic" in2="offsetBlur" operator="over"/>
13
+ </filter>
14
+ </defs>
15
+
16
+ <!-- Rounded square background -->
17
+ <rect width="32" height="32" rx="8" fill="#1C1917"/>
18
+
19
+ <!-- Main terracotta circle - represents the "dot" in .claude -->
20
+ <circle cx="16" cy="16" r="11" fill="url(#terracotta)" filter="url(#inner-glow)"/>
21
+
22
+ <!-- Inner design: stylized brackets representing code/terminal -->
23
+ <!-- Left bracket < -->
24
+ <path
25
+ d="M 13 11 L 9 16 L 13 21"
26
+ stroke="#1C1917"
27
+ stroke-width="2.5"
28
+ stroke-linecap="round"
29
+ stroke-linejoin="round"
30
+ fill="none"
31
+ />
32
+ <!-- Right bracket > -->
33
+ <path
34
+ d="M 19 11 L 23 16 L 19 21"
35
+ stroke="#1C1917"
36
+ stroke-width="2.5"
37
+ stroke-linecap="round"
38
+ stroke-linejoin="round"
39
+ fill="none"
40
+ />
41
+ <!-- Dot in the middle (the key "." in .claude) -->
42
+ <circle cx="16" cy="16" r="1.5" fill="#1C1917"/>
43
+ </svg>
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
+ <meta name="theme-color" content="#11100f" />
9
+ <title>claudecto</title>
10
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
+ <link
13
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"
14
+ rel="stylesheet" />
15
+ <script type="module" crossorigin src="/assets/index-D3AY6iCS.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-D8lNZ0Ye.css">
17
+ </head>
18
+
19
+ <body>
20
+ <div id="root"></div>
21
+ </body>
22
+
23
+ </html>
@@ -0,0 +1,16 @@
1
+ /**
2
+ * JSONL parsing utilities
3
+ */
4
+ /**
5
+ * Parse a JSONL file line by line, yielding each parsed object
6
+ */
7
+ export declare function parseJSONL<T>(filePath: string): AsyncGenerator<T>;
8
+ /**
9
+ * Parse all lines from a JSONL file into an array
10
+ */
11
+ export declare function parseJSONLFile<T>(filePath: string): Promise<T[]>;
12
+ /**
13
+ * Count lines in a JSONL file without loading all into memory
14
+ */
15
+ export declare function countJSONLLines(filePath: string): Promise<number>;
16
+ //# sourceMappingURL=jsonl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../src/utils/jsonl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAuB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAexE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAavE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * JSONL parsing utilities
3
+ */
4
+ import { createReadStream } from 'node:fs';
5
+ import { createInterface } from 'node:readline';
6
+ /**
7
+ * Parse a JSONL file line by line, yielding each parsed object
8
+ */
9
+ export async function* parseJSONL(filePath) {
10
+ const rl = createInterface({
11
+ input: createReadStream(filePath),
12
+ crlfDelay: Infinity,
13
+ });
14
+ for await (const line of rl) {
15
+ if (line.trim()) {
16
+ try {
17
+ yield JSON.parse(line);
18
+ }
19
+ catch {
20
+ // Skip malformed lines
21
+ }
22
+ }
23
+ }
24
+ }
25
+ /**
26
+ * Parse all lines from a JSONL file into an array
27
+ */
28
+ export async function parseJSONLFile(filePath) {
29
+ const items = [];
30
+ for await (const item of parseJSONL(filePath)) {
31
+ items.push(item);
32
+ }
33
+ return items;
34
+ }
35
+ /**
36
+ * Count lines in a JSONL file without loading all into memory
37
+ */
38
+ export async function countJSONLLines(filePath) {
39
+ let count = 0;
40
+ const rl = createInterface({
41
+ input: createReadStream(filePath),
42
+ crlfDelay: Infinity,
43
+ });
44
+ for await (const line of rl) {
45
+ if (line.trim()) {
46
+ count++;
47
+ }
48
+ }
49
+ return count;
50
+ }
51
+ //# sourceMappingURL=jsonl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../src/utils/jsonl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAAI,QAAgB;IACnD,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACjC,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,QAAgB;IACtD,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,UAAU,CAAI,QAAQ,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACjC,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json ADDED
@@ -0,0 +1,106 @@
1
+ {
2
+ "name": "claudecto",
3
+ "version": "0.1.0",
4
+ "description": "If Claude Code is your engineer, claudecto can be your CTO - Visual dashboard to search, browse, and manage your Claude Code data",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "module": "dist/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./server": {
16
+ "types": "./dist/server/index.d.ts",
17
+ "import": "./dist/server/index.js",
18
+ "default": "./dist/server/index.js"
19
+ }
20
+ },
21
+ "bin": {
22
+ "claudecto": "dist/cli.js"
23
+ },
24
+ "workspaces": [
25
+ "ui",
26
+ "server"
27
+ ],
28
+ "files": [
29
+ "dist/**",
30
+ "README.md",
31
+ "LICENSE"
32
+ ],
33
+ "private": false,
34
+ "scripts": {
35
+ "dev": "tsx src/cli.ts",
36
+ "dev:server": "npm run dev --workspace=server",
37
+ "build": "tsc && npm run build:ui && npm run copy:ui",
38
+ "build:server": "tsc",
39
+ "build:auth-server": "npm run build --workspace=server",
40
+ "build:ui": "cd ui && npm install && npm run build",
41
+ "copy:ui": "node -e \"require('fs').cpSync('ui/dist','dist/ui',{recursive:true})\"",
42
+ "test": "node --test dist/__tests__/package.test.js",
43
+ "start": "node dist/cli.js",
44
+ "start:auth-server": "npm run start --workspace=server",
45
+ "prepublishOnly": "npm run build",
46
+ "electron:dev": "npm run build && npm run electron:build && electron electron-dist/main.js",
47
+ "electron:build": "tsc -p tsconfig.electron.json",
48
+ "package": "npm run build && npm run electron:build && electron-forge package",
49
+ "make": "npm run build && npm run electron:build && electron-forge make",
50
+ "make:unsigned": "SKIP_SIGNING=true npm run make"
51
+ },
52
+ "keywords": [
53
+ "claude",
54
+ "claude-code",
55
+ "dashboard",
56
+ "search",
57
+ "skills",
58
+ "hooks",
59
+ "memory",
60
+ "anthropic",
61
+ "ai",
62
+ "developer-tools"
63
+ ],
64
+ "author": "josharsh",
65
+ "license": "MIT",
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/josharsh/claudecto.git"
69
+ },
70
+ "homepage": "https://claudecto.com",
71
+ "bugs": {
72
+ "url": "https://github.com/josharsh/claudecto/issues"
73
+ },
74
+ "publishConfig": {
75
+ "access": "public",
76
+ "registry": "https://registry.npmjs.org/"
77
+ },
78
+ "engines": {
79
+ "node": ">=18.0.0"
80
+ },
81
+ "dependencies": {
82
+ "commander": "^12.1.0",
83
+ "hono": "^4.6.0",
84
+ "ws": "^8.18.0",
85
+ "yaml": "^2.4.0"
86
+ },
87
+ "devDependencies": {
88
+ "@changesets/cli": "^2.27.0",
89
+ "@electron-forge/cli": "^7.4.0",
90
+ "@electron-forge/maker-dmg": "^7.4.0",
91
+ "@electron-forge/maker-zip": "^7.4.0",
92
+ "@electron-forge/plugin-auto-unpack-natives": "^7.4.0",
93
+ "@electron/notarize": "^2.3.0",
94
+ "@electron/osx-sign": "^1.3.0",
95
+ "@electron/rebuild": "^3.6.0",
96
+ "@types/node": "^22.0.0",
97
+ "@types/ws": "^8.5.0",
98
+ "electron": "^31.7.7",
99
+ "sharp": "^0.34.5",
100
+ "tsx": "^4.19.0",
101
+ "typescript": "^5.6.0"
102
+ },
103
+ "optionalDependencies": {
104
+ "node-pty": "^1.0.0"
105
+ }
106
+ }