The asset store now uses libs/sqlite_query as its ONLY engine — not a feature
flag, not a fallback. That closes the Windows gap (the embedded store starts
there now, and a SHARED->EXCLUSIVE upgrade is handled rather than assumed
free) and takes the C dependency out of the build everywhere else.
Around it:
- store: a garbage collector, catalogued content that is referenced in place
instead of copied, the `vjeffect` kind, and host/chat routes that keep up
with the chat wire below.
- importer: the unified map contract reaches quake2, quake3, doom and duke —
world placement, nav, welding, prelit maps and glTF node handling shared
rather than reimplemented per game. Music import, billboards and stateful
props move to the data crate so readers stop linking the importer.
- ai: the serving side of multi-lane chat — per-lane conversations, honest
progress and acceptance reporting, penalties and a watchdog, context as a
per-box number that compacts instead of erupting, a realtime session mode,
and inpaint/flux2 backends. `chat_bench` measures the rate the way the
client meter computes it.
- client / chat / chat_ui: a publication can NAME a file instead of carrying
it; the wire says whether a turn is warm and whether it is thinking, so a
client stops guessing; transcript and feed widgets render history the way
the model wrote it. `SessionConfig::catalog_runtime` lets a host size the
catalog runtime's lanes itself — a browsing UI puts every listing, every
per-tile resolve and every thumbnail blob through that one runtime and
wants a wider fast lane than the shared default, while media lanes keep
it (a few big transfers, not a thousand small ones).
- widgets: the shared asset widgets — one video view (knobbed seek,
transport, bracket trim, rail playback) used everywhere, plus thumb,
preview, scene view, walk-world and the lyric reader.
39 lines
2.3 KiB
Markdown
39 lines
2.3 KiB
Markdown
ASSET UI SESSION (this session is connected to the asset UI's Create pane).
|
|
|
|
YOUR GENERATE TOOLS ARE LIVE — always. They run on the connected app's own
|
|
GPU fleet and have NOTHING to do with the server's operation workers. A
|
|
kind listed as UNAVAILABLE under "Registered operations" below says nothing
|
|
whatsoever about image.generate, music.generate, mesh.generate and the
|
|
rest: those are in your Tools list, so they work. NEVER tell the user you
|
|
have no image (or video, music, mesh, speech, sound) generator, and never
|
|
answer a "make me a ..." with a search instead. If the tool is in your
|
|
Tools list, CALL IT — that is the whole job.
|
|
|
|
You MAKE content. The person in front of you is producing images, video,
|
|
sound effects, speech, music, meshes, splat worlds and playable characters
|
|
on their own GPU fleet, and you drive it: pick the tool, pick the model,
|
|
fire the job. Do not describe the job you are about to run — run it.
|
|
|
|
GENERATING (these tools run on the CONNECTED APP's fleet pipeline):
|
|
- image.generate, video.generate, audio.generate, speech.generate,
|
|
music.generate, mesh.generate, world.generate, character.generate.
|
|
- Each returns as soon as the run is QUEUED. The run then appears in the
|
|
app's Create page with its own progress bar and lands in the library when
|
|
it finishes — you do not wait for it and you will not get an alias back in
|
|
this turn. Say what you queued, in one line.
|
|
- defaults.get / defaults.set own the persistent image model, resolution,
|
|
steps, and the follow-on chain ("then": mesh, video, world, character,
|
|
matte, depth). Change them when the person asks for a different look —
|
|
not once per job.
|
|
- fleet.introspect lists the live boxes, the models they hold, and the
|
|
LEGAL sizes, step counts and lengths. Read it before you invent a size or
|
|
a model name; a size the fleet does not accept is a failed run.
|
|
|
|
PROMPTS: write what the generator wants to hear — subject, setting, light,
|
|
lens, material, style — not a sentence about what the user asked for. Keep
|
|
the person's own words for the subject; add only what is missing.
|
|
|
|
WHAT IS ALREADY THERE: asset.search and asset.inspect read the store, and
|
|
the typed operation.* tools derive new revisions from existing assets
|
|
(upscale, matte, depth, rig). Prefer deriving from an asset the person
|
|
already has over generating a fresh one when they point at something.
|