This document exists to satisfy the hackathon rule:
Your demo must only highlight the specific features, code, and functionality that your team built during the hackathon. Judges must be able to clearly identify what was created during the event.
Everything listed under NEW below was written in this codebase on 2026-05-23 between hackathon start and submission. Everything listed under REFERENCED is not our work and is either invoked as a dependency or vendored unmodified for integration purposes.
Authored during the event:
src/bridge/server.mjs— HTTP + SSE + static + per-game route mountingsrc/utils/qr.mjs— terminal + PNG QR rendering with terminal fallbacksrc/utils/tunnel.mjs— Cloudflare quick-tunnel spawner with log-tail URL detection
src/tools/client.mjs— cached Gemini client with clear missing-key errorsrc/tools/managed-agent.mjs—runManagedAgentwiththreadKey(fixes cross-contamination), trace extraction, image-grounded variantsrc/tools/scene-gen.mjs— Nano BananagenerateScene+scenePromptstyle helpersrc/tools/lyria.mjs—runLyriaClip+makeLyriaPromptbuildersrc/tools/tts.mjs—generateTTSwith PCM-to-WAV header wrapsrc/tools/veo.mjs—generateCinematicwith operation pollingsrc/tools/structured.mjs—requestStructuredfor Flash JSON-mode +firstJsonObjectscanner
src/display/base.css— drop-in 600×600 reset + glassmorphic primitivessrc/display/focus.js— D-pad / Neural Band focus model (no deps)src/display/events.js— SSE client with auto-reconnect + inline-audio playback
bin/gdk.mjs— entry pointsrc/cli.mjs— dispatch + flag parsersrc/index.mjs— public SDK surface (defineGame, re-exports)src/commands/create.mjs— scaffold a project from a templatesrc/commands/dev.mjs— bridge + tunnel + QR orchestrationsrc/commands/deploy.mjs— mint deep-link + QR for a hosted URLsrc/commands/doctor.mjs— pre-flight device checkssrc/commands/capture.mjs— operator-gated capture (Phase 1 stub)src/commands/agent.mjs— one-shot agent invocation
templates/adventure/— Nano Banana adventure (full)templates/arena/— Phase 3 — derived from PROMPT ARENA exampletemplates/scanner/— Phase 3 (deferred — PALETTE QUEST was deliberately not imported to stay clear of the image-analyzer anti-pattern)templates/rhythm/— Phase 3 — derived from PulseBlade exampletemplates/quest/— Phase 3 — derived from OMNI-ODYSSEY orchestrator pattern
README.md,DEMO-RUNBOOK.md,SUBMISSION.md,NOTICE,LICENSEdocs/getting-started.md,docs/architecture.md,docs/managed-agents.mddocs/built-during-hackathon.md(this file)
These three games were prototyped earlier in the day in separate local
workspaces, then refactored later in the day to depend on gdk. All
authored on 2026-05-23.
examples/omni-odyssey/— Nano Banana adventure, refactored to depend on the framework. The original 340-lineorchestrator.mjsshrinks to a 110-lineomni.config.mjsbecause the framework now owns the bridge/SSE/tunnel/QR. Display HTML ported as-is.examples/pulseblade/— original wearable rhythm game. Flash designs the level (structured output), Lyria scores the backing track, a managed-agent director publishes a balancing note. The originalpulseblade-server.mjs(~500 lines of duplicated bridge code) becomes a ~100-lineomni.config.mjs.level.mjsand display files ported as-is.examples/prompt-arena/— bonus folder: the standalone Python managed-agent monster tournament, dropped in verbatim from its earlier-in-the-day prototype workspace. Sensitive.envexcluded; per-project.claude/state removed. Marked as bonus inBONUS-NOT-DEMOED.md— not part of the live demo but the strongest single piece ofcode_execution_callevidence in the repo (captured atexamples/prompt-arena/data/traces/).
Status as of Phase 2 (the import push): all three examples present. Two fully depend on the framework (Odyssey + PulseBlade). Prompt Arena still runs standalone on its own Flask server (deferred refactor — not blocking for the hackathon submission).
These are NOT our work. They live under vendor/ (if vendored) for offline
reference. Original copyrights and licenses apply. See NOTICE.
vendor/meta-wearables-webapp/— Meta-published Web App AI toolkit (the canonical reference for the 600×600 Web App surface)vendor/meta-wearables-dat-android/— Meta-published DAT Android SDK (canonical reference for the on-device camera path)
We do not import or copy code from these; the display SDK in src/display/
implements the same conventions documented there (600×600, D-pad keys, plain
HTML/CSS/JS).
Declared in package.json, installed at npm install time.
@google/genai(Apache-2.0) — the official Gemini SDKqrcode(MIT) — used for QR PNG generation (optional; terminal fallback if absent)cloudflared— invoked as an external binary; users install separately
git log --reverse --format='%h %ci %s' | headThe first commit hash + ISO timestamp should fall within the official hackathon hours on 2026-05-23. Every commit afterward is part of the build process.
The vendor/ directory, if present, will have been added in one commit clearly
labeled vendor: clone meta-wearables-* for reference (unmodified).