@agentprojectcontext/apx 1.80.2 → 1.89.1
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/package.json +9 -8
- package/skills/apc-context/SKILL.md +14 -7
- package/skills/apx/SKILL.md +62 -2
- package/skills/apx-mcp/SKILL.md +42 -15
- package/src/core/agent/a2a/peers.js +161 -0
- package/src/core/agent/a2a/reply.js +379 -27
- package/src/core/agent/abort.js +25 -0
- package/src/core/agent/agent-model.js +58 -0
- package/src/core/agent/agent-tools.js +101 -0
- package/src/core/agent/author-line.js +110 -0
- package/src/core/agent/build-agent-system.js +52 -18
- package/src/core/agent/channels/voice-context.js +17 -2
- package/src/core/agent/closing-floor.js +117 -0
- package/src/core/agent/constants.js +119 -11
- package/src/core/agent/engine-call.js +56 -0
- package/src/core/agent/group/run-group-turn.js +218 -0
- package/src/core/agent/group/turn-resolver.js +165 -0
- package/src/core/agent/judge.js +138 -11
- package/src/core/agent/loop/side-effects.js +106 -3
- package/src/core/agent/memory.js +31 -18
- package/src/core/agent/model-capabilities.js +47 -0
- package/src/core/agent/model-router.js +11 -40
- package/src/core/agent/prompt-builder.js +47 -0
- package/src/core/agent/prompts/channels/a2a.md +12 -0
- package/src/core/agent/prompts/channels/code.md +3 -1
- package/src/core/agent/prompts/channels/telegram.md +2 -0
- package/src/core/agent/prompts/channels/web_code.md +1 -1
- package/src/core/agent/prompts/channels/whatsapp.md +37 -0
- package/src/core/agent/prompts/core/agent-base.md +2 -0
- package/src/core/agent/prompts/discipline/action.md +1 -0
- package/src/core/agent/prompts/discipline/two-segment.md +2 -1
- package/src/core/agent/prompts/modes/mobility.md +36 -0
- package/src/core/agent/retry.js +42 -0
- package/src/core/agent/run-agent.js +322 -25
- package/src/core/agent/run-turn.js +253 -0
- package/src/core/agent/self-memory.js +18 -52
- package/src/core/agent/skills/agent-skills.js +118 -0
- package/src/core/agent/skills/catalog.js +1 -1
- package/src/core/agent/skills/declared.js +13 -0
- package/src/core/agent/skills/index-store.js +8 -1
- package/src/core/agent/skills/inspector.js +20 -3
- package/src/core/agent/skills/loader.js +18 -3
- package/src/core/agent/skills/media.js +121 -0
- package/src/core/agent/skills/origin.js +61 -0
- package/src/core/agent/skills/sections.js +136 -0
- package/src/core/agent/super-agent.js +54 -14
- package/src/core/agent/tools/handlers/_calendar.js +50 -0
- package/src/core/agent/tools/handlers/add-mcp.js +103 -0
- package/src/core/agent/tools/handlers/asana-create-task.js +3 -1
- package/src/core/agent/tools/handlers/attach-media.js +56 -0
- package/src/core/agent/tools/handlers/calendar-create-event.js +38 -0
- package/src/core/agent/tools/handlers/calendar-find-slot.js +39 -0
- package/src/core/agent/tools/handlers/calendar-list-events.js +39 -0
- package/src/core/agent/tools/handlers/calendar-update-event.js +35 -0
- package/src/core/agent/tools/handlers/call-agent.js +14 -6
- package/src/core/agent/tools/handlers/call-runtime.js +27 -49
- package/src/core/agent/tools/handlers/comment-task.js +78 -0
- package/src/core/agent/tools/handlers/complete-task.js +60 -0
- package/src/core/agent/tools/handlers/configure-agent.js +70 -0
- package/src/core/agent/tools/handlers/create-agent.js +68 -0
- package/src/core/agent/tools/handlers/create-task.js +41 -3
- package/src/core/agent/tools/handlers/import-agent.js +5 -5
- package/src/core/agent/tools/handlers/list-mcp-tools.js +83 -0
- package/src/core/agent/tools/handlers/list-routines.js +46 -0
- package/src/core/agent/tools/handlers/list-tasks.js +8 -1
- package/src/core/agent/tools/handlers/mark-commitment.js +57 -0
- package/src/core/agent/tools/handlers/read-skill.js +64 -0
- package/src/core/agent/tools/handlers/remember-routine.js +2 -8
- package/src/core/agent/tools/handlers/remember.js +82 -6
- package/src/core/agent/tools/handlers/remove-agent.js +42 -0
- package/src/core/agent/tools/handlers/run-routine.js +94 -0
- package/src/core/agent/tools/handlers/run-shell.js +44 -2
- package/src/core/agent/tools/handlers/send-telegram.js +41 -19
- package/src/core/agent/tools/handlers/set-agent-prompt.js +44 -0
- package/src/core/agent/tools/handlers/view-media.js +69 -0
- package/src/core/agent/tools/handlers/write-agent-memory.js +52 -0
- package/src/core/agent/tools/helpers.js +36 -4
- package/src/core/agent/tools/names.js +64 -0
- package/src/core/agent/tools/registry-bridge.js +24 -1
- package/src/core/agent/tools/registry.js +79 -0
- package/src/core/agent/tools/tool-call-parser.js +136 -13
- package/src/core/agent/vision-bridge.js +69 -0
- package/src/core/apc/agent-identity.js +74 -0
- package/src/core/apc/agent-rename-refs.js +187 -0
- package/src/core/apc/agent-write.js +312 -0
- package/src/core/apc/agents-vault.js +1 -1
- package/src/core/apc/blob-keys.js +42 -0
- package/src/core/apc/frontmatter.js +166 -10
- package/src/core/apc/parser.js +33 -83
- package/src/core/apc/paths.js +4 -6
- package/src/core/apc/project-memory.js +44 -0
- package/src/core/apc/projects-helpers.js +33 -0
- package/src/core/apc/scaffold.js +36 -16
- package/src/core/channels/telegram/ask-callbacks.js +103 -0
- package/src/core/channels/telegram/dispatch.js +154 -30
- package/src/core/channels/telegram/helpers.js +59 -7
- package/src/core/channels/telegram/inbound/audio.js +26 -30
- package/src/core/channels/telegram/inbound/file.js +22 -32
- package/src/core/channels/telegram/inbound/photo.js +24 -28
- package/src/core/channels/telegram/progress-gate.js +76 -0
- package/src/core/channels/telegram/reply.js +151 -43
- package/src/core/channels/telegram/voice-note.js +150 -0
- package/src/core/config/index.js +53 -54
- package/src/core/config/paths.js +117 -31
- package/src/core/config/redact.js +89 -4
- package/src/core/config/secret-values.js +2 -4
- package/src/core/constants/actors.js +5 -0
- package/src/core/constants/channels.js +3 -1
- package/src/core/constants/task-categories.js +73 -0
- package/src/core/constants/task-fields.js +28 -0
- package/src/core/engines/_globs.js +33 -0
- package/src/core/engines/anthropic.js +19 -1
- package/src/core/engines/catalog.js +20 -0
- package/src/core/engines/gemini.js +84 -16
- package/src/core/engines/index.js +19 -3
- package/src/core/engines/mock.js +145 -1
- package/src/core/engines/openai-compatible.js +150 -15
- package/src/core/engines/presets.js +36 -9
- package/src/core/engines/zen.js +131 -0
- package/src/core/events/bus.js +140 -0
- package/src/core/events/mascot-notify.js +156 -0
- package/src/core/http-tools/browser.js +366 -36
- package/src/core/http-tools/catalog.js +206 -22
- package/src/core/http-tools/grep.js +62 -7
- package/src/core/http-tools/registry.js +3 -1
- package/src/core/i18n/en.js +34 -3
- package/src/core/i18n/es.js +36 -4
- package/src/core/i18n/index.js +5 -5
- package/src/core/i18n/pt.js +32 -3
- package/src/core/identity/self.js +14 -1
- package/src/core/images/engines/a1111.js +219 -0
- package/src/core/images/engines/index.js +187 -0
- package/src/core/images/engines/mock.js +74 -0
- package/src/core/images/engines/openai.js +130 -0
- package/src/core/images/engines/sdcpp.js +204 -0
- package/src/core/images/engines/shared.js +218 -0
- package/src/core/images/generate.js +260 -0
- package/src/core/integrations/catalog.js +8 -3
- package/src/core/integrations/plugins/_google-oauth.js +179 -0
- package/src/core/integrations/plugins/asana.js +7 -3
- package/src/core/integrations/plugins/calendar.js +404 -0
- package/src/core/integrations/store.js +2 -0
- package/src/core/memory/broker.js +16 -1
- package/src/core/memory/compactor.js +19 -3
- package/src/core/memory/consolidate.js +2 -2
- package/src/core/memory/dated-log.js +66 -0
- package/src/core/memory/embed-engines/custom.js +59 -0
- package/src/core/memory/embed-engines/gemini.js +9 -3
- package/src/core/memory/embed-engines/index.js +87 -15
- package/src/core/memory/embeddings.js +52 -24
- package/src/core/memory/index.js +13 -3
- package/src/core/memory/indexer.js +83 -27
- package/src/core/memory/prune.js +182 -0
- package/src/core/memory/store.js +22 -0
- package/src/core/memory/summarizer.js +72 -8
- package/src/core/mobility/answer.js +80 -0
- package/src/core/mobility/geofence.js +667 -0
- package/src/core/mobility/osm-route.js +282 -0
- package/src/core/mobility/preferences.js +91 -0
- package/src/core/mobility/state.js +245 -0
- package/src/core/mobility/trip-event.js +384 -0
- package/src/core/net/tailscale.js +168 -0
- package/src/core/profiles/bundled/secretary/PROFILE.md +32 -42
- package/src/core/profiles/bundled/secretary/config.schema.es.json +68 -0
- package/src/core/profiles/bundled/secretary/config.schema.json +30 -2
- package/src/core/profiles/bundled/secretary/profile.json +3 -1
- package/src/core/profiles/bundled/secretary/routines/a2a-sweep.json +20 -0
- package/src/core/profiles/bundled/secretary/routines/day-close.json +4 -1
- package/src/core/profiles/bundled/secretary/routines/day-open.json +7 -1
- package/src/core/profiles/bundled/secretary/routines/watch.json +13 -2
- package/src/core/profiles/lifecycle.js +243 -19
- package/src/core/profiles/paths.js +12 -0
- package/src/core/profiles/store.js +47 -0
- package/src/core/routines/active-runs.js +213 -0
- package/src/core/routines/delivery.js +612 -0
- package/src/core/routines/header.js +88 -0
- package/src/core/routines/index.js +26 -0
- package/src/core/routines/run-log.js +78 -0
- package/src/core/routines/runner.js +629 -66
- package/src/core/routines/signals.js +75 -0
- package/src/core/runtime-skills/apc-context/SKILL.md +14 -7
- package/src/core/runtime-skills/apx/SKILL.md +93 -1
- package/src/core/runtime-skills/apx-agency-agents/SKILL.md +2 -2
- package/src/core/runtime-skills/apx-agent/SKILL.md +134 -19
- package/src/core/runtime-skills/apx-commitment/SKILL.md +134 -0
- package/src/core/runtime-skills/apx-image/SKILL.md +60 -0
- package/src/core/runtime-skills/apx-integrations/SKILL.md +82 -0
- package/src/core/runtime-skills/apx-mcp/SKILL.md +45 -14
- package/src/core/runtime-skills/apx-mcp-builder/SKILL.md +4 -4
- package/src/core/runtime-skills/apx-profile/SKILL.md +27 -2
- package/src/core/runtime-skills/apx-project/SKILL.md +23 -2
- package/src/core/runtime-skills/apx-routine/SKILL.md +40 -17
- package/src/core/runtime-skills/apx-runtime/SKILL.md +124 -14
- package/src/core/runtime-skills/apx-sessions/SKILL.md +7 -6
- package/src/core/runtime-skills/apx-skill-builder/SKILL.md +15 -13
- package/src/core/runtime-skills/apx-task/SKILL.md +79 -26
- package/src/core/runtime-skills/apx-telegram/SKILL.md +12 -12
- package/src/core/runtime-skills/apx-transcribe/SKILL.md +56 -0
- package/src/core/runtime-skills/apx-voice/SKILL.md +27 -8
- package/src/core/runtime-skills/claude-code/SKILL.md +8 -0
- package/src/core/runtime-skills/openrouter/SKILL.md +8 -2
- package/src/core/runtimes/_spawn.js +9 -1
- package/src/core/runtimes/claude-code.js +11 -2
- package/src/core/runtimes/codex.js +44 -10
- package/src/core/runtimes/index.js +17 -2
- package/src/core/runtimes/opencode.js +88 -9
- package/src/core/runtimes/outcome.js +119 -0
- package/src/core/sessions/index.js +193 -1
- package/src/core/stores/agent-inbox.js +109 -23
- package/src/core/stores/code-sessions.js +21 -0
- package/src/core/stores/commitments.js +27 -3
- package/src/core/stores/conversations.js +220 -20
- package/src/core/stores/deliveries.js +177 -0
- package/src/core/stores/media-archive.js +228 -0
- package/src/core/stores/messages.js +1096 -112
- package/src/core/stores/organization.js +34 -0
- package/src/core/stores/project-memory.js +71 -0
- package/src/core/stores/routine-memory.js +16 -8
- package/src/core/stores/routines.js +27 -49
- package/src/core/stores/sessions.js +4 -8
- package/src/core/stores/tasks.js +212 -18
- package/src/core/stores/turn-record.js +209 -0
- package/src/core/tasks/columns.js +136 -0
- package/src/core/tasks/comment-turn.js +258 -0
- package/src/core/util/time.js +13 -0
- package/src/core/voice/engines/index.js +54 -1
- package/src/core/voice/engines/openai.js +50 -4
- package/src/core/voice/opus.js +67 -0
- package/src/core/voice/pronounceable.js +43 -0
- package/src/core/voice/transcription.js +4 -0
- package/src/core/voice/tts.js +114 -24
- package/src/host/daemon/active-turns.js +188 -0
- package/src/host/daemon/api/admin-config.js +9 -0
- package/src/host/daemon/api/agents.js +99 -90
- package/src/host/daemon/api/artifact-preview.js +7 -6
- package/src/host/daemon/api/artifacts.js +3 -2
- package/src/host/daemon/api/code.js +55 -9
- package/src/host/daemon/api/commitments.js +11 -0
- package/src/host/daemon/api/confirm.js +3 -2
- package/src/host/daemon/api/conversations.js +543 -35
- package/src/host/daemon/api/deck.js +9 -8
- package/src/host/daemon/api/deliveries.js +33 -0
- package/src/host/daemon/api/desktop.js +5 -4
- package/src/host/daemon/api/embeddings.js +15 -6
- package/src/host/daemon/api/engines.js +59 -8
- package/src/host/daemon/api/exec.js +437 -121
- package/src/host/daemon/api/groups.js +215 -0
- package/src/host/daemon/api/images.js +107 -0
- package/src/host/daemon/api/inbox.js +123 -2
- package/src/host/daemon/api/integrations.js +64 -2
- package/src/host/daemon/api/mcps.js +7 -6
- package/src/host/daemon/api/media.js +283 -0
- package/src/host/daemon/api/mobility.js +177 -0
- package/src/host/daemon/api/net.js +182 -0
- package/src/host/daemon/api/pairing.js +38 -5
- package/src/host/daemon/api/profiles.js +30 -2
- package/src/host/daemon/api/routines.js +36 -4
- package/src/host/daemon/api/runtimes.js +74 -39
- package/src/host/daemon/api/sessions-search.js +7 -2
- package/src/host/daemon/api/sessions.js +44 -2
- package/src/host/daemon/api/shared.js +127 -20
- package/src/host/daemon/api/skills.js +11 -4
- package/src/host/daemon/api/super-agent.js +384 -53
- package/src/host/daemon/api/tasks.js +180 -10
- package/src/host/daemon/api/telegram.js +11 -10
- package/src/host/daemon/api/thread-faces.js +159 -0
- package/src/host/daemon/api/top-level.js +3 -3
- package/src/host/daemon/api/transcribe.js +11 -10
- package/src/host/daemon/api/tts.js +97 -4
- package/src/host/daemon/api/turn-abort.js +23 -0
- package/src/host/daemon/api/turns.js +49 -0
- package/src/host/daemon/api/voice.js +5 -4
- package/src/host/daemon/api/web.js +98 -0
- package/src/host/daemon/api.js +39 -0
- package/src/host/daemon/delivery-sweep.js +58 -0
- package/src/host/daemon/desktop-ws.js +5 -23
- package/src/host/daemon/events-ws.js +273 -0
- package/src/host/daemon/index.js +59 -15
- package/src/host/daemon/plugins/desktop/index.js +17 -4
- package/src/host/daemon/plugins/telegram/index.js +78 -40
- package/src/host/daemon/pty-bridge.py +99 -0
- package/src/host/daemon/routines-scheduler.js +1 -0
- package/src/host/daemon/smoke.js +1 -2
- package/src/host/daemon/terminal-ws.js +132 -0
- package/src/host/daemon/tts-keepwarm.js +87 -0
- package/src/host/daemon/wakeup.js +11 -6
- package/src/host/daemon/whisper-server.js +44 -0
- package/src/host/daemon/whisper-server.py +70 -13
- package/src/host/daemon/ws-auth.js +28 -0
- package/src/interfaces/android/app/build.gradle +42 -0
- package/src/interfaces/android/app/proguard-rules.pro +4 -0
- package/src/interfaces/android/app/src/main/AndroidManifest.xml +139 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/AlertScreen.java +139 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/AndroidAutoDetector.java +106 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/ApxCarAppService.java +57 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/ApxPreferences.java +165 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/CarAlertStore.java +84 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/CarMessageActionReceiver.java +47 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/CarMessageNotification.java +152 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/DaemonAddress.java +35 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/DaemonClient.java +339 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/DeviceLocation.java +38 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/ErrandScreen.java +127 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MainActivity.java +872 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MapsNavigationDetector.java +63 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MapsNavigationListenerService.java +453 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MapsShareIntentParser.java +93 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MascotBlobCatalog.java +66 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MascotOverlayService.java +448 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MascotView.java +249 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/MessageFrameParser.java +240 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/NotifyChannels.java +69 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/ProximityActionReceiver.java +78 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/ProximityNotification.java +161 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/StartupReceiver.java +57 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/TravelEventGate.java +62 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/TravelStatusBanner.java +116 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/TripLocationService.java +272 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/TripPlacesSheet.java +203 -0
- package/src/interfaces/android/app/src/main/java/dev/agentprojectcontext/apx/TripScreen.java +182 -0
- package/src/interfaces/android/app/src/main/res/drawable/app_background.xml +12 -0
- package/src/interfaces/android/app/src/main/res/drawable/ic_apx_app.xml +10 -0
- package/src/interfaces/android/app/src/main/res/drawable/ic_apx_launcher_foreground.xml +12 -0
- package/src/interfaces/android/app/src/main/res/drawable/ic_apx_notification.xml +22 -0
- package/src/interfaces/android/app/src/main/res/drawable/ic_trip_car.xml +37 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/apx_logo.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_amatista.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_aqua.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_brasa.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_campana.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_caracol.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_carbon.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_cobalto.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_cometa.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_coral.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_cubi.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_eclipse.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_faro.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_gajo.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_iris.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_kiwi.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_laguna.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_lila.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_menta.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_nimbo.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_noche.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_onyx.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_orbita.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_ovni.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_papa.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_parche.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_peon.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_perla.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_pino.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_quad.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_rubi.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_saturno.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_trebol.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_trino.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_volcan.png +0 -0
- package/src/interfaces/android/app/src/main/res/drawable-nodpi/mascot_zafiro.png +0 -0
- package/src/interfaces/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- package/src/interfaces/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
- package/src/interfaces/android/app/src/main/res/raw/apx_notification.mp3 +0 -0
- package/src/interfaces/android/app/src/main/res/values/colors.xml +4 -0
- package/src/interfaces/android/app/src/main/res/values/strings.xml +25 -0
- package/src/interfaces/android/app/src/main/res/values/styles.xml +10 -0
- package/src/interfaces/android/app/src/main/res/values-v31/styles.xml +14 -0
- package/src/interfaces/android/app/src/main/res/xml/automotive_app_desc.xml +9 -0
- package/src/interfaces/android/app/src/main/res/xml/network_security_config.xml +10 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/AndroidAutoDetectorTest.java +85 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/CarAlertStoreTest.java +104 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/DaemonAddressTest.java +23 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/MapsNavigationDetectorTest.java +69 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/MapsShareIntentParserTest.java +31 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/MessageFrameParserTest.java +180 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/TravelEventGateTest.java +64 -0
- package/src/interfaces/android/app/src/test/java/dev/agentprojectcontext/apx/TripPlacesSheetTest.java +66 -0
- package/src/interfaces/android/build.gradle +3 -0
- package/src/interfaces/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/interfaces/android/gradle/wrapper/gradle-wrapper.properties +9 -0
- package/src/interfaces/android/gradle.properties +3 -0
- package/src/interfaces/android/gradlew +248 -0
- package/src/interfaces/android/gradlew.bat +82 -0
- package/src/interfaces/android/settings.gradle +18 -0
- package/src/interfaces/cli/commands/a2a.js +145 -4
- package/src/interfaces/cli/commands/agent.js +247 -22
- package/src/interfaces/cli/commands/code.js +1 -1
- package/src/interfaces/cli/commands/commitment.js +5 -0
- package/src/interfaces/cli/commands/config.js +85 -6
- package/src/interfaces/cli/commands/exec.js +90 -1
- package/src/interfaces/cli/commands/image.js +314 -0
- package/src/interfaces/cli/commands/mcp.js +87 -23
- package/src/interfaces/cli/commands/memory.js +35 -22
- package/src/interfaces/cli/commands/panel.js +94 -0
- package/src/interfaces/cli/commands/profile.js +14 -0
- package/src/interfaces/cli/commands/project.js +29 -0
- package/src/interfaces/cli/commands/routine.js +45 -10
- package/src/interfaces/cli/commands/runtime.js +30 -7
- package/src/interfaces/cli/commands/session.js +90 -38
- package/src/interfaces/cli/commands/sessions.js +35 -2
- package/src/interfaces/cli/commands/skills.js +15 -9
- package/src/interfaces/cli/commands/status.js +2 -3
- package/src/interfaces/cli/commands/task.js +54 -5
- package/src/interfaces/cli/commands/telegram.js +12 -4
- package/src/interfaces/cli/commands/transcribe.js +177 -0
- package/src/interfaces/cli/help/index.js +311 -72
- package/src/interfaces/cli/http.js +61 -13
- package/src/interfaces/cli/index.js +1 -1
- package/src/interfaces/cli/routes/agent.js +5 -4
- package/src/interfaces/cli/routes/commitment.js +3 -2
- package/src/interfaces/cli/routes/config.js +7 -2
- package/src/interfaces/cli/routes/image.js +11 -0
- package/src/interfaces/cli/routes/index.js +2 -0
- package/src/interfaces/cli/routes/log.js +1 -1
- package/src/interfaces/cli/routes/memory.js +3 -2
- package/src/interfaces/cli/routes/panel.js +15 -2
- package/src/interfaces/cli/routes/profile.js +3 -2
- package/src/interfaces/cli/routes/transcribe.js +10 -0
- package/src/interfaces/cli/stdin.js +29 -0
- package/src/interfaces/desktop/assets/blobs/amatista.png +0 -0
- package/src/interfaces/desktop/assets/blobs/aqua.png +0 -0
- package/src/interfaces/desktop/assets/blobs/brasa.png +0 -0
- package/src/interfaces/desktop/assets/blobs/campana.png +0 -0
- package/src/interfaces/desktop/assets/blobs/caracol.png +0 -0
- package/src/interfaces/desktop/assets/blobs/carbon.png +0 -0
- package/src/interfaces/desktop/assets/blobs/cobalto.png +0 -0
- package/src/interfaces/desktop/assets/blobs/cometa.png +0 -0
- package/src/interfaces/desktop/assets/blobs/coral.png +0 -0
- package/src/interfaces/desktop/assets/blobs/cubi.png +0 -0
- package/src/interfaces/desktop/assets/blobs/eclipse.png +0 -0
- package/src/interfaces/desktop/assets/blobs/faro.png +0 -0
- package/src/interfaces/desktop/assets/blobs/gajo.png +0 -0
- package/src/interfaces/desktop/assets/blobs/iris.png +0 -0
- package/src/interfaces/desktop/assets/blobs/kiwi.png +0 -0
- package/src/interfaces/desktop/assets/blobs/laguna.png +0 -0
- package/src/interfaces/desktop/assets/blobs/lila.png +0 -0
- package/src/interfaces/desktop/assets/blobs/menta.png +0 -0
- package/src/interfaces/desktop/assets/blobs/nimbo.png +0 -0
- package/src/interfaces/desktop/assets/blobs/noche.png +0 -0
- package/src/interfaces/desktop/assets/blobs/onyx.png +0 -0
- package/src/interfaces/desktop/assets/blobs/orbita.png +0 -0
- package/src/interfaces/desktop/assets/blobs/ovni.png +0 -0
- package/src/interfaces/desktop/assets/blobs/papa.png +0 -0
- package/src/interfaces/desktop/assets/blobs/parche.png +0 -0
- package/src/interfaces/desktop/assets/blobs/peon.png +0 -0
- package/src/interfaces/desktop/assets/blobs/perla.png +0 -0
- package/src/interfaces/desktop/assets/blobs/pino.png +0 -0
- package/src/interfaces/desktop/assets/blobs/quad.png +0 -0
- package/src/interfaces/desktop/assets/blobs/rubi.png +0 -0
- package/src/interfaces/desktop/assets/blobs/saturno.png +0 -0
- package/src/interfaces/desktop/assets/blobs/trebol.png +0 -0
- package/src/interfaces/desktop/assets/blobs/trino.png +0 -0
- package/src/interfaces/desktop/assets/blobs/volcan.png +0 -0
- package/src/interfaces/desktop/assets/blobs/zafiro.png +0 -0
- package/src/interfaces/desktop/assets/notification.mp3 +0 -0
- package/src/interfaces/desktop/main.js +473 -29
- package/src/interfaces/desktop/mascot-blobs.js +41 -0
- package/src/interfaces/desktop/mascot-preload.js +32 -0
- package/src/interfaces/desktop/mascot.css +186 -0
- package/src/interfaces/desktop/mascot.html +40 -0
- package/src/interfaces/desktop/mascot.js +163 -0
- package/src/interfaces/desktop/preload.js +10 -0
- package/src/interfaces/desktop/renderer.js +308 -48
- package/src/interfaces/desktop/style.css +34 -0
- package/src/interfaces/mcp-server/index.js +87 -0
- package/src/interfaces/tui/_shims/util-locale.ts +0 -2
- package/src/interfaces/tui/app.tsx +0 -6
- package/src/interfaces/tui/attach.ts +0 -1
- package/src/interfaces/tui/context/sdk-apx.tsx +0 -4
- package/src/interfaces/tui/plugin/api.tsx +0 -3
- package/src/interfaces/tui/plugin/runtime.ts +0 -3
- package/src/interfaces/tui/thread.ts +0 -16
- package/src/interfaces/web/README.md +22 -14
- package/src/interfaces/web/dist/assets/claude-XtpLmGtF.webp +0 -0
- package/src/interfaces/web/dist/assets/codex-DExPUgvh.webp +0 -0
- package/src/interfaces/web/dist/assets/index-BEoRgIqd.css +32 -0
- package/src/interfaces/web/dist/assets/index-BEoRgIqd.css.br +0 -0
- package/src/interfaces/web/dist/assets/index-BEoRgIqd.css.gz +0 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js +1074 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js.br +0 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js.gz +0 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js.map +1 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js.map.br +0 -0
- package/src/interfaces/web/dist/assets/index-C6fXHc1p.js.map.gz +0 -0
- package/src/interfaces/web/dist/favicon/dark/site.webmanifest +12 -6
- package/src/interfaces/web/dist/favicon/white/site.webmanifest +12 -6
- package/src/interfaces/web/dist/index.html +22 -6
- package/src/interfaces/web/dist/index.html.br +0 -0
- package/src/interfaces/web/dist/index.html.gz +0 -0
- package/src/interfaces/web/dist/manifest.webmanifest +25 -0
- package/src/interfaces/web/dist/modules/blobs/amatista.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/aqua.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/brasa.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/campana.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/caracol.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/carbon.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/cobalto.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/cometa.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/coral.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/cubi.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/eclipse.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/faro.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/gajo.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/iris.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/kiwi.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/laguna.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/lila.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/menta.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/nimbo.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/noche.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/onyx.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/orbita.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/ovni.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/papa.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/parche.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/peon.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/perla.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/pino.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/quad.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/rubi.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/saturno.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/trebol.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/trino.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/volcan.png +0 -0
- package/src/interfaces/web/dist/modules/blobs/zafiro.png +0 -0
- package/src/interfaces/web/dist/sw.js +106 -0
- package/src/interfaces/web/dist/sw.js.br +0 -0
- package/src/interfaces/web/dist/sw.js.gz +0 -0
- package/src/interfaces/web/eslint.config.js +83 -0
- package/src/interfaces/web/index.html +20 -4
- package/src/interfaces/web/package-lock.json +1651 -1280
- package/src/interfaces/web/package.json +9 -10
- package/src/interfaces/web/pnpm-lock.yaml +867 -869
- package/src/interfaces/web/public/favicon/dark/site.webmanifest +12 -6
- package/src/interfaces/web/public/favicon/white/site.webmanifest +12 -6
- package/src/interfaces/web/public/manifest.webmanifest +25 -0
- package/src/interfaces/web/public/modules/blobs/amatista.png +0 -0
- package/src/interfaces/web/public/modules/blobs/aqua.png +0 -0
- package/src/interfaces/web/public/modules/blobs/brasa.png +0 -0
- package/src/interfaces/web/public/modules/blobs/campana.png +0 -0
- package/src/interfaces/web/public/modules/blobs/caracol.png +0 -0
- package/src/interfaces/web/public/modules/blobs/carbon.png +0 -0
- package/src/interfaces/web/public/modules/blobs/cobalto.png +0 -0
- package/src/interfaces/web/public/modules/blobs/cometa.png +0 -0
- package/src/interfaces/web/public/modules/blobs/coral.png +0 -0
- package/src/interfaces/web/public/modules/blobs/cubi.png +0 -0
- package/src/interfaces/web/public/modules/blobs/eclipse.png +0 -0
- package/src/interfaces/web/public/modules/blobs/faro.png +0 -0
- package/src/interfaces/web/public/modules/blobs/gajo.png +0 -0
- package/src/interfaces/web/public/modules/blobs/iris.png +0 -0
- package/src/interfaces/web/public/modules/blobs/kiwi.png +0 -0
- package/src/interfaces/web/public/modules/blobs/laguna.png +0 -0
- package/src/interfaces/web/public/modules/blobs/lila.png +0 -0
- package/src/interfaces/web/public/modules/blobs/menta.png +0 -0
- package/src/interfaces/web/public/modules/blobs/nimbo.png +0 -0
- package/src/interfaces/web/public/modules/blobs/noche.png +0 -0
- package/src/interfaces/web/public/modules/blobs/onyx.png +0 -0
- package/src/interfaces/web/public/modules/blobs/orbita.png +0 -0
- package/src/interfaces/web/public/modules/blobs/ovni.png +0 -0
- package/src/interfaces/web/public/modules/blobs/papa.png +0 -0
- package/src/interfaces/web/public/modules/blobs/parche.png +0 -0
- package/src/interfaces/web/public/modules/blobs/peon.png +0 -0
- package/src/interfaces/web/public/modules/blobs/perla.png +0 -0
- package/src/interfaces/web/public/modules/blobs/pino.png +0 -0
- package/src/interfaces/web/public/modules/blobs/quad.png +0 -0
- package/src/interfaces/web/public/modules/blobs/rubi.png +0 -0
- package/src/interfaces/web/public/modules/blobs/saturno.png +0 -0
- package/src/interfaces/web/public/modules/blobs/trebol.png +0 -0
- package/src/interfaces/web/public/modules/blobs/trino.png +0 -0
- package/src/interfaces/web/public/modules/blobs/volcan.png +0 -0
- package/src/interfaces/web/public/modules/blobs/zafiro.png +0 -0
- package/src/interfaces/web/public/sw.js +106 -0
- package/src/interfaces/web/src/App.tsx +106 -10
- package/src/interfaces/web/src/assets/cli/claude.webp +0 -0
- package/src/interfaces/web/src/assets/cli/codex.webp +0 -0
- package/src/interfaces/web/src/assets/cli/cursor.svg +1 -0
- package/src/interfaces/web/src/assets/cli/opencode.png +0 -0
- package/src/interfaces/web/src/components/Combobox.tsx +201 -0
- package/src/interfaces/web/src/components/MobileHint.tsx +95 -0
- package/src/interfaces/web/src/components/MobileLinkDialog.tsx +156 -0
- package/src/interfaces/web/src/components/ModelCombobox.tsx +21 -113
- package/src/interfaces/web/src/components/{routines/ReadOnlyBlock.tsx → ReadOnlyBlock.tsx} +13 -4
- package/src/interfaces/web/src/components/Roby.tsx +5 -3
- package/src/interfaces/web/src/components/RobyBubble.tsx +23 -5
- package/src/interfaces/web/src/components/RowMenu.tsx +46 -0
- package/src/interfaces/web/src/components/TimezoneSelect.tsx +4 -1
- package/src/interfaces/web/src/components/Toast.tsx +50 -14
- package/src/interfaces/web/src/components/UiSelect.tsx +12 -5
- package/src/interfaces/web/src/components/agents/AgentAvatar.tsx +171 -0
- package/src/interfaces/web/src/components/agents/AgentFormFields.tsx +42 -11
- package/src/interfaces/web/src/components/agents/AgentModelBadge.tsx +157 -0
- package/src/interfaces/web/src/components/agents/AgentModelSelect.tsx +57 -0
- package/src/interfaces/web/src/components/agents/AgentSkillsPicker.tsx +115 -0
- package/src/interfaces/web/src/components/agents/BlobAvatar.tsx +50 -0
- package/src/interfaces/web/src/components/agents/blobPresets.ts +50 -0
- package/src/interfaces/web/src/components/agents/modelCatalog.ts +66 -0
- package/src/interfaces/web/src/components/chat/ActionGroup.tsx +162 -0
- package/src/interfaces/web/src/components/chat/AskAnswersCard.tsx +4 -3
- package/src/interfaces/web/src/components/chat/AskQuestionsCard.tsx +1 -1
- package/src/interfaces/web/src/components/chat/Attachment.tsx +220 -0
- package/src/interfaces/web/src/components/chat/ChatList.tsx +226 -51
- package/src/interfaces/web/src/components/chat/ChatRowActivity.tsx +45 -0
- package/src/interfaces/web/src/components/chat/Composer.tsx +672 -23
- package/src/interfaces/web/src/components/chat/ComposerCommands.tsx +175 -0
- package/src/interfaces/web/src/components/chat/ComposerSuggest.tsx +215 -0
- package/src/interfaces/web/src/components/chat/ContextBar.tsx +133 -65
- package/src/interfaces/web/src/components/chat/InlineAskPanel.tsx +107 -47
- package/src/interfaces/web/src/components/chat/MessageBubble.tsx +460 -119
- package/src/interfaces/web/src/components/chat/MessageList.tsx +165 -18
- package/src/interfaces/web/src/components/chat/ReasoningBlock.tsx +58 -0
- package/src/interfaces/web/src/components/chat/SessionPicker.tsx +182 -0
- package/src/interfaces/web/src/components/chat/SkillTrace.tsx +183 -0
- package/src/interfaces/web/src/components/chat/ToolCall.tsx +11 -11
- package/src/interfaces/web/src/components/code/CodeContextTab.tsx +87 -53
- package/src/interfaces/web/src/components/code/CodeFileTree.tsx +11 -52
- package/src/interfaces/web/src/components/code/CodeFileViewer.tsx +5 -4
- package/src/interfaces/web/src/components/code/CodeProjectPicker.tsx +31 -7
- package/src/interfaces/web/src/components/code/CodeSessionList.tsx +32 -11
- package/src/interfaces/web/src/components/code/CodeSidePanel.tsx +33 -3
- package/src/interfaces/web/src/components/code/CodeTerminal.tsx +5 -4
- package/src/interfaces/web/src/components/code/NewCodeSessionDialog.tsx +164 -0
- package/src/interfaces/web/src/components/commitments/CommitmentDetail.tsx +162 -0
- package/src/interfaces/web/src/components/commitments/CommitmentFormDialog.tsx +158 -0
- package/src/interfaces/web/src/components/commitments/CommitmentList.tsx +194 -0
- package/src/interfaces/web/src/components/commitments/commitmentState.tsx +46 -0
- package/src/interfaces/web/src/components/common/BulkActionBar.tsx +60 -0
- package/src/interfaces/web/src/components/common/ConfirmDialog.tsx +4 -1
- package/src/interfaces/web/src/components/common/SelectCheckbox.tsx +40 -0
- package/src/interfaces/web/src/components/common/TabNav.tsx +1 -1
- package/src/interfaces/web/src/components/cron/CronPicker.tsx +1 -1
- package/src/interfaces/web/src/components/files/FileBrowser.tsx +1 -1
- package/src/interfaces/web/src/components/files/FileTree.tsx +6 -4
- package/src/interfaces/web/src/components/files/FileViewer.tsx +9 -5
- package/src/interfaces/web/src/components/files/MarkdownPreview.tsx +45 -9
- package/src/interfaces/web/src/components/images/ImageDefaultsCard.tsx +93 -0
- package/src/interfaces/web/src/components/images/ImageProviderList.tsx +142 -0
- package/src/interfaces/web/src/components/images/ImageProviderModal.tsx +263 -0
- package/src/interfaces/web/src/components/images/ImageTestCard.tsx +142 -0
- package/src/interfaces/web/src/components/inbox/ChannelFilter.tsx +178 -0
- package/src/interfaces/web/src/components/inbox/InboxList.tsx +77 -81
- package/src/interfaces/web/src/components/inbox/InboxRowItem.tsx +140 -0
- package/src/interfaces/web/src/components/integrations/ComingSoonPlugin.tsx +2 -2
- package/src/interfaces/web/src/components/integrations/PluginConnect.tsx +208 -30
- package/src/interfaces/web/src/components/integrations/PluginToolsSection.tsx +1 -1
- package/src/interfaces/web/src/components/layout/ProjectAvatar.tsx +39 -24
- package/src/interfaces/web/src/components/layout/ProjectSidebar.tsx +253 -58
- package/src/interfaces/web/src/components/memory/MemoryBrowser.tsx +94 -47
- package/src/interfaces/web/src/components/routines/ExecutionsList.tsx +202 -90
- package/src/interfaces/web/src/components/routines/RoutineDetail.tsx +28 -6
- package/src/interfaces/web/src/components/routines/RoutineEditor.tsx +16 -5
- package/src/interfaces/web/src/components/routines/RoutineList.tsx +49 -9
- package/src/interfaces/web/src/components/routines/VarTextarea.tsx +1 -1
- package/src/interfaces/web/src/components/routines/runChat.ts +121 -0
- package/src/interfaces/web/src/components/sessions/SessionDetail.tsx +148 -0
- package/src/interfaces/web/src/components/sessions/SessionTerminal.tsx +98 -0
- package/src/interfaces/web/src/components/settings/AccessPanel.tsx +205 -0
- package/src/interfaces/web/src/components/settings/DefaultRouterCard.tsx +246 -101
- package/src/interfaces/web/src/components/settings/DesktopSettingsPanel.tsx +36 -2
- package/src/interfaces/web/src/components/settings/DevicesPanel.tsx +19 -6
- package/src/interfaces/web/src/components/settings/EmbedProviderList.tsx +274 -0
- package/src/interfaces/web/src/components/settings/EnginesPanel.tsx +26 -6
- package/src/interfaces/web/src/components/settings/MemoryPanel.tsx +118 -119
- package/src/interfaces/web/src/components/settings/NudgePanel.tsx +4 -3
- package/src/interfaces/web/src/components/settings/PairDeviceDialog.tsx +15 -4
- package/src/interfaces/web/src/components/settings/PanelPrefs.tsx +374 -0
- package/src/interfaces/web/src/components/settings/ProfilePanel.tsx +70 -2
- package/src/interfaces/web/src/components/settings/RoutingPanel.tsx +2 -1
- package/src/interfaces/web/src/components/settings/SkillsInspectorPanel.tsx +102 -43
- package/src/interfaces/web/src/components/settings/SkillsManager.tsx +76 -21
- package/src/interfaces/web/src/components/settings/SkillsSettings.tsx +10 -3
- package/src/interfaces/web/src/components/settings/SuperAgentPanel.tsx +8 -0
- package/src/interfaces/web/src/components/settings/TelegramChannelsPanel.tsx +11 -2
- package/src/interfaces/web/src/components/settings/TelegramContactsPanel.tsx +19 -8
- package/src/interfaces/web/src/components/settings/TelegramRolesPanel.tsx +12 -2
- package/src/interfaces/web/src/components/settings/WebPanel.tsx +22 -31
- package/src/interfaces/web/src/components/settings/providers/ProviderCard.tsx +15 -3
- package/src/interfaces/web/src/components/settings/providers/ProviderModal.tsx +97 -66
- package/src/interfaces/web/src/components/settings/providers/ProviderTestDialog.tsx +150 -0
- package/src/interfaces/web/src/components/settings/providers/typeStyles.ts +67 -25
- package/src/interfaces/web/src/components/settings/providers/types.ts +3 -0
- package/src/interfaces/web/src/components/tasks/TaskBoard.tsx +201 -0
- package/src/interfaces/web/src/components/tasks/TaskColumnsDialog.tsx +243 -0
- package/src/interfaces/web/src/components/tasks/TaskComments.tsx +167 -0
- package/src/interfaces/web/src/components/tasks/TaskDetail.tsx +335 -0
- package/src/interfaces/web/src/components/tasks/TaskFormDialog.tsx +406 -0
- package/src/interfaces/web/src/components/tasks/TaskList.tsx +258 -0
- package/src/interfaces/web/src/components/tasks/TaskSubtasks.tsx +126 -0
- package/src/interfaces/web/src/components/tasks/columns.ts +51 -0
- package/src/interfaces/web/src/components/tasks/taskStatus.tsx +159 -34
- package/src/interfaces/web/src/components/tasks/taskViewPrefs.ts +73 -0
- package/src/interfaces/web/src/components/tasks/useTaskColumns.ts +31 -0
- package/src/interfaces/web/src/components/ui/chat-input.tsx +136 -12
- package/src/interfaces/web/src/components/ui/context-menu.tsx +15 -198
- package/src/interfaces/web/src/components/ui/dialog.tsx +3 -2
- package/src/interfaces/web/src/components/ui/filter-chips.tsx +4 -0
- package/src/interfaces/web/src/components/ui/popover.tsx +14 -49
- package/src/interfaces/web/src/components/ui/sheet.tsx +2 -1
- package/src/interfaces/web/src/components/ui/spinner.tsx +2 -1
- package/src/interfaces/web/src/components/ui.tsx +62 -23
- package/src/interfaces/web/src/components/voice/VoiceProviderList.tsx +2 -1
- package/src/interfaces/web/src/components/voice/VoiceProviderModal.tsx +66 -8
- package/src/interfaces/web/src/components/voice/VoiceQvoxInstallCard.tsx +63 -0
- package/src/interfaces/web/src/components/voice/VoiceQvoxStatusCard.tsx +51 -0
- package/src/interfaces/web/src/components/voice/VoiceSttCard.tsx +4 -3
- package/src/interfaces/web/src/components/voice/VoiceTestCard.tsx +38 -4
- package/src/interfaces/web/src/constants/index.ts +1 -0
- package/src/interfaces/web/src/hooks/useChannelPrefs.ts +39 -0
- package/src/interfaces/web/src/hooks/useChat.ts +1092 -85
- package/src/interfaces/web/src/hooks/useChatActivity.ts +24 -0
- package/src/interfaces/web/src/hooks/useInbox.ts +26 -4
- package/src/interfaces/web/src/hooks/useLiveMessages.ts +16 -0
- package/src/interfaces/web/src/hooks/useOllamaModels.ts +79 -0
- package/src/interfaces/web/src/hooks/useRecorder.ts +198 -0
- package/src/interfaces/web/src/hooks/useTokenBootstrap.ts +23 -6
- package/src/interfaces/web/src/i18n/en.ts +832 -175
- package/src/interfaces/web/src/i18n/es.ts +841 -188
- package/src/interfaces/web/src/lib/api/agents.ts +23 -4
- package/src/interfaces/web/src/lib/api/code.ts +17 -0
- package/src/interfaces/web/src/lib/api/commitments.ts +7 -1
- package/src/interfaces/web/src/lib/api/conversations.ts +38 -11
- package/src/interfaces/web/src/lib/api/embeddings.ts +3 -0
- package/src/interfaces/web/src/lib/api/engines.ts +14 -0
- package/src/interfaces/web/src/lib/api/groups.ts +93 -0
- package/src/interfaces/web/src/lib/api/images.ts +193 -0
- package/src/interfaces/web/src/lib/api/inbox.ts +29 -5
- package/src/interfaces/web/src/lib/api/integrations.ts +9 -0
- package/src/interfaces/web/src/lib/api/media.ts +126 -0
- package/src/interfaces/web/src/lib/api/net.ts +44 -0
- package/src/interfaces/web/src/lib/api/profiles.ts +12 -0
- package/src/interfaces/web/src/lib/api/projects.ts +9 -1
- package/src/interfaces/web/src/lib/api/routines.ts +9 -1
- package/src/interfaces/web/src/lib/api/sessions.ts +18 -0
- package/src/interfaces/web/src/lib/api/skills.ts +8 -0
- package/src/interfaces/web/src/lib/api/super_agent.ts +3 -0
- package/src/interfaces/web/src/lib/api/tasks.ts +46 -6
- package/src/interfaces/web/src/lib/api/tools.ts +2 -0
- package/src/interfaces/web/src/lib/api/transcribe.ts +31 -0
- package/src/interfaces/web/src/lib/api/turns.ts +20 -0
- package/src/interfaces/web/src/lib/api/voice.ts +72 -2
- package/src/interfaces/web/src/lib/api.ts +3 -0
- package/src/interfaces/web/src/lib/channels.ts +214 -0
- package/src/interfaces/web/src/lib/chat-activity.ts +175 -0
- package/src/interfaces/web/src/lib/chat-prefs.ts +48 -0
- package/src/interfaces/web/src/lib/code-context.ts +0 -2
- package/src/interfaces/web/src/lib/http.ts +51 -17
- package/src/interfaces/web/src/lib/inbox-selection.ts +29 -0
- package/src/interfaces/web/src/lib/live.ts +252 -0
- package/src/interfaces/web/src/lib/net.ts +211 -0
- package/src/interfaces/web/src/lib/notify.ts +331 -0
- package/src/interfaces/web/src/lib/projectNav.ts +40 -0
- package/src/interfaces/web/src/lib/pwa.ts +115 -0
- package/src/interfaces/web/src/lib/qvox.ts +24 -0
- package/src/interfaces/web/src/lib/slug.ts +3 -0
- package/src/interfaces/web/src/lib/tone.ts +150 -0
- package/src/interfaces/web/src/main.tsx +15 -4
- package/src/interfaces/web/src/screens/ApxAdminScreen.tsx +33 -11
- package/src/interfaces/web/src/screens/InboxScreen.tsx +126 -71
- package/src/interfaces/web/src/screens/ProjectScreen.tsx +8 -4
- package/src/interfaces/web/src/screens/SettingsScreen.tsx +7 -4
- package/src/interfaces/web/src/screens/base/AgentDefaultsTab.tsx +30 -9
- package/src/interfaces/web/src/screens/base/CommitmentsTab.tsx +150 -168
- package/src/interfaces/web/src/screens/base/LogsTab.tsx +8 -7
- package/src/interfaces/web/src/screens/base/SessionsTab.tsx +99 -37
- package/src/interfaces/web/src/screens/base/WorkspacesTab.tsx +1 -1
- package/src/interfaces/web/src/screens/mobile/MobileChat.tsx +85 -0
- package/src/interfaces/web/src/screens/mobile/MobileChatList.tsx +244 -0
- package/src/interfaces/web/src/screens/mobile/MobileCommitments.tsx +350 -0
- package/src/interfaces/web/src/screens/mobile/MobileScreen.tsx +138 -0
- package/src/interfaces/web/src/screens/mobile/MobileTabBar.tsx +105 -0
- package/src/interfaces/web/src/screens/mobile/MobileTasks.tsx +407 -0
- package/src/interfaces/web/src/screens/mobile/NewChatSheet.tsx +313 -0
- package/src/interfaces/web/src/screens/mobile/mobileList.tsx +194 -0
- package/src/interfaces/web/src/screens/mobile/routes.ts +239 -0
- package/src/interfaces/web/src/screens/modules/CodeScreen.tsx +135 -64
- package/src/interfaces/web/src/screens/modules/DeckScreen.tsx +0 -1
- package/src/interfaces/web/src/screens/modules/ImagesScreen.tsx +172 -0
- package/src/interfaces/web/src/screens/modules/VoiceScreen.tsx +36 -4
- package/src/interfaces/web/src/screens/project/AgentBrainGraph.tsx +117 -30
- package/src/interfaces/web/src/screens/project/AgentDetailScreen.tsx +537 -92
- package/src/interfaces/web/src/screens/project/AgentsTab.tsx +344 -93
- package/src/interfaces/web/src/screens/project/ArtifactsTab.tsx +1 -1
- package/src/interfaces/web/src/screens/project/ChatTab.tsx +1160 -94
- package/src/interfaces/web/src/screens/project/IntegrationsTab.tsx +3 -2
- package/src/interfaces/web/src/screens/project/McpsTab.tsx +62 -14
- package/src/interfaces/web/src/screens/project/Overview.tsx +36 -15
- package/src/interfaces/web/src/screens/project/RoutinesTab.tsx +93 -8
- package/src/interfaces/web/src/screens/project/SkillsTab.tsx +4 -1
- package/src/interfaces/web/src/screens/project/StructureTab.tsx +5 -4
- package/src/interfaces/web/src/screens/project/TasksTab.tsx +351 -129
- package/src/interfaces/web/src/screens/project/VarsTab.tsx +17 -5
- package/src/interfaces/web/src/styles.css +106 -31
- package/src/interfaces/web/src/types/daemon.ts +246 -2
- package/src/interfaces/web/src/vite-env.d.ts +20 -0
- package/src/interfaces/tui/plugin/command-shim.ts +0 -109
- package/src/interfaces/web/components.json +0 -25
- package/src/interfaces/web/dist/assets/index-CvEoGtTf.js +0 -849
- package/src/interfaces/web/dist/assets/index-CvEoGtTf.js.map +0 -1
- package/src/interfaces/web/dist/assets/index-DzBBXFaO.css +0 -1
- package/src/interfaces/web/src/components/tasks/TaskDetailPanel.tsx +0 -142
- package/src/interfaces/web/src/components/ui/accordion.tsx +0 -72
- package/src/interfaces/web/src/components/ui/alert-dialog.tsx +0 -187
- package/src/interfaces/web/src/components/ui/alert.tsx +0 -76
- package/src/interfaces/web/src/components/ui/aspect-ratio.tsx +0 -22
- package/src/interfaces/web/src/components/ui/avatar.tsx +0 -107
- package/src/interfaces/web/src/components/ui/breadcrumb.tsx +0 -125
- package/src/interfaces/web/src/components/ui/button-group.tsx +0 -87
- package/src/interfaces/web/src/components/ui/calendar.tsx +0 -221
- package/src/interfaces/web/src/components/ui/card.tsx +0 -103
- package/src/interfaces/web/src/components/ui/carousel.tsx +0 -242
- package/src/interfaces/web/src/components/ui/chart.tsx +0 -371
- package/src/interfaces/web/src/components/ui/checkbox.tsx +0 -29
- package/src/interfaces/web/src/components/ui/collapsible.tsx +0 -19
- package/src/interfaces/web/src/components/ui/combobox.tsx +0 -295
- package/src/interfaces/web/src/components/ui/command.tsx +0 -196
- package/src/interfaces/web/src/components/ui/direction.tsx +0 -4
- package/src/interfaces/web/src/components/ui/drawer.tsx +0 -134
- package/src/interfaces/web/src/components/ui/empty.tsx +0 -104
- package/src/interfaces/web/src/components/ui/field.tsx +0 -236
- package/src/interfaces/web/src/components/ui/hover-card.tsx +0 -51
- package/src/interfaces/web/src/components/ui/input-otp.tsx +0 -85
- package/src/interfaces/web/src/components/ui/item.tsx +0 -201
- package/src/interfaces/web/src/components/ui/menubar.tsx +0 -280
- package/src/interfaces/web/src/components/ui/native-select.tsx +0 -61
- package/src/interfaces/web/src/components/ui/navigation-menu.tsx +0 -168
- package/src/interfaces/web/src/components/ui/pagination.tsx +0 -130
- package/src/interfaces/web/src/components/ui/progress.tsx +0 -83
- package/src/interfaces/web/src/components/ui/radio-group.tsx +0 -36
- package/src/interfaces/web/src/components/ui/resizable.tsx +0 -50
- package/src/interfaces/web/src/components/ui/scroll-area.tsx +0 -53
- package/src/interfaces/web/src/components/ui/sidebar.tsx +0 -726
- package/src/interfaces/web/src/components/ui/slider.tsx +0 -52
- package/src/interfaces/web/src/components/ui/sonner.tsx +0 -49
- package/src/interfaces/web/src/components/ui/table.tsx +0 -116
- package/src/interfaces/web/src/components/ui/toggle-group.tsx +0 -87
- package/src/interfaces/web/src/components/ui/toggle.tsx +0 -45
- package/src/interfaces/web/src/hooks/use-mobile.ts +0 -19
- package/src/interfaces/web/src/screens/base/GlobalTasksTab.tsx +0 -161
|
@@ -34,6 +34,8 @@
|
|
|
34
34
|
--color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
|
|
35
35
|
--color-sidebar-border: hsl(var(--sidebar-border));
|
|
36
36
|
--color-sidebar-ring: hsl(var(--sidebar-ring));
|
|
37
|
+
--color-surface-soft: hsl(var(--surface-soft));
|
|
38
|
+
--color-bubble-mine: hsl(var(--bubble-mine));
|
|
37
39
|
--radius-lg: var(--radius);
|
|
38
40
|
--radius-md: calc(var(--radius) - 2px);
|
|
39
41
|
--radius-sm: calc(var(--radius) - 4px);
|
|
@@ -45,24 +47,49 @@
|
|
|
45
47
|
.dark off the <html> tag. Match Tailwind's `colors` config above. */
|
|
46
48
|
@layer base {
|
|
47
49
|
:root {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--
|
|
62
|
-
--
|
|
63
|
-
--
|
|
64
|
-
--
|
|
65
|
-
--
|
|
50
|
+
/* Light is a LIFTED theme, not a washed-out one: the page ground sits a
|
|
51
|
+
few points below white so cards/panels rise off it, borders are visible
|
|
52
|
+
at a glance, and secondary text is dark enough to read. The previous
|
|
53
|
+
palette lived between 91% and 100% lightness — every surface, edge and
|
|
54
|
+
label dissolved into the same fog.
|
|
55
|
+
Surfaces stop just short of pure white: a full-white card is a glare
|
|
56
|
+
panel at this size, and the 1-2 points off the top cost no lift (the
|
|
57
|
+
ground is still 6+ points below) while taking the sting out of it.
|
|
58
|
+
`--muted-foreground` is set where secondary text clears 4.5:1 on a card
|
|
59
|
+
— at 38% it read at 4.1 and every hint label was a squint. */
|
|
60
|
+
--background: 220 20% 92%;
|
|
61
|
+
--foreground: 222 24% 12%;
|
|
62
|
+
--card: 220 24% 99%;
|
|
63
|
+
--card-foreground: 222 24% 12%;
|
|
64
|
+
--popover: 220 24% 99%;
|
|
65
|
+
--popover-foreground: 222 24% 12%;
|
|
66
|
+
--muted: 220 18% 95%;
|
|
67
|
+
--muted-foreground: 220 13% 34%;
|
|
68
|
+
--accent: 220 22% 88%;
|
|
69
|
+
--accent-foreground: 222 24% 12%;
|
|
70
|
+
--secondary: 220 18% 94%;
|
|
71
|
+
--secondary-foreground: 222 24% 12%;
|
|
72
|
+
--border: 220 16% 83%;
|
|
73
|
+
--input: 220 16% 83%;
|
|
74
|
+
/* The house soft fill: one flat tone that carries its own shape, with no
|
|
75
|
+
border and no shadow drawing the same outline twice. #F3F3F2 — a hair
|
|
76
|
+
under the near-white panels it lands on (card, card/40), and off the
|
|
77
|
+
theme's blue-grey on purpose: at fill size that hue tints a column of
|
|
78
|
+
bubbles cold. Chat bubbles are the first user; anything flat and quiet
|
|
79
|
+
can take it. */
|
|
80
|
+
--surface-soft: 60 4% 95%;
|
|
81
|
+
/* The same fill in brand hue, for the side of a conversation that is you. */
|
|
82
|
+
--bubble-mine: 152 42% 85%;
|
|
83
|
+
--ring: 152 58% 36%;
|
|
84
|
+
/* Selection reads as APX green, not as full black. `--primary` drives
|
|
85
|
+
every "this one is picked" state in the app (rail ring, list rows, tabs,
|
|
86
|
+
chips), so a near-black primary painted the whole UI's selection in ink. */
|
|
87
|
+
--primary: 152 62% 30%;
|
|
88
|
+
--primary-foreground: 150 40% 98%;
|
|
89
|
+
/* 51% left `text-destructive` at 4.0:1 on the destructive/10 wash the
|
|
90
|
+
ghost Delete/Unregister buttons sit on. Solid destructive buttons
|
|
91
|
+
keep >5:1 against their white label at this value. */
|
|
92
|
+
--destructive: 0 72% 46%;
|
|
66
93
|
--destructive-foreground: 210 20% 98%;
|
|
67
94
|
--radius: 0.75rem;
|
|
68
95
|
--chart-1: 220 70% 50%;
|
|
@@ -70,14 +97,14 @@
|
|
|
70
97
|
--chart-3: 30 80% 55%;
|
|
71
98
|
--chart-4: 280 65% 60%;
|
|
72
99
|
--chart-5: 340 75% 55%;
|
|
73
|
-
--sidebar:
|
|
74
|
-
--sidebar-foreground: 222
|
|
75
|
-
--sidebar-primary:
|
|
76
|
-
--sidebar-primary-foreground:
|
|
77
|
-
--sidebar-accent: 220
|
|
78
|
-
--sidebar-accent-foreground: 222
|
|
79
|
-
--sidebar-border: 220
|
|
80
|
-
--sidebar-ring:
|
|
100
|
+
--sidebar: 220 24% 99%;
|
|
101
|
+
--sidebar-foreground: 222 24% 12%;
|
|
102
|
+
--sidebar-primary: 152 62% 30%;
|
|
103
|
+
--sidebar-primary-foreground: 150 40% 98%;
|
|
104
|
+
--sidebar-accent: 220 22% 88%;
|
|
105
|
+
--sidebar-accent-foreground: 222 24% 12%;
|
|
106
|
+
--sidebar-border: 220 16% 83%;
|
|
107
|
+
--sidebar-ring: 152 58% 36%;
|
|
81
108
|
}
|
|
82
109
|
.dark {
|
|
83
110
|
--background: 222 22% 5%;
|
|
@@ -94,9 +121,14 @@
|
|
|
94
121
|
--secondary-foreground: 210 16% 92%;
|
|
95
122
|
--border: 222 14% 18%;
|
|
96
123
|
--input: 222 14% 18%;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
--
|
|
124
|
+
/* Same two fills on a dark ground: a step up off the page, and a brand hue
|
|
125
|
+
at a lightness that reads green without glowing. */
|
|
126
|
+
--surface-soft: 222 14% 18%;
|
|
127
|
+
--bubble-mine: 152 28% 21%;
|
|
128
|
+
--ring: 152 60% 45%;
|
|
129
|
+
/* Same brand green as light, lifted for a dark ground. */
|
|
130
|
+
--primary: 152 58% 45%;
|
|
131
|
+
--primary-foreground: 155 60% 6%;
|
|
100
132
|
--destructive: 0 62% 50%;
|
|
101
133
|
--destructive-foreground: 210 16% 92%;
|
|
102
134
|
--chart-1: 217 91% 60%;
|
|
@@ -106,12 +138,12 @@
|
|
|
106
138
|
--chart-5: 340 75% 55%;
|
|
107
139
|
--sidebar: 222 16% 11%;
|
|
108
140
|
--sidebar-foreground: 210 16% 92%;
|
|
109
|
-
--sidebar-primary:
|
|
141
|
+
--sidebar-primary: 152 58% 45%;
|
|
110
142
|
--sidebar-primary-foreground: 210 16% 92%;
|
|
111
143
|
--sidebar-accent: 222 14% 17%;
|
|
112
144
|
--sidebar-accent-foreground: 210 16% 92%;
|
|
113
145
|
--sidebar-border: 222 14% 18%;
|
|
114
|
-
--sidebar-ring:
|
|
146
|
+
--sidebar-ring: 152 60% 45%;
|
|
115
147
|
}
|
|
116
148
|
body {
|
|
117
149
|
font-feature-settings: "rlig" 1, "calt" 1;
|
|
@@ -131,3 +163,46 @@
|
|
|
131
163
|
::-webkit-scrollbar { width: 10px; height: 10px; }
|
|
132
164
|
::-webkit-scrollbar-thumb { background: hsl(var(--border)); border-radius: 5px; }
|
|
133
165
|
::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground)); }
|
|
166
|
+
|
|
167
|
+
/* A strip that scrolls sideways and is only ONE row tall — a filter chip row —
|
|
168
|
+
where the 10px bar above is a second row of furniture under a single line of
|
|
169
|
+
controls. The strip still scrolls; it just does it the way a phone does. */
|
|
170
|
+
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
|
|
171
|
+
.no-scrollbar::-webkit-scrollbar { display: none; }
|
|
172
|
+
|
|
173
|
+
/* ── Blob agent avatars (animated) ──────────────────────────────────────────
|
|
174
|
+
Body is an <img>; eyes are an inline SVG overlaid at the same box. The
|
|
175
|
+
wrapper bobs+tilts (pivot at base); eyes look around and blink on their own
|
|
176
|
+
nested groups so the two transforms never fight. Per-instance desync comes
|
|
177
|
+
from an inline --bl-d delay. */
|
|
178
|
+
.blobav { position: relative; display: inline-block; }
|
|
179
|
+
.blobav-body { display: block; width: 100%; height: 100%; object-fit: contain;
|
|
180
|
+
-webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
|
|
181
|
+
.blobav-eyes-svg { position: absolute; inset: 0; width: 100%; height: 100%;
|
|
182
|
+
overflow: visible; pointer-events: none; }
|
|
183
|
+
|
|
184
|
+
.blobav-anim { animation: blobav-float 5s ease-in-out infinite;
|
|
185
|
+
animation-delay: var(--bl-d, 0s); transform-origin: 50% 100%; will-change: transform; }
|
|
186
|
+
.blobav-anim .blobav-look { transform-box: fill-box; transform-origin: center;
|
|
187
|
+
animation: blobav-look 7s ease-in-out infinite; animation-delay: var(--bl-d, 0s); }
|
|
188
|
+
.blobav-anim .blobav-eyes { transform-box: fill-box; transform-origin: center;
|
|
189
|
+
animation: blobav-blink 5.4s ease-in-out infinite; animation-delay: var(--bl-d, 0s); }
|
|
190
|
+
|
|
191
|
+
@keyframes blobav-float {
|
|
192
|
+
0% { transform: translateY(0) rotate(-3deg); }
|
|
193
|
+
50% { transform: translateY(-6%) rotate(3deg); }
|
|
194
|
+
100% { transform: translateY(0) rotate(-3deg); }
|
|
195
|
+
}
|
|
196
|
+
@keyframes blobav-look {
|
|
197
|
+
0%,16% { transform: translateX(0); }
|
|
198
|
+
28%,40% { transform: translateX(10px); }
|
|
199
|
+
52%,64% { transform: translateX(-10px); }
|
|
200
|
+
76%,100% { transform: translateX(0); }
|
|
201
|
+
}
|
|
202
|
+
@keyframes blobav-blink {
|
|
203
|
+
0%,93%,100% { transform: scaleY(1); }
|
|
204
|
+
96.5% { transform: scaleY(.08); }
|
|
205
|
+
}
|
|
206
|
+
@media (prefers-reduced-motion: reduce) {
|
|
207
|
+
.blobav-anim, .blobav-anim .blobav-look, .blobav-anim .blobav-eyes { animation: none !important; }
|
|
208
|
+
}
|
|
@@ -23,6 +23,8 @@ export type AgentAutonomy = "total" | "automatico" | "permiso";
|
|
|
23
23
|
|
|
24
24
|
export interface AgentEntry {
|
|
25
25
|
slug: string;
|
|
26
|
+
/** Display name. The slug remains the stable identity used for links/delegation. */
|
|
27
|
+
name?: string | null;
|
|
26
28
|
role: string | null;
|
|
27
29
|
model: string | null;
|
|
28
30
|
language: string | null;
|
|
@@ -32,6 +34,8 @@ export interface AgentEntry {
|
|
|
32
34
|
type?: string | null;
|
|
33
35
|
area?: string | null;
|
|
34
36
|
emoji?: string | null;
|
|
37
|
+
// Blob-preset key for the agent's animated avatar (see components/agents/blobPresets).
|
|
38
|
+
icon?: string | null;
|
|
35
39
|
autonomy?: AgentAutonomy | null;
|
|
36
40
|
skills: string[];
|
|
37
41
|
tools: string[];
|
|
@@ -65,18 +69,107 @@ export interface RoutineEntry {
|
|
|
65
69
|
last_error: string | null;
|
|
66
70
|
pre_commands?: string[];
|
|
67
71
|
post_commands?: string[];
|
|
72
|
+
/** Runtime state, not stored state: the daemon has a run of this open right
|
|
73
|
+
* now. Set by GET /projects/:pid/routines — absent means idle. */
|
|
74
|
+
running?: boolean;
|
|
75
|
+
run_started_at?: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** One step of a run in flight — a tool the agent called, or something it said
|
|
79
|
+
* on the way. The live twin of a finished run's trace. */
|
|
80
|
+
export interface RoutineRunStep {
|
|
81
|
+
at: string;
|
|
82
|
+
id: string;
|
|
83
|
+
kind: "tool" | "text";
|
|
84
|
+
tool?: string;
|
|
85
|
+
args?: Record<string, unknown> | null;
|
|
86
|
+
status?: "running" | "done" | "error";
|
|
87
|
+
text?: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** The daemon's record of a routine run in flight. Read once from
|
|
91
|
+
* GET /projects/:pid/routines/:name/run, then followed live via RoutineFrame. */
|
|
92
|
+
export interface LiveRoutineRun {
|
|
93
|
+
run_id: string;
|
|
94
|
+
routine: string;
|
|
95
|
+
kind: string;
|
|
96
|
+
trigger: "manual" | "schedule" | "agent" | string;
|
|
97
|
+
started_at: string;
|
|
98
|
+
phase: "pre" | "agent" | "delivery" | "post";
|
|
99
|
+
agent_slug: string | null;
|
|
100
|
+
steps: RoutineRunStep[];
|
|
101
|
+
text: string;
|
|
102
|
+
ended_at?: string;
|
|
103
|
+
status?: string;
|
|
104
|
+
error?: string | null;
|
|
105
|
+
conversation_id?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** One run a routine has already made, as the daemon reads it back out of the
|
|
109
|
+
* ledger (core/routines/run-log.js). A "routine updated" row is not one. */
|
|
110
|
+
export interface RoutineRun {
|
|
111
|
+
ts: string;
|
|
112
|
+
routine: string;
|
|
113
|
+
status: "ok" | "error" | "skipped";
|
|
114
|
+
skipped: boolean;
|
|
115
|
+
body: string;
|
|
116
|
+
result: Record<string, unknown>;
|
|
117
|
+
flow: {
|
|
118
|
+
pre?: { output?: string; exit?: number } | null;
|
|
119
|
+
delivery?: Record<string, unknown> | null;
|
|
120
|
+
post?: Array<{ cmd: string; exit: number; stdout: string; stderr: string }> | null;
|
|
121
|
+
} | null;
|
|
122
|
+
/** Lifted out of the result: what "open this run's chat" needs. */
|
|
123
|
+
conversation_id: string | null;
|
|
124
|
+
agent_slug: string | null;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/** A live-feed frame carrying a routine run as it moves. Unlike a message frame
|
|
128
|
+
* this carries the data — a run's steps are not in the ledger until it ends. */
|
|
129
|
+
export interface RoutineFrame {
|
|
130
|
+
phase: "start" | "progress" | "end";
|
|
131
|
+
project_id: number | string | null;
|
|
132
|
+
routine: string;
|
|
133
|
+
run: LiveRoutineRun;
|
|
68
134
|
}
|
|
69
135
|
|
|
70
136
|
// Workflow sub-status for an open task (orthogonal to `state`).
|
|
71
137
|
export type TaskStatus = "pending" | "running" | "in_review" | "blocked";
|
|
72
138
|
|
|
139
|
+
/** What KIND of task — a closed set the daemon routes on. See
|
|
140
|
+
* core/constants/task-categories.js. Tags stay free-form and separate. */
|
|
141
|
+
export type TaskCategory = "general" | "trip";
|
|
142
|
+
|
|
143
|
+
/** Where an errand is. A category that is not locatable never carries one. */
|
|
144
|
+
export interface TaskLocation {
|
|
145
|
+
place?: string;
|
|
146
|
+
address?: string;
|
|
147
|
+
latitude?: number;
|
|
148
|
+
longitude?: number;
|
|
149
|
+
radius_m?: number;
|
|
150
|
+
}
|
|
151
|
+
|
|
73
152
|
export interface TaskEntry {
|
|
74
153
|
id: string;
|
|
75
154
|
state: "open" | "done" | "dropped";
|
|
76
|
-
|
|
155
|
+
/**
|
|
156
|
+
* The board column this task sits in. A plain string, NOT `TaskStatus`:
|
|
157
|
+
* columns are configurable (core/tasks/columns.js), so the four built-ins are
|
|
158
|
+
* a default catalog rather than a closed set.
|
|
159
|
+
*/
|
|
160
|
+
status?: string;
|
|
77
161
|
title: string;
|
|
162
|
+
/** Id of the parent task. A subtask is a task with a parent — nothing more. */
|
|
163
|
+
parent?: string | null;
|
|
164
|
+
/** What the owner has to do, in their words. */
|
|
165
|
+
description?: string | null;
|
|
166
|
+
/** The prompt an agent receives when it runs the task. Not a description. */
|
|
78
167
|
body: string | null;
|
|
79
168
|
tags: string[];
|
|
169
|
+
priority?: "low" | "normal" | "high" | "urgent";
|
|
170
|
+
reminder_frequency?: "none" | "once" | "daily" | "weekly";
|
|
171
|
+
category?: TaskCategory;
|
|
172
|
+
location?: TaskLocation | null;
|
|
80
173
|
due: string | null;
|
|
81
174
|
agent: string | null;
|
|
82
175
|
source: string | null;
|
|
@@ -87,6 +180,21 @@ export interface TaskEntry {
|
|
|
87
180
|
dropped_at?: string | null;
|
|
88
181
|
created_at: string;
|
|
89
182
|
updated_at: string;
|
|
183
|
+
/** Present on the detail (GET one). List rows carry `comment_count` instead. */
|
|
184
|
+
comments?: TaskComment[];
|
|
185
|
+
comment_count?: number;
|
|
186
|
+
subtask_count?: number;
|
|
187
|
+
subtask_done?: number;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface TaskComment {
|
|
191
|
+
id: string;
|
|
192
|
+
ts: string;
|
|
193
|
+
/** "owner" or an agent slug. */
|
|
194
|
+
by: string | null;
|
|
195
|
+
text: string;
|
|
196
|
+
/** Agent slugs this comment addressed, resolved when it was written. */
|
|
197
|
+
mentions: string[];
|
|
90
198
|
}
|
|
91
199
|
|
|
92
200
|
export interface OrgArea {
|
|
@@ -209,6 +317,22 @@ export interface ConversationListEntry {
|
|
|
209
317
|
channel?: string;
|
|
210
318
|
messages?: number;
|
|
211
319
|
title?: string;
|
|
320
|
+
/** Put away: still on disk, just out of the lists that offer chats to resume. */
|
|
321
|
+
archived?: boolean;
|
|
322
|
+
/** Daemon snapshot when this conversation is being answered right now. */
|
|
323
|
+
active_turn?: ActiveTurn | null;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/** An attachment that arrived with a turn: the file is on disk under
|
|
327
|
+
* ~/.apx/media and `path` is what /api/media streams back. `path` is null when
|
|
328
|
+
* the download failed — the turn still records what was sent. */
|
|
329
|
+
export interface MessageMedia {
|
|
330
|
+
kind: "audio" | "photo" | "video" | "animation" | "document" | "file";
|
|
331
|
+
path: string | null;
|
|
332
|
+
name: string | null;
|
|
333
|
+
mime: string | null;
|
|
334
|
+
size: number | null;
|
|
335
|
+
duration: number | null;
|
|
212
336
|
}
|
|
213
337
|
|
|
214
338
|
export interface ConversationMessage {
|
|
@@ -228,9 +352,31 @@ export interface ConversationMessage {
|
|
|
228
352
|
actor_kind?: string;
|
|
229
353
|
model?: string;
|
|
230
354
|
usage?: ChatUsage;
|
|
355
|
+
/** Group only: which agent's @mention pulled this speaker in ("traído por X"). */
|
|
356
|
+
reason?: string;
|
|
357
|
+
/** Group system notice: an agent joined ("joined") or left ("left") the room.
|
|
358
|
+
* `who` is the agent slug it concerns. Rendered as a centred line. */
|
|
359
|
+
event?: "joined" | "left";
|
|
360
|
+
who?: string;
|
|
231
361
|
/** Compact record of what the turn did, written at the time (the live tool
|
|
232
362
|
* events are long gone by the time a thread is read back). */
|
|
233
363
|
tool_summary?: ToolSummary;
|
|
364
|
+
/** The model's thinking for that turn, one entry per model pass. Never part
|
|
365
|
+
* of `content` — the adapter keeps the two apart. */
|
|
366
|
+
reasoning?: string[];
|
|
367
|
+
/** The skill inspector's decision for that turn, recorded at write time. */
|
|
368
|
+
skill_inspector?: {
|
|
369
|
+
embedder?: string;
|
|
370
|
+
loaded?: string[];
|
|
371
|
+
hinted?: string[];
|
|
372
|
+
scored?: { slug: string; sim: number }[];
|
|
373
|
+
};
|
|
374
|
+
/** The file this turn carried — a user's upload, or one the agent SENT (a
|
|
375
|
+
* skill image it attached, a photo pushed to Telegram, a routine delivery).
|
|
376
|
+
* A stored row records one file; `media_list` is the several-file spelling a
|
|
377
|
+
* delivery writes, and it mirrors its first file here. */
|
|
378
|
+
media?: MessageMedia;
|
|
379
|
+
media_list?: MessageMedia[];
|
|
234
380
|
}
|
|
235
381
|
|
|
236
382
|
export interface ToolSummary {
|
|
@@ -245,22 +391,103 @@ export interface ConversationDetail {
|
|
|
245
391
|
channel?: string;
|
|
246
392
|
messages: ConversationMessage[];
|
|
247
393
|
meta?: Record<string, unknown>;
|
|
394
|
+
/** A turn being written right now (streamed over the live feed), so a surface
|
|
395
|
+
* opening this chat mid-answer shows the partial and follows the tokens. */
|
|
396
|
+
active_turn?: ActiveTurn | null;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/** The daemon's record of an in-progress chat turn — the partial text so far
|
|
400
|
+
* plus who is writing it. Followed live via `TurnFrame`s on the events feed. */
|
|
401
|
+
export interface ActiveTurn {
|
|
402
|
+
turn_id: string;
|
|
403
|
+
text: string;
|
|
404
|
+
project_id?: number | string | null;
|
|
405
|
+
agent_slug?: string;
|
|
406
|
+
conversation_id?: string;
|
|
407
|
+
channel?: string;
|
|
408
|
+
thread_id?: string;
|
|
409
|
+
model?: string;
|
|
410
|
+
started_at?: string;
|
|
411
|
+
/** Ordered visible work captured by the daemon for a mid-turn reload. */
|
|
412
|
+
parts?: Array<
|
|
413
|
+
| { kind: "text"; text: string; streaming?: boolean }
|
|
414
|
+
| {
|
|
415
|
+
kind: "tool";
|
|
416
|
+
id: string;
|
|
417
|
+
tool: string;
|
|
418
|
+
args?: Record<string, unknown> | null;
|
|
419
|
+
result?: unknown;
|
|
420
|
+
status: "running" | "done" | "error";
|
|
421
|
+
}
|
|
422
|
+
>;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/** A live-feed frame carrying a turn's tokens as they are written — the stream
|
|
426
|
+
* that used to belong only to the sending tab, now pushed to every surface. */
|
|
427
|
+
export interface TurnFrame {
|
|
428
|
+
phase: "start" | "delta" | "final" | "aborted" | "error";
|
|
429
|
+
project_id: number | string | null;
|
|
430
|
+
agent_slug: string | null;
|
|
431
|
+
conversation_id: string | null;
|
|
432
|
+
channel?: string | null;
|
|
433
|
+
thread_id?: string | null;
|
|
434
|
+
turn_id: string;
|
|
435
|
+
delta?: string;
|
|
436
|
+
result?: { text?: string; usage?: ChatUsage; model?: string; name?: string; conversation_id?: string };
|
|
437
|
+
error?: string;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* One participant's resolved avatar + display name.
|
|
442
|
+
*
|
|
443
|
+
* Resolved by the daemon (host/daemon/api/thread-faces.js) and shipped on the
|
|
444
|
+
* payload, never re-derived from a slug in the panel: the super-agent and a
|
|
445
|
+
* coding CLI are not project agents, so a screen resolving faces against its own
|
|
446
|
+
* agent list draws a bare letter for exactly the participants that matter most.
|
|
447
|
+
*/
|
|
448
|
+
export interface AgentFace {
|
|
449
|
+
/** Project / actor slug — needed to open the agent's ficha from a group face. */
|
|
450
|
+
slug?: string | null;
|
|
451
|
+
/** Blob-preset key (see components/agents/blobPresets), when the agent has one. */
|
|
452
|
+
icon?: string | null;
|
|
453
|
+
emoji?: string | null;
|
|
454
|
+
/** Display name — used for the fallback initial and to seed the colour. */
|
|
455
|
+
name?: string | null;
|
|
248
456
|
}
|
|
249
457
|
|
|
250
458
|
/** Super-agent channel thread (one per channel+day of the global ledger). */
|
|
251
459
|
export interface ThreadListEntry {
|
|
252
460
|
id: string; // YYYY-MM-DD
|
|
253
461
|
channel: string; // telegram | web | desktop | deck | …
|
|
462
|
+
/** Already display-ready: for a2a and group threads it is "Andy · Claude",
|
|
463
|
+
* built from the resolved faces below, not the raw pair id. */
|
|
254
464
|
title: string;
|
|
255
465
|
messages: number;
|
|
256
466
|
started_at: string;
|
|
257
467
|
last_ts: string;
|
|
468
|
+
archived?: boolean;
|
|
469
|
+
/** For multi-agent threads (a2a, group): the participant agent slugs… */
|
|
470
|
+
participants?: string[];
|
|
471
|
+
/** …and the face each one wears. */
|
|
472
|
+
participant_faces?: AgentFace[];
|
|
473
|
+
preview?: string;
|
|
474
|
+
/** Daemon snapshot when this thread is being answered right now. */
|
|
475
|
+
active_turn?: ActiveTurn | null;
|
|
258
476
|
}
|
|
259
477
|
|
|
260
478
|
export interface ThreadDetail {
|
|
261
479
|
id: string;
|
|
262
480
|
channel: string;
|
|
481
|
+
/** What this thread is called: the reader's own name for it, the resolved
|
|
482
|
+
* "A · B" of a multi-agent thread, or the first thing that was said in it. */
|
|
483
|
+
title?: string;
|
|
484
|
+
archived?: boolean;
|
|
485
|
+
/** For multi-agent threads (a2a, group): the participant agent slugs… */
|
|
486
|
+
participants?: string[];
|
|
487
|
+
/** …and the face each one wears, so the header can draw them without a list. */
|
|
488
|
+
participant_faces?: AgentFace[];
|
|
263
489
|
messages: ConversationMessage[];
|
|
490
|
+
active_turn?: ActiveTurn | null;
|
|
264
491
|
}
|
|
265
492
|
|
|
266
493
|
export interface PairedClient {
|
|
@@ -310,6 +537,7 @@ export interface Identity {
|
|
|
310
537
|
export interface SuperAgentConfig {
|
|
311
538
|
enabled: boolean;
|
|
312
539
|
name: string;
|
|
540
|
+
icon: string;
|
|
313
541
|
model: string;
|
|
314
542
|
system: string;
|
|
315
543
|
permission_mode: string;
|
|
@@ -398,6 +626,8 @@ export interface ChatStreamEvent {
|
|
|
398
626
|
delta?: string;
|
|
399
627
|
text?: string;
|
|
400
628
|
content?: string;
|
|
629
|
+
// assistant_reasoning: the model's chain of thought, kept out of the answer
|
|
630
|
+
reasoning?: string;
|
|
401
631
|
// diagnostics
|
|
402
632
|
error?: string;
|
|
403
633
|
iteration?: number;
|
|
@@ -420,12 +650,26 @@ export interface ChatStreamEvent {
|
|
|
420
650
|
hinted?: string[];
|
|
421
651
|
jit?: boolean;
|
|
422
652
|
};
|
|
423
|
-
//
|
|
653
|
+
// start: the turn's identity, sent before any work so a client can address it
|
|
654
|
+
// (stop it, or interrupt it by sending) from the first token onward. A project
|
|
655
|
+
// agent's turn names its conversation; Roby's names the channel, which is what
|
|
656
|
+
// its thread IS.
|
|
657
|
+
turn_id?: string;
|
|
658
|
+
conversation_id?: string;
|
|
659
|
+
channel?: string;
|
|
660
|
+
thread_id?: string;
|
|
661
|
+
agent_slug?: string;
|
|
662
|
+
// final — and `aborted`, which carries the same shape for the partial the
|
|
663
|
+
// turn had produced when it was stopped. Deliberately not an `error`.
|
|
424
664
|
result?: {
|
|
425
665
|
text?: string;
|
|
426
666
|
usage?: ChatUsage;
|
|
427
667
|
/** Agent persona that answered (identity.json name / agent slug). */
|
|
428
668
|
name?: string;
|
|
669
|
+
/** The conversation the turn was appended to — a project agent's streamed
|
|
670
|
+
* turn returns it so the client can bind subsequent sends (and the file
|
|
671
|
+
* rewind of regenerate / edit) to it. */
|
|
672
|
+
conversation_id?: string;
|
|
429
673
|
/** Engine that actually produced the reply — may differ from the configured
|
|
430
674
|
* one when routing fell back mid-turn. */
|
|
431
675
|
model?: string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
2
|
+
|
|
3
|
+
interface Window {
|
|
4
|
+
APXAndroid?: {
|
|
5
|
+
openOptions(): void;
|
|
6
|
+
notificationsEnabled(): boolean;
|
|
7
|
+
openNotificationSettings(): void;
|
|
8
|
+
// Which kinds of news the APK may ring for, as a JSON string of
|
|
9
|
+
// `{ channel: boolean }` — a WebView bridge carries primitives only.
|
|
10
|
+
// Optional because they are: an APK installed before this shipped has a
|
|
11
|
+
// bridge without them, and the panel has to render against that phone too.
|
|
12
|
+
notifyChannels?(): string;
|
|
13
|
+
setNotifyChannel?(channel: string, on: boolean): void;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Vite's client types declare the ambient modules for asset imports
|
|
18
|
+
// (`*.webp`, `*.png`, `*.svg`, …) that resolve to a URL string at build time —
|
|
19
|
+
// e.g. AgentAvatar.tsx importing the coding-CLI brand logos. Without this
|
|
20
|
+
// reference `tsc --noEmit` (the pre-push web typecheck) fails with TS2307.
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// Legacy `api.command` bridge for v1 plugins; remove in v2.
|
|
2
|
-
import type { TuiCommand, TuiPluginApi } from "@opencode-ai/plugin/tui"
|
|
3
|
-
import { TuiKeybind } from "../config/keybind"
|
|
4
|
-
import type { DialogContext } from "../ui/dialog"
|
|
5
|
-
|
|
6
|
-
const COMMAND_PALETTE_SHOW = "command.palette.show"
|
|
7
|
-
const warned = new Set<string>()
|
|
8
|
-
|
|
9
|
-
type Warn = (api: string, replacement: string) => void
|
|
10
|
-
type LegacyDialog = TuiPluginApi["ui"]["dialog"]
|
|
11
|
-
type CommandShimDialog = DialogContext | LegacyDialog
|
|
12
|
-
type LegacyKeybinds = TuiPluginApi["tuiConfig"]["keybinds"]
|
|
13
|
-
|
|
14
|
-
function warnCommandShim(api: string, replacement: string) {
|
|
15
|
-
// Warn v1 plugins about deprecated `api.command`; remove this shim path in v2.
|
|
16
|
-
console.warn("[tui.plugin] deprecated TUI plugin API", { api, replacement })
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function createCommandShimDialog(dialog: CommandShimDialog): LegacyDialog {
|
|
20
|
-
if (!("stack" in dialog)) return dialog
|
|
21
|
-
return {
|
|
22
|
-
replace(render, onClose) {
|
|
23
|
-
dialog.replace(render, onClose)
|
|
24
|
-
},
|
|
25
|
-
clear() {
|
|
26
|
-
dialog.clear()
|
|
27
|
-
},
|
|
28
|
-
setSize(size) {
|
|
29
|
-
dialog.setSize(size)
|
|
30
|
-
},
|
|
31
|
-
get size() {
|
|
32
|
-
return dialog.size
|
|
33
|
-
},
|
|
34
|
-
get depth() {
|
|
35
|
-
return dialog.stack.length
|
|
36
|
-
},
|
|
37
|
-
get open() {
|
|
38
|
-
return dialog.stack.length > 0
|
|
39
|
-
},
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function warnOnce(api: string, replacement: string, warn: Warn) {
|
|
44
|
-
if (warned.has(api)) return
|
|
45
|
-
warned.add(api)
|
|
46
|
-
warn(api, replacement)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function toCommand(item: TuiCommand, dialog: LegacyDialog) {
|
|
50
|
-
return {
|
|
51
|
-
namespace: "palette",
|
|
52
|
-
name: item.value,
|
|
53
|
-
title: item.title,
|
|
54
|
-
desc: item.description,
|
|
55
|
-
category: item.category,
|
|
56
|
-
suggested: item.suggested,
|
|
57
|
-
hidden: item.hidden,
|
|
58
|
-
enabled: item.enabled,
|
|
59
|
-
slashName: item.slash?.name,
|
|
60
|
-
slashAliases: item.slash?.aliases,
|
|
61
|
-
run() {
|
|
62
|
-
return item.onSelect?.(dialog)
|
|
63
|
-
},
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function toBindings(commands: TuiCommand[], keybinds: LegacyKeybinds) {
|
|
68
|
-
return commands.flatMap((item) =>
|
|
69
|
-
item.keybind
|
|
70
|
-
? keybinds.has(TuiKeybind.CommandMap[item.keybind as keyof typeof TuiKeybind.CommandMap] ?? item.keybind)
|
|
71
|
-
? keybinds
|
|
72
|
-
.get(TuiKeybind.CommandMap[item.keybind as keyof typeof TuiKeybind.CommandMap] ?? item.keybind)
|
|
73
|
-
.map((binding) => ({ ...binding, cmd: item.value, desc: binding.desc ?? item.title }))
|
|
74
|
-
: [
|
|
75
|
-
{
|
|
76
|
-
key: item.keybind,
|
|
77
|
-
cmd: item.value,
|
|
78
|
-
desc: item.title,
|
|
79
|
-
},
|
|
80
|
-
]
|
|
81
|
-
: [],
|
|
82
|
-
)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export function createCommandShim(
|
|
86
|
-
keymap: TuiPluginApi["keymap"],
|
|
87
|
-
dialog: CommandShimDialog,
|
|
88
|
-
keybinds: LegacyKeybinds,
|
|
89
|
-
): TuiPluginApi["command"] {
|
|
90
|
-
const shimDialog = createCommandShimDialog(dialog)
|
|
91
|
-
return {
|
|
92
|
-
register(cb) {
|
|
93
|
-
warnOnce("api.command.register", "api.keymap.registerLayer({ commands, bindings })", warnCommandShim)
|
|
94
|
-
const commands = cb()
|
|
95
|
-
return keymap.registerLayer({
|
|
96
|
-
commands: commands.map((item) => toCommand(item, shimDialog)),
|
|
97
|
-
bindings: toBindings(commands, keybinds),
|
|
98
|
-
})
|
|
99
|
-
},
|
|
100
|
-
trigger(value) {
|
|
101
|
-
warnOnce("api.command.trigger", "api.keymap.dispatchCommand(name)", warnCommandShim)
|
|
102
|
-
keymap.dispatchCommand(value)
|
|
103
|
-
},
|
|
104
|
-
show() {
|
|
105
|
-
warnOnce("api.command.show", `api.keymap.dispatchCommand("${COMMAND_PALETTE_SHOW}")`, warnCommandShim)
|
|
106
|
-
keymap.dispatchCommand(COMMAND_PALETTE_SHOW)
|
|
107
|
-
},
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
-
"style": "base-nova",
|
|
4
|
-
"rsc": false,
|
|
5
|
-
"tsx": true,
|
|
6
|
-
"tailwind": {
|
|
7
|
-
"config": "tailwind.config.js",
|
|
8
|
-
"css": "src/styles.css",
|
|
9
|
-
"baseColor": "neutral",
|
|
10
|
-
"cssVariables": true,
|
|
11
|
-
"prefix": ""
|
|
12
|
-
},
|
|
13
|
-
"iconLibrary": "lucide",
|
|
14
|
-
"rtl": false,
|
|
15
|
-
"aliases": {
|
|
16
|
-
"components": "@/components",
|
|
17
|
-
"utils": "@/lib/utils",
|
|
18
|
-
"ui": "@/components/ui",
|
|
19
|
-
"lib": "@/lib",
|
|
20
|
-
"hooks": "@/hooks"
|
|
21
|
-
},
|
|
22
|
-
"menuColor": "default",
|
|
23
|
-
"menuAccent": "subtle",
|
|
24
|
-
"registries": {}
|
|
25
|
-
}
|