cc-agy 0.0.0-stage → 1.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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -2
  3. package/assets/kit/apple-touch-icon.png +0 -0
  4. package/assets/kit/cc-agy-app-icon-128.png +0 -0
  5. package/assets/kit/cc-agy-app-icon-32.png +0 -0
  6. package/assets/kit/cc-agy-app-icon-512.png +0 -0
  7. package/assets/kit/cc-agy-app-icon-64.png +0 -0
  8. package/assets/kit/cc-agy-app-icon.svg +45 -0
  9. package/assets/kit/cc-agy-black-128.png +0 -0
  10. package/assets/kit/cc-agy-black-32.png +0 -0
  11. package/assets/kit/cc-agy-black-512.png +0 -0
  12. package/assets/kit/cc-agy-black-64.png +0 -0
  13. package/assets/kit/cc-agy-black.svg +11 -0
  14. package/assets/kit/cc-agy-favicon-128.png +0 -0
  15. package/assets/kit/cc-agy-favicon-32.png +0 -0
  16. package/assets/kit/cc-agy-favicon-512.png +0 -0
  17. package/assets/kit/cc-agy-favicon-64.png +0 -0
  18. package/assets/kit/cc-agy-favicon.svg +45 -0
  19. package/assets/kit/cc-agy-mono-38bdf8-128.png +0 -0
  20. package/assets/kit/cc-agy-mono-38bdf8-32.png +0 -0
  21. package/assets/kit/cc-agy-mono-38bdf8-512.png +0 -0
  22. package/assets/kit/cc-agy-mono-38bdf8-64.png +0 -0
  23. package/assets/kit/cc-agy-mono-38bdf8.svg +11 -0
  24. package/assets/kit/cc-agy-square-128.png +0 -0
  25. package/assets/kit/cc-agy-square-32.png +0 -0
  26. package/assets/kit/cc-agy-square-512.png +0 -0
  27. package/assets/kit/cc-agy-square-64.png +0 -0
  28. package/assets/kit/cc-agy-square.svg +45 -0
  29. package/assets/kit/cc-agy-white-128.png +0 -0
  30. package/assets/kit/cc-agy-white-32.png +0 -0
  31. package/assets/kit/cc-agy-white-512.png +0 -0
  32. package/assets/kit/cc-agy-white-64.png +0 -0
  33. package/assets/kit/cc-agy-white.svg +11 -0
  34. package/assets/kit/favicon-16.png +0 -0
  35. package/assets/kit/favicon-32.png +0 -0
  36. package/assets/kit/favicon-48.png +0 -0
  37. package/assets/kit/favicon.ico +0 -0
  38. package/assets/kit/favicon.svg +45 -0
  39. package/assets/kit/head-snippet.html +5 -0
  40. package/assets/kit/icon-192.png +0 -0
  41. package/assets/kit/icon-512.png +0 -0
  42. package/assets/kit/maskable-512.png +0 -0
  43. package/assets/kit/site.webmanifest +24 -0
  44. package/assets/logo.png +0 -0
  45. package/assets/logo.svg +45 -0
  46. package/bin/cc-agy.js +510 -0
  47. package/install.sh +212 -0
  48. package/package.json +48 -4
  49. package/scripts/import-agy.js +141 -0
  50. package/scripts/patch-combo.py +152 -0
  51. package/systemd/omniroute.service +15 -0
  52. package/uninstall.sh +64 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Farhat Iqbal
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,158 @@
1
- # Temporary Holding Version
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="cc-agy logo" width="140" />
3
+ </p>
2
4
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
5
+ # cc-agy
6
+
7
+ > Decoupled Asymmetric Compute Gateway: Claude Code + Google Antigravity
8
+ > Run the Anthropic Claude Code agentic loop powered by Google Cloud Code TPU clusters (Gemini 3.8 Flash High Reasoning and Claude Sonnet 4.6) at zero marginal token cost.
9
+
10
+ ---
11
+
12
+ ## Architecture Overview
13
+
14
+ `cc-agy` bridges the **Claude Code developer interface** with **Google Cloud Code Antigravity compute clusters** via a local, systemd-supervised reverse proxy (`OmniRoute`).
15
+
16
+ ```mermaid
17
+ flowchart TD
18
+ subgraph Client["Developer Terminal"]
19
+ CLI["cc-agy CLI Wrapper (Self-Healing)"]
20
+ CC["Claude Code CLI (claude)"]
21
+ CLI --> CC
22
+ end
23
+
24
+ subgraph LocalGateway["Localhost Reverse Proxy Gateway (:20128)"]
25
+ SD["systemd User Service (omniroute.service)"]
26
+ OR["OmniRoute Protocol Engine"]
27
+ SQL[("SQLite: claude-auto Priority Cascade<br/>compatFilterFailOpen: true")]
28
+ TOK["AES-256-GCM Encrypted Token Cache"]
29
+ end
30
+
31
+ subgraph Upstream["Google Cloud Infrastructure (TPU v5p Clusters)"]
32
+ GCC["daily-cloudcode-pa.googleapis.com"]
33
+ M1["Tier 1: Gemini 3.8 Flash High (Extended Thinking)"]
34
+ M2["Tier 2: Claude Sonnet 4.6 (Thinking)"]
35
+ M3["Tier 3: Gemini 3.1 Flash Lite (Circuit Breaker Fallback)"]
36
+ end
37
+
38
+ CC -->|"Anthropic Messages API v1"| OR
39
+ SD -->|"Supervises (Restart=always)"| OR
40
+ OR <--> SQL
41
+ OR <--> TOK
42
+ OR -->|"Internal CodeAssist RPC + OAuth"| GCC
43
+ GCC --> M1
44
+ M1 -.->|"Quota Exceeded"| M2
45
+ M2 -.->|"Fallback"| M3
46
+ GCC -->|"Streamed SSE Token Output"| OR
47
+ OR -->|"Anthropic SSE Stream"| CC
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Technical Problem Register
53
+
54
+ | Runtime Issue | Standard Failure | cc-agy Production Solution |
55
+ | :--- | :--- | :--- |
56
+ | **API Cost** | Claude Code on Anthropic API costs $15 to $50 daily | Routes through local reverse proxy into authorized Google Antigravity quota at $0 marginal cost. |
57
+ | **Schema Rejection** | 400 error: target combo lacks structured output support | Patches SQLite combo with `compatFilterFailOpen: true` to forward tool definitions cleanly. |
58
+ | **Outage / Reboot Loss** | Terminal-run proxies terminate on logout or reboot | Deploys a hardened `systemd --user` service with `Restart=always` and sub-3s auto-resurrect. |
59
+ | **Token Expiration** | Google OAuth tokens expire after 60 minutes | Rotates tokens automatically using the encrypted refresh token stored in local SQLite. |
60
+ | **Model Degradation** | Default proxy configurations route to Flash Lite | Enforces priority cascade with Gemini 3.8 Flash High Reasoning as primary target. |
61
+ | **Native Binary Bug** | Error: claude native binary not installed post-update | `cc-agy` wrapper runs pre-flight ABI checks and links missing native ELF binaries automatically. |
62
+
63
+ ---
64
+
65
+ ## Quick Start
66
+
67
+ ### Prerequisites
68
+ 1. **Linux** (Arch Linux, Ubuntu, Debian, Fedora) with `systemd`, `node` (>=18), `npm`, and `python3`.
69
+ 2. **Google Antigravity CLI (`agy`)**: Authenticated with your Google account:
70
+ ```bash
71
+ agy
72
+ ```
73
+ *(Verify that `~/.gemini/antigravity-cli/antigravity-oauth-token` exists).*
74
+
75
+ ### 1-Line Remote Bootstrap (Active & Recommended)
76
+ ```bash
77
+ curl -fsSL https://raw.githubusercontent.com/farhatkoka/cc-agy/main/install.sh | bash
78
+ ```
79
+
80
+ ### NPX One-Liner (npm Registry)
81
+ ```bash
82
+ npx cc-agy
83
+ ```
84
+ *(Note: Direct bootstrap via `curl | bash` is live and verified. The global npm package namespace goes public on October 30, 2026 at 11:42 UTC upon conclusion of the npm registry 72-hour 2FA cooldown window).*
85
+
86
+ ### Alternative: Manual Git Clone
87
+ ```bash
88
+ git clone https://github.com/farhatkoka/cc-agy.git
89
+ cd cc-agy
90
+ ./install.sh
91
+ ```
92
+
93
+ The bootstrap installer handles setup automatically:
94
+ 1. Validates host dependencies and Google OAuth tokens.
95
+ 2. Verifies Claude Code and restores platform-native Linux binaries.
96
+ 3. Encrypts local Google tokens into OmniRoute SQLite using AES-256-GCM.
97
+ 4. Patches model cascade priority and enables fail-open schema filtering.
98
+ 5. Deploys and starts the `omniroute.service` systemd user daemon.
99
+ 6. Installs the self-healing `cc-agy` CLI binary to `~/.local/bin/cc-agy`.
100
+
101
+ ---
102
+
103
+ ## CLI Usage
104
+
105
+ Once installed, execute `cc-agy` from any terminal session:
106
+
107
+ ```bash
108
+ # Launch interactive Claude Code session
109
+ cc-agy
110
+
111
+ # Autonomous execution (bypasses permission prompts)
112
+ cc-agy --dangerously-skip-permissions
113
+
114
+ # Non-interactive / pipe execution
115
+ cc-agy -p "Scan src/ for potential race conditions"
116
+
117
+ # System diagnostics and telemetry
118
+ cc-agy doctor
119
+
120
+ # Restart local proxy gateway
121
+ cc-agy restart
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Model Routing Hierarchy
127
+
128
+ The `claude-auto` combo routes requests through this hierarchy:
129
+
130
+ 1. **Tier 1 (Primary):** `agy/gemini-3.8-flash-high`
131
+ *3.7s to 4.9s latency, extended thinking, 1M token context window.*
132
+ 2. **Tier 2 (Fallback):** `agy/claude-sonnet-4-6`
133
+ *Anthropic agentic model hosted on Google TPU backend.*
134
+ 3. **Tier 3 (Circuit Breaker):** `agy/gemini-3.1-flash-lite`
135
+ *Sub-second fallback preventing session interruption during upstream rate windows.*
136
+
137
+ ---
138
+
139
+ ## Security Architecture
140
+
141
+ - **Zero Credential Persistence:** The repository contains executable code only. No tokens, passwords, or personal credentials exist in the codebase.
142
+ - **Client-Side Encryption:** Credentials are encrypted on the local host using AES-256-GCM. Storage encryption keys are generated randomly per machine (`secrets.token_hex(32)`) and stored in `~/.omniroute/.env`.
143
+ - **Localhost Loopback Only:** OmniRoute binds strictly to `127.0.0.1:20128`. No inbound external network connections are accepted.
144
+
145
+ ---
146
+
147
+ ## Uninstallation
148
+
149
+ To restore original Claude Code settings, disable the systemd daemon, and remove binaries:
150
+ ```bash
151
+ ./uninstall.sh
152
+ ```
153
+
154
+ ---
155
+
156
+ ## License
157
+
158
+ MIT (c) Farhat Iqbal
Binary file
@@ -0,0 +1,45 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Claude Code Amber / Terracotta Gradient -->
4
+ <linearGradient id="claudeAmber" x1="0%" y1="100%" x2="100%" y2="0%">
5
+ <stop offset="0%" stop-color="#D97706" />
6
+ <stop offset="100%" stop-color="#F59E0B" />
7
+ </linearGradient>
8
+
9
+ <!-- Antigravity TPU Cyan Gradient -->
10
+ <linearGradient id="agyCyan" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stop-color="#00F0FF" />
12
+ <stop offset="100%" stop-color="#0284C7" />
13
+ </linearGradient>
14
+
15
+ <!-- Subtle Premium Glow -->
16
+ <filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
17
+ <feGaussianBlur stdDeviation="8" result="blur" />
18
+ <feMerge>
19
+ <feMergeNode in="blur" opacity="0.3" />
20
+ <feMergeNode in="SourceGraphic" />
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+
25
+ <!-- PURE TRANSPARENT BACKGROUND -->
26
+
27
+ <!-- Perfectly Centered Scaled Encircled Mark -->
28
+ <g transform="translate(256, 256) scale(1.6) translate(-248, -256)" filter="url(#softGlow)">
29
+ <!-- Claude Code CLI Prompt Chevron -->
30
+ <path d="M 148 180
31
+ L 236 256
32
+ L 148 332
33
+ L 180 360
34
+ L 296 256
35
+ L 180 152 Z"
36
+ fill="url(#claudeAmber)" />
37
+
38
+ <!-- Antigravity Acceleration Node -->
39
+ <polygon points="268,256 348,188 348,324"
40
+ fill="url(#agyCyan)" />
41
+
42
+ <!-- Center Zero-Cost Nexus Flare -->
43
+ <circle cx="256" cy="256" r="10" fill="#FFFFFF" />
44
+ </g>
45
+ </svg>
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,11 @@
1
+ <svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="100%" height="100%"><title>cc-agy Logo</title>
2
+
3
+ <!-- Concept 3: Escape Velocity Delta (60 degree equilateral geometry) -->
4
+ <g fill="#000000" fill-rule="evenodd">
5
+ <!-- Outer Delta Frame with exact 60-degree angles -->
6
+ <path d="M 128 45.72 L 224 212 L 176 212 L 128 128.86 L 80 212 L 32 212 Z
7
+ M 128 85 L 152 126.57 L 104 126.57 Z" />
8
+ <!-- Dynamic Forward Agent Vector -->
9
+ <polygon points="108,180 156,180 172,164 156,148 108,148 124,164" />
10
+ </g>
11
+ </svg>
Binary file
Binary file
@@ -0,0 +1,45 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Claude Code Amber / Terracotta Gradient -->
4
+ <linearGradient id="claudeAmber" x1="0%" y1="100%" x2="100%" y2="0%">
5
+ <stop offset="0%" stop-color="#D97706" />
6
+ <stop offset="100%" stop-color="#F59E0B" />
7
+ </linearGradient>
8
+
9
+ <!-- Antigravity TPU Cyan Gradient -->
10
+ <linearGradient id="agyCyan" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stop-color="#00F0FF" />
12
+ <stop offset="100%" stop-color="#0284C7" />
13
+ </linearGradient>
14
+
15
+ <!-- Subtle Premium Glow -->
16
+ <filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
17
+ <feGaussianBlur stdDeviation="8" result="blur" />
18
+ <feMerge>
19
+ <feMergeNode in="blur" opacity="0.3" />
20
+ <feMergeNode in="SourceGraphic" />
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+
25
+ <!-- PURE TRANSPARENT BACKGROUND -->
26
+
27
+ <!-- Perfectly Centered Scaled Encircled Mark -->
28
+ <g transform="translate(256, 256) scale(1.6) translate(-248, -256)" filter="url(#softGlow)">
29
+ <!-- Claude Code CLI Prompt Chevron -->
30
+ <path d="M 148 180
31
+ L 236 256
32
+ L 148 332
33
+ L 180 360
34
+ L 296 256
35
+ L 180 152 Z"
36
+ fill="url(#claudeAmber)" />
37
+
38
+ <!-- Antigravity Acceleration Node -->
39
+ <polygon points="268,256 348,188 348,324"
40
+ fill="url(#agyCyan)" />
41
+
42
+ <!-- Center Zero-Cost Nexus Flare -->
43
+ <circle cx="256" cy="256" r="10" fill="#FFFFFF" />
44
+ </g>
45
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg fill="#38bdf8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="100%" height="100%"><title>cc-agy Logo</title>
2
+
3
+ <!-- Concept 3: Escape Velocity Delta (60 degree equilateral geometry) -->
4
+ <g fill="#38bdf8" fill-rule="evenodd">
5
+ <!-- Outer Delta Frame with exact 60-degree angles -->
6
+ <path d="M 128 45.72 L 224 212 L 176 212 L 128 128.86 L 80 212 L 32 212 Z
7
+ M 128 85 L 152 126.57 L 104 126.57 Z" />
8
+ <!-- Dynamic Forward Agent Vector -->
9
+ <polygon points="108,180 156,180 172,164 156,148 108,148 124,164" />
10
+ </g>
11
+ </svg>
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,45 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Claude Code Amber / Terracotta Gradient -->
4
+ <linearGradient id="claudeAmber" x1="0%" y1="100%" x2="100%" y2="0%">
5
+ <stop offset="0%" stop-color="#D97706" />
6
+ <stop offset="100%" stop-color="#F59E0B" />
7
+ </linearGradient>
8
+
9
+ <!-- Antigravity TPU Cyan Gradient -->
10
+ <linearGradient id="agyCyan" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stop-color="#00F0FF" />
12
+ <stop offset="100%" stop-color="#0284C7" />
13
+ </linearGradient>
14
+
15
+ <!-- Subtle Premium Glow -->
16
+ <filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
17
+ <feGaussianBlur stdDeviation="8" result="blur" />
18
+ <feMerge>
19
+ <feMergeNode in="blur" opacity="0.3" />
20
+ <feMergeNode in="SourceGraphic" />
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+
25
+ <!-- PURE TRANSPARENT BACKGROUND -->
26
+
27
+ <!-- Perfectly Centered Scaled Encircled Mark -->
28
+ <g transform="translate(256, 256) scale(1.6) translate(-248, -256)" filter="url(#softGlow)">
29
+ <!-- Claude Code CLI Prompt Chevron -->
30
+ <path d="M 148 180
31
+ L 236 256
32
+ L 148 332
33
+ L 180 360
34
+ L 296 256
35
+ L 180 152 Z"
36
+ fill="url(#claudeAmber)" />
37
+
38
+ <!-- Antigravity Acceleration Node -->
39
+ <polygon points="268,256 348,188 348,324"
40
+ fill="url(#agyCyan)" />
41
+
42
+ <!-- Center Zero-Cost Nexus Flare -->
43
+ <circle cx="256" cy="256" r="10" fill="#FFFFFF" />
44
+ </g>
45
+ </svg>
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,11 @@
1
+ <svg fill="#ffffff" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="100%" height="100%"><title>cc-agy Logo</title>
2
+
3
+ <!-- Concept 3: Escape Velocity Delta (60 degree equilateral geometry) -->
4
+ <g fill="#ffffff" fill-rule="evenodd">
5
+ <!-- Outer Delta Frame with exact 60-degree angles -->
6
+ <path d="M 128 45.72 L 224 212 L 176 212 L 128 128.86 L 80 212 L 32 212 Z
7
+ M 128 85 L 152 126.57 L 104 126.57 Z" />
8
+ <!-- Dynamic Forward Agent Vector -->
9
+ <polygon points="108,180 156,180 172,164 156,148 108,148 124,164" />
10
+ </g>
11
+ </svg>
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,45 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Claude Code Amber / Terracotta Gradient -->
4
+ <linearGradient id="claudeAmber" x1="0%" y1="100%" x2="100%" y2="0%">
5
+ <stop offset="0%" stop-color="#D97706" />
6
+ <stop offset="100%" stop-color="#F59E0B" />
7
+ </linearGradient>
8
+
9
+ <!-- Antigravity TPU Cyan Gradient -->
10
+ <linearGradient id="agyCyan" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stop-color="#00F0FF" />
12
+ <stop offset="100%" stop-color="#0284C7" />
13
+ </linearGradient>
14
+
15
+ <!-- Subtle Premium Glow -->
16
+ <filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
17
+ <feGaussianBlur stdDeviation="8" result="blur" />
18
+ <feMerge>
19
+ <feMergeNode in="blur" opacity="0.3" />
20
+ <feMergeNode in="SourceGraphic" />
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+
25
+ <!-- PURE TRANSPARENT BACKGROUND -->
26
+
27
+ <!-- Perfectly Centered Scaled Encircled Mark -->
28
+ <g transform="translate(256, 256) scale(1.6) translate(-248, -256)" filter="url(#softGlow)">
29
+ <!-- Claude Code CLI Prompt Chevron -->
30
+ <path d="M 148 180
31
+ L 236 256
32
+ L 148 332
33
+ L 180 360
34
+ L 296 256
35
+ L 180 152 Z"
36
+ fill="url(#claudeAmber)" />
37
+
38
+ <!-- Antigravity Acceleration Node -->
39
+ <polygon points="268,256 348,188 348,324"
40
+ fill="url(#agyCyan)" />
41
+
42
+ <!-- Center Zero-Cost Nexus Flare -->
43
+ <circle cx="256" cy="256" r="10" fill="#FFFFFF" />
44
+ </g>
45
+ </svg>
@@ -0,0 +1,5 @@
1
+ <link rel="icon" href="/favicon.ico" sizes="48x48">
2
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
3
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
4
+ <link rel="manifest" href="/site.webmanifest">
5
+ <meta name="theme-color" content="#090D16">
Binary file
Binary file
Binary file
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "cc-agy Logo",
3
+ "icons": [
4
+ {
5
+ "src": "/icon-192.png",
6
+ "sizes": "192x192",
7
+ "type": "image/png"
8
+ },
9
+ {
10
+ "src": "/icon-512.png",
11
+ "sizes": "512x512",
12
+ "type": "image/png"
13
+ },
14
+ {
15
+ "src": "/maskable-512.png",
16
+ "sizes": "512x512",
17
+ "type": "image/png",
18
+ "purpose": "maskable"
19
+ }
20
+ ],
21
+ "theme_color": "#090D16",
22
+ "background_color": "#090D16",
23
+ "display": "standalone"
24
+ }
Binary file
@@ -0,0 +1,45 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Claude Code Amber / Terracotta Gradient -->
4
+ <linearGradient id="claudeAmber" x1="0%" y1="100%" x2="100%" y2="0%">
5
+ <stop offset="0%" stop-color="#D97706" />
6
+ <stop offset="100%" stop-color="#F59E0B" />
7
+ </linearGradient>
8
+
9
+ <!-- Antigravity TPU Cyan Gradient -->
10
+ <linearGradient id="agyCyan" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stop-color="#00F0FF" />
12
+ <stop offset="100%" stop-color="#0284C7" />
13
+ </linearGradient>
14
+
15
+ <!-- Subtle Premium Glow -->
16
+ <filter id="softGlow" x="-20%" y="-20%" width="140%" height="140%">
17
+ <feGaussianBlur stdDeviation="8" result="blur" />
18
+ <feMerge>
19
+ <feMergeNode in="blur" opacity="0.3" />
20
+ <feMergeNode in="SourceGraphic" />
21
+ </feMerge>
22
+ </filter>
23
+ </defs>
24
+
25
+ <!-- PURE TRANSPARENT BACKGROUND -->
26
+
27
+ <!-- Perfectly Centered Scaled Encircled Mark -->
28
+ <g transform="translate(256, 256) scale(1.6) translate(-248, -256)" filter="url(#softGlow)">
29
+ <!-- Claude Code CLI Prompt Chevron -->
30
+ <path d="M 148 180
31
+ L 236 256
32
+ L 148 332
33
+ L 180 360
34
+ L 296 256
35
+ L 180 152 Z"
36
+ fill="url(#claudeAmber)" />
37
+
38
+ <!-- Antigravity Acceleration Node -->
39
+ <polygon points="268,256 348,188 348,324"
40
+ fill="url(#agyCyan)" />
41
+
42
+ <!-- Center Zero-Cost Nexus Flare -->
43
+ <circle cx="256" cy="256" r="10" fill="#FFFFFF" />
44
+ </g>
45
+ </svg>