pisper 0.6.18 → 0.6.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/web/.vite/manifest.json +566 -562
- package/web/assets/{AppDialog-BhRRstHP.js → AppDialog-Bq_kuweh.js} +1 -1
- package/web/assets/{AppOverlays-DYb88MMF.js → AppOverlays-C6-uz2I7.js} +1 -1
- package/web/assets/{AssetsPage-jmEL7H4K.js → AssetsPage-nWK-SI9U.js} +1 -1
- package/web/assets/{BoardPage-Cq1A97SF.js → BoardPage-BdI3hfz8.js} +3 -3
- package/web/assets/{ChannelsPage-C6Ep15_G.js → ChannelsPage-CP8J3G-V.js} +1 -1
- package/web/assets/{ChatAppearancePage-D9mtbLrb.js → ChatAppearancePage-Cr8N98HJ.js} +1 -1
- package/web/assets/{ChatHistoryPage-Bb2dxbsW.js → ChatHistoryPage-9AWN-55B.js} +1 -1
- package/web/assets/{ChatPage-B19Ofy-n.js → ChatPage-Bl94kmVS.js} +4 -4
- package/web/assets/ConfigPage-CU_oPhEG.js +5 -0
- package/web/assets/{DesktopWindowControls-B0tf8G6E.js → DesktopWindowControls-CoqP7BM1.js} +1 -1
- package/web/assets/{FeaturePage-C6p1tTYM.js → FeaturePage-C6kLKix5.js} +1 -1
- package/web/assets/{FileAttachmentPreview-Goie7m39.js → FileAttachmentPreview-C4qvBJGC.js} +1 -1
- package/web/assets/{FloatingWidgets-BkJUNE2R.js → FloatingWidgets-DSbRqMGT.js} +1 -1
- package/web/assets/{FocusRuntimeControls-DDhn5O0c.js → FocusRuntimeControls-DlBh7Vqg.js} +1 -1
- package/web/assets/{GitDiffViewer-lLjb8Z6c.js → GitDiffViewer-DGkjG02b.js} +1 -1
- package/web/assets/{ManageProjectsDialog-BcL3O5JH.js → ManageProjectsDialog-BFiDAKW5.js} +1 -1
- package/web/assets/{MarkdownMessage-IIGDT1-_.js → MarkdownMessage-BiGbYY8R.js} +1 -1
- package/web/assets/{McpPage-Om-chXna.js → McpPage-myrbtgSi.js} +1 -1
- package/web/assets/{MemoryPage-DKVTRhDw.js → MemoryPage-BhKLCAgT.js} +1 -1
- package/web/assets/{MobileNavigation-Bg8R2cAv.js → MobileNavigation-BrLK8gc5.js} +1 -1
- package/web/assets/{MorePage-BBtrzGN0.js → MorePage-B6UzpykD.js} +1 -1
- package/web/assets/{NewFolderDialog-Ck4pp3Fu.js → NewFolderDialog-CdALMU5C.js} +1 -1
- package/web/assets/{PageHeader-Cyw_6Kw4.js → PageHeader-CpubVScP.js} +1 -1
- package/web/assets/{PhoneDrawer-CDhCPbxZ.js → PhoneDrawer-BapKZhl9.js} +1 -1
- package/web/assets/{PhoneMenuButton-B16JL5aU.js → PhoneMenuButton-WhIGM1zy.js} +1 -1
- package/web/assets/{PhoneTopBar-DU84Aa4w.js → PhoneTopBar-CjMeneXU.js} +1 -1
- package/web/assets/{PluginsPage-DjW7wlaR.js → PluginsPage-BEpVVSAC.js} +1 -1
- package/web/assets/{SafeModePrompt-CaBwfnSU.js → SafeModePrompt-HogcxEdk.js} +1 -1
- package/web/assets/{SchedulesPage-DGWSRJUO.js → SchedulesPage-ML5Sl4S4.js} +1 -1
- package/web/assets/{SessionBrowserPane-DUf0kx2D.js → SessionBrowserPane-DOmbqdHK.js} +2 -2
- package/web/assets/{SessionContextPanel-isXy-27d.js → SessionContextPanel-guilbPz7.js} +2 -2
- package/web/assets/{SessionHome-2PhdOYt0.js → SessionHome-BLhLJsZO.js} +1 -1
- package/web/assets/{SessionInspector-Cj6sDpI6.js → SessionInspector-DewgkKy9.js} +1 -1
- package/web/assets/{SessionShell-rjmSVZ_E.js → SessionShell-CMGzYCcG.js} +1 -1
- package/web/assets/{SettingsSidebar-h5Sax-cP.js → SettingsSidebar-BKdrNAvp.js} +1 -1
- package/web/assets/{ShortcutHelpDialog-D7ev01fF.js → ShortcutHelpDialog-DgQKobJy.js} +1 -1
- package/web/assets/{ShortcutKeys-DZsAbYeO.js → ShortcutKeys-B1HCKuqe.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-B_NGjvl5.js → SidebarUpdateStatus-DtpsclSa.js} +1 -1
- package/web/assets/{SkillsPage-C2DnxWvu.js → SkillsPage-JwfOUart.js} +1 -1
- package/web/assets/{TaskProcessesPane-C2PtU4pC.js → TaskProcessesPane-CUUFhziU.js} +1 -1
- package/web/assets/{TaskTerminalView-D2TmMooE.js → TaskTerminalView-BgxdaUIZ.js} +1 -1
- package/web/assets/{TerminalPanel-CYY36HpY.js → TerminalPanel-B4VMm8q_.js} +1 -1
- package/web/assets/{WebDesktopPet-BlJybmd5.js → WebDesktopPet-C10BvWBl.js} +1 -1
- package/web/assets/{WorkflowsPage-Dvy-QIJo.js → WorkflowsPage-iqO_9OJO.js} +1 -1
- package/web/assets/{WorkspacePicker-D7djHk7o.js → WorkspacePicker-C0t_ekAf.js} +1 -1
- package/web/assets/{api-DHnp1y9B.js → api-Dg-aNpVe.js} +1 -1
- package/web/assets/app-update-8hmqlQl6.js +34 -0
- package/web/assets/{approval-confirm-D1i--K6V.js → approval-confirm-77ZLTNZI.js} +1 -1
- package/web/assets/{board-projects-BRJ_-tj0.js → board-projects-CnDn05fw.js} +1 -1
- package/web/assets/bots-store-DE76fA7-.js +1 -0
- package/web/assets/{chat-api-BdMPDpVE.js → chat-api-Dy5Hkicx.js} +1 -1
- package/web/assets/{client-store-DpQBjfeA.js → client-store-DF9a8Ka9.js} +1 -1
- package/web/assets/{config-search-DLn9UUQp.js → config-search-BA9qWX5h.js} +1 -1
- package/web/assets/{dialog-CVn9vhfy.js → dialog-CtFjznlx.js} +1 -1
- package/web/assets/{events-BphhtnIg.js → events-D0dbOYFR.js} +1 -1
- package/web/assets/{folder-paths-DDMQoUvb.js → folder-paths-DEFkIxr2.js} +1 -1
- package/web/assets/{hosts-D-ceNbyz.js → hosts-BBCDdN-M.js} +1 -1
- package/web/assets/i18n-CyyEaQdX.js +1 -0
- package/web/assets/index-DsXdZRdL.js +2 -0
- package/web/assets/{mobile-remote-fallback-DG_urwIg.js → mobile-remote-fallback-C2Q0wAa6.js} +1 -1
- package/web/assets/mount-app-BDzqFalE.js +9 -0
- package/web/assets/{permission-rules-api-DUCXhUyb.js → permission-rules-api-CPImVuda.js} +1 -1
- package/web/assets/{pick-system-directory-DzwXQwyO.js → pick-system-directory-B1clvHS6.js} +1 -1
- package/web/assets/{placements-C0pW79Hw.js → placements-DNdBLaY4.js} +2 -2
- package/web/assets/{popover-BiEbUPyI.js → popover-DN1mndHQ.js} +1 -1
- package/web/assets/{public-CkPP4ohL.js → public-CNoWpIiC.js} +1 -1
- package/web/assets/public-CUO7iS84.js +3 -0
- package/web/assets/{public-B9twcm-g.js → public-Cec32eBv.js} +2 -2
- package/web/assets/{public-components-CH3p1KVx.js → public-components-BpHOXPbD.js} +1 -1
- package/web/assets/public-diff-A9crjZfM.js +1 -0
- package/web/assets/public-events-iJAi2TnD.js +1 -0
- package/web/assets/{public-flags-Dr1Hy9R7.js → public-flags-BYEBqRMd.js} +1 -1
- package/web/assets/public-session-DM4y_qrY.js +1 -0
- package/web/assets/{public-sidebar-BGyKRJQ1.js → public-sidebar-Ce5o13yN.js} +1 -1
- package/web/assets/{runtime-capabilities-store-CHtOHvCw.js → runtime-capabilities-store-B5Bam7pC.js} +1 -1
- package/web/assets/{safe-mode-instance-DofnjrC0.js → safe-mode-instance-CJE36ukZ.js} +1 -1
- package/web/assets/safe-mode-sentinel-AmgPcPSa.js +1 -0
- package/web/assets/{session-change-summary-api-yVYBTolj.js → session-change-summary-api-CTAw_Fpq.js} +1 -1
- package/web/assets/{session-home-YfyPoMc5.js → session-home-BrU5Pj9S.js} +1 -1
- package/web/assets/{session-organization-api-BVv-S3ZA.js → session-organization-api-I4CSVACP.js} +1 -1
- package/web/assets/{session-scope-Cm9JGWmN.js → session-scope-7eIXCeDX.js} +1 -1
- package/web/assets/{session-tree-actions-BDCY5Rx_.js → session-tree-actions-CnUc7KFV.js} +1 -1
- package/web/assets/{session-tree-summary-C9jUUk8v.js → session-tree-summary-C224W_G6.js} +1 -1
- package/web/assets/{shortcuts-DDYN6uA3.js → shortcuts-LBxOVau1.js} +1 -1
- package/web/assets/{side-chat-context-BydqtUQh.js → side-chat-context-hRj7FqXK.js} +4 -4
- package/web/assets/sidebar-rMS3pmrQ.js +1 -0
- package/web/assets/{sidebar-store-C9_zt4qH.js → sidebar-store-BGW5sD2q.js} +1 -1
- package/web/assets/{speech-session-hLbzKBi7.js → speech-session-DTzw8niM.js} +1 -1
- package/web/assets/{startup-queries-Xtw8990R.js → startup-queries-qM8tclDJ.js} +1 -1
- package/web/assets/{storage-DH3bQdy6.js → storage-8QW6lXuT.js} +1 -1
- package/web/assets/{use-i18n-vlX9sewC.js → use-i18n-BuN5i-jP.js} +1 -1
- package/web/assets/use-open-bot-J8_CcQDt.js +1 -0
- package/web/assets/{use-studio-actions-Ddn1B4ZD.js → use-studio-actions-kEfc-Vr2.js} +1 -1
- package/web/assets/{useCatalogProjects-CKn9xBk7.js → useCatalogProjects-MO_MVlJu.js} +1 -1
- package/web/assets/{useNewProjectPicker-Dw_8vCGy.js → useNewProjectPicker-B5OQ8T-2.js} +2 -2
- package/web/assets/{useNow-Bk2SSqyl.js → useNow-ChT5op7P.js} +1 -1
- package/web/assets/{usePhoneShell-B1bMHq-t.js → usePhoneShell-Bkus67DO.js} +1 -1
- package/web/assets/{useSessionListQuery-Cmk9SaUf.js → useSessionListQuery-DdFrJGiI.js} +1 -1
- package/web/assets/{useSessionRowActions-DTh4fGVy.js → useSessionRowActions-CTYVP4el.js} +1 -1
- package/web/assets/{useSidebarModel-BFdUhpkM.js → useSidebarModel-BdWaL9Nn.js} +1 -1
- package/web/assets/{web-preview-C1xJDZhi.js → web-preview-DUIdcsL2.js} +1 -1
- package/web/assets/{web-preview-events-ottFBnUt.js → web-preview-events-4X_JU_UG.js} +1 -1
- package/web/assets/{workspace-order-store-_L6d1CWV.js → workspace-order-store-DlMf7MI6.js} +1 -1
- package/web/index.html +1 -1
- package/web/assets/ConfigPage-BZ90fSaF.js +0 -5
- package/web/assets/app-update-DPLsLaqu.js +0 -34
- package/web/assets/bots-store-BKZ5Va82.js +0 -1
- package/web/assets/i18n-D9cWCJjW.js +0 -1
- package/web/assets/index-DyGV2tpp.js +0 -2
- package/web/assets/mount-app-BJQPFzwJ.js +0 -9
- package/web/assets/public-D2ntc_xA.js +0 -3
- package/web/assets/public-diff-XnD8EDdH.js +0 -1
- package/web/assets/public-events-DmOklOQk.js +0 -1
- package/web/assets/public-session-CciAMmQg.js +0 -1
- package/web/assets/safe-mode-sentinel-CbERYZVc.js +0 -1
- package/web/assets/sidebar-BI_BMhyF.js +0 -1
- package/web/assets/use-open-bot-wY6Uo4E-.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{c as n}from"./i18n-D9cWCJjW.js";import{o as r}from"./vendor-state-GkUciC5H.js";import{a as i,l as a}from"./api-DHnp1y9B.js";import{a as o,o as s}from"./BotAvatar-CNL-APwP.js";n.addResourceBundle(`zh-CN`,`bots`,{"sidebar.title":`Bots`,"sidebar.newBot":`新建 Bot`,"sidebar.showAll":`显示全部({count})`,"sidebar.showLess":`收起`,"activity.idle":`空闲`,"activity.paused":`已暂停`,"character.blob":`小圆`,"character.bean":`豆豆`,"character.robot":`机器人`,"character.cat":`小猫`,"character.owl":`猫头鹰`,"character.ghost":`小幽灵`,"character.cloud":`云朵`,"character.octo":`章鱼`,"character.bunny":`兔子`,"character.bear":`小熊`,"character.fox":`小狐`,"character.star":`星星`,"new.title":`新建 Bot`,"new.description":`起个名字就能开始。它负责什么可以现在写,也可以之后在对话里告诉它。`,"new.name":`名字`,"new.namePlaceholder":`例如:审查员`,"new.character":`角色`,"new.color":`颜色`,"new.colorOption":`颜色 {index}`,"new.pick":`选择…`,"new.cancel":`取消`,"new.create":`开始对话`,"new.creating":`正在创建…`,"page.disabledTitle":`Bots 还没打开`,"page.disabledDescription":`Bots 是实验功能,在设置 › 实验功能里打开后就能用。`,"page.openLabs":`去实验功能`,"page.loading":`正在读取…`,"page.notFound":`这个 Bot 不存在了`,"page.emptyTitle":`还没有 Bot`,"page.emptyDescription":`Bot 是常驻的同事:一个长期对话,你随时找它,聊天软件和定时任务也能找它。`,"details.instructions":`它负责什么`,"details.instructionsPlaceholder":`例如:你负责 pisper 仓库的 PR 审查;小问题直接改,其余只提建议;先跑 npm test 再下结论。`,"details.save":`保存`,"details.acceptsWork":`接收聊天与定时的消息`,"details.permission":`执行权限上限`,"details.modeApproval":`需要审批`,"details.modeWorkspace":`工作区写入`,"details.modeFull":`完全访问`,"computer.description":`它在这台电脑上读写代码、跑命令。可以换成另一台运行 pisper executor 的电脑。`,"computer.runsOn":`运行在`,"computer.local":`本机`,"activity.approval":`等你批准一个操作`,"activity.question":`有问题问你`,"details.tools":`可用工具`,"details.toolsAll":`全部工具`,"details.toolsReadOnly":`只读`,"details.toolsCustom":`自定义({count} 个)`,"details.toolsHint":`只读:能读代码、搜索,不能改文件、不能跑命令。范围外的工具在执行前就会被拦下。`,"computer.unnamed":`未命名的电脑`,"computer.online":`在线`,"computer.offline":`离线`,"computer.option":`{name}({state})`,"computer.folder":`工作目录`,"computer.folderPlaceholder":`/path/to/repo`,"computer.folderInRoots":`必须在这台电脑允许的目录里:{roots}`,"computer.switch":`换到这里`,"computer.listTitle":`电脑`,"computer.usedBy":`{names} 在用`,"computer.remove":`移除`,"computer.confirmRemove":`确定移除`,"computer.cancel":`取消`,"computer.add":`添加电脑`,"computer.addTitle":`添加一台电脑`,"computer.done":`完成`,"computer.code":`配对码`,"computer.codeHint":`10 分钟内有效,只能用一次`,"computer.remoteOff":`先打开远程访问,那台电脑才连得上这里。`,"computer.openRemote":`打开远程访问`,"computer.runThere":`在那台电脑上运行(把目录换成允许 Bot 读写的代码目录,可以写多个 --root):`,"computer.rootPlaceholder":`~/code`,"computer.rootHint":`那台电脑只需要 Node.js,不需要模型密钥。`,"computer.copy":`复制命令`,"computer.copied":`已复制`,"computer.brainPlaceholder":`https://<这台电脑的远程访问地址>`,"triggers.chats":`可以叫它的聊天`,"triggers.chatsHint":`在这些聊天里发“/{name} 要做的事”或“@Pisper {name} 要做的事”就能叫它。聊天与人的 ID 在聊天里发 /whoami 查看。`,"triggers.p2p":`私聊`,"triggers.group":`群聊`,"triggers.peers":`聊天 {ids}`,"triggers.allPeers":`所有聊天`,"triggers.senders":`{ids} 能叫它`,"triggers.ownerOnly":`只有你能叫它`,"triggers.remove":`删除`,"triggers.platform":`渠道`,"triggers.peerIds":`聊天 ID`,"triggers.peerIdsPlaceholder":`聊天 ID,多个用逗号分开;不填表示所有聊天`,"triggers.senderIds":`谁能叫它`,"triggers.senderIdsPlaceholder":`谁能叫它(ID,逗号分开);不填只有你`,"triggers.senderIdsRequired":`谁能叫它(ID,逗号分开);群聊必须填写`,"triggers.cancel":`取消`,"triggers.add":`添加`,"triggers.addChat":`添加聊天`,"triggers.feishu":`飞书`,"triggers.weixin":`微信`,"triggers.qq":`QQ`,"triggers.telegram":`Telegram`,"triggers.schedules":`定时让它做`,"triggers.scheduleEnabled":`启用这个定时`,"triggers.scheduleMessage":`要做的事`,"triggers.scheduleMessagePlaceholder":`例如:检查依赖有没有安全更新`,"triggers.frequency":`频率`,"triggers.daily":`每天`,"triggers.weekly":`每周`,"triggers.once":`一次`,"triggers.weekday":`星期`,"triggers.date":`日期`,"triggers.time":`时间`,"triggers.addSchedule":`添加定时`,"triggers.monday":`周一`,"triggers.tuesday":`周二`,"triggers.wednesday":`周三`,"triggers.thursday":`周四`,"triggers.friday":`周五`,"triggers.saturday":`周六`,"triggers.sunday":`周日`,"triggers.onceAt":`{date} {time} 一次`,"triggers.weeklyAt":`每{day} {time}`,"triggers.dailyAt":`每天 {time}`,"triggers.otherSchedule":`按定时任务页里的设置`,"new.shuffle":`换一个样子`,"new.chooseLook":`自己挑样子`,"new.duty":`它负责什么(可选)`,"new.dutyPlaceholder":`例如:审查 pisper 仓库的 PR;小问题直接改,其余只提建议。`,"new.folder":`工作目录`,"new.folderDefault":`不填就用默认工作目录`,"new.folderSummary":`在本机的默认工作目录里干活。`,"new.changeFolder":`换个目录`,"settings.changeLook":`换个样子`,"settings.doneLook":`选好了`,"settings.computer":`电脑`,"settings.computerSummary":`{computer} · {folder}`,"settings.chatsCount":`{count} 个聊天`,"settings.notSet":`未设置`,"settings.advanced":`高级`,"settings.advancedSummary":`权限、工具、暂停`,"activity.busy":`正在忙`,"settingsPage.backToChat":`和 {name} 聊天`,"settingsPage.title":`{name} 的设置`}),n.addResourceBundle(`en-US`,`bots`,{"sidebar.title":`Bots`,"sidebar.newBot":`New Bot`,"sidebar.showAll":`Show all ({count})`,"sidebar.showLess":`Show less`,"activity.idle":`Idle`,"activity.paused":`Paused`,"character.blob":`Blob`,"character.bean":`Bean`,"character.robot":`Robot`,"character.cat":`Cat`,"character.owl":`Owl`,"character.ghost":`Ghost`,"character.cloud":`Cloud`,"character.octo":`Octopus`,"character.bunny":`Bunny`,"character.bear":`Bear`,"character.fox":`Fox`,"character.star":`Star`,"new.title":`New Bot`,"new.description":`A name is all it needs. Say what it’s responsible for now, or tell it later in the chat.`,"new.name":`Name`,"new.namePlaceholder":`e.g. Reviewer`,"new.character":`Character`,"new.color":`Color`,"new.colorOption":`Color {index}`,"new.pick":`Choose…`,"new.cancel":`Cancel`,"new.create":`Start chatting`,"new.creating":`Creating…`,"page.disabledTitle":`Bots are turned off`,"page.disabledDescription":`Bots is a Labs feature. Turn it on in Settings › Labs.`,"page.openLabs":`Open Labs`,"page.loading":`Loading…`,"page.notFound":`This Bot no longer exists`,"page.emptyTitle":`No Bots yet`,"page.emptyDescription":`A Bot is a teammate that's always around: one long conversation you can pick up anytime, and chats and schedules can reach it too.`,"details.instructions":`What it’s responsible for`,"details.instructionsPlaceholder":`e.g. You review PRs in the pisper repo; fix small issues directly, otherwise only suggest; run npm test before concluding.`,"details.save":`Save`,"details.acceptsWork":`Take messages from chats and schedules`,"details.permission":`Permission limit`,"details.modeApproval":`Approval required`,"details.modeWorkspace":`Workspace write`,"details.modeFull":`Full access`,"computer.description":`It reads and writes code and runs commands on this computer. You can switch it to another computer running pisper executor.`,"computer.runsOn":`Runs on`,"computer.local":`This computer`,"activity.approval":`Waiting for your approval`,"activity.question":`Has a question for you`,"details.tools":`Tools`,"details.toolsAll":`All tools`,"details.toolsReadOnly":`Read only`,"details.toolsCustom":`Custom ({count})`,"details.toolsHint":`Read only: it can read and search code but not edit files or run commands. Tools outside the scope are blocked before they run.`,"computer.unnamed":`Unnamed computer`,"computer.online":`online`,"computer.offline":`offline`,"computer.option":`{name} ({state})`,"computer.folder":`Working folder`,"computer.folderPlaceholder":`/path/to/repo`,"computer.folderInRoots":`Must be inside a folder this computer allows: {roots}`,"computer.switch":`Switch here`,"computer.listTitle":`Computers`,"computer.usedBy":`Used by {names}`,"computer.remove":`Remove`,"computer.confirmRemove":`Yes, remove`,"computer.cancel":`Cancel`,"computer.add":`Add a computer`,"computer.addTitle":`Add a computer`,"computer.done":`Done`,"computer.code":`Pairing code`,"computer.codeHint":`valid for 10 minutes, single use`,"computer.remoteOff":`Turn on remote access first so the other computer can reach this one.`,"computer.openRemote":`Open remote access`,"computer.runThere":`Run this on that computer (replace the folder with the code folder Bots may use; repeat --root for more):`,"computer.rootPlaceholder":`~/code`,"computer.rootHint":`That computer only needs Node.js, no model keys.`,"computer.copy":`Copy commands`,"computer.copied":`Copied`,"computer.brainPlaceholder":`https://<remote-access-address-of-this-computer>`,"triggers.chats":`Chats that can call it`,"triggers.chatsHint":`In these chats, send “/{name} what to do” or “@Pisper {name} what to do”. Send /whoami in a chat to see its IDs.`,"triggers.p2p":`Direct`,"triggers.group":`Group`,"triggers.peers":`chats {ids}`,"triggers.allPeers":`all chats`,"triggers.senders":`{ids} can call it`,"triggers.ownerOnly":`only you can call it`,"triggers.remove":`Remove`,"triggers.platform":`Channel`,"triggers.peerIds":`Chat IDs`,"triggers.peerIdsPlaceholder":`Chat IDs, comma separated; empty means all chats`,"triggers.senderIds":`Who can call it`,"triggers.senderIdsPlaceholder":`Who can call it (IDs, comma separated); empty means only you`,"triggers.senderIdsRequired":`Who can call it (IDs, comma separated); required for groups`,"triggers.cancel":`Cancel`,"triggers.add":`Add`,"triggers.addChat":`Add a chat`,"triggers.feishu":`Feishu`,"triggers.weixin":`WeChat`,"triggers.qq":`QQ`,"triggers.telegram":`Telegram`,"triggers.schedules":`On a schedule`,"triggers.scheduleEnabled":`Schedule on`,"triggers.scheduleMessage":`What to do`,"triggers.scheduleMessagePlaceholder":`e.g. Check dependencies for security updates`,"triggers.frequency":`Frequency`,"triggers.daily":`Daily`,"triggers.weekly":`Weekly`,"triggers.once":`Once`,"triggers.weekday":`Day`,"triggers.date":`Date`,"triggers.time":`Time`,"triggers.addSchedule":`Add a schedule`,"triggers.monday":`Monday`,"triggers.tuesday":`Tuesday`,"triggers.wednesday":`Wednesday`,"triggers.thursday":`Thursday`,"triggers.friday":`Friday`,"triggers.saturday":`Saturday`,"triggers.sunday":`Sunday`,"triggers.onceAt":`Once on {date} at {time}`,"triggers.weeklyAt":`Every {day} at {time}`,"triggers.dailyAt":`Daily at {time}`,"triggers.otherSchedule":`As set on the Schedules page`,"new.shuffle":`Try another look`,"new.chooseLook":`Pick a look`,"new.duty":`What it’s responsible for (optional)`,"new.dutyPlaceholder":`e.g. Review PRs in the pisper repo; fix small issues, otherwise only suggest.`,"new.folder":`Working folder`,"new.folderDefault":`Leave empty for the default working folder`,"new.folderSummary":`Works in the default working folder on this computer.`,"new.changeFolder":`Change folder`,"settings.changeLook":`Change look`,"settings.doneLook":`Done`,"settings.computer":`Computer`,"settings.computerSummary":`{computer} · {folder}`,"settings.chatsCount":`{count} chats`,"settings.notSet":`Not set`,"settings.advanced":`Advanced`,"settings.advancedSummary":`Permissions, tools, pause`,"activity.busy":`Busy`,"settingsPage.backToChat":`Chat with {name}`,"settingsPage.title":`{name} settings`});var c=[`read`,`grep`,`find`,`ls`];function l(e){if(e===null)return`all`;let t=[...e].sort();return t.length===c.length&&[...c].sort().every((e,n)=>t[n]===e)?`read-only`:`custom`}function u(e,{expanded:t,currentId:n}){let r=e=>e.activity?.needsYou?0:e.activity?.status===`running`?1:2,i=e.map((e,t)=>({bot:e,index:t})).sort((e,t)=>r(e.bot)-r(t.bot)||e.index-t.index).map(e=>e.bot);if(t||i.length<=3)return{shown:i,hidden:0};let a=i.filter((e,t)=>t<3||n!==void 0&&e.id===n);return{shown:a,hidden:i.length-a.length}}function d(e){return e.activity?.needsYou?`need`:e.activity?.status===`running`?`running`:`idle`}function f(e,t){if(!t.enabled)return e(`bots:activity.paused`);let n=t.activity;return n?.waiting===`approval`?e(`bots:activity.approval`):n?.waiting===`question`?e(`bots:activity.question`):n?.status===`running`?e(`bots:activity.busy`):e(`bots:activity.idle`)}var p=e(t(),1),m=[`feishu`,`weixin`,`qq`,`telegram`];function h(e){return Array.isArray(e)?e.flatMap(e=>{let t=e&&typeof e==`object`?e:{};if(!m.includes(t.platform))return[];let n=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[];return[{platform:t.platform,chatType:t.chatType===`group`?`group`:`p2p`,peerIds:Array.isArray(t.peerIds)?n(t.peerIds):null,senderIds:n(t.senderIds)}]}):[]}function g(e){if(!e||typeof e!=`object`||Array.isArray(e))throw a();return e}function _(e,t=``){return typeof e==`string`?e:t}function v(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.waiting===`approval`||t.waiting===`question`?t.waiting:null;return{status:t.status===`running`?`running`:`idle`,waiting:n,needsYou:t.needsYou===!0||n!==null}}function y(e){let t=g(e),n=g(t.avatar??{}),r=g(t.workspace??{});if(typeof t.id!=`string`||typeof t.name!=`string`)throw a();return{id:t.id,name:t.name,avatar:{character:o(n.character)?n.character:`blob`,color:s(n.color)?n.color:`blue`},enabled:t.enabled!==!1,instructions:_(t.instructions),executionMode:t.executionMode===`workspace-write`||t.executionMode===`full-access`?t.executionMode:`approval-required`,channels:h(t.channels),tools:Array.isArray(t.tools)?t.tools.filter(e=>typeof e==`string`):null,workspace:{environmentId:_(r.environmentId,`local`),cwd:_(r.cwd)},threadSessionId:_(t.threadSessionId),activity:v(t.activity)}}function b(e,t){return n=>t(g(n)[e])}function x(e){return i(`/api/bots`,{signal:e,parse:e=>{let t=g(e).bots;if(!Array.isArray(t))throw a();return t.map(y)}})}function S(e){return i(`/api/bots`,{method:`POST`,data:e,parse:b(`bot`,y)})}function C(e,t){return i(`/api/bots/${encodeURIComponent(e)}`,{method:`PATCH`,data:t,parse:b(`bot`,y)})}function w(e){return i(`/api/bots/${encodeURIComponent(e)}/session`,{method:`POST`,data:{},parse:e=>{let t=g(e).sessionId;if(typeof t!=`string`||!t)throw a();return t}})}function T(e){let t=e&&typeof e==`object`?e:{};return{enabled:t.enabled===!0,endpoints:Array.isArray(t.endpoints)?t.endpoints.filter(e=>typeof e==`string`&&/^https:\/\//.test(e)):[],fingerprint:typeof t.fingerprint==`string`?t.fingerprint:null}}function E(e){let t=g(e);if(typeof t.id!=`string`||!t.id)throw a();let n=t.capabilities&&typeof t.capabilities==`object`?t.capabilities:{};return{id:t.id,kind:t.kind===`node`?`node`:`local`,name:_(t.name),online:t.online===!0,roots:Array.isArray(t.roots)?t.roots.filter(e=>typeof e==`string`):[],shell:n.shell===!0,usedBy:Array.isArray(t.usedBy)?t.usedBy.flatMap(e=>{let t=e&&typeof e==`object`?e:{};return typeof t.id==`string`&&typeof t.name==`string`?[{id:t.id,name:t.name}]:[]}):[],lastSeenAt:typeof t.lastSeenAt==`string`?t.lastSeenAt:null}}function D(e){return i(`/api/environments`,{signal:e,parse:e=>{let t=g(e);if(!Array.isArray(t.environments))throw a();return{environments:t.environments.map(E),remote:T(t.remote)}}})}function O(){return i(`/api/environments/pairing`,{method:`POST`,data:{},parse:e=>{let t=g(e),n=g(t.pairing);if(typeof n.code!=`string`)throw a();return{code:n.code,expiresAt:_(n.expiresAt),remote:T(t.remote)}}})}function k(e){return i(`/api/environments/${encodeURIComponent(e)}`,{method:`DELETE`,parse:()=>void 0})}function A(e,t){let n=g(e).tasks;if(!Array.isArray(n))throw a();return n.flatMap(e=>{let n=e&&typeof e==`object`?e:{};if(n.targetType!==`bot`||n.botId!==t||typeof n.id!=`string`)return[];let r=[`once`,`interval`,`daily`,`weekly`,`monthly`].includes(String(n.frequency))?n.frequency:`daily`;return[{id:n.id,enabled:n.enabled!==!1,botMessage:_(n.botMessage),frequency:r,time:_(n.time),date:_(n.date),dayOfWeek:Number(n.dayOfWeek)||0,nextRunAt:typeof n.nextRunAt==`string`?n.nextRunAt:null}]})}function j(e,t){return i(`/api/schedules`,{signal:t,parse:t=>A(t,e)})}function M(e){return i(`/api/schedules`,{method:`POST`,data:{...e,targetType:`bot`,enabled:!0},parse:()=>void 0})}function N(e,t){return i(`/api/schedules/${encodeURIComponent(e)}`,{method:`PATCH`,data:{enabled:t},parse:()=>void 0})}function P(e){return i(`/api/schedules/${encodeURIComponent(e)}`,{method:`DELETE`,parse:()=>void 0})}var F=null,I=r()((e,t)=>({bots:[],loaded:!1,error:``,load:()=>(F??=x().then(t=>e({bots:t,loaded:!0,error:``})).catch(t=>e({loaded:!0,error:t instanceof Error?t.message:String(t)})).finally(()=>{F=null}),F),upsert:n=>{let r=t().bots;e({bots:r.findIndex(e=>e.id===n.id)<0?[...r,n]:r.map(e=>e.id===n.id?{...n,activity:e.activity}:e)})}}));function L(e){let t=I(e=>e.load),n=I(e=>e.bots.some(e=>e.activity?.status===`running`));(0,p.useEffect)(()=>{if(!e)return;t();let r=window.setInterval(()=>{document.visibilityState===`visible`&&t()},n?3e3:1e4);return()=>window.clearInterval(r)},[e,n,t])}export{l as _,M as a,j as c,k as d,N as f,d as g,f as h,S as i,D as l,c as m,I as n,O as o,C as p,m as r,P as s,L as t,w as u,u as v};
|