getprismo 0.1.4 → 0.1.6
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/LICENSE +21 -0
- package/NOTICE +16 -0
- package/README.md +614 -88
- package/docs/prismodev-user-testing.md +10 -10
- package/lib/prismo-dev/constants.js +173 -0
- package/lib/prismo-dev/context-optimize.js +629 -0
- package/lib/prismo-dev/doctor.js +453 -0
- package/lib/prismo-dev/firewall.js +215 -0
- package/lib/prismo-dev/fixes.js +109 -0
- package/lib/prismo-dev/report.js +360 -0
- package/lib/prismo-dev/scan.js +1126 -0
- package/lib/prismo-dev/usage-watch.js +1852 -0
- package/lib/prismo-dev-scan.js +468 -2685
- package/package.json +24 -7
|
@@ -27,17 +27,17 @@ Prefer developers with real repos, long sessions, local logs, generated files, l
|
|
|
27
27
|
Ask each tester to run these from a real project root:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
npx getprismo@0.1.
|
|
31
|
-
npx getprismo@0.1.
|
|
32
|
-
npx getprismo@0.1.
|
|
30
|
+
npx getprismo@0.1.5 scan --usage --no-report
|
|
31
|
+
npx getprismo@0.1.5 setup
|
|
32
|
+
npx getprismo@0.1.5 watch --once
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Optional follow-up if they find useful issues:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
npx getprismo@0.1.
|
|
39
|
-
npx getprismo@0.1.
|
|
40
|
-
npx getprismo@0.1.
|
|
38
|
+
npx getprismo@0.1.5 scan --fix
|
|
39
|
+
npx getprismo@0.1.5 optimize
|
|
40
|
+
npx getprismo@0.1.5 context frontend
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## Outreach Message
|
|
@@ -51,9 +51,9 @@ No API keys, no prompt interception, no subscription proxying.
|
|
|
51
51
|
|
|
52
52
|
Could you run these three commands from a real repo and send me a screenshot or notes on what was useful/confusing?
|
|
53
53
|
|
|
54
|
-
npx getprismo@0.1.
|
|
55
|
-
npx getprismo@0.1.
|
|
56
|
-
npx getprismo@0.1.
|
|
54
|
+
npx getprismo@0.1.5 scan --usage --no-report
|
|
55
|
+
npx getprismo@0.1.5 setup
|
|
56
|
+
npx getprismo@0.1.5 watch --once
|
|
57
57
|
|
|
58
58
|
I’m mainly trying to learn whether the output is useful enough for developers who use Codex, Claude Code, or Cursor.
|
|
59
59
|
```
|
|
@@ -133,7 +133,7 @@ After 5-10 user runs, choose the next product bet:
|
|
|
133
133
|
Default if feedback is mixed:
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
|
-
npx getprismo setup codex
|
|
136
|
+
npx getprismo@0.1.5 setup codex
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
This should generate safe instructions for routing API-mode Codex traffic through Prismo. It should not auto-edit user config.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
const HIGH_RISK_DIRS = [
|
|
2
|
+
"node_modules",
|
|
3
|
+
".next",
|
|
4
|
+
"dist",
|
|
5
|
+
"build",
|
|
6
|
+
"coverage",
|
|
7
|
+
".turbo",
|
|
8
|
+
".venv",
|
|
9
|
+
"venv",
|
|
10
|
+
"__pycache__",
|
|
11
|
+
".pytest_cache",
|
|
12
|
+
".cache",
|
|
13
|
+
"logs",
|
|
14
|
+
"test-results",
|
|
15
|
+
"playwright-report",
|
|
16
|
+
"tmp",
|
|
17
|
+
"temp",
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const HIGH_RISK_FILE_NAMES = new Set([
|
|
21
|
+
"package-lock.json",
|
|
22
|
+
"yarn.lock",
|
|
23
|
+
"pnpm-lock.yaml",
|
|
24
|
+
"npm-shrinkwrap.json",
|
|
25
|
+
"coverage-final.json",
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
const BINARY_EXTENSIONS = new Set([
|
|
29
|
+
".png",
|
|
30
|
+
".jpg",
|
|
31
|
+
".jpeg",
|
|
32
|
+
".gif",
|
|
33
|
+
".webp",
|
|
34
|
+
".ico",
|
|
35
|
+
".svg",
|
|
36
|
+
".pdf",
|
|
37
|
+
".zip",
|
|
38
|
+
".gz",
|
|
39
|
+
".tar",
|
|
40
|
+
".tgz",
|
|
41
|
+
".mp4",
|
|
42
|
+
".mov",
|
|
43
|
+
".mp3",
|
|
44
|
+
".wav",
|
|
45
|
+
".woff",
|
|
46
|
+
".woff2",
|
|
47
|
+
".ttf",
|
|
48
|
+
".otf",
|
|
49
|
+
".pyc",
|
|
50
|
+
".class",
|
|
51
|
+
".wasm",
|
|
52
|
+
".sqlite",
|
|
53
|
+
".sqlite3",
|
|
54
|
+
".db",
|
|
55
|
+
".bin",
|
|
56
|
+
]);
|
|
57
|
+
|
|
58
|
+
const SOURCE_EXTENSIONS = new Set([
|
|
59
|
+
".js",
|
|
60
|
+
".jsx",
|
|
61
|
+
".ts",
|
|
62
|
+
".tsx",
|
|
63
|
+
".py",
|
|
64
|
+
".go",
|
|
65
|
+
".rs",
|
|
66
|
+
".java",
|
|
67
|
+
".c",
|
|
68
|
+
".cc",
|
|
69
|
+
".cpp",
|
|
70
|
+
".h",
|
|
71
|
+
".hpp",
|
|
72
|
+
".cs",
|
|
73
|
+
".rb",
|
|
74
|
+
".php",
|
|
75
|
+
".swift",
|
|
76
|
+
".kt",
|
|
77
|
+
".m",
|
|
78
|
+
".mm",
|
|
79
|
+
".scala",
|
|
80
|
+
".sh",
|
|
81
|
+
".sql",
|
|
82
|
+
".css",
|
|
83
|
+
".scss",
|
|
84
|
+
".html",
|
|
85
|
+
".vue",
|
|
86
|
+
".svelte",
|
|
87
|
+
]);
|
|
88
|
+
|
|
89
|
+
const INSTRUCTION_FILES = [
|
|
90
|
+
"CLAUDE.md",
|
|
91
|
+
"AGENTS.md",
|
|
92
|
+
"README.md",
|
|
93
|
+
"README",
|
|
94
|
+
".openai/instructions.md",
|
|
95
|
+
".codex/AGENTS.md",
|
|
96
|
+
".codex/instructions.md",
|
|
97
|
+
".codex/config.toml",
|
|
98
|
+
];
|
|
99
|
+
|
|
100
|
+
const DEFAULT_CLAUDEIGNORE = [
|
|
101
|
+
"node_modules/",
|
|
102
|
+
".next/",
|
|
103
|
+
"dist/",
|
|
104
|
+
"build/",
|
|
105
|
+
"coverage/",
|
|
106
|
+
".turbo/",
|
|
107
|
+
".venv/",
|
|
108
|
+
"venv/",
|
|
109
|
+
"__pycache__/",
|
|
110
|
+
"pycache/",
|
|
111
|
+
".pytest_cache/",
|
|
112
|
+
".cache/",
|
|
113
|
+
"logs/",
|
|
114
|
+
"*.log",
|
|
115
|
+
"*.lock",
|
|
116
|
+
"*.tmp",
|
|
117
|
+
"*.min.js",
|
|
118
|
+
"*.min.css",
|
|
119
|
+
"coverage-final.json",
|
|
120
|
+
"package-lock.json",
|
|
121
|
+
"yarn.lock",
|
|
122
|
+
"pnpm-lock.yaml",
|
|
123
|
+
"test-results/",
|
|
124
|
+
"playwright-report/",
|
|
125
|
+
];
|
|
126
|
+
|
|
127
|
+
const NPX_COMMAND = "npx getprismo";
|
|
128
|
+
const DEFAULT_PRISMO_PROXY_URL = process.env.PRISMO_PROXY_URL || "http://localhost:8000";
|
|
129
|
+
const CLAUDE_PRICING = {
|
|
130
|
+
"opus-4.1": { name: "Claude Opus 4.1", input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
|
|
131
|
+
"opus-4": { name: "Claude Opus 4", input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
|
|
132
|
+
"sonnet-4": { name: "Claude Sonnet 4", input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
|
|
133
|
+
"sonnet-3.7": { name: "Claude Sonnet 3.7", input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
|
|
134
|
+
"sonnet-3.5": { name: "Claude Sonnet 3.5", input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
|
|
135
|
+
"haiku-3.5": { name: "Claude Haiku 3.5", input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
|
|
136
|
+
"opus-3": { name: "Claude Opus 3", input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
|
|
137
|
+
"haiku-3": { name: "Claude Haiku 3", input: 0.25, output: 1.25, cacheWrite: 0.3, cacheRead: 0.03 },
|
|
138
|
+
};
|
|
139
|
+
const DEFAULT_CLAUDE_PRICING_KEY = "sonnet-4";
|
|
140
|
+
const GENERATED_ARTIFACT_PATTERNS = [
|
|
141
|
+
/(^|\/)node_modules\//,
|
|
142
|
+
/(^|\/)\.next\//,
|
|
143
|
+
/(^|\/)dist\//,
|
|
144
|
+
/(^|\/)build\//,
|
|
145
|
+
/(^|\/)coverage\//,
|
|
146
|
+
/(^|\/)playwright-report\//,
|
|
147
|
+
/(^|\/)test-results\//,
|
|
148
|
+
/(^|\/)__pycache__\//,
|
|
149
|
+
/(^|\/)\.pytest_cache\//,
|
|
150
|
+
/(^|\/)\.cache\//,
|
|
151
|
+
/(^|\/)logs?\//,
|
|
152
|
+
/package-lock\.json$/,
|
|
153
|
+
/pnpm-lock\.yaml$/,
|
|
154
|
+
/yarn\.lock$/,
|
|
155
|
+
/coverage-final\.json$/,
|
|
156
|
+
/\.min\.(js|css)$/,
|
|
157
|
+
/(^|\/)assets\/[^/]+-[A-Za-z0-9_-]{6,}\.(js|css|map)$/,
|
|
158
|
+
];
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
module.exports = {
|
|
162
|
+
HIGH_RISK_DIRS,
|
|
163
|
+
HIGH_RISK_FILE_NAMES,
|
|
164
|
+
BINARY_EXTENSIONS,
|
|
165
|
+
SOURCE_EXTENSIONS,
|
|
166
|
+
INSTRUCTION_FILES,
|
|
167
|
+
DEFAULT_CLAUDEIGNORE,
|
|
168
|
+
NPX_COMMAND,
|
|
169
|
+
DEFAULT_PRISMO_PROXY_URL,
|
|
170
|
+
CLAUDE_PRICING,
|
|
171
|
+
DEFAULT_CLAUDE_PRICING_KEY,
|
|
172
|
+
GENERATED_ARTIFACT_PATTERNS,
|
|
173
|
+
};
|