workpilot 0.35.2__tar.gz → 0.36.1__tar.gz
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.
- {workpilot-0.35.2 → workpilot-0.36.1}/PKG-INFO +3 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/bridge-mode.md +13 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/overview.md +42 -0
- workpilot-0.36.1/docs/automation/events.md +197 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/automation/scheduling.md +57 -5
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/web.md +32 -8
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/browser.md +4 -3
- workpilot-0.36.1/docs/cli/hooks.md +130 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/init.md +2 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/msgraph.md +1 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/overview.md +9 -6
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/update.md +14 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/overview.md +1 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/schema.md +15 -5
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/architecture.md +2 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/development.md +5 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/releasing.md +58 -10
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/desktop.md +78 -17
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/local.md +9 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/initialize.md +2 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/install.md +65 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/update.md +58 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/index.md +1 -0
- workpilot-0.36.1/docs/security/approvals.md +307 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/overview.md +32 -4
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/overview.md +13 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/sessions.md +11 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/browser.md +33 -14
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/overview.md +1 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/run-code.md +15 -8
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/troubleshooting.md +37 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/pyproject.toml +3 -2
- workpilot-0.36.1/web/dist/app-C0HXsjxE.js +18 -0
- workpilot-0.36.1/web/dist/app-CIo_O1d6.css +1 -0
- workpilot-0.36.1/web/dist/app-orwSkC5k.css +0 -0
- workpilot-0.36.1/web/dist/app-s3Wdl3G6.css +0 -0
- workpilot-0.36.1/web/dist/chunks/AgentModelEditor-B-peiAyg.js +1 -0
- workpilot-0.36.1/web/dist/chunks/AgentsView-CfLE9uQO.js +3 -0
- workpilot-0.36.1/web/dist/chunks/AskAssistant-XgktqFwr.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ConfigurationEditor-BAF059qV.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ConfigurationPanel-DwJKR74w.js +2 -0
- workpilot-0.36.1/web/dist/chunks/ConfirmOperation-DmkR6err.js +1 -0
- workpilot-0.36.1/web/dist/chunks/FieldContext-B0SnnBYq.js +1 -0
- workpilot-0.36.1/web/dist/chunks/KnowledgeView-Dpk-wVrr.js +1 -0
- workpilot-0.36.1/web/dist/chunks/Label-Bu5FJVXM.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ModelsView-BKkXA4rK.js +1 -0
- workpilot-0.36.1/web/dist/chunks/PromptsView-BAk7YT_i.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ScheduleDetailView-n3fNeIqd.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ScheduleView-DwLCannJ.js +1 -0
- workpilot-0.36.1/web/dist/chunks/SecurityView-DhXOxK7V.js +3 -0
- workpilot-0.36.1/web/dist/chunks/SessionsView-Dble2G1Y.js +1 -0
- workpilot-0.36.1/web/dist/chunks/SettingsView-CesTsG9D.js +3 -0
- workpilot-0.36.1/web/dist/chunks/SkillsView-En2bVZki.js +1 -0
- workpilot-0.36.1/web/dist/chunks/StatusView-DCN2DEYW.js +1 -0
- workpilot-0.36.1/web/dist/chunks/StoreView-CTZC7dvS.js +10 -0
- workpilot-0.36.1/web/dist/chunks/Subtitle2-BSQ2MIZy.js +1 -0
- workpilot-0.36.1/web/dist/chunks/ToolsView-J_e9kBuR.js +1 -0
- workpilot-0.36.1/web/dist/chunks/UsageView-BPVm8Vi2.js +3 -0
- workpilot-0.36.1/web/dist/chunks/_define_property-JgUJi83s.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~KnowledgeView~ConfigurationEditor-B9HrL56n.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~ScheduleView~ScheduleDetailView-B3MsQroe.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~ScheduleView~ScheduleDetailView~AgentsView~ConfigurationEditor-CpXgvWf9.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView-ClPEZOYm.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView-CwTgQvUK.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView~ConfigurationEditor-D2GzpfVG.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~ToolsView~SkillsView~SettingsView~ModelsView~AgentsView~ConfigurationEditor-BzO0aQ-O.js +25 -0
- workpilot-0.36.1/web/dist/chunks/common~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~PromptsView~AgentsView~Conf~nh6d1266-D5Yg9ykp.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SecurityView~ScheduleView~Sch~ndhlet6b-B8BuN1dr.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~UsageView~ToolsView~SkillsView~SecurityView~KnowledgeView~AgentsView-CRVBrHdh.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~Securi~lyvg2ya6-D_OD01vx.js +17 -0
- workpilot-0.36.1/web/dist/chunks/common~index-DyYf0Pra.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~ScheduleView~ScheduleDetailView~ModelsView~Ag~noz36xh2-C3L4cjoO.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleView~Schedu~pa8m5gaq-hGBM9FhJ.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~eeeajtw3-ClOUGMa_.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~kdvl6os7-Bh8Mbd7_.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~nc2z2c8m-BTveb4G2.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ScheduleView-M5Ww59-F.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView-1L1sixPX.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView-aqv2q6uT.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView~ScheduleDetailView-nmwQgrRr.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleV~imoc2wih-C2VMMJBW.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~ScheduleVie~g5kggcio-CX2GxSFp.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~d2lgwbsb-C_dGrafZ.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~egd2j22m-Dsg3Rfal.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~fd7sn78u-CWaHfhht.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~nv6fnw6l-D0SUxOsW.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~ckaid4m6-ingKD5dE.js +2 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~e4la2u87-pFJacrWX.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~ijmu3yfe-ZxvADrya.js +1 -0
- workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~j7l6oxa9-zg8nSmpD.js +2 -0
- workpilot-0.36.1/web/dist/chunks/configSchema-DU9qn2y6.js +2 -0
- workpilot-0.36.1/web/dist/chunks/createPresenceComponentVariant-B0R0rqiM.js +1 -0
- workpilot-0.36.1/web/dist/chunks/elementContains-DsEfTZAO.js +1 -0
- workpilot-0.36.1/web/dist/chunks/getReactElementRef-CKKCK222.js +1 -0
- workpilot-0.36.1/web/dist/chunks/isResolvedShorthand-DEEQPZ2V.js +1 -0
- workpilot-0.36.1/web/dist/chunks/management-DrUIs-SY.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useAnimationFrame-BPhpI3sJ.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useBrowserTimer-BLaxSrrG.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useCardGridStyles-DOUZN8UE.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useContextSelector-CWEM17Q3.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useFieldControlProps-BOKjlRZM.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useFocusFinders-B9jnNP17.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useFocusVisible-DlzPuOvX.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useMergeTabsterAttributes-Mc5vtDVL.js +1 -0
- workpilot-0.36.1/web/dist/chunks/useTimeout-COZs6EYL.js +1 -0
- workpilot-0.36.1/web/dist/chunks/window-DN08EBsw.js +1 -0
- workpilot-0.36.1/web/dist/index.html +64 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/schema/workpilot-config.schema.json +37 -2
- workpilot-0.36.1/workpilot/agent/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/_bg.py +2 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/browser_resource.py +40 -13
- workpilot-0.36.1/workpilot/agent/browser_sessions.py +294 -0
- workpilot-0.36.1/workpilot/agent/cards/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/base.py +10 -1
- workpilot-0.36.1/workpilot/agent/code_mode/event_entrypoint.py +63 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/monty.py +22 -4
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/stdlib.py +20 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/consolidation.py +1 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/context.py +15 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/history.py +52 -3
- workpilot-0.36.1/workpilot/agent/instances.py +909 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/loop.py +245 -29
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/memory.py +10 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/slash.py +16 -4
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/subagents.py +15 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tool_execution.py +244 -10
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/agent.py +5 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/browser.py +158 -105
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/browser_code.py +31 -9
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/config_workpilot.py +4 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/cron.py +43 -6
- workpilot-0.36.1/workpilot/agent/tools/events.py +258 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/git.py +3 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/msgraph.py +29 -4
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/registry.py +30 -26
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/run_code.py +100 -15
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/shell.py +56 -37
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/web.py +16 -16
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/Browser.md +15 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/events.py +1 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_attachments.py +2 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/cloud.py +12 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/manager.py +9 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/commands.py +22 -8
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/cron.py +7 -0
- workpilot-0.36.1/workpilot/cli/hooks.py +210 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/init.py +3 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/update.py +4 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/loader.py +55 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/management.py +5 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/schema.py +35 -12
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/heartbeat.py +11 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/job.py +52 -6
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/job_md.py +43 -7
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/service.py +295 -25
- workpilot-0.36.1/workpilot/defaults/_EVENT_HANDOFF.md +25 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_SECURITY_SHELL.md +22 -4
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/workpilot-config.schema.json +37 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/workpilot.yaml +10 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/updates.py +12 -4
- workpilot-0.36.1/workpilot/events/__init__.py +1 -0
- workpilot-0.36.1/workpilot/events/context.py +92 -0
- workpilot-0.36.1/workpilot/events/models.py +355 -0
- workpilot-0.36.1/workpilot/events/runner.py +126 -0
- workpilot-0.36.1/workpilot/events/scheduling.py +400 -0
- workpilot-0.36.1/workpilot/events/service.py +714 -0
- workpilot-0.36.1/workpilot/events/store.py +336 -0
- workpilot-0.36.1/workpilot/events_runtime.py +362 -0
- workpilot-0.36.1/workpilot/hooks/__init__.py +59 -0
- workpilot-0.36.1/workpilot/hooks/executor.py +300 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/hooks/handlers.py +383 -46
- workpilot-0.36.1/workpilot/hooks/loader.py +282 -0
- workpilot-0.36.1/workpilot/hooks/manager.py +420 -0
- workpilot-0.36.1/workpilot/hooks/models.py +135 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/loader.py +42 -7
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/model_catalog.py +7 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/transport.py +3 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/runtime.py +770 -142
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/approval.py +16 -2
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/approval_format.py +70 -2
- workpilot-0.36.1/workpilot/security/auto_approval.py +358 -0
- workpilot-0.36.1/workpilot/security/data/__init__.py +0 -0
- workpilot-0.36.1/workpilot/security/event_authority.py +70 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/rbac.py +1 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/risk.py +12 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sandbox.py +10 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/scorer.py +8 -2
- workpilot-0.36.1/workpilot/security/ssrf.py +150 -0
- workpilot-0.36.1/workpilot/security/turn_trust.py +154 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/url_classify.py +10 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/manager.py +25 -9
- workpilot-0.36.1/workpilot/skills/bundled/__init__.py +0 -0
- workpilot-0.36.1/workpilot/skills/bundled/event-automation.md +164 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/loader.py +4 -0
- workpilot-0.36.1/workpilot/utils/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/defaults.py +2 -1
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/auth.py +11 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/__init__.py +8 -0
- workpilot-0.36.1/workpilot/web/handlers/agents.py +203 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/approvals.py +49 -45
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/clarifications.py +16 -0
- workpilot-0.36.1/workpilot/web/handlers/configuration.py +324 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/schedule.py +22 -3
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/sessions.py +4 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/server.py +103 -1
- workpilot-0.35.2/docs/security/approvals.md +0 -119
- workpilot-0.35.2/web/dist/app-C21mYjTW.css +0 -1
- workpilot-0.35.2/web/dist/app-CsXAYX_C.js +0 -18
- workpilot-0.35.2/web/dist/chunks/KnowledgeView-D5kr0gY3.js +0 -1
- workpilot-0.35.2/web/dist/chunks/ModelsView-UPKC5cS_.js +0 -1
- workpilot-0.35.2/web/dist/chunks/PromptsView-Cu7mFy8a.js +0 -1
- workpilot-0.35.2/web/dist/chunks/ScheduleDetailView-Cbe9k37h.js +0 -1
- workpilot-0.35.2/web/dist/chunks/ScheduleView-CC2TGFb_.js +0 -1
- workpilot-0.35.2/web/dist/chunks/SecurityView-Cz0NTGmF.js +0 -3
- workpilot-0.35.2/web/dist/chunks/SessionsView-CUTdXRcI.js +0 -1
- workpilot-0.35.2/web/dist/chunks/SettingsView-xgr3Wfg9.js +0 -4
- workpilot-0.35.2/web/dist/chunks/SkillsView-CC0lFI0P.js +0 -1
- workpilot-0.35.2/web/dist/chunks/StatusView-WTOTBpK2.js +0 -1
- workpilot-0.35.2/web/dist/chunks/StoreView-Ci8YpeWT.js +0 -10
- workpilot-0.35.2/web/dist/chunks/ToolsView-BFo4vtm6.js +0 -1
- workpilot-0.35.2/web/dist/chunks/UsageView-D-xb1rlz.js +0 -3
- workpilot-0.35.2/web/dist/chunks/common-BgaUHuMn.js +0 -43
- workpilot-0.35.2/web/dist/chunks/window-DQtQZoVn.js +0 -1
- workpilot-0.35.2/web/dist/index.html +0 -32
- workpilot-0.35.2/workpilot/hooks/__init__.py +0 -21
- workpilot-0.35.2/workpilot/hooks/manager.py +0 -243
- workpilot-0.35.2/workpilot/security/ssrf.py +0 -319
- workpilot-0.35.2/workpilot/security/turn_trust.py +0 -41
- {workpilot-0.35.2 → workpilot-0.36.1}/.gitignore +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/README.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/actions.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/network.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/proxy.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/runtime.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/claude-code.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/github-copilot.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/subagents.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/automation/heartbeat.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/teams.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/tui.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/agents.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/attachments.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/chat.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/cloud.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/config.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/cron.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/doctor.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/logs.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/mcp.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/memory.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/plugins.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/run.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/secrets.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/security.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/serve.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/service.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/sessions.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/skills.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/status.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/teams.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/tools.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/version.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/customization.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/providers.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/api.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/cloud-gateway-deployment.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/documentation.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/feedback-routing.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/mcp.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/plugins.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/skills.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/feedback.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/cloud.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/self-hosting.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/audit-and-estop.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/authentication.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/secrets.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/attachments.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/microsoft-graph.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/web-search.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/hatch_build.py +0 -0
- /workpilot-0.35.2/web/dist/app-B5GQoc8V.css → /workpilot-0.36.1/web/dist/app-9Sk3b3Pl.css +0 -0
- /workpilot-0.35.2/web/dist/app-BG0MnlsF.css → /workpilot-0.36.1/web/dist/app-B5GQoc8V.css +0 -0
- /workpilot-0.35.2/web/dist/app-BMpGkMxz.css → /workpilot-0.36.1/web/dist/app-BCIpmu3M.css +0 -0
- /workpilot-0.35.2/web/dist/app-BjBgkMUd.css → /workpilot-0.36.1/web/dist/app-BG0MnlsF.css +0 -0
- /workpilot-0.35.2/web/dist/app-BmPNfp5q.css → /workpilot-0.36.1/web/dist/app-BMpGkMxz.css +0 -0
- /workpilot-0.35.2/web/dist/app-CBRs0pqs.css → /workpilot-0.36.1/web/dist/app-BjBgkMUd.css +0 -0
- /workpilot-0.35.2/web/dist/app-CeVx_1Uc.css → /workpilot-0.36.1/web/dist/app-BmPNfp5q.css +0 -0
- /workpilot-0.35.2/web/dist/app-Cr6SPxVu.css → /workpilot-0.36.1/web/dist/app-BoA41zjD.css +0 -0
- /workpilot-0.35.2/web/dist/app-CrphASwR.css → /workpilot-0.36.1/web/dist/app-ByM9P1Eh.css +0 -0
- /workpilot-0.35.2/web/dist/app-DnejMwtf.css → /workpilot-0.36.1/web/dist/app-CBRs0pqs.css +0 -0
- /workpilot-0.35.2/web/dist/app-J0wEnVQ9.css → /workpilot-0.36.1/web/dist/app-CExcdCxf.css +0 -0
- /workpilot-0.35.2/web/dist/app-X0K9ZNVl.css → /workpilot-0.36.1/web/dist/app-CT5xvRo-.css +0 -0
- /workpilot-0.35.2/web/dist/app-orwSkC5k.css → /workpilot-0.36.1/web/dist/app-CWtPr-2m.css +0 -0
- /workpilot-0.35.2/web/dist/app-s3Wdl3G6.css → /workpilot-0.36.1/web/dist/app-Cr6SPxVu.css +0 -0
- /workpilot-0.35.2/workpilot/agent/__init__.py → /workpilot-0.36.1/web/dist/app-CrphASwR.css +0 -0
- /workpilot-0.35.2/workpilot/agent/cards/__init__.py → /workpilot-0.36.1/web/dist/app-DeoqYaYU.css +0 -0
- /workpilot-0.35.2/workpilot/security/data/__init__.py → /workpilot-0.36.1/web/dist/app-DnejMwtf.css +0 -0
- /workpilot-0.35.2/workpilot/skills/bundled/__init__.py → /workpilot-0.36.1/web/dist/app-DzggVBNJ.css +0 -0
- /workpilot-0.35.2/workpilot/utils/__init__.py → /workpilot-0.36.1/web/dist/app-J0wEnVQ9.css +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/auth-callback.html +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/BrowserPerformanceMeasurement-BDzbW3oA.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/_hljs-langs-Dc_1zEsH.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/dist-0H8Ur5Q4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/1c-73lFXAp6.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/abnf-CSrFSEx0.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/accesslog-Dv0yWYFF.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/actionscript-1l-8ymtB.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ada-C4qX_6Ry.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/angelscript-KNgW1fZo.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/apache-Dh9PJFmJ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/applescript-BcBB30ub.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/arcade-bShcHfOZ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/arduino-BqwItFkb.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/armasm-D3oKByup.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/asciidoc-Qa3iLJWP.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/aspectj-Bjg1FiVd.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/autohotkey-BW462adD.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/autoit-DwUuKi_Q.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/avrasm-CHTJ6C4a.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/awk-D463B8d-.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/axapta-p7Fa3A78.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/basic-oUUdvLrs.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/bnf-CWGByNpv.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/brainfuck-CkSV9Luo.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cal-DTzUSEH8.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/capnproto-DvbP7u24.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ceylon-dTiwAriW.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clean-zdpkyKaR.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clojure-CR7dvLJ4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clojure-repl-aHBM9jLK.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cmake-CgP6gB4W.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/coffeescript-p0dfWXuO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/coq-rqf_V7Lc.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cos-PigSugnL.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/crmsh-CR9tZ93c.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/crystal-DyGSoxxU.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/csp-Bfnlcs7r.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/d-CXnZM-Nf.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dart-Do_01MLp.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/delphi-BzWcX1gm.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/django-Dxj7e8BX.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dns-Dz97dZh0.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dockerfile-C0zufGsU.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dos-DfZf_1de.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dsconfig-BQvSqJrQ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dts-D-4KA1m9.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dust-BCRbq8jp.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ebnf-BmerogBf.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/elixir-DXIHlGsR.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/elm-BOkolQqs.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erb-DptdJbGO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erlang-BjYI8dhz.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erlang-repl-LZCIum1w.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/excel-BI2r-hyN.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fix-BSf_7YOu.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/flix-DOTrSD3H.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fortran-tuAJdZsI.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/freedesktop-D80i-mP2.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fsharp-CvvkikEj.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gams-CEFdYGQ4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gauss-Cu9sx8W2.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gcode-DVi5cKOT.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gherkin-BXFuf_vg.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/glsl-Boj4HSji.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gml-5I1j5qRd.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/golo-CR1Ogma7.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gradle-DeCngaqu.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/groovy-DaJmaWG6.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haml-lM-YLvZH.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/handlebars-DJqXWVRL.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haskell-DUkhXIda.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haxe-qGz9CBa_.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/hsp-DJFrA4nv.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/http-DdjbPXam.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/hy-jK6vAkqq.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/inform7-C3EegiWg.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/irpf90-Wu2ux-Fn.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/isbl-D8SR3GGH.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/jboss-cli-CSRnPoYO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/julia-C_UcIgej.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/julia-repl-Hj_vmM07.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/kotlin-DgSK8bu-.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lasso-3ymKbqSp.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/latex-ifxXhTOO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ldif-Dg6dmf5K.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/leaf-7ZZ5wCnn.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/less-Bp0mgmpG.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lisp-RAPfxQzG.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/livecodeserver-C_mGJ3Jy.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/livescript-ClNaFHRt.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/llvm-OW2Pjs3T.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lsl-DGokiC3s.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lua-1dXYaL-H.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/makefile-BX-o3EIz.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mathematica-FGVCSpsQ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/matlab-DkTKhn5C.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/maxima-DqHi-6vF.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mel-DZJEcL8n.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mercury-DRbqW1u4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mipsasm-CElFSg8P.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mizar-Dh71fdD_.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mojolicious-tYyfRjr6.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/monkey-BCEr2jAI.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/moonscript-BGRQnnF2.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/n1ql-BLbzjUaV.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nestedtext-DGs-X5Vp.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nginx-B1pH5dXO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nim-BGBfXPIx.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nix-CR3yefiA.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/node-repl-Vgr6fxPS.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nsis-UYRebJNT.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/objectivec-DLXDdhyK.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ocaml-B-P1Uyq8.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/openscad-JVA7wRWo.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/oxygene-upDuL0ca.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/parser3-BpsPHbGc.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/perl-CvqMZYuf.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pf-Hak9sRVf.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pgsql-BJ2OcN8V.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/php-DuZl5e-L.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/php-template-8u8Pml-P.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pony-CpMp0mBm.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/processing-BD9AMQkN.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/profile-BWVYCPTK.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/prolog-CpiLaDrO.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/properties-C_5_0OWv.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/protobuf-DGOW1qT8.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/puppet-DEWZKVv3.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/purebasic-CRcZGluc.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/python-repl-D5uGO-jm.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/q-B3koHNzP.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/qml-CjhsRFLe.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/r-DNWPCnjT.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/reasonml-CJ1TLoQF.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/rib-hKzGh-52.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/roboconf-CaM3tfvi.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/routeros-iLCLl-5n.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/rsl-Da8STgqx.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ruby-BGpZ3p4_.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ruleslanguage-ZpNubZZ_.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sas-DEdPwm2c.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scala-C9lP4FWY.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scheme-BXgVOBG5.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scilab-B4bepPhE.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scss-gOyOKiXd.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/smali--7SxcPXF.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/smalltalk-DSQwiuj1.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sml-Bqj0DVIt.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sqf-BaWmPklZ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stan-aGu1RaYf.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stata-BakFZ2ml.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/step21-1CIrbR2Q.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stylus-ueqB8vk5.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/subunit-DV7smCjo.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/swift-BTn9__hL.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/taggerscript-YlWmQdSJ.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tap-NqH9ctA4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tcl-CiO3JXx7.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/thrift-DO8eeo3I.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tp-BkW-mzl-.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/twig-CP1rWjpH.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vala-wv2tBZQi.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbnet-BiMsFFN_.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbscript-BahAjTwm.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbscript-html-DQKGwi3G.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/verilog-Ke-GOEW9.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vhdl-CaU6e6N4.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vim-Dhhcn_CA.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/wasm-hBR4I1od.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/wren-B1F_0bnw.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/x86asm-p0pDTEuW.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/xl-xylFSQAW.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/xquery-Dr9rmg8t.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/zephir-CJH3ep_3.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs-CLaOA3Zl.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/marked.esm-D7dwggTa.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/purify.es-7fJ1DZ6H.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/rolldown-runtime-hePW80VL.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/vendor-react-Dn9Luu3B.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/logo.svg +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/msal-redirect-bridge.min.js +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/__main__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge_claude.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge_copilot.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/browser_runtime.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/builders.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/chip_strategy.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/status.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/types.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/clarify_match.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/clarify_render.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/coding.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/compaction.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/interactive_router.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/interrupt.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/loop_detect.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/mid_run.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/output_parser.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/reminders.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tool_scope.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_browser_emulation.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_delegate_notify.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_shared.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/base.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/bridge.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/clarify.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/claude_code.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/coding_task.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/concurrency.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/copilot.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/defer_delivery.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/filesystem.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/notify.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/read_session.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/search_history.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/search_workpilot_docs.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/spawn.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/task_status.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/tools.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/update.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/truncation.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/typing.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/builtin.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/FileSearch.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/HistorySession.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/WorkPilotSupport.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/github.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/loader.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/shortener.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/tool_categories.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/queue.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/streaming.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_allowlist.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_throttle.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/base.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/cli.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/conv_ref_store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/web.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/agents.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/attachments.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/browser.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/chat.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/doctor.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/mcp.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/mcp_setup.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/memory.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/msgraph.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/plugins.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/prompts.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/security.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/serve.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/service.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/sessions.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/skills.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/teams.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/tools.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/action_plan.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/crontab_compat.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/misfire.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/tz_migration.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/AGENTS.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/COMPACTION.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/GROUPING.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/HEARTBEAT.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/MEMORY.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/MERGE_SUMMARY.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/RESPONSE.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/SOUL.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/TOOLS.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/USER.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_CONSOLIDATION.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_RECOMPRESSION.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_SECURITY.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/backend.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/adapter.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/auth.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/client.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/defaults.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/health.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/manager.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_callback.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_provider.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_storage.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/protocol.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/transport.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/types.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/__main__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/corpus.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/base.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/client.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/copilot_web_search.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/reasoning.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/resolver.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/usage.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/runtime_status.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/allowlist.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/allowlist_presets.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/attachments.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/audit.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/binary_frame.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/clarify.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/data/url_classify.json +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/destructive.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/estop.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/execution_directories.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/github_auth.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/leak.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/migrate.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/relay_validator.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sanitizer.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_env.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_fernet.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_keyring.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/self_governance.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sensitive.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/short_id.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/task_approval.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/zw_id.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/linux.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/macos.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/manager.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/models.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/native.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/windows.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/artifacts.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/bridge_store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/ado.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/azure-ops.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/calendar-lookup.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/cloud-apply.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/docx.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/github.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/SKILL.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/calendar.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/files.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/mail.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/people.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/productivity.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/teams.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/pptx.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/read-remote-document.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/sharepoint-pptx.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/SKILL.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/references/advanced.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/references/targets.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/workpilot-feedback.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/workpilot-maintenance.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/xlsx.md +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/shortener.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/universal.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/auth.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/cloud_verify.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/devbox_keepalive.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/frozen_runtime.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/helpers.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/html.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/identity.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/input.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/json_truncate.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/llm_shortener.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/log_context.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/logging.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/markdown_frontmatter.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/msgraph_scopes.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/msgraph_token.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/package_index.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/playwright_node.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/sleep_inhibitor.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/token_errors.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/update.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/wam_token.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/__init__.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/estop_middleware.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/_common.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/admin.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/config.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/mcp_connections.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/mcp_store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/memory.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/models.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/plugins_store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/prompts.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/skills.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/skills_store.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/status.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/telemetry.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/tools.py +0 -0
- {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/middleware.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: workpilot
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.36.1
|
|
4
4
|
Summary: Enterprise AI assistant — internal preview only
|
|
5
5
|
Project-URL: Homepage, https://aka.ms/workpilot
|
|
6
6
|
Project-URL: Documentation, https://gim-home.github.io/WorkPilot/
|
|
@@ -24,11 +24,12 @@ Requires-Dist: msal>=1.35.1; sys_platform == 'linux' and platform_machine == 'aa
|
|
|
24
24
|
Requires-Dist: msal[broker]>=1.35.1; sys_platform != 'linux' or platform_machine != 'aarch64'
|
|
25
25
|
Requires-Dist: playwright>=1.58
|
|
26
26
|
Requires-Dist: prompt-toolkit>=3.0
|
|
27
|
-
Requires-Dist: pydantic-monty==0.0
|
|
27
|
+
Requires-Dist: pydantic-monty==1.0.0
|
|
28
28
|
Requires-Dist: pydantic<3,>=2.12
|
|
29
29
|
Requires-Dist: pyjwt[crypto]>=2.8
|
|
30
30
|
Requires-Dist: python-multipart>=0.0.9
|
|
31
31
|
Requires-Dist: pyyaml>=6.0
|
|
32
|
+
Requires-Dist: referencing>=0.36
|
|
32
33
|
Requires-Dist: rich>=14.3
|
|
33
34
|
Requires-Dist: tiktoken>=0.9
|
|
34
35
|
Requires-Dist: typer>=0.24
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
Bridge mode lets you drop out of WorkPilot's own agent loop for a session and talk directly to Claude Code or the GitHub Copilot CLI instead, while keeping the same terminal, channel, and audit trail.
|
|
6
6
|
|
|
7
|
+
## Switch to a persistent WorkPilot agent
|
|
8
|
+
|
|
9
|
+
After creating an agent in the local/desktop **Agents** page, use `/bridge research` to
|
|
10
|
+
continue its independent conversation. Use `/bridge off` to return to the main assistant.
|
|
11
|
+
`@research message` is the one-shot equivalent and leaves the current bridge selection
|
|
12
|
+
unchanged, including when another internal or external agent is selected.
|
|
13
|
+
|
|
14
|
+
Internal agents still execute through WorkPilot's normal tools, skills and approvals.
|
|
15
|
+
The external-CLI permission behavior below applies only to `claude` and `copilot`.
|
|
16
|
+
`/pause`, `/resume`, `/stop` and `/status` control a selected internal agent; prefix them
|
|
17
|
+
with `@name` for a one-shot control, for example `@research /stop`.
|
|
18
|
+
See [Persistent agents](overview.md#persistent-agents).
|
|
19
|
+
|
|
7
20
|
## Why use it
|
|
8
21
|
|
|
9
22
|
Normally, WorkPilot's agent loop reasons about your request and calls tools, including the
|
|
@@ -18,6 +18,48 @@ Explain which Agent is handling this task and why.
|
|
|
18
18
|
```
|
|
19
19
|
:::
|
|
20
20
|
|
|
21
|
+
## Persistent agents
|
|
22
|
+
|
|
23
|
+
For a recurring responsibility, create an agent in **Agents** in the local Web UI or desktop
|
|
24
|
+
app. Give it a calling name, instructions, model, tools, skills, and workspace. Leaving the
|
|
25
|
+
workspace blank assigns a separate working directory. Agent definitions used for delegation
|
|
26
|
+
remain reusable templates; creating a persistent member gives it its own durable identity.
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
@research Find the release notes.
|
|
30
|
+
@research Continue with the same sources.
|
|
31
|
+
/bridge research
|
|
32
|
+
/bridge off
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`@name` addresses only that message. `/bridge name` switches the current conversation until
|
|
36
|
+
`/bridge off`; a one-shot mention while bridged does not change that selection. These commands
|
|
37
|
+
work through the existing CLI, local Web, and cloud chat channels. Use the local/desktop app
|
|
38
|
+
to manage members; cloud chat does not require a new gateway version.
|
|
39
|
+
|
|
40
|
+
Each member has its own main session, MEMORY.md, HISTORY.md, and SQLite search index. It
|
|
41
|
+
returns to standby after task completion and associated memory processing, with no periodic
|
|
42
|
+
model calls. Pause finishes the current tool batch first. Stop preserves data; continue in
|
|
43
|
+
chat with `@name /resume`. After a restart, interrupted tasks are not automatically retried:
|
|
44
|
+
send a new message or explicitly continue. Bridge selection itself is not restored.
|
|
45
|
+
The same resume command works in a single invocation: `workpilot run "@research /resume"`.
|
|
46
|
+
|
|
47
|
+
Open a member to inspect its session, edit or clear its memory, search history, or rebuild
|
|
48
|
+
its history index without using a model. Clear memory keeps history and sessions. Stop active
|
|
49
|
+
work before changing configuration, memory, or indexes. Optional skills are selected by name;
|
|
50
|
+
an empty list selects none. The normal security policy still applies: independent data and
|
|
51
|
+
workspaces are not a process or container isolation boundary.
|
|
52
|
+
|
|
53
|
+
Viewing memory, history, and sessions reads saved data without initializing the member's
|
|
54
|
+
execution environment. Missing optional skills therefore do not prevent inspecting prior work.
|
|
55
|
+
|
|
56
|
+
If cleanup fails, the remaining cleanup steps and other members are still attempted. The failed
|
|
57
|
+
member retains its data and reports incomplete cleanup; use **Stop** again to retry.
|
|
58
|
+
|
|
59
|
+
Automatic team creation, automatic collaboration, and team-shared memory are not part of this
|
|
60
|
+
first version. Scheduled-job and Event management remain with the main assistant.
|
|
61
|
+
See [Bridge mode](bridge-mode.md) and [Local data](../storage/overview.md).
|
|
62
|
+
|
|
21
63
|
## Built-in agents
|
|
22
64
|
|
|
23
65
|
| Agent | Purpose |
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fixed-code condition checks, explicit fingerprint grants, isolated tests, and separate scheduled tasks.
|
|
3
|
+
workpilot_search:
|
|
4
|
+
keywords:
|
|
5
|
+
- Event fixed main context boolean monitor condition automation
|
|
6
|
+
- expected false fresh check scoped approval isolated test
|
|
7
|
+
- Events Web approval API key Entra
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Events
|
|
11
|
+
|
|
12
|
+
> [中文版](../zh-cn/automation/events.md)
|
|
13
|
+
|
|
14
|
+
An Event checks a condition with fixed Python code, without an agent reasoning on every poll.
|
|
15
|
+
A separate [scheduled task](scheduling.md) decides what to do. The four contracts are
|
|
16
|
+
`EventDefinition`, `EventContext`, `EventRun`, and `EventConditions`; live tool schemas are authoritative.
|
|
17
|
+
|
|
18
|
+
::: tip Ask WorkPilot
|
|
19
|
+
“Monitor the build every minute and summarize it when complete.”
|
|
20
|
+
“At 9 AM, check afresh and prepare only if the build is still running.”
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
## Availability and manual setup
|
|
24
|
+
|
|
25
|
+
Events default to `events.enabled: false`. An operator must enable it and keep
|
|
26
|
+
`tools.code_mode.enabled` enabled (its default).
|
|
27
|
+
Clocks also require `cron.enabled` and a running scheduler host; manual checks do not require cron.
|
|
28
|
+
Do not silently enable dependencies. See [scheduler setup](scheduling.md#enable-the-scheduler-manually).
|
|
29
|
+
Global defaults are `max_concurrent_checks: 5`, `max_pending_checks: 200`, and
|
|
30
|
+
`history_retention_days: 30` under `events`. Checks are bounded and serialized per Event;
|
|
31
|
+
overload and output truncation are explicit. See the [configuration reference](../configuration/schema.md).
|
|
32
|
+
Nested checks report `blocked` / `overloaded` rather than waiting for busy execution capacity
|
|
33
|
+
or another run of the same Event; ordinary callers can still wait within the pending-check limit.
|
|
34
|
+
|
|
35
|
+
### Web-host authentication prerequisite
|
|
36
|
+
|
|
37
|
+
Web chat and Event approval transports must be authenticated through Entra or an effective API key.
|
|
38
|
+
The gateway's existing temporary generated key is valid; a permanently configured key is not required.
|
|
39
|
+
CLI or standalone Cloud use does not itself require Web configuration. See
|
|
40
|
+
[Local gateway authentication](../gateways/local.md#authentication-and-network-exposure).
|
|
41
|
+
|
|
42
|
+
## From a request to an enabled check
|
|
43
|
+
|
|
44
|
+
1. Agree on true, false, unknown/error, printed evidence, and a separate task and destination.
|
|
45
|
+
2. Inspect existing definitions/history. Load `tools(name="event-automation", action="skill")`;
|
|
46
|
+
describe `events`, `cron`, and source tools before using their actual schemas.
|
|
47
|
+
3. Save a disabled draft. Static `validate` checks schema/entrypoint without host calls and reports
|
|
48
|
+
`type_checked: false`; native type checking happens during execution.
|
|
49
|
+
4. Request explicit human [authorization](#authorization) for that Event ID and fingerprint;
|
|
50
|
+
saving is not approval.
|
|
51
|
+
5. Run an authorized, isolated `test` when appropriate and inspect its result and real effects.
|
|
52
|
+
6. Enable the authorized revision and verify history; never infer execution from a successful save.
|
|
53
|
+
|
|
54
|
+
## Author a fixed checker
|
|
55
|
+
|
|
56
|
+
Use `async def main(context)` for tool calls or `def main(context)` for computation. The runtime
|
|
57
|
+
invokes it in a fresh code-mode sandbox. The checker engine needs no model; tools may use one.
|
|
58
|
+
Read-only queries are recommended, not enforced: other granted tools are eligible. Checkers cannot
|
|
59
|
+
call `agent`, `spawn`, or `run_code`, directly or through `call_tool`. They can inspect cron tasks
|
|
60
|
+
but cannot add, enable, or run them; task actions are separate.
|
|
61
|
+
A tool-free comparison, with `actual` and `expected` supplied in `params`, is:
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
def main(context):
|
|
65
|
+
return context["params"]["actual"] == context["params"]["expected"]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Example disabled `create` payload (not a YAML import file); discover `read_file` first:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
id: build-ready
|
|
72
|
+
description: Check whether the build has completed
|
|
73
|
+
enabled: false
|
|
74
|
+
params: {path: build-status.txt}
|
|
75
|
+
pre_trigger: {schedule: 60}
|
|
76
|
+
code: |
|
|
77
|
+
async def main(context):
|
|
78
|
+
text = await read_file(path=context["params"]["path"])
|
|
79
|
+
print(text[:1000])
|
|
80
|
+
complete = "status=complete" in text
|
|
81
|
+
running = "status=running" in text
|
|
82
|
+
if complete == running:
|
|
83
|
+
raise ValueError("Expected one recognized build status")
|
|
84
|
+
return complete
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`timeout_seconds` defaults to 60. Use optional `expires_at` for bounded monitoring.
|
|
88
|
+
Keep credentials in existing tool configuration, not code, params, or printed details.
|
|
89
|
+
|
|
90
|
+
Prefer booleans on successful paths. Python truthiness remains compatible, with coercion diagnostics:
|
|
91
|
+
`None` and empty values are false, but the string `"false"` is true. Do not disguise errors as false.
|
|
92
|
+
Errors, blocked, cancelled, interrupted checks, and missing/expired observations have no boolean.
|
|
93
|
+
`print` is bounded supplementary data, separate from the result and diagnostics.
|
|
94
|
+
Run history uses one `source`: `manual`, `time`, or `test`. Test runs never become production
|
|
95
|
+
observations.
|
|
96
|
+
|
|
97
|
+
Context is a copied snapshot containing `event`, `run`, `params`, `input`, and `last_success`.
|
|
98
|
+
`last_success` is the previous successful production check for this revision, including false,
|
|
99
|
+
or `null`; tests/failures do not replace it. There is no writable `context.state` or mutation
|
|
100
|
+
writeback. Input cannot replace host identity, params, or authority.
|
|
101
|
+
|
|
102
|
+
## Authorization
|
|
103
|
+
|
|
104
|
+
Authorization approves an entire fixed Event by **`event_id` + `fingerprint`**, within trusted
|
|
105
|
+
owner/workspace boundaries. The fingerprint is the SHA-256 hash of its executable definition,
|
|
106
|
+
not a credential or proof of approval.
|
|
107
|
+
Event IDs are unique within that owner/workspace, not globally. Other scopes may use the
|
|
108
|
+
same ID with independent definitions, grants, observations and clocks.
|
|
109
|
+
`create`, `get`, and `list` expose the current `fingerprint`. Pass it with `event_id` to `authorize`;
|
|
110
|
+
optional `expires_at` limits the grant. There are no per-tool or per-argument grant rules:
|
|
111
|
+
approval covers the otherwise permitted tool calls made by that fixed Event.
|
|
112
|
+
Executable configuration changes produce a different fingerprint and invalidate approval.
|
|
113
|
+
`update` still takes `changes` and `expected_revision` for edit concurrency; revision is not a
|
|
114
|
+
grant-matching field. Existing tool ceilings, hard denies, E-stop, audit, and postflight remain.
|
|
115
|
+
Description and error-notification edits keep the execution revision, grant, observations and timer;
|
|
116
|
+
they do not interrupt an active check. They remain editable after a one-shot time or expiry has
|
|
117
|
+
passed; these edits do not rearm the check or extend its authorization. New executable settings
|
|
118
|
+
must still satisfy schedule and expiry validation.
|
|
119
|
+
Approval cards show the complete checker and JSON authorization scope: Event ID/fingerprint,
|
|
120
|
+
owner/workspace, executable configuration, and expiry. Review both before
|
|
121
|
+
approving unattended execution; the Security approval queue shows the same checker and scope.
|
|
122
|
+
When they are too large for a Teams card, the card points to the Security approval queue instead.
|
|
123
|
+
|
|
124
|
+
Inspect the saved Event, use the full fingerprint returned by `get`, wait for the human
|
|
125
|
+
decision, then test:
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
events(action="get", event_id="build-ready")
|
|
129
|
+
events(action="authorize", event_id="build-ready",
|
|
130
|
+
fingerprint="<fingerprint returned by get>")
|
|
131
|
+
events(action="test", event_id="build-ready")
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Tests execute granted real tools; inspect earlier effects before repeating them. Nested checks
|
|
135
|
+
inherit isolation: no production observations or task triggering. Production `run` may trigger tasks.
|
|
136
|
+
Checker grants never transfer to actions; those retain ordinary [approvals](../security/approvals.md).
|
|
137
|
+
|
|
138
|
+
## Combine time and conditions
|
|
139
|
+
|
|
140
|
+
Event timers poll independently; clocked tasks **check fresh at each tick** rather than using cache.
|
|
141
|
+
Event-only tasks use committed `event.checked` observations without recursive checks. `cron` examples:
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
name: build-summary
|
|
145
|
+
schedule: event.checked
|
|
146
|
+
event_conditions:
|
|
147
|
+
mode: all
|
|
148
|
+
items: [{event_id: build-ready, equals: true, max_age_seconds: 120}]
|
|
149
|
+
event_policy: {mode: enter_match, cooldown_seconds: 300}
|
|
150
|
+
prompt: Summarize the completed build using the attached check details.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
name: morning-preparation
|
|
155
|
+
schedule: "0 9 * * *"
|
|
156
|
+
timezone: Asia/Shanghai
|
|
157
|
+
event_conditions:
|
|
158
|
+
mode: all
|
|
159
|
+
items: [{event_id: build-ready, equals: false}]
|
|
160
|
+
prompt: Prepare the build follow-up while the build is still running.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
`all` requires every match; `any` needs one known match. Unknown is never false.
|
|
164
|
+
`max_age_seconds` bounds observation age and is rechecked before dispatch, including after waiting
|
|
165
|
+
for task capacity. `each_match` dispatches on matching results;
|
|
166
|
+
`enter_match` on entry into a match, including the first known match. Cooldown is not exactly-once delivery.
|
|
167
|
+
One-shot pre-triggers retain their resolved occurrence across restart and consume it atomically
|
|
168
|
+
with check reservation. Unknown started checks are not automatically replayed.
|
|
169
|
+
For absolute `at:` timestamps without an offset, `pre_trigger.timezone` selects the wall-clock
|
|
170
|
+
timezone (local timezone when omitted). An explicit timestamp offset takes precedence;
|
|
171
|
+
relative `at:+seconds` delays are unchanged.
|
|
172
|
+
|
|
173
|
+
## Handoff and management
|
|
174
|
+
|
|
175
|
+
Existing cron owns execution, overlap, capacity, and history; no separate task queue or replay exists.
|
|
176
|
+
Ordinary message/prompt/tool actions retain their instructions and arguments. Printed details stay
|
|
177
|
+
fenced as untrusted data, including in `events` tool results, and are never interpolated into tool
|
|
178
|
+
arguments. Bound tasks can use `events(action="context")`. Existing tools can address idle owned
|
|
179
|
+
agents, but Events do not automatically wait for busy agents or silently resume stopped/paused ones.
|
|
180
|
+
Use the default `completion_mode="wait"` for one-shot tasks so delegated work finishes before retirement.
|
|
181
|
+
|
|
182
|
+
The task context contains `task_id`, `reason`, and bounded `events` evidence. Ownership,
|
|
183
|
+
authorization, trigger bookkeeping and causation stay in the host; they are not read back
|
|
184
|
+
from the task's data. The same true/false/unknown condition rules apply during evaluation
|
|
185
|
+
and immediately before dispatch.
|
|
186
|
+
|
|
187
|
+
Failures remain in history, with grouped error/recovery notices by default (`on_error: {notify: true}`).
|
|
188
|
+
No automatic retries or repair proposals. Agree who retires finished monitors and verify Event/task history.
|
|
189
|
+
Disable an Event to pause it. Deletion retires its ID within its owner/workspace; scoped history
|
|
190
|
+
remains subject to normal retention, and that scope cannot reuse the ID for a different definition.
|
|
191
|
+
|
|
192
|
+
V1 operations: `list`, `get`, `history`, `create`, `update`, `enable`, `disable`, `delete`,
|
|
193
|
+
`validate`, `authorize`, `revoke`, `run`, `test`, `context`. Manage through conversational tools:
|
|
194
|
+
no Event HTTP API, webhook, YAML import endpoint, or Events WebUI. The existing Schedule HTTP API
|
|
195
|
+
does not expose or manage Event-bound tasks.
|
|
196
|
+
Removing an Event-bound task requires its Event runtime so the protected binding is removed
|
|
197
|
+
with the job. Use the conversational `cron` tool; standalone `wp cron remove` refuses these jobs.
|
|
@@ -84,10 +84,35 @@ scheduler for its lifetime.
|
|
|
84
84
|
| `"30 17 * * 5"` | 5:30 PM every Friday |
|
|
85
85
|
| `"0 0 1 * *"` | Midnight on the first of every month |
|
|
86
86
|
|
|
87
|
-
Event triggers listen for typed events on WorkPilot's internal message bus
|
|
87
|
+
Event triggers listen for typed events on WorkPilot's internal message bus. Ordinary event jobs
|
|
88
|
+
fire when the named event occurs. Tasks with [Event conditions](events.md#combine-time-and-conditions)
|
|
89
|
+
also require their configured boolean conditions to match.
|
|
88
90
|
|
|
89
91
|
:::
|
|
90
92
|
|
|
93
|
+
## Fixed checks and Event conditions
|
|
94
|
+
|
|
95
|
+
Use [Events](events.md) when a task should depend on a fixed-code condition instead of asking an
|
|
96
|
+
agent to evaluate the source on every poll. The Event checker and the task action are separate:
|
|
97
|
+
|
|
98
|
+
- An Event's time pre-trigger checks independently of a task.
|
|
99
|
+
- A 9:00 task with `event_conditions` performs **new checks at 9:00**; cached results cannot
|
|
100
|
+
replace those checks.
|
|
101
|
+
- An Event-only task uses `event.checked` and evaluates committed observations of its Events.
|
|
102
|
+
`event_policy` controls repeated matches, entry transitions, and cooldown.
|
|
103
|
+
|
|
104
|
+
Both expected true and expected false are supported. Missing, expired, blocked, or failed checks
|
|
105
|
+
are unknown, never false. A nonmatching time tick is skipped without counting as a task failure.
|
|
106
|
+
Jobs without Event conditions retain their existing schedule and action behavior.
|
|
107
|
+
|
|
108
|
+
Events need separate capability setup and scoped authorization; saving a draft or granting an
|
|
109
|
+
ordinary cron tool call does not enable an Event. See the [Event workflow](events.md#from-a-request-to-an-enabled-check)
|
|
110
|
+
and [authorization](events.md#authorization).
|
|
111
|
+
|
|
112
|
+
Manage Event-bound tasks through the conversational `cron` tool, not the Schedule HTTP API,
|
|
113
|
+
which does not expose or manage them in V1. Existing cron owns action execution, overlap,
|
|
114
|
+
capacity, and history; there is no separate Event task queue or replay mechanism.
|
|
115
|
+
|
|
91
116
|
## Creating jobs
|
|
92
117
|
|
|
93
118
|
Jobs are managed dynamically via the `cron` tool (from the agent REPL) or the CLI. There is no
|
|
@@ -117,6 +142,11 @@ The wizard prompts for name, schedule, and prompt. CLI-created prompt jobs use t
|
|
|
117
142
|
| **Message** | Static text delivered as-is, no LLM | Simple reminders, notifications |
|
|
118
143
|
| **Tool** | Direct tool execution, no LLM | Deterministic scripts, backups |
|
|
119
144
|
|
|
145
|
+
Scheduled prompt and heartbeat guidance favors task-relevant fields and changes,
|
|
146
|
+
while preserving explicitly required detail. Necessary full evidence can go in
|
|
147
|
+
`artifact_directory`. Reportable results distinguish completed outcomes from
|
|
148
|
+
failed, blocked, or unapproved actions; existing delivery and silence rules remain unchanged.
|
|
149
|
+
|
|
120
150
|
## Session modes
|
|
121
151
|
|
|
122
152
|
| Mode | Description |
|
|
@@ -131,10 +161,13 @@ Use `persistent` for jobs that need to track state across runs.
|
|
|
131
161
|
Prompt jobs receive host-assigned `state_directory` and `artifact_directory` paths under
|
|
132
162
|
`~/.workpilot/cron/data/`. Both remain stable for the same job even with isolated run sessions.
|
|
133
163
|
Use `state_directory` for a progress ledger and `artifact_directory` for screenshots, logs,
|
|
134
|
-
and reports.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
164
|
+
and reports. Before each prompt run, WorkPilot initializes usable assigned directories
|
|
165
|
+
without changing existing state files. Initialization failures, including denied paths,
|
|
166
|
+
filesystem permission errors, and redirected directories, are reported in the task context
|
|
167
|
+
and logs instead of blocking text-only work.
|
|
168
|
+
They are in scope only for that job's execution and its participating agents; definitions
|
|
169
|
+
and other jobs remain outside this grant. Normal file permissions, risk checks, and approvals
|
|
170
|
+
still apply.
|
|
138
171
|
|
|
139
172
|
Prefer instructions such as "save progress in state_directory" over a hard-coded path.
|
|
140
173
|
Existing custom ledgers are not moved or authorized automatically. Directory scope does not
|
|
@@ -172,6 +205,13 @@ workpilot cron history [job-id] # execution history
|
|
|
172
205
|
workpilot cron doctor # read-only report of each job's source of truth
|
|
173
206
|
```
|
|
174
207
|
|
|
208
|
+
Run history distinguishes completed executions (`success` / `failed`) from skipped or dropped
|
|
209
|
+
ticks and cancelled executions. A `success` record means the run returned normally, not that
|
|
210
|
+
every requested business outcome was completed; inspect its result for remaining blockers.
|
|
211
|
+
Missed-run confirmation records include `confirmation_outcome`, so a timeout is not mistaken
|
|
212
|
+
for an explicit decision to skip. Run IDs and timestamps for newly recorded missed ticks use
|
|
213
|
+
UTC, matching normal executions. A skipped or dropped tick has no execution session link.
|
|
214
|
+
|
|
175
215
|
## Notify channels
|
|
176
216
|
|
|
177
217
|
Jobs can deliver results to channels automatically. When creating a job via the `cron` tool, specify `notify_channels` (for example `["cloud"]`, or `["*"]` for all active channels).
|
|
@@ -192,6 +232,17 @@ state model. See [Heartbeat](heartbeat.md).
|
|
|
192
232
|
|
|
193
233
|
## Security
|
|
194
234
|
|
|
235
|
+
`security.allowed_paths` applies to cron jobs by default, including `isolated` sessions.
|
|
236
|
+
Session isolation resets conversation context, not the runtime's configured path grants.
|
|
237
|
+
The same grants apply to nested `run_code` calls and Coder tools; Coder ownership checks
|
|
238
|
+
remain separate. A folder grant covers its descendants, while a single-file grant does not
|
|
239
|
+
cover the parent directory or sibling temporary files. `security.denied_paths` still wins.
|
|
240
|
+
|
|
241
|
+
Job-owned `state_directory` and `artifact_directory` scope is additive: it does not replace
|
|
242
|
+
`security.allowed_paths`. Prefer those paths for new job ledgers and outputs. Configured
|
|
243
|
+
`allowed_paths` grants are global, not permissions limited to one job, and do not bypass
|
|
244
|
+
command, credential, publication, or risk-score checks.
|
|
245
|
+
|
|
195
246
|
Ordinary user-created cron, interval, and event jobs receive a +1 risk-score adjustment
|
|
196
247
|
(capped at 10), and cannot use the configuration-management tool. The built-in heartbeat is
|
|
197
248
|
tagged separately and is exempt from both cron-specific rules; see [Heartbeat](heartbeat.md).
|
|
@@ -204,6 +255,7 @@ deny therefore also blocks an already-persisted job.
|
|
|
204
255
|
## See also
|
|
205
256
|
|
|
206
257
|
- [Heartbeat](heartbeat.md) — periodic natural-language maintenance
|
|
258
|
+
- [Events](events.md) — fixed checkers, fresh-at-time conditions, and trusted task handoff
|
|
207
259
|
- [Sub-agents](../agents/subagents.md) — scoped delegated work
|
|
208
260
|
- [Approvals](../security/approvals.md#ordinary-scheduled-job-risk-elevation) — ordinary cron
|
|
209
261
|
risk elevation and the heartbeat exception
|
|
@@ -110,6 +110,29 @@ control remains a temporary override. Workspace paths refer to the machine runni
|
|
|
110
110
|
WorkPilot; saving a workspace leaves running work in its current directory and does not
|
|
111
111
|
restart the app.
|
|
112
112
|
|
|
113
|
+
Use the **Edit configuration** panel in **Settings → Configuration**, or the corresponding
|
|
114
|
+
editor in **Status**, **Security**, **Tools**, **Models**, **Agents**, **Skills**, **Store**,
|
|
115
|
+
**System Prompt**, **Knowledge**, and **Scheduled Jobs**, to change that area's settings
|
|
116
|
+
without leaving the page. **Fields** provides typed controls and schema descriptions;
|
|
117
|
+
**JSON** supports lists, maps, and advanced edits. Runtime status, assembled prompts, audit
|
|
118
|
+
records, history, and usage remain observational data.
|
|
119
|
+
|
|
120
|
+
Select **Save for next start** to save only the changed fields to the runtime's
|
|
121
|
+
`workpilot.local.yaml`. Advanced edits do not restart WorkPilot or change running work.
|
|
122
|
+
The current security profile may require confirmation or block a change. Concurrent
|
|
123
|
+
configuration changes are rejected without discarding your draft; use **Reload saved** to
|
|
124
|
+
explicitly load the latest values.
|
|
125
|
+
|
|
126
|
+
**Settings → User Settings → Edit local overrides** edits the saved overrides as JSON.
|
|
127
|
+
Removing a key removes that local override, leaving inherited configuration intact.
|
|
128
|
+
The resulting startup configuration is validated before saving.
|
|
129
|
+
The configuration snapshot follows the loader's precedence, including the selected profile;
|
|
130
|
+
the local overrides editor shows the saved local layer separately.
|
|
131
|
+
**Settings → Raw JSON → Edit raw JSON** edits the configuration snapshot. Unchanged
|
|
132
|
+
credential masks and environment/Secret Store references are preserved. Protected credential
|
|
133
|
+
fields use the Secret Store or the dedicated MCP connection editor rather than the general
|
|
134
|
+
configuration editor.
|
|
135
|
+
|
|
113
136
|
**Tools → MCP connections** lists configured servers, including disabled ones. Add or edit
|
|
114
137
|
a command/HTTP connection, supply write-only credentials, and connect, enable, disable, or
|
|
115
138
|
remove its local override. Saving connection settings disconnects an existing connection;
|
|
@@ -137,19 +160,20 @@ Leaving Chat clears the page-specific request banner and return target; it does
|
|
|
137
160
|
your conversation draft.
|
|
138
161
|
|
|
139
162
|
These controls share the browser/Desktop UI and existing Cloud relay. Provider first-use
|
|
140
|
-
setup
|
|
141
|
-
|
|
163
|
+
credential setup and automatic runtime restart remain separate workflows. Existing model
|
|
164
|
+
and MCP connection controls retain their own apply/connect behavior; the general configuration
|
|
165
|
+
editor always saves for the next start.
|
|
142
166
|
|
|
143
167
|
| Area | What you can do |
|
|
144
168
|
|---|---|
|
|
145
169
|
| **Chat** | Run conversations, review tool progress, approvals, and attachments |
|
|
146
|
-
| **Scheduled** |
|
|
147
|
-
| **Tools / Skills / Models** | Manage
|
|
148
|
-
| **Prompts / Knowledge** | Review prompt
|
|
149
|
-
| **Store** | Discover and manage MCP servers and
|
|
150
|
-
| **Security / Status** | Review
|
|
170
|
+
| **Scheduled** | Manage jobs and edit scheduler/event configuration; non-dynamic jobs remain read-only |
|
|
171
|
+
| **Tools / Skills / Models / Agents** | Manage connections and agents, browse skills, and edit the corresponding defaults and configuration |
|
|
172
|
+
| **Prompts / Knowledge** | Review assembled prompts and knowledge; edit prompt sources and memory/context settings |
|
|
173
|
+
| **Store** | Discover and manage MCP servers, skills, and plugins; edit marketplace/plugin configuration |
|
|
174
|
+
| **Security / Status** | Review E-stop and live state alongside editable security, channel, and runtime configuration |
|
|
151
175
|
| **Sessions / Usage** | Browse conversation history and inspect token/cost usage |
|
|
152
|
-
| **Settings** | Edit basic
|
|
176
|
+
| **Settings** | Edit basic settings, advanced configuration, local overrides, and JSON while keeping credentials masked |
|
|
153
177
|
|
|
154
178
|
Press `Ctrl+K` (`Cmd+K` on macOS) to open the command palette.
|
|
155
179
|
`Ctrl+Shift+D` switches the theme.
|
|
@@ -115,15 +115,16 @@ profile.
|
|
|
115
115
|
|
|
116
116
|
| Mode | Effective behavior |
|
|
117
117
|
|---|---|
|
|
118
|
-
| `auto` | `workpilot` under `open` or `standard`; `ephemeral` under `controlled` or `restricted` |
|
|
118
|
+
| `auto` | `workpilot` under `open`, `auto`, or `standard`; `ephemeral` under `controlled` or `restricted` |
|
|
119
119
|
| `ephemeral` | Fresh browser context; no persistent profile directory for that run |
|
|
120
120
|
| `workpilot` | Dedicated WorkPilot-managed persistent profile |
|
|
121
121
|
| `system` | The user's real OS browser data; high risk and unavailable under `controlled` or `restricted` |
|
|
122
122
|
|
|
123
123
|
An explicit `persistent_profile` path overrides `profile_mode` for the agent browser tool.
|
|
124
124
|
Pointing it at a known real browser profile receives the same protections as `system` mode:
|
|
125
|
-
the first launch is risk score 8 under `open`/`standard`, and configured or runtime use is
|
|
126
|
-
rejected under `controlled`/`restricted`.
|
|
125
|
+
the first launch is risk score 8 under `open`/`auto`/`standard`, and configured or runtime use is
|
|
126
|
+
rejected under `controlled`/`restricted`. The Auto security profile always requires human
|
|
127
|
+
approval for that system-profile launch; it is distinct from the browser's `profile_mode: auto`.
|
|
127
128
|
|
|
128
129
|
Firefox has no automatically selected `system` profile because its profile layout can contain
|
|
129
130
|
multiple profiles. A deliberately selected Firefox profile requires an explicit persistent
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# workpilot hooks
|
|
2
|
+
|
|
3
|
+
::: warning Experimental new feature
|
|
4
|
+
Hook interfaces, schema, and behavior may change incompatibly without notice. Do not depend on
|
|
5
|
+
stable compatibility.
|
|
6
|
+
:::
|
|
7
|
+
|
|
8
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks -->
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
Usage: workpilot hooks [OPTIONS] COMMAND [ARGS]...
|
|
12
|
+
|
|
13
|
+
Review native command hooks
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
--help Show this message and exit.
|
|
17
|
+
|
|
18
|
+
Commands:
|
|
19
|
+
validate Validate exactly one version-1 hook envelope without writing trust state.
|
|
20
|
+
list List effective discovered command hooks and isolated diagnostics.
|
|
21
|
+
review Review pending handler content and record enable/disable choices.
|
|
22
|
+
enable Enable one currently reviewed handler.
|
|
23
|
+
disable Disable one handler and record its current digest as reviewed.
|
|
24
|
+
|
|
25
|
+
EXPERIMENTAL — Experimental: hook interfaces, schema, and behavior may change incompatibly without
|
|
26
|
+
notice.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<!-- END GENERATED CLI HELP: workpilot hooks -->
|
|
30
|
+
> [中文版](../zh-cn/cli/hooks.md)
|
|
31
|
+
`workpilot hooks` manages reviewed native command hooks; validate, review, then enable trusted local integrations (`wp` is an alias).
|
|
32
|
+
## Schema, ordering, and trust
|
|
33
|
+
UTF-8 files use `{ "$schema": string?, "version": 1, "hooks": object }`, the five lifecycle events, and handlers with `executable`, optional `args`, and relative `scriptFiles`. Sorted user, `.agents`, project, then plugin declarations append; invalid files are isolated. Review state stores the handler/scripts SHA-256 digest. Hooks run without a shell for at most 10 seconds; failed `PreToolUse` blocks the tool and other failures are logged.
|
|
34
|
+
|
|
35
|
+
An explicit `executable` file path is also fingerprinted and rechecked before launch; relative
|
|
36
|
+
paths use the hook document's directory. Changing its content or symlink target requires review
|
|
37
|
+
again, including renewal of reviews saved before executable fingerprinting. Bare names such as
|
|
38
|
+
`python` use the host's trusted PATH instead.
|
|
39
|
+
|
|
40
|
+
Interactive startup and `hooks review` show each pending handler's full executable, arguments, and
|
|
41
|
+
declared script paths before selection. Inspect the referenced scripts before enabling them. Enter
|
|
42
|
+
saves selected handlers as enabled and unselected handlers as disabled; Esc leaves them pending.
|
|
43
|
+
Without a TTY, pending handlers remain inactive.
|
|
44
|
+
|
|
45
|
+
Hook definitions stay bound to the startup catalog. Plugin reload reports a restart requirement
|
|
46
|
+
for catalog additions, edits, or removals rather than hot-swapping handlers. Existing handlers keep
|
|
47
|
+
their per-launch content checks until restart; restart to apply changes and review new content.
|
|
48
|
+
|
|
49
|
+
## workpilot hooks validate
|
|
50
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks validate -->
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Usage: workpilot hooks validate [OPTIONS] {PATH}
|
|
54
|
+
|
|
55
|
+
Validate exactly one version-1 hook envelope without writing trust state.
|
|
56
|
+
|
|
57
|
+
Arguments:
|
|
58
|
+
PATH [required]
|
|
59
|
+
|
|
60
|
+
Options:
|
|
61
|
+
--help Show this message and exit.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
<!-- END GENERATED CLI HELP: workpilot hooks validate -->
|
|
65
|
+
## workpilot hooks list
|
|
66
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks list -->
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Usage: workpilot hooks list [OPTIONS]
|
|
70
|
+
|
|
71
|
+
List effective discovered command hooks and isolated diagnostics.
|
|
72
|
+
|
|
73
|
+
Options:
|
|
74
|
+
-c, --config <str> Config file or directory [default: .]
|
|
75
|
+
-p, --profile <str> Config profile
|
|
76
|
+
--help Show this message and exit.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
<!-- END GENERATED CLI HELP: workpilot hooks list -->
|
|
80
|
+
## workpilot hooks review
|
|
81
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks review -->
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Usage: workpilot hooks review [OPTIONS]
|
|
85
|
+
|
|
86
|
+
Review pending handler content and record enable/disable choices.
|
|
87
|
+
|
|
88
|
+
Options:
|
|
89
|
+
-c, --config <str> Config file or directory [default: .]
|
|
90
|
+
-p, --profile <str> Config profile
|
|
91
|
+
--help Show this message and exit.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
<!-- END GENERATED CLI HELP: workpilot hooks review -->
|
|
95
|
+
## workpilot hooks enable
|
|
96
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks enable -->
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
Usage: workpilot hooks enable [OPTIONS] {HANDLER_ID}
|
|
100
|
+
|
|
101
|
+
Enable one currently reviewed handler.
|
|
102
|
+
|
|
103
|
+
Arguments:
|
|
104
|
+
HANDLER_ID [required]
|
|
105
|
+
|
|
106
|
+
Options:
|
|
107
|
+
-c, --config <str> Config file or directory [default: .]
|
|
108
|
+
-p, --profile <str> Config profile
|
|
109
|
+
--help Show this message and exit.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
<!-- END GENERATED CLI HELP: workpilot hooks enable -->
|
|
113
|
+
## workpilot hooks disable
|
|
114
|
+
<!-- BEGIN GENERATED CLI HELP: workpilot hooks disable -->
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
Usage: workpilot hooks disable [OPTIONS] {HANDLER_ID}
|
|
118
|
+
|
|
119
|
+
Disable one handler and record its current digest as reviewed.
|
|
120
|
+
|
|
121
|
+
Arguments:
|
|
122
|
+
HANDLER_ID [required]
|
|
123
|
+
|
|
124
|
+
Options:
|
|
125
|
+
-c, --config <str> Config file or directory [default: .]
|
|
126
|
+
-p, --profile <str> Config profile
|
|
127
|
+
--help Show this message and exit.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
<!-- END GENERATED CLI HELP: workpilot hooks disable -->
|
|
@@ -86,7 +86,8 @@ The normal wizard detects common local tools, then covers six areas:
|
|
|
86
86
|
|
|
87
87
|
1. **GitHub Copilot provider** — keep an existing credential, sign in, or defer. New credentials
|
|
88
88
|
are stored through the Secret Store when available.
|
|
89
|
-
2. **Security profile** — choose `open`, `standard`, `controlled`, or `restricted`.
|
|
89
|
+
2. **Security profile** — choose `open`, `auto`, `standard`, `controlled`, or `restricted`.
|
|
90
|
+
Auto reviews task authorization within Standard's access boundaries; Standard remains the default.
|
|
90
91
|
3. **Web UI** — enable or disable the local browser experience.
|
|
91
92
|
4. **Cloud connection** — choose hosted WorkPilot Cloud, a self-hosted gateway, or local-only
|
|
92
93
|
operation. First-time cloud choices are verified when possible.
|
|
@@ -108,7 +108,7 @@ incremental delegated permission. The browser profile can reuse an existing Micr
|
|
|
108
108
|
but password, MFA, account choice, and consent remain manual when prompted.
|
|
109
109
|
|
|
110
110
|
In non-interactive agent contexts, the Graph tool does not silently open a browser. A cold
|
|
111
|
-
interactive sign-in is separately risk-gated under `open`/`standard`, while
|
|
111
|
+
interactive sign-in is separately risk-gated under `open`/`auto`/`standard`, while
|
|
112
112
|
`controlled`/`restricted` agent execution remains cache/broker-only. The direct
|
|
113
113
|
`workpilot msgraph add-scope` CLI command is an explicit operator action and attempts the
|
|
114
114
|
visible browser flow regardless of the agent runtime profile.
|