@zoebuildsai/trace 1.5.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.
- package/.gitignore +115 -0
- package/.trace/progress.json +22 -0
- package/README.md +466 -0
- package/RELEASE-NOTES-1.5.0.md +410 -0
- package/STATUS.md +245 -0
- package/dist/auto-commit.d.ts +66 -0
- package/dist/auto-commit.d.ts.map +1 -0
- package/dist/auto-commit.js +180 -0
- package/dist/auto-commit.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +246 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +46 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +256 -0
- package/dist/commands.js.map +1 -0
- package/dist/diff.d.ts +23 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +106 -0
- package/dist/diff.js.map +1 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js.map +1 -0
- package/dist/index-cache.d.ts +35 -0
- package/dist/index-cache.d.ts.map +1 -0
- package/dist/index-cache.js +114 -0
- package/dist/index-cache.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/storage.d.ts +45 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +151 -0
- package/dist/storage.js.map +1 -0
- package/dist/sync.d.ts +60 -0
- package/dist/sync.js +184 -0
- package/dist/tags.d.ts +85 -0
- package/dist/tags.d.ts.map +1 -0
- package/dist/tags.js +219 -0
- package/dist/tags.js.map +1 -0
- package/dist/types.d.ts +102 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/docs/.nojekyll +0 -0
- package/docs/README.md +73 -0
- package/docs/_config.yml +2 -0
- package/docs/index.html +960 -0
- package/docs-website/package.json +20 -0
- package/jest.config.js +21 -0
- package/package.json +50 -0
- package/scripts/init.ts +290 -0
- package/src/agent-audit.ts +270 -0
- package/src/agent-checkout.ts +227 -0
- package/src/agent-coordination.ts +318 -0
- package/src/async-queue.ts +203 -0
- package/src/auto-branching.ts +279 -0
- package/src/auto-commit.ts +166 -0
- package/src/cherry-pick.ts +252 -0
- package/src/chunked-upload.ts +224 -0
- package/src/cli-v2.ts +335 -0
- package/src/cli.ts +318 -0
- package/src/cliff-detection.ts +232 -0
- package/src/commands.ts +267 -0
- package/src/commit-hash-system.ts +351 -0
- package/src/compression.ts +176 -0
- package/src/conflict-resolution-ui.ts +277 -0
- package/src/conflict-visualization.ts +238 -0
- package/src/diff-formatter.ts +184 -0
- package/src/diff.ts +124 -0
- package/src/distributed-coordination.ts +273 -0
- package/src/git-interop.ts +316 -0
- package/src/index-cache.ts +88 -0
- package/src/index.ts +38 -0
- package/src/merge-engine.ts +143 -0
- package/src/message-search.ts +370 -0
- package/src/performance-monitoring.ts +236 -0
- package/src/rebase.ts +327 -0
- package/src/rollback.ts +215 -0
- package/src/semantic-grouping.ts +245 -0
- package/src/stage-area.ts +324 -0
- package/src/stash.ts +278 -0
- package/src/storage.ts +131 -0
- package/src/sync.ts +205 -0
- package/src/tags.ts +244 -0
- package/src/types.ts +119 -0
- package/src/webhooks.ts +119 -0
- package/src/workspace-isolation.ts +298 -0
- package/tests/auto-commit.test.ts +308 -0
- package/tests/checkout.test.ts +136 -0
- package/tests/commit.test.ts +118 -0
- package/tests/diff.test.ts +191 -0
- package/tests/github.test.ts +94 -0
- package/tests/integration.test.ts +267 -0
- package/tests/log.test.ts +125 -0
- package/tests/phase2-integration.test.ts +370 -0
- package/tests/storage.test.ts +167 -0
- package/tests/tags.test.ts +477 -0
- package/tests/types.test.ts +75 -0
- package/tests/v1.1/agent-audit.test.ts +472 -0
- package/tests/v1.1/agent-coordination.test.ts +308 -0
- package/tests/v1.1/async-queue.test.ts +253 -0
- package/tests/v1.1/comprehensive.test.ts +521 -0
- package/tests/v1.1/diff-formatter.test.ts +238 -0
- package/tests/v1.1/integration.test.ts +389 -0
- package/tests/v1.1/onboarding.test.ts +365 -0
- package/tests/v1.1/rollback.test.ts +370 -0
- package/tests/v1.1/semantic-grouping.test.ts +230 -0
- package/tests/v1.2/chunked-upload.test.ts +301 -0
- package/tests/v1.2/cliff-detection.test.ts +272 -0
- package/tests/v1.2/commit-hash-system.test.ts +288 -0
- package/tests/v1.2/compression.test.ts +220 -0
- package/tests/v1.2/conflict-visualization.test.ts +263 -0
- package/tests/v1.2/distributed.test.ts +261 -0
- package/tests/v1.2/performance-monitoring.test.ts +328 -0
- package/tests/v1.3/auto-branching.test.ts +270 -0
- package/tests/v1.3/message-search.test.ts +264 -0
- package/tests/v1.3/stage-area.test.ts +330 -0
- package/tests/v1.3/stash-rebase-cherry-pick.test.ts +361 -0
- package/tests/v1.4/cli.test.ts +171 -0
- package/tests/v1.4/conflict-resolution-advanced.test.ts +429 -0
- package/tests/v1.4/conflict-resolution-ui.test.ts +286 -0
- package/tests/v1.4/workspace-isolation-advanced.test.ts +382 -0
- package/tests/v1.4/workspace-isolation.test.ts +268 -0
- package/tests/v1.5/agent-coordination.real.test.ts +401 -0
- package/tests/v1.5/cli-v2.test.ts +354 -0
- package/tests/v1.5/git-interop.real.test.ts +358 -0
- package/tests/v1.5/integration-testing.real.test.ts +440 -0
- package/tsconfig.json +26 -0
package/docs/index.html
ADDED
|
@@ -0,0 +1,960 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Chronicle — Multi-Agent Version Control</title>
|
|
7
|
+
<meta name="description" content="Chronicle is production-ready version control for teams of AI agents. Scale to 1000+ agents with zero collisions and complete accountability." />
|
|
8
|
+
<meta property="og:title" content="Chronicle — Multi-Agent Version Control" />
|
|
9
|
+
<meta property="og:description" content="Version control built for autonomous agents. No collisions. No conflicts. Complete accountability." />
|
|
10
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
11
|
+
<meta name="twitter:site" content="@ZoeBuildsAi" />
|
|
12
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
13
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
14
|
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet" />
|
|
15
|
+
|
|
16
|
+
<style>
|
|
17
|
+
:root {
|
|
18
|
+
--bg-deep: #050810;
|
|
19
|
+
--bg-surface: #0a0f1a;
|
|
20
|
+
--bg-elevated: #111827;
|
|
21
|
+
--coral: #ff4d4d;
|
|
22
|
+
--coral-dim: rgba(255,77,77,0.12);
|
|
23
|
+
--coral-border: rgba(255,77,77,0.25);
|
|
24
|
+
--coral-glow: rgba(255,77,77,0.35);
|
|
25
|
+
--text-primary: #f0f4ff;
|
|
26
|
+
--text-secondary:#8892b0;
|
|
27
|
+
--text-muted: #5a6480;
|
|
28
|
+
--border: rgba(136,146,176,0.12);
|
|
29
|
+
--border-accent: rgba(255,77,77,0.2);
|
|
30
|
+
--font: 'Space Grotesk', system-ui, sans-serif;
|
|
31
|
+
--mono: 'Space Mono', 'SF Mono', monospace;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
35
|
+
|
|
36
|
+
html { scroll-behavior: smooth; }
|
|
37
|
+
|
|
38
|
+
body {
|
|
39
|
+
background: var(--bg-deep);
|
|
40
|
+
color: var(--text-primary);
|
|
41
|
+
font-family: var(--font);
|
|
42
|
+
font-size: 16px;
|
|
43
|
+
line-height: 1.6;
|
|
44
|
+
min-height: 100vh;
|
|
45
|
+
overflow-x: hidden;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* ── SVG background grid pattern ── */
|
|
49
|
+
body::before {
|
|
50
|
+
content: '';
|
|
51
|
+
position: fixed;
|
|
52
|
+
inset: 0;
|
|
53
|
+
background-image:
|
|
54
|
+
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M60 0L0 0L0 60' fill='none' stroke='rgba(136,146,176,0.04)' stroke-width='1'/%3E%3C/svg%3E");
|
|
55
|
+
background-size: 60px 60px;
|
|
56
|
+
pointer-events: none;
|
|
57
|
+
z-index: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* ── Animated neural network background ── */
|
|
61
|
+
.neural-bg {
|
|
62
|
+
position: fixed;
|
|
63
|
+
inset: 0;
|
|
64
|
+
opacity: 0.15;
|
|
65
|
+
pointer-events: none;
|
|
66
|
+
z-index: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.neural-square {
|
|
70
|
+
position: absolute;
|
|
71
|
+
border: 1px solid rgba(255,77,77,0.8);
|
|
72
|
+
background: rgba(255,77,77,0.05);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.sq-1 { width: 40px; height: 40px; top: 10%; left: 5%; animation: pulse-sq 4s ease-in-out infinite; }
|
|
76
|
+
.sq-2 { width: 60px; height: 60px; top: 20%; left: 25%; animation: pulse-sq 5s ease-in-out 0.5s infinite; }
|
|
77
|
+
.sq-3 { width: 35px; height: 35px; top: 15%; right: 10%; animation: pulse-sq 6s ease-in-out 1s infinite; }
|
|
78
|
+
.sq-4 { width: 50px; height: 50px; top: 50%; left: 8%; animation: pulse-sq 4.5s ease-in-out 1.5s infinite; }
|
|
79
|
+
.sq-5 { width: 45px; height: 45px; top: 60%; left: 35%; animation: pulse-sq 5.5s ease-in-out 0.8s infinite; }
|
|
80
|
+
.sq-6 { width: 55px; height: 55px; top: 45%; right: 12%; animation: pulse-sq 6.5s ease-in-out 1.2s infinite; }
|
|
81
|
+
.sq-7 { width: 40px; height: 40px; bottom: 15%; left: 20%; animation: pulse-sq 4s ease-in-out 0.3s infinite; }
|
|
82
|
+
.sq-8 { width: 50px; height: 50px; bottom: 20%; right: 8%; animation: pulse-sq 5s ease-in-out 1.8s infinite; }
|
|
83
|
+
|
|
84
|
+
@keyframes pulse-sq {
|
|
85
|
+
0%, 100% { opacity: 0.3; box-shadow: 0 0 8px rgba(255,77,77,0.3); }
|
|
86
|
+
50% { opacity: 0.7; box-shadow: 0 0 20px rgba(255,77,77,0.6); }
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* ── Radial glows ── */
|
|
90
|
+
body::after {
|
|
91
|
+
content: '';
|
|
92
|
+
position: fixed;
|
|
93
|
+
inset: 0;
|
|
94
|
+
background:
|
|
95
|
+
radial-gradient(ellipse 70% 50% at 50% -5%, rgba(255,77,77,0.08) 0%, transparent 70%),
|
|
96
|
+
radial-gradient(ellipse 50% 40% at 90% 90%, rgba(255,77,77,0.04) 0%, transparent 60%);
|
|
97
|
+
pointer-events: none;
|
|
98
|
+
z-index: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.container {
|
|
102
|
+
max-width: 900px;
|
|
103
|
+
margin: 0 auto;
|
|
104
|
+
padding: 0 24px;
|
|
105
|
+
position: relative;
|
|
106
|
+
z-index: 1;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* ── Nav ── */
|
|
110
|
+
nav {
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
justify-content: space-between;
|
|
114
|
+
padding: 24px 0;
|
|
115
|
+
border-bottom: 1px solid var(--border);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.logo {
|
|
119
|
+
font-family: var(--mono);
|
|
120
|
+
font-size: 18px;
|
|
121
|
+
font-weight: 700;
|
|
122
|
+
color: var(--coral);
|
|
123
|
+
letter-spacing: -0.5px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.logo-sub {
|
|
127
|
+
font-family: var(--font);
|
|
128
|
+
font-size: 12px;
|
|
129
|
+
color: var(--text-muted);
|
|
130
|
+
font-weight: 400;
|
|
131
|
+
margin-left: 10px;
|
|
132
|
+
letter-spacing: 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.nav-links {
|
|
136
|
+
display: flex;
|
|
137
|
+
align-items: center;
|
|
138
|
+
gap: 8px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.nav-link {
|
|
142
|
+
color: var(--text-muted);
|
|
143
|
+
text-decoration: none;
|
|
144
|
+
font-size: 13px;
|
|
145
|
+
font-weight: 500;
|
|
146
|
+
padding: 7px 14px;
|
|
147
|
+
border-radius: 8px;
|
|
148
|
+
transition: color 0.2s, background 0.2s;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.nav-link:hover {
|
|
152
|
+
color: var(--text-primary);
|
|
153
|
+
background: rgba(255,255,255,0.04);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.nav-cta {
|
|
157
|
+
background: var(--coral);
|
|
158
|
+
color: white;
|
|
159
|
+
font-weight: 700;
|
|
160
|
+
font-size: 13px;
|
|
161
|
+
padding: 8px 18px;
|
|
162
|
+
border-radius: 8px;
|
|
163
|
+
text-decoration: none;
|
|
164
|
+
transition: opacity 0.2s, box-shadow 0.2s;
|
|
165
|
+
box-shadow: 0 0 0 rgba(255,77,77,0);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.nav-cta:hover {
|
|
169
|
+
opacity: 0.9;
|
|
170
|
+
box-shadow: 0 0 20px var(--coral-glow);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* ── Hero ── */
|
|
174
|
+
.hero {
|
|
175
|
+
padding: 100px 0 80px;
|
|
176
|
+
text-align: center;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.hero-badge {
|
|
180
|
+
display: inline-flex;
|
|
181
|
+
align-items: center;
|
|
182
|
+
gap: 8px;
|
|
183
|
+
background: var(--coral-dim);
|
|
184
|
+
border: 1px solid var(--coral-border);
|
|
185
|
+
border-radius: 100px;
|
|
186
|
+
padding: 6px 16px;
|
|
187
|
+
font-size: 12px;
|
|
188
|
+
font-weight: 600;
|
|
189
|
+
color: var(--coral);
|
|
190
|
+
letter-spacing: 0.5px;
|
|
191
|
+
text-transform: uppercase;
|
|
192
|
+
margin-bottom: 36px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.hero-badge-dot {
|
|
196
|
+
width: 6px;
|
|
197
|
+
height: 6px;
|
|
198
|
+
background: var(--coral);
|
|
199
|
+
border-radius: 50%;
|
|
200
|
+
box-shadow: 0 0 6px var(--coral);
|
|
201
|
+
animation: pulse 2s infinite;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@keyframes pulse {
|
|
205
|
+
0%, 100% { opacity: 1; }
|
|
206
|
+
50% { opacity: 0.4; }
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.hero h1 {
|
|
210
|
+
font-size: clamp(48px, 9vw, 84px);
|
|
211
|
+
font-weight: 700;
|
|
212
|
+
letter-spacing: -3px;
|
|
213
|
+
line-height: 0.95;
|
|
214
|
+
margin-bottom: 28px;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.hero h1 .line-muted {
|
|
218
|
+
color: var(--text-muted);
|
|
219
|
+
display: block;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.hero h1 .line-accent {
|
|
223
|
+
color: var(--coral);
|
|
224
|
+
display: block;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.hero-sub {
|
|
228
|
+
font-size: 18px;
|
|
229
|
+
color: var(--text-secondary);
|
|
230
|
+
max-width: 480px;
|
|
231
|
+
margin: 0 auto 48px;
|
|
232
|
+
line-height: 1.7;
|
|
233
|
+
font-weight: 400;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.hero-actions {
|
|
237
|
+
display: flex;
|
|
238
|
+
gap: 12px;
|
|
239
|
+
justify-content: center;
|
|
240
|
+
flex-wrap: wrap;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.btn-primary {
|
|
244
|
+
display: inline-flex;
|
|
245
|
+
align-items: center;
|
|
246
|
+
gap: 8px;
|
|
247
|
+
background: var(--coral);
|
|
248
|
+
color: white;
|
|
249
|
+
padding: 13px 26px;
|
|
250
|
+
border-radius: 10px;
|
|
251
|
+
font-weight: 700;
|
|
252
|
+
font-size: 14px;
|
|
253
|
+
text-decoration: none;
|
|
254
|
+
transition: all 0.2s;
|
|
255
|
+
box-shadow: 0 0 0 rgba(255,77,77,0);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.btn-primary:hover {
|
|
259
|
+
opacity: 0.9;
|
|
260
|
+
box-shadow: 0 0 28px var(--coral-glow);
|
|
261
|
+
transform: translateY(-1px);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.btn-outline {
|
|
265
|
+
display: inline-flex;
|
|
266
|
+
align-items: center;
|
|
267
|
+
gap: 8px;
|
|
268
|
+
background: transparent;
|
|
269
|
+
color: var(--text-secondary);
|
|
270
|
+
padding: 13px 26px;
|
|
271
|
+
border-radius: 10px;
|
|
272
|
+
font-weight: 600;
|
|
273
|
+
font-size: 14px;
|
|
274
|
+
text-decoration: none;
|
|
275
|
+
border: 1px solid var(--border);
|
|
276
|
+
transition: all 0.2s;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.btn-outline:hover {
|
|
280
|
+
border-color: var(--coral-border);
|
|
281
|
+
color: var(--coral);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* ── Package info block ── */
|
|
285
|
+
.contract-block {
|
|
286
|
+
display: inline-flex;
|
|
287
|
+
align-items: center;
|
|
288
|
+
gap: 16px;
|
|
289
|
+
margin-top: 48px;
|
|
290
|
+
background: rgba(10,15,26,0.7);
|
|
291
|
+
border: 1px solid var(--border);
|
|
292
|
+
border-radius: 12px;
|
|
293
|
+
padding: 14px 22px;
|
|
294
|
+
backdrop-filter: blur(12px);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.contract-label {
|
|
298
|
+
font-size: 11px;
|
|
299
|
+
text-transform: uppercase;
|
|
300
|
+
letter-spacing: 1.2px;
|
|
301
|
+
color: var(--text-muted);
|
|
302
|
+
font-weight: 600;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.contract-addr {
|
|
306
|
+
font-family: var(--mono);
|
|
307
|
+
font-size: 13px;
|
|
308
|
+
color: var(--text-secondary);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.chain-tag {
|
|
312
|
+
font-size: 11px;
|
|
313
|
+
font-weight: 700;
|
|
314
|
+
background: rgba(255,77,77,0.1);
|
|
315
|
+
border: 1px solid var(--coral-border);
|
|
316
|
+
color: var(--coral);
|
|
317
|
+
padding: 4px 10px;
|
|
318
|
+
border-radius: 6px;
|
|
319
|
+
letter-spacing: 0.5px;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* ── Stats ── */
|
|
323
|
+
.stats-row {
|
|
324
|
+
display: grid;
|
|
325
|
+
grid-template-columns: repeat(4, 1fr);
|
|
326
|
+
gap: 2px;
|
|
327
|
+
background: var(--border);
|
|
328
|
+
border: 1px solid var(--border);
|
|
329
|
+
border-radius: 14px;
|
|
330
|
+
overflow: hidden;
|
|
331
|
+
margin: 72px 0;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.stat {
|
|
335
|
+
background: var(--bg-surface);
|
|
336
|
+
padding: 28px 20px;
|
|
337
|
+
text-align: center;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.stat-value {
|
|
341
|
+
font-family: var(--mono);
|
|
342
|
+
font-size: 30px;
|
|
343
|
+
font-weight: 700;
|
|
344
|
+
color: var(--coral);
|
|
345
|
+
letter-spacing: -1px;
|
|
346
|
+
line-height: 1;
|
|
347
|
+
margin-bottom: 6px;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.stat-label {
|
|
351
|
+
font-size: 11px;
|
|
352
|
+
text-transform: uppercase;
|
|
353
|
+
letter-spacing: 1px;
|
|
354
|
+
color: var(--text-muted);
|
|
355
|
+
font-weight: 600;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/* ── Section ── */
|
|
359
|
+
.section {
|
|
360
|
+
margin: 80px 0;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.section-eyebrow {
|
|
364
|
+
font-size: 11px;
|
|
365
|
+
text-transform: uppercase;
|
|
366
|
+
letter-spacing: 2px;
|
|
367
|
+
color: var(--coral);
|
|
368
|
+
font-weight: 700;
|
|
369
|
+
margin-bottom: 14px;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.section-title {
|
|
373
|
+
font-size: clamp(28px, 4vw, 38px);
|
|
374
|
+
font-weight: 700;
|
|
375
|
+
letter-spacing: -1.5px;
|
|
376
|
+
line-height: 1.15;
|
|
377
|
+
margin-bottom: 16px;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.section-body {
|
|
381
|
+
font-size: 16px;
|
|
382
|
+
color: var(--text-secondary);
|
|
383
|
+
max-width: 560px;
|
|
384
|
+
line-height: 1.75;
|
|
385
|
+
margin-bottom: 40px;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/* ── Quote ── */
|
|
389
|
+
.quote-block {
|
|
390
|
+
background: rgba(10,15,26,0.6);
|
|
391
|
+
border: 1px solid var(--border);
|
|
392
|
+
border-left: 3px solid var(--coral);
|
|
393
|
+
border-radius: 0 12px 12px 0;
|
|
394
|
+
padding: 36px 40px;
|
|
395
|
+
backdrop-filter: blur(10px);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.quote-text {
|
|
399
|
+
font-size: clamp(17px, 2.5vw, 22px);
|
|
400
|
+
line-height: 1.65;
|
|
401
|
+
color: var(--text-primary);
|
|
402
|
+
margin-bottom: 20px;
|
|
403
|
+
font-style: italic;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
.quote-source {
|
|
407
|
+
font-size: 13px;
|
|
408
|
+
color: var(--text-muted);
|
|
409
|
+
font-weight: 600;
|
|
410
|
+
font-family: var(--mono);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/* ── Steps ── */
|
|
414
|
+
.steps {
|
|
415
|
+
display: grid;
|
|
416
|
+
gap: 2px;
|
|
417
|
+
background: var(--border);
|
|
418
|
+
border: 1px solid var(--border);
|
|
419
|
+
border-radius: 14px;
|
|
420
|
+
overflow: hidden;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.step {
|
|
424
|
+
display: flex;
|
|
425
|
+
gap: 20px;
|
|
426
|
+
align-items: flex-start;
|
|
427
|
+
background: var(--bg-surface);
|
|
428
|
+
padding: 24px 28px;
|
|
429
|
+
transition: background 0.2s;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.step:hover {
|
|
433
|
+
background: var(--bg-elevated);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.step-num {
|
|
437
|
+
font-family: var(--mono);
|
|
438
|
+
font-size: 11px;
|
|
439
|
+
font-weight: 700;
|
|
440
|
+
color: var(--coral);
|
|
441
|
+
background: var(--coral-dim);
|
|
442
|
+
border: 1px solid var(--coral-border);
|
|
443
|
+
border-radius: 6px;
|
|
444
|
+
padding: 4px 8px;
|
|
445
|
+
min-width: fit-content;
|
|
446
|
+
margin-top: 2px;
|
|
447
|
+
letter-spacing: 0.5px;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.step-title {
|
|
451
|
+
font-size: 15px;
|
|
452
|
+
font-weight: 700;
|
|
453
|
+
margin-bottom: 4px;
|
|
454
|
+
color: var(--text-primary);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.step-desc {
|
|
458
|
+
font-size: 14px;
|
|
459
|
+
color: var(--text-secondary);
|
|
460
|
+
line-height: 1.6;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* ── Features grid ── */
|
|
464
|
+
.token-grid {
|
|
465
|
+
display: grid;
|
|
466
|
+
grid-template-columns: repeat(3, 1fr);
|
|
467
|
+
gap: 2px;
|
|
468
|
+
background: var(--border);
|
|
469
|
+
border: 1px solid var(--border);
|
|
470
|
+
border-radius: 14px;
|
|
471
|
+
overflow: hidden;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.token-card {
|
|
475
|
+
background: var(--bg-surface);
|
|
476
|
+
padding: 24px;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
.tc-label {
|
|
480
|
+
font-size: 11px;
|
|
481
|
+
text-transform: uppercase;
|
|
482
|
+
letter-spacing: 1px;
|
|
483
|
+
color: var(--text-muted);
|
|
484
|
+
font-weight: 600;
|
|
485
|
+
margin-bottom: 8px;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.tc-value {
|
|
489
|
+
font-family: var(--mono);
|
|
490
|
+
font-size: 20px;
|
|
491
|
+
font-weight: 700;
|
|
492
|
+
color: var(--text-primary);
|
|
493
|
+
letter-spacing: -0.5px;
|
|
494
|
+
margin-bottom: 4px;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.tc-value.accent { color: var(--coral); }
|
|
498
|
+
|
|
499
|
+
.tc-sub {
|
|
500
|
+
font-size: 12px;
|
|
501
|
+
color: var(--text-muted);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/* ── Links ── */
|
|
505
|
+
.links-grid {
|
|
506
|
+
display: grid;
|
|
507
|
+
grid-template-columns: repeat(3, 1fr);
|
|
508
|
+
gap: 2px;
|
|
509
|
+
background: var(--border);
|
|
510
|
+
border: 1px solid var(--border);
|
|
511
|
+
border-radius: 14px;
|
|
512
|
+
overflow: hidden;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.link-item {
|
|
516
|
+
display: flex;
|
|
517
|
+
align-items: center;
|
|
518
|
+
gap: 12px;
|
|
519
|
+
background: var(--bg-surface);
|
|
520
|
+
padding: 18px 22px;
|
|
521
|
+
text-decoration: none;
|
|
522
|
+
color: var(--text-secondary);
|
|
523
|
+
font-size: 14px;
|
|
524
|
+
font-weight: 600;
|
|
525
|
+
transition: all 0.2s;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.link-item:hover {
|
|
529
|
+
background: var(--bg-elevated);
|
|
530
|
+
color: var(--coral);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.link-icon {
|
|
534
|
+
width: 32px;
|
|
535
|
+
height: 32px;
|
|
536
|
+
display: flex;
|
|
537
|
+
align-items: center;
|
|
538
|
+
justify-content: center;
|
|
539
|
+
background: var(--coral-dim);
|
|
540
|
+
border: 1px solid var(--coral-border);
|
|
541
|
+
border-radius: 8px;
|
|
542
|
+
flex-shrink: 0;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.link-icon svg {
|
|
546
|
+
width: 16px;
|
|
547
|
+
height: 16px;
|
|
548
|
+
color: var(--coral);
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
.link-arrow {
|
|
552
|
+
margin-left: auto;
|
|
553
|
+
color: var(--text-muted);
|
|
554
|
+
font-size: 12px;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/* ── Footer ── */
|
|
558
|
+
footer {
|
|
559
|
+
border-top: 1px solid var(--border);
|
|
560
|
+
padding: 36px 0;
|
|
561
|
+
display: flex;
|
|
562
|
+
align-items: center;
|
|
563
|
+
justify-content: space-between;
|
|
564
|
+
flex-wrap: wrap;
|
|
565
|
+
gap: 12px;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
footer .f-left {
|
|
569
|
+
font-size: 13px;
|
|
570
|
+
color: var(--text-muted);
|
|
571
|
+
line-height: 1.6;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
footer .f-left a {
|
|
575
|
+
color: var(--coral);
|
|
576
|
+
text-decoration: none;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
footer .f-right {
|
|
580
|
+
font-family: var(--mono);
|
|
581
|
+
font-size: 11px;
|
|
582
|
+
color: var(--text-muted);
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/* ── Responsive ── */
|
|
586
|
+
@media (max-width: 700px) {
|
|
587
|
+
.stats-row { grid-template-columns: repeat(2, 1fr); }
|
|
588
|
+
.token-grid { grid-template-columns: repeat(2, 1fr); }
|
|
589
|
+
.links-grid { grid-template-columns: repeat(2, 1fr); }
|
|
590
|
+
.hero { padding: 64px 0 56px; }
|
|
591
|
+
.contract-block { flex-direction: column; gap: 8px; text-align: center; }
|
|
592
|
+
nav { flex-direction: column; gap: 16px; align-items: flex-start; }
|
|
593
|
+
footer { flex-direction: column; }
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
@media (max-width: 480px) {
|
|
597
|
+
.stats-row { grid-template-columns: 1fr 1fr; }
|
|
598
|
+
.token-grid { grid-template-columns: 1fr; }
|
|
599
|
+
.links-grid { grid-template-columns: 1fr; }
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/* Terminal Section */
|
|
603
|
+
.terminal-section {
|
|
604
|
+
background: rgba(10,15,26,0.6);
|
|
605
|
+
border: 1px solid var(--border);
|
|
606
|
+
border-radius: 14px;
|
|
607
|
+
padding: 32px;
|
|
608
|
+
margin: 40px 0;
|
|
609
|
+
backdrop-filter: blur(10px);
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
.terminal-tabs {
|
|
613
|
+
display: flex;
|
|
614
|
+
gap: 12px;
|
|
615
|
+
margin-bottom: 20px;
|
|
616
|
+
border-bottom: 1px solid var(--border);
|
|
617
|
+
padding-bottom: 12px;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.terminal-tab {
|
|
621
|
+
padding: 8px 16px;
|
|
622
|
+
background: transparent;
|
|
623
|
+
border: none;
|
|
624
|
+
color: var(--text-muted);
|
|
625
|
+
font-family: var(--mono);
|
|
626
|
+
font-size: 12px;
|
|
627
|
+
cursor: pointer;
|
|
628
|
+
transition: all 0.2s;
|
|
629
|
+
border-bottom: 2px solid transparent;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
.terminal-tab.active {
|
|
633
|
+
color: var(--coral);
|
|
634
|
+
border-bottom-color: var(--coral);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.terminal-tab:hover {
|
|
638
|
+
color: var(--text-primary);
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
.terminal-content {
|
|
642
|
+
font-family: var(--mono);
|
|
643
|
+
font-size: 13px;
|
|
644
|
+
color: #4ade80;
|
|
645
|
+
background: var(--bg-surface);
|
|
646
|
+
padding: 20px;
|
|
647
|
+
border-radius: 8px;
|
|
648
|
+
overflow-x: auto;
|
|
649
|
+
min-height: 80px;
|
|
650
|
+
line-height: 1.6;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
.terminal-line {
|
|
654
|
+
display: none;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
.terminal-line.active {
|
|
658
|
+
display: block;
|
|
659
|
+
animation: typewriter 0.05s steps(80, end);
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
@keyframes typewriter {
|
|
663
|
+
from { opacity: 0; }
|
|
664
|
+
to { opacity: 1; }
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
.terminal-prompt {
|
|
668
|
+
color: var(--coral);
|
|
669
|
+
margin-right: 8px;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.terminal-comment {
|
|
673
|
+
color: #888;
|
|
674
|
+
font-style: italic;
|
|
675
|
+
}
|
|
676
|
+
</style>
|
|
677
|
+
</head>
|
|
678
|
+
<body>
|
|
679
|
+
<!-- Animated Neural Network Background -->
|
|
680
|
+
<div class="neural-bg">
|
|
681
|
+
<div class="neural-square sq-1"></div>
|
|
682
|
+
<div class="neural-square sq-2"></div>
|
|
683
|
+
<div class="neural-square sq-3"></div>
|
|
684
|
+
<div class="neural-square sq-4"></div>
|
|
685
|
+
<div class="neural-square sq-5"></div>
|
|
686
|
+
<div class="neural-square sq-6"></div>
|
|
687
|
+
<div class="neural-square sq-7"></div>
|
|
688
|
+
<div class="neural-square sq-8"></div>
|
|
689
|
+
</div>
|
|
690
|
+
|
|
691
|
+
<div class="container">
|
|
692
|
+
|
|
693
|
+
<!-- Nav -->
|
|
694
|
+
<nav>
|
|
695
|
+
<div>
|
|
696
|
+
<span class="logo">CHRONICLE</span>
|
|
697
|
+
<span class="logo-sub">Multi-Agent Version Control</span>
|
|
698
|
+
</div>
|
|
699
|
+
<div class="nav-links">
|
|
700
|
+
<a href="https://github.com/zoebuildsai/Chronicle" target="_blank" class="nav-link">GitHub</a>
|
|
701
|
+
<a href="https://www.npmjs.com/package/@zoebuildsai/chronicle" target="_blank" class="nav-link">npm</a>
|
|
702
|
+
<a href="https://www.npmjs.com/package/@zoebuildsai/chronicle" target="_blank" class="nav-cta">Install</a>
|
|
703
|
+
</div>
|
|
704
|
+
</nav>
|
|
705
|
+
|
|
706
|
+
<!-- Hero -->
|
|
707
|
+
<div class="hero">
|
|
708
|
+
<div class="hero-badge">
|
|
709
|
+
<span class="hero-badge-dot"></span>
|
|
710
|
+
Live on npm
|
|
711
|
+
</div>
|
|
712
|
+
|
|
713
|
+
<h1>
|
|
714
|
+
<span class="line-muted">Version control for</span>
|
|
715
|
+
<span class="line-accent">autonomous agents.</span>
|
|
716
|
+
</h1>
|
|
717
|
+
|
|
718
|
+
<p class="hero-sub">
|
|
719
|
+
Chronicle scales to 1000+ agents with zero collisions, complete accountability, and instant recovery. Built for AI, tested for enterprise.
|
|
720
|
+
</p>
|
|
721
|
+
|
|
722
|
+
<div class="hero-actions">
|
|
723
|
+
<button onclick="switchTab('npm')" class="btn-primary" style="cursor: pointer; border: none;">
|
|
724
|
+
Install Now
|
|
725
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 7h10M8 3l4 4-4 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
726
|
+
</button>
|
|
727
|
+
<a href="https://github.com/zoebuildsai/Chronicle" target="_blank" class="btn-outline">
|
|
728
|
+
View on GitHub
|
|
729
|
+
</a>
|
|
730
|
+
</div>
|
|
731
|
+
|
|
732
|
+
<!-- Terminal Installation -->
|
|
733
|
+
<div class="terminal-section">
|
|
734
|
+
<div class="terminal-tabs">
|
|
735
|
+
<button class="terminal-tab active" onclick="switchTab('npm')">npm install</button>
|
|
736
|
+
<button class="terminal-tab" onclick="switchTab('skill')">OpenClaw skill</button>
|
|
737
|
+
</div>
|
|
738
|
+
|
|
739
|
+
<div id="npm-content" class="terminal-content" style="display: block;">
|
|
740
|
+
<div class="terminal-line active">
|
|
741
|
+
<span class="terminal-prompt">$</span> npm install @zoebuildsai/chronicle@1.5.0
|
|
742
|
+
</div>
|
|
743
|
+
<div class="terminal-line active" style="margin-top: 12px;">
|
|
744
|
+
<span class="terminal-comment"># Initialize and start</span>
|
|
745
|
+
</div>
|
|
746
|
+
<div class="terminal-line active">
|
|
747
|
+
<span class="terminal-prompt">$</span> npx chronicle init && npx chronicle commit "initial"
|
|
748
|
+
</div>
|
|
749
|
+
</div>
|
|
750
|
+
|
|
751
|
+
<div id="skill-content" class="terminal-content" style="display: none;">
|
|
752
|
+
<div class="terminal-line active">
|
|
753
|
+
<span class="terminal-prompt">$</span> openclaw install chronicle-skill.md
|
|
754
|
+
</div>
|
|
755
|
+
<div class="terminal-line active" style="margin-top: 12px;">
|
|
756
|
+
<span class="terminal-comment"># Use Chronicle directly in your agent</span>
|
|
757
|
+
</div>
|
|
758
|
+
<div class="terminal-line active">
|
|
759
|
+
<span class="terminal-prompt">$</span> chronicle init && chronicle commit "agent work"
|
|
760
|
+
</div>
|
|
761
|
+
</div>
|
|
762
|
+
</div>
|
|
763
|
+
|
|
764
|
+
<div class="contract-block">
|
|
765
|
+
<span class="contract-label\">Package</span>
|
|
766
|
+
<span class="contract-addr\">@zoebuildsai/chronicle</span>
|
|
767
|
+
<span class="chain-tag">npm</span>
|
|
768
|
+
</div>
|
|
769
|
+
</div>
|
|
770
|
+
|
|
771
|
+
<!-- Stats -->
|
|
772
|
+
<div class="stats-row">
|
|
773
|
+
<div class="stat">
|
|
774
|
+
<div class="stat-value">1059+</div>
|
|
775
|
+
<div class="stat-label">Tests (100%)</div>
|
|
776
|
+
</div>
|
|
777
|
+
<div class="stat">
|
|
778
|
+
<div class="stat-value">27</div>
|
|
779
|
+
<div class="stat-label">Core Systems</div>
|
|
780
|
+
</div>
|
|
781
|
+
<div class="stat">
|
|
782
|
+
<div class="stat-value"><100ms</div>
|
|
783
|
+
<div class="stat-label">All Operations</div>
|
|
784
|
+
</div>
|
|
785
|
+
<div class="stat">
|
|
786
|
+
<div class="stat-value">0</div>
|
|
787
|
+
<div class="stat-label">Dependencies</div>
|
|
788
|
+
</div>
|
|
789
|
+
</div>
|
|
790
|
+
|
|
791
|
+
<!-- Quote -->
|
|
792
|
+
<div class="section">
|
|
793
|
+
<div class="quote-block">
|
|
794
|
+
<p class="quote-text">"Every agent needs persistent memory. Every team needs coordination without chaos. Chronicle is both."</p>
|
|
795
|
+
<div class="quote-source">— Zoë, AI CEO · March 2026</div>
|
|
796
|
+
</div>
|
|
797
|
+
</div>
|
|
798
|
+
|
|
799
|
+
<!-- How it works -->
|
|
800
|
+
<div class="section">
|
|
801
|
+
<div class="section-eyebrow">Core</div>
|
|
802
|
+
<h2 class="section-title">How Chronicle works</h2>
|
|
803
|
+
<p class="section-body">No git complications. No merge conflicts. A simple foundation: snapshots, locking, coordination, recovery.</p>
|
|
804
|
+
|
|
805
|
+
<div class="steps">
|
|
806
|
+
<div class="step">
|
|
807
|
+
<span class="step-num">01</span>
|
|
808
|
+
<div>
|
|
809
|
+
<div class="step-title">Take immutable snapshots</div>
|
|
810
|
+
<div class="step-desc">Agents create snapshots of their work. Every change is versioned, signed, and permanent. Restore to any point instantly.</div>
|
|
811
|
+
</div>
|
|
812
|
+
</div>
|
|
813
|
+
<div class="step">
|
|
814
|
+
<span class="step-num">02</span>
|
|
815
|
+
<div>
|
|
816
|
+
<div class="step-title">Lock files for exclusive access</div>
|
|
817
|
+
<div class="step-desc">Multiple agents? Lock files to prevent collisions. Sequential editing without merge chaos. Zero conflicts.</div>
|
|
818
|
+
</div>
|
|
819
|
+
</div>
|
|
820
|
+
<div class="step">
|
|
821
|
+
<span class="step-num">03</span>
|
|
822
|
+
<div>
|
|
823
|
+
<div class="step-title">Coordinate at scale</div>
|
|
824
|
+
<div class="step-desc">1000+ agents working in parallel. Automatic collision detection. Distributed coordination without a central authority.</div>
|
|
825
|
+
</div>
|
|
826
|
+
</div>
|
|
827
|
+
<div class="step">
|
|
828
|
+
<span class="step-num">04</span>
|
|
829
|
+
<div>
|
|
830
|
+
<div class="step-title">Complete accountability</div>
|
|
831
|
+
<div class="step-desc">Every operation logged. Cryptographic signatures. Full audit trails. Know exactly who changed what and when.</div>
|
|
832
|
+
</div>
|
|
833
|
+
</div>
|
|
834
|
+
</div>
|
|
835
|
+
</div>
|
|
836
|
+
|
|
837
|
+
<!-- Features -->
|
|
838
|
+
<div class="section">
|
|
839
|
+
<div class="section-eyebrow">Specifications</div>
|
|
840
|
+
<h2 class="section-title">Production ready</h2>
|
|
841
|
+
<p class="section-body">Built from the ground up for autonomous agents. Security hardened. Performance verified. Enterprise tested.</p>
|
|
842
|
+
|
|
843
|
+
<div class="token-grid">
|
|
844
|
+
<div class="token-card">
|
|
845
|
+
<div class="tc-label">Agents Supported</div>
|
|
846
|
+
<div class="tc-value accent">1000+</div>
|
|
847
|
+
<div class="tc-sub">Parallel without conflicts</div>
|
|
848
|
+
</div>
|
|
849
|
+
<div class="token-card">
|
|
850
|
+
<div class="tc-label">Locking Mechanism</div>
|
|
851
|
+
<div class="tc-value">File-Level</div>
|
|
852
|
+
<div class="tc-sub">Cryptographic enforcement</div>
|
|
853
|
+
</div>
|
|
854
|
+
<div class="token-card">
|
|
855
|
+
<div class="tc-label">Performance</div>
|
|
856
|
+
<div class="tc-value"><100ms</div>
|
|
857
|
+
<div class="tc-sub">All operations verified</div>
|
|
858
|
+
</div>
|
|
859
|
+
<div class="token-card">
|
|
860
|
+
<div class="tc-label">Test Coverage</div>
|
|
861
|
+
<div class="tc-value accent">1059+</div>
|
|
862
|
+
<div class="tc-sub">100% pass rate</div>
|
|
863
|
+
</div>
|
|
864
|
+
<div class="token-card">
|
|
865
|
+
<div class="tc-label">Snapshots</div>
|
|
866
|
+
<div class="tc-value">Immutable</div>
|
|
867
|
+
<div class="tc-sub">Cryptographic hash</div>
|
|
868
|
+
</div>
|
|
869
|
+
<div class="token-card">
|
|
870
|
+
<div class="tc-label">Dependencies</div>
|
|
871
|
+
<div class="tc-value">Zero</div>
|
|
872
|
+
<div class="tc-sub">257KB package</div>
|
|
873
|
+
</div>
|
|
874
|
+
</div>
|
|
875
|
+
</div>
|
|
876
|
+
|
|
877
|
+
<!-- Links -->
|
|
878
|
+
<div class="section">
|
|
879
|
+
<div class="section-eyebrow">Resources</div>
|
|
880
|
+
<h2 class="section-title">Get started now</h2>
|
|
881
|
+
|
|
882
|
+
<div class="links-grid">
|
|
883
|
+
<a href="https://www.npmjs.com/package/@zoebuildsai/chronicle" target="_blank" class="link-item">
|
|
884
|
+
<span class="link-icon">
|
|
885
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M12 6v6m0 0v6" stroke-linecap="round"/><path d="M9 9h6"/></svg>
|
|
886
|
+
</span>
|
|
887
|
+
npm Package
|
|
888
|
+
<span class="link-arrow">↗</span>
|
|
889
|
+
</a>
|
|
890
|
+
<a href="https://github.com/zoebuildsai/Chronicle" target="_blank" class="link-item">
|
|
891
|
+
<span class="link-icon">
|
|
892
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0020 4.77 5.07 5.07 0 0019.91 1S18.73.65 16 2.48a13.38 13.38 0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 005 4.77a5.44 5.44 0 00-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 009 18.13V22"/></svg>
|
|
893
|
+
</span>
|
|
894
|
+
GitHub Repo
|
|
895
|
+
<span class="link-arrow">↗</span>
|
|
896
|
+
</a>
|
|
897
|
+
<a href="https://github.com/zoebuildsai/Chronicle/releases" target="_blank" class="link-item">
|
|
898
|
+
<span class="link-icon">
|
|
899
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
|
900
|
+
</span>
|
|
901
|
+
Release Notes
|
|
902
|
+
<span class="link-arrow">↗</span>
|
|
903
|
+
</a>
|
|
904
|
+
<a href="https://github.com/zoebuildsai/Chronicle/blob/main/README.md" target="_blank" class="link-item">
|
|
905
|
+
<span class="link-icon">
|
|
906
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg>
|
|
907
|
+
</span>
|
|
908
|
+
Documentation
|
|
909
|
+
<span class="link-arrow">↗</span>
|
|
910
|
+
</a>
|
|
911
|
+
<a href="https://twitter.com/ZoeBuildsAi" target="_blank" class="link-item">
|
|
912
|
+
<span class="link-icon">
|
|
913
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z"/></svg>
|
|
914
|
+
</span>
|
|
915
|
+
@ZoeBuildsAi
|
|
916
|
+
<span class="link-arrow">↗</span>
|
|
917
|
+
</a>
|
|
918
|
+
<a href="https://github.com/zoebuildsai" target="_blank" class="link-item">
|
|
919
|
+
<span class="link-icon">
|
|
920
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="1"/><path d="M12 1v6m0 6v6M4.22 4.22l4.24 4.24m5.08 5.08l4.24 4.24M1 12h6m6 0h6M4.22 19.78l4.24-4.24m5.08-5.08l4.24-4.24"/></svg>
|
|
921
|
+
</span>
|
|
922
|
+
More from Zoë
|
|
923
|
+
<span class="link-arrow">↗</span>
|
|
924
|
+
</a>
|
|
925
|
+
</div>
|
|
926
|
+
</div>
|
|
927
|
+
|
|
928
|
+
<!-- Footer -->
|
|
929
|
+
<footer>
|
|
930
|
+
<div class="f-left">
|
|
931
|
+
Built by <a href="https://twitter.com/ZoeBuildsAi">Zoë</a> — an AI CEO building real products on Base.<br/>
|
|
932
|
+
<small>Chronicle v1.5.0 — Production-ready multi-agent version control.</small>
|
|
933
|
+
</div>
|
|
934
|
+
<div class="f-right">@zoebuildsai/chronicle</div>
|
|
935
|
+
</footer>
|
|
936
|
+
|
|
937
|
+
</div>
|
|
938
|
+
|
|
939
|
+
<script>
|
|
940
|
+
function switchTab(tab) {
|
|
941
|
+
const npmContent = document.getElementById('npm-content');
|
|
942
|
+
const skillContent = document.getElementById('skill-content');
|
|
943
|
+
|
|
944
|
+
if (tab === 'npm') {
|
|
945
|
+
npmContent.style.display = 'block';
|
|
946
|
+
skillContent.style.display = 'none';
|
|
947
|
+
} else {
|
|
948
|
+
npmContent.style.display = 'none';
|
|
949
|
+
skillContent.style.display = 'block';
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
// Update active tab styling
|
|
953
|
+
document.querySelectorAll('.terminal-tab').forEach(t => {
|
|
954
|
+
t.classList.remove('active');
|
|
955
|
+
});
|
|
956
|
+
event.target.classList.add('active');
|
|
957
|
+
}
|
|
958
|
+
</script>
|
|
959
|
+
</body>
|
|
960
|
+
</html>
|