clew-code 0.6.0 → 0.6.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 +12 -4
- package/dist/main.js +2206 -2314
- package/package.json +165 -164
- package/scripts/check-shadow-pairs.sh +40 -0
package/package.json
CHANGED
|
@@ -1,164 +1,165 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "clew-code",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "ClewCode — multi-provider AI coding agent CLI",
|
|
5
|
-
"main": "./dist/main.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"clew": "bin/clew.cjs",
|
|
9
|
-
"clewcode": "bin/clew.cjs"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"bin/",
|
|
13
|
-
"dist/",
|
|
14
|
-
"docs/",
|
|
15
|
-
"scripts/",
|
|
16
|
-
"README.md",
|
|
17
|
-
"LICENSE.md"
|
|
18
|
-
],
|
|
19
|
-
"repository": {
|
|
20
|
-
"type": "git",
|
|
21
|
-
"url": "git+https://github.com/ClewCode/ClewCode.git"
|
|
22
|
-
},
|
|
23
|
-
"bugs": {
|
|
24
|
-
"url": "https://github.com/ClewCode/ClewCode/issues"
|
|
25
|
-
},
|
|
26
|
-
"homepage": "https://github.com/ClewCode/ClewCode#readme",
|
|
27
|
-
"scripts": {
|
|
28
|
-
"prebuild-version": "node scripts/prebuild-version.mjs",
|
|
29
|
-
"dev": "bun run prebuild-version && node scripts/bun-run.mjs --watch",
|
|
30
|
-
"start": "bun run prebuild-version && node scripts/bun-run.mjs",
|
|
31
|
-
"dev:channels": "bun run prebuild-version && node scripts/bun-run.mjs -- --dangerously-load-development-channels server:clew-orc",
|
|
32
|
-
"build": "bun run prebuild-version && NODE_ENV=production bun build --production --define.TRANSCRIPT_CLASSIFIER=true --define.CHICAGO_MCP=true --define.VOICE_MODE=true --define.AWAY_SUMMARY=true src/main.tsx --outdir ./dist --target bun --external electron --external 'chromium-bidi*' --external '@ant/claude-for-chrome-mcp' --external '@anthropic-ai/bedrock-sdk' --external '@anthropic-ai/foundry-sdk' --external '@anthropic-ai/vertex-sdk' --external '@anthropic-ai/mcpb' --external '@aws-sdk/client-bedrock-runtime' --external 'google-auth-library' --external 'sharp' --external 'asciichart' --external 'audio-capture-napi' --external 'modifiers-napi' --external '@xenova/transformers' --external 'onnxruntime-node' --external playwright --external 'playwright-core' --external 'node-pty' && node scripts/postbuild-inject-macro.mjs",
|
|
33
|
-
"prepublishOnly": "bun run build",
|
|
34
|
-
"test": "bun test",
|
|
35
|
-
"lint": "biome lint --write src/",
|
|
36
|
-
"lint:check": "biome lint src/",
|
|
37
|
-
"format": "biome format --write src/",
|
|
38
|
-
"format:check": "biome format src/",
|
|
39
|
-
"check": "biome check --write src/",
|
|
40
|
-
"check:ci": "biome ci src/",
|
|
41
|
-
"ast-grep": "bun x ast-grep",
|
|
42
|
-
"codegraph": "bun run scripts/codegraph.ts",
|
|
43
|
-
"docs:generate": "bun run scripts/generate-docs.ts",
|
|
44
|
-
"docs:watch": "bun --watch run scripts/generate-docs.ts",
|
|
45
|
-
"preload": "bun run scripts/preload.ts",
|
|
46
|
-
"session": "bun run scripts/session.ts",
|
|
47
|
-
"agent-room": "bun run scripts/agent-room.ts",
|
|
48
|
-
"relay": "bun run src/remote/relay-server.ts",
|
|
49
|
-
"install:unix": "bash scripts/install.sh",
|
|
50
|
-
"install:win": "powershell -ExecutionPolicy Bypass -File scripts/install.ps1"
|
|
51
|
-
},
|
|
52
|
-
"keywords": [
|
|
53
|
-
"ai",
|
|
54
|
-
"coding-assistant",
|
|
55
|
-
"anthropic",
|
|
56
|
-
"openai",
|
|
57
|
-
"google",
|
|
58
|
-
"gemini",
|
|
59
|
-
"claude",
|
|
60
|
-
"gpt",
|
|
61
|
-
"openrouter",
|
|
62
|
-
"kilocode",
|
|
63
|
-
"opencode"
|
|
64
|
-
],
|
|
65
|
-
"author": "Dek1milliontoken",
|
|
66
|
-
"license": "SEE LICENSE.md",
|
|
67
|
-
"dependencies": {
|
|
68
|
-
"@agentclientprotocol/sdk": "^0.29.0",
|
|
69
|
-
"@ai-sdk/anthropic": "^3.0.86",
|
|
70
|
-
"@ai-sdk/google": "^3.0.83",
|
|
71
|
-
"@ai-sdk/openai": "^3.0.74",
|
|
72
|
-
"@anthropic-ai/sandbox-runtime": "0.0.59",
|
|
73
|
-
"@anthropic-ai/sdk": "^0.104.2",
|
|
74
|
-
"@aws-sdk/client-bedrock": "^3.1075.0",
|
|
75
|
-
"@aws-sdk/client-sts": "^3.1075.0",
|
|
76
|
-
"@azure/identity": "^4.13.1",
|
|
77
|
-
"@commander-js/extra-typings": "^15.0.0",
|
|
78
|
-
"@google/generative-ai": "0.24.1",
|
|
79
|
-
"@growthbook/growthbook": "^1.6.5",
|
|
80
|
-
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
81
|
-
"@opencoredev/loginwithchatgpt-core": "^0.2.0",
|
|
82
|
-
"@openrouter/ai-sdk-provider": "^2.9.1",
|
|
83
|
-
"@opentelemetry/api": "^1.9.1",
|
|
84
|
-
"@opentelemetry/exporter-logs-otlp-grpc": "^0.219.0",
|
|
85
|
-
"@opentelemetry/exporter-logs-otlp-http": "^0.219.0",
|
|
86
|
-
"@opentelemetry/exporter-logs-otlp-proto": "^0.219.0",
|
|
87
|
-
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.219.0",
|
|
88
|
-
"@opentelemetry/exporter-metrics-otlp-http": "^0.219.0",
|
|
89
|
-
"@opentelemetry/exporter-metrics-otlp-proto": "^0.219.0",
|
|
90
|
-
"@opentelemetry/exporter-prometheus": "^0.219.0",
|
|
91
|
-
"@opentelemetry/exporter-trace-otlp-grpc": "^0.219.0",
|
|
92
|
-
"@opentelemetry/exporter-trace-otlp-http": "^0.219.0",
|
|
93
|
-
"@opentelemetry/exporter-trace-otlp-proto": "^0.219.0",
|
|
94
|
-
"@opentelemetry/resources": "2.8.0",
|
|
95
|
-
"@opentelemetry/sdk-logs": "^0.219.0",
|
|
96
|
-
"@opentelemetry/sdk-metrics": "2.8.0",
|
|
97
|
-
"@opentelemetry/sdk-node": "^0.219.0",
|
|
98
|
-
"@opentelemetry/sdk-trace-base": "2.8.0",
|
|
99
|
-
"@opentelemetry/sdk-trace-node": "2.8.0",
|
|
100
|
-
"@opentelemetry/semantic-conventions": "1.41.1",
|
|
101
|
-
"@sentry/node": "^10.60.0",
|
|
102
|
-
"@types/react": "^19.2.17",
|
|
103
|
-
"@types/react-dom": "^19.2.3",
|
|
104
|
-
"@types/ws": "^8.18.1",
|
|
105
|
-
"@xenova/transformers": "^2.17.2",
|
|
106
|
-
"ansis": "^4.3.1",
|
|
107
|
-
"asciichart": "^1.5.25",
|
|
108
|
-
"bidi-js": "1.0.3",
|
|
109
|
-
"chokidar": "5.0.0",
|
|
110
|
-
"commander": "^15.0.0",
|
|
111
|
-
"conf": "^15.1.0",
|
|
112
|
-
"diff": "^9.0.0",
|
|
113
|
-
"dotenv": "^17.4.2",
|
|
114
|
-
"fflate": "^0.8.3",
|
|
115
|
-
"fuse.js": "^7.4.2",
|
|
116
|
-
"https-proxy-agent": "^9.1.0",
|
|
117
|
-
"ignore": "^7.0.5",
|
|
118
|
-
"ink": "^7.1.0",
|
|
119
|
-
"ink-divider": "^4.1.1",
|
|
120
|
-
"ink-markdown": "^1.0.4",
|
|
121
|
-
"ink-select-input": "^6.2.0",
|
|
122
|
-
"ink-spinner": "^5.0.0",
|
|
123
|
-
"ink-text-input": "^6.0.0",
|
|
124
|
-
"is-docker": "^4.0.0",
|
|
125
|
-
"is-wsl": "^3.1.1",
|
|
126
|
-
"jsonc-parser": "^3.3.1",
|
|
127
|
-
"jsonrepair": "^3.14.0",
|
|
128
|
-
"lodash-es": "^4.18.1",
|
|
129
|
-
"lru-cache": "^11.5.1",
|
|
130
|
-
"lucide-react": "^1.21.0",
|
|
131
|
-
"nano-spawn": "^2.1.0",
|
|
132
|
-
"node-pty": "^1.1.0",
|
|
133
|
-
"ofetch": "^1.5.1",
|
|
134
|
-
"open": "^11.0.0",
|
|
135
|
-
"openai": "^6.44.0",
|
|
136
|
-
"p-map": "^7.0.4",
|
|
137
|
-
"picomatch": "^4.0.4",
|
|
138
|
-
"playwright": "^1.61.1",
|
|
139
|
-
"proper-lockfile": "^4.1.2",
|
|
140
|
-
"qrcode": "^1.5.4",
|
|
141
|
-
"react": "^19.2.7",
|
|
142
|
-
"react-dom": "^19.2.7",
|
|
143
|
-
"react-markdown": "^10.1.0",
|
|
144
|
-
"react-reconciler": "0.33.0",
|
|
145
|
-
"shell-quote": "^1.8.4",
|
|
146
|
-
"signal-exit": "^4.1.0",
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"@
|
|
160
|
-
"@
|
|
161
|
-
"@types/
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "clew-code",
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "ClewCode — multi-provider AI coding agent CLI",
|
|
5
|
+
"main": "./dist/main.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"clew": "bin/clew.cjs",
|
|
9
|
+
"clewcode": "bin/clew.cjs"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"bin/",
|
|
13
|
+
"dist/",
|
|
14
|
+
"docs/",
|
|
15
|
+
"scripts/",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE.md"
|
|
18
|
+
],
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/ClewCode/ClewCode.git"
|
|
22
|
+
},
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/ClewCode/ClewCode/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/ClewCode/ClewCode#readme",
|
|
27
|
+
"scripts": {
|
|
28
|
+
"prebuild-version": "node scripts/prebuild-version.mjs",
|
|
29
|
+
"dev": "bun run prebuild-version && node scripts/bun-run.mjs --watch",
|
|
30
|
+
"start": "bun run prebuild-version && node scripts/bun-run.mjs",
|
|
31
|
+
"dev:channels": "bun run prebuild-version && node scripts/bun-run.mjs -- --dangerously-load-development-channels server:clew-orc",
|
|
32
|
+
"build": "bun run prebuild-version && NODE_ENV=production bun build --production --define.TRANSCRIPT_CLASSIFIER=true --define.CHICAGO_MCP=true --define.VOICE_MODE=true --define.AWAY_SUMMARY=true src/main.tsx --outdir ./dist --target bun --external electron --external 'chromium-bidi*' --external '@ant/claude-for-chrome-mcp' --external '@anthropic-ai/bedrock-sdk' --external '@anthropic-ai/foundry-sdk' --external '@anthropic-ai/vertex-sdk' --external '@anthropic-ai/mcpb' --external '@aws-sdk/client-bedrock-runtime' --external 'google-auth-library' --external 'sharp' --external 'asciichart' --external 'audio-capture-napi' --external 'modifiers-napi' --external '@xenova/transformers' --external 'onnxruntime-node' --external 'sqlite-vec' --external playwright --external 'playwright-core' --external 'node-pty' && node scripts/postbuild-inject-macro.mjs",
|
|
33
|
+
"prepublishOnly": "bun run build",
|
|
34
|
+
"test": "bun test",
|
|
35
|
+
"lint": "biome lint --write src/",
|
|
36
|
+
"lint:check": "biome lint src/",
|
|
37
|
+
"format": "biome format --write src/",
|
|
38
|
+
"format:check": "biome format src/",
|
|
39
|
+
"check": "biome check --write src/",
|
|
40
|
+
"check:ci": "biome ci src/",
|
|
41
|
+
"ast-grep": "bun x ast-grep",
|
|
42
|
+
"codegraph": "bun run scripts/codegraph.ts",
|
|
43
|
+
"docs:generate": "bun run scripts/generate-docs.ts",
|
|
44
|
+
"docs:watch": "bun --watch run scripts/generate-docs.ts",
|
|
45
|
+
"preload": "bun run scripts/preload.ts",
|
|
46
|
+
"session": "bun run scripts/session.ts",
|
|
47
|
+
"agent-room": "bun run scripts/agent-room.ts",
|
|
48
|
+
"relay": "bun run src/remote/relay-server.ts",
|
|
49
|
+
"install:unix": "bash scripts/install.sh",
|
|
50
|
+
"install:win": "powershell -ExecutionPolicy Bypass -File scripts/install.ps1"
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"ai",
|
|
54
|
+
"coding-assistant",
|
|
55
|
+
"anthropic",
|
|
56
|
+
"openai",
|
|
57
|
+
"google",
|
|
58
|
+
"gemini",
|
|
59
|
+
"claude",
|
|
60
|
+
"gpt",
|
|
61
|
+
"openrouter",
|
|
62
|
+
"kilocode",
|
|
63
|
+
"opencode"
|
|
64
|
+
],
|
|
65
|
+
"author": "Dek1milliontoken",
|
|
66
|
+
"license": "SEE LICENSE.md",
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@agentclientprotocol/sdk": "^0.29.0",
|
|
69
|
+
"@ai-sdk/anthropic": "^3.0.86",
|
|
70
|
+
"@ai-sdk/google": "^3.0.83",
|
|
71
|
+
"@ai-sdk/openai": "^3.0.74",
|
|
72
|
+
"@anthropic-ai/sandbox-runtime": "0.0.59",
|
|
73
|
+
"@anthropic-ai/sdk": "^0.104.2",
|
|
74
|
+
"@aws-sdk/client-bedrock": "^3.1075.0",
|
|
75
|
+
"@aws-sdk/client-sts": "^3.1075.0",
|
|
76
|
+
"@azure/identity": "^4.13.1",
|
|
77
|
+
"@commander-js/extra-typings": "^15.0.0",
|
|
78
|
+
"@google/generative-ai": "0.24.1",
|
|
79
|
+
"@growthbook/growthbook": "^1.6.5",
|
|
80
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
81
|
+
"@opencoredev/loginwithchatgpt-core": "^0.2.0",
|
|
82
|
+
"@openrouter/ai-sdk-provider": "^2.9.1",
|
|
83
|
+
"@opentelemetry/api": "^1.9.1",
|
|
84
|
+
"@opentelemetry/exporter-logs-otlp-grpc": "^0.219.0",
|
|
85
|
+
"@opentelemetry/exporter-logs-otlp-http": "^0.219.0",
|
|
86
|
+
"@opentelemetry/exporter-logs-otlp-proto": "^0.219.0",
|
|
87
|
+
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.219.0",
|
|
88
|
+
"@opentelemetry/exporter-metrics-otlp-http": "^0.219.0",
|
|
89
|
+
"@opentelemetry/exporter-metrics-otlp-proto": "^0.219.0",
|
|
90
|
+
"@opentelemetry/exporter-prometheus": "^0.219.0",
|
|
91
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.219.0",
|
|
92
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.219.0",
|
|
93
|
+
"@opentelemetry/exporter-trace-otlp-proto": "^0.219.0",
|
|
94
|
+
"@opentelemetry/resources": "2.8.0",
|
|
95
|
+
"@opentelemetry/sdk-logs": "^0.219.0",
|
|
96
|
+
"@opentelemetry/sdk-metrics": "2.8.0",
|
|
97
|
+
"@opentelemetry/sdk-node": "^0.219.0",
|
|
98
|
+
"@opentelemetry/sdk-trace-base": "2.8.0",
|
|
99
|
+
"@opentelemetry/sdk-trace-node": "2.8.0",
|
|
100
|
+
"@opentelemetry/semantic-conventions": "1.41.1",
|
|
101
|
+
"@sentry/node": "^10.60.0",
|
|
102
|
+
"@types/react": "^19.2.17",
|
|
103
|
+
"@types/react-dom": "^19.2.3",
|
|
104
|
+
"@types/ws": "^8.18.1",
|
|
105
|
+
"@xenova/transformers": "^2.17.2",
|
|
106
|
+
"ansis": "^4.3.1",
|
|
107
|
+
"asciichart": "^1.5.25",
|
|
108
|
+
"bidi-js": "1.0.3",
|
|
109
|
+
"chokidar": "5.0.0",
|
|
110
|
+
"commander": "^15.0.0",
|
|
111
|
+
"conf": "^15.1.0",
|
|
112
|
+
"diff": "^9.0.0",
|
|
113
|
+
"dotenv": "^17.4.2",
|
|
114
|
+
"fflate": "^0.8.3",
|
|
115
|
+
"fuse.js": "^7.4.2",
|
|
116
|
+
"https-proxy-agent": "^9.1.0",
|
|
117
|
+
"ignore": "^7.0.5",
|
|
118
|
+
"ink": "^7.1.0",
|
|
119
|
+
"ink-divider": "^4.1.1",
|
|
120
|
+
"ink-markdown": "^1.0.4",
|
|
121
|
+
"ink-select-input": "^6.2.0",
|
|
122
|
+
"ink-spinner": "^5.0.0",
|
|
123
|
+
"ink-text-input": "^6.0.0",
|
|
124
|
+
"is-docker": "^4.0.0",
|
|
125
|
+
"is-wsl": "^3.1.1",
|
|
126
|
+
"jsonc-parser": "^3.3.1",
|
|
127
|
+
"jsonrepair": "^3.14.0",
|
|
128
|
+
"lodash-es": "^4.18.1",
|
|
129
|
+
"lru-cache": "^11.5.1",
|
|
130
|
+
"lucide-react": "^1.21.0",
|
|
131
|
+
"nano-spawn": "^2.1.0",
|
|
132
|
+
"node-pty": "^1.1.0",
|
|
133
|
+
"ofetch": "^1.5.1",
|
|
134
|
+
"open": "^11.0.0",
|
|
135
|
+
"openai": "^6.44.0",
|
|
136
|
+
"p-map": "^7.0.4",
|
|
137
|
+
"picomatch": "^4.0.4",
|
|
138
|
+
"playwright": "^1.61.1",
|
|
139
|
+
"proper-lockfile": "^4.1.2",
|
|
140
|
+
"qrcode": "^1.5.4",
|
|
141
|
+
"react": "^19.2.7",
|
|
142
|
+
"react-dom": "^19.2.7",
|
|
143
|
+
"react-markdown": "^10.1.0",
|
|
144
|
+
"react-reconciler": "0.33.0",
|
|
145
|
+
"shell-quote": "^1.8.4",
|
|
146
|
+
"signal-exit": "^4.1.0",
|
|
147
|
+
"sqlite-vec": "^0.1.9",
|
|
148
|
+
"tree-kill": "^1.2.2",
|
|
149
|
+
"turndown": "^7.2.4",
|
|
150
|
+
"usehooks-ts": "^3.1.1",
|
|
151
|
+
"vscode-jsonrpc": "^9.0.0",
|
|
152
|
+
"xss": "^1.0.15",
|
|
153
|
+
"zod": "^4.4.3"
|
|
154
|
+
},
|
|
155
|
+
"overrides": {
|
|
156
|
+
"react-reconciler": "0.33.0"
|
|
157
|
+
},
|
|
158
|
+
"devDependencies": {
|
|
159
|
+
"@ast-grep/cli": "^0.44.0",
|
|
160
|
+
"@biomejs/biome": "^2.5.1",
|
|
161
|
+
"@types/bun": "latest",
|
|
162
|
+
"@types/semver": "^7.7.1"
|
|
163
|
+
},
|
|
164
|
+
"optionalDependencies": {}
|
|
165
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Guard against .ts/.js shadow pairs regression in src/
|
|
3
|
+
# Fails if any .ts file has a matching .js sibling (indicates shadow reconciliation regression)
|
|
4
|
+
# Exit code 0 = no shadows found, 1 = shadows detected
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
SHADOW_DIR="${1:-src}"
|
|
9
|
+
|
|
10
|
+
if [ ! -d "$SHADOW_DIR" ]; then
|
|
11
|
+
echo "Error: directory '$SHADOW_DIR' not found"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Find all .ts files and check if a .js twin exists
|
|
16
|
+
SHADOWS=()
|
|
17
|
+
while IFS= read -r ts_file; do
|
|
18
|
+
js_file="${ts_file%.ts}.js"
|
|
19
|
+
if [ -f "$js_file" ]; then
|
|
20
|
+
SHADOWS+=("$ts_file" "$js_file")
|
|
21
|
+
fi
|
|
22
|
+
done < <(find "$SHADOW_DIR" -name "*.ts" -type f)
|
|
23
|
+
|
|
24
|
+
if [ ${#SHADOWS[@]} -eq 0 ]; then
|
|
25
|
+
echo "✓ No .ts/.js shadow pairs found in $SHADOW_DIR"
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo "✗ Shadow pairs detected (regression - .ts and .js twins in src/):"
|
|
30
|
+
# Print pairs grouped
|
|
31
|
+
for ((i = 0; i < ${#SHADOWS[@]}; i += 2)); do
|
|
32
|
+
ts_file="${SHADOWS[i]}"
|
|
33
|
+
js_file="${SHADOWS[i+1]}"
|
|
34
|
+
echo " PAIR: $ts_file"
|
|
35
|
+
echo " $js_file"
|
|
36
|
+
done
|
|
37
|
+
echo ""
|
|
38
|
+
echo "All .js shadows should have been removed from src/."
|
|
39
|
+
echo "See CLAUDE.md: 'JS Shadow Reconciliation Complete'"
|
|
40
|
+
exit 1
|