@zerwiz/sessrumnir 0.1.17 → 0.1.18
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/out/main/index.js +8 -8
- package/out/renderer/assets/{index-B3mV3a_n.js → index-BvfL-Umc.js} +7 -7
- package/out/renderer/assets/{index-D0j--OQJ.css → index-W51edCEX.css} +9 -9
- package/out/renderer/index.html +2 -2
- package/package.json +1 -1
- package/resources/locales/en/translation.json +6 -6
- package/src/main/workspace-manager.ts +1 -1
- package/src/renderer/src/components/chat-panel.tsx +1 -1
- package/src/renderer/src/components/terminal.tsx +2 -2
- package/src/renderer/src/index.css +2 -2
package/out/main/index.js
CHANGED
|
@@ -214,7 +214,7 @@ function buildNpmPrefixCommand(isWindows) {
|
|
|
214
214
|
}
|
|
215
215
|
const activity = { "completed": "Finished in the background", "completedInAnotherWorkspace": "Finished in the background in another workspace", "failed": "Stopped with an error", "failedInAnotherWorkspace": "Stopped with an error in another workspace", "working": "Brokk is working", "workingInAnotherWorkspace": "Brokk is working in another workspace" };
|
|
216
216
|
const app = { "dropFolder": { "description": "Opens that folder as a workspace (creates one if needed)", "title": "Drop folder to open as project" }, "errorBoundary": { "fallback": "Failed to render content" }, "quit": "Quit Sessrúmnir", "resizeHandle": { "title": "Drag to resize" }, "updateBanner": { "available": "Sessrúmnir <strong>v{{latestVersion}}</strong> is available — you're on v{{currentVersion}}.", "dismissAriaLabel": "Dismiss update notification", "downloadButton": "Download" } };
|
|
217
|
-
const chat = { "attach": { "allFilesFilter": "All Files", "attachFailed": "Could not attach file", "imagesFilter": "Images", "onlyImagesPasted": "Only images can be pasted into the composer", "pasteFailed": "Could not paste image", "readImageFailed": "Could not read image data", "unknownMimeType": "unknown", "unsupportedImageType": "Unsupported image type ({{mimeType}}). Use PNG, JPEG, GIF, or WebP." }, "closeFileTree": "Close file tree", "commandPopup": { "selectHint": "↑↓ navigate · Enter/Tab select · Esc close" }, "composer": { "placeholderIdle": "Ask {{agent}} anything — / for commands", "placeholderNotRunning": "{{agent}} agent is not running...", "placeholderSteering": "Type to steer the agent...", "shiftEnterNewline": "Shift+Enter newline", "streaming": "Streaming…" }, "council": { "planWithCouncil": "Plan with Council", "startEngineFirst": "Start the agent runtime before planning with Council" }, "emptyState": { "chooseProject": "Choose a project — {{agent}} starts when you send.", "pickProject": "
|
|
217
|
+
const chat = { "attach": { "allFilesFilter": "All Files", "attachFailed": "Could not attach file", "imagesFilter": "Images", "onlyImagesPasted": "Only images can be pasted into the composer", "pasteFailed": "Could not paste image", "readImageFailed": "Could not read image data", "unknownMimeType": "unknown", "unsupportedImageType": "Unsupported image type ({{mimeType}}). Use PNG, JPEG, GIF, or WebP." }, "closeFileTree": "Close file tree", "commandPopup": { "selectHint": "↑↓ navigate · Enter/Tab select · Esc close" }, "composer": { "placeholderIdle": "Ask {{agent}} anything — / / for commands", "placeholderNotRunning": "{{agent}} agent is not running...", "placeholderSteering": "Type to steer the agent...", "shiftEnterNewline": "Shift+Enter newline", "streaming": "Streaming…" }, "council": { "planWithCouncil": "Plan with Council", "startEngineFirst": "Start the agent runtime before planning with Council" }, "emptyState": { "chooseProject": "Choose a project — {{agent}} starts when you send.", "pickProject": "Choose the errand and speak it, Allfather.", "startFailed": "Failed to start {{agent}}. Check settings.", "starting": "Starting {{agent}} agent…", "title": "What shall {{agent}} forge?", "waitingOnEngine": "{{agent}} is up — waiting for the engine to finish loading. Local models can take a while…" }, "extensionUi": { "editFallbackTitle": "Edit", "hideForNowWithShortcut": "Hide for now ({{shortcut}})", "inputFallbackTitle": "Input", "notificationFallback": "Notification", "selectFallbackTitle": "Select", "showWithShortcut": "Show ({{shortcut}})", "waitingForAnswer": "Brokk is waiting for an answer" }, "insertNote": { "ariaLabel": "Insert note", "titleWithShortcut": "Insert note (Ctrl+Shift+P)" }, "loadingSession": "Loading session…", "mentionPopup": { "insertHint": "↑↓ navigate · Enter/Tab insert path · Esc close" }, "message": { "branchedFrom": 'Branched from: "{{excerpt}}"', "branchFromHere": "Branch from here", "editAndResend": "Edit & resend" }, "projectPicker": { "noProject": "No project", "noProjectHomeDirectory": "No project — home directory", "openFolder": "Open folder…", "yourHomeDirectory": "Your home directory" }, "reattached": { "responseWillAppear": "The response appears here the moment it finishes.", "stillWorking": "{{agent}} is still working in this session." }, "scrollToBottom": "Scroll to bottom", "search": { "closeWithShortcut": "Close (Esc)", "nextMatch": "Next match (Enter)", "placeholder": "Find in page", "previousMatch": "Previous match (Shift+Enter)" }, "searchWorkspace": { "ariaLabel": "Search workspace", "titleWithShortcut": "Search workspace (Ctrl+Shift+F)" }, "sendButton": { "ariaLabel": "Send message", "titleWithShortcut": "Send (Enter)" }, "startingAgent": "Starting agent…", "stopButton": { "ariaLabel": "Stop generating", "titleWithShortcut": "Stop (Esc)" }, "subagentProgress": { "done_one": "{{count}} subagent done", "done_other": "{{count}} subagents done", "running_one": "{{count}} subagent running", "running_other": "{{count}} subagents running" }, "svgBlock": { "renderedSvgAlt": "Rendered SVG", "renderSvg": "Render SVG", "viewSource": "View source" }, "toolbar": { "diffViewer": "Diff viewer", "fileTree": "File tree", "reviewPanel": "Review panel", "terminal": "Terminal" }, "toolCall": { "status": { "done": "done", "error": "error", "running": "running" } }, "waitingForResponse": "Waiting for response..." };
|
|
218
218
|
const commandGroups = { "commands": "Commands", "extensions": "Extensions", "other": "Other", "prompts": "Prompts" };
|
|
219
219
|
const commands = { "clone": { "description": "Clone the current branch into a new session" }, "compact": { "description": "Compact the conversation to free up context" }, "fork": { "description": "Open Branches to fork from a message" }, "new": { "description": "Start a new session" }, "resume": { "description": "Open the Sessions list" }, "settings": { "description": "Open Settings" }, "task": { "description": "Launch a task in a new Brokk session" } };
|
|
220
220
|
const commandSources = { "builtin": "builtin", "extension": "extension", "prompt": "prompt", "skill": "skill" };
|
|
@@ -236,7 +236,7 @@ const home = { "actions": { "newSession": { "inWorkspace": "In {{project}}", "pi
|
|
|
236
236
|
const imageViewer = { "closeTitle": "Close image", "readFailed": "Failed to read image", "unsupportedFile": "Not a supported image file" };
|
|
237
237
|
const language = { "nativeName": "English" };
|
|
238
238
|
const menu = { "actualSize": "Actual Size", "close": "Close Window", "edit": "Edit", "file": "File", "forceReload": "Force Reload", "minimize": "Minimize", "newWorkspace": "New Workspace...", "openProject": "Open Project...", "redo": "Redo", "reload": "Reload", "toggleDevTools": "Toggle Developer Tools", "toggleFullScreen": "Toggle Full Screen", "undo": "Undo", "view": "View", "window": "Window", "zoom": "Zoom", "zoomIn": "Zoom In", "zoomOut": "Zoom Out" };
|
|
239
|
-
const missionControl = { "controlUnavailable": "control unavailable", "idle": "{{agent}} is idle", "liveSessions": "Live sessions", "needsAttention_one": "{{count}} needs attention", "needsAttention_other": "{{count}} needs attention", "newTask": "New task", "noLiveRuntimes": "No live session runtimes yet. Start a task to put Brokk to work in the background.", "noWorkflowRuns": "No workflow runs yet.", "open": "Open", "openAllWorkflows": "Open all workflows", "proceed": "Proceed", "proceedWithWorkflow": "Proceed with this workflow", "refreshWorkflowRuns": "Refresh workflow runs", "resumeFailed": "Could not proceed with {{workflow}}: {{reason}}", "resumeFailedGeneric": "Could not proceed with {{workflow}}. Open the run for details.", "retryWithWorkflow": "Retry this workflow", "review": "Review", "runtimeState": { "completed": "completed", "failed": "failed", "idle": "idle", "needsApproval": "needs approval", "stopped": "stopped", "working": "working" }, "startingSession": "Starting session", "subtitle": "Background sessions and workflow runs, from every project.", "title": "
|
|
239
|
+
const missionControl = { "controlUnavailable": "control unavailable", "idle": "{{agent}} is idle", "liveSessions": "Live sessions", "needsAttention_one": "{{count}} needs attention", "needsAttention_other": "{{count}} needs attention", "newTask": "New task", "noLiveRuntimes": "No live session runtimes yet. Start a task to put Brokk to work in the background.", "noWorkflowRuns": "No workflow runs yet.", "open": "Open", "openAllWorkflows": "Open all workflows", "proceed": "Proceed", "proceedWithWorkflow": "Proceed with this workflow", "refreshWorkflowRuns": "Refresh workflow runs", "resumeFailed": "Could not proceed with {{workflow}}: {{reason}}", "resumeFailedGeneric": "Could not proceed with {{workflow}}. Open the run for details.", "retryWithWorkflow": "Retry this workflow", "review": "Review", "runtimeState": { "completed": "completed", "failed": "failed", "idle": "idle", "needsApproval": "needs approval", "stopped": "stopped", "working": "working" }, "startingSession": "Starting session", "subtitle": "Background sessions and workflow runs, from every project.", "title": "The Hall", "unknownProject": "Unknown project", "workflowActivity": "Workflow activity", "workflowStatus": { "aborted": "aborted", "completed": "completed", "failed": "failed", "paused": "paused", "pending": "pending", "running": "running", "unknown": "unknown" } };
|
|
240
240
|
const models = { "readFailure": { "invalidJson": "{{file}} is not valid JSON: {{detail}}", "invalidJsonNoDetail": "{{file}} is not valid JSON", "invalidYaml": "{{file}} is not valid YAML: {{detail}}", "invalidYamlNoDetail": "{{file}} is not valid YAML", "missingProviders": '{{file}} is not a valid models config (missing "providers")', "unreadable": "Could not read {{file}}: {{detail}}" }, "selector": { "current": "Current", "loadFailed": "Could not load models", "noModelsMatch": "No models match", "searchPlaceholder": "Search models…", "selectModel": "Select model", "selectModelWithShortcut": "Select model (Ctrl+P to cycle when {{agent}} is running)", "startToListModels": "Start Brokk to list and change models." } };
|
|
241
241
|
const notes = { "backButton": "Back", "backTitle": "Back to notes", "deleteNoteTitle": "Delete note", "editNoteTitle": "Edit note", "empty": { "noMatch": "No notes match your search.", "noneYet": "No notes yet. Create one to reuse prompts." }, "form": { "bodyLabel": "Prompt / Command", "bodyPlaceholder": "The reusable prompt or command text...", "editHeading": "Edit Note", "saveFailed": "Failed to save note", "saving": "Saving...", "scopeLabel": "Scope", "tagsLabel": "Tags", "tagsPlaceholder": "space or comma separated", "thisWorkspaceFallback": "This workspace", "titleLabel": "Title", "titlePlaceholder": "e.g. Refactor with tests" }, "insertButton": "Insert", "insertIntoChatTitle": "Insert into chat input", "newNoteButton": "New Note", "picker": { "createNote": "Create a note", "navigationHint": "↑↓ navigate · Enter insert · Esc close", "noMatchingNotes": "No matching notes", "noSavedNotes": "No saved notes yet.", "notComposeBox": "This picker inserts notes you've saved — it's not a compose box.", "searchPlaceholder": "Search saved notes to insert..." }, "scope": { "other": "Other workspace", "workspaceFallback": "Workspace" }, "searchPlaceholder": "Search title, body, or tag...", "title": "Notes", "viewNoteTitle": "View note" };
|
|
242
242
|
const notifications = { "completed": "Brokk finished working.", "failed": "Brokk stopped with an error.", "needs-approval": "Brokk is waiting for your approval.", "withSession": "{{body}} Click to open the finished session." };
|
|
@@ -248,7 +248,7 @@ const permissions = { "prompt": { "body": "{{agent}} wants to run the {{tool}} t
|
|
|
248
248
|
const review = { "gitStatusUnavailable": "Git status unavailable", "heading": "Review", "openDiffButton": "Open diff review", "openDiffHint": "Inspect working tree changes.", "pendingApprovals": { "none": "No approval requests waiting.", "queued_one": "{{count}} queued item waiting for the active session.", "queued_other": "{{count}} queued items waiting for the active session." }, "pendingApprovalsHeading": "Pending Approvals", "permissionsHeading": "Permissions", "sessionStatus": { "idle": "{{agent}} is idle in the active session.", "working": "{{agent}} is working in the active session." }, "sessionStatusHeading": "Session Status", "subtitle": "Control what {{agent}} can do before changes move forward." };
|
|
249
249
|
const sessions = { "activeBadge": "active", "archivedBadge": "archived", "archivedToggle": { "hideTitle": "Hide archived sessions", "hidingNone": "Hiding none", "showTitle": "Show archived sessions" }, "currentProjectBadge": "current", "currentWorkspaceLabel": "Current workspace:", "deleteConfirm": { "message": "Delete this session? Will use <code>trash</code> if available, otherwise permanent." }, "deleteEllipsis": "Delete...", "empty": { "createFirst": "Create your first session", "noMatch": "No sessions match your search", "noneInProject": "No sessions in this project yet", "noneYet": "No sessions yet", "openProjectToSee": "Open a project to see its sessions" }, "engineSession": "{{engine}} session", "header": { "projectCount_one": "{{count}} project", "projectCount_other": "{{count}} projects", "sessionCount_one": "{{count}} session", "sessionCount_other": "{{count}} sessions" }, "runtime": { "completed": "{{agent}} finished", "failed": "{{agent}} stopped with an error", "needsApproval": "{{agent}} is waiting for approval", "working": "{{agent}} is working" }, "scopeToggle": { "allSessions": "All Sessions", "currentOnly": "Current Only", "showCurrentProjectOnly": "Only show sessions from the current project", "showEveryProject": "Show sessions from every project" }, "searchPlaceholder": "Search sessions or projects...", "sessionActions": { "ariaLabel": "Session actions", "title": "Session actions (or right-click the row)" }, "tags": { "add": "Add", "addPlaceholder": "Add tag...", "addTag": "Add tag", "autoTagHint": "Auto-tagged from chat context — add your own tag to replace it", "removeAutoTag": "Remove auto-tag {{tag}}", "removeTag": "Remove tag {{tag}}" }, "time": { "days_one": "{{count}}d ago", "days_other": "{{count}}d ago", "hours_one": "{{count}}h ago", "hours_other": "{{count}}h ago", "minutes_one": "{{count}}m ago", "minutes_other": "{{count}}m ago" }, "title": "Sessions", "unknownProject": "Unknown" };
|
|
250
250
|
const settings = { "actions": { "reset": "Reset to Defaults", "save": "Save Settings", "saved": "Saved!" }, "agentInstallation": { "autoDetectOption": "Auto-detect (pi first, then OMP)", "chooseExecutableTitle": "Choose executable or install directory", "customPathOption": "Custom path…", "description": "Auto-detect pi and OMP, choose an installed engine, or use a custom executable/path.", "detectedCount_one": "{{count}} installed engine detected", "detectedCount_other": "{{count}} installed engines detected", "engineAriaLabel": "Agent engine", "engineAutoOption": "Auto", "installedOption": "{{engine}} — {{path}}", "label": "Agent Installation", "noneDetected": "No pi or OMP installation detected yet", "ompNotFoundOption": "OMP (not found)", "pathPlaceholder": "Path to executable, cli.js, or install directory", "rescanTitle": "Rescan installed agents", "scanningStatus": "Scanning common install locations and PATH…", "selectDialogTitle": "Select Agent Executable or Directory" }, "autoScroll": { "description": "Automatically scroll to new messages", "label": "Auto Scroll" }, "codeEditorFontSize": { "description": "Font size for the code editor / file viewer", "label": "Code Editor Font Size" }, "consensusMode": { "arbiterOption": "Arbiter merge (fast)", "debateOption": "One debate round (slower, ~2x cost)", "description": "How council members reach agreement", "label": "Consensus mode" }, "councilEnabled": { "confirmButton": "Enable", "confirmMessage": "Each run spawns Claude and Codex in addition to {{engine}}. This can significantly increase token usage and credit/API costs. Only enable this if you are comfortable with the extra spend.", "confirmTitle": "Enable council planning?", "description": "Spawns Claude/Codex alongside Brokk to plan tasks. Increases token usage and credit/API costs.", "label": "Enable council planning" }, "councilMembers": { "description": "Which agents participate in council planning", "label": "Members", "notDetected": "(not detected)" }, "councilTimeout": { "description": "How long to wait for each agent ({{min}}-{{max}})", "label": "Per-member timeout (seconds)" }, "customTheme": { "createButton": "Create theme", "description": "Fork the current theme or edit one you created", "editButton": "Edit theme", "label": "Custom Theme" }, "darkTheme": { "description": "Used when the system is in dark mode", "label": "Dark Theme" }, "desktopNotifications": { "description": "Notify when Brokk finishes, fails, or waits for approval in a workspace you are not looking at", "label": "Desktop Notifications" }, "language": { "description": "Language of menus, buttons, and messages", "label": "Language", "labelWithEnglish": "{{label}} ({{english}})", "system": "System default ({{language}})" }, "lightTheme": { "description": "Used when the system is in light mode", "label": "Light Theme" }, "minimizeToTrayOnClose": { "description": "Keep Sessrúmnir running in the system tray when you close the window instead of quitting (Windows and Linux)", "label": "Minimize to Tray on Close" }, "openToHomeOnLaunch": { "description": "On: full Home launcher (stats, recents, open folder). Off: open Chat with the empty-session center prompt and project picker.", "label": "Open to Home Screen on Launch" }, "permissionMode": { "description": "Default safety mode for Brokk actions", "label": "Permission Mode" }, "permissionRules": { "description": "Fine-grained per-tool overrides for the mode above", "exportFailed": "Export failed", "importFailed": "Import failed", "label": "Permission Rules", "removeWorkspaceConfirmMessage": "Delete this workspace's .pi-desktop/permission-rules.json? Global permission rules will apply again.", "removeWorkspaceConfirmTitle": "Remove workspace rules", "saveError_global": "Settings saved, but global permission rules were not saved: {{error}}", "saveError_workspace": "Settings saved, but workspace permission rules were not saved: {{error}}", "scopeTabListAriaLabel": "Permission rules scope", "workspaceScopeTab": "This workspace" }, "resumeLastSession": { "description": "When opening a workspace, continue its most recent session instead of starting a new one", "label": "Resume Last Session" }, "runOnStartup": { "description": "Automatically start Sessrúmnir when you log in to your computer (takes effect in installed builds)", "label": "Run on Startup" }, "sections": { "agentConfiguration": "Agent Configuration", "appearance": "Appearance", "behavior": "Behavior", "customModels": "Custom Models", "multiAgentCouncilPlanning": "Multi-Agent Council Planning" }, "showThinking": { "description": "Display model thinking blocks in responses", "label": "Show Thinking" }, "terminalFontSize": { "description": "Font size for the terminal panel", "label": "Terminal Font Size" }, "theme": { "deleteConfirmMessage": 'Delete theme "{{themeName}}"? This cannot be undone.', "deleteConfirmTitle": "Delete theme", "description": "Application color scheme", "editNotFoundError": "Could not find the current theme to edit", "exportNotFoundError": "Could not find the current theme to export", "label": "Theme", "systemOption": "System" }, "themeActions": { "browseGalleryButton": "Browse gallery", "description": "Import, export, or install a theme from a URL", "label": "Theme Actions" }, "uiFontSize": { "description": "Chat, panels, and sidebar — not the terminal or code editor", "label": "UI Font Size" } };
|
|
251
|
-
const sidebar = { "archived": { "collapseTitle": "Collapse archived sessions", "expandTitle": "Expand archived sessions", "heading_one": "Archived ({{count}})", "heading_other": "Archived ({{count}})" }, "currentSession": { "heading": "Current Session", "messageCount_one": "{{count}} messages", "messageCount_other": "{{count}} messages", "openTitle": "Open current session in chat · double-click to rename" }, "header": { "closeSidebar": "Close sidebar", "homeAriaLabel": "Home", "homeTitle": "Home (Esc to launcher)" }, "nav": { "activitySection": "Activity", "chat": "Chat", "missionControl": "
|
|
251
|
+
const sidebar = { "archived": { "collapseTitle": "Collapse archived sessions", "expandTitle": "Expand archived sessions", "heading_one": "Archived ({{count}})", "heading_other": "Archived ({{count}})" }, "currentSession": { "heading": "Current Session", "messageCount_one": "{{count}} messages", "messageCount_other": "{{count}} messages", "openTitle": "Open current session in chat · double-click to rename" }, "header": { "closeSidebar": "Close sidebar", "homeAriaLabel": "Home", "homeTitle": "Home (Esc to launcher)" }, "nav": { "activitySection": "Activity", "chat": "Chat", "missionControl": "The Hall", "missionControlTitle": "All background sessions and workflows", "newTaskTitle": "Start a task in a new Brokk session", "sessions": "Sessions", "sessionsTitle": "Sessions in this project", "timeline": "Timeline", "timelineTitleWithProject": "Timeline for {{project}}", "workflows": "Workflows", "workflowsTitleNoProject": "All workflow runs (no project open)", "workflowsTitleWithProject": "Workflow runs in {{project}}", "workspaceSection": "Workspace" }, "newSessionButton": { "label": "New session", "openProjectToBegin": "Open a project to begin", "shortcutKbd": "Ctrl N", "startsIn": "Starts in {{project}}", "titleNoProject": "Open a project first", "titleWithShortcut": "Start a new session in this project (Ctrl/Cmd+N)" }, "openProjectFolder": { "ariaLabel": "Open project folder", "titleWithShortcut": "Open project folder (Ctrl/Cmd+O)" }, "promptsWaitingInOtherWorkspaces_one": "{{count}} Brokk prompt waiting in other workspaces", "promptsWaitingInOtherWorkspaces_other": "{{count}} Brokk prompts waiting in other workspaces", "recentSessions": { "emptyInProject": "No sessions in this project yet.", "emptyNoProject": "Open a project to see its sessions.", "headingNoProject": "Recent sessions", "headingWithProject": "Recent in {{project}}", "startOneNow": "Start one now", "viewAll": "View all" }, "sessionNamePlaceholder": "Session name", "sessionRow": { "tooltipActive": "{{title}}\n\nClick to open · double-click to rename · right-click for actions", "tooltipInactive": "{{title}}\n\nClick to open · right-click for actions" }, "tools": { "allWorkflows": "All Workflows", "allWorkflowsTitle": "Workflow runs from every project", "diagnostics": "Diagnostics", "notes": "Notes", "packages": "Packages", "sectionLabel": "Tools" }, "workflowRunsForSession": "Workflow runs for this session", "workspaceMenu": { "changeFolder": "Change folder…", "rename": "Rename" }, "workspaceSwitcher": { "namePlaceholder": "Workspace name", "noWorkspace": "No workspace", "openProjectEllipsis": "Open project…", "triggerTitle": "Click to switch · double-click to rename · right-click for options" } };
|
|
252
252
|
const skills = { "emptyHint": "Install skill packages or create skills in .pi/skills/", "emptyOmp": "No skills found in ~/.omp/agent/skills, ~/.claude/skills, or project .omp/skills", "emptyPi": "No skills found in ~/.pi/agent/skills or project .pi/skills", "emptyTitle": "No skills found", "providedByPlugin": "Provided by an installed plugin", "refreshAriaLabel": "Refresh skills", "runButton": "Run", "selectPrompt": "Select a skill to view its SKILL.md" };
|
|
253
253
|
const stats = { "heatmap": { "dayTooltip_one": "{{date}} — {{count}} messages", "dayTooltip_other": "{{date}} — {{count}} messages" }, "modelLegend": { "empty": "No model usage in this range.", "tokenBreakdown": "{{input}} in · {{output}} out" }, "overview": { "activeDaysLabel": "Active days", "currentStreakLabel": "Current streak", "favoriteModelLabel": "Favorite model", "longestStreakLabel": "Longest streak", "messagesLabel": "Messages", "peakHourLabel": "Peak hour", "sessionsLabel": "Sessions", "streakDays_one": "{{count}}d", "streakDays_other": "{{count}}d", "totalTokensLabel": "Total tokens" }, "ranges": { "oneYear": "1y", "sevenDays": "7d", "sixMonths": "6mo", "thirtyDays": "30d", "threeMonths": "3mo" }, "tabs": { "models": "models", "overview": "overview" }, "tokenChart": { "barTooltip": "{{label}} — {{tokens}} tokens", "empty": "No token usage in this range." } };
|
|
254
254
|
const status = { "agentSection": { "title": "{{agent}} Agent" }, "compactButton": { "compact": "Compact context", "compacting": "Compacting…", "title": "Summarize and compact the conversation to free up context" }, "contextSection": { "title": "Context Usage" }, "errorCopied": "copied", "errorCopy": "copy", "extensionsSection": { "title": "Extensions" }, "header": { "title": "System Status" }, "mcpSection": { "title": "MCP Servers" }, "noExtensionsOrSkills": "No extensions or skills loaded", "noMcpServers": "No MCP servers configured", "pidLabel": "(PID: {{pid}})", "processStatus": { "error": "error", "running": "running", "starting": "starting", "stopped": "stopped" }, "promptTemplatesSection": { "title": "Prompt Templates" }, "row": { "cost": "Cost", "error": "Error", "messages": "Messages", "model": "Model", "name": "Name", "path": "Path", "provider": "Provider", "session": "Session", "status": "Status", "tokens": "Tokens", "usage": "Usage", "window": "Window" }, "scope": { "cli": "cli", "global": "global", "package": "package", "project": "project" }, "skillCommandsSection": { "title": "Skill Commands" }, "trigger": { "title": "System status" }, "workspaceSection": { "title": "Workspace" } };
|
|
@@ -3209,11 +3209,11 @@ const WORKSPACES_FILE = "workspaces.json";
|
|
|
3209
3209
|
const MANAGED_WORKTREES_DIR = "worktrees";
|
|
3210
3210
|
const MAX_LIVE_SESSION_RUNTIMES = 6;
|
|
3211
3211
|
const WORKSPACE_COLORS = [
|
|
3212
|
-
"#
|
|
3213
|
-
"#
|
|
3214
|
-
"#
|
|
3215
|
-
"#
|
|
3216
|
-
"#
|
|
3212
|
+
"#38bdf8",
|
|
3213
|
+
"#f59e0b",
|
|
3214
|
+
"#f43f5e",
|
|
3215
|
+
"#8b5cf6",
|
|
3216
|
+
"#94a3b8",
|
|
3217
3217
|
"#ec4899",
|
|
3218
3218
|
"#06b6d4",
|
|
3219
3219
|
"#f97316",
|
|
@@ -15945,7 +15945,7 @@ function formatUntrustedBlock(label, content2, note) {
|
|
|
15945
15945
|
}
|
|
15946
15946
|
const activity = { "completed": "Finished in the background", "completedInAnotherWorkspace": "Finished in the background in another workspace", "failed": "Stopped with an error", "failedInAnotherWorkspace": "Stopped with an error in another workspace", "working": "Brokk is working", "workingInAnotherWorkspace": "Brokk is working in another workspace" };
|
|
15947
15947
|
const app = { "dropFolder": { "description": "Opens that folder as a workspace (creates one if needed)", "title": "Drop folder to open as project" }, "errorBoundary": { "fallback": "Failed to render content" }, "quit": "Quit Sessrúmnir", "resizeHandle": { "title": "Drag to resize" }, "updateBanner": { "available": "Sessrúmnir <strong>v{{latestVersion}}</strong> is available — you're on v{{currentVersion}}.", "dismissAriaLabel": "Dismiss update notification", "downloadButton": "Download" } };
|
|
15948
|
-
const chat = { "attach": { "allFilesFilter": "All Files", "attachFailed": "Could not attach file", "imagesFilter": "Images", "onlyImagesPasted": "Only images can be pasted into the composer", "pasteFailed": "Could not paste image", "readImageFailed": "Could not read image data", "unknownMimeType": "unknown", "unsupportedImageType": "Unsupported image type ({{mimeType}}). Use PNG, JPEG, GIF, or WebP." }, "closeFileTree": "Close file tree", "commandPopup": { "selectHint": "↑↓ navigate · Enter/Tab select · Esc close" }, "composer": { "placeholderIdle": "Ask {{agent}} anything — / for commands", "placeholderNotRunning": "{{agent}} agent is not running...", "placeholderSteering": "Type to steer the agent...", "shiftEnterNewline": "Shift+Enter newline", "streaming": "Streaming…" }, "council": { "planWithCouncil": "Plan with Council", "startEngineFirst": "Start the agent runtime before planning with Council" }, "emptyState": { "chooseProject": "Choose a project — {{agent}} starts when you send.", "pickProject": "
|
|
15948
|
+
const chat = { "attach": { "allFilesFilter": "All Files", "attachFailed": "Could not attach file", "imagesFilter": "Images", "onlyImagesPasted": "Only images can be pasted into the composer", "pasteFailed": "Could not paste image", "readImageFailed": "Could not read image data", "unknownMimeType": "unknown", "unsupportedImageType": "Unsupported image type ({{mimeType}}). Use PNG, JPEG, GIF, or WebP." }, "closeFileTree": "Close file tree", "commandPopup": { "selectHint": "↑↓ navigate · Enter/Tab select · Esc close" }, "composer": { "placeholderIdle": "Ask {{agent}} anything — / / for commands", "placeholderNotRunning": "{{agent}} agent is not running...", "placeholderSteering": "Type to steer the agent...", "shiftEnterNewline": "Shift+Enter newline", "streaming": "Streaming…" }, "council": { "planWithCouncil": "Plan with Council", "startEngineFirst": "Start the agent runtime before planning with Council" }, "emptyState": { "chooseProject": "Choose a project — {{agent}} starts when you send.", "pickProject": "Choose the errand and speak it, Allfather.", "startFailed": "Failed to start {{agent}}. Check settings.", "starting": "Starting {{agent}} agent…", "title": "What shall {{agent}} forge?", "waitingOnEngine": "{{agent}} is up — waiting for the engine to finish loading. Local models can take a while…" }, "extensionUi": { "editFallbackTitle": "Edit", "hideForNowWithShortcut": "Hide for now ({{shortcut}})", "inputFallbackTitle": "Input", "notificationFallback": "Notification", "selectFallbackTitle": "Select", "showWithShortcut": "Show ({{shortcut}})", "waitingForAnswer": "Brokk is waiting for an answer" }, "insertNote": { "ariaLabel": "Insert note", "titleWithShortcut": "Insert note (Ctrl+Shift+P)" }, "loadingSession": "Loading session…", "mentionPopup": { "insertHint": "↑↓ navigate · Enter/Tab insert path · Esc close" }, "message": { "branchedFrom": 'Branched from: "{{excerpt}}"', "branchFromHere": "Branch from here", "editAndResend": "Edit & resend" }, "projectPicker": { "noProject": "No project", "noProjectHomeDirectory": "No project — home directory", "openFolder": "Open folder…", "yourHomeDirectory": "Your home directory" }, "reattached": { "responseWillAppear": "The response appears here the moment it finishes.", "stillWorking": "{{agent}} is still working in this session." }, "scrollToBottom": "Scroll to bottom", "search": { "closeWithShortcut": "Close (Esc)", "nextMatch": "Next match (Enter)", "placeholder": "Find in page", "previousMatch": "Previous match (Shift+Enter)" }, "searchWorkspace": { "ariaLabel": "Search workspace", "titleWithShortcut": "Search workspace (Ctrl+Shift+F)" }, "sendButton": { "ariaLabel": "Send message", "titleWithShortcut": "Send (Enter)" }, "startingAgent": "Starting agent…", "stopButton": { "ariaLabel": "Stop generating", "titleWithShortcut": "Stop (Esc)" }, "subagentProgress": { "done_one": "{{count}} subagent done", "done_other": "{{count}} subagents done", "running_one": "{{count}} subagent running", "running_other": "{{count}} subagents running" }, "svgBlock": { "renderedSvgAlt": "Rendered SVG", "renderSvg": "Render SVG", "viewSource": "View source" }, "toolbar": { "diffViewer": "Diff viewer", "fileTree": "File tree", "reviewPanel": "Review panel", "terminal": "Terminal" }, "toolCall": { "status": { "done": "done", "error": "error", "running": "running" } }, "waitingForResponse": "Waiting for response..." };
|
|
15949
15949
|
const commandGroups = { "commands": "Commands", "extensions": "Extensions", "other": "Other", "prompts": "Prompts" };
|
|
15950
15950
|
const commands = { "clone": { "description": "Clone the current branch into a new session" }, "compact": { "description": "Compact the conversation to free up context" }, "fork": { "description": "Open Branches to fork from a message" }, "new": { "description": "Start a new session" }, "resume": { "description": "Open the Sessions list" }, "settings": { "description": "Open Settings" }, "task": { "description": "Launch a task in a new Brokk session" } };
|
|
15951
15951
|
const commandSources = { "builtin": "builtin", "extension": "extension", "prompt": "prompt", "skill": "skill" };
|
|
@@ -15967,7 +15967,7 @@ const home = { "actions": { "newSession": { "inWorkspace": "In {{project}}", "pi
|
|
|
15967
15967
|
const imageViewer = { "closeTitle": "Close image", "readFailed": "Failed to read image", "unsupportedFile": "Not a supported image file" };
|
|
15968
15968
|
const language$1 = { "nativeName": "English" };
|
|
15969
15969
|
const menu = { "actualSize": "Actual Size", "close": "Close Window", "edit": "Edit", "file": "File", "forceReload": "Force Reload", "minimize": "Minimize", "newWorkspace": "New Workspace...", "openProject": "Open Project...", "redo": "Redo", "reload": "Reload", "toggleDevTools": "Toggle Developer Tools", "toggleFullScreen": "Toggle Full Screen", "undo": "Undo", "view": "View", "window": "Window", "zoom": "Zoom", "zoomIn": "Zoom In", "zoomOut": "Zoom Out" };
|
|
15970
|
-
const missionControl = { "controlUnavailable": "control unavailable", "idle": "{{agent}} is idle", "liveSessions": "Live sessions", "needsAttention_one": "{{count}} needs attention", "needsAttention_other": "{{count}} needs attention", "newTask": "New task", "noLiveRuntimes": "No live session runtimes yet. Start a task to put Brokk to work in the background.", "noWorkflowRuns": "No workflow runs yet.", "open": "Open", "openAllWorkflows": "Open all workflows", "proceed": "Proceed", "proceedWithWorkflow": "Proceed with this workflow", "refreshWorkflowRuns": "Refresh workflow runs", "resumeFailed": "Could not proceed with {{workflow}}: {{reason}}", "resumeFailedGeneric": "Could not proceed with {{workflow}}. Open the run for details.", "retryWithWorkflow": "Retry this workflow", "review": "Review", "runtimeState": { "completed": "completed", "failed": "failed", "idle": "idle", "needsApproval": "needs approval", "stopped": "stopped", "working": "working" }, "startingSession": "Starting session", "subtitle": "Background sessions and workflow runs, from every project.", "title": "
|
|
15970
|
+
const missionControl = { "controlUnavailable": "control unavailable", "idle": "{{agent}} is idle", "liveSessions": "Live sessions", "needsAttention_one": "{{count}} needs attention", "needsAttention_other": "{{count}} needs attention", "newTask": "New task", "noLiveRuntimes": "No live session runtimes yet. Start a task to put Brokk to work in the background.", "noWorkflowRuns": "No workflow runs yet.", "open": "Open", "openAllWorkflows": "Open all workflows", "proceed": "Proceed", "proceedWithWorkflow": "Proceed with this workflow", "refreshWorkflowRuns": "Refresh workflow runs", "resumeFailed": "Could not proceed with {{workflow}}: {{reason}}", "resumeFailedGeneric": "Could not proceed with {{workflow}}. Open the run for details.", "retryWithWorkflow": "Retry this workflow", "review": "Review", "runtimeState": { "completed": "completed", "failed": "failed", "idle": "idle", "needsApproval": "needs approval", "stopped": "stopped", "working": "working" }, "startingSession": "Starting session", "subtitle": "Background sessions and workflow runs, from every project.", "title": "The Hall", "unknownProject": "Unknown project", "workflowActivity": "Workflow activity", "workflowStatus": { "aborted": "aborted", "completed": "completed", "failed": "failed", "paused": "paused", "pending": "pending", "running": "running", "unknown": "unknown" } };
|
|
15971
15971
|
const models = { "readFailure": { "invalidJson": "{{file}} is not valid JSON: {{detail}}", "invalidJsonNoDetail": "{{file}} is not valid JSON", "invalidYaml": "{{file}} is not valid YAML: {{detail}}", "invalidYamlNoDetail": "{{file}} is not valid YAML", "missingProviders": '{{file}} is not a valid models config (missing "providers")', "unreadable": "Could not read {{file}}: {{detail}}" }, "selector": { "current": "Current", "loadFailed": "Could not load models", "noModelsMatch": "No models match", "searchPlaceholder": "Search models…", "selectModel": "Select model", "selectModelWithShortcut": "Select model (Ctrl+P to cycle when {{agent}} is running)", "startToListModels": "Start Brokk to list and change models." } };
|
|
15972
15972
|
const notes = { "backButton": "Back", "backTitle": "Back to notes", "deleteNoteTitle": "Delete note", "editNoteTitle": "Edit note", "empty": { "noMatch": "No notes match your search.", "noneYet": "No notes yet. Create one to reuse prompts." }, "form": { "bodyLabel": "Prompt / Command", "bodyPlaceholder": "The reusable prompt or command text...", "editHeading": "Edit Note", "saveFailed": "Failed to save note", "saving": "Saving...", "scopeLabel": "Scope", "tagsLabel": "Tags", "tagsPlaceholder": "space or comma separated", "thisWorkspaceFallback": "This workspace", "titleLabel": "Title", "titlePlaceholder": "e.g. Refactor with tests" }, "insertButton": "Insert", "insertIntoChatTitle": "Insert into chat input", "newNoteButton": "New Note", "picker": { "createNote": "Create a note", "navigationHint": "↑↓ navigate · Enter insert · Esc close", "noMatchingNotes": "No matching notes", "noSavedNotes": "No saved notes yet.", "notComposeBox": "This picker inserts notes you've saved — it's not a compose box.", "searchPlaceholder": "Search saved notes to insert..." }, "scope": { "other": "Other workspace", "workspaceFallback": "Workspace" }, "searchPlaceholder": "Search title, body, or tag...", "title": "Notes", "viewNoteTitle": "View note" };
|
|
15973
15973
|
const notifications = { "completed": "Brokk finished working.", "failed": "Brokk stopped with an error.", "needs-approval": "Brokk is waiting for your approval.", "withSession": "{{body}} Click to open the finished session." };
|
|
@@ -15979,7 +15979,7 @@ const permissions = { "prompt": { "body": "{{agent}} wants to run the {{tool}} t
|
|
|
15979
15979
|
const review = { "gitStatusUnavailable": "Git status unavailable", "heading": "Review", "openDiffButton": "Open diff review", "openDiffHint": "Inspect working tree changes.", "pendingApprovals": { "none": "No approval requests waiting.", "queued_one": "{{count}} queued item waiting for the active session.", "queued_other": "{{count}} queued items waiting for the active session." }, "pendingApprovalsHeading": "Pending Approvals", "permissionsHeading": "Permissions", "sessionStatus": { "idle": "{{agent}} is idle in the active session.", "working": "{{agent}} is working in the active session." }, "sessionStatusHeading": "Session Status", "subtitle": "Control what {{agent}} can do before changes move forward." };
|
|
15980
15980
|
const sessions = { "activeBadge": "active", "archivedBadge": "archived", "archivedToggle": { "hideTitle": "Hide archived sessions", "hidingNone": "Hiding none", "showTitle": "Show archived sessions" }, "currentProjectBadge": "current", "currentWorkspaceLabel": "Current workspace:", "deleteConfirm": { "message": "Delete this session? Will use <code>trash</code> if available, otherwise permanent." }, "deleteEllipsis": "Delete...", "empty": { "createFirst": "Create your first session", "noMatch": "No sessions match your search", "noneInProject": "No sessions in this project yet", "noneYet": "No sessions yet", "openProjectToSee": "Open a project to see its sessions" }, "engineSession": "{{engine}} session", "header": { "projectCount_one": "{{count}} project", "projectCount_other": "{{count}} projects", "sessionCount_one": "{{count}} session", "sessionCount_other": "{{count}} sessions" }, "runtime": { "completed": "{{agent}} finished", "failed": "{{agent}} stopped with an error", "needsApproval": "{{agent}} is waiting for approval", "working": "{{agent}} is working" }, "scopeToggle": { "allSessions": "All Sessions", "currentOnly": "Current Only", "showCurrentProjectOnly": "Only show sessions from the current project", "showEveryProject": "Show sessions from every project" }, "searchPlaceholder": "Search sessions or projects...", "sessionActions": { "ariaLabel": "Session actions", "title": "Session actions (or right-click the row)" }, "tags": { "add": "Add", "addPlaceholder": "Add tag...", "addTag": "Add tag", "autoTagHint": "Auto-tagged from chat context — add your own tag to replace it", "removeAutoTag": "Remove auto-tag {{tag}}", "removeTag": "Remove tag {{tag}}" }, "time": { "days_one": "{{count}}d ago", "days_other": "{{count}}d ago", "hours_one": "{{count}}h ago", "hours_other": "{{count}}h ago", "minutes_one": "{{count}}m ago", "minutes_other": "{{count}}m ago" }, "title": "Sessions", "unknownProject": "Unknown" };
|
|
15981
15981
|
const settings = { "actions": { "reset": "Reset to Defaults", "save": "Save Settings", "saved": "Saved!" }, "agentInstallation": { "autoDetectOption": "Auto-detect (pi first, then OMP)", "chooseExecutableTitle": "Choose executable or install directory", "customPathOption": "Custom path…", "description": "Auto-detect pi and OMP, choose an installed engine, or use a custom executable/path.", "detectedCount_one": "{{count}} installed engine detected", "detectedCount_other": "{{count}} installed engines detected", "engineAriaLabel": "Agent engine", "engineAutoOption": "Auto", "installedOption": "{{engine}} — {{path}}", "label": "Agent Installation", "noneDetected": "No pi or OMP installation detected yet", "ompNotFoundOption": "OMP (not found)", "pathPlaceholder": "Path to executable, cli.js, or install directory", "rescanTitle": "Rescan installed agents", "scanningStatus": "Scanning common install locations and PATH…", "selectDialogTitle": "Select Agent Executable or Directory" }, "autoScroll": { "description": "Automatically scroll to new messages", "label": "Auto Scroll" }, "codeEditorFontSize": { "description": "Font size for the code editor / file viewer", "label": "Code Editor Font Size" }, "consensusMode": { "arbiterOption": "Arbiter merge (fast)", "debateOption": "One debate round (slower, ~2x cost)", "description": "How council members reach agreement", "label": "Consensus mode" }, "councilEnabled": { "confirmButton": "Enable", "confirmMessage": "Each run spawns Claude and Codex in addition to {{engine}}. This can significantly increase token usage and credit/API costs. Only enable this if you are comfortable with the extra spend.", "confirmTitle": "Enable council planning?", "description": "Spawns Claude/Codex alongside Brokk to plan tasks. Increases token usage and credit/API costs.", "label": "Enable council planning" }, "councilMembers": { "description": "Which agents participate in council planning", "label": "Members", "notDetected": "(not detected)" }, "councilTimeout": { "description": "How long to wait for each agent ({{min}}-{{max}})", "label": "Per-member timeout (seconds)" }, "customTheme": { "createButton": "Create theme", "description": "Fork the current theme or edit one you created", "editButton": "Edit theme", "label": "Custom Theme" }, "darkTheme": { "description": "Used when the system is in dark mode", "label": "Dark Theme" }, "desktopNotifications": { "description": "Notify when Brokk finishes, fails, or waits for approval in a workspace you are not looking at", "label": "Desktop Notifications" }, "language": { "description": "Language of menus, buttons, and messages", "label": "Language", "labelWithEnglish": "{{label}} ({{english}})", "system": "System default ({{language}})" }, "lightTheme": { "description": "Used when the system is in light mode", "label": "Light Theme" }, "minimizeToTrayOnClose": { "description": "Keep Sessrúmnir running in the system tray when you close the window instead of quitting (Windows and Linux)", "label": "Minimize to Tray on Close" }, "openToHomeOnLaunch": { "description": "On: full Home launcher (stats, recents, open folder). Off: open Chat with the empty-session center prompt and project picker.", "label": "Open to Home Screen on Launch" }, "permissionMode": { "description": "Default safety mode for Brokk actions", "label": "Permission Mode" }, "permissionRules": { "description": "Fine-grained per-tool overrides for the mode above", "exportFailed": "Export failed", "importFailed": "Import failed", "label": "Permission Rules", "removeWorkspaceConfirmMessage": "Delete this workspace's .pi-desktop/permission-rules.json? Global permission rules will apply again.", "removeWorkspaceConfirmTitle": "Remove workspace rules", "saveError_global": "Settings saved, but global permission rules were not saved: {{error}}", "saveError_workspace": "Settings saved, but workspace permission rules were not saved: {{error}}", "scopeTabListAriaLabel": "Permission rules scope", "workspaceScopeTab": "This workspace" }, "resumeLastSession": { "description": "When opening a workspace, continue its most recent session instead of starting a new one", "label": "Resume Last Session" }, "runOnStartup": { "description": "Automatically start Sessrúmnir when you log in to your computer (takes effect in installed builds)", "label": "Run on Startup" }, "sections": { "agentConfiguration": "Agent Configuration", "appearance": "Appearance", "behavior": "Behavior", "customModels": "Custom Models", "multiAgentCouncilPlanning": "Multi-Agent Council Planning" }, "showThinking": { "description": "Display model thinking blocks in responses", "label": "Show Thinking" }, "terminalFontSize": { "description": "Font size for the terminal panel", "label": "Terminal Font Size" }, "theme": { "deleteConfirmMessage": 'Delete theme "{{themeName}}"? This cannot be undone.', "deleteConfirmTitle": "Delete theme", "description": "Application color scheme", "editNotFoundError": "Could not find the current theme to edit", "exportNotFoundError": "Could not find the current theme to export", "label": "Theme", "systemOption": "System" }, "themeActions": { "browseGalleryButton": "Browse gallery", "description": "Import, export, or install a theme from a URL", "label": "Theme Actions" }, "uiFontSize": { "description": "Chat, panels, and sidebar — not the terminal or code editor", "label": "UI Font Size" } };
|
|
15982
|
-
const sidebar = { "archived": { "collapseTitle": "Collapse archived sessions", "expandTitle": "Expand archived sessions", "heading_one": "Archived ({{count}})", "heading_other": "Archived ({{count}})" }, "currentSession": { "heading": "Current Session", "messageCount_one": "{{count}} messages", "messageCount_other": "{{count}} messages", "openTitle": "Open current session in chat · double-click to rename" }, "header": { "closeSidebar": "Close sidebar", "homeAriaLabel": "Home", "homeTitle": "Home (Esc to launcher)" }, "nav": { "activitySection": "Activity", "chat": "Chat", "missionControl": "
|
|
15982
|
+
const sidebar = { "archived": { "collapseTitle": "Collapse archived sessions", "expandTitle": "Expand archived sessions", "heading_one": "Archived ({{count}})", "heading_other": "Archived ({{count}})" }, "currentSession": { "heading": "Current Session", "messageCount_one": "{{count}} messages", "messageCount_other": "{{count}} messages", "openTitle": "Open current session in chat · double-click to rename" }, "header": { "closeSidebar": "Close sidebar", "homeAriaLabel": "Home", "homeTitle": "Home (Esc to launcher)" }, "nav": { "activitySection": "Activity", "chat": "Chat", "missionControl": "The Hall", "missionControlTitle": "All background sessions and workflows", "newTaskTitle": "Start a task in a new Brokk session", "sessions": "Sessions", "sessionsTitle": "Sessions in this project", "timeline": "Timeline", "timelineTitleWithProject": "Timeline for {{project}}", "workflows": "Workflows", "workflowsTitleNoProject": "All workflow runs (no project open)", "workflowsTitleWithProject": "Workflow runs in {{project}}", "workspaceSection": "Workspace" }, "newSessionButton": { "label": "New session", "openProjectToBegin": "Open a project to begin", "shortcutKbd": "Ctrl N", "startsIn": "Starts in {{project}}", "titleNoProject": "Open a project first", "titleWithShortcut": "Start a new session in this project (Ctrl/Cmd+N)" }, "openProjectFolder": { "ariaLabel": "Open project folder", "titleWithShortcut": "Open project folder (Ctrl/Cmd+O)" }, "promptsWaitingInOtherWorkspaces_one": "{{count}} Brokk prompt waiting in other workspaces", "promptsWaitingInOtherWorkspaces_other": "{{count}} Brokk prompts waiting in other workspaces", "recentSessions": { "emptyInProject": "No sessions in this project yet.", "emptyNoProject": "Open a project to see its sessions.", "headingNoProject": "Recent sessions", "headingWithProject": "Recent in {{project}}", "startOneNow": "Start one now", "viewAll": "View all" }, "sessionNamePlaceholder": "Session name", "sessionRow": { "tooltipActive": "{{title}}\n\nClick to open · double-click to rename · right-click for actions", "tooltipInactive": "{{title}}\n\nClick to open · right-click for actions" }, "tools": { "allWorkflows": "All Workflows", "allWorkflowsTitle": "Workflow runs from every project", "diagnostics": "Diagnostics", "notes": "Notes", "packages": "Packages", "sectionLabel": "Tools" }, "workflowRunsForSession": "Workflow runs for this session", "workspaceMenu": { "changeFolder": "Change folder…", "rename": "Rename" }, "workspaceSwitcher": { "namePlaceholder": "Workspace name", "noWorkspace": "No workspace", "openProjectEllipsis": "Open project…", "triggerTitle": "Click to switch · double-click to rename · right-click for options" } };
|
|
15983
15983
|
const skills = { "emptyHint": "Install skill packages or create skills in .pi/skills/", "emptyOmp": "No skills found in ~/.omp/agent/skills, ~/.claude/skills, or project .omp/skills", "emptyPi": "No skills found in ~/.pi/agent/skills or project .pi/skills", "emptyTitle": "No skills found", "providedByPlugin": "Provided by an installed plugin", "refreshAriaLabel": "Refresh skills", "runButton": "Run", "selectPrompt": "Select a skill to view its SKILL.md" };
|
|
15984
15984
|
const stats = { "heatmap": { "dayTooltip_one": "{{date}} — {{count}} messages", "dayTooltip_other": "{{date}} — {{count}} messages" }, "modelLegend": { "empty": "No model usage in this range.", "tokenBreakdown": "{{input}} in · {{output}} out" }, "overview": { "activeDaysLabel": "Active days", "currentStreakLabel": "Current streak", "favoriteModelLabel": "Favorite model", "longestStreakLabel": "Longest streak", "messagesLabel": "Messages", "peakHourLabel": "Peak hour", "sessionsLabel": "Sessions", "streakDays_one": "{{count}}d", "streakDays_other": "{{count}}d", "totalTokensLabel": "Total tokens" }, "ranges": { "oneYear": "1y", "sevenDays": "7d", "sixMonths": "6mo", "thirtyDays": "30d", "threeMonths": "3mo" }, "tabs": { "models": "models", "overview": "overview" }, "tokenChart": { "barTooltip": "{{label}} — {{tokens}} tokens", "empty": "No token usage in this range." } };
|
|
15985
15985
|
const status = { "agentSection": { "title": "{{agent}} Agent" }, "compactButton": { "compact": "Compact context", "compacting": "Compacting…", "title": "Summarize and compact the conversation to free up context" }, "contextSection": { "title": "Context Usage" }, "errorCopied": "copied", "errorCopy": "copy", "extensionsSection": { "title": "Extensions" }, "header": { "title": "System Status" }, "mcpSection": { "title": "MCP Servers" }, "noExtensionsOrSkills": "No extensions or skills loaded", "noMcpServers": "No MCP servers configured", "pidLabel": "(PID: {{pid}})", "processStatus": { "error": "error", "running": "running", "starting": "starting", "stopped": "stopped" }, "promptTemplatesSection": { "title": "Prompt Templates" }, "row": { "cost": "Cost", "error": "Error", "messages": "Messages", "model": "Model", "name": "Name", "path": "Path", "provider": "Provider", "session": "Session", "status": "Status", "tokens": "Tokens", "usage": "Usage", "window": "Window" }, "scope": { "cli": "cli", "global": "global", "package": "package", "project": "project" }, "skillCommandsSection": { "title": "Skill Commands" }, "trigger": { "title": "System status" }, "workspaceSection": { "title": "Workspace" } };
|
|
@@ -21157,7 +21157,7 @@ function StatusPopover() {
|
|
|
21157
21157
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "px-4 py-2 border-t border-border flex items-center justify-between text-[10px] text-faint", children: [
|
|
21158
21158
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
21159
21159
|
"v",
|
|
21160
|
-
"0.1.
|
|
21160
|
+
"0.1.18"
|
|
21161
21161
|
] }),
|
|
21162
21162
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
21163
21163
|
"button",
|
|
@@ -88932,12 +88932,12 @@ function buildTerminalTheme() {
|
|
|
88932
88932
|
background: bg,
|
|
88933
88933
|
foreground: fg,
|
|
88934
88934
|
cursor: fg,
|
|
88935
|
-
selectionBackground: v("--cm-selection-bg", "#
|
|
88935
|
+
selectionBackground: v("--cm-selection-bg", "#c9973f66"),
|
|
88936
88936
|
black: bg,
|
|
88937
88937
|
red: v("--color-error", "#ef4444"),
|
|
88938
88938
|
green: v("--color-success", "#22c55e"),
|
|
88939
88939
|
yellow: v("--color-warning", "#eab308"),
|
|
88940
|
-
blue: v("--color-accent", "#
|
|
88940
|
+
blue: v("--color-accent", "#c9973f"),
|
|
88941
88941
|
magenta: v("--cm-keyword", "#a855f7"),
|
|
88942
88942
|
cyan: v("--cm-link", "#06b6d4"),
|
|
88943
88943
|
white: fg,
|
|
@@ -89115,7 +89115,7 @@ function ChatPanel() {
|
|
|
89115
89115
|
const streamingToolCalls = useAppStore((state) => state.streamingToolCalls);
|
|
89116
89116
|
const piStatus = useAppStore((state) => state.piStatus);
|
|
89117
89117
|
const piStartupPhase = useAppStore((state) => state.piStartupPhase);
|
|
89118
|
-
const engineLabel = useAppStore((state) => agentEngineLabel(state.piEngine) ?? "
|
|
89118
|
+
const engineLabel = useAppStore((state) => agentEngineLabel(state.piEngine) ?? "Brokk");
|
|
89119
89119
|
const terminalOpen = useAppStore((state) => state.terminalOpen);
|
|
89120
89120
|
const reviewOpen = useAppStore((state) => state.reviewOpen);
|
|
89121
89121
|
const sidebarOpen = useAppStore((state) => state.sidebarOpen);
|
|
@@ -484,8 +484,8 @@
|
|
|
484
484
|
--color-border: #262626;
|
|
485
485
|
--color-border-strong: #404040;
|
|
486
486
|
--color-border-strong-hover: #525252;
|
|
487
|
-
--color-focus: #
|
|
488
|
-
--color-accent: #
|
|
487
|
+
--color-focus: #c9973f;
|
|
488
|
+
--color-accent: #c9973f;
|
|
489
489
|
--color-accent-hover: #1d4ed8;
|
|
490
490
|
--color-accent-fg: #60a5fa;
|
|
491
491
|
--color-accent-bg: #1e3a8a4d;
|
|
@@ -2181,7 +2181,7 @@
|
|
|
2181
2181
|
}
|
|
2182
2182
|
|
|
2183
2183
|
.border-accent\/40 {
|
|
2184
|
-
border-color: #
|
|
2184
|
+
border-color: #c9973f66;
|
|
2185
2185
|
}
|
|
2186
2186
|
|
|
2187
2187
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2191,7 +2191,7 @@
|
|
|
2191
2191
|
}
|
|
2192
2192
|
|
|
2193
2193
|
.border-accent\/50 {
|
|
2194
|
-
border-color: #
|
|
2194
|
+
border-color: #c9973f80;
|
|
2195
2195
|
}
|
|
2196
2196
|
|
|
2197
2197
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2409,7 +2409,7 @@
|
|
|
2409
2409
|
}
|
|
2410
2410
|
|
|
2411
2411
|
.bg-accent\/30 {
|
|
2412
|
-
background-color: #
|
|
2412
|
+
background-color: #c9973f4d;
|
|
2413
2413
|
}
|
|
2414
2414
|
|
|
2415
2415
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2419,7 +2419,7 @@
|
|
|
2419
2419
|
}
|
|
2420
2420
|
|
|
2421
2421
|
.bg-accent\/50 {
|
|
2422
|
-
background-color: #
|
|
2422
|
+
background-color: #c9973f80;
|
|
2423
2423
|
}
|
|
2424
2424
|
|
|
2425
2425
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2429,7 +2429,7 @@
|
|
|
2429
2429
|
}
|
|
2430
2430
|
|
|
2431
2431
|
.bg-accent\/70 {
|
|
2432
|
-
background-color: #
|
|
2432
|
+
background-color: #c9973fb3;
|
|
2433
2433
|
}
|
|
2434
2434
|
|
|
2435
2435
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -3437,7 +3437,7 @@
|
|
|
3437
3437
|
}
|
|
3438
3438
|
|
|
3439
3439
|
.shadow-accent\/20 {
|
|
3440
|
-
--tw-shadow-color: #
|
|
3440
|
+
--tw-shadow-color: #c9973f33;
|
|
3441
3441
|
}
|
|
3442
3442
|
|
|
3443
3443
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -3702,7 +3702,7 @@
|
|
|
3702
3702
|
}
|
|
3703
3703
|
|
|
3704
3704
|
.hover\:bg-accent\/90:hover {
|
|
3705
|
-
background-color: #
|
|
3705
|
+
background-color: #c9973fe6;
|
|
3706
3706
|
}
|
|
3707
3707
|
|
|
3708
3708
|
@supports (color: color-mix(in lab, red, red)) {
|
package/out/renderer/index.html
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="./assets/ymir-mark-kY-7e1x6.svg" />
|
|
11
11
|
<title>Sessrúmnir</title>
|
|
12
12
|
<script src="./theme-boot.js"></script>
|
|
13
|
-
<script type="module" crossorigin src="./assets/index-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
13
|
+
<script type="module" crossorigin src="./assets/index-BvfL-Umc.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="./assets/index-W51edCEX.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body class="bg-app text-primary antialiased">
|
|
17
17
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"selectHint": "↑↓ navigate · Enter/Tab select · Esc close"
|
|
42
42
|
},
|
|
43
43
|
"composer": {
|
|
44
|
-
"placeholderIdle": "Ask {{agent}} anything — / for commands",
|
|
44
|
+
"placeholderIdle": "Ask {{agent}} anything — / / for commands",
|
|
45
45
|
"placeholderNotRunning": "{{agent}} agent is not running...",
|
|
46
46
|
"placeholderSteering": "Type to steer the agent...",
|
|
47
47
|
"shiftEnterNewline": "Shift+Enter newline",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
},
|
|
54
54
|
"emptyState": {
|
|
55
55
|
"chooseProject": "Choose a project — {{agent}} starts when you send.",
|
|
56
|
-
"pickProject": "
|
|
56
|
+
"pickProject": "Choose the errand and speak it, Allfather.",
|
|
57
57
|
"startFailed": "Failed to start {{agent}}. Check settings.",
|
|
58
58
|
"starting": "Starting {{agent}} agent…",
|
|
59
|
-
"title": "What
|
|
59
|
+
"title": "What shall {{agent}} forge?",
|
|
60
60
|
"waitingOnEngine": "{{agent}} is up — waiting for the engine to finish loading. Local models can take a while…"
|
|
61
61
|
},
|
|
62
62
|
"extensionUi": {
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
},
|
|
711
711
|
"startingSession": "Starting session",
|
|
712
712
|
"subtitle": "Background sessions and workflow runs, from every project.",
|
|
713
|
-
"title": "
|
|
713
|
+
"title": "The Hall",
|
|
714
714
|
"unknownProject": "Unknown project",
|
|
715
715
|
"workflowActivity": "Workflow activity",
|
|
716
716
|
"workflowStatus": {
|
|
@@ -1141,7 +1141,7 @@
|
|
|
1141
1141
|
"nav": {
|
|
1142
1142
|
"activitySection": "Activity",
|
|
1143
1143
|
"chat": "Chat",
|
|
1144
|
-
"missionControl": "
|
|
1144
|
+
"missionControl": "The Hall",
|
|
1145
1145
|
"missionControlTitle": "All background sessions and workflows",
|
|
1146
1146
|
"newTaskTitle": "Start a task in a new Brokk session",
|
|
1147
1147
|
"sessions": "Sessions",
|
|
@@ -1727,4 +1727,4 @@
|
|
|
1727
1727
|
"sessions": "Sessions",
|
|
1728
1728
|
"tools": "Tools"
|
|
1729
1729
|
}
|
|
1730
|
-
}
|
|
1730
|
+
}
|
|
@@ -72,7 +72,7 @@ export function ChatPanel(): React.JSX.Element {
|
|
|
72
72
|
const streamingToolCalls = useAppStore((state) => state.streamingToolCalls)
|
|
73
73
|
const piStatus = useAppStore((state) => state.piStatus)
|
|
74
74
|
const piStartupPhase = useAppStore((state) => state.piStartupPhase)
|
|
75
|
-
const engineLabel = useAppStore((state) => agentEngineLabel(state.piEngine) ?? '
|
|
75
|
+
const engineLabel = useAppStore((state) => agentEngineLabel(state.piEngine) ?? 'Brokk')
|
|
76
76
|
const terminalOpen = useAppStore((state) => state.terminalOpen)
|
|
77
77
|
const reviewOpen = useAppStore((state) => state.reviewOpen)
|
|
78
78
|
const sidebarOpen = useAppStore((state) => state.sidebarOpen)
|
|
@@ -33,12 +33,12 @@ function buildTerminalTheme(): ITheme {
|
|
|
33
33
|
background: bg,
|
|
34
34
|
foreground: fg,
|
|
35
35
|
cursor: fg,
|
|
36
|
-
selectionBackground: v('--cm-selection-bg', '#
|
|
36
|
+
selectionBackground: v('--cm-selection-bg', '#c9973f66'),
|
|
37
37
|
black: bg,
|
|
38
38
|
red: v('--color-error', '#ef4444'),
|
|
39
39
|
green: v('--color-success', '#22c55e'),
|
|
40
40
|
yellow: v('--color-warning', '#eab308'),
|
|
41
|
-
blue: v('--color-accent', '#
|
|
41
|
+
blue: v('--color-accent', '#c9973f'),
|
|
42
42
|
magenta: v('--cm-keyword', '#a855f7'),
|
|
43
43
|
cyan: v('--cm-link', '#06b6d4'),
|
|
44
44
|
white: fg,
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
--color-border: #262626;
|
|
35
35
|
--color-border-strong: #404040;
|
|
36
36
|
--color-border-strong-hover: #525252;
|
|
37
|
-
--color-focus: #
|
|
38
|
-
--color-accent: #
|
|
37
|
+
--color-focus: #c9973f;
|
|
38
|
+
--color-accent: #c9973f;
|
|
39
39
|
--color-accent-hover: #1d4ed8;
|
|
40
40
|
--color-accent-fg: #60a5fa;
|
|
41
41
|
--color-accent-bg: rgba(30, 58, 138, 0.3);
|