everything-gemini 1.2.0 → 1.8.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/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
- package/.github/ISSUE_TEMPLATE/subagent_proposal.md +29 -0
- package/.github/workflows/ci.yml +72 -1
- package/.github/workflows/release.yml +17 -2
- package/CHANGELOG.md +155 -0
- package/CONTRIBUTING.md +85 -4
- package/README.md +134 -19
- package/action.yml +35 -0
- package/agents/browser-qa.md +1 -1
- package/agents/database-migrator.md +26 -0
- package/agents/documentation-writer.md +27 -0
- package/agents/incident-responder.md +34 -0
- package/agents/performance-tuner.md +27 -0
- package/agents/release-engineer.md +34 -0
- package/bin/everything-gemini +1517 -122
- package/docs/COMMUNITY_SUBMISSIONS.md +88 -0
- package/docs/LAUNCH_KIT.md +138 -13
- package/docs/architecture/progressive-disclosure.md +3 -3
- package/docs/index.html +401 -40
- package/docs/launch-kit.md +163 -0
- package/examples/cli-workflows/demo_workflow.sh +15 -7
- package/examples/python-sdk/README.md +28 -5
- package/examples/python-sdk/documentation_audit_pipeline.py +83 -0
- package/examples/python-sdk/incident_triage_pipeline.py +170 -0
- package/examples/python-sdk/multi_agent_pipeline.py +95 -0
- package/examples/python-sdk/release_readiness_audit.py +144 -0
- package/hooks/secret-scrubber/hooks.json +16 -0
- package/hooks/secret-scrubber/scripts/scrub-secrets.sh +62 -0
- package/mcp/README.md +20 -0
- package/mcp/mcp_config.example.json +35 -0
- package/package.json +3 -1
- package/plugins/core/rules/core-practices.md +63 -4
- package/plugins/python-ai/rules/ai-agent-patterns.md +67 -4
- package/plugins/security-shield/rules/zero-trust.md +60 -4
- package/plugins/web-fullstack/rules/frontend-standards.md +74 -4
- package/rules/paradigms/security-hardened.md +53 -10
- package/rules/paradigms/tdd.md +65 -8
- package/scripts/install.ps1 +14 -0
- package/scripts/install.sh +15 -1
- package/scripts/validate.sh +103 -12
- package/skills/apache-kafka-streams/SKILL.md +152 -0
- package/skills/argo-workflows/SKILL.md +151 -0
- package/skills/axum-web-service/SKILL.md +159 -0
- package/skills/cilium-ebpf-networking/SKILL.md +145 -0
- package/skills/clickhouse-analytics/SKILL.md +128 -0
- package/skills/dbt-transformation/SKILL.md +179 -0
- package/skills/debezium-cdc/SKILL.md +166 -0
- package/skills/duckdb-local-olap/SKILL.md +134 -0
- package/skills/fastapi-production/SKILL.md +157 -0
- package/skills/grpc-connect-rpc/SKILL.md +176 -0
- package/skills/langgraph-orchestrator/SKILL.md +144 -0
- package/skills/litellm-proxy-gateway/SKILL.md +154 -0
- package/skills/nats-jetstream/SKILL.md +122 -0
- package/skills/open-telemetry-tracing/SKILL.md +151 -0
- package/skills/playwright-visual-regression/SKILL.md +124 -0
- package/skills/redis-cache-patterns/SKILL.md +159 -0
- package/skills/svelte-kit-architect/SKILL.md +190 -0
- package/skills/temporal-workflows/SKILL.md +158 -0
- package/skills/trpc-react-query/SKILL.md +169 -0
- package/skills/turborepo-monorepo/SKILL.md +199 -0
- package/skills/vllm-inference/SKILL.md +144 -0
- package/skills/wasm-rust-optimizer/SKILL.md +130 -0
- package/templates/full-power/hooks.json +14 -0
- package/templates/full-power/mcp_config.json +43 -0
- package/templates/recommended/hooks.json +14 -0
- package/tests/cli.test.js +383 -0
package/docs/index.html
CHANGED
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
<meta property="og:type" content="website">
|
|
11
11
|
<meta property="og:url" content="https://salmandev.github.io/everything-gemini/">
|
|
12
12
|
<meta property="og:title" content="Everything Gemini — Agent Harness for Google Antigravity">
|
|
13
|
-
<meta property="og:description" content="
|
|
13
|
+
<meta property="og:description" content="44 Progressive Disclosure Skills, 9 Scoped Subagents, and 7 Lifecycle Safety Gates for Gemini 3.8 & Google Antigravity.">
|
|
14
14
|
<meta property="og:image" content="https://raw.githubusercontent.com/salmandev/everything-gemini/main/assets/banner.jpg">
|
|
15
15
|
|
|
16
16
|
<!-- Twitter Card -->
|
|
17
17
|
<meta name="twitter:card" content="summary_large_image">
|
|
18
18
|
<meta name="twitter:url" content="https://salmandev.github.io/everything-gemini/">
|
|
19
19
|
<meta name="twitter:title" content="Everything Gemini — Agent Harness for Google Antigravity">
|
|
20
|
-
<meta name="twitter:description" content="
|
|
20
|
+
<meta name="twitter:description" content="48 Progressive Disclosure Skills, 10 Scoped Subagents, and 7 Lifecycle Safety Gates for Gemini 3.8 & Google Antigravity.">
|
|
21
21
|
<meta name="twitter:image" content="https://raw.githubusercontent.com/salmandev/everything-gemini/main/assets/banner.jpg">
|
|
22
22
|
|
|
23
23
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
@@ -294,6 +294,7 @@
|
|
|
294
294
|
display: flex;
|
|
295
295
|
flex-direction: column;
|
|
296
296
|
justify-content: space-between;
|
|
297
|
+
cursor: pointer;
|
|
297
298
|
}
|
|
298
299
|
.card:hover {
|
|
299
300
|
background: var(--bg-card-hover);
|
|
@@ -315,6 +316,7 @@
|
|
|
315
316
|
.tag-agent { background: rgba(156, 39, 176, 0.2); color: #d05ce3; }
|
|
316
317
|
.tag-backend { background: rgba(66, 133, 244, 0.18); color: #8ab4f8; }
|
|
317
318
|
.tag-devops { background: rgba(0, 230, 118, 0.15); color: var(--accent-emerald); }
|
|
319
|
+
.tag-hook { background: rgba(255, 171, 0, 0.18); color: #ffab00; }
|
|
318
320
|
|
|
319
321
|
.card h3 {
|
|
320
322
|
font-size: 1.15rem;
|
|
@@ -328,14 +330,46 @@
|
|
|
328
330
|
line-height: 1.5;
|
|
329
331
|
margin-bottom: 16px;
|
|
330
332
|
}
|
|
331
|
-
.card-
|
|
333
|
+
.card-actions {
|
|
332
334
|
display: flex;
|
|
333
|
-
justify-content: space-between;
|
|
334
335
|
align-items: center;
|
|
336
|
+
justify-content: space-between;
|
|
337
|
+
gap: 10px;
|
|
338
|
+
margin-top: 14px;
|
|
335
339
|
padding-top: 14px;
|
|
336
|
-
border-top: 1px solid rgba(255, 255, 255, 0.
|
|
337
|
-
|
|
340
|
+
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
341
|
+
flex-wrap: wrap;
|
|
342
|
+
}
|
|
343
|
+
.card-btn-view {
|
|
344
|
+
font-size: 0.78rem;
|
|
345
|
+
font-weight: 600;
|
|
346
|
+
color: var(--accent-cyan);
|
|
347
|
+
text-decoration: none;
|
|
348
|
+
display: inline-flex;
|
|
349
|
+
align-items: center;
|
|
350
|
+
gap: 4px;
|
|
351
|
+
transition: color 0.2s ease;
|
|
352
|
+
}
|
|
353
|
+
.card-btn-view:hover {
|
|
354
|
+
color: #fff;
|
|
355
|
+
text-decoration: underline;
|
|
356
|
+
}
|
|
357
|
+
.card-btn-copy {
|
|
358
|
+
background: rgba(255, 255, 255, 0.06);
|
|
359
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
338
360
|
color: var(--text-muted);
|
|
361
|
+
font-size: 0.75rem;
|
|
362
|
+
font-weight: 600;
|
|
363
|
+
padding: 5px 12px;
|
|
364
|
+
border-radius: 6px;
|
|
365
|
+
cursor: pointer;
|
|
366
|
+
margin-left: auto;
|
|
367
|
+
transition: all 0.2s ease;
|
|
368
|
+
}
|
|
369
|
+
.card-btn-copy:hover {
|
|
370
|
+
background: rgba(255, 255, 255, 0.15);
|
|
371
|
+
color: var(--text-main);
|
|
372
|
+
border-color: rgba(255, 255, 255, 0.3);
|
|
339
373
|
}
|
|
340
374
|
|
|
341
375
|
/* Footer */
|
|
@@ -351,9 +385,149 @@
|
|
|
351
385
|
text-decoration: none;
|
|
352
386
|
}
|
|
353
387
|
|
|
388
|
+
/* Profile Tabs */
|
|
389
|
+
.profile-tabs {
|
|
390
|
+
display: inline-flex;
|
|
391
|
+
background: rgba(16, 20, 31, 0.9);
|
|
392
|
+
border: 1px solid var(--border-color);
|
|
393
|
+
border-radius: 999px;
|
|
394
|
+
padding: 4px;
|
|
395
|
+
margin-bottom: 20px;
|
|
396
|
+
gap: 4px;
|
|
397
|
+
flex-wrap: wrap;
|
|
398
|
+
justify-content: center;
|
|
399
|
+
}
|
|
400
|
+
.profile-tab {
|
|
401
|
+
background: transparent;
|
|
402
|
+
border: none;
|
|
403
|
+
color: var(--text-muted);
|
|
404
|
+
padding: 6px 16px;
|
|
405
|
+
border-radius: 999px;
|
|
406
|
+
font-size: 0.82rem;
|
|
407
|
+
font-weight: 600;
|
|
408
|
+
cursor: pointer;
|
|
409
|
+
transition: all 0.2s ease;
|
|
410
|
+
}
|
|
411
|
+
.profile-tab:hover {
|
|
412
|
+
color: var(--text-main);
|
|
413
|
+
}
|
|
414
|
+
.profile-tab.active {
|
|
415
|
+
background: var(--accent-cyan);
|
|
416
|
+
color: #080a10;
|
|
417
|
+
box-shadow: 0 0 14px rgba(0, 229, 255, 0.4);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/* Modal Backdrop & Dialog */
|
|
421
|
+
.modal-backdrop {
|
|
422
|
+
position: fixed;
|
|
423
|
+
inset: 0;
|
|
424
|
+
background: rgba(4, 7, 13, 0.82);
|
|
425
|
+
backdrop-filter: blur(8px);
|
|
426
|
+
-webkit-backdrop-filter: blur(8px);
|
|
427
|
+
display: none;
|
|
428
|
+
align-items: center;
|
|
429
|
+
justify-content: center;
|
|
430
|
+
z-index: 1000;
|
|
431
|
+
padding: 20px;
|
|
432
|
+
}
|
|
433
|
+
.modal-backdrop.open {
|
|
434
|
+
display: flex;
|
|
435
|
+
}
|
|
436
|
+
.modal-dialog {
|
|
437
|
+
background: #0f1423;
|
|
438
|
+
border: 1px solid var(--border-glow);
|
|
439
|
+
border-radius: 18px;
|
|
440
|
+
max-width: 600px;
|
|
441
|
+
width: 100%;
|
|
442
|
+
padding: 32px;
|
|
443
|
+
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.8), 0 0 35px rgba(0, 229, 255, 0.15);
|
|
444
|
+
position: relative;
|
|
445
|
+
animation: modalFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
|
|
446
|
+
}
|
|
447
|
+
@keyframes modalFadeIn {
|
|
448
|
+
from { opacity: 0; transform: scale(0.95) translateY(10px); }
|
|
449
|
+
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
450
|
+
}
|
|
451
|
+
.modal-close {
|
|
452
|
+
position: absolute;
|
|
453
|
+
top: 20px;
|
|
454
|
+
right: 20px;
|
|
455
|
+
background: rgba(255, 255, 255, 0.08);
|
|
456
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
457
|
+
color: var(--text-muted);
|
|
458
|
+
width: 32px;
|
|
459
|
+
height: 32px;
|
|
460
|
+
border-radius: 50%;
|
|
461
|
+
cursor: pointer;
|
|
462
|
+
display: flex;
|
|
463
|
+
align-items: center;
|
|
464
|
+
justify-content: center;
|
|
465
|
+
font-size: 1.1rem;
|
|
466
|
+
transition: all 0.2s ease;
|
|
467
|
+
}
|
|
468
|
+
.modal-close:hover {
|
|
469
|
+
background: rgba(255, 255, 255, 0.2);
|
|
470
|
+
color: #fff;
|
|
471
|
+
}
|
|
472
|
+
.modal-header {
|
|
473
|
+
margin-bottom: 16px;
|
|
474
|
+
}
|
|
475
|
+
.modal-header h2 {
|
|
476
|
+
font-size: 1.4rem;
|
|
477
|
+
font-weight: 700;
|
|
478
|
+
font-family: var(--font-mono);
|
|
479
|
+
margin-top: 10px;
|
|
480
|
+
}
|
|
481
|
+
.modal-desc {
|
|
482
|
+
font-size: 0.96rem;
|
|
483
|
+
line-height: 1.6;
|
|
484
|
+
color: var(--text-muted);
|
|
485
|
+
margin-bottom: 24px;
|
|
486
|
+
}
|
|
487
|
+
.modal-cmd-box {
|
|
488
|
+
background: rgba(0, 0, 0, 0.45);
|
|
489
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
490
|
+
border-radius: 10px;
|
|
491
|
+
padding: 12px 16px;
|
|
492
|
+
font-family: var(--font-mono);
|
|
493
|
+
font-size: 0.88rem;
|
|
494
|
+
display: flex;
|
|
495
|
+
align-items: center;
|
|
496
|
+
justify-content: space-between;
|
|
497
|
+
gap: 12px;
|
|
498
|
+
margin-bottom: 24px;
|
|
499
|
+
}
|
|
500
|
+
.modal-cmd-text {
|
|
501
|
+
color: var(--accent-cyan);
|
|
502
|
+
overflow-x: auto;
|
|
503
|
+
white-space: nowrap;
|
|
504
|
+
}
|
|
505
|
+
.modal-actions {
|
|
506
|
+
display: flex;
|
|
507
|
+
align-items: center;
|
|
508
|
+
justify-content: space-between;
|
|
509
|
+
gap: 14px;
|
|
510
|
+
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
511
|
+
padding-top: 20px;
|
|
512
|
+
flex-wrap: wrap;
|
|
513
|
+
}
|
|
514
|
+
.modal-btn-view {
|
|
515
|
+
color: var(--accent-cyan);
|
|
516
|
+
font-weight: 600;
|
|
517
|
+
text-decoration: none;
|
|
518
|
+
font-size: 0.9rem;
|
|
519
|
+
display: inline-flex;
|
|
520
|
+
align-items: center;
|
|
521
|
+
gap: 6px;
|
|
522
|
+
}
|
|
523
|
+
.modal-btn-view:hover {
|
|
524
|
+
text-decoration: underline;
|
|
525
|
+
}
|
|
526
|
+
|
|
354
527
|
@media (max-width: 768px) {
|
|
355
528
|
.hero h1 { font-size: 2.4rem; }
|
|
356
529
|
.catalog-grid { grid-template-columns: 1fr; }
|
|
530
|
+
.nav-links { gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
|
|
357
531
|
}
|
|
358
532
|
</style>
|
|
359
533
|
</head>
|
|
@@ -364,11 +538,14 @@
|
|
|
364
538
|
<div class="container nav-inner">
|
|
365
539
|
<a href="#" class="brand">
|
|
366
540
|
🪐 Everything Gemini
|
|
367
|
-
<span class="brand-badge">v1.
|
|
541
|
+
<span class="brand-badge">v1.8.0</span>
|
|
368
542
|
</a>
|
|
369
543
|
<div class="nav-links">
|
|
370
544
|
<a href="https://github.com/salmandev/everything-gemini" class="nav-link">GitHub</a>
|
|
371
545
|
<a href="https://www.npmjs.com/package/everything-gemini" class="nav-link">NPM</a>
|
|
546
|
+
<a href="https://github.com/salmandev/everything-gemini/blob/main/CONTRIBUTING.md" class="nav-link" style="color: var(--accent-emerald); font-weight: 600;">✨ Contribute</a>
|
|
547
|
+
<a href="https://twitter.com/intent/tweet?text=%F0%9F%AA%90%20Everything%20Gemini%20v1.8.0%20is%20live%21%20The%20open-source%20multi-agent%20harness%20for%20Google%20Antigravity%20%26%20Gemini%203.8%20with%2052%20progressive%20skills%2C%2011%20subagents%2C%20and%207%20safety%20gates.%0A%0A%F0%9F%91%89%20https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: var(--accent-cyan); font-weight: 600;">🐦 Share on X</a>
|
|
548
|
+
<a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: #00a0dc; font-weight: 600;">💼 Share on LinkedIn</a>
|
|
372
549
|
<a href="https://github.com/salmandev/everything-gemini" target="_blank" class="btn-github">
|
|
373
550
|
⭐ Star on GitHub
|
|
374
551
|
</a>
|
|
@@ -387,6 +564,21 @@
|
|
|
387
564
|
Battle-tested progressive disclosure skills, scoped subagent fleets, and deterministic lifecycle security gates engineered for Google Antigravity.
|
|
388
565
|
</p>
|
|
389
566
|
|
|
567
|
+
<!-- Profile Tabs -->
|
|
568
|
+
<div class="profile-tabs">
|
|
569
|
+
<button class="profile-tab active" onclick="setInstallProfile('developer', event)">Developer</button>
|
|
570
|
+
<button class="profile-tab" onclick="setInstallProfile('core', event)">Core</button>
|
|
571
|
+
<button class="profile-tab" onclick="setInstallProfile('full', event)">Full Power</button>
|
|
572
|
+
<button class="profile-tab" onclick="setInstallProfile('bundle', event)">Offline Bundle</button>
|
|
573
|
+
<button class="profile-tab" onclick="setInstallProfile('global', event)">Global (~/.gemini)</button>
|
|
574
|
+
<button class="profile-tab" onclick="setInstallProfile('status', event)">Status Check</button>
|
|
575
|
+
<button class="profile-tab" onclick="setInstallProfile('update', event)">Update Ecosystem</button>
|
|
576
|
+
<button class="profile-tab" onclick="setInstallProfile('dryrun', event)">Dry Run Preview</button>
|
|
577
|
+
<button class="profile-tab" onclick="setInstallProfile('json', event)">JSON Export</button>
|
|
578
|
+
<button class="profile-tab" onclick="setInstallProfile('doctor', event)">Doctor</button>
|
|
579
|
+
<button class="profile-tab" onclick="setInstallProfile('action', event)">GitHub Action</button>
|
|
580
|
+
</div>
|
|
581
|
+
|
|
390
582
|
<!-- Install box -->
|
|
391
583
|
<div class="install-box">
|
|
392
584
|
<div class="install-cmd">
|
|
@@ -399,33 +591,34 @@
|
|
|
399
591
|
<!-- Metrics -->
|
|
400
592
|
<div class="metrics">
|
|
401
593
|
<div class="metric-card">
|
|
402
|
-
<div class="metric-value">
|
|
594
|
+
<div class="metric-value">52</div>
|
|
403
595
|
<div class="metric-label">Progressive Skills</div>
|
|
404
596
|
</div>
|
|
405
597
|
<div class="metric-card">
|
|
406
|
-
<div class="metric-value">
|
|
598
|
+
<div class="metric-value">11</div>
|
|
407
599
|
<div class="metric-label">Scoped Subagents</div>
|
|
408
600
|
</div>
|
|
409
601
|
<div class="metric-card">
|
|
410
|
-
<div class="metric-value"
|
|
411
|
-
<div class="metric-label">
|
|
602
|
+
<div class="metric-value">7</div>
|
|
603
|
+
<div class="metric-label">Lifecycle Hooks</div>
|
|
412
604
|
</div>
|
|
413
605
|
<div class="metric-card">
|
|
414
606
|
<div class="metric-value">2M</div>
|
|
415
|
-
<div class="metric-label">
|
|
607
|
+
<div class="metric-label">Prefix Cache Tokens</div>
|
|
416
608
|
</div>
|
|
417
609
|
</div>
|
|
418
610
|
</section>
|
|
419
611
|
|
|
420
612
|
<!-- Filters & Search -->
|
|
421
613
|
<section class="filter-section">
|
|
422
|
-
<input type="text" id="search-input" class="search-bar" placeholder="🔍 Search skills, subagents, or hooks (e.g. multimodal, supabase, tdd, cloudflare)...">
|
|
614
|
+
<input type="text" id="search-input" class="search-bar" placeholder="🔍 Search skills, subagents, or hooks (e.g. multimodal, supabase, tdd, cloudflare, shield, lint)...">
|
|
423
615
|
<div class="filter-pills">
|
|
424
|
-
<button class="filter-btn active" onclick="filterCategory('all')">All Components</button>
|
|
425
|
-
<button class="filter-btn" onclick="filterCategory('frontier')">Frontier & Vision</button>
|
|
426
|
-
<button class="filter-btn" onclick="filterCategory('subagent')">Scoped Subagents</button>
|
|
427
|
-
<button class="filter-btn" onclick="filterCategory('backend')">Backend & Cloud</button>
|
|
428
|
-
<button class="filter-btn" onclick="filterCategory('devops')">DevOps &
|
|
616
|
+
<button class="filter-btn active" onclick="filterCategory('all', event)">All Components</button>
|
|
617
|
+
<button class="filter-btn" onclick="filterCategory('frontier', event)">Frontier & Vision</button>
|
|
618
|
+
<button class="filter-btn" onclick="filterCategory('subagent', event)">Scoped Subagents</button>
|
|
619
|
+
<button class="filter-btn" onclick="filterCategory('backend', event)">Backend & Cloud</button>
|
|
620
|
+
<button class="filter-btn" onclick="filterCategory('devops', event)">DevOps & Quality</button>
|
|
621
|
+
<button class="filter-btn" onclick="filterCategory('hook', event)">Lifecycle Hooks</button>
|
|
429
622
|
</div>
|
|
430
623
|
</section>
|
|
431
624
|
|
|
@@ -439,49 +632,115 @@
|
|
|
439
632
|
<div class="container">
|
|
440
633
|
<p>Built with 💙 for Google Antigravity & Gemini developers worldwide.</p>
|
|
441
634
|
<p style="margin-top: 8px;">
|
|
442
|
-
Licensed under <a href="https://github.com/salmandev/everything-gemini/blob/main/LICENSE">Apache 2.0</a> • Inspired by <a href="https://github.com/affaan-m/everything-claude-code">ECC</a>
|
|
635
|
+
Licensed under <a href="https://github.com/salmandev/everything-gemini/blob/main/LICENSE">Apache 2.0</a> • Inspired by <a href="https://github.com/affaan-m/everything-claude-code">ECC</a> • <a href="https://star-history.com/#salmandev/everything-gemini&Date" target="_blank">Star History ↗</a>
|
|
443
636
|
</p>
|
|
444
637
|
</div>
|
|
445
638
|
</footer>
|
|
446
639
|
|
|
640
|
+
<!-- Quick-View Modal -->
|
|
641
|
+
<div id="quick-view-modal" class="modal-backdrop" onclick="closeModalOnBackdrop(event)">
|
|
642
|
+
<div class="modal-dialog">
|
|
643
|
+
<button class="modal-close" onclick="closeModal()">✕</button>
|
|
644
|
+
<div class="modal-header">
|
|
645
|
+
<span id="modal-tag" class="card-tag tag-frontier"></span>
|
|
646
|
+
<h2 id="modal-title"></h2>
|
|
647
|
+
</div>
|
|
648
|
+
<p id="modal-desc" class="modal-desc"></p>
|
|
649
|
+
|
|
650
|
+
<div style="font-size: 0.8rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px;">1-Click Install Command</div>
|
|
651
|
+
<div class="modal-cmd-box">
|
|
652
|
+
<div class="modal-cmd-text" id="modal-cmd"></div>
|
|
653
|
+
<button class="card-btn-copy" id="modal-copy-btn" onclick="copyModalCmd()">Copy CLI</button>
|
|
654
|
+
</div>
|
|
655
|
+
|
|
656
|
+
<div class="modal-actions">
|
|
657
|
+
<span style="font-size: 0.82rem; color: var(--text-muted);">Google Antigravity & Gemini 3.8</span>
|
|
658
|
+
<a id="modal-github-link" href="#" target="_blank" class="modal-btn-view">View Complete Source on GitHub ↗</a>
|
|
659
|
+
</div>
|
|
660
|
+
</div>
|
|
661
|
+
</div>
|
|
662
|
+
|
|
447
663
|
<script>
|
|
448
664
|
const items = [
|
|
449
|
-
|
|
450
|
-
{ name: "
|
|
451
|
-
{ name: "
|
|
452
|
-
{ name: "
|
|
453
|
-
{ name: "
|
|
665
|
+
// Frontier & Vision Skills (10)
|
|
666
|
+
{ name: "gemini-multimodal", type: "skill", cat: "frontier", desc: "Native visual reasoning over UI mockups, converting wireframes to frontend code, diagram-to-Mermaid extraction, and visual regression QA." },
|
|
667
|
+
{ name: "context-caching", type: "skill", cat: "frontier", desc: "1M-2M token context optimization with deterministic static prefix caching, skeleton ingestion, and ~75% cost savings." },
|
|
668
|
+
{ name: "gemini-grounding", type: "skill", cat: "frontier", desc: "Live Google Search grounding to eliminate hallucinations, verify real-time APIs, and retrieve breaking documentation." },
|
|
669
|
+
{ name: "rag-architect", type: "skill", cat: "frontier", desc: "Retrieval-augmented generation pipelines, semantic AST chunking, hybrid keyword-vector search, and Gemini re-ranking." },
|
|
670
|
+
{ name: "gemini-function-calling", type: "skill", cat: "frontier", desc: "Production function declarations, structured JSON output schemas (Pydantic), parallel tool execution, and error recovery." },
|
|
454
671
|
{ name: "ai-first-engineering", type: "skill", cat: "frontier", desc: "Decomposing ambiguous specs into verifiable milestones, executable acceptance criteria (BDD), and blast-radius containment." },
|
|
672
|
+
{ name: "agent-evals", type: "skill", cat: "frontier", desc: "Automated evaluation pipelines, LLM-as-a-judge rubrics, golden test datasets, and prompt regression testing." },
|
|
673
|
+
{ name: "browser-qa-tester", type: "skill", cat: "frontier", desc: "Automated browser end-to-end testing with native WebP recording into artifacts for visual validation." },
|
|
674
|
+
{ name: "continuous-learning", type: "skill", cat: "frontier", desc: "Adaptive Learned Instincts and Knowledge Item memory capturing developer corrections across sessions." },
|
|
675
|
+
{ name: "repo-onboarding", type: "skill", cat: "frontier", desc: "Rapid codebase indexing, directory mapping, pattern extraction, and permanent Knowledge Item generation." },
|
|
676
|
+
|
|
677
|
+
// Scoped Subagents & Orchestration (13)
|
|
455
678
|
{ name: "subagent-handoff", type: "skill", cat: "subagent", desc: "Delegation protocol for multi-agent workflows with scoped context isolation and deterministic structured report synthesis." },
|
|
679
|
+
{ name: "architecture-designer", type: "skill", cat: "subagent", desc: "Comprehensive system design architectures, Mermaid diagrams, API contracts, and Architecture Decision Records (ADRs)." },
|
|
680
|
+
{ name: "langgraph-orchestrator", type: "skill", cat: "subagent", desc: "Stateful multi-agent systems, cyclic graphs, persistent checkpoints, human-in-the-loop pauses, and streaming orchestration." },
|
|
681
|
+
{ name: "antigravity-sdk-orchestrator", type: "skill", cat: "subagent", desc: "Programmatic multi-agent pipelines with the official google-antigravity Python SDK and token streaming." },
|
|
456
682
|
{ name: "agents/planner", type: "subagent", cat: "subagent", desc: "Strategic architect that breaks complex tasks into phased roadmaps with dependency mapping and risk radius assessment." },
|
|
457
683
|
{ name: "agents/code-reviewer", type: "subagent", cat: "subagent", desc: "Uncompromising reviewer enforcing minimal diffs, zero regression, strict typing, and defensive edge-case handling." },
|
|
458
684
|
{ name: "agents/browser-qa", type: "subagent", cat: "subagent", desc: "Autonomous UI tester driving browser_subagent with automatic WebP recording and DOM assertions into artifacts." },
|
|
459
685
|
{ name: "agents/build-repair", type: "subagent", cat: "subagent", desc: "Automated triage specialist isolating compiler errors and failing unit tests with surgical minimal fixes." },
|
|
460
686
|
{ name: "agents/security-auditor", type: "subagent", cat: "subagent", desc: "Adversarial security specialist scanning for credential leakage, injection risks, and dependency CVEs." },
|
|
461
687
|
{ name: "agents/architect", type: "subagent", cat: "subagent", desc: "Systems designer authoring C4 Mermaid diagrams, formal API contracts, and Architecture Decision Records (ADRs)." },
|
|
462
|
-
{ name: "
|
|
688
|
+
{ name: "agents/database-migrator", type: "subagent", cat: "subagent", desc: "Dedicated database schema evolution specialist designing zero-downtime expand/contract SQL migrations and rollback safety." },
|
|
689
|
+
{ name: "agents/performance-tuner", type: "subagent", cat: "subagent", desc: "Systems performance specialist diagnosing flamegraphs, memory leaks, slow database query plans, and N+1 waterfalls." },
|
|
690
|
+
{ name: "agents/documentation-writer", type: "subagent", cat: "subagent", desc: "Specialist authoring developer docs, API references, ADRs, changelogs, and verifying clickable file:// links." },
|
|
691
|
+
{ name: "agents/release-engineer", type: "subagent", cat: "subagent", desc: "Release gatekeeper managing Semantic Versioning, automated changelogs, build checksums, git tagging, and canary rollouts." },
|
|
692
|
+
{ name: "agents/incident-responder", type: "subagent", cat: "subagent", desc: "SRE incident commander triaging alerts, correlating OTel spans, containing blast radius, and generating blameless postmortems." },
|
|
693
|
+
|
|
694
|
+
// Backend & Cloud Skills (27)
|
|
695
|
+
{ name: "vllm-inference", type: "skill", cat: "backend", desc: "High-throughput LLM inference, PagedAttention KV cache, continuous batching, tensor parallelism, and OpenAI-compatible API serving." },
|
|
696
|
+
{ name: "debezium-cdc", type: "skill", cat: "backend", desc: "Change Data Capture (CDC) streaming with Debezium, PostgreSQL WAL replication, Kafka Connect, and transactional outbox patterns." },
|
|
697
|
+
{ name: "cilium-ebpf-networking", type: "skill", cat: "backend", desc: "Cloud-native eBPF networking, Kubernetes CNI replacement, transparent mTLS, L7 CiliumNetworkPolicies, and Hubble observability." },
|
|
698
|
+
{ name: "litellm-proxy-gateway", type: "skill", cat: "backend", desc: "Enterprise LLM proxy gateway, multi-provider routing (Gemini, Claude, OpenAI), budget controls, virtual keys, and fallback cascades." },
|
|
699
|
+
{ name: "open-telemetry-tracing", type: "skill", cat: "backend", desc: "Distributed tracing, OTLP exporters, W3C traceparent propagation, custom span attributes, and metric correlations." },
|
|
700
|
+
{ name: "argo-workflows", type: "skill", cat: "backend", desc: "Kubernetes-native DAG workflows, artifact passing, container steps, retry strategies, and CronWorkflows." },
|
|
701
|
+
{ name: "dbt-transformation", type: "skill", cat: "backend", desc: "Modular SQL transformations, Jinja macros, semantic layer models, automated schema tests, and documentation generation." },
|
|
702
|
+
{ name: "apache-kafka-streams", type: "skill", cat: "backend", desc: "Exactly-once event streaming, stateful window aggregations, consumer group rebalancing, and Schema Registry serialization." },
|
|
703
|
+
{ name: "grpc-connect-rpc", type: "skill", cat: "backend", desc: "Lightweight, browser-compatible gRPC and Protocol Buffers with Connect-ES / Connect-Go and HTTP/2-3 streaming." },
|
|
704
|
+
{ name: "duckdb-local-olap", type: "skill", cat: "backend", desc: "In-process embedded SQL analytics, direct S3/Parquet querying, and zero-copy Apache Arrow integration." },
|
|
705
|
+
{ name: "nats-jetstream", type: "skill", cat: "backend", desc: "Ultra-low latency event streaming, message deduplication, durable pull consumer groups, and KV stores." },
|
|
706
|
+
{ name: "axum-web-service", type: "skill", cat: "backend", desc: "Production Rust web APIs using Axum, Tokio async runtime, Tower middlewares, and SQLx connection pools." },
|
|
707
|
+
{ name: "clickhouse-analytics", type: "skill", cat: "backend", desc: "High-throughput OLAP schemas, MergeTree engines, Kafka streaming ingestion, and vector similarity search." },
|
|
708
|
+
{ name: "temporal-workflows", type: "skill", cat: "backend", desc: "Durable workflow orchestration, resilient async activities, saga compensations, and child workflows." },
|
|
709
|
+
{ name: "trpc-react-query", type: "skill", cat: "backend", desc: "End-to-end type safety with tRPC v11 routers, TanStack Query v5 cache management, and optimistic UI mutations." },
|
|
710
|
+
{ name: "wasm-rust-optimizer", type: "skill", cat: "backend", desc: "High-performance WebAssembly compilation from Rust using wasm-pack, zero-copy memory buffers, and SIMD." },
|
|
463
711
|
{ name: "supabase-architect", type: "skill", cat: "backend", desc: "Row Level Security (RLS) policies, pgvector embeddings for semantic AI search, and performant Supabase Edge Functions." },
|
|
712
|
+
{ name: "fastapi-production", type: "skill", cat: "backend", desc: "Production async FastAPI architecture, Pydantic v2 schemas, lifespan handlers, JWT auth, and Kubernetes health probes." },
|
|
713
|
+
{ name: "redis-cache-patterns", type: "skill", cat: "backend", desc: "Enterprise Redis caching (cache-aside, jitter), distributed locking with atomic Lua, sliding-window rate limiting, and streams." },
|
|
714
|
+
{ name: "svelte-kit-architect", type: "skill", cat: "backend", desc: "Modern SvelteKit applications using Svelte 5 runes ($state, $derived, $effect), SSR/prerendering, and progressive form actions." },
|
|
464
715
|
{ name: "cloudflare-workers", type: "skill", cat: "backend", desc: "Serverless edge functions, Wrangler v3 configuration, Cloudflare D1 SQL, and KV low-latency storage." },
|
|
465
716
|
{ name: "database-architect", type: "skill", cat: "backend", desc: "Relational and document schema modeling, zero-downtime expand/contract migrations, and concurrent indexing." },
|
|
466
717
|
{ name: "api-craftsman", type: "skill", cat: "backend", desc: "Production-grade REST APIs, OpenAPI 3.1 specifications, gRPC protobuf schemas, and RFC 7807 error envelopes." },
|
|
467
718
|
{ name: "fullstack-nextjs", type: "skill", cat: "backend", desc: "Next.js App Router, React Server Components (RSC), hydration error diagnosis, and Server Actions." },
|
|
468
719
|
{ name: "stripe-integration", type: "skill", cat: "backend", desc: "Cryptographic webhook signature verification, idempotent checkouts, and customer billing portal sessions." },
|
|
720
|
+
{ name: "graphql-architect", type: "skill", cat: "backend", desc: "Schema-first GraphQL APIs, DataLoader N+1 query batching, and Relay cursor-based pagination." },
|
|
721
|
+
{ name: "responsive-design", type: "skill", cat: "backend", desc: "Fluid typography, mobile-first flex/grid layouts, media queries, and cross-browser accessibility." },
|
|
722
|
+
|
|
723
|
+
// DevOps & Quality Skills (11)
|
|
724
|
+
{ name: "playwright-visual-regression", type: "skill", cat: "devops", desc: "Automated visual regression testing, pixelmatch snapshot diffing, cross-browser viewport matrices, and Docker baseline stability." },
|
|
725
|
+
{ name: "turborepo-monorepo", type: "skill", cat: "devops", desc: "High-performance monorepo build caching, task pipelines, package boundaries, and Docker pruning." },
|
|
726
|
+
{ name: "github-ops", type: "skill", cat: "devops", desc: "End-to-end GitHub PR generation, automated diff review, semantic release drafting, and issue triage with gh CLI & GitHub MCP." },
|
|
727
|
+
{ name: "docker-compose-orchestrator", type: "skill", cat: "devops", desc: "Multi-container local environments, database services (Postgres, pgvector, Redis), and healthcheck wiring." },
|
|
469
728
|
{ name: "kubernetes-operator", type: "skill", cat: "devops", desc: "Declarative production Kubernetes manifests, HPA autoscaling, zero-downtime rolling updates, and health probes." },
|
|
470
729
|
{ name: "devops-pipeline", type: "skill", cat: "devops", desc: "Multi-stage Dockerfiles, GitHub Actions CI/CD workflows, and container infrastructure automation." },
|
|
471
|
-
{ name: "gemini-shield", type: "hook", cat: "devops", desc: "Deterministic PreToolUse lifecycle gate blocking catastrophic commands (rm -rf, DROP TABLE, git push --force)." },
|
|
472
730
|
{ name: "security-audit", type: "skill", cat: "devops", desc: "OWASP Top 10 security audits, secret leakage detection, and dependency vulnerability scans." },
|
|
473
731
|
{ name: "tdd-workflow", type: "skill", cat: "devops", desc: "Strict Test-Driven Development (Red-Green-Refactor) loop ensuring tests exist before code is written." },
|
|
474
732
|
{ name: "root-cause-debugger", type: "skill", cat: "devops", desc: "Systematic regression diagnosis using binary search (git bisect), log traces, and minimal reproduction harnesses." },
|
|
475
|
-
{ name: "browser-qa-tester", type: "skill", cat: "frontier", desc: "Automated browser end-to-end testing with native WebP recording for visual validation." },
|
|
476
|
-
{ name: "agent-evals", type: "skill", cat: "frontier", desc: "Automated evaluation pipelines, LLM-as-a-judge rubrics, golden test datasets, and prompt regression testing." },
|
|
477
733
|
{ name: "git-craftsman", type: "skill", cat: "devops", desc: "Conventional atomic commits, interactive rebasing, clean branch lifecycles, and git hygiene." },
|
|
478
|
-
{ name: "docker-compose-orchestrator", type: "skill", cat: "devops", desc: "Multi-container local environments, database services (Postgres, pgvector, Redis), and healthcheck wiring." },
|
|
479
|
-
{ name: "graphql-architect", type: "skill", cat: "backend", desc: "Schema-first GraphQL APIs, DataLoader N+1 query batching, and Relay cursor-based pagination." },
|
|
480
734
|
{ name: "performance-profiler", type: "skill", cat: "devops", desc: "Application latency profiling, CPU/memory leak diagnosis, and slow query optimization." },
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
{ name: "
|
|
484
|
-
{ name: "
|
|
735
|
+
|
|
736
|
+
// Lifecycle Safety Hooks (7)
|
|
737
|
+
{ name: "gemini-shield", type: "hook", cat: "hook", desc: "Deterministic PreToolUse lifecycle gate blocking catastrophic commands (rm -rf, DROP TABLE, git push --force)." },
|
|
738
|
+
{ name: "safety-shield", type: "hook", cat: "hook", desc: "PreToolUse shell execution firewall that inspects CLI commands against safety rules before execution." },
|
|
739
|
+
{ name: "secret-scrubber", type: "hook", cat: "hook", desc: "PreToolUse security gate intercepting file write operations to block hardcoded API keys and private secrets." },
|
|
740
|
+
{ name: "auto-lint-formatter", type: "hook", cat: "hook", desc: "PostToolUse automated formatting with project linters (prettier, black, ruff, gofmt) immediately after file edits." },
|
|
741
|
+
{ name: "goal-verifier", type: "hook", cat: "hook", desc: "Stop hook intercepting agent exit, validating whether test suites pass or objectives are fulfilled before stopping." },
|
|
742
|
+
{ name: "ephemeral-context", type: "hook", cat: "hook", desc: "PreInvocation hook dynamically injecting repo context, alerts, and instructions into model reasoning turns." },
|
|
743
|
+
{ name: "learned-instincts", type: "hook", cat: "hook", desc: "Session learning hook that records developer corrections and feedback into persistent instincts." }
|
|
485
744
|
];
|
|
486
745
|
|
|
487
746
|
let currentCat = 'all';
|
|
@@ -491,6 +750,7 @@
|
|
|
491
750
|
if (cat === 'frontier') return 'tag-frontier';
|
|
492
751
|
if (cat === 'subagent') return 'tag-agent';
|
|
493
752
|
if (cat === 'backend') return 'tag-backend';
|
|
753
|
+
if (cat === 'hook') return 'tag-hook';
|
|
494
754
|
return 'tag-devops';
|
|
495
755
|
}
|
|
496
756
|
|
|
@@ -511,27 +771,128 @@
|
|
|
511
771
|
}
|
|
512
772
|
|
|
513
773
|
filtered.forEach(item => {
|
|
774
|
+
let githubUrl = "https://github.com/salmandev/everything-gemini";
|
|
775
|
+
let addCmd = `everything-gemini add skill ${item.name}`;
|
|
776
|
+
|
|
777
|
+
if (item.type === 'subagent' || item.name.startsWith('agents/')) {
|
|
778
|
+
const agentClean = item.name.replace('agents/', '');
|
|
779
|
+
githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/agents/${agentClean}.md`;
|
|
780
|
+
addCmd = `everything-gemini add agent ${agentClean}`;
|
|
781
|
+
} else if (item.name === 'antigravity-sdk-orchestrator') {
|
|
782
|
+
githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/plugins/python-ai/skills/antigravity-sdk-orchestrator/SKILL.md`;
|
|
783
|
+
addCmd = `everything-gemini add skill antigravity-sdk-orchestrator`;
|
|
784
|
+
} else if (item.name === 'responsive-design') {
|
|
785
|
+
githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/plugins/web-fullstack/skills/responsive-design/SKILL.md`;
|
|
786
|
+
addCmd = `everything-gemini add skill responsive-design`;
|
|
787
|
+
} else if (item.type === 'hook') {
|
|
788
|
+
githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/hooks/${item.name}/hooks.json`;
|
|
789
|
+
addCmd = `everything-gemini add hook ${item.name}`;
|
|
790
|
+
} else {
|
|
791
|
+
githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/skills/${item.name}/SKILL.md`;
|
|
792
|
+
addCmd = `everything-gemini add skill ${item.name}`;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
let tagLabel = '⚡ Skill';
|
|
796
|
+
if (item.type === 'subagent' || item.name.startsWith('agents/')) tagLabel = '🤖 Subagent';
|
|
797
|
+
else if (item.cat === 'frontier') tagLabel = '🪐 Frontier';
|
|
798
|
+
else if (item.cat === 'backend') tagLabel = '☁️ Backend';
|
|
799
|
+
else if (item.type === 'hook') tagLabel = '🛡️ Hook';
|
|
800
|
+
else if (item.cat === 'devops') tagLabel = '🛠️ DevOps';
|
|
801
|
+
|
|
514
802
|
const card = document.createElement('div');
|
|
515
803
|
card.className = 'card';
|
|
804
|
+
card.onclick = (e) => {
|
|
805
|
+
if (!e.target.closest('.card-actions')) {
|
|
806
|
+
openModal(item, tagLabel, githubUrl, addCmd);
|
|
807
|
+
}
|
|
808
|
+
};
|
|
516
809
|
card.innerHTML = `
|
|
517
810
|
<div>
|
|
518
|
-
<span class="card-tag ${getTagClass(item.cat)}">${
|
|
811
|
+
<span class="card-tag ${getTagClass(item.cat)}">${tagLabel}</span>
|
|
519
812
|
<h3>${item.name}</h3>
|
|
520
813
|
<p>${item.desc}</p>
|
|
521
814
|
</div>
|
|
522
|
-
<div class="card-
|
|
523
|
-
<
|
|
524
|
-
<
|
|
815
|
+
<div class="card-actions">
|
|
816
|
+
<a href="${githubUrl}" target="_blank" class="card-btn-view" onclick="event.stopPropagation()">View Spec ↗</a>
|
|
817
|
+
<button class="card-btn-copy" onclick="event.stopPropagation(); copyCardCmd('${addCmd}', this)">Copy Add CLI</button>
|
|
525
818
|
</div>
|
|
526
819
|
`;
|
|
527
820
|
container.appendChild(card);
|
|
528
821
|
});
|
|
529
822
|
}
|
|
530
823
|
|
|
531
|
-
function
|
|
824
|
+
function openModal(item, tagLabel, githubUrl, addCmd) {
|
|
825
|
+
document.getElementById('modal-tag').className = 'card-tag ' + getTagClass(item.cat);
|
|
826
|
+
document.getElementById('modal-tag').innerText = tagLabel;
|
|
827
|
+
document.getElementById('modal-title').innerText = item.name;
|
|
828
|
+
document.getElementById('modal-desc').innerText = item.desc;
|
|
829
|
+
document.getElementById('modal-cmd').innerText = addCmd;
|
|
830
|
+
document.getElementById('modal-github-link').href = githubUrl;
|
|
831
|
+
const copyBtn = document.getElementById('modal-copy-btn');
|
|
832
|
+
copyBtn.innerText = 'Copy CLI';
|
|
833
|
+
copyBtn.style.color = '';
|
|
834
|
+
copyBtn.style.borderColor = '';
|
|
835
|
+
document.getElementById('quick-view-modal').classList.add('open');
|
|
836
|
+
document.body.style.overflow = 'hidden';
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
function closeModal() {
|
|
840
|
+
document.getElementById('quick-view-modal').classList.remove('open');
|
|
841
|
+
document.body.style.overflow = '';
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
function closeModalOnBackdrop(e) {
|
|
845
|
+
if (e.target.id === 'quick-view-modal') {
|
|
846
|
+
closeModal();
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
document.addEventListener('keydown', (e) => {
|
|
851
|
+
if (e.key === 'Escape') closeModal();
|
|
852
|
+
});
|
|
853
|
+
|
|
854
|
+
function copyModalCmd() {
|
|
855
|
+
const text = document.getElementById('modal-cmd').innerText;
|
|
856
|
+
const btn = document.getElementById('modal-copy-btn');
|
|
857
|
+
copyCardCmd(text, btn);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
function setInstallProfile(profile, ev) {
|
|
861
|
+
document.querySelectorAll('.profile-tab').forEach(t => t.classList.remove('active'));
|
|
862
|
+
if (ev && ev.target) ev.target.classList.add('active');
|
|
863
|
+
const cmdEl = document.getElementById('cmd-text');
|
|
864
|
+
if (profile === 'developer') cmdEl.innerText = 'npx everything-gemini install --profile developer';
|
|
865
|
+
else if (profile === 'core') cmdEl.innerText = 'npx everything-gemini install --profile core';
|
|
866
|
+
else if (profile === 'full') cmdEl.innerText = 'npx everything-gemini install --profile full';
|
|
867
|
+
else if (profile === 'bundle') cmdEl.innerText = 'npx everything-gemini bundle';
|
|
868
|
+
else if (profile === 'global') cmdEl.innerText = 'npx everything-gemini install --global';
|
|
869
|
+
else if (profile === 'status') cmdEl.innerText = 'npx everything-gemini status';
|
|
870
|
+
else if (profile === 'update') cmdEl.innerText = 'npx everything-gemini update';
|
|
871
|
+
else if (profile === 'dryrun') cmdEl.innerText = 'npx everything-gemini install --profile developer --dry-run';
|
|
872
|
+
else if (profile === 'json') cmdEl.innerText = 'npx everything-gemini status --json';
|
|
873
|
+
else if (profile === 'doctor') cmdEl.innerText = 'npx everything-gemini doctor';
|
|
874
|
+
else if (profile === 'action') cmdEl.innerText = '- uses: salmandev/everything-gemini@v1';
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
function copyCardCmd(cmd, btn) {
|
|
878
|
+
navigator.clipboard.writeText(cmd);
|
|
879
|
+
const original = btn.innerText;
|
|
880
|
+
btn.innerText = 'Copied! ✔';
|
|
881
|
+
btn.style.color = '#00e676';
|
|
882
|
+
btn.style.borderColor = '#00e676';
|
|
883
|
+
setTimeout(() => {
|
|
884
|
+
btn.innerText = original;
|
|
885
|
+
btn.style.color = '';
|
|
886
|
+
btn.style.borderColor = '';
|
|
887
|
+
}, 1500);
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
function filterCategory(cat, ev) {
|
|
532
891
|
currentCat = cat;
|
|
533
892
|
document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
|
|
534
|
-
|
|
893
|
+
if (ev && ev.target) {
|
|
894
|
+
ev.target.classList.add('active');
|
|
895
|
+
}
|
|
535
896
|
renderCards();
|
|
536
897
|
}
|
|
537
898
|
|