Luigit
repositories / will

will

owned by admin

will

A resident digital lifeform deployed as a two-container pod, grown through CI from this repository. Design of record: spec.html.

What is here

  • src/service — phenotype: stdlib HTTP + SQLite worker, public read-only web surface, pod-local API, archives and media store
  • src/agent — senses and muscles: resident pi session, wake queue, Telegram runtime, curated ZAI capability tools, CI and deployment watch
  • src/shared — contracts and pure policy
  • web — handmade frontend (timeline, conversations, media, deployments)
  • persona, .pi — will's personality and skills (immutable image content)
  • deploy — external deployment contract, revision schema, quadlet templates
  • .ci — Luci validation/browser/canary jobs

Development

Requirements: Node 26, mise; podman for image/boot tiers.

mise install            # node 26
npm ci
npm run check           # biome + strict tsc
npm test                # unit + property + integration
npm run coverage        # coverage with the committed ratchet
npm run build           # bundles + docs
mise run dev            # dev body in containers (prints URLs + curl recipes)
mise run dev:chat hi    # message the local will (echoes back as a wake)
ZAI_API_KEY=... mise run dev  # same body, real model session

Local dev uses WILL_SESSION_MODE=fake and a fake Telegram so the whole wake path runs offline; the real model session requires ZAI_API_KEY (pi's built-in zai provider).

Layout notes

  • Production deploys only from trunk through Luci and the deployment platform (deploy/contract.md); there are no hot releases.
  • The service is the only SQLite writer; the agent talks to its pod-local API with a durable idempotent spool.
  • Every test tier is listed in AGENTS.md and docs/test.md.

Default branch source