Talos docs

Agent tools

134 pages.

Plain text
NameSummary
activityWho else works on this project: the roster (agents and the human, what each is doing), holds (a human's always wins), changes since a cursor, and yours.
asset.derivedEvery project file derived from one scan source (its SHA-256 or an 8+ hex prefix): cooked GLBs, kept source, byte-identical copies in .argus, the project thumbnail if it may show the scan.
asset.import[editor or disk] Measure a GLB or FBX (Blender converts it), copy it into the project with an entity in the open scene: a workspace-service revision, else an editor undo step, else written to the files.
asset.place[editor or disk] Put a project model into the open scene at the origin, one revision (or undo step): the Content browser's Place, no re-import.
asset.reprocessRe-cook a scan asset from its kept source with changed scan settings (triangles, levels, texture size, hulls, cuts hiding scan triangles where a modelled part sits), one undo step.
asset.rulerSet an imported model's unit scale from two points on it (file space) and their real distance in metres, one undo step.
audio.synth[editor or disk] Synthesise a WAV audio asset into the project (as asset.import does) with the make-your-own-sounds recipe's synthesiser: a preset, or voices on a timeline.
behaviour.listThis project's behaviour modules, with what each says it does.
behaviour.readOne project behaviour's source, by name or module name.
behaviour.write[editor or disk] Write a TypeScript behaviour to scenes/behaviors/<name>.ts beside the scene, landed only if the build's type checker passes it; else NOTHING is written and the answer has the diagnostics.
bridge.generate[editor or disk] Stone bridge between two points: arches, parapets, end towers.
build.applyTurn files changed outside the workspace API (a save is one) into a revision; wait until its build is Ready (and in the editor) or failed (build.state).
build.status[editor or service] What the workspace service made of the newest revision: editing, building, checking, ready, failed (first error's file and line) or superseded; the last Ready build (exports compose from it); pendingExternal: files in no revision yet, for build.apply.
building.generate[editor or disk] One building of kit pieces, metres.
building.kitRead a kit folder, or with none the engine's own (styles, roles, unit); later calls reuse it.
critic.checkDeterministic checks of the scene FILE (save editor edits first): unreachable goals, dangling script modules, geometry that cannot be stood on, budgets.
critic.check_uiUI critic over every screen on the stack across themes, UI scales and locales: text overflow, off-screen or overlapping controls, contrast, unreachable focus, missing strings, no way back, undefined theme tokens.
critic.playThe playtester walks each goal entity in order with the real controller: per goal reached, stuck, fell-out, softlock, navmesh coverage.
critic.selftestPlay scripted scenarios headless (argus://docs/agent#self-test-scenarios): press, hold actions, wait for a screen, text or goals.
dress[editor or disk] Place kit objects by rule on the terrain: in polygons, along paths, around points; targets may name network or parcels ids.
editor.captureA PNG of the viewport (the game while playing), to a file, shown unless image is false.
editor.clickPress a control by drawn name: cursor move, press, release over three frames, as a person does.
editor.controlsEvery control the editor drew last frame, by name, with its rectangle: the names editor.click takes.
editor.hoverRest the pointer on a control for some frames, which opens a submenu.
editor.keyA key down and up, or one half with "down".
editor.setSet the selection and the hidden, isolated (only these drawn) and locked id lists, as the Outliner does.
editor.start[disk (starts an editor)] Start an editor on this project and wait for its control endpoint and first build ([editor], build.*, play.*, ui.* tools): the fix for a no-editor refusal.
editor.state[editor or disk] What a person set by hand outside the scene: selection, hidden, isolated, locked ids, camera, prefs; unsaved files, autosave, crash-recovery offers, undo history.
editor.typeType text a character at a time, through the keyboard's boundary.
entity.add[editor or disk] A new entity in the scene, as one undo step.
entity.add_behaviour[editor or disk] Attach a behaviour: a script component with module and props, one undo step.
entity.alignMove an entity so points on it land on matching points elsewhere (a modelled part onto a scan): world-space pairs, 3+; rigid, or with one uniform scale.
entity.copy[editor or disk] Entities and descendants as Ctrl+C's clipboard JSON {argusEntities, assets}.
entity.fit_proxiesFit static collision boxes to a mesh entity (a room scan): the floor, up to walls walls, a box around the mesh in each world-space region [min, max].
entity.paste[editor or disk] Add a clip (entity.copy's answer or its clip, or copied text) with fresh ids where it was copied; one undo step.
entity.reparent[editor or disk] Reparent (null: root), keeping world transform unless keepWorld=false; one undo step.
entity.set_component[editor or disk] Put this component on this entity, replacing any of its type, one undo step.
example.behaviourThe smallest compiling behaviour module doing what you describe, from tested fixtures: door, collect, rotate, move, trigger, timer, hud, camera, input, nav.
explain.apiOne @argus/api symbol or @argus/gameplay helper: its declaration, doc, import line and the examples that use it.
explain.componentA component kind's fields (type, default, values), nested types, rules refusing it, a valid fragment.
explain.ruleWhat a refusal's or finding's code means: severity, trigger, where it points, whether a check offers a fix patch.
explain.searchFind what the explain tools and argus:// resources hold, by words: rule and runtime codes, components, API, examples, recipes, docs, UI.
export.compose[disk (with a Ready build)] Compose the player's native executable from a Ready build (build.status names it).
export.infoA composed executable's payload: scene, engine, source revision, branding, as the launcher's --info prints.
export.run[disk (starts the game, no window)] Start a composed executable offscreen as a player would; answers its screen stack, a first-frame PNG (unless image: false) and a development export's query URL (a release export has none: it runs its self-test once).
foliage.generateWrite or edit a .foliage.json from recipe or template and cook it into .argus/flora/.
foliage.presetPlant a scene's terrain over an area with a plant preset as instancedMesh entities; a re-run replaces it.
foliage.previewA PNG contact sheet drawn on the CPU: a row per variant and age, a column per view.
foliage.speciesSpecies and templates, scored first.
foliage.statsTriangles per submesh, bounds, collider, cook ms, and whether the baked meshes are fresh.
kit.checkWhat a kit can build (houses by roof, wall, fence, bridge) and the roles each still needs; pieces that do not sit in their cell, in metres; a test house pictured.
kit.pieceDeclare kit pieces from models (the kit file is made on the first call): yaw, offset, scale and size are fitted from each model's bounds and outer side.
kit.sheetWhat a folder of models holds, 12 a page, pictured with each origin and axes: size, bounds, material names, and the materials a scene puts on each.
library.gateGate a GLB the user already has and save it.
library.generateAnswers library candidates first (no provider call): accept:"<id>" takes one; accept:"none" or force:true generates.
library.importCopy a gated asset into the project (failed-gate ones are refused); then asset.place.
library.processPaid Tripo step on a GLB path or taskId: smart_uv, auto_rig (preset, default mixamo), retopo (faceLimit).
library.searchSearch saved, gated assets before generating; then library.import.
library.sharepublish: per asset, gate-passed, attest:true, licence CC0-1.0 default; a service's assets need policy clearance, then tier and consent:true.
look.applyPut a named look (sky, ambient, render look; e.g.
material.compareDraw a material headless on a 4 m panel under key, backlit or dusk light (or take an image) and compare with a reference picture: colour difference, brightness/contrast/highlight/detail ratios, hints.
material.measureMean linear albedo, roughness, metallic, emission in nits, checked against a class (grass, rock, plaster, brick, clay-tile, timber, stone, cobble, iron...).
material.previewDraw a material on a shape: contact sheet PNG (4 angles x 3 rigs).
material.writeCheck a *.material.json, then save it.
music.add[editor or disk] A paid song on the user's key (music must be on), or with file their Suno download (free), as an audio asset; scene loops it there.
network.grow[editor or disk] Grow a street network from seeds over the terrain (metres, XZ): a carved road per edge; answers blocks for parcels.subdivide.
notes.appendRecord one thing about THIS project for the next session: a decision, a name, what failed, what a refusal meant.
notes.readWhat earlier sessions recorded about this project.
parcels.subdivide[editor or disk] Split a network's blocks (or polygons) into plots and fit kit archetype buildings on the terrain.
play.captureRender a frame of the running game, overlays optional (colliders, navmesh, paths), to out or a temp file, shown to you (max 1024 px) unless image is false; a clip is one sheet of up to 12 numbered frames.
play.desyncWhere two runs part: on {every} hashes each sim system per tick; compare {ticks} (another run's read with leaves) names the first tick, system and entity; dump {system, entity} the state.
play.inputPress input-map actions through their bound keys, as the player's keyboard does.
play.measureStep Play tick by tick with actions held over chosen ticks, reading entity fields after each: per field first, final, min and max with the tick; the first tick each condition held; rows on request.
play.queryOne request to Play's query API: /entities, /entity/{id}, /contacts, /perf, /events, /trace, /frame, /navmesh, /feel, POST /raycast, POST /path; shapes in argus://docs/query-api.
play.roadsEach road entity's centre line in WORLD space: samples {s, pos, tangent, halfWidth, curvature, bankRad}, length, closed, gates in lap order.
play.saveRead or change the running game's ctx.save store: set {key: value}, remove [keys]; answers the store after.
play.startPlay the open scene in the editor; waits until it runs.
play.stepPause Play and advance exactly this many fixed ticks, to reason about a frame rather than watch it.
play.stopEnd Play; back to authoring, scene and camera as they were.
plugin[service, or disk] Plugins (argus://docs/plugins): list; info, tools {id}; add {id, set: ["k=v"], dryRun}; remove {id}; run {id: a tool's name, args}.
prefab[editor or disk] create {entity, path}: subtree -> prefab file + instance.
prefab.place[editor or disk] Many prefab instances as ONE undo step and revision.
profile.blameCost by script behaviour, phase, entity, draw group, physics, asset memory or load phase.
profile.capturesave the flight recorder's last seconds (action save, reason), list, read one, or export a Perfetto trace (redact hashes script and scene names).
profile.diffReplay a saved capture's run on the edited project (or compare with another capture or the live ring): per-span deltas with a noise band, a verdict per finding.
profile.explainWhat the running game is bound by, with ranked fixes, each with evidence, a suggested change and estimated saving.
profile.viewProfile picture by kind: strip (frame times, spikes marked), timeline (one frame's spans by track), flame (where time went), heat (viewport, costly entities tinted, legend).
project.createMake a project from a template and take it as this session's: argus.project.json and scenes/main.scene.json only, no editor or service.
project.filesEvery file a revision of this project would hold, with role (scene, behavior, asset, data, settings) and size, 100 a page; prefix and role narrow it.
project.openTake this project as the session's, which every other tool works on; reports its editor, workspace service, scenes and startup scene.
project.settings.setField edits three-way merged onto the manifest into a revision by the workspace service (needs it running): each {field, expect: the value last seen, value}; a field changed since is a conflict, never overwritten.
replay.verifyPlay a --save-replay file on its scene and check its per-system state hashes: ok, or the first tick window and system where the playback parts from the recording.
revertUndo one of your changes as a new revert change.
road.editSet or remove .road.json fields by dotted path (null removes), e.g.
road.samplePoints ON a road's surface from its file, no Play: each [s, offset] (metres along, metres right) gives WORLD position, normal, bankDeg, strip and a rotation standing a prop flush on it, facing along the road.
scene.listEvery scene in the project, the open one, and the one a packaged build boots.
scene.open[editor or disk] Make this the open scene: the editor's Open scene (an unsaved-work prompt may appear; the answer says so), or with no editor the scene later tools use.
scene.patch[editor or disk] An RFC 6902 JSON Patch on the scene, ONE undo step, all or nothing; an invalid result is refused with its contract violations.
scene.read[editor or disk] The scene as canonical JSON (argus://contract/scene): the workspace service's when one runs (an open editor's unsaved edits only once saved: dirty says they exist), else the editor's document (unsaved edits too), else the file.
settlement.generate[editor or disk] A settlement from a recipe (inline or a .settlement.json): network.grow, parcels.subdivide, dress in turn under <id>-net/-plots/-dress.
shader.libraryWhat a shader may use: models, functions (the prelude), glsl (a cheat sheet), examples (six shaders).
shader.measureStatic cost, caps met (desktop, web, hd: uncalibrated), derived metadata (usesDerivatives, usesScreenInputs), what HD would downgrade, hd (passes, pipelines, ray-hit handling, codes), variants, pre-warm estimate.
shader.previewMaterial contact sheet PNG: 4 angles x 3 times x day/backlit/night.
shader.write[editor or disk] Check a *.shader.wgsl, then save it: errors come back as {code, line, col, message, hint}, nothing written.
terrain.apply[editor or disk] Add ops as ONE change, a whole recipe a call; later ops read earlier ones.
terrain.create[editor or disk] A terrain file, empty or a landform (terrain.ops lists them), with entity also its scene entity, as one change; a layer material the project lacks is written plain.
terrain.edit[editor or disk] Change one op (set, enabled) or the surface; answers as terrain.apply.
terrain.opsStack ops; op: <name> gives fields, defaults, reach, a runnable example.
terrain.previewA PNG and legend of the terrain; upTo an op id; grid draws coordinates.
terrain.sampleHeight, normal, slope, layer and channels at points, in metres.
terrain.stack[editor or disk] The stack with each op's cost, layers, channels.
terrain.statsHeights, land and sea, bands, slopes, walkable %, layers, look.
tools.enableAdd toolsets to this session's list.
ui.activate[editor (test session)] Press a node by its ui.tree id, as a click would.
ui.focus[editor (test session)] Focus a node by id, or move focus one step up, down, left or right: test gamepad and keyboard navigation without either.
ui.input[editor (test session)] Pointer, key and navigation events straight into the UI, in the logical pixels of ui.tree's bounds.logical (a node's centre needs no arithmetic).
ui.localeSwitch the language text keys resolve in, for a screenshot matrix.
ui.pop[editor (test session)] Pop the top screen, as ctx.ui.pop and the player's Escape do.
ui.push[editor (test session)] Push a registered screen (ui.screens lists them) with optional props, as ctx.ui.push does, to look at it without a behaviour.
ui.scaleSet the player's UI-scale multiplier, 0.5 to 4, for a screenshot matrix.
ui.schema[editor or disk] Every style property, unit, selector, pseudo-class, role, design token, binding and refusal code the UI supports, from the parser's tables.
ui.screens[editor or disk] The stack bottom-first with each screen's modality, dismissibility, click-through, input context, focus and props; every registered screen; the live input context; the UI scale.
ui.themeSwitch the UI to a theme the project's stylesheets declare, for a screenshot matrix.
ui.treeThe live UI tree across the screen stack: per node its stable id (the one to press), role, classes, bounds (logical and device px), state, text with string key, computed style.
ui.viewportSize the engine's surface in device pixels, 64 to 8192 a side, and lay the UI out at it: a screenshot matrix's resolution axis, on one engine.
vfx.describeEvery setting of a *.vfx.json: unit, range, default and what it does to the look.
vfx.explainPlain reasons from the measurements, each with a fix: nothing alive and why, a short pool, no lift, too faint, under a pixel.
vfx.patchRFC 6902 ops on a project *.vfx.json, all or nothing; emitters by name (/emitters/@smoke/init/life).
vfx.readAn effect file as written, or a preset's source to copy from; a preset is read-only.
vfx.reportWhat an effect does, measured with no GPU: live against capacity, dropped spawns, rise and spread, pixel width at distances, lints.
vfx.sheetDraws an effect on a fixed stage at set moments and distances into one labelled PNG, with an optional param sweep.
view.renderOffscreen PNG of the scene from eye to target, shown to you.
wall.generate[editor or disk] Town wall (towers, gates) or fence along a path, metres, on terrain.

project.settings.get

Since next

[service, or disk read-only] The manifest's editable fields and values via the workspace service; without one, the file as read, read-only (only the service makes writes revisions).

TitleRead project settings
Mode
Token costabout 85 tokens (listed only when its toolset is enabled)
Toolsetrelease

Arguments

None.

Example

An MCP tools/call with the required arguments (placeholders in angle brackets).

{
  "name": "project.settings.get",
  "arguments": {}
}