@agentprojectcontext/apx 1.77.3 → 1.79.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/README.md +23 -9
- package/package.json +12 -12
- package/src/core/agent/build-agent-system.js +3 -2
- package/src/core/agent/constants.js +3 -2
- package/src/core/agent/loop/greeting-guard.js +55 -0
- package/src/core/agent/loop/side-effects.js +52 -0
- package/src/core/agent/prompt-builder.js +49 -8
- package/src/core/agent/run-agent.js +43 -53
- package/src/core/agent/security.js +1 -1
- package/src/core/agent/self-memory.js +4 -2
- package/src/core/agent/skills/index-store.js +2 -2
- package/src/core/agent/skills/loader.js +3 -22
- package/src/core/agent/super-agent.js +0 -2
- package/src/core/agent/tool-summary.js +65 -0
- package/src/core/agent/tools/handlers/call-runtime.js +4 -4
- package/src/core/agent/tools/handlers/list-commitments.js +80 -0
- package/src/core/agent/tools/handlers/list-tasks.js +66 -27
- package/src/core/agent/tools/handlers/record-commitment.js +68 -0
- package/src/core/agent/tools/handlers/search-sessions.js +1 -1
- package/src/core/agent/tools/handlers/send-telegram.js +68 -2
- package/src/core/agent/tools/handlers/set-permission-mode.js +11 -4
- package/src/core/agent/tools/names.js +64 -0
- package/src/core/agent/tools/registry.js +9 -0
- package/src/core/agent/tools/tool-call-parser.js +70 -1
- package/src/core/apc/context-copy.js +1 -1
- package/src/core/apc/frontmatter.js +85 -0
- package/src/core/apc/parser.js +9 -21
- package/src/core/apc/paths.js +8 -8
- package/src/core/apc/scaffold.js +5 -4
- package/src/core/channels/telegram/ask-callbacks.js +35 -0
- package/src/core/channels/telegram/config.js +201 -0
- package/src/core/channels/telegram/dispatch.js +3 -0
- package/src/core/channels/telegram/reply.js +30 -5
- package/src/core/config/index.js +25 -183
- package/src/core/config/paths.js +57 -1
- package/src/core/config/redact.js +22 -0
- package/src/core/confirmation/adapters/web.js +1 -1
- package/src/core/daemon/service.js +238 -0
- package/src/core/deck/manifest.js +12 -12
- package/src/core/desktop/autostart.js +3 -2
- package/src/core/desktop/process.js +4 -4
- package/src/core/engines/gemini.js +322 -60
- package/src/core/engines/openai-compatible.js +21 -2
- package/src/core/engines/presets.js +2 -2
- package/src/core/http-tools/browser.js +1 -1
- package/src/core/http-tools/catalog.js +551 -0
- package/src/core/http-tools/fetch.js +1 -1
- package/src/core/http-tools/glob.js +3 -3
- package/src/core/http-tools/grep.js +2 -9
- package/src/core/http-tools/inline-handlers.js +59 -0
- package/src/core/http-tools/registry.js +31 -615
- package/src/core/http-tools/search.js +2 -2
- package/src/core/identity/self.js +6 -7
- package/src/core/identity/telegram.js +3 -3
- package/src/core/logging.js +6 -5
- package/src/core/mcp/sources.js +12 -16
- package/src/core/memory/consolidate.js +225 -0
- package/src/core/memory/indexer.js +2 -5
- package/src/core/nudge/index.js +192 -0
- package/src/core/nudge/policy.js +143 -0
- package/src/core/nudge/store.js +141 -0
- package/src/core/profiles/bundled/secretary/PROFILE.md +8 -9
- package/src/core/profiles/bundled/secretary/config.schema.json +33 -3
- package/src/core/profiles/bundled/secretary/routines/day-close.json +7 -3
- package/src/core/profiles/bundled/secretary/routines/day-open.json +7 -3
- package/src/core/profiles/bundled/secretary/routines/watch.json +13 -0
- package/src/core/profiles/lifecycle.js +0 -2
- package/src/core/profiles/store.js +2 -7
- package/src/core/routines/runner.js +103 -4
- package/src/core/routines/signals.js +270 -0
- package/src/core/runtime-skills/apx-agency-agents/SKILL.md +2 -2
- package/src/core/runtime-skills/apx-profile/SKILL.md +3 -3
- package/src/core/runtime-skills/apx-project/SKILL.md +1 -1
- package/src/core/runtime-skills/apx-task/SKILL.md +8 -8
- package/src/core/runtime-skills/apx-telegram/SKILL.md +4 -4
- package/src/core/runtime-skills/apx-voice/SKILL.md +4 -4
- package/src/core/runtimes/detect.js +2 -2
- package/src/core/sessions/index.js +800 -0
- package/src/core/stores/code-sessions.js +3 -14
- package/src/core/stores/commitments.js +331 -0
- package/src/core/stores/engine-sessions.js +0 -4
- package/src/core/stores/messages.js +4 -5
- package/src/core/stores/organization.js +9 -11
- package/src/core/stores/routines.js +23 -14
- package/src/core/stores/runtime-callbacks.js +2 -1
- package/src/core/util/json-file.js +128 -0
- package/src/core/util/thinking.js +51 -0
- package/src/core/vars/sources.js +14 -21
- package/src/core/voice/stt-models.js +1 -1
- package/src/core/voice/tts.js +5 -4
- package/src/host/daemon/api/admin-config.js +5 -5
- package/src/host/daemon/api/admin.js +8 -7
- package/src/host/daemon/api/agents.js +16 -16
- package/src/host/daemon/api/artifact-preview.js +8 -8
- package/src/host/daemon/api/artifacts.js +7 -7
- package/src/host/daemon/api/code.js +8 -8
- package/src/host/daemon/api/commitments.js +135 -0
- package/src/host/daemon/api/config.js +6 -6
- package/src/host/daemon/api/confirm.js +2 -2
- package/src/host/daemon/api/connections.js +2 -2
- package/src/host/daemon/api/conversations.js +12 -12
- package/src/host/daemon/api/deck.js +6 -6
- package/src/host/daemon/api/desktop.js +8 -8
- package/src/host/daemon/api/embeddings.js +4 -4
- package/src/host/daemon/api/engines.js +8 -7
- package/src/host/daemon/api/exec.js +5 -4
- package/src/host/daemon/api/files-project.js +6 -6
- package/src/host/daemon/api/health.js +2 -2
- package/src/host/daemon/api/identity.js +3 -3
- package/src/host/daemon/api/inbox.js +2 -2
- package/src/host/daemon/api/integrations.js +23 -19
- package/src/host/daemon/api/mcps.js +16 -12
- package/src/host/daemon/api/messages.js +5 -5
- package/src/host/daemon/api/nudges.js +112 -0
- package/src/host/daemon/api/organization.js +8 -8
- package/src/host/daemon/api/pairing.js +6 -6
- package/src/host/daemon/api/plugins.js +3 -3
- package/src/host/daemon/api/prefix.js +20 -0
- package/src/host/daemon/api/profiles.js +9 -9
- package/src/host/daemon/api/projects.js +5 -5
- package/src/host/daemon/api/routines.js +32 -8
- package/src/host/daemon/api/run.js +2 -2
- package/src/host/daemon/api/runtimes.js +6 -6
- package/src/host/daemon/api/self-memory.js +50 -0
- package/src/host/daemon/api/sessions-search.js +18 -11
- package/src/host/daemon/api/sessions.js +6 -6
- package/src/host/daemon/api/shared.js +59 -13
- package/src/host/daemon/api/skills.js +12 -12
- package/src/host/daemon/api/super-agent.js +4 -4
- package/src/host/daemon/api/tasks.js +11 -11
- package/src/host/daemon/api/telegram.js +61 -24
- package/src/host/daemon/api/tools.js +7 -7
- package/src/host/daemon/api/top-level.js +7 -7
- package/src/host/daemon/api/transcribe.js +6 -6
- package/src/host/daemon/api/tts.js +3 -3
- package/src/host/daemon/api/vars.js +11 -8
- package/src/host/daemon/api/voice.js +9 -7
- package/src/host/daemon/api/web.js +28 -32
- package/src/host/daemon/api.js +83 -48
- package/src/host/daemon/callback-reconciler.js +16 -0
- package/src/host/daemon/db.js +1 -1
- package/src/host/daemon/desktop-ws.js +7 -3
- package/src/host/daemon/index.js +11 -5
- package/src/host/daemon/plugins/desktop/index.js +8 -2
- package/src/host/daemon/plugins/telegram/index.js +7 -2
- package/src/host/daemon/stt-venv.js +20 -81
- package/src/host/daemon/wakeup.js +18 -4
- package/src/interfaces/acp/index.js +3 -3
- package/src/interfaces/acp/session.js +2 -2
- package/src/interfaces/cli/commands/a2a.js +2 -2
- package/src/interfaces/cli/commands/agent.js +3 -3
- package/src/interfaces/cli/commands/artifact.js +13 -13
- package/src/interfaces/cli/commands/chat.js +3 -3
- package/src/interfaces/cli/commands/command.js +2 -2
- package/src/interfaces/cli/commands/commitment.js +154 -0
- package/src/interfaces/cli/commands/config.js +4 -4
- package/src/interfaces/cli/commands/daemon.js +74 -18
- package/src/interfaces/cli/commands/desktop.js +7 -14
- package/src/interfaces/cli/commands/exec.js +2 -2
- package/src/interfaces/cli/commands/log.js +3 -4
- package/src/interfaces/cli/commands/mcp.js +9 -9
- package/src/interfaces/cli/commands/memory.js +75 -2
- package/src/interfaces/cli/commands/messages.js +5 -5
- package/src/interfaces/cli/commands/model.js +0 -18
- package/src/interfaces/cli/commands/nudge.js +130 -0
- package/src/interfaces/cli/commands/obsidian.js +5 -5
- package/src/interfaces/cli/commands/org.js +5 -5
- package/src/interfaces/cli/commands/pair.js +6 -6
- package/src/interfaces/cli/commands/plugins.js +2 -2
- package/src/interfaces/cli/commands/profile.js +10 -10
- package/src/interfaces/cli/commands/project-config.js +6 -6
- package/src/interfaces/cli/commands/project.js +10 -10
- package/src/interfaces/cli/commands/routine.js +8 -9
- package/src/interfaces/cli/commands/runtime.js +2 -2
- package/src/interfaces/cli/commands/search.js +0 -1
- package/src/interfaces/cli/commands/session.js +12 -40
- package/src/interfaces/cli/commands/sessions.js +21 -798
- package/src/interfaces/cli/commands/setup.js +16 -6
- package/src/interfaces/cli/commands/skills.js +1 -2
- package/src/interfaces/cli/commands/status.js +3 -3
- package/src/interfaces/cli/commands/task.js +8 -8
- package/src/interfaces/cli/commands/telegram.js +21 -21
- package/src/interfaces/cli/commands/voice.js +6 -6
- package/src/interfaces/cli/help/index.js +2245 -0
- package/src/interfaces/cli/http.js +9 -4
- package/src/interfaces/cli/index.js +14 -2857
- package/src/interfaces/cli/routes/acp.js +13 -0
- package/src/interfaces/cli/routes/agent.js +27 -0
- package/src/interfaces/cli/routes/artifact.js +28 -0
- package/src/interfaces/cli/routes/chat.js +11 -0
- package/src/interfaces/cli/routes/code.js +11 -0
- package/src/interfaces/cli/routes/command.js +21 -0
- package/src/interfaces/cli/routes/commitment.js +19 -0
- package/src/interfaces/cli/routes/config.js +16 -0
- package/src/interfaces/cli/routes/connections.js +11 -0
- package/src/interfaces/cli/routes/conversations.js +21 -0
- package/src/interfaces/cli/routes/daemon.js +25 -0
- package/src/interfaces/cli/routes/desktop.js +20 -0
- package/src/interfaces/cli/routes/env.js +13 -0
- package/src/interfaces/cli/routes/exec.js +11 -0
- package/src/interfaces/cli/routes/identity.js +11 -0
- package/src/interfaces/cli/routes/index.js +75 -0
- package/src/interfaces/cli/routes/init.js +11 -0
- package/src/interfaces/cli/routes/log.js +20 -0
- package/src/interfaces/cli/routes/mcp.js +22 -0
- package/src/interfaces/cli/routes/memory.js +19 -0
- package/src/interfaces/cli/routes/messages.js +16 -0
- package/src/interfaces/cli/routes/model.js +11 -0
- package/src/interfaces/cli/routes/nudge.js +17 -0
- package/src/interfaces/cli/routes/obsidian.js +17 -0
- package/src/interfaces/cli/routes/org.js +34 -0
- package/src/interfaces/cli/routes/overlay.js +10 -0
- package/src/interfaces/cli/routes/pair.js +17 -0
- package/src/interfaces/cli/routes/panel.js +16 -0
- package/src/interfaces/cli/routes/permission.js +11 -0
- package/src/interfaces/cli/routes/plugins.js +21 -0
- package/src/interfaces/cli/routes/profile.js +27 -0
- package/src/interfaces/cli/routes/project.js +41 -0
- package/src/interfaces/cli/routes/restart.js +15 -0
- package/src/interfaces/cli/routes/routine.js +28 -0
- package/src/interfaces/cli/routes/run.js +11 -0
- package/src/interfaces/cli/routes/search.js +11 -0
- package/src/interfaces/cli/routes/send.js +11 -0
- package/src/interfaces/cli/routes/session.js +26 -0
- package/src/interfaces/cli/routes/sessions.js +15 -0
- package/src/interfaces/cli/routes/setup.js +18 -0
- package/src/interfaces/cli/routes/skills.js +20 -0
- package/src/interfaces/cli/routes/status.js +12 -0
- package/src/interfaces/cli/routes/task.js +26 -0
- package/src/interfaces/cli/routes/telegram.js +39 -0
- package/src/interfaces/cli/routes/update.js +24 -0
- package/src/interfaces/cli/routes/voice.js +17 -0
- package/src/interfaces/desktop/main.js +6 -7
- package/src/interfaces/desktop/renderer.js +0 -5
- package/src/interfaces/mcp-server/index.js +15 -14
- package/src/interfaces/tui/_shims/globals.d.ts +8 -0
- package/src/interfaces/tui/tsconfig.json +4 -1
- package/src/interfaces/web/README.md +6 -6
- package/src/interfaces/web/dist/assets/index-CvEoGtTf.js +849 -0
- package/src/interfaces/web/dist/assets/index-CvEoGtTf.js.map +1 -0
- package/src/interfaces/web/dist/assets/index-DzBBXFaO.css +1 -0
- package/src/interfaces/web/dist/index.html +2 -2
- package/src/interfaces/web/package-lock.json +11 -10
- package/src/interfaces/web/src/components/AddProjectDialog.tsx +1 -1
- package/src/interfaces/web/src/components/Section.tsx +18 -3
- package/src/interfaces/web/src/components/agents/AgentFormFields.tsx +1 -1
- package/src/interfaces/web/src/components/chat/ChatList.tsx +2 -2
- package/src/interfaces/web/src/components/chat/MessageBubble.tsx +13 -0
- package/src/interfaces/web/src/components/chat/SkillPicker.tsx +1 -1
- package/src/interfaces/web/src/components/code/CodeFileTree.tsx +1 -1
- package/src/interfaces/web/src/components/code/CodeTerminal.tsx +1 -1
- package/src/interfaces/web/src/components/cron/CronPicker.tsx +196 -0
- package/src/interfaces/web/src/components/desktop/DesktopStatusCard.tsx +1 -1
- package/src/interfaces/web/src/components/files/FileBrowser.tsx +2 -2
- package/src/interfaces/web/src/components/inbox/InboxList.tsx +145 -0
- package/src/interfaces/web/src/components/memory/MemoryBrowser.tsx +36 -6
- package/src/interfaces/web/src/components/routines/ExecutionsList.tsx +1 -1
- package/src/interfaces/web/src/components/routines/RoutineDetail.tsx +16 -4
- package/src/interfaces/web/src/components/routines/RoutineEditor.tsx +14 -4
- package/src/interfaces/web/src/components/routines/shared.ts +14 -5
- package/src/interfaces/web/src/components/settings/DesktopSettingsPanel.tsx +1 -1
- package/src/interfaces/web/src/components/settings/MemoryPanel.tsx +1 -1
- package/src/interfaces/web/src/components/settings/NudgePanel.tsx +183 -0
- package/src/interfaces/web/src/components/settings/ProfilePanel.tsx +36 -12
- package/src/interfaces/web/src/components/settings/SkillsInspectorPanel.tsx +1 -1
- package/src/interfaces/web/src/components/settings/SkillsManager.tsx +2 -2
- package/src/interfaces/web/src/components/tasks/TaskDetailPanel.tsx +1 -1
- package/src/interfaces/web/src/components/ui/filter-chips.tsx +47 -0
- package/src/interfaces/web/src/components/ui.tsx +1 -0
- package/src/interfaces/web/src/constants/index.ts +1 -0
- package/src/interfaces/web/src/hooks/useChat.ts +5 -1
- package/src/interfaces/web/src/hooks/useDaemonStatus.ts +1 -1
- package/src/interfaces/web/src/hooks/useDevices.ts +1 -1
- package/src/interfaces/web/src/hooks/useEngines.ts +1 -1
- package/src/interfaces/web/src/hooks/useGlobalConfig.ts +2 -2
- package/src/interfaces/web/src/hooks/useIdentity.ts +1 -1
- package/src/interfaces/web/src/hooks/useInbox.ts +1 -1
- package/src/interfaces/web/src/hooks/useNudges.ts +38 -0
- package/src/interfaces/web/src/hooks/useProfiles.ts +3 -3
- package/src/interfaces/web/src/hooks/useProjects.ts +1 -1
- package/src/interfaces/web/src/hooks/useTelegram.ts +3 -3
- package/src/interfaces/web/src/hooks/useTokenBootstrap.ts +3 -3
- package/src/interfaces/web/src/i18n/en.ts +127 -0
- package/src/interfaces/web/src/i18n/es.ts +127 -0
- package/src/interfaces/web/src/lib/api/admin.ts +11 -11
- package/src/interfaces/web/src/lib/api/agents.ts +14 -14
- package/src/interfaces/web/src/lib/api/artifacts.ts +11 -11
- package/src/interfaces/web/src/lib/api/code.ts +1 -1
- package/src/interfaces/web/src/lib/api/commitments.ts +57 -0
- package/src/interfaces/web/src/lib/api/conversations.ts +8 -8
- package/src/interfaces/web/src/lib/api/deck.ts +3 -3
- package/src/interfaces/web/src/lib/api/desktop.ts +8 -8
- package/src/interfaces/web/src/lib/api/embeddings.ts +3 -3
- package/src/interfaces/web/src/lib/api/engines.ts +3 -3
- package/src/interfaces/web/src/lib/api/filesystem.ts +2 -2
- package/src/interfaces/web/src/lib/api/health.ts +1 -1
- package/src/interfaces/web/src/lib/api/identity.ts +2 -2
- package/src/interfaces/web/src/lib/api/inbox.ts +1 -1
- package/src/interfaces/web/src/lib/api/integrations.ts +8 -8
- package/src/interfaces/web/src/lib/api/mcps.ts +6 -6
- package/src/interfaces/web/src/lib/api/messages.ts +3 -3
- package/src/interfaces/web/src/lib/api/notebook.ts +23 -0
- package/src/interfaces/web/src/lib/api/nudges.ts +53 -0
- package/src/interfaces/web/src/lib/api/organization.ts +7 -7
- package/src/interfaces/web/src/lib/api/profiles.ts +8 -8
- package/src/interfaces/web/src/lib/api/projectFiles.ts +5 -5
- package/src/interfaces/web/src/lib/api/projects.ts +12 -12
- package/src/interfaces/web/src/lib/api/routines.ts +7 -7
- package/src/interfaces/web/src/lib/api/sessions.ts +2 -2
- package/src/interfaces/web/src/lib/api/skills.ts +11 -11
- package/src/interfaces/web/src/lib/api/super_agent.ts +3 -3
- package/src/interfaces/web/src/lib/api/tasks.ts +12 -12
- package/src/interfaces/web/src/lib/api/telegram.ts +14 -14
- package/src/interfaces/web/src/lib/api/tools.ts +1 -1
- package/src/interfaces/web/src/lib/api/vars.ts +4 -4
- package/src/interfaces/web/src/lib/api/voice.ts +6 -6
- package/src/interfaces/web/src/lib/cron.ts +196 -0
- package/src/interfaces/web/src/lib/when.ts +32 -0
- package/src/interfaces/web/src/screens/InboxScreen.tsx +107 -77
- package/src/interfaces/web/src/screens/ProjectScreen.tsx +5 -2
- package/src/interfaces/web/src/screens/SettingsScreen.tsx +17 -3
- package/src/interfaces/web/src/screens/base/AgentDefaultsTab.tsx +1 -1
- package/src/interfaces/web/src/screens/base/CommitmentsTab.tsx +239 -0
- package/src/interfaces/web/src/screens/base/GlobalTasksTab.tsx +103 -20
- package/src/interfaces/web/src/screens/base/LogsTab.tsx +18 -3
- package/src/interfaces/web/src/screens/base/SessionsTab.tsx +1 -1
- package/src/interfaces/web/src/screens/modules/CodeScreen.tsx +1 -1
- package/src/interfaces/web/src/screens/modules/DeckScreen.tsx +1 -1
- package/src/interfaces/web/src/screens/modules/DesktopScreen.tsx +1 -1
- package/src/interfaces/web/src/screens/modules/VoiceScreen.tsx +1 -1
- package/src/interfaces/web/src/screens/project/AgentDetailScreen.tsx +8 -8
- package/src/interfaces/web/src/screens/project/AgentsTab.tsx +2 -2
- package/src/interfaces/web/src/screens/project/ChatTab.tsx +24 -6
- package/src/interfaces/web/src/screens/project/ConfigTab.tsx +1 -1
- package/src/interfaces/web/src/screens/project/McpsTab.tsx +3 -3
- package/src/interfaces/web/src/screens/project/Overview.tsx +6 -6
- package/src/interfaces/web/src/screens/project/RoutinesTab.tsx +15 -13
- package/src/interfaces/web/src/screens/project/StructureTab.tsx +1 -1
- package/src/interfaces/web/src/screens/project/TasksTab.tsx +1 -1
- package/src/interfaces/web/src/screens/project/VarsTab.tsx +1 -1
- package/src/interfaces/web/src/types/daemon.ts +10 -1
- package/src/interfaces/web/vite.config.ts +13 -18
- package/src/interfaces/web/dist/assets/index-BptlbKjU.js +0 -824
- package/src/interfaces/web/dist/assets/index-BptlbKjU.js.map +0 -1
- package/src/interfaces/web/dist/assets/index-D_EJEA1n.css +0 -1
- package/src/skills/apc-context/SKILL.md +0 -159
- /package/src/{host/daemon → core}/runtimes/_spawn.js +0 -0
- /package/src/{host/daemon → core}/runtimes/aider.js +0 -0
- /package/src/{host/daemon → core}/runtimes/antigravity.js +0 -0
- /package/src/{host/daemon → core}/runtimes/claude-code.js +0 -0
- /package/src/{host/daemon → core}/runtimes/codex.js +0 -0
- /package/src/{host/daemon → core}/runtimes/cursor-agent.js +0 -0
- /package/src/{host/daemon → core}/runtimes/gemini-cli.js +0 -0
- /package/src/{host/daemon → core}/runtimes/index.js +0 -0
- /package/src/{host/daemon → core}/runtimes/opencode.js +0 -0
- /package/src/{host/daemon → core}/runtimes/qwen-code.js +0 -0
|
@@ -57,7 +57,7 @@ export function useTokenBootstrap(): AuthState {
|
|
|
57
57
|
(async () => {
|
|
58
58
|
// 1. Is the daemon even up?
|
|
59
59
|
try {
|
|
60
|
-
const probe = await fetch("/health");
|
|
60
|
+
const probe = await fetch("/api/health");
|
|
61
61
|
if (!probe.ok) throw new Error(`HTTP ${probe.status}`);
|
|
62
62
|
} catch (e) {
|
|
63
63
|
if (!cancelled) setState({ status: "error", reason: String(e) });
|
|
@@ -107,7 +107,7 @@ export function useTokenBootstrap(): AuthState {
|
|
|
107
107
|
|
|
108
108
|
// 3. Loopback endpoint — only succeeds on local same-origin requests.
|
|
109
109
|
try {
|
|
110
|
-
const t = await fetch("/admin/web-token");
|
|
110
|
+
const t = await fetch("/api/admin/web-token");
|
|
111
111
|
if (t.ok) {
|
|
112
112
|
const body = await t.json();
|
|
113
113
|
if (body?.token) {
|
|
@@ -125,7 +125,7 @@ export function useTokenBootstrap(): AuthState {
|
|
|
125
125
|
|
|
126
126
|
// 5. Validate the token with one cheap authenticated call.
|
|
127
127
|
try {
|
|
128
|
-
await http.get("/projects");
|
|
128
|
+
await http.get("/api/projects");
|
|
129
129
|
if (!cancelled) setState({ status: "ok" });
|
|
130
130
|
} catch (e) {
|
|
131
131
|
if (e instanceof HttpError && (e.status === 401 || e.status === 403)) {
|
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
// Keep entries in the same order as es.ts so diffs stay readable.
|
|
3
3
|
|
|
4
4
|
export const en = {
|
|
5
|
+
cron: {
|
|
6
|
+
daily: "every day at {at}",
|
|
7
|
+
weekdays: "Monday to Friday at {at}",
|
|
8
|
+
weekends: "weekends at {at}",
|
|
9
|
+
on_days: "{days} at {at}",
|
|
10
|
+
monthly: "day {day} of each month at {at}",
|
|
11
|
+
every_hour: "every hour, at :{minute}",
|
|
12
|
+
every_n_hours: "every {n} hours, at :{minute}",
|
|
13
|
+
every_n_minutes: "every {n} minutes",
|
|
14
|
+
every_minute: "every minute",
|
|
15
|
+
every_label: "every N hours instead",
|
|
16
|
+
use_cron: "edit as cron",
|
|
17
|
+
use_picker: "use the picker",
|
|
18
|
+
preset_every_day: "every day",
|
|
19
|
+
preset_weekdays: "weekdays",
|
|
20
|
+
preset_weekends: "weekends",
|
|
21
|
+
day_short: { sun: "Sun", mon: "Mon", tue: "Tue", wed: "Wed", thu: "Thu", fri: "Fri", sat: "Sat" },
|
|
22
|
+
},
|
|
23
|
+
when: {
|
|
24
|
+
now: "now",
|
|
25
|
+
in: "in {amount}",
|
|
26
|
+
ago: "{amount} ago",
|
|
27
|
+
minutes: "{n} min",
|
|
28
|
+
hours: "{n} h",
|
|
29
|
+
days: "{n} d",
|
|
30
|
+
},
|
|
5
31
|
common: {
|
|
6
32
|
loading: "Loading…",
|
|
7
33
|
saving: "Saving…",
|
|
@@ -143,6 +169,11 @@ export const en = {
|
|
|
143
169
|
no_folders: "No folders.",
|
|
144
170
|
},
|
|
145
171
|
inbox: {
|
|
172
|
+
search: "Search",
|
|
173
|
+
no_match: "Nothing matches",
|
|
174
|
+
hide_quiet: "Hide quiet agents",
|
|
175
|
+
open_in_project: "Open in project",
|
|
176
|
+
super_agent_scope: "All projects",
|
|
146
177
|
title: "Agent inbox",
|
|
147
178
|
subtitle:
|
|
148
179
|
"Every agent as a conversation, most recent first.",
|
|
@@ -195,6 +226,8 @@ export const en = {
|
|
|
195
226
|
devices_revoke: "Revoke",
|
|
196
227
|
account_section: "Account",
|
|
197
228
|
agents_section: "Agents & models",
|
|
229
|
+
super_agent_section: "Super-agent",
|
|
230
|
+
knowledge_section: "Models & knowledge",
|
|
198
231
|
channels_section: "Channels & devices",
|
|
199
232
|
modules_section: "Modules",
|
|
200
233
|
advanced_section: "Advanced",
|
|
@@ -206,6 +239,7 @@ export const en = {
|
|
|
206
239
|
engines: "Engines & models",
|
|
207
240
|
telegram: "Telegram",
|
|
208
241
|
devices: "Devices",
|
|
242
|
+
nudge: "Interruptions",
|
|
209
243
|
advanced: "Advanced",
|
|
210
244
|
},
|
|
211
245
|
|
|
@@ -222,6 +256,9 @@ export const en = {
|
|
|
222
256
|
activate: "Activate",
|
|
223
257
|
replace_active: "Replace the active one",
|
|
224
258
|
deactivate: "Deactivate",
|
|
259
|
+
on: "Active",
|
|
260
|
+
off: "Inactive",
|
|
261
|
+
replaces_active: "Turning this on replaces the active profile",
|
|
225
262
|
deactivate_title: "Deactivate the profile?",
|
|
226
263
|
deactivate_confirm:
|
|
227
264
|
"APX goes back to vanilla. The profile's routines are disabled but not deleted, and your settings, tasks and memory are untouched — activating it again restores everything.",
|
|
@@ -245,6 +282,34 @@ export const en = {
|
|
|
245
282
|
doctor_vanilla: "No profile active. APX behaves as it always has.",
|
|
246
283
|
},
|
|
247
284
|
|
|
285
|
+
nudge: {
|
|
286
|
+
title: "Interruption budget",
|
|
287
|
+
subtitle:
|
|
288
|
+
"How often APX may write to you without being asked. Replies to your own messages are never held back.",
|
|
289
|
+
off_hint:
|
|
290
|
+
"The budget is off: every unrequested message goes out. Everything is still recorded below.",
|
|
291
|
+
on_hint: "{{sent}} sent today, {{left}} left.",
|
|
292
|
+
source: "Set by",
|
|
293
|
+
enabled: "Enforce the budget",
|
|
294
|
+
daily_max: "Messages per day",
|
|
295
|
+
daily_max_hint: "0 means no ceiling.",
|
|
296
|
+
quiet_hours: "Quiet hours",
|
|
297
|
+
quiet_hours_hint: "HH:MM-HH:MM. Crosses midnight fine. Leave empty for none.",
|
|
298
|
+
cooldown: "Minimum gap (minutes)",
|
|
299
|
+
project_cooldown: "Minimum gap per project (minutes)",
|
|
300
|
+
kind_cooldown: "Minimum gap per kind (minutes)",
|
|
301
|
+
critical_bypass: "Critical messages may bypass the budget",
|
|
302
|
+
critical_bypass_hint: "Bypasses are always recorded and flagged.",
|
|
303
|
+
log_title: "What it has sent",
|
|
304
|
+
log_subtitle: "Unrequested messages only, newest first. Your rating feeds back into what it sends next.",
|
|
305
|
+
log_empty: "Nothing sent unprompted yet.",
|
|
306
|
+
useful: "Useful",
|
|
307
|
+
noise: "Not useful",
|
|
308
|
+
bypass: "bypassed the budget",
|
|
309
|
+
saved: "Budget updated",
|
|
310
|
+
unrated: "not rated",
|
|
311
|
+
},
|
|
312
|
+
|
|
248
313
|
identity: {
|
|
249
314
|
title: "Identity",
|
|
250
315
|
subtitle: "User data. Agent configuration goes in Super-agent.",
|
|
@@ -338,6 +403,7 @@ export const en = {
|
|
|
338
403
|
agents: "Agents",
|
|
339
404
|
routines: "Routines",
|
|
340
405
|
tasks: "Tasks",
|
|
406
|
+
commitments: "Commitments",
|
|
341
407
|
mcps: "MCPs",
|
|
342
408
|
artifacts: "Artifacts",
|
|
343
409
|
vars: "Variables",
|
|
@@ -442,6 +508,16 @@ export const en = {
|
|
|
442
508
|
},
|
|
443
509
|
|
|
444
510
|
global_tasks: {
|
|
511
|
+
|
|
512
|
+
add: "Add",
|
|
513
|
+
|
|
514
|
+
add_title: "New task",
|
|
515
|
+
|
|
516
|
+
field_title: "Task",
|
|
517
|
+
|
|
518
|
+
field_project: "Project",
|
|
519
|
+
|
|
520
|
+
field_due: "Due",
|
|
445
521
|
any_status: "any status",
|
|
446
522
|
title: "Tasks (all projects)",
|
|
447
523
|
subtitle: "Aggregated tasks from all registered projects.",
|
|
@@ -450,6 +526,44 @@ export const en = {
|
|
|
450
526
|
go_project: "Go to project",
|
|
451
527
|
},
|
|
452
528
|
|
|
529
|
+
commitments: {
|
|
530
|
+
|
|
531
|
+
add: "Add",
|
|
532
|
+
|
|
533
|
+
add_title: "Record a promise",
|
|
534
|
+
|
|
535
|
+
add_hint: "Something you told a specific person you would do. Tasks live next door.",
|
|
536
|
+
|
|
537
|
+
field_who: "Who is waiting",
|
|
538
|
+
|
|
539
|
+
field_who_hint: "A name as you would say it — free text, not a contact.",
|
|
540
|
+
|
|
541
|
+
field_what: "What you promised",
|
|
542
|
+
|
|
543
|
+
field_what_ph: "send the revised quote",
|
|
544
|
+
|
|
545
|
+
field_due: "By when",
|
|
546
|
+
|
|
547
|
+
field_due_hint: "Optional, but it is the part that makes this useful.",
|
|
548
|
+
|
|
549
|
+
field_project: "Project",
|
|
550
|
+
title: "Commitments",
|
|
551
|
+
subtitle: "What was promised, to whom, and by when. Separate from tasks: someone is waiting on these.",
|
|
552
|
+
empty: "Nothing promised.",
|
|
553
|
+
overdue: "was due",
|
|
554
|
+
overdue_only: "Past their date",
|
|
555
|
+
no_date: "no date agreed",
|
|
556
|
+
moved: "moved",
|
|
557
|
+
mark_kept: "Kept",
|
|
558
|
+
mark_missed: "Missed",
|
|
559
|
+
state: {
|
|
560
|
+
open: "open",
|
|
561
|
+
kept: "kept",
|
|
562
|
+
missed: "missed",
|
|
563
|
+
all: "all",
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
|
|
453
567
|
routines: {
|
|
454
568
|
title: "Heartbeats / Routines",
|
|
455
569
|
subtitle: "Cron, every:Nm, once:ISO. Each routine fires an agent or a shell.",
|
|
@@ -784,6 +898,12 @@ export const en = {
|
|
|
784
898
|
},
|
|
785
899
|
|
|
786
900
|
memories: {
|
|
901
|
+
|
|
902
|
+
super_agent_group: "Super-agent",
|
|
903
|
+
|
|
904
|
+
notebook_item: "{persona}'s notebook",
|
|
905
|
+
|
|
906
|
+
tokens: "~{n} tok",
|
|
787
907
|
sidebar_title: "Memories",
|
|
788
908
|
general_group: "General",
|
|
789
909
|
general_item: "Project memory",
|
|
@@ -875,6 +995,8 @@ export const en = {
|
|
|
875
995
|
no_activity_ch: "No activity in channel \"{ch}\".",
|
|
876
996
|
error: "Could not read messages: {msg}",
|
|
877
997
|
show_more: "show more",
|
|
998
|
+
event_routine_created: "routine created",
|
|
999
|
+
event_routine_updated: "routine updated",
|
|
878
1000
|
show_less: "show less",
|
|
879
1001
|
daemon_errors: "Daemon errors (~/.apx/logs/errors.jsonl)",
|
|
880
1002
|
no_errors: "No errors recorded. 🎉",
|
|
@@ -1566,6 +1688,9 @@ export const en = {
|
|
|
1566
1688
|
kind_routine: "routine",
|
|
1567
1689
|
kind_hierarchy: "hierarchy",
|
|
1568
1690
|
nodes_drag_hint: "{n} nodes · drag to rearrange",
|
|
1691
|
+
kind_watch: "Watcher",
|
|
1692
|
+
kind_watch_desc: "Sweeps for things worth noticing — overdue work, promises coming due, projects gone quiet. Costs nothing when there is nothing to report.",
|
|
1693
|
+
action_watch: "Watches for signals, and judges only when it finds some",
|
|
1569
1694
|
kind_exec_agent: "Project agent",
|
|
1570
1695
|
kind_exec_agent_desc: "Runs a project agent with a prompt. You pick which one.",
|
|
1571
1696
|
kind_super_agent: "Super-agent",
|
|
@@ -1585,6 +1710,7 @@ export const en = {
|
|
|
1585
1710
|
preset_every_10m: "every 10 min",
|
|
1586
1711
|
preset_hourly: "hourly",
|
|
1587
1712
|
preset_daily_9am: "daily 9am",
|
|
1713
|
+
sched_manual: "only when you run it",
|
|
1588
1714
|
preset_weekdays_9am: "weekdays 9am",
|
|
1589
1715
|
preset_manual: "Manual",
|
|
1590
1716
|
var_pre_output_prompt: "Text output of the pre-commands. Replaced inside the prompt/text before it is sent. Use it to inject fresh data (weather, an API) into the instruction.",
|
|
@@ -1875,6 +2001,7 @@ export const en = {
|
|
|
1875
2001
|
shared_ui: {
|
|
1876
2002
|
skill_inspector_title: "Skill Inspector ({embedder}) chose these skills for this turn",
|
|
1877
2003
|
tools_count: "{n} tools",
|
|
2004
|
+
tools_failed: "{n} failed",
|
|
1878
2005
|
tool_read_file: "Read file",
|
|
1879
2006
|
tool_write_file: "Write file",
|
|
1880
2007
|
tool_edit_file: "Edit file",
|
|
@@ -3,6 +3,32 @@
|
|
|
3
3
|
// will TypeScript-error on unknown keys.
|
|
4
4
|
|
|
5
5
|
export const es = {
|
|
6
|
+
cron: {
|
|
7
|
+
daily: "todos los días a las {at}",
|
|
8
|
+
weekdays: "de lunes a viernes a las {at}",
|
|
9
|
+
weekends: "fines de semana a las {at}",
|
|
10
|
+
on_days: "{days} a las {at}",
|
|
11
|
+
monthly: "el día {day} de cada mes a las {at}",
|
|
12
|
+
every_hour: "cada hora, al minuto {minute}",
|
|
13
|
+
every_n_hours: "cada {n} horas, al minuto {minute}",
|
|
14
|
+
every_n_minutes: "cada {n} minutos",
|
|
15
|
+
every_minute: "cada minuto",
|
|
16
|
+
every_label: "cada N horas en vez de una hora fija",
|
|
17
|
+
use_cron: "editar como cron",
|
|
18
|
+
use_picker: "usar el selector",
|
|
19
|
+
preset_every_day: "todos los días",
|
|
20
|
+
preset_weekdays: "días de semana",
|
|
21
|
+
preset_weekends: "fin de semana",
|
|
22
|
+
day_short: { sun: "Dom", mon: "Lun", tue: "Mar", wed: "Mié", thu: "Jue", fri: "Vie", sat: "Sáb" },
|
|
23
|
+
},
|
|
24
|
+
when: {
|
|
25
|
+
now: "ahora",
|
|
26
|
+
in: "en {amount}",
|
|
27
|
+
ago: "hace {amount}",
|
|
28
|
+
minutes: "{n} min",
|
|
29
|
+
hours: "{n} h",
|
|
30
|
+
days: "{n} d",
|
|
31
|
+
},
|
|
6
32
|
common: {
|
|
7
33
|
loading: "Cargando…",
|
|
8
34
|
saving: "Guardando…",
|
|
@@ -144,6 +170,11 @@ export const es = {
|
|
|
144
170
|
no_folders: "Sin carpetas.",
|
|
145
171
|
},
|
|
146
172
|
inbox: {
|
|
173
|
+
search: "Buscar",
|
|
174
|
+
no_match: "No coincide nada",
|
|
175
|
+
hide_quiet: "Ocultar agentes callados",
|
|
176
|
+
open_in_project: "Abrir en el proyecto",
|
|
177
|
+
super_agent_scope: "Todos los proyectos",
|
|
147
178
|
title: "Bandeja de agentes",
|
|
148
179
|
subtitle:
|
|
149
180
|
"Cada agente como una conversación, lo más reciente primero.",
|
|
@@ -196,6 +227,8 @@ export const es = {
|
|
|
196
227
|
devices_revoke: "Revocar",
|
|
197
228
|
account_section: "Cuenta",
|
|
198
229
|
agents_section: "Agentes & modelos",
|
|
230
|
+
super_agent_section: "Super-agente",
|
|
231
|
+
knowledge_section: "Modelos y conocimiento",
|
|
199
232
|
channels_section: "Canales & dispositivos",
|
|
200
233
|
modules_section: "Módulos",
|
|
201
234
|
advanced_section: "Avanzado",
|
|
@@ -207,6 +240,7 @@ export const es = {
|
|
|
207
240
|
engines: "Engines & modelos",
|
|
208
241
|
telegram: "Telegram",
|
|
209
242
|
devices: "Dispositivos",
|
|
243
|
+
nudge: "Interrupciones",
|
|
210
244
|
advanced: "Avanzado",
|
|
211
245
|
},
|
|
212
246
|
|
|
@@ -223,6 +257,9 @@ export const es = {
|
|
|
223
257
|
activate: "Activar",
|
|
224
258
|
replace_active: "Reemplazar el activo",
|
|
225
259
|
deactivate: "Desactivar",
|
|
260
|
+
on: "Activo",
|
|
261
|
+
off: "Inactivo",
|
|
262
|
+
replaces_active: "Activarlo reemplaza al perfil activo",
|
|
226
263
|
deactivate_title: "¿Desactivar el perfil?",
|
|
227
264
|
deactivate_confirm:
|
|
228
265
|
"APX vuelve a vanilla. Las rutinas del perfil se deshabilitan pero no se borran, y tu configuración, tareas y memoria quedan intactas: volver a activarlo restaura todo.",
|
|
@@ -246,6 +283,34 @@ export const es = {
|
|
|
246
283
|
doctor_vanilla: "Sin perfil activo. APX se comporta como siempre.",
|
|
247
284
|
},
|
|
248
285
|
|
|
286
|
+
nudge: {
|
|
287
|
+
title: "Presupuesto de interrupciones",
|
|
288
|
+
subtitle:
|
|
289
|
+
"Cada cuánto puede escribirte APX sin que se lo pidas. Las respuestas a tus propios mensajes nunca se retienen.",
|
|
290
|
+
off_hint:
|
|
291
|
+
"El presupuesto está apagado: sale todo mensaje no solicitado. Igual queda registrado acá abajo.",
|
|
292
|
+
on_hint: "{{sent}} enviados hoy, quedan {{left}}.",
|
|
293
|
+
source: "Definido por",
|
|
294
|
+
enabled: "Aplicar el presupuesto",
|
|
295
|
+
daily_max: "Mensajes por día",
|
|
296
|
+
daily_max_hint: "0 significa sin techo.",
|
|
297
|
+
quiet_hours: "Horas de silencio",
|
|
298
|
+
quiet_hours_hint: "HH:MM-HH:MM. Cruza la medianoche sin problema. Vacío = ninguna.",
|
|
299
|
+
cooldown: "Espacio mínimo (minutos)",
|
|
300
|
+
project_cooldown: "Espacio mínimo por proyecto (minutos)",
|
|
301
|
+
kind_cooldown: "Espacio mínimo por tipo (minutos)",
|
|
302
|
+
critical_bypass: "Lo crítico puede saltarse el presupuesto",
|
|
303
|
+
critical_bypass_hint: "Los saltos quedan siempre registrados y marcados.",
|
|
304
|
+
log_title: "Lo que mandó",
|
|
305
|
+
log_subtitle: "Sólo mensajes no solicitados, del más nuevo al más viejo. Lo que marques alimenta lo que manda después.",
|
|
306
|
+
log_empty: "Todavía no mandó nada sin que se lo pidieras.",
|
|
307
|
+
useful: "Me sirvió",
|
|
308
|
+
noise: "No me servía",
|
|
309
|
+
bypass: "se salteó el presupuesto",
|
|
310
|
+
saved: "Presupuesto actualizado",
|
|
311
|
+
unrated: "sin calificar",
|
|
312
|
+
},
|
|
313
|
+
|
|
249
314
|
identity: {
|
|
250
315
|
title: "Identidad",
|
|
251
316
|
subtitle: "Datos del usuario. Configuración del agente va en Super-agente.",
|
|
@@ -339,6 +404,7 @@ export const es = {
|
|
|
339
404
|
agents: "Agents",
|
|
340
405
|
routines: "Rutinas",
|
|
341
406
|
tasks: "Tasks",
|
|
407
|
+
commitments: "Compromisos",
|
|
342
408
|
mcps: "MCPs",
|
|
343
409
|
artifacts: "Artifacts",
|
|
344
410
|
vars: "Variables",
|
|
@@ -443,6 +509,16 @@ export const es = {
|
|
|
443
509
|
},
|
|
444
510
|
|
|
445
511
|
global_tasks: {
|
|
512
|
+
|
|
513
|
+
add: "Agregar",
|
|
514
|
+
|
|
515
|
+
add_title: "Nueva tarea",
|
|
516
|
+
|
|
517
|
+
field_title: "Tarea",
|
|
518
|
+
|
|
519
|
+
field_project: "Proyecto",
|
|
520
|
+
|
|
521
|
+
field_due: "Vence",
|
|
446
522
|
any_status: "cualquier estado",
|
|
447
523
|
title: "Tasks (todos los proyectos)",
|
|
448
524
|
subtitle: "Tareas agregadas de todos los proyectos registrados.",
|
|
@@ -451,6 +527,44 @@ export const es = {
|
|
|
451
527
|
go_project: "Ir al proyecto",
|
|
452
528
|
},
|
|
453
529
|
|
|
530
|
+
commitments: {
|
|
531
|
+
|
|
532
|
+
add: "Agregar",
|
|
533
|
+
|
|
534
|
+
add_title: "Registrar una promesa",
|
|
535
|
+
|
|
536
|
+
add_hint: "Algo que le dijiste a una persona concreta que ibas a hacer. Las tareas están al lado.",
|
|
537
|
+
|
|
538
|
+
field_who: "Quién está esperando",
|
|
539
|
+
|
|
540
|
+
field_who_hint: "El nombre como lo dirías vos — texto libre, no un contacto.",
|
|
541
|
+
|
|
542
|
+
field_what: "Qué prometiste",
|
|
543
|
+
|
|
544
|
+
field_what_ph: "mandar el presupuesto corregido",
|
|
545
|
+
|
|
546
|
+
field_due: "Para cuándo",
|
|
547
|
+
|
|
548
|
+
field_due_hint: "Opcional, pero es la parte que lo hace útil.",
|
|
549
|
+
|
|
550
|
+
field_project: "Proyecto",
|
|
551
|
+
title: "Compromisos",
|
|
552
|
+
subtitle: "Qué prometiste, a quién y para cuándo. Aparte de las tareas: acá hay alguien esperando.",
|
|
553
|
+
empty: "Nada prometido.",
|
|
554
|
+
overdue: "vencía",
|
|
555
|
+
overdue_only: "Pasados de fecha",
|
|
556
|
+
no_date: "sin fecha acordada",
|
|
557
|
+
moved: "movido",
|
|
558
|
+
mark_kept: "Cumplido",
|
|
559
|
+
mark_missed: "Incumplido",
|
|
560
|
+
state: {
|
|
561
|
+
open: "abiertos",
|
|
562
|
+
kept: "cumplidos",
|
|
563
|
+
missed: "incumplidos",
|
|
564
|
+
all: "todos",
|
|
565
|
+
},
|
|
566
|
+
},
|
|
567
|
+
|
|
454
568
|
routines: {
|
|
455
569
|
title: "Heartbeats / Routines",
|
|
456
570
|
subtitle: "Cron, every:Nm, once:ISO. Cada rutina dispara un agente o un shell.",
|
|
@@ -782,6 +896,12 @@ export const es = {
|
|
|
782
896
|
},
|
|
783
897
|
|
|
784
898
|
memories: {
|
|
899
|
+
|
|
900
|
+
super_agent_group: "Super-agente",
|
|
901
|
+
|
|
902
|
+
notebook_item: "Libreta de {persona}",
|
|
903
|
+
|
|
904
|
+
tokens: "~{n} tok",
|
|
785
905
|
sidebar_title: "Memorias",
|
|
786
906
|
general_group: "General",
|
|
787
907
|
general_item: "Memoria del proyecto",
|
|
@@ -873,6 +993,8 @@ export const es = {
|
|
|
873
993
|
no_activity_ch: "Sin actividad en el canal \"{ch}\".",
|
|
874
994
|
error: "No pude leer los mensajes: {msg}",
|
|
875
995
|
show_more: "ver más",
|
|
996
|
+
event_routine_created: "rutina creada",
|
|
997
|
+
event_routine_updated: "rutina actualizada",
|
|
876
998
|
show_less: "ver menos",
|
|
877
999
|
daemon_errors: "Errores del daemon (~/.apx/logs/errors.jsonl)",
|
|
878
1000
|
no_errors: "Sin errores registrados. 🎉",
|
|
@@ -1564,6 +1686,9 @@ export const es = {
|
|
|
1564
1686
|
kind_routine: "rutina",
|
|
1565
1687
|
kind_hierarchy: "jerarquía",
|
|
1566
1688
|
nodes_drag_hint: "{n} nodos · arrastrá para reordenar",
|
|
1689
|
+
kind_watch: "Vigía",
|
|
1690
|
+
kind_watch_desc: "Barre buscando cosas que valga la pena notar — vencidos, promesas por caer, proyectos en silencio. No cuesta nada cuando no hay nada que reportar.",
|
|
1691
|
+
action_watch: "Vigila señales, y sólo juzga cuando encuentra alguna",
|
|
1567
1692
|
kind_exec_agent: "Agente del proyecto",
|
|
1568
1693
|
kind_exec_agent_desc: "Corre un agente del proyecto con un prompt. Vos elegís cuál.",
|
|
1569
1694
|
kind_super_agent: "Super-agente",
|
|
@@ -1583,6 +1708,7 @@ export const es = {
|
|
|
1583
1708
|
preset_every_10m: "cada 10 min",
|
|
1584
1709
|
preset_hourly: "cada hora",
|
|
1585
1710
|
preset_daily_9am: "diario 9am",
|
|
1711
|
+
sched_manual: "solo cuando lo corrés vos",
|
|
1586
1712
|
preset_weekdays_9am: "días hábiles 9am",
|
|
1587
1713
|
preset_manual: "Manual",
|
|
1588
1714
|
var_pre_output_prompt: "Salida de texto de los pre-commands. Se reemplaza dentro del prompt/texto antes de enviarlo. Útil para inyectar datos frescos (clima, una API) en la instrucción.",
|
|
@@ -1873,6 +1999,7 @@ export const es = {
|
|
|
1873
1999
|
shared_ui: {
|
|
1874
2000
|
skill_inspector_title: "Skill Inspector ({embedder}) eligió estas skills para este turno",
|
|
1875
2001
|
tools_count: "{n} tools",
|
|
2002
|
+
tools_failed: "{n} fallaron",
|
|
1876
2003
|
tool_read_file: "Leer archivo",
|
|
1877
2004
|
tool_write_file: "Escribir archivo",
|
|
1878
2005
|
tool_edit_file: "Editar archivo",
|
|
@@ -2,29 +2,29 @@ import { http } from "../http";
|
|
|
2
2
|
import type { GlobalConfig, PairedClient, PairInit, PairStatus, SuperAgentConfig } from "../../types/daemon";
|
|
3
3
|
|
|
4
4
|
export const Admin = {
|
|
5
|
-
reload: () => http.post<{ ok: true; super_agent_model: string; fallback_order: string[] }>("/admin/reload"),
|
|
6
|
-
shutdown: () => http.post<{ ok: true }>("/admin/shutdown"),
|
|
5
|
+
reload: () => http.post<{ ok: true; super_agent_model: string; fallback_order: string[] }>("/api/admin/reload"),
|
|
6
|
+
shutdown: () => http.post<{ ok: true }>("/api/admin/shutdown"),
|
|
7
7
|
config: {
|
|
8
|
-
get: () => http.get<{ config: GlobalConfig }>("/admin/config"),
|
|
8
|
+
get: () => http.get<{ config: GlobalConfig }>("/api/admin/config"),
|
|
9
9
|
patch: (body: { set?: Record<string, unknown>; unset?: string[] }) =>
|
|
10
|
-
http.patch<{ ok: true; config: GlobalConfig }>("/admin/config", body),
|
|
10
|
+
http.patch<{ ok: true; config: GlobalConfig }>("/api/admin/config", body),
|
|
11
11
|
},
|
|
12
|
-
superAgent: () => http.get<SuperAgentConfig>("/admin/super-agent"),
|
|
12
|
+
superAgent: () => http.get<SuperAgentConfig>("/api/admin/super-agent"),
|
|
13
13
|
logs: (file: "errors" | "apx" = "errors", limit = 200) =>
|
|
14
14
|
http.get<{ file: string; entries?: Array<Record<string, unknown>>; lines?: string[] }>(
|
|
15
|
-
`/admin/logs?file=${file}&limit=${limit}`,
|
|
15
|
+
`/api/admin/logs?file=${file}&limit=${limit}`,
|
|
16
16
|
),
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export const Pair = {
|
|
20
|
-
list: () => http.get<{ clients: PairedClient[] }>("/pair/list"),
|
|
21
|
-
revoke: (id: string) => http.del<void>(`/pair/revoke/${encodeURIComponent(id)}`),
|
|
20
|
+
list: () => http.get<{ clients: PairedClient[] }>("/api/pair/list"),
|
|
21
|
+
revoke: (id: string) => http.del<void>(`/api/pair/revoke/${encodeURIComponent(id)}`),
|
|
22
22
|
// Mint a pairing nonce (localhost-only on the daemon). Used by the web's
|
|
23
23
|
// "Vincular dispositivo" — same nonce the terminal `apx pair` uses.
|
|
24
|
-
init: () => http.post<PairInit>("/pair/init", {}),
|
|
25
|
-
status: (pid: string) => http.get<PairStatus>(`/pair/status/${encodeURIComponent(pid)}`),
|
|
24
|
+
init: () => http.post<PairInit>("/api/pair/init", {}),
|
|
25
|
+
status: (pid: string) => http.get<PairStatus>(`/api/pair/status/${encodeURIComponent(pid)}`),
|
|
26
26
|
// Browser plays the "device" role: confirm a nonce (scanned via QR or pasted)
|
|
27
27
|
// to mint a per-client token. Unauthenticated by design (nonce-gated).
|
|
28
28
|
confirm: (body: { pairing_id: string; label?: string; kind?: string }) =>
|
|
29
|
-
http.post<{ token: string; client_id: string; label: string; kind: string }>("/pair/confirm", body),
|
|
29
|
+
http.post<{ token: string; client_id: string; label: string; kind: string }>("/api/pair/confirm", body),
|
|
30
30
|
};
|
|
@@ -3,24 +3,24 @@ import type { AgentDetail, AgentEntry, ChatUsage } from "../../types/daemon";
|
|
|
3
3
|
|
|
4
4
|
export const Agents = {
|
|
5
5
|
list: (pid: string, opts?: { stats?: boolean }) =>
|
|
6
|
-
http.get<AgentEntry[]>(`/projects/${pid}/agents${opts?.stats ? "?stats=1" : ""}`),
|
|
7
|
-
get: (pid: string, slug: string) => http.get<AgentDetail>(`/projects/${pid}/agents/${slug}`),
|
|
6
|
+
http.get<AgentEntry[]>(`/api/projects/${pid}/agents${opts?.stats ? "?stats=1" : ""}`),
|
|
7
|
+
get: (pid: string, slug: string) => http.get<AgentDetail>(`/api/projects/${pid}/agents/${slug}`),
|
|
8
8
|
create: (pid: string, body: Partial<AgentEntry> & { slug: string }) =>
|
|
9
|
-
http.post<AgentEntry>(`/projects/${pid}/agents`, body),
|
|
9
|
+
http.post<AgentEntry>(`/api/projects/${pid}/agents`, body),
|
|
10
10
|
update: (pid: string, slug: string, body: Partial<AgentEntry> & { system?: string }) =>
|
|
11
|
-
http.patch<AgentEntry>(`/projects/${pid}/agents/${encodeURIComponent(slug)}`, body),
|
|
11
|
+
http.patch<AgentEntry>(`/api/projects/${pid}/agents/${encodeURIComponent(slug)}`, body),
|
|
12
12
|
remove: (pid: string, slug: string) =>
|
|
13
|
-
http.del<{ ok: boolean }>(`/projects/${pid}/agents/${encodeURIComponent(slug)}`),
|
|
13
|
+
http.del<{ ok: boolean }>(`/api/projects/${pid}/agents/${encodeURIComponent(slug)}`),
|
|
14
14
|
chat: (pid: string, slug: string, body: { prompt: string; conversation_id?: string; model?: string; channel?: string }) =>
|
|
15
15
|
http.post<{ conversation_id: string; text: string; usage?: ChatUsage; engine: string }>(
|
|
16
|
-
`/projects/${pid}/agents/${encodeURIComponent(slug)}/chat`,
|
|
16
|
+
`/api/projects/${pid}/agents/${encodeURIComponent(slug)}/chat`,
|
|
17
17
|
body,
|
|
18
18
|
),
|
|
19
19
|
memory: {
|
|
20
20
|
get: (pid: string, slug: string) =>
|
|
21
|
-
http.get<{ body: string }>(`/projects/${pid}/agents/${slug}/memory`),
|
|
21
|
+
http.get<{ body: string }>(`/api/projects/${pid}/agents/${slug}/memory`),
|
|
22
22
|
put: (pid: string, slug: string, body: string) =>
|
|
23
|
-
http.put<{ ok: boolean; bytes: number }>(`/projects/${pid}/agents/${slug}/memory`, { body }),
|
|
23
|
+
http.put<{ ok: boolean; bytes: number }>(`/api/projects/${pid}/agents/${slug}/memory`, { body }),
|
|
24
24
|
},
|
|
25
25
|
// Vault = global agent templates. Two-layer: bundled defaults shipped with
|
|
26
26
|
// APX + user overrides/new ones in ~/.apx/agents. The API merges both and
|
|
@@ -28,20 +28,20 @@ export const Agents = {
|
|
|
28
28
|
// Tombstones (deleted bundled defaults) are hidden unless includeRemoved=true.
|
|
29
29
|
vault: (opts?: { includeRemoved?: boolean }) =>
|
|
30
30
|
http.get<(AgentEntry & { source?: "bundled" | "user" | "user-override" })[]>(
|
|
31
|
-
opts?.includeRemoved ? "/agents/vault?include_removed=1" : "/agents/vault",
|
|
31
|
+
opts?.includeRemoved ? "/api/agents/vault?include_removed=1" : "/api/agents/vault",
|
|
32
32
|
),
|
|
33
33
|
vaultCreate: (slug: string, fields: Record<string, unknown> = {}, body = "") =>
|
|
34
|
-
http.post<AgentEntry>("/agents/vault", { slug, fields, body }),
|
|
34
|
+
http.post<AgentEntry>("/api/agents/vault", { slug, fields, body }),
|
|
35
35
|
vaultPatch: (slug: string, patch: { fields?: Record<string, unknown>; body?: string }) =>
|
|
36
|
-
http.patch<AgentEntry>(`/agents/vault/${encodeURIComponent(slug)}`, patch),
|
|
36
|
+
http.patch<AgentEntry>(`/api/agents/vault/${encodeURIComponent(slug)}`, patch),
|
|
37
37
|
vaultRemove: (slug: string) =>
|
|
38
38
|
http.del<{ ok: boolean; removed: "user" | "tomb" | "user+tomb" }>(
|
|
39
|
-
`/agents/vault/${encodeURIComponent(slug)}`,
|
|
39
|
+
`/api/agents/vault/${encodeURIComponent(slug)}`,
|
|
40
40
|
),
|
|
41
41
|
vaultRestore: (slug: string) =>
|
|
42
42
|
http.post<{ ok: boolean; agent: AgentEntry | null }>(
|
|
43
|
-
`/agents/vault/${encodeURIComponent(slug)}/restore`,
|
|
43
|
+
`/api/agents/vault/${encodeURIComponent(slug)}/restore`,
|
|
44
44
|
),
|
|
45
45
|
import: (pid: string, slug: string) =>
|
|
46
|
-
http.post<AgentEntry>(`/projects/${pid}/agents/import`, { slug }),
|
|
46
|
+
http.post<AgentEntry>(`/api/projects/${pid}/agents/import`, { slug }),
|
|
47
47
|
};
|
|
@@ -53,43 +53,43 @@ export interface ArtifactTunnel {
|
|
|
53
53
|
|
|
54
54
|
export const Artifacts = {
|
|
55
55
|
list: (pid: string) =>
|
|
56
|
-
http.get<ArtifactEntry[]>(`/projects/${encodeURIComponent(pid)}/artifacts`),
|
|
56
|
+
http.get<ArtifactEntry[]>(`/api/projects/${encodeURIComponent(pid)}/artifacts`),
|
|
57
57
|
read: (pid: string, name: string) =>
|
|
58
58
|
http.get<ArtifactContent>(
|
|
59
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
59
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
60
60
|
),
|
|
61
61
|
run: (pid: string, name: string, args: string[] = []) =>
|
|
62
62
|
http.post<ArtifactRunResult>(
|
|
63
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}/run`,
|
|
63
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}/run`,
|
|
64
64
|
{ args },
|
|
65
65
|
),
|
|
66
66
|
remove: (pid: string, name: string) =>
|
|
67
67
|
http.del<void>(
|
|
68
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
68
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
69
69
|
),
|
|
70
70
|
write: (pid: string, name: string, content: string) =>
|
|
71
71
|
http.patch<{ ok: boolean; name: string }>(
|
|
72
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
72
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
73
73
|
{ content },
|
|
74
74
|
),
|
|
75
75
|
rename: (pid: string, name: string, newName: string) =>
|
|
76
76
|
http.patch<{ ok: boolean; name: string }>(
|
|
77
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
77
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}`,
|
|
78
78
|
{ newName },
|
|
79
79
|
),
|
|
80
80
|
|
|
81
81
|
// Start (or reuse) an ephemeral local preview server for an artifact.
|
|
82
82
|
preview: (pid: string, name: string, watch = true) =>
|
|
83
83
|
http.post<ArtifactPreview>(
|
|
84
|
-
`/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}/preview`,
|
|
84
|
+
`/api/projects/${encodeURIComponent(pid)}/artifacts/${encodeURIComponent(name)}/preview`,
|
|
85
85
|
{ watch },
|
|
86
86
|
),
|
|
87
87
|
// List running preview servers for a project.
|
|
88
88
|
previews: (pid: string) =>
|
|
89
|
-
http.get<ArtifactPreview[]>(`/projects/${encodeURIComponent(pid)}/previews`),
|
|
90
|
-
stopPreview: (id: string) => http.del<void>(`/previews/${encodeURIComponent(id)}`),
|
|
89
|
+
http.get<ArtifactPreview[]>(`/api/projects/${encodeURIComponent(pid)}/previews`),
|
|
90
|
+
stopPreview: (id: string) => http.del<void>(`/api/previews/${encodeURIComponent(id)}`),
|
|
91
91
|
// Open / close a public tunnel to a running preview.
|
|
92
92
|
openTunnel: (id: string, provider?: string) =>
|
|
93
|
-
http.post<ArtifactTunnel>(`/previews/${encodeURIComponent(id)}/tunnel`, { provider }),
|
|
94
|
-
closeTunnel: (id: string) => http.del<void>(`/previews/${encodeURIComponent(id)}/tunnel`),
|
|
93
|
+
http.post<ArtifactTunnel>(`/api/previews/${encodeURIComponent(id)}/tunnel`, { provider }),
|
|
94
|
+
closeTunnel: (id: string) => http.del<void>(`/api/previews/${encodeURIComponent(id)}/tunnel`),
|
|
95
95
|
};
|
|
@@ -79,7 +79,7 @@ export type CodeStreamEvent = ChatStreamEvent & {
|
|
|
79
79
|
tool?: string;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
const base = (pid: string | number) => `/projects/${pid}/code/sessions`;
|
|
82
|
+
const base = (pid: string | number) => `/api/projects/${pid}/code/sessions`;
|
|
83
83
|
|
|
84
84
|
export const Code = {
|
|
85
85
|
sessions: {
|