cozyclay 2.1.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.md +12 -30
- package/bin/agent/agent-routes.mjs +40 -113
- package/bin/agent/agent-runner.mjs +9 -10
- package/bin/agent/cliproxy-provider.mjs +135 -0
- package/bin/agent/credential-store.mjs +30 -7
- package/bin/agent/pi-tools.mjs +4 -1
- package/bin/agent/provider-keys.mjs +32 -0
- package/bin/agent/provider-login.mjs +110 -0
- package/bin/agent/provider-routes.mjs +99 -0
- package/bin/agent/providers.mjs +19 -97
- package/bin/agent/script-tool.mjs +17 -4
- package/bin/agent/studio-motion-reference.mjs +23 -0
- package/bin/agent/studio-prompt.mjs +1 -1
- package/bin/agent/studio-rebase-text.mjs +32 -0
- package/bin/agent/studio-rebase.mjs +26 -39
- package/bin/agent/studio-tools.mjs +9 -28
- package/bin/agent/tool-arguments.mjs +49 -0
- package/bin/agent/turn-frames.mjs +66 -0
- package/bin/codex-auth.mjs +9 -2
- package/bin/cozyclay.mjs +10 -116
- package/bin/live/cli.mjs +3 -3
- package/bin/mcp-runtime.mjs +2 -12
- package/bin/package-signature.mjs +0 -4
- package/dist/app/index.html +7 -6
- package/dist/assets/EXRLoader-CvVIvGVE.js +1 -0
- package/dist/assets/analytics-C9sUnndd.js +1 -0
- package/dist/assets/app-CCh--1Hc.js +5087 -0
- package/dist/assets/app-f-fkV5uP.css +1 -0
- package/dist/assets/compile-worker-CkxiD6lH.js +5 -0
- package/dist/assets/fflate.module-KbGj5-H6.js +5 -0
- package/dist/assets/{first-shot-handoff-msLI71g1.js → first-shot-handoff-CC4xe4HM.js} +1 -1
- package/dist/assets/{landing-ChUvB_zL.js → landing-DjHD8u7k.js} +1 -1
- package/dist/assets/scene-asset-sync-Hx_FzdOH.js +20 -0
- package/dist/assets/scene-asset-sync-_S8NQl5B.css +1 -0
- package/dist/assets/workflow-C4yKH1p4.js +179 -0
- package/dist/cozyclay-package.json +1 -1
- package/dist/index.html +3 -3
- package/dist/sw.js +3 -6
- package/dist/workflow/index.html +5 -4
- package/mcp/LIVE-PROTOCOL.md +7 -47
- package/mcp/README.md +16 -26
- package/mcp/live-hub.mjs +6 -10
- package/mcp/package.json +1 -3
- package/mcp/tool-handlers.mjs +4 -168
- package/package.json +3 -22
- package/src/App.jsx +150 -2624
- package/src/agent-progress.js +79 -0
- package/src/agent-turn-mark.js +30 -0
- package/src/analytics.js +1 -19
- package/src/app-context.js +5 -0
- package/src/app-stage.jsx +2 -34
- package/src/asset-pane.jsx +6 -5
- package/src/camera-block.js +21 -0
- package/src/camera-direction.js +120 -0
- package/src/character-kind.js +3 -9
- package/src/command-bus.js +8 -6
- package/src/commands/cast.js +5 -34
- package/src/commands/elements/character.js +1 -1
- package/src/commands/elements/motion.js +1 -6
- package/src/commands/elements/object.js +6 -2
- package/src/commands/elements/shot.js +4 -1
- package/src/commands/elements.js +38 -14
- package/src/commands/index.js +3 -1
- package/src/commands/kits.js +37 -0
- package/src/commands/motion-timing.js +57 -0
- package/src/commands/motion.js +9 -152
- package/src/commands/motion3-compile.js +65 -0
- package/src/commands/motion3.js +207 -0
- package/src/commands/objects.js +6 -4
- package/src/commands/shot.js +49 -11
- package/src/commands/stage.js +14 -1
- package/src/commands/view.js +4 -1
- package/src/document-mirrors.js +42 -0
- package/src/document-store.js +4 -0
- package/src/domains/cast.js +19 -194
- package/src/domains/motion/motion-range-pin-rules.js +1 -1
- package/src/domains/motion/take-source.js +51 -0
- package/src/domains/motion.js +60 -1838
- package/src/domains/scenes.js +12 -55
- package/src/domains/shots.js +2 -2
- package/src/domains/stage.js +4 -2
- package/src/draft-ghost.js +46 -0
- package/src/draft-ghost.jsx +129 -0
- package/src/dualview.jsx +4 -3
- package/src/effects/EffectsLayer.jsx +112 -0
- package/src/effects/effect-meshes.js +232 -0
- package/src/effects/effect-record.js +103 -0
- package/src/effects/emitter.js +59 -0
- package/src/effects/simulate.js +261 -0
- package/src/effects/state.js +59 -0
- package/src/execution-telemetry.js +2 -3
- package/src/first-success-guide.jsx +5 -5
- package/src/ghost-set.js +257 -0
- package/src/held-object-edit.jsx +113 -0
- package/src/held-object-pose.js +175 -0
- package/src/hierarchy-model.js +1 -1
- package/src/hierarchy-panel.jsx +1 -1
- package/src/imported-mesh.jsx +103 -0
- package/src/kits/held.js +84 -0
- package/src/kits/index.js +70 -0
- package/src/kits/smoking.js +57 -0
- package/src/light-blockers.js +93 -0
- package/src/motion/beat-board-model.js +84 -0
- package/src/motion/beat-board.css +124 -0
- package/src/motion/beat-board.jsx +59 -0
- package/src/motion/center-of-mass.js +66 -0
- package/src/motion/fix-collisions.js +850 -0
- package/src/motion/physics-review.js +118 -0
- package/src/{ardy → motion}/physics-support.js +1 -76
- package/src/motion/rig-snapshot.js +22 -0
- package/src/motion/take-segments.jsx +140 -0
- package/src/{ardy → motion}/timeline-coordinates.js +0 -21
- package/src/{ardy → motion}/timeline.css +1 -2
- package/src/{ardy → motion}/timeline.jsx +42 -413
- package/src/motion/waypoints.js +76 -0
- package/src/motion3/beats.js +83 -0
- package/src/motion3/body.js +158 -0
- package/src/motion3/bones.js +47 -0
- package/src/motion3/carried.js +47 -0
- package/src/motion3/compile-job.js +75 -0
- package/src/motion3/compile-worker.js +10 -0
- package/src/motion3/compiler/anchors.js +105 -0
- package/src/motion3/compiler/arm-orient.js +128 -0
- package/src/motion3/compiler/channels.js +125 -0
- package/src/motion3/compiler/compile.js +205 -0
- package/src/motion3/compiler/gait-rhythm.js +97 -0
- package/src/motion3/compiler/grip.js +171 -0
- package/src/motion3/compiler/head-steady.js +48 -0
- package/src/motion3/compiler/hold.js +134 -0
- package/src/motion3/compiler/idle.js +113 -0
- package/src/motion3/compiler/limbs.js +170 -0
- package/src/motion3/compiler/math.js +72 -0
- package/src/motion3/compiler/pose.js +162 -0
- package/src/motion3/compiler/quat.js +49 -0
- package/src/motion3/compiler/skeleton.js +74 -0
- package/src/motion3/compiler/validate-common.js +32 -0
- package/src/motion3/compiler/validate-goals.js +118 -0
- package/src/motion3/compiler/validate-objects.js +143 -0
- package/src/motion3/compiler/validate-parts.js +116 -0
- package/src/motion3/compiler/validate.js +122 -0
- package/src/motion3/compiler/vocab.js +73 -0
- package/src/motion3/compiler/walk-pelvis.js +275 -0
- package/src/motion3/compiler/walk.js +207 -0
- package/src/motion3/compiler/wrist-clamp.js +32 -0
- package/src/motion3/delta.js +47 -0
- package/src/motion3/describe.js +174 -0
- package/src/motion3/docs.js +27 -0
- package/src/motion3/edit-carry.js +21 -0
- package/src/motion3/fix/ease.js +16 -0
- package/src/motion3/fix/ground.js +37 -0
- package/src/motion3/fix/index.js +52 -0
- package/src/motion3/fix/push.js +71 -0
- package/src/motion3/fix/reach.js +46 -0
- package/src/motion3/fix/retime.js +79 -0
- package/src/motion3/fix/self.js +211 -0
- package/src/motion3/fix/slide.js +70 -0
- package/src/motion3/fix/turn.js +51 -0
- package/src/motion3/follow.js +39 -0
- package/src/motion3/free-motion.js +173 -0
- package/src/motion3/grip-choice.js +130 -0
- package/src/motion3/hold-plan.js +157 -0
- package/src/motion3/json-patch.js +77 -0
- package/src/motion3/key-aim.js +105 -0
- package/src/motion3/key-edit.js +82 -0
- package/src/motion3/lenient.js +127 -0
- package/src/motion3/object-keys.js +236 -0
- package/src/motion3/object-pose.js +182 -0
- package/src/motion3/object-tracks.js +12 -0
- package/src/motion3/pipeline.js +102 -0
- package/src/motion3/playback.js +51 -0
- package/src/motion3/probes.js +91 -0
- package/src/motion3/qa/body-checks.js +34 -0
- package/src/motion3/qa/check-names.js +14 -0
- package/src/motion3/qa/checks.js +121 -0
- package/src/motion3/qa/contact-checks.js +51 -0
- package/src/motion3/qa/explain.js +80 -0
- package/src/motion3/qa/fmt.js +5 -0
- package/src/motion3/qa/foot-checks.js +72 -0
- package/src/motion3/qa/geometry.js +77 -0
- package/src/motion3/qa/goals.js +191 -0
- package/src/motion3/qa/ground.js +60 -0
- package/src/motion3/qa/hints-contact.js +179 -0
- package/src/motion3/qa/hints-goal.js +160 -0
- package/src/motion3/qa/hints-knee.js +24 -0
- package/src/motion3/qa/hints-motion.js +209 -0
- package/src/motion3/qa/hints-object.js +91 -0
- package/src/motion3/qa/index.js +42 -0
- package/src/motion3/qa/key-checks.js +82 -0
- package/src/motion3/qa/near.js +96 -0
- package/src/motion3/qa/object-checks.js +135 -0
- package/src/motion3/qa/patch.js +161 -0
- package/src/motion3/qa/severity.js +38 -0
- package/src/motion3/qa/spec-checks.js +65 -0
- package/src/motion3/qa/style.js +218 -0
- package/src/motion3/qa/wrist-checks.js +69 -0
- package/src/motion3/qa/wrist-obs.js +60 -0
- package/src/motion3/refs.js +120 -0
- package/src/motion3/repair-tune.js +121 -0
- package/src/motion3/repair.js +83 -0
- package/src/motion3/report.js +67 -0
- package/src/motion3/rigs/index.js +14 -0
- package/src/motion3/rigs/x-bot-tpose-body.json +1 -0
- package/src/motion3/rigs/x-bot-tpose.json +1 -0
- package/src/motion3/rigs/y-bot-tpose-body.json +1 -0
- package/src/motion3/rigs/y-bot-tpose.json +1 -0
- package/src/motion3/scene.js +60 -0
- package/src/motion3/schema/brief.js +89 -0
- package/src/motion3/schema/fields.js +44 -0
- package/src/motion3/schema/spec-examples.js +46 -0
- package/src/motion3/schema/topics.js +111 -0
- package/src/motion3/schema/types.js +147 -0
- package/src/motion3/search.js +117 -0
- package/src/motion3/second-hand.js +112 -0
- package/src/motion3/skills/basic.js +82 -0
- package/src/motion3/skills/book.js +76 -0
- package/src/motion3/skills/car.js +145 -0
- package/src/motion3/skills/frames-auto.js +29 -0
- package/src/motion3/skills/index.js +83 -0
- package/src/motion3/skills/info.js +65 -0
- package/src/motion3/skills/smoke-kit.js +109 -0
- package/src/motion3/skills/smoke.js +160 -0
- package/src/motion3/spec-store.js +59 -0
- package/src/motion3/take-edit.js +155 -0
- package/src/motion3/take.js +63 -0
- package/src/motion3/timeline.js +127 -0
- package/src/motion3/views.js +121 -0
- package/src/motion3/walk-plan.js +119 -0
- package/src/object-catalog.jsx +7 -1
- package/src/object-colors.js +98 -0
- package/src/object-gizmo-parts.js +115 -0
- package/src/object-gizmo.jsx +37 -122
- package/src/object-glow.js +139 -0
- package/src/object-hidden.js +33 -0
- package/src/object-look.js +196 -0
- package/src/object-size.js +10 -0
- package/src/object-travel.js +71 -6
- package/src/panels/CameraPanel.jsx +7 -7
- package/src/panels/HdrEnvironmentControls.jsx +59 -0
- package/src/panels/LightPanel.jsx +25 -4
- package/src/panels/ObjectLookPanel.jsx +88 -0
- package/src/panels/PosePanel.jsx +2 -17
- package/src/panels/RigControlPanel.jsx +5 -53
- package/src/panels/SubjectBox.jsx +4 -1
- package/src/panels/details.css +14 -0
- package/src/posestudio.jsx +4 -27
- package/src/project-browser.jsx +3 -4
- package/src/project-resources.js +18 -31
- package/src/project.js +13 -104
- package/src/props.jsx +25 -280
- package/src/rail-dot-drag.js +23 -0
- package/src/render-passes.js +10 -0
- package/src/resource-status.jsx +1 -0
- package/src/result-modal.jsx +4 -19
- package/src/room.jsx +20 -12
- package/src/scene-assets.js +8 -6
- package/src/scene-light-place.js +72 -0
- package/src/scene-lights.jsx +148 -0
- package/src/scene-objects.js +31 -139
- package/src/scenes.js +15 -105
- package/src/semantic-edit.js +2 -5
- package/src/set-pieces.jsx +183 -0
- package/src/settings-menu.jsx +3 -11
- package/src/shell/BottomDock.jsx +9 -51
- package/src/shell/DetailsSlot.jsx +16 -200
- package/src/shell/GhostsMenuGroup.jsx +74 -0
- package/src/shell/LibrarySlot.jsx +1 -3
- package/src/shell/MenuBar.jsx +3 -3
- package/src/shell/PreferencesDialog.jsx +15 -264
- package/src/shell/PreferencesSlot.jsx +2 -8
- package/src/shell/TopBar.jsx +5 -84
- package/src/shell/ViewportToolbar.jsx +10 -70
- package/src/shell/agent-glass.css +19 -6
- package/src/shell/details-selection.js +42 -0
- package/src/shell/ghosts-menu.css +22 -0
- package/src/shell/glass-regions.css +29 -3
- package/src/shell/preferences.css +6 -1
- package/src/shot-authoring.js +4 -7
- package/src/soft-shadows.js +37 -0
- package/src/stage-attach-frames.js +12 -12
- package/src/stage-canvas-rigs.jsx +3 -3
- package/src/stage-capture.jsx +42 -8
- package/src/stage-characters.jsx +22 -216
- package/src/stage-editor-gizmos.jsx +6 -6
- package/src/stage-environment.js +93 -0
- package/src/stage-hdr-builtins.js +107 -0
- package/src/stage-hdr-image.js +116 -0
- package/src/stage-hdr-library.js +70 -0
- package/src/stage-hdr-map.js +94 -0
- package/src/stage-hdr.js +130 -0
- package/src/stage-lighting.js +149 -0
- package/src/stage-occlusion.js +210 -0
- package/src/stage-sky.jsx +159 -0
- package/src/stage-startup-defaults.js +5 -9
- package/src/studio-actions.js +12 -14
- package/src/studio-agent-commands.js +19 -16
- package/src/studio-agent-motion.js +9 -9
- package/src/studio-agent-protocol.js +41 -71
- package/src/studio-app-binding.js +25 -45
- package/src/studio-asset-list.js +17 -0
- package/src/studio-contact-sheet.js +37 -5
- package/src/studio-elements.js +27 -7
- package/src/studio-entity-bounds.js +18 -0
- package/src/studio-error-codes.js +8 -0
- package/src/studio-export-framing.js +152 -0
- package/src/studio-lighting-check.js +103 -0
- package/src/studio-motion-visual.js +150 -0
- package/src/studio-schema-errors.js +80 -0
- package/src/studio-support-gap.js +74 -0
- package/src/styles.css +1 -19
- package/src/timeline-defaults.js +5 -0
- package/src/timeline-extent.js +8 -20
- package/src/tutorial-walk.js +17 -0
- package/src/ui-scrub.js +1 -1
- package/src/use-shot-camera-tracks.js +12 -0
- package/src/view-ghosts.js +97 -0
- package/src/view-ghosts.jsx +49 -0
- package/src/workflow/AgentPanel.jsx +47 -166
- package/src/workflow/AgentProgressCard.jsx +107 -0
- package/src/workflow/AgentReplyText.jsx +37 -0
- package/src/workflow/AgentTurnSteps.jsx +84 -0
- package/src/workflow/LoginPanel.jsx +140 -0
- package/src/workflow/WorkflowBuilder.jsx +7 -23
- package/src/workflow/agent-client.js +54 -51
- package/src/workflow/agent-panel.css +71 -1
- package/src/workflow/agent-progress-card.css +167 -0
- package/src/workflow/agent-progress-view.js +47 -0
- package/src/workflow/agent-turn-steps.css +113 -0
- package/src/workflow/agent-turn.js +191 -0
- package/src/workflow/login-client.js +34 -0
- package/src/workflow/motion-input.js +18 -31
- package/src/workflow/node-schema.js +1 -1
- package/src/workflow/reply-markdown.js +69 -0
- package/src/workflow/scene-asset-sync.js +8 -8
- package/tools/agent-session-stats.mjs +61 -0
- package/tools/dev-full.mjs +5 -56
- package/tools/eslint-baseline.json +12 -13
- package/tools/knip-baseline.json +0 -179
- package/tools/loc-baseline.json +31 -81
- package/tools/motion3/extract-body.mjs +103 -0
- package/tools/motion3/extract-rig.mjs +85 -0
- package/tools/process-supervisor.mjs +0 -88
- package/tools/run-tests.mjs +8 -124
- package/bin/agent/motion-runtime.mjs +0 -76
- package/dist/ardy/cskel27-rest.json +0 -557
- package/dist/assets/analytics-C9pMpW7s.js +0 -1
- package/dist/assets/app-B_2XB9rw.css +0 -1
- package/dist/assets/app-DAuvKPP8.js +0 -4920
- package/dist/assets/config-Bx7pYsD9.js +0 -1
- package/dist/assets/config-DeoFTYzb.css +0 -1
- package/dist/assets/demo-CvKuBgy5.js +0 -1
- package/dist/assets/scene-asset-sync-DKkpjKBV.js +0 -19
- package/dist/assets/scene-asset-sync-DjJ_cJ2R.css +0 -1
- package/dist/assets/ticket-BPk2Ni95.js +0 -1
- package/dist/assets/workflow-jJRBR94Z.js +0 -179
- package/dist/demo/walk-then-stop.npz +0 -0
- package/mcp/ardy-prompts.mjs +0 -218
- package/src/ardy/auto-fix-panel.css +0 -108
- package/src/ardy/auto-physics.js +0 -1194
- package/src/ardy/client.js +0 -153
- package/src/ardy/convert.js +0 -313
- package/src/ardy/cskel27-neutral.js +0 -39
- package/src/ardy/cskel27.js +0 -77
- package/src/ardy/export.js +0 -165
- package/src/ardy/fix-collisions.js +0 -2257
- package/src/ardy/foot-lock.js +0 -230
- package/src/ardy/motion-calibration.js +0 -118
- package/src/ardy/motion-edit.js +0 -213
- package/src/ardy/motion-url.js +0 -55
- package/src/ardy/mp4-duration.js +0 -102
- package/src/ardy/npz.js +0 -595
- package/src/ardy/physics-panel.css +0 -21
- package/src/ardy/physics-panel.jsx +0 -89
- package/src/ardy/physics-refine.js +0 -111
- package/src/ardy/physics-review.js +0 -567
- package/src/ardy/physics-temporal.js +0 -54
- package/src/ardy/platform-fit-panel.css +0 -64
- package/src/ardy/platform-fit-panel.jsx +0 -41
- package/src/ardy/platform-fit.js +0 -326
- package/src/ardy/playback.js +0 -711
- package/src/ardy/pose-pin.js +0 -97
- package/src/ardy/prompt-clips.js +0 -30
- package/src/ardy/retime.js +0 -211
- package/src/ardy/root-drop.js +0 -369
- package/src/ardy/timeline-resize.js +0 -13
- package/src/ardy/to-cskel27.js +0 -225
- package/src/ardy/trim.js +0 -33
- package/src/ardy/waypoints.js +0 -369
- package/src/ardy-bridge-contract.js +0 -281
- package/src/domains/motion/motion-video-capture.js +0 -664
- package/src/i2v-motion-client.js +0 -77
- package/src/i2v-motion-studio.jsx +0 -180
- package/src/line-edit.js +0 -1348
- package/src/motion/generation.js +0 -105
- package/src/motion-readiness-ui.jsx +0 -67
- package/src/motion-readiness.js +0 -40
- package/src/motion-resources.js +0 -177
- package/src/motion-store.js +0 -65
- package/src/motion-trail.js +0 -601
- package/src/multimodel-ingest.js +0 -394
- package/src/panels/PromptBlocksPanel.jsx +0 -444
- package/src/panels/VideoCapturePanel.jsx +0 -181
- package/src/pose-extract/browser.js +0 -42
- package/src/pose-extract/detector.js +0 -100
- package/src/pose-extract/fit.js +0 -227
- package/src/pose-extract/image-frame.js +0 -51
- package/src/pose-extract/index.js +0 -58
- package/src/pose-extract/keyframes.js +0 -74
- package/src/pose-extract/landmarks.js +0 -162
- package/src/pose-extract/mirror.js +0 -153
- package/src/pose-extract/take.js +0 -131
- package/src/pose-extract/video-frames.js +0 -91
- package/src/take-recipe.js +0 -165
- package/src/trail-key-conflicts.js +0 -39
- package/src/trail-pick.js +0 -59
- package/src/use-i2v-capture-modal.js +0 -15
- package/tools/ardy/BRIDGE.md +0 -37
- package/tools/ardy/GVHMR-NPZ.md +0 -68
- package/tools/ardy/README.md +0 -124
- package/tools/ardy/__pycache__/cclay_gvhmr_worker.cpython-313.pyc +0 -0
- package/tools/ardy/artifacts.mjs +0 -34
- package/tools/ardy/bridge.mjs +0 -1732
- package/tools/ardy/bvh-cskel27.mjs +0 -1265
- package/tools/ardy/cclay_constrained_generate.py +0 -561
- package/tools/ardy/cclay_gvhmr_worker.py +0 -264
- package/tools/ardy/cclay_motion_edit.py +0 -510
- package/tools/ardy/cclay_sequence_generate.py +0 -705
- package/tools/ardy/cclay_worker.py +0 -304
- package/tools/ardy/dump-npz.py +0 -205
- package/tools/ardy/extract-rest.mjs +0 -299
- package/tools/ardy/extract.mjs +0 -507
- package/tools/ardy/footage.mjs +0 -467
- package/tools/ardy/gvhmr-floor.mjs +0 -102
- package/tools/ardy/gvhmr-to-cskel27.mjs +0 -21
- package/tools/ardy/gvhmr_fastpath.py +0 -168
- package/tools/ardy/gvhmr_trajectory.py +0 -240
- package/tools/ardy/merge-text-encoder.py +0 -160
- package/tools/ardy/mocap-metrics.mjs +0 -200
- package/tools/ardy/mocap-quality-gate.mjs +0 -110
- package/tools/ardy/motion-stabilize.mjs +0 -348
- package/tools/ardy/npz.mjs +0 -414
- package/tools/ardy/pose-to-npz.mjs +0 -106
- package/tools/ardy/prompt-limits.mjs +0 -5
- package/tools/ardy/run-edit-on-box.sh +0 -73
- package/tools/ardy/run-local.mjs +0 -233
- package/tools/ardy/run-on-box.sh +0 -593
- package/tools/ardy/run-sequence-on-box.sh +0 -177
- package/tools/ardy/runners/gvhmr-worker.mjs +0 -206
- package/tools/ardy/runners/index.mjs +0 -18
- package/tools/ardy/runners/local.mjs +0 -455
- package/tools/ardy/runners/proc.mjs +0 -125
- package/tools/ardy/runners/remote.mjs +0 -252
- package/tools/ardy/setup-local.mjs +0 -189
- package/tools/ardy/setup-text-encoder-on-box.sh +0 -93
- package/tools/ardy/setup-text-encoder.py +0 -306
- package/tools/ardy/smpl-cskel27.mjs +0 -178
- package/tools/ardy/visual-qa.mjs +0 -196
- package/tools/ardy/vq-car.mjs +0 -52
- package/tools/bench/EXP3.md +0 -61
- package/tools/bench/cclay_bench_extract_incam.py +0 -125
- package/tools/bench/cclay_bench_extract_obs.py +0 -204
- package/tools/bench/cclay_bench_runner.py +0 -42
- package/tools/bench/cube-contact.mjs +0 -162
- package/tools/bench/exp3.mjs +0 -152
- package/tools/bench/extract-bench-lib.mjs +0 -216
- package/tools/bench/extract-bench.mjs +0 -302
- package/tools/bench/fal-generate.mjs +0 -88
- package/tools/bench/fit/README.md +0 -189
- package/tools/bench/fit/camera.mjs +0 -59
- package/tools/bench/fit/contact.mjs +0 -419
- package/tools/bench/fit/footlock.mjs +0 -234
- package/tools/bench/fit/motion.mjs +0 -85
- package/tools/bench/fit/pin.mjs +0 -27
- package/tools/bench/fit/remote.mjs +0 -105
- package/tools/bench/fit-bench.mjs +0 -126
- package/tools/bench/fit-sanity.mjs +0 -45
- package/tools/bench/metrics.mjs +0 -313
- package/tools/bench/obs/depth.mjs +0 -258
- package/tools/bench/obs/extrinsics.mjs +0 -175
- package/tools/bench/obs/fit_mannequin_betas.py +0 -340
- package/tools/bench/obs/ground.mjs +0 -294
- package/tools/bench/obs/heading.mjs +0 -151
- package/tools/bench/obs/ladder.mjs +0 -555
- package/tools/bench/obs/mannequin-betas.json +0 -124
- package/tools/bench/obs/remote.mjs +0 -83
- package/tools/bench/obs/rest_joints.py +0 -52
- package/tools/bench/obs/ybot-targets.mjs +0 -49
- package/tools/bench/obs-bench.mjs +0 -520
- package/tools/bench/score.mjs +0 -343
- package/tools/bench/summarize.mjs +0 -86
- package/tools/demo-worker/README.md +0 -137
- package/tools/demo-worker/api-client.mjs +0 -233
- package/tools/demo-worker/generate.mjs +0 -301
- package/tools/demo-worker/index.mjs +0 -466
- package/tools/demo-worker/sign-core.mjs +0 -112
- package/tools/demo-worker/sign.mjs +0 -161
- package/tools/gt-render/browser.mjs +0 -182
- package/tools/gt-render/camera-math.mjs +0 -276
- package/tools/gt-render/page.mjs +0 -267
- package/tools/gt-render/render.mjs +0 -514
- package/tools/gt-render/scene-box.mjs +0 -31
- package/tools/gt-render/take-transform.mjs +0 -87
- package/tools/kimodo/compare-seam.mjs +0 -108
- package/tools/kimodo/constraints.mjs +0 -244
- package/tools/kimodo/edit.mjs +0 -259
- package/tools/kimodo/effector-constraints.mjs +0 -200
- package/tools/kimodo/generate.mjs +0 -646
- package/tools/kimodo/local-output.mjs +0 -265
- package/tools/kimodo/measure-pose.mjs +0 -65
- package/tools/kimodo/measure-preserve.mjs +0 -899
- package/tools/kimodo/measure-waypoints.mjs +0 -55
- package/tools/kimodo/mlx-generate.py +0 -111
- package/tools/kimodo/pose-constraints.mjs +0 -248
- package/tools/kimodo/preserve-mask.mjs +0 -543
- package/tools/kimodo/read-npz.mjs +0 -189
- package/tools/kimodo/run-edit-on-box.mjs +0 -155
- package/tools/kimodo/run-sequence-on-box.mjs +0 -178
- package/tools/kimodo/runner.mjs +0 -284
- package/tools/kimodo/seam-batch.mjs +0 -77
- package/tools/kimodo/setup-local.mjs +0 -30
- package/tools/kimodo/setup-on-box.sh +0 -339
- package/tools/kimodo/soma77-to-cskel27.mjs +0 -305
- package/tools/morphgs/assets/gen_truth.py +0 -39
- package/tools/morphgs/assets/mesh_ori_rig.txt +0 -27
- package/tools/morphgs/assets/playback-check.mjs +0 -30
- package/tools/morphgs/demo-gate.sh +0 -26
- package/tools/morphgs/fbx2morphgs.mjs +0 -68
- package/tools/morphgs/morphgs-to-cskel27.mjs +0 -105
- package/tools/morphgs/patches/preprocess_src-none-mode.patch +0 -76
- package/tools/morphgs/setup-on-cluster.sh +0 -126
- package/tools/projflow/driver.py +0 -1069
- package/tools/projflow/generate.mjs +0 -805
- package/tools/projflow/hml22-to-cskel27.mjs +0 -735
- package/tools/projflow/line-edit-job.mjs +0 -547
- package/tools/projflow/replay.mjs +0 -452
- package/tools/projflow/runner.mjs +0 -269
- package/tools/projflow/service.mjs +0 -742
- package/tools/track/DESIGN.md +0 -513
- package/tools/track/backfill-provenance.mjs +0 -116
- package/tools/track/budget.mjs +0 -8
- package/tools/track/check-rig.mjs +0 -209
- package/tools/track/diagnostics.schema.json +0 -60
- package/tools/track/export-rig.mjs +0 -256
- package/tools/track/fallback.mjs +0 -7
- package/tools/track/fk-parity-fixture.mjs +0 -161
- package/tools/track/gate.mjs +0 -349
- package/tools/track/masks.mjs +0 -318
- package/tools/track/metrics.mjs +0 -201
- package/tools/track/publish-obs.mjs +0 -108
- package/tools/track/py/check_env.py +0 -61
- package/tools/track/py/eval_lr.py +0 -229
- package/tools/track/py/lr_viterbi.py +0 -294
- package/tools/track/py/masks.py +0 -405
- package/tools/track/py/objective.py +0 -382
- package/tools/track/py/rig.py +0 -508
- package/tools/track/py/scene.py +0 -326
- package/tools/track/py/test_joint_indices.py +0 -123
- package/tools/track/py/test_lr_viterbi.py +0 -195
- package/tools/track/py/test_masks.py +0 -229
- package/tools/track/py/test_rig.py +0 -288
- package/tools/track/py/test_scene.py +0 -354
- package/tools/track/py/test_track.py +0 -328
- package/tools/track/py/track.py +0 -411
- package/tools/track/remote.mjs +0 -140
- package/tools/track/rig-dump.mjs +0 -227
- package/tools/track/run-box-tests.mjs +0 -14
- package/tools/track/run-box.mjs +0 -168
- package/tools/track/setup-box.sh +0 -59
- package/tools/track/study-2d.mjs +0 -728
- /package/src/{ardy → motion}/collision-blockers.js +0 -0
- /package/src/{ardy → motion}/ground.js +0 -0
- /package/src/{ardy → motion}/ik-drag.js +0 -0
- /package/src/{ardy → motion}/ik-key-json.js +0 -0
- /package/src/{ardy → motion}/ik.js +0 -0
- /package/src/{ardy → motion}/physics-surface.js +0 -0
- /package/src/{ardy → motion}/playback-clock.js +0 -0
- /package/src/{ardy → motion}/range-pin.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer legacy{.workflow-app,.app{--agent-width-default:360px;--agent-width-min:300px;--agent-width-max:560px;--agent-rail-width:36px;--agent-drawer-top:58px;--agent-bg:#14161d;--agent-bg-raised:#1a1d26;--agent-bg-sunken:#11141b;--agent-bubble:#262c44;--agent-border:#292d38;--agent-border-strong:#353a4a;--agent-border-focus:#707dce;--agent-text:#edf0fb;--agent-text-muted:#9aa2b8;--agent-text-dim:#737b92;--agent-accent:#8994ff;--agent-accent-deep:#303b71;--agent-accent-edge:#4c5aab;--agent-accent-text:#e6e9ff;--agent-ok:#4dcda4;--agent-warn:#efb064;--agent-alert:#ef759d;--agent-radius-sm:5px;--agent-radius-md:6px;--agent-radius-lg:9px;--agent-radius-pill:999px;--agent-space-1:4px;--agent-space-2:6px;--agent-space-3:8px;--agent-space-4:11px;--agent-space-5:14px;--agent-space-6:18px;--agent-font-xs:9px;--agent-font-sm:10px;--agent-font-md:11px;--agent-font-lg:12px;--agent-font-xl:14px;--agent-dot:6px;--agent-thumb:56px;--agent-shadow:0 12px 34px #0006;--agent-motion:.14s ease;--agent-track:#242836;--agent-warn-edge:#6a5a34;--agent-warn-bg:#241f16;--agent-warn-text:#f0dcb4;--agent-alert-edge:#6d3a52;--agent-alert-bg:#2a1c26;--agent-alert-text:#f3c7d8;--agent-ok-deep:#16302a}.app{--agent-drawer-top:48px}.app .agent-panel.collapsed{display:none}.agent-panel,.agent-panel *,.agent-panel :before,.agent-panel :after{box-sizing:border-box}.agent-panel.embedded{border-left:0;flex:1;width:100%;min-height:0}.agent-panel[hidden]{display:none}.agent-panel{min-height:0;width:var(--agent-width-default);border-left:1px solid var(--agent-border);background:var(--agent-bg);color:var(--agent-text);font-size:var(--agent-font-lg);flex-direction:column;flex:none;display:flex;position:relative}.agent-panel.collapsed{width:var(--agent-rail-width);padding:var(--agent-space-4) 0;align-items:center;gap:var(--agent-space-4);background:var(--agent-bg-raised)}.agent-resize{cursor:col-resize;z-index:3;background:0 0;border:0;width:7px;height:100%;padding:0;position:absolute;top:0;left:-3px}.agent-resize:after{content:"";width:1px;height:100%;transition:background var(--agent-motion);background:0 0;position:absolute;top:0;left:3px}.agent-resize:hover:after,.agent-resize:focus-visible:after,.agent-panel.resizing .agent-resize:after{background:var(--agent-accent)}.agent-rail-toggle{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);color:#c8ccdb;cursor:pointer;width:26px;height:26px;font:inherit;background:#20232d;place-items:center;display:grid}.agent-rail-toggle:hover{background:#2b3040;border-color:#606b9a}.agent-rail-label{writing-mode:vertical-rl;color:var(--agent-text-dim);font-size:var(--agent-font-sm);letter-spacing:.14em;text-transform:uppercase}.agent-status-dot{width:var(--agent-dot);height:var(--agent-dot);border-radius:var(--agent-radius-pill);background:var(--agent-text-dim);flex:none}.agent-status-dot.ok{background:var(--agent-ok);box-shadow:0 0 8px var(--agent-ok)}.agent-status-dot.busy{background:var(--agent-accent);box-shadow:0 0 8px var(--agent-accent)}.agent-status-dot.warn{background:var(--agent-warn);box-shadow:0 0 8px var(--agent-warn)}.agent-status-dot.alert{background:var(--agent-alert);box-shadow:0 0 8px var(--agent-alert)}.agent-header{align-items:center;gap:var(--agent-space-2);height:58px;padding:0 var(--agent-space-4);border-bottom:1px solid var(--agent-border);background:var(--agent-chrome,#171921);flex:none;display:flex}.agent-title{font-size:var(--agent-font-xl);color:var(--agent-text-strong,#f5f7ff);margin:0;font-weight:700}.agent-header-spacer{flex:1}.agent-icon-button,.agent-ghost-button{align-items:center;gap:var(--agent-space-1);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);background:var(--agent-panel,#20232d);color:var(--agent-text-soft,#c8ccdb);padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-md);cursor:pointer;display:flex}.agent-icon-button{padding:var(--agent-space-2)}.agent-icon-button:hover,.agent-ghost-button:hover{border-color:var(--agent-border-strong,#606b9a);background:var(--agent-hover,#2b3040);color:var(--agent-text-strong,#f5f7ff)}.agent-ghost-button[disabled],.agent-icon-button[disabled]{opacity:.45;cursor:not-allowed}.agent-overflow{position:relative}.agent-menu{top:calc(100% + var(--agent-space-2));z-index:6;min-width:148px;padding:var(--agent-space-1);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);background:var(--agent-bg-raised);box-shadow:var(--agent-shadow);flex-direction:column;display:flex;position:absolute;right:0}.agent-menu button{border-radius:var(--agent-radius-sm);color:var(--agent-text-soft,#c8ccdb);padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-md);text-align:left;cursor:pointer;background:0 0;border:0}.agent-menu button:hover{background:var(--agent-hover,#2b3040);color:var(--agent-text-strong,#f5f7ff)}.agent-account{align-items:center;gap:var(--agent-space-2);padding:var(--agent-space-3) var(--agent-space-4);border-bottom:1px solid var(--agent-border);background:var(--agent-bg-sunken);color:var(--agent-text-muted);font-size:var(--agent-font-md);flex:none;display:flex}.agent-account-email{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.agent-plan-badge{padding:2px var(--agent-space-2);border:1px solid var(--agent-accent-edge);border-radius:var(--agent-radius-pill);color:var(--agent-text-strong,#cfd5ff);font-size:var(--agent-font-xs);letter-spacing:.06em;text-transform:uppercase;flex:none}.agent-account-reset{color:var(--agent-text-dim);font-size:var(--agent-font-sm);flex:none;margin-left:auto}.agent-keys{gap:var(--agent-space-3);max-height:70%;padding:var(--agent-space-4);border-bottom:1px solid var(--agent-border);background:var(--agent-bg-sunken);flex-direction:column;flex:none;display:flex;overflow-y:auto}.agent-keys-head{align-items:center;gap:var(--agent-space-2);display:flex}.agent-keys-title{color:var(--agent-text);font-size:var(--agent-font-lg);flex:1;margin:0;font-weight:600}.agent-keys-hint,.agent-keys-note{color:var(--agent-text-dim);font-size:var(--agent-font-sm);margin:0}.agent-keys-note.alert{color:var(--agent-alert)}.agent-key-row{gap:var(--agent-space-2);padding:var(--agent-space-3);border:1px solid var(--agent-border);border-radius:var(--agent-radius-md);background:var(--agent-bg-raised);flex-direction:column;display:flex}.agent-key-head{align-items:center;gap:var(--agent-space-2);display:flex}.agent-key-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--agent-text);font-size:var(--agent-font-md);flex:1;overflow:hidden}.agent-key-source{color:var(--agent-text-dim);font-size:var(--agent-font-xs);letter-spacing:.04em;flex:none}.agent-key-controls{align-items:center;gap:var(--agent-space-2);flex-wrap:wrap;display:flex}.agent-key-input{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-sm);background:var(--agent-bg-sunken);min-width:0;color:var(--agent-text);padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-md);outline:0;flex:120px}.agent-key-input:focus{border-color:var(--agent-border-focus)}.agent-key-input[disabled]{opacity:.55}.agent-key-save{border:1px solid var(--agent-accent-edge);border-radius:var(--agent-radius-md);background:var(--agent-accent-deep);color:var(--agent-accent-text);padding:var(--agent-space-2) var(--agent-space-4);font:inherit;font-size:var(--agent-font-md);cursor:pointer;flex:none}.agent-key-save[disabled],.agent-key-remove[disabled]{opacity:.45;cursor:default}.agent-key-error{color:var(--agent-alert);font-size:var(--agent-font-sm);margin:0}.agent-key-note{color:var(--agent-text-dim);font-size:var(--agent-font-sm);margin:0}.agent-login-group,.agent-login-flow,.agent-login-form,.agent-login-choices{gap:var(--agent-space-2);flex-direction:column;display:flex}.agent-login-ask{color:var(--agent-text);font-size:var(--agent-font-sm)}.agent-login-log{gap:var(--agent-space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.agent-login-log li{align-items:flex-start;gap:var(--agent-space-1);flex-direction:column;display:flex}.agent-login-code{margin-top:var(--agent-space-1);font-size:var(--agent-font-xl);letter-spacing:.12em;display:block}.agent-login-open{text-decoration:none;display:inline-block}.agent-key-endpoint-label{color:var(--agent-text-dim);font-size:var(--agent-font-xs);letter-spacing:.04em}.agent-transcript{gap:var(--agent-space-4);min-height:0;padding:var(--agent-space-5) var(--agent-space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.agent-row{gap:var(--agent-space-2);flex-direction:column;display:flex}.agent-row.user{align-items:flex-end}.agent-bubble{max-width:86%;padding:var(--agent-space-3) var(--agent-space-4);border:1px solid var(--agent-border-strong,#343b58);border-radius:var(--agent-radius-lg);background:var(--agent-bubble);color:var(--agent-text);font-size:var(--agent-font-lg);white-space:pre-wrap;word-break:break-word;line-height:1.5}.agent-assistant-text{color:var(--agent-text-soft,#dfe3f2);font-size:var(--agent-font-lg);white-space:pre-wrap;word-break:break-word;line-height:1.6}.agent-assistant-text>*{margin:0}.agent-assistant-text>*+*{margin-top:6px}.agent-assistant-text ul,.agent-assistant-text ol{white-space:normal;padding-left:18px}.agent-assistant-text li+li{margin-top:2px}.agent-assistant-text .agent-reply-heading{font-weight:600}.agent-assistant-text code{background:color-mix(in srgb, currentColor 10%, transparent);border-radius:3px;padding:0 3px;font:.92em ui-monospace,monospace}.agent-assistant-text pre{border-radius:var(--agent-radius-sm);background:color-mix(in srgb, currentColor 8%, transparent);white-space:pre;padding:6px 8px;overflow-x:auto}.agent-assistant-text pre code{background:0 0;padding:0}.agent-reply-table{white-space:normal;overflow-x:auto}.agent-reply-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.92em}.agent-reply-table th,.agent-reply-table td{border-bottom:1px solid color-mix(in srgb, currentColor 16%, transparent);text-align:left;vertical-align:top;padding:2px 10px 2px 0}.agent-reply-table th{font-weight:600}.agent-caret{width:6px;color:var(--agent-accent);margin-left:2px;animation:1s steps(2,start) infinite agent-blink;display:inline-block}@keyframes agent-blink{50%{opacity:0}}.agent-card{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-lg);background:var(--agent-panel,#20232d);overflow:hidden}.agent-tool-card summary{align-items:center;gap:var(--agent-space-3);padding:var(--agent-space-3) var(--agent-space-4);color:var(--agent-text-soft,#ccd1e2);font-size:var(--agent-font-md);cursor:pointer;list-style:none;display:flex}.agent-tool-card summary::-webkit-details-marker{display:none}.agent-tool-label{flex:1}.agent-tool-badge{color:#aeb7ff;border:1px solid #6975d8;border-radius:999px;padding:1px 5px;font-size:10px;line-height:1.2}.agent-tool-elapsed{color:var(--agent-text-dim);font:var(--agent-font-sm) ui-monospace, monospace}.agent-tool-detail{padding:var(--agent-space-3) var(--agent-space-4);border-top:1px solid var(--agent-border,#2c3140);background:var(--agent-bg-sunken);color:var(--agent-text-muted,#98a0b8);font:var(--agent-font-sm) ui-monospace, monospace;white-space:pre-wrap;word-break:break-all;margin:0}.agent-card.failed{border-color:#6d3a52}.agent-error{gap:var(--agent-space-2);padding:var(--agent-space-3) var(--agent-space-4);color:#f3c7d8;font-size:var(--agent-font-md);background:#2a1c26;border-top:1px solid #6d3a52;flex-direction:column;display:flex}.agent-error-actions{gap:var(--agent-space-2);display:flex}.agent-image-card figure{margin:0}.agent-image-card img{background:var(--agent-bg-sunken);cursor:zoom-in;width:100%;height:auto;display:block}.agent-image-actions{gap:var(--agent-space-2);padding:var(--agent-space-3);border-top:1px solid var(--agent-border,#2c3140);flex-wrap:wrap;display:flex}.agent-image-actions button,.agent-image-actions a{align-items:center;gap:var(--agent-space-1);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-sm);background:var(--agent-hover,#292d39);color:var(--agent-text-soft,#ccd1e2);padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-sm);cursor:pointer;text-decoration:none;display:inline-flex}.agent-image-actions button.primary{border-color:var(--agent-accent-edge);background:var(--agent-accent-deep);color:var(--agent-text-strong,#e6e9ff)}.agent-image-actions button:hover,.agent-image-actions a:hover{border-color:var(--agent-border-strong,#606b9a)}.agent-placed{align-items:center;gap:var(--agent-space-2);padding:var(--agent-space-3);border-top:1px solid var(--agent-border,#2c3140);color:var(--agent-ok);font-size:var(--agent-font-md);display:flex}.agent-placed button{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-sm);background:var(--agent-hover,#292d39);color:var(--agent-text-soft,#ccd1e2);padding:var(--agent-space-1) var(--agent-space-3);font:inherit;font-size:var(--agent-font-sm);cursor:pointer;margin-left:auto}.agent-lightbox{z-index:40;cursor:zoom-out;background:#06070bd9;border:0;place-items:center;padding:5vh 5vw;display:grid;position:fixed;inset:0}.agent-lightbox img{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-lg);max-width:100%;max-height:90vh;box-shadow:var(--agent-shadow)}.agent-job-card,.agent-receipt-card,.agent-failure-card{gap:var(--agent-space-2);padding:var(--agent-space-3) var(--agent-space-4);font-size:var(--agent-font-md);flex-direction:column;display:flex}.agent-job-head,.agent-receipt-head,.agent-failure-head{align-items:center;gap:var(--agent-space-2);color:var(--agent-text-soft,#ccd1e2);display:flex}.agent-job-label{font-weight:600}.agent-job-badge{padding:1px var(--agent-space-2);border:1px solid var(--agent-warn-edge);border-radius:var(--agent-radius-pill);background:var(--agent-warn-bg);color:var(--agent-warn);font-size:var(--agent-font-xs);letter-spacing:.06em;text-transform:uppercase;flex:none}.agent-job-progress{color:var(--agent-text-dim);font:var(--agent-font-sm) ui-monospace, monospace;flex:none;margin-left:auto}.agent-job-phase,.agent-job-outcome,.agent-failure-message,.agent-failure-recovery{color:var(--agent-text-muted);word-break:break-word;margin:0;line-height:1.5}.agent-job-bar{height:var(--agent-space-1);border-radius:var(--agent-radius-pill);background:var(--agent-track);overflow:hidden}.agent-job-bar-fill{border-radius:inherit;background:var(--agent-accent);transform-origin:0;width:100%;height:100%;transition:transform var(--agent-motion);display:block}.agent-job-limits,.agent-receipt-notes{padding-left:var(--agent-space-5);color:var(--agent-text-dim);font-size:var(--agent-font-sm);margin:0;line-height:1.5}.agent-job-actions{align-items:center;gap:var(--agent-space-2);flex-wrap:wrap;display:flex}.agent-job-actions:empty{display:none}.agent-job-accept{border-color:var(--agent-warn-edge);background:var(--agent-warn-bg);color:var(--agent-warn-text)}.agent-job-accept:hover{border-color:var(--agent-warn);color:var(--agent-warn-text);background:#33291a}.agent-job-note{align-items:center;gap:var(--agent-space-1);color:var(--agent-text-dim);font-size:var(--agent-font-sm);display:inline-flex}.agent-job-note.alert{color:var(--agent-alert)}.agent-job-card[data-job-state=installed]{background:var(--agent-ok-deep);border-color:#2f5a4b}.agent-job-card[data-job-state=review_required]{border-color:var(--agent-warn-edge);background:var(--agent-warn-bg)}.agent-job-card[data-job-state=failed],.agent-job-card[data-job-state=stale_target],.agent-job-card[data-job-state=stale_environment]{border-color:#6d3a52}.agent-receipt-summary{word-break:break-word;line-height:1.5}.agent-supervisor-card{gap:var(--agent-space-2);padding:var(--agent-space-3) var(--agent-space-4);background:var(--agent-bg-sunken);color:var(--agent-text-muted);font-size:var(--agent-font-md);border-style:dashed;flex-direction:column;display:flex}.agent-supervisor-head{align-items:center;gap:var(--agent-space-2);display:flex}.agent-supervisor-toggle{margin-left:auto}.agent-supervisor-summary{word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.agent-supervisor-card[data-open=true] .agent-supervisor-summary{display:block}.agent-supervisor-badge.blocker{border-color:var(--agent-alert-edge);background:var(--agent-alert-bg);color:var(--agent-alert)}.agent-supervisor-fix{margin-top:var(--agent-space-1);font:var(--agent-font-sm) ui-monospace, monospace;white-space:pre-wrap;word-break:break-all;color:var(--agent-text-dim);display:block}.agent-supervisor-badge.note{border-color:var(--agent-border-strong);color:var(--agent-text-dim);background:0 0}.agent-failure-card{background:#2a1c26;border-color:#6d3a52}.agent-failure-code{color:var(--agent-alert);font:var(--agent-font-sm) ui-monospace, monospace;letter-spacing:.04em}.agent-image-error{padding:var(--agent-space-3);color:#f3c7d8;font-size:var(--agent-font-md);background:#2a1c26;border-top:1px solid #6d3a52;margin:0;line-height:1.45}.agent-state-card{gap:var(--agent-space-3);margin:var(--agent-space-6) var(--agent-space-4);padding:var(--agent-space-6) var(--agent-space-5);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-lg);background:var(--agent-bg-raised);text-align:center;flex-direction:column;display:flex}.agent-state-card h3{font-size:var(--agent-font-xl);color:var(--agent-text-strong,#f5f7ff);margin:0;font-weight:700}.agent-state-card p{color:var(--agent-text-dim);font-size:var(--agent-font-md);margin:0;line-height:1.55}.agent-state-card .agent-use-key{align-self:center}.agent-primary-button{border:1px solid var(--agent-accent-edge);border-radius:var(--agent-radius-md);background:var(--agent-accent-deep);color:var(--agent-text-strong,#e6e9ff);padding:var(--agent-space-3) var(--agent-space-5);font:inherit;font-size:var(--agent-font-lg);cursor:pointer;align-self:center}.agent-primary-button:hover{background:#37437f;border-color:#6b7ad4}.agent-primary-button[disabled]{opacity:.6;cursor:progress}.agent-spinner{border:2px solid #383e55;border-top-color:var(--agent-accent);border-radius:var(--agent-radius-pill);align-self:center;width:18px;height:18px;animation:.7s linear infinite agent-spin}@keyframes agent-spin{to{transform:rotate(360deg)}}.agent-paused{gap:var(--agent-space-3);padding:var(--agent-space-4);border-radius:var(--agent-radius-lg);color:#f0dcb4;font-size:var(--agent-font-md);background:#241f16;border:1px solid #6a5a34;flex-direction:column;display:flex}.agent-paused-head{align-items:center;gap:var(--agent-space-2);font-weight:600;display:flex}.agent-paused-countdown{font:var(--agent-font-md) ui-monospace, monospace;color:var(--agent-warn);margin-left:auto}.agent-paused-actions{gap:var(--agent-space-2);display:flex}.agent-paused-actions button{border-radius:var(--agent-radius-sm);color:#f3e3c1;padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-sm);cursor:pointer;background:#33291a;border:1px solid #6a5a34}.agent-paused-actions button:hover{border-color:var(--agent-warn)}.agent-suggestions{gap:var(--agent-space-2);margin-top:var(--agent-space-3);flex-direction:column;display:flex}.agent-chip{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-pill);background:var(--agent-panel,#20232d);color:#bcc2d4;padding:var(--agent-space-2) var(--agent-space-4);font:inherit;font-size:var(--agent-font-md);text-align:left;cursor:pointer}.agent-chip:hover{border-color:var(--agent-border-strong,#606b9a);background:var(--agent-hover,#2b3040);color:var(--agent-text-strong,#f5f7ff)}.agent-activity{align-items:center;gap:var(--agent-space-2);min-height:28px;padding:var(--agent-space-2) var(--agent-space-4);border-top:1px solid var(--agent-border);background:var(--agent-bg-raised);color:var(--agent-text-muted);font-size:var(--agent-font-md);flex:none;display:flex}.agent-activity+.agent-composer{border-top:0}.agent-activity-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.agent-activity-indicator{width:var(--agent-dot);height:var(--agent-dot);border-radius:var(--agent-radius-pill);background:var(--agent-text-dim);flex:none}.agent-activity-indicator.busy{background:var(--agent-accent);box-shadow:0 0 8px var(--agent-accent);animation:1.1s ease-in-out infinite agent-pulse}.agent-activity-indicator.ok{background:var(--agent-ok)}.agent-activity-indicator.warn{background:var(--agent-warn)}.agent-activity-indicator.alert{background:var(--agent-alert)}.agent-activity[data-agent-activity-kind=idle]{color:var(--agent-text-dim)}.agent-activity[data-agent-activity=done]{color:var(--agent-ok)}.agent-activity[data-agent-activity=failed],.agent-activity[data-agent-activity=no-model]{color:var(--agent-alert)}@keyframes agent-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}.agent-composer{gap:var(--agent-space-3);padding:var(--agent-space-4);border-top:1px solid var(--agent-border);background:var(--agent-bg-raised);flex-direction:column;flex:none;display:flex}.agent-composer textarea{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);background:var(--agent-bg-sunken);width:100%;height:68px;color:var(--agent-text);padding:var(--agent-space-3) var(--agent-space-4);font:inherit;font-size:var(--agent-font-lg);resize:none;outline:0;line-height:1.5}.agent-composer textarea:focus{border-color:var(--agent-border-focus)}.agent-composer textarea[disabled]{opacity:.55}.agent-attachments{gap:var(--agent-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.agent-attachment{width:var(--agent-thumb);height:var(--agent-thumb);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);background:var(--agent-bg-sunken);position:relative;overflow:hidden}.agent-attachment img{object-fit:cover;width:100%;height:100%;display:block}.agent-attachment-remove{top:var(--agent-space-1);right:var(--agent-space-1);width:var(--agent-space-5);height:var(--agent-space-5);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-pill);background:var(--agent-bg);color:var(--agent-text-muted);cursor:pointer;transition:color var(--agent-motion), border-color var(--agent-motion);justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.agent-attachment-remove:hover{border-color:var(--agent-alert);color:var(--agent-alert)}.agent-attachment-notice{color:var(--agent-warn);font-size:var(--agent-font-sm);margin:0}.agent-composer[data-agent-dropping=true]{box-shadow:inset 0 0 0 1px var(--agent-accent-edge);background:var(--agent-accent-deep)}.agent-bubble-attachments{justify-content:flex-end;gap:var(--agent-space-2);flex-wrap:wrap;max-width:86%;display:flex}.agent-bubble-attachments img{width:var(--agent-thumb);height:var(--agent-thumb);object-fit:cover;border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-md);background:var(--agent-bg-sunken);cursor:zoom-in}.agent-composer-controls{align-items:center;gap:var(--agent-space-2);display:flex}.agent-attach-chip{align-items:center;gap:var(--agent-space-2);border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-pill);background:var(--agent-panel,#20232d);color:#b6bcd0;padding:var(--agent-space-1) var(--agent-space-3);font:inherit;font-size:var(--agent-font-sm);cursor:pointer;display:flex}.agent-attach-chip[aria-pressed=true]{border-color:var(--agent-accent-edge);background:var(--agent-accent-deep);color:var(--agent-text-strong,#e6e9ff)}.agent-attach-thumb{background:linear-gradient(135deg,#2a2f52,#5b3550);border:1px solid #454d70;border-radius:3px;width:22px;height:14px}.agent-model-select{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-sm);background:var(--agent-bg-sunken);color:#e5e8f5;min-width:0;padding:var(--agent-space-2) var(--agent-space-3);font:inherit;font-size:var(--agent-font-md);outline:0;flex:1}.agent-model-select:focus{border-color:var(--agent-border-focus)}.agent-model-select optgroup{background:var(--agent-bg-sunken);color:var(--agent-text-muted);font-style:normal;font-weight:600}.agent-model-select option:disabled{color:var(--agent-text-dim)}.agent-model-roles{margin:var(--agent-space-1) 0 0;white-space:nowrap;text-overflow:ellipsis;color:var(--agent-text-dim);font-size:var(--agent-font-sm);overflow:hidden}.agent-composer-picks{margin-bottom:var(--agent-space-2)}.agent-effort-select{flex:none;width:auto;max-width:42%}.agent-composer-spacer{flex:1}.agent-send{border:1px solid var(--agent-accent-edge);border-radius:var(--agent-radius-md);background:var(--agent-accent-deep);color:var(--agent-text-strong,#e6e9ff);padding:var(--agent-space-2) var(--agent-space-5);font:inherit;font-size:var(--agent-font-md);cursor:pointer;flex:none}.agent-send.stop{color:#f8d5e3;background:#4a2536;border-color:#7a3f58}.agent-send[disabled]{opacity:.45;cursor:not-allowed}.agent-toast{padding:var(--agent-space-3) var(--agent-space-4);border-bottom:1px solid var(--agent-border);background:var(--agent-bg-sunken);color:var(--agent-text-muted);font-size:var(--agent-font-md);flex:none;line-height:1.4}.agent-toast.alert{border-bottom-color:var(--agent-alert-edge);background:var(--agent-alert-bg);color:var(--agent-alert-text)}.agent-footer-hint{padding:0 var(--agent-space-4) var(--agent-space-4);background:var(--agent-bg-raised);color:var(--agent-text-dim);font-size:var(--agent-font-xs);border-top:0;flex:none;margin:0;line-height:1.4}@media (width<=1100px){.agent-panel:not(.collapsed):not(.embedded){top:var(--agent-drawer-top);z-index:20;box-shadow:var(--agent-shadow);position:fixed;bottom:0;right:0}.agent-panel.collapsed:not(.embedded){top:var(--agent-drawer-top);z-index:20;position:fixed;bottom:0;right:0}.agent-resize{display:none}}}.agent-supervisor-toggle{font:inherit;border:1px solid var(--agent-border,#444);color:var(--agent-text-dim,#999);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:4px 8px;font-size:12px}.agent-supervisor-toggle.is-on{color:var(--agent-text,#ddd);border-color:var(--agent-border-focus,#6a9)}.agent-supervisor-toggle:focus-visible{outline:2px solid var(--agent-border-focus,#6a9);outline-offset:1px}.agent-progress-card{gap:var(--agent-space-3,6px);padding:var(--agent-space-3,6px) var(--agent-space-4,8px);border-color:var(--agent-accent-edge);flex-direction:column;display:flex}.agent-progress-head{align-items:center;gap:var(--agent-space-3,6px);display:flex}.agent-progress-title{color:var(--agent-text);font-size:var(--agent-font-lg);font-variant-numeric:tabular-nums;flex:1;font-weight:600}.agent-progress-chip{border-radius:var(--agent-radius-pill);font-size:var(--agent-font-sm);white-space:nowrap;border:1px solid;padding:1px 7px;line-height:1.4}.agent-progress-chip.installed{color:var(--agent-ok)}.agent-progress-chip.draft{color:var(--agent-warn)}.agent-progress-label{color:var(--agent-text-muted);font-size:var(--agent-font-md);overflow-wrap:anywhere;margin:0}.agent-progress-section{flex-direction:column;gap:4px;min-width:0;display:flex}.agent-progress-section h4{color:var(--agent-text-dim);font-size:var(--agent-font-sm);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:600}.agent-progress-trend{align-items:center;gap:var(--agent-space-3,6px);display:flex}.agent-progress-trend svg{flex:1;min-width:0;height:40px}.agent-progress-trend .base{stroke:var(--agent-border-strong);stroke-width:1px}.agent-progress-trend .line{fill:none;stroke:var(--agent-accent);stroke-width:1.6px;vector-effect:non-scaling-stroke}.agent-progress-trend .dot{fill:var(--agent-accent)}.agent-progress-trend .end.ok{fill:var(--agent-ok)}.agent-progress-trend .end.issue{fill:var(--agent-warn)}.agent-progress-trend-text{color:var(--agent-text);font-size:var(--agent-font-md);font-variant-numeric:tabular-nums;white-space:nowrap}.agent-progress-goals,.agent-progress-issues{font-size:var(--agent-font-md);flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.agent-progress-goals li{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:6px;display:grid}.agent-progress-mark{display:inline-flex}.agent-progress-mark.ok{color:var(--agent-ok)}.agent-progress-mark.miss{color:var(--agent-alert)}.agent-progress-goal-name{color:var(--agent-text);overflow-wrap:anywhere}.agent-progress-goal-value{color:var(--agent-text);font-variant-numeric:tabular-nums;white-space:nowrap}.agent-progress-goal-value .need{color:var(--agent-text-dim)}.agent-progress-issues li{color:var(--agent-text-muted);overflow-wrap:anywhere}.agent-progress-issues .kind{color:var(--agent-warn);font-weight:600}.agent-progress-issues .meta{color:var(--agent-text-dim);font-variant-numeric:tabular-nums}.agent-progress-sheets{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:4px;display:grid}.agent-progress-sheet{border:1px solid var(--agent-border-strong);border-radius:var(--agent-radius-sm);background:var(--agent-bg-sunken);cursor:zoom-in;padding:0;overflow:hidden}.agent-progress-sheet:hover{border-color:var(--agent-accent-edge)}.agent-progress-sheet:focus-visible{outline:2px solid var(--agent-border-focus);outline-offset:1px}.agent-progress-sheet img{object-fit:cover;width:100%;height:56px;display:block}.agent-progress-viewer{z-index:1000;cursor:zoom-out;background:#0c0e14db;border:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px;display:flex;position:fixed;inset:0}.agent-progress-viewer img{object-fit:contain;background:#f4f5f7;border-radius:6px;max-width:100%;max-height:calc(100% - 40px);box-shadow:0 12px 40px #00000073}.agent-progress-viewer-caption{color:#e6e9f2;font:12px/1.4 system-ui,sans-serif}.agent-progress-viewer:focus-visible{outline-offset:-4px;outline:2px solid #8994ff}.agent-progress-fold{align-items:baseline;gap:var(--agent-space-3,6px);min-width:0;color:var(--agent-text-muted);font:inherit;font-size:var(--agent-font-md);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.agent-progress-fold h4{flex:none}.agent-progress-fold span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.agent-progress-fold[aria-expanded=true] span{display:none}.agent-steps{--agent-step-icon:11px;flex-direction:column;display:flex}.agent-steps-head{align-items:center;gap:var(--agent-space-3);width:100%;padding:var(--agent-space-2) var(--agent-space-4);color:var(--agent-text-soft,var(--agent-text));font:inherit;font-size:var(--agent-font-md);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.agent-steps-title{font-variant-numeric:tabular-nums;flex:1}.agent-steps-chevron{color:var(--agent-text-dim);transition:transform var(--agent-motion)}.agent-steps[data-open=true] .agent-steps-chevron{transform:rotate(90deg)}.agent-steps-list{padding:0 0 var(--agent-space-2);border-top:1px solid var(--agent-border);flex-direction:column;margin:0;list-style:none;display:flex}.agent-step{padding:0 var(--agent-space-4)}.agent-step.narration{gap:var(--agent-space-3);padding-top:var(--agent-space-1);color:var(--agent-text-muted);font-size:var(--agent-font-md);display:flex}.agent-step-row{align-items:center;gap:var(--agent-space-3);width:100%;min-width:0;padding:var(--agent-space-1) 0 0;color:var(--agent-text);font:inherit;font-size:var(--agent-font-md);text-align:left;background:0 0;border:0;display:flex}button.agent-step-row{cursor:pointer}.agent-step-label{white-space:nowrap;flex:none}.agent-step.thinking .agent-step-label{color:var(--agent-text-muted)}.agent-step-subject{min-width:0;color:var(--agent-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.agent-step-label+.agent-step-time{margin-left:auto}.agent-step-time{color:var(--agent-text-dim);font:var(--agent-font-sm) ui-monospace, monospace;font-variant-numeric:tabular-nums;flex:none}.agent-step-result,.agent-step-thought{padding-left:calc(var(--agent-step-icon) + var(--agent-space-3));color:var(--agent-text-muted);font-size:var(--agent-font-sm);overflow-wrap:anywhere;margin:0;line-height:1.45}.agent-step-thought{white-space:pre-wrap;max-height:160px;overflow-y:auto}.agent-step.failed .agent-step-result{color:var(--agent-alert)}.agent-step-icon{width:var(--agent-step-icon);flex:none}.agent-step-icon.ok{color:var(--agent-ok)}.agent-step-icon.alert{color:var(--agent-alert)}.agent-step-icon.warn{color:var(--agent-warn)}.agent-step-dot{width:var(--agent-step-icon);height:var(--agent-step-icon);background:radial-gradient(circle, var(--agent-text-dim) 0 2px, transparent 2.5px);flex:none}.agent-step-spin{width:var(--agent-step-icon);height:var(--agent-step-icon);border:1.5px solid var(--agent-border-strong);border-top-color:var(--agent-accent);border-radius:var(--agent-radius-pill);flex:none;animation:.7s linear infinite agent-spin}.agent-steps-note{padding:var(--agent-space-2) var(--agent-space-4);border-top:1px solid var(--agent-border);color:var(--agent-warn);font-size:var(--agent-font-sm);margin:0;line-height:1.45}.agent-activity-detail{min-width:0;color:var(--agent-text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}
|