Add graphify knowledge graph and agent rules; use freezmo.png; bump to 2.2.15
This commit is contained in:
parent
222c62ca06
commit
6702ca8d6f
13 changed files with 1186 additions and 16 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -73,3 +73,9 @@ next-env.d.ts
|
||||||
|
|
||||||
# build artifacts
|
# build artifacts
|
||||||
*.tgz
|
*.tgz
|
||||||
|
|
||||||
|
# graphify: commit the graph; keep machine-local artifacts out
|
||||||
|
graphify-out/cache/
|
||||||
|
graphify-out/cost.json
|
||||||
|
graphify-out/.graphify_python
|
||||||
|
graphify-out/.graphify_root
|
||||||
|
|
|
||||||
62
.opencode/plugins/graphify.js
Normal file
62
.opencode/plugins/graphify.js
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
// graphify OpenCode plugin
|
||||||
|
// Injects a knowledge graph reminder before the first shell command of a
|
||||||
|
// session when the graph exists.
|
||||||
|
//
|
||||||
|
// One file for both runtimes. OpenCode 2 reads `id` and `setup()` from the
|
||||||
|
// default export; OpenCode 1 (1.3.4 and later) reads `server()` from it. Each
|
||||||
|
// ignores the other's function. Nothing is imported from an opencode package:
|
||||||
|
// a plain file in .opencode/plugins/ cannot resolve one.
|
||||||
|
//
|
||||||
|
// IMPORTANT: keep the reminder string free of backticks and $(...) constructs.
|
||||||
|
// The hook prepends `echo "<reminder>" ; <cmd>` to the user's shell command;
|
||||||
|
// backticks inside the double-quoted echo trigger command substitution,
|
||||||
|
// which both corrupts tool output and silently executes the very graphify
|
||||||
|
// command we are only suggesting. Plain words render fine in opencode's TUI.
|
||||||
|
import { existsSync } from "fs";
|
||||||
|
import { join } from "path";
|
||||||
|
|
||||||
|
// ';' not '&&' — Windows PowerShell 5.1 rejects '&&' as a statement
|
||||||
|
// separator, breaking the first shell command of the session (#1646).
|
||||||
|
const REMINDER =
|
||||||
|
'echo "[graphify] knowledge graph at graphify-out/. For focused questions, run graphify query with your question (scoped subgraph, usually much smaller than GRAPH_REPORT.md) instead of grepping raw files. Read GRAPH_REPORT.md only for broad architecture context." ; ';
|
||||||
|
|
||||||
|
const hasGraph = (directory) => existsSync(join(directory, "graphify-out", "graph.json"));
|
||||||
|
|
||||||
|
// A project and a directory above it (often ~) can each hold a copy of this
|
||||||
|
// file, and OpenCode loads both. OpenCode 2 fails the second plugin with the
|
||||||
|
// same id ("Duplicate plugin ID"), so the id carries this file's location. The
|
||||||
|
// copies share one record of who was reminded, so a command gets one reminder.
|
||||||
|
const location = [...import.meta.url].reduce((hash, ch) => (Math.imul(hash, 31) + ch.charCodeAt(0)) >>> 0, 7);
|
||||||
|
const reminded = (globalThis.__graphifyReminded ??= new Set());
|
||||||
|
|
||||||
|
export default {
|
||||||
|
id: `graphify-${location.toString(16)}`,
|
||||||
|
|
||||||
|
// OpenCode 2: the command tool is "shell", and one server outlives many
|
||||||
|
// sessions, so the reminder is tracked per session.
|
||||||
|
async setup(ctx) {
|
||||||
|
await ctx.tool.hook("execute.before", (event) => {
|
||||||
|
if (event.tool !== "shell" || typeof event.input?.command !== "string") return;
|
||||||
|
if (reminded.has(event.sessionID)) return;
|
||||||
|
if (!hasGraph(ctx.location.directory)) return;
|
||||||
|
|
||||||
|
event.input = { ...event.input, command: REMINDER + event.input.command };
|
||||||
|
reminded.add(event.sessionID);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// OpenCode 1: the command tool is "bash", and the server lives as long as
|
||||||
|
// the session, so the reminder is tracked per project directory.
|
||||||
|
async server({ directory }) {
|
||||||
|
return {
|
||||||
|
"tool.execute.before": async (input, output) => {
|
||||||
|
if (input.tool !== "bash" || typeof output.args?.command !== "string") return;
|
||||||
|
if (reminded.has(directory)) return;
|
||||||
|
if (!hasGraph(directory)) return;
|
||||||
|
|
||||||
|
output.args.command = REMINDER + output.args.command;
|
||||||
|
reminded.add(directory);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# agents.md — cold-boot notes
|
# AGENTS.md — cold-boot notes
|
||||||
|
|
||||||
Quick context so a fresh session (no memory of this project) can be productive in
|
Quick context so a fresh session (no memory of this project) can be productive in
|
||||||
a minute. Read this first, then skim the files it points at.
|
a minute. Read this first, then skim the files it points at.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Keep README.md AND agents.md in sync — do this on EVERY prompt
|
## Keep README.md AND AGENTS.md in sync — do this on EVERY prompt
|
||||||
|
|
||||||
**Before you finish any task, update the docs so they still match the code.**
|
**Before you finish any task, update the docs so they still match the code.**
|
||||||
This is a standing requirement, not a one-off, so treat it as part of "done":
|
This is a standing requirement, not a one-off, so treat it as part of "done":
|
||||||
|
|
@ -15,10 +15,10 @@ a feature, script, route, app, theme, file or dependency, reflect it in `README.
|
||||||
(Features, Tech Stack, API Routes, Project Structure, Scripts, running/deploying
|
(Features, Tech Stack, API Routes, Project Structure, Scripts, running/deploying
|
||||||
sections — whichever apply).
|
sections — whichever apply).
|
||||||
|
|
||||||
**`agents.md`** (this file) is the cold-boot doc for the next session. Update it in
|
**`AGENTS.md`** (this file) is the cold-boot doc for the next session. Update it in
|
||||||
the same task whenever a change touches anything it describes — architecture, the key
|
the same task whenever a change touches anything it describes — architecture, the key
|
||||||
files and their invariants, conventions/gotchas, history, or testing notes. A stale
|
files and their invariants, conventions/gotchas, history, or testing notes. A stale
|
||||||
`agents.md` is worse than none: it actively misleads the next session.
|
`AGENTS.md` is worse than none: it actively misleads the next session.
|
||||||
|
|
||||||
For both docs:
|
For both docs:
|
||||||
- Re-read the doc and the files you touched; fix anything the change made stale.
|
- Re-read the doc and the files you touched; fix anything the change made stale.
|
||||||
|
|
@ -27,7 +27,7 @@ For both docs:
|
||||||
- If a task genuinely changes nothing that either doc describes, it's fine to leave
|
- If a task genuinely changes nothing that either doc describes, it's fine to leave
|
||||||
that doc untouched — use judgement, don't churn it for nothing.
|
that doc untouched — use judgement, don't churn it for nothing.
|
||||||
|
|
||||||
When in doubt, prefer updating. A stale README **or** agents.md is treated as a bug.
|
When in doubt, prefer updating. A stale README **or** AGENTS.md is treated as a bug.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -56,7 +56,7 @@ frosted-glass **web** site, and an alternate KDE/Plasma **desktop simulation**
|
||||||
utilities in the components (Tailwind is present via PostCSS but the look is
|
utilities in the components (Tailwind is present via PostCSS but the look is
|
||||||
hand-written CSS).
|
hand-written CSS).
|
||||||
- Path alias: `@/*` → `src/*`.
|
- Path alias: `@/*` → `src/*`.
|
||||||
- Version: `2.2.14` (see `package.json`).
|
- Version: `2.2.15` (see `package.json`).
|
||||||
|
|
||||||
### Scripts
|
### Scripts
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -173,7 +173,7 @@ Themes: `web` = default frosted-glass website (sidebar + content, light/dark),
|
||||||
along with the row hairlines (`--index-line`). Above the split, the full-width
|
along with the row hairlines (`--index-line`). Above the split, the full-width
|
||||||
**Freezmo** launch panel (`.web-freezmo` — app-tinted glow, floating orbs,
|
**Freezmo** launch panel (`.web-freezmo` — app-tinted glow, floating orbs,
|
||||||
gradient wordmark + "new" badge, feature bullets, Try/Source CTAs) is the one
|
gradient wordmark + "new" badge, feature bullets, Try/Source CTAs) is the one
|
||||||
place a **real screenshot** is used (`public/freezmo-app.webp`, the live
|
place a **real screenshot** is used (`public/freezmo.png`, the live
|
||||||
study app). The two remaining feature panels (`.web-split`) stretch
|
study app). The two remaining feature panels (`.web-split`) stretch
|
||||||
to equal height and share a fixed `16 / 10` `.fw` window (the `FeatureWindow`
|
to equal height and share a fixed `16 / 10` `.fw` window (the `FeatureWindow`
|
||||||
component) — decorative, **asset-free CSS mock-ups** rather than screenshots:
|
component) — decorative, **asset-free CSS mock-ups** rather than screenshots:
|
||||||
|
|
@ -195,7 +195,7 @@ Themes: `web` = default frosted-glass website (sidebar + content, light/dark),
|
||||||
feature/app previews are `FeatureWindow` mock windows,
|
feature/app previews are `FeatureWindow` mock windows,
|
||||||
and `.win-desktop` carries a layered gradient "wallpaper" (there is no
|
and `.win-desktop` carries a layered gradient "wallpaper" (there is no
|
||||||
`wallpaper.jpg`). Only the social SVGs, the site logo (`src/app/icon.png`),
|
`wallpaper.jpg`). Only the social SVGs, the site logo (`src/app/icon.png`),
|
||||||
the Freezmo screenshot (`public/freezmo-app.webp`), the
|
the Freezmo screenshot (`public/freezmo.png`), the
|
||||||
Joker easter egg (`joker.webp`) and the Gentoo mark (`gentoo.svg`) remain as
|
Joker easter egg (`joker.webp`) and the Gentoo mark (`gentoo.svg`) remain as
|
||||||
real image files.
|
real image files.
|
||||||
- **Not a terminal.** The web theme deliberately has no TUI chrome: the hero is
|
- **Not a terminal.** The web theme deliberately has no TUI chrome: the hero is
|
||||||
|
|
@ -540,8 +540,8 @@ knows about icon ids, via `APP_BY_ID`.
|
||||||
|
|
||||||
## After finishing — push to git
|
## After finishing — push to git
|
||||||
|
|
||||||
First make sure `README.md` **and** `agents.md` are up to date (see "Keep
|
First make sure `README.md` **and** `AGENTS.md` are up to date (see "Keep
|
||||||
README.md AND agents.md in sync" at the top), then run **only** these three
|
README.md AND AGENTS.md in sync" at the top), then run **only** these three
|
||||||
commands (no extra flags, no rebasing, no force-push):
|
commands (no extra flags, no rebasing, no force-push):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -551,3 +551,17 @@ git push origin main
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `<WHAT CHANGED>` with a short, specific summary of the change.
|
Replace `<WHAT CHANGED>` with a short, specific summary of the change.
|
||||||
|
|
||||||
|
## graphify
|
||||||
|
|
||||||
|
This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships.
|
||||||
|
|
||||||
|
When the user types `/graphify`, use the installed graphify skill or instructions before doing anything else.
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
- When graphify-out/graph.json exists, run `graphify query "<question>"` before your first grep, search or source-file read for a codebase question, and put this rule in every subagent prompt that explores code. Read raw files only for lines the graph or an earlier read already located. Use `graphify path "<A>" "<B>"` for relationships and `graphify explain "<concept>"` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output.
|
||||||
|
- Dirty graphify-out/ files are expected after hooks or incremental updates; dirty graph files are not a reason to skip graphify. Only skip graphify if the task is about stale or incorrect graph output, or the user explicitly says not to use it.
|
||||||
|
- If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing.
|
||||||
|
- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context.
|
||||||
|
- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost).
|
||||||
|
- A committed graphify-out/graph.json is rewritten whole on every build, so a large diff to it in a pull request is expected. Do not flag it as churn or suggest skipping the graph rebuild or its hooks.
|
||||||
|
|
@ -84,7 +84,7 @@ more.
|
||||||
used by the desktop theme's SMP menu and the in-desktop terminal.
|
used by the desktop theme's SMP menu and the in-desktop terminal.
|
||||||
- **Images:** `next/image` — only the logo (`src/app/icon.png`), the social SVGs, the Joker
|
- **Images:** `next/image` — only the logo (`src/app/icon.png`), the social SVGs, the Joker
|
||||||
easter egg and the Gentoo mark; all cards, feature/app previews and the wallpaper are CSS.
|
easter egg and the Gentoo mark; all cards, feature/app previews and the wallpaper are CSS.
|
||||||
- **Version:** `2.2.14` (see `package.json`)
|
- **Version:** `2.2.15` (see `package.json`)
|
||||||
- **Dependencies:** `npm audit` reports **0 vulnerabilities**. `next` is kept at a patched
|
- **Dependencies:** `npm audit` reports **0 vulnerabilities**. `next` is kept at a patched
|
||||||
release (`>=16.3.6`) for the `next/og` RCE, and `brace-expansion` is force-upgraded via
|
release (`>=16.3.6`) for the `next/og` RCE, and `brace-expansion` is force-upgraded via
|
||||||
`overrides`. `braces` (a transitive ESLint/`fast-glob` dependency) has **no upstream fix**,
|
`overrides`. `braces` (a transitive ESLint/`fast-glob` dependency) has **no upstream fix**,
|
||||||
|
|
|
||||||
1
graphify-out/.graphify_labels.json
Normal file
1
graphify-out/.graphify_labels.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"0": "Desktop App Catalog", "1": "Deployment & Ops Docs", "2": "braces Package Metadata", "3": "Theme & Clock Components", "4": "braces Parsing Engine", "5": "Project Index Data", "6": "braces Character Constants", "7": "Next Config & API Routes", "8": "TypeScript Compiler Config", "9": "Root Package Dependencies", "10": "Root Dev Dependencies", "11": "Custom Dev Server", "12": "Debian Dependency Installer", "13": "brace-expansion Overrides", "14": "npm Scripts", "15": "Freezmo Icon Visual Identity", "16": "braces Public API Methods", "17": "Eye Logo & Favicon Assets", "18": "ESLint Configuration", "19": "Runtime Dependencies", "20": "Discord Icon Asset", "21": "Freezmo App Screenshot", "22": "Instagram Icon Asset", "23": "Gentoo Logo Asset", "24": "Reddit Icon Asset", "25": "Revival Inc. Game Favicon", "26": "TikTok Icon Asset", "27": "System Service Installer", "28": "Package allowScripts Overrides", "29": "PostCSS Configuration", "30": "GitHub Icon Asset", "31": "itch.io Icon Asset", "32": "Joker Character Image", "33": "LinkedIn Icon Asset", "34": "Quipee Logo Asset", "35": "Snapchat Icon Asset", "36": "SoundCloud Icon Asset", "37": "Twitter/X Icon Asset", "38": "Activities API Route", "39": "Heatmap API Route", "40": "Revival Inc. Page"}
|
||||||
232
graphify-out/GRAPH_REPORT.md
Normal file
232
graphify-out/GRAPH_REPORT.md
Normal file
|
|
@ -0,0 +1,232 @@
|
||||||
|
# Graph Report - dvorakmortonxd.dev (2026-10-15)
|
||||||
|
|
||||||
|
## Corpus Check
|
||||||
|
- 63 files · ~107,169 words
|
||||||
|
- Verdict: corpus is large enough that graph structure adds value.
|
||||||
|
- Unclassified: 19 file(s) not represented in the graph (top: (none) 6, .ttf 3, .css 3)
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
- 414 nodes · 577 edges · 41 communities (26 shown, 15 thin omitted)
|
||||||
|
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 39 edges (avg confidence: 0.85)
|
||||||
|
- Token cost: 0 input · 0 output
|
||||||
|
|
||||||
|
## Community Hubs (Navigation)
|
||||||
|
- Desktop App Catalog
|
||||||
|
- Deployment & Ops Docs
|
||||||
|
- braces Package Metadata
|
||||||
|
- Theme & Clock Components
|
||||||
|
- braces Parsing Engine
|
||||||
|
- Project Index Data
|
||||||
|
- braces Character Constants
|
||||||
|
- Next Config & API Routes
|
||||||
|
- TypeScript Compiler Config
|
||||||
|
- Root Package Dependencies
|
||||||
|
- Root Dev Dependencies
|
||||||
|
- Custom Dev Server
|
||||||
|
- Debian Dependency Installer
|
||||||
|
- brace-expansion Overrides
|
||||||
|
- npm Scripts
|
||||||
|
- Freezmo Icon Visual Identity
|
||||||
|
- braces Public API Methods
|
||||||
|
- Eye Logo & Favicon Assets
|
||||||
|
- ESLint Configuration
|
||||||
|
- Runtime Dependencies
|
||||||
|
- Discord Icon Asset
|
||||||
|
- Freezmo App Screenshot
|
||||||
|
- Instagram Icon Asset
|
||||||
|
- Gentoo Logo Asset
|
||||||
|
- Reddit Icon Asset
|
||||||
|
- Revival Inc. Game Favicon
|
||||||
|
- TikTok Icon Asset
|
||||||
|
- System Service Installer
|
||||||
|
- Package allowScripts Overrides
|
||||||
|
- PostCSS Configuration
|
||||||
|
- GitHub Icon Asset
|
||||||
|
- itch.io Icon Asset
|
||||||
|
- Joker Character Image
|
||||||
|
- LinkedIn Icon Asset
|
||||||
|
- Quipee Logo Asset
|
||||||
|
- Snapchat Icon Asset
|
||||||
|
- SoundCloud Icon Asset
|
||||||
|
- Twitter/X Icon Asset
|
||||||
|
|
||||||
|
## God Nodes (most connected - your core abstractions)
|
||||||
|
1. `WebLayout()` - 16 edges
|
||||||
|
2. `compilerOptions` - 16 edges
|
||||||
|
3. `react` - 15 edges
|
||||||
|
4. `next` - 12 edges
|
||||||
|
5. `FeatureWindow()` - 11 edges
|
||||||
|
6. `useTheme()` - 11 edges
|
||||||
|
7. `WindowsDesktop()` - 8 edges
|
||||||
|
8. `Clock()` - 7 edges
|
||||||
|
9. `ContributionHeatmap()` - 7 edges
|
||||||
|
10. `CodingProjectIndex()` - 7 edges
|
||||||
|
|
||||||
|
## Surprising Connections (you probably didn't know these)
|
||||||
|
- `Revival Inc. Game` --conceptually_related_to--> `FeatureWindow CSS Mock Windows` [INFERRED]
|
||||||
|
public/llms.txt → README.md
|
||||||
|
- `GitDXD (Forgejo Git Forge)` --conceptually_related_to--> `Site API Proxy Routes` [INFERRED]
|
||||||
|
public/llms.txt → README.md
|
||||||
|
- `Vendored braces CVE Patch` --conceptually_related_to--> `Brace Bomb DoS / Geometric Complexity` [INFERRED]
|
||||||
|
agents.md → vendor/braces/README.md
|
||||||
|
- `FeatureWindow CSS Mock Windows` --references--> `Revival Inc. Pygbag Web Build` [EXTRACTED]
|
||||||
|
README.md → public/revival-inc/index.html
|
||||||
|
- `Vendored braces Patch` --references--> `braces Library` [EXTRACTED]
|
||||||
|
README.md → vendor/braces/README.md
|
||||||
|
|
||||||
|
## Import Cycles
|
||||||
|
- None detected.
|
||||||
|
|
||||||
|
## Hyperedges (group relationships)
|
||||||
|
- **Two-Shell Theming Architecture** — readme_two_shells, readme_web_shell, readme_skeuo_shell, agents_theme_root [INFERRED 0.85]
|
||||||
|
- **Host-Allowlisted Proxy API Routes** — agents_ping_ssrf_allowlist, agents_frame_proxy, readme_api_routes [INFERRED 0.85]
|
||||||
|
- **Vendored braces CVE Patch Flow** — readme_vendored_braces_patch, agents_vendored_braces_patch, vendor_braces_readme_braces, vendor_braces_readme_brace_bomb [INFERRED 0.85]
|
||||||
|
- **Freezmo AI-graded quiz flow (app, quiz UI, sample question)** — public_freezmo_app_webp_image, public_freezmo_app_webp_freezmo_app, public_freezmo_app_webp_quiz_screen, public_freezmo_app_webp_schuman_plan_question [INFERRED 0.85]
|
||||||
|
- **** — public_revival_inc_favicon_png_image, public_revival_inc_favicon_png_revival_inc_game, public_revival_inc_favicon_png_game_controller_mark [INFERRED 0.75]
|
||||||
|
- **Site identity: eye logo used as app icon and in-page logo** — src_app_icon_png_image, src_app_icon_png_eye_logo, src_app_icon_png_favicon, src_app_components_jokerlogo_tsx_logo [INFERRED 0.85]
|
||||||
|
- **Freezmo Icon Visual Identity** — public_freezmo_icon, public_freezmo_snowflake_symbol, public_freezmo_stacked_cards, public_freezmo_dark_squircle_frame [EXTRACTED 1.00]
|
||||||
|
|
||||||
|
## Communities (41 total, 15 thin omitted)
|
||||||
|
|
||||||
|
### Community 0 - "Desktop App Catalog"
|
||||||
|
Cohesion: 0.06
|
||||||
|
Nodes (41): react, ALACRITTY_APP, APP_BY_ID, AppDef, APPS, ContributionsApp(), createWebsiteApp(), EmbeddedSite() (+33 more)
|
||||||
|
|
||||||
|
### Community 1 - "Deployment & Ops Docs"
|
||||||
|
Cohesion: 0.07
|
||||||
|
Nodes (37): agents.md Cold-Boot Notes, Custom Dev Server (dev-server.mjs), Header-Stripping Frame Proxy (api/frame), SSRF Host Allowlist (api/ping), ThemeRoot Shell Router, Desktop Icon Grid (useDesktopIcons.ts), Vendored braces CVE Patch, Autostart on Boot (systemd / OpenRC) (+29 more)
|
||||||
|
|
||||||
|
### Community 2 - "braces Package Metadata"
|
||||||
|
Cohesion: 0.05
|
||||||
|
Nodes (37): ansi-colors, bash-path, gulp-format-md, mocha, author, bugs, url, contributors (+29 more)
|
||||||
|
|
||||||
|
### Community 3 - "Theme & Clock Components"
|
||||||
|
Cohesion: 0.10
|
||||||
|
Nodes (29): WelcomeApp(), Clock(), getTime(), subscribe(), JokerLogo(), ThemeRoot(), ColorScheme, DEFAULT_SCHEME (+21 more)
|
||||||
|
|
||||||
|
### Community 4 - "braces Parsing Engine"
|
||||||
|
Cohesion: 0.10
|
||||||
|
Nodes (17): compile, expand, parse, stringify, compile(), fill, utils, append() (+9 more)
|
||||||
|
|
||||||
|
### Community 5 - "Project Index Data"
|
||||||
|
Cohesion: 0.13
|
||||||
|
Nodes (21): HardwareApp(), ProjectsApp(), CodingProjectIndex(), CodingRow(), Group(), HARDWARE_GROUPS, HardwareProjectIndex(), HardwareRow() (+13 more)
|
||||||
|
|
||||||
|
### Community 6 - "braces Character Constants"
|
||||||
|
Cohesion: 0.11
|
||||||
|
Nodes (3): {
|
||||||
|
MAX_LENGTH,
|
||||||
|
CHAR_BACKSLASH, /* \ */
|
||||||
|
CHAR_BACKTICK, /* ` */
|
||||||
|
CHAR_COMMA, /* , */
|
||||||
|
CHAR_DOT, /* . */
|
||||||
|
CHAR_LEFT_PARENTHESES, /* ( */
|
||||||
|
CHAR_RIGHT_PARENTHESES, /* ) */
|
||||||
|
CHAR_LEFT_CURLY_BRACE, /* { */
|
||||||
|
CHAR_RIGHT_CURLY_BRACE, /* } */
|
||||||
|
CHAR_LEFT_SQUARE_BRACKET, /* [ */
|
||||||
|
CHAR_RIGHT_SQUARE_BRACKET, /* ] */
|
||||||
|
CHAR_DOUBLE_QUOTE, /* " */
|
||||||
|
CHAR_SINGLE_QUOTE, /* ' */
|
||||||
|
CHAR_NO_BREAK_SPACE,
|
||||||
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
||||||
|
}, parse(), stringify
|
||||||
|
|
||||||
|
### Community 7 - "Next Config & API Routes"
|
||||||
|
Cohesion: 0.15
|
||||||
|
Nodes (13): nextConfig, next, ALLOWED_HOSTS, clickShim(), fail(), GET(), isAllowedHost(), ALLOWED_HOSTS (+5 more)
|
||||||
|
|
||||||
|
### Community 8 - "TypeScript Compiler Config"
|
||||||
|
Cohesion: 0.11
|
||||||
|
Nodes (18): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModules, jsx, lib, module (+10 more)
|
||||||
|
|
||||||
|
### Community 9 - "Root Package Dependencies"
|
||||||
|
Cohesion: 0.13
|
||||||
|
Nodes (14): fill-range, name, private, version, autoprefixer, postcss, react-dom, @svgr/webpack (+6 more)
|
||||||
|
|
||||||
|
### Community 10 - "Root Dev Dependencies"
|
||||||
|
Cohesion: 0.15
|
||||||
|
Nodes (13): devDependencies, autoprefixer, eslint, eslint-config-next, fill-range, postcss, @svgr/webpack, tailwindcss (+5 more)
|
||||||
|
|
||||||
|
### Community 11 - "Custom Dev Server"
|
||||||
|
Cohesion: 0.29
|
||||||
|
Nodes (7): app, hasForwardedHeaders(), isDevDebugRequest(), isLocalDebugRequest(), isLoopback(), port, server
|
||||||
|
|
||||||
|
### Community 12 - "Debian Dependency Installer"
|
||||||
|
Cohesion: 0.43
|
||||||
|
Nodes (6): die(), log(), node_ok(), install-dependencies-deb.sh script, usage(), warn()
|
||||||
|
|
||||||
|
### Community 13 - "brace-expansion Overrides"
|
||||||
|
Cohesion: 0.33
|
||||||
|
Nodes (6): brace-expansion, brace-expansion, overrides, braces, minimatch@^10.0.0, minimatch@^3.0.0
|
||||||
|
|
||||||
|
### Community 14 - "npm Scripts"
|
||||||
|
Cohesion: 0.33
|
||||||
|
Nodes (6): scripts, build, dev, dev:next, lint, start
|
||||||
|
|
||||||
|
### Community 15 - "Freezmo Icon Visual Identity"
|
||||||
|
Cohesion: 0.53
|
||||||
|
Nodes (5): Dark Navy Rounded-Square (Squircle) Frame, Freeze / Preserve State, Freezmo App Icon, Blue Snowflake Symbol, Stacked Card / Document Metaphor
|
||||||
|
|
||||||
|
### Community 17 - "Eye Logo & Favicon Assets"
|
||||||
|
Cohesion: 0.50
|
||||||
|
Nodes (4): JokerLogo Component Logo Image, Eye Logo Mark (amber iris and pupil), App Icon - Macro Photograph of a Human Eye, All-Seeing Eye / Surveillance Motif
|
||||||
|
|
||||||
|
### Community 18 - "ESLint Configuration"
|
||||||
|
Cohesion: 0.50
|
||||||
|
Nodes (3): eslintConfig, eslint, eslint-config-next
|
||||||
|
|
||||||
|
### Community 19 - "Runtime Dependencies"
|
||||||
|
Cohesion: 0.50
|
||||||
|
Nodes (4): dependencies, next, react, react-dom
|
||||||
|
|
||||||
|
### Community 20 - "Discord Icon Asset"
|
||||||
|
Cohesion: 0.50
|
||||||
|
Nodes (4): Discord (chat platform brand mark), Discord Icon (SVG social link asset), Profile social link icon, SVG Repo (icon asset source)
|
||||||
|
|
||||||
|
### Community 21 - "Freezmo App Screenshot"
|
||||||
|
Cohesion: 0.83
|
||||||
|
Nodes (4): Freezmo study app, Freezmo App Screenshot (AI-graded quiz screen), Freezmo quiz screen with AI grading feedback, Schuman Plan history question (EU history 1945-1974)
|
||||||
|
|
||||||
|
### Community 22 - "Instagram Icon Asset"
|
||||||
|
Cohesion: 0.67
|
||||||
|
Nodes (4): Instagram Color Icon (SVG), Instagram Brand/Service, Social Media Link Asset, SVG Repo (Icon Source)
|
||||||
|
|
||||||
|
### Community 23 - "Gentoo Logo Asset"
|
||||||
|
Cohesion: 0.67
|
||||||
|
Nodes (3): Creative Commons BY-SA 2.5 License, Gentoo Linux ('g' Logo Mark), Gentoo Logo Vector
|
||||||
|
|
||||||
|
### Community 24 - "Reddit Icon Asset"
|
||||||
|
Cohesion: 0.67
|
||||||
|
Nodes (3): Reddit Logo Icon (SVG), Reddit, SVG Repo
|
||||||
|
|
||||||
|
### Community 25 - "Revival Inc. Game Favicon"
|
||||||
|
Cohesion: 0.67
|
||||||
|
Nodes (3): Game Controller Logo Mark, Revival Inc. Favicon (yellow character with game controller), Revival Inc. (pygame game for Mini Jame Gam #55)
|
||||||
|
|
||||||
|
### Community 26 - "TikTok Icon Asset"
|
||||||
|
Cohesion: 0.67
|
||||||
|
Nodes (3): TikTok, TikTok Logo Icon, SVG Repo
|
||||||
|
|
||||||
|
## Knowledge Gaps
|
||||||
|
- **53 isolated node(s):** `react-dom`, `@svgr/webpack`, `@tailwindcss/postcss`, `@types/node`, `@types/react` (+48 more)
|
||||||
|
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 212 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
|
||||||
|
- **15 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||||
|
|
||||||
|
## Suggested Questions
|
||||||
|
_Questions this graph is uniquely positioned to answer:_
|
||||||
|
|
||||||
|
- **Why does `react` connect `Desktop App Catalog` to `Root Package Dependencies`, `Theme & Clock Components`, `Project Index Data`, `Next Config & API Routes`?**
|
||||||
|
_High betweenness centrality (0.109) - this node is a cross-community bridge._
|
||||||
|
- **What connects `react-dom`, `@svgr/webpack`, `@tailwindcss/postcss` to the rest of the system?**
|
||||||
|
_53 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||||
|
- **Should `Desktop App Catalog` be split into smaller, more focused modules?**
|
||||||
|
_Cohesion score 0.05584415584415584 - nodes in this community are weakly interconnected._
|
||||||
|
- **Why does `next` connect `Next Config & API Routes` to `Desktop App Catalog`, `Root Package Dependencies`, `Custom Dev Server`, `Theme & Clock Components`?**
|
||||||
|
_High betweenness centrality (0.092) - this node is a cross-community bridge._
|
||||||
|
- **Should `Deployment & Ops Docs` be split into smaller, more focused modules?**
|
||||||
|
_Cohesion score 0.07396870554765292 - nodes in this community are weakly interconnected._
|
||||||
|
- **Why does `KDE Plasma Desktop Simulation Shell` connect `Deployment & Ops Docs` to `Desktop App Catalog`?**
|
||||||
|
_High betweenness centrality (0.054) - this node is a cross-community bridge._
|
||||||
|
- **Should `braces Package Metadata` be split into smaller, more focused modules?**
|
||||||
|
_Cohesion score 0.05263157894736842 - nodes in this community are weakly interconnected._
|
||||||
474
graphify-out/graph.html
Normal file
474
graphify-out/graph.html
Normal file
File diff suppressed because one or more lines are too long
1
graphify-out/graph.json
Normal file
1
graphify-out/graph.json
Normal file
File diff suppressed because one or more lines are too long
380
graphify-out/manifest.json
Normal file
380
graphify-out/manifest.json
Normal file
|
|
@ -0,0 +1,380 @@
|
||||||
|
{
|
||||||
|
"deploy/install-system-service.sh": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.5675395,
|
||||||
|
"ast_hash": "9abfcfc7d7a91086399567bedb70cf1b",
|
||||||
|
"semantic_hash": "9abfcfc7d7a91086399567bedb70cf1b"
|
||||||
|
},
|
||||||
|
"eslint.config.mjs": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.567546,
|
||||||
|
"ast_hash": "c38fbd8e2b4f1979d62aa0378953faf4",
|
||||||
|
"semantic_hash": "c38fbd8e2b4f1979d62aa0378953faf4"
|
||||||
|
},
|
||||||
|
"install-dependencies-deb.sh": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.567549,
|
||||||
|
"ast_hash": "a6491716d226a87668faa53c605793ba",
|
||||||
|
"semantic_hash": "a6491716d226a87668faa53c605793ba"
|
||||||
|
},
|
||||||
|
"next.config.ts": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.567551,
|
||||||
|
"ast_hash": "03388a201be8750ddcddb14dfbc34411",
|
||||||
|
"semantic_hash": "03388a201be8750ddcddb14dfbc34411"
|
||||||
|
},
|
||||||
|
"package.json": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.5675533,
|
||||||
|
"ast_hash": "9dc8d0f30ee052e4d46bfd2ee4ac5f61",
|
||||||
|
"semantic_hash": "9dc8d0f30ee052e4d46bfd2ee4ac5f61"
|
||||||
|
},
|
||||||
|
"postcss.config.mjs": {
|
||||||
|
"mtime": 1790099669.0082622,
|
||||||
|
"seen": 1792088878.5675554,
|
||||||
|
"ast_hash": "675899342e765a4d16acd75a53389101",
|
||||||
|
"semantic_hash": "675899342e765a4d16acd75a53389101"
|
||||||
|
},
|
||||||
|
"scripts/dev-server.mjs": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.5675573,
|
||||||
|
"ast_hash": "efaaa5b58912a9ed8acbe0357af9dee5",
|
||||||
|
"semantic_hash": "efaaa5b58912a9ed8acbe0357af9dee5"
|
||||||
|
},
|
||||||
|
"src/app/api/activities/route.ts": {
|
||||||
|
"mtime": 1790198894.317407,
|
||||||
|
"seen": 1792088878.5675657,
|
||||||
|
"ast_hash": "5a36ba33a9e53094b5b12c8cea9aaf38",
|
||||||
|
"semantic_hash": "5a36ba33a9e53094b5b12c8cea9aaf38"
|
||||||
|
},
|
||||||
|
"src/app/api/frame/route.ts": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.5675678,
|
||||||
|
"ast_hash": "d3b5c01d3dddc131cffbda522e30abdd",
|
||||||
|
"semantic_hash": "d3b5c01d3dddc131cffbda522e30abdd"
|
||||||
|
},
|
||||||
|
"src/app/api/heatmap/route.ts": {
|
||||||
|
"mtime": 1791733935.6445713,
|
||||||
|
"seen": 1792088878.5675697,
|
||||||
|
"ast_hash": "e5759aac7f197c16dae54978b4218b14",
|
||||||
|
"semantic_hash": "e5759aac7f197c16dae54978b4218b14"
|
||||||
|
},
|
||||||
|
"src/app/api/ping/route.ts": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.5675719,
|
||||||
|
"ast_hash": "6b03fc03bf5b697654a794b4abd41686",
|
||||||
|
"semantic_hash": "6b03fc03bf5b697654a794b4abd41686"
|
||||||
|
},
|
||||||
|
"src/app/components/Clock.tsx": {
|
||||||
|
"mtime": 1790099669.0268312,
|
||||||
|
"seen": 1792088878.567574,
|
||||||
|
"ast_hash": "5e778da11f81f03e049c95984ace3308",
|
||||||
|
"semantic_hash": "5e778da11f81f03e049c95984ace3308"
|
||||||
|
},
|
||||||
|
"src/app/components/ContributionHeatmap.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.5675762,
|
||||||
|
"ast_hash": "7e4726a71926285f271502d61f24c60c",
|
||||||
|
"semantic_hash": "7e4726a71926285f271502d61f24c60c"
|
||||||
|
},
|
||||||
|
"src/app/components/FeatureWindow.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.567578,
|
||||||
|
"ast_hash": "4f3c02b1818cc96a47ccb4f42159c9e4",
|
||||||
|
"semantic_hash": "4f3c02b1818cc96a47ccb4f42159c9e4"
|
||||||
|
},
|
||||||
|
"src/app/components/JokerLogo.tsx": {
|
||||||
|
"mtime": 1790099669.0268312,
|
||||||
|
"seen": 1792088878.5675802,
|
||||||
|
"ast_hash": "ff265a30441bfbb9747eda8995585e47",
|
||||||
|
"semantic_hash": "ff265a30441bfbb9747eda8995585e47"
|
||||||
|
},
|
||||||
|
"src/app/components/ProjectIndex.tsx": {
|
||||||
|
"mtime": 1791748183.6609728,
|
||||||
|
"seen": 1792088878.5675821,
|
||||||
|
"ast_hash": "bf08ee83fbbf3649818f5ce91f6d45dd",
|
||||||
|
"semantic_hash": "bf08ee83fbbf3649818f5ce91f6d45dd"
|
||||||
|
},
|
||||||
|
"src/app/components/ServiceButton.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.567584,
|
||||||
|
"ast_hash": "26155305f67ac7f5410ea25003720742",
|
||||||
|
"semantic_hash": "26155305f67ac7f5410ea25003720742"
|
||||||
|
},
|
||||||
|
"src/app/components/ThemeRoot.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.567586,
|
||||||
|
"ast_hash": "46dcb83e61433c3499ade21cd60d7f82",
|
||||||
|
"semantic_hash": "46dcb83e61433c3499ade21cd60d7f82"
|
||||||
|
},
|
||||||
|
"src/app/components/ThemeScript.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.5675883,
|
||||||
|
"ast_hash": "20e25c727b4bb982e5a22d65efece143",
|
||||||
|
"semantic_hash": "20e25c727b4bb982e5a22d65efece143"
|
||||||
|
},
|
||||||
|
"src/app/components/WebLayout.tsx": {
|
||||||
|
"mtime": 1792092782.574,
|
||||||
|
"seen": 1792093031.8826597,
|
||||||
|
"ast_hash": "323262c6d5c5735b3707d2421d89dbd1",
|
||||||
|
"semantic_hash": "323262c6d5c5735b3707d2421d89dbd1"
|
||||||
|
},
|
||||||
|
"src/app/components/WinWindow.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.5675924,
|
||||||
|
"ast_hash": "336cb738822d73c0689bf760db468bdc",
|
||||||
|
"semantic_hash": "336cb738822d73c0689bf760db468bdc"
|
||||||
|
},
|
||||||
|
"src/app/components/WindowsDesktop.tsx": {
|
||||||
|
"mtime": 1791733935.6454856,
|
||||||
|
"seen": 1792088878.5675943,
|
||||||
|
"ast_hash": "f9a28298808e2cf91d700252a89e4768",
|
||||||
|
"semantic_hash": "f9a28298808e2cf91d700252a89e4768"
|
||||||
|
},
|
||||||
|
"src/app/components/apps.tsx": {
|
||||||
|
"mtime": 1791752129.879261,
|
||||||
|
"seen": 1792088878.5675964,
|
||||||
|
"ast_hash": "a4d5915c8dfa3313e1722ed0a5a1fe8c",
|
||||||
|
"semantic_hash": "a4d5915c8dfa3313e1722ed0a5a1fe8c"
|
||||||
|
},
|
||||||
|
"src/app/components/useColorScheme.ts": {
|
||||||
|
"mtime": 1791733935.6464856,
|
||||||
|
"seen": 1792088878.5675986,
|
||||||
|
"ast_hash": "b3f1f21c487b13ffb3e5ea98048fb27b",
|
||||||
|
"semantic_hash": "b3f1f21c487b13ffb3e5ea98048fb27b"
|
||||||
|
},
|
||||||
|
"src/app/components/useDesktopIcons.ts": {
|
||||||
|
"mtime": 1791733935.6464856,
|
||||||
|
"seen": 1792088878.5676007,
|
||||||
|
"ast_hash": "b6ffc5acc6e6be3026e42f09366b9fd1",
|
||||||
|
"semantic_hash": "b6ffc5acc6e6be3026e42f09366b9fd1"
|
||||||
|
},
|
||||||
|
"src/app/components/useTheme.ts": {
|
||||||
|
"mtime": 1791733935.6464856,
|
||||||
|
"seen": 1792088878.5676026,
|
||||||
|
"ast_hash": "310fcaa91369d6bc5e741a618ed7e497",
|
||||||
|
"semantic_hash": "310fcaa91369d6bc5e741a618ed7e497"
|
||||||
|
},
|
||||||
|
"src/app/data.ts": {
|
||||||
|
"mtime": 1791752129.875261,
|
||||||
|
"seen": 1792088878.5676048,
|
||||||
|
"ast_hash": "014c9a0639032f6d6174b41f7e8a8cfc",
|
||||||
|
"semantic_hash": "014c9a0639032f6d6174b41f7e8a8cfc"
|
||||||
|
},
|
||||||
|
"src/app/layout.tsx": {
|
||||||
|
"mtime": 1791733935.6464856,
|
||||||
|
"seen": 1792088878.5676067,
|
||||||
|
"ast_hash": "18f380fe272fab5884f0cf69e82dc32b",
|
||||||
|
"semantic_hash": "18f380fe272fab5884f0cf69e82dc32b"
|
||||||
|
},
|
||||||
|
"src/app/page.tsx": {
|
||||||
|
"mtime": 1791733935.6464856,
|
||||||
|
"seen": 1792088878.5676088,
|
||||||
|
"ast_hash": "28a1132f8ed6e3535605628ded40a06c",
|
||||||
|
"semantic_hash": "28a1132f8ed6e3535605628ded40a06c"
|
||||||
|
},
|
||||||
|
"src/app/revival-inc/page.tsx": {
|
||||||
|
"mtime": 1790099669.0272624,
|
||||||
|
"seen": 1792088878.567611,
|
||||||
|
"ast_hash": "156ec7340a49eea1d5ef4ea25d819531",
|
||||||
|
"semantic_hash": "156ec7340a49eea1d5ef4ea25d819531"
|
||||||
|
},
|
||||||
|
"tsconfig.json": {
|
||||||
|
"mtime": 1790099669.0282624,
|
||||||
|
"seen": 1792088878.567613,
|
||||||
|
"ast_hash": "77cde76abc2f77404a39eb82c83f93f2",
|
||||||
|
"semantic_hash": "77cde76abc2f77404a39eb82c83f93f2"
|
||||||
|
},
|
||||||
|
"vendor/braces/index.js": {
|
||||||
|
"mtime": 1791733935.6484516,
|
||||||
|
"seen": 1792088878.567615,
|
||||||
|
"ast_hash": "c930a02f71a7a9e836b9f5dd5ae5ee28",
|
||||||
|
"semantic_hash": "c930a02f71a7a9e836b9f5dd5ae5ee28"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/compile.js": {
|
||||||
|
"mtime": 1791733935.6484516,
|
||||||
|
"seen": 1792088878.567617,
|
||||||
|
"ast_hash": "a5d79ddc6c8ac559eb67ccada22eac10",
|
||||||
|
"semantic_hash": "a5d79ddc6c8ac559eb67ccada22eac10"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/constants.js": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676193,
|
||||||
|
"ast_hash": "b0ea09ec9d44fe804b39baeb7a61dbd1",
|
||||||
|
"semantic_hash": "b0ea09ec9d44fe804b39baeb7a61dbd1"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/expand.js": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676212,
|
||||||
|
"ast_hash": "d0363b99cf426d943316c9a59a569553",
|
||||||
|
"semantic_hash": "d0363b99cf426d943316c9a59a569553"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/parse.js": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676231,
|
||||||
|
"ast_hash": "9502a7b0b34e5aa38c4ecb698d69a764",
|
||||||
|
"semantic_hash": "9502a7b0b34e5aa38c4ecb698d69a764"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/stringify.js": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676253,
|
||||||
|
"ast_hash": "854eede33eb006466c3cd3c1806b59f8",
|
||||||
|
"semantic_hash": "854eede33eb006466c3cd3c1806b59f8"
|
||||||
|
},
|
||||||
|
"vendor/braces/lib/utils.js": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676272,
|
||||||
|
"ast_hash": "d1d327410bc14133ade065aa70b4d277",
|
||||||
|
"semantic_hash": "d1d327410bc14133ade065aa70b4d277"
|
||||||
|
},
|
||||||
|
"vendor/braces/package.json": {
|
||||||
|
"mtime": 1791733935.648663,
|
||||||
|
"seen": 1792088878.5676293,
|
||||||
|
"ast_hash": "3cf412b93228122553b7fde369773e30",
|
||||||
|
"semantic_hash": "3cf412b93228122553b7fde369773e30"
|
||||||
|
},
|
||||||
|
"DEPLOYMENT.md": {
|
||||||
|
"mtime": 1790099669.0079331,
|
||||||
|
"seen": 1792088878.5676312,
|
||||||
|
"ast_hash": "b81dea2175efa2b0b6c38451ab5a4bbd",
|
||||||
|
"semantic_hash": "b81dea2175efa2b0b6c38451ab5a4bbd"
|
||||||
|
},
|
||||||
|
"README.md": {
|
||||||
|
"mtime": 1791752424.8048594,
|
||||||
|
"seen": 1792088878.5676332,
|
||||||
|
"ast_hash": "56b4d66dfd84d63c081e89f9b83a2473",
|
||||||
|
"semantic_hash": "56b4d66dfd84d63c081e89f9b83a2473"
|
||||||
|
},
|
||||||
|
"agents.md": {
|
||||||
|
"mtime": 1791754434.7755237,
|
||||||
|
"seen": 1792088878.5676353,
|
||||||
|
"ast_hash": "0f3349e68bf149d70a6a28ae4b46b75e",
|
||||||
|
"semantic_hash": "0f3349e68bf149d70a6a28ae4b46b75e"
|
||||||
|
},
|
||||||
|
"public/llms.txt": {
|
||||||
|
"mtime": 1790099669.0182621,
|
||||||
|
"seen": 1792088878.5676372,
|
||||||
|
"ast_hash": "c78b6098bfcb915f16f6cec548f2c0bc",
|
||||||
|
"semantic_hash": "c78b6098bfcb915f16f6cec548f2c0bc"
|
||||||
|
},
|
||||||
|
"public/revival-inc/index.html": {
|
||||||
|
"mtime": 1790099669.021069,
|
||||||
|
"seen": 1792088878.5676398,
|
||||||
|
"ast_hash": "82047937d12fa42abb1997311df592ab",
|
||||||
|
"semantic_hash": "82047937d12fa42abb1997311df592ab"
|
||||||
|
},
|
||||||
|
"public/robots.txt": {
|
||||||
|
"mtime": 1790099669.021069,
|
||||||
|
"seen": 1792088878.567642,
|
||||||
|
"ast_hash": "c6693e078404de1e6e9a6372e48e604b",
|
||||||
|
"semantic_hash": "c6693e078404de1e6e9a6372e48e604b"
|
||||||
|
},
|
||||||
|
"vendor/braces/README.md": {
|
||||||
|
"mtime": 1791733935.6484516,
|
||||||
|
"seen": 1792088878.567644,
|
||||||
|
"ast_hash": "1a5800b8ce5218a9a54e4de6d0de66dc",
|
||||||
|
"semantic_hash": "1a5800b8ce5218a9a54e4de6d0de66dc"
|
||||||
|
},
|
||||||
|
"public/discord.svg": {
|
||||||
|
"mtime": 1790099669.0142622,
|
||||||
|
"seen": 1792088878.567646,
|
||||||
|
"ast_hash": "3ade8600c72a99dac523ad990bd59e8b",
|
||||||
|
"semantic_hash": "3ade8600c72a99dac523ad990bd59e8b"
|
||||||
|
},
|
||||||
|
"public/freezmo-app.webp": {
|
||||||
|
"mtime": 1791751264.7117522,
|
||||||
|
"seen": 1792088878.5676477,
|
||||||
|
"ast_hash": "8cb16536265245385e56bda1eac49439",
|
||||||
|
"semantic_hash": "8cb16536265245385e56bda1eac49439"
|
||||||
|
},
|
||||||
|
"public/gentoo.svg": {
|
||||||
|
"mtime": 1790099669.0142622,
|
||||||
|
"seen": 1792088878.5676498,
|
||||||
|
"ast_hash": "9e88566be5538fdd93868dc98818b9ff",
|
||||||
|
"semantic_hash": "9e88566be5538fdd93868dc98818b9ff"
|
||||||
|
},
|
||||||
|
"public/github.svg": {
|
||||||
|
"mtime": 1790099669.0142622,
|
||||||
|
"seen": 1792088878.5676517,
|
||||||
|
"ast_hash": "86a06412a2ae8f9ae304d60a95aa6454",
|
||||||
|
"semantic_hash": "86a06412a2ae8f9ae304d60a95aa6454"
|
||||||
|
},
|
||||||
|
"public/instagram.svg": {
|
||||||
|
"mtime": 1790099669.0172622,
|
||||||
|
"seen": 1792088878.5676537,
|
||||||
|
"ast_hash": "0bdc0f84a7ca0d7048702145ae66cea0",
|
||||||
|
"semantic_hash": "0bdc0f84a7ca0d7048702145ae66cea0"
|
||||||
|
},
|
||||||
|
"public/itchio.svg": {
|
||||||
|
"mtime": 1790099669.0172622,
|
||||||
|
"seen": 1792088878.5676556,
|
||||||
|
"ast_hash": "0732b23e4e3278b5040ca2c6b5e19332",
|
||||||
|
"semantic_hash": "0732b23e4e3278b5040ca2c6b5e19332"
|
||||||
|
},
|
||||||
|
"public/joker.webp": {
|
||||||
|
"mtime": 1790099669.0172622,
|
||||||
|
"seen": 1792088878.5676577,
|
||||||
|
"ast_hash": "aef446a911b72c0921f719ba0ac511dd",
|
||||||
|
"semantic_hash": "aef446a911b72c0921f719ba0ac511dd"
|
||||||
|
},
|
||||||
|
"public/linkedin.svg": {
|
||||||
|
"mtime": 1790099669.0182621,
|
||||||
|
"seen": 1792088878.5676599,
|
||||||
|
"ast_hash": "1afd545bf403f6c131c2d5a008802469",
|
||||||
|
"semantic_hash": "1afd545bf403f6c131c2d5a008802469"
|
||||||
|
},
|
||||||
|
"public/quip.svg": {
|
||||||
|
"mtime": 1790099669.0192623,
|
||||||
|
"seen": 1792088878.5676618,
|
||||||
|
"ast_hash": "01cf69893c109da07f143f960918cc07",
|
||||||
|
"semantic_hash": "01cf69893c109da07f143f960918cc07"
|
||||||
|
},
|
||||||
|
"public/reddit.svg": {
|
||||||
|
"mtime": 1790099669.0192623,
|
||||||
|
"seen": 1792088878.567664,
|
||||||
|
"ast_hash": "2d7c840f35b64499e0dbf488383fea6e",
|
||||||
|
"semantic_hash": "2d7c840f35b64499e0dbf488383fea6e"
|
||||||
|
},
|
||||||
|
"public/revival-inc/favicon.png": {
|
||||||
|
"mtime": 1790099669.0192623,
|
||||||
|
"seen": 1792088878.5676658,
|
||||||
|
"ast_hash": "51589f25eb6e3fd068c04d4b44a62283",
|
||||||
|
"semantic_hash": "51589f25eb6e3fd068c04d4b44a62283"
|
||||||
|
},
|
||||||
|
"public/snapchat.svg": {
|
||||||
|
"mtime": 1790099669.0232623,
|
||||||
|
"seen": 1792088878.567668,
|
||||||
|
"ast_hash": "39326ab4c6c6b7c51058315987addb56",
|
||||||
|
"semantic_hash": "39326ab4c6c6b7c51058315987addb56"
|
||||||
|
},
|
||||||
|
"public/soundcloud.svg": {
|
||||||
|
"mtime": 1790099669.0232623,
|
||||||
|
"seen": 1792088878.56767,
|
||||||
|
"ast_hash": "898729511991ec9506221654220c2dca",
|
||||||
|
"semantic_hash": "898729511991ec9506221654220c2dca"
|
||||||
|
},
|
||||||
|
"public/tiktok.svg": {
|
||||||
|
"mtime": 1790099669.0232623,
|
||||||
|
"seen": 1792088878.567672,
|
||||||
|
"ast_hash": "62f0b987b0c084d6d0446f3281a46615",
|
||||||
|
"semantic_hash": "62f0b987b0c084d6d0446f3281a46615"
|
||||||
|
},
|
||||||
|
"public/twitter.svg": {
|
||||||
|
"mtime": 1790099669.0232623,
|
||||||
|
"seen": 1792088878.5676744,
|
||||||
|
"ast_hash": "d6987792e52df7ef416d72d8c73e80d1",
|
||||||
|
"semantic_hash": "d6987792e52df7ef416d72d8c73e80d1"
|
||||||
|
},
|
||||||
|
"src/app/icon.png": {
|
||||||
|
"mtime": 1790099669.0272624,
|
||||||
|
"seen": 1792088878.5676763,
|
||||||
|
"ast_hash": "df0e23deb9fd1cdfc389578a3be34f7c",
|
||||||
|
"semantic_hash": "df0e23deb9fd1cdfc389578a3be34f7c"
|
||||||
|
},
|
||||||
|
"public/freezmo.png": {
|
||||||
|
"mtime": 1792092771.5786166,
|
||||||
|
"seen": 1792093031.8827293,
|
||||||
|
"ast_hash": "6f69e16823f10d9c7af1625eff2b32e8",
|
||||||
|
"semantic_hash": "6f69e16823f10d9c7af1625eff2b32e8"
|
||||||
|
}
|
||||||
|
}
|
||||||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "dvorakmortonxd",
|
"name": "dvorakmortonxd",
|
||||||
"version": "2.2.14",
|
"version": "2.2.15",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "dvorakmortonxd",
|
"name": "dvorakmortonxd",
|
||||||
"version": "2.2.14",
|
"version": "2.2.15",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"next": "^16.3.8",
|
"next": "^16.3.8",
|
||||||
"react": "^19.3.0",
|
"react": "^19.3.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "dvorakmortonxd",
|
"name": "dvorakmortonxd",
|
||||||
"version": "2.2.14",
|
"version": "2.2.15",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "node scripts/dev-server.mjs",
|
"dev": "node scripts/dev-server.mjs",
|
||||||
|
|
|
||||||
BIN
public/freezmo.png
Normal file
BIN
public/freezmo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
|
|
@ -273,7 +273,7 @@ export default function WebLayout() {
|
||||||
</div>
|
</div>
|
||||||
<div className="web-freezmo-shot">
|
<div className="web-freezmo-shot">
|
||||||
<Image
|
<Image
|
||||||
src="/freezmo-app.webp"
|
src="/freezmo.png"
|
||||||
alt="Freezmo quiz screen — a history question about the Schuman plan with AI grading feedback"
|
alt="Freezmo quiz screen — a history question about the Schuman plan with AI grading feedback"
|
||||||
width={1941}
|
width={1941}
|
||||||
height={942}
|
height={942}
|
||||||
|
|
@ -340,7 +340,7 @@ export default function WebLayout() {
|
||||||
</Section>
|
</Section>
|
||||||
|
|
||||||
<footer className="web-footer glass">
|
<footer className="web-footer glass">
|
||||||
<span className="web-footer-label">v2.2.14</span>
|
<span className="web-footer-label">v2.2.15</span>
|
||||||
© 2025-2026 Martin Dvořák. All rights reserved (not really I dont care, just
|
© 2025-2026 Martin Dvořák. All rights reserved (not really I dont care, just
|
||||||
follow the GPL3.0 License)
|
follow the GPL3.0 License)
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue