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.
Files changed (714) hide show
  1. {workpilot-0.35.2 → workpilot-0.36.1}/PKG-INFO +3 -2
  2. {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/bridge-mode.md +13 -0
  3. {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/overview.md +42 -0
  4. workpilot-0.36.1/docs/automation/events.md +197 -0
  5. {workpilot-0.35.2 → workpilot-0.36.1}/docs/automation/scheduling.md +57 -5
  6. {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/web.md +32 -8
  7. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/browser.md +4 -3
  8. workpilot-0.36.1/docs/cli/hooks.md +130 -0
  9. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/init.md +2 -1
  10. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/msgraph.md +1 -1
  11. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/overview.md +9 -6
  12. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/update.md +14 -2
  13. {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/overview.md +1 -1
  14. {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/schema.md +15 -5
  15. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/architecture.md +2 -2
  16. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/development.md +5 -0
  17. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/releasing.md +58 -10
  18. {workpilot-0.35.2 → workpilot-0.36.1}/docs/desktop.md +78 -17
  19. {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/local.md +9 -0
  20. {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/initialize.md +2 -1
  21. {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/install.md +65 -1
  22. {workpilot-0.35.2 → workpilot-0.36.1}/docs/getting-started/update.md +58 -3
  23. {workpilot-0.35.2 → workpilot-0.36.1}/docs/index.md +1 -0
  24. workpilot-0.36.1/docs/security/approvals.md +307 -0
  25. {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/overview.md +32 -4
  26. {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/overview.md +13 -0
  27. {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/sessions.md +11 -0
  28. {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/browser.md +33 -14
  29. {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/overview.md +1 -1
  30. {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/run-code.md +15 -8
  31. {workpilot-0.35.2 → workpilot-0.36.1}/docs/troubleshooting.md +37 -0
  32. {workpilot-0.35.2 → workpilot-0.36.1}/pyproject.toml +3 -2
  33. workpilot-0.36.1/web/dist/app-C0HXsjxE.js +18 -0
  34. workpilot-0.36.1/web/dist/app-CIo_O1d6.css +1 -0
  35. workpilot-0.36.1/web/dist/app-orwSkC5k.css +0 -0
  36. workpilot-0.36.1/web/dist/app-s3Wdl3G6.css +0 -0
  37. workpilot-0.36.1/web/dist/chunks/AgentModelEditor-B-peiAyg.js +1 -0
  38. workpilot-0.36.1/web/dist/chunks/AgentsView-CfLE9uQO.js +3 -0
  39. workpilot-0.36.1/web/dist/chunks/AskAssistant-XgktqFwr.js +1 -0
  40. workpilot-0.36.1/web/dist/chunks/ConfigurationEditor-BAF059qV.js +1 -0
  41. workpilot-0.36.1/web/dist/chunks/ConfigurationPanel-DwJKR74w.js +2 -0
  42. workpilot-0.36.1/web/dist/chunks/ConfirmOperation-DmkR6err.js +1 -0
  43. workpilot-0.36.1/web/dist/chunks/FieldContext-B0SnnBYq.js +1 -0
  44. workpilot-0.36.1/web/dist/chunks/KnowledgeView-Dpk-wVrr.js +1 -0
  45. workpilot-0.36.1/web/dist/chunks/Label-Bu5FJVXM.js +1 -0
  46. workpilot-0.36.1/web/dist/chunks/ModelsView-BKkXA4rK.js +1 -0
  47. workpilot-0.36.1/web/dist/chunks/PromptsView-BAk7YT_i.js +1 -0
  48. workpilot-0.36.1/web/dist/chunks/ScheduleDetailView-n3fNeIqd.js +1 -0
  49. workpilot-0.36.1/web/dist/chunks/ScheduleView-DwLCannJ.js +1 -0
  50. workpilot-0.36.1/web/dist/chunks/SecurityView-DhXOxK7V.js +3 -0
  51. workpilot-0.36.1/web/dist/chunks/SessionsView-Dble2G1Y.js +1 -0
  52. workpilot-0.36.1/web/dist/chunks/SettingsView-CesTsG9D.js +3 -0
  53. workpilot-0.36.1/web/dist/chunks/SkillsView-En2bVZki.js +1 -0
  54. workpilot-0.36.1/web/dist/chunks/StatusView-DCN2DEYW.js +1 -0
  55. workpilot-0.36.1/web/dist/chunks/StoreView-CTZC7dvS.js +10 -0
  56. workpilot-0.36.1/web/dist/chunks/Subtitle2-BSQ2MIZy.js +1 -0
  57. workpilot-0.36.1/web/dist/chunks/ToolsView-J_e9kBuR.js +1 -0
  58. workpilot-0.36.1/web/dist/chunks/UsageView-BPVm8Vi2.js +3 -0
  59. workpilot-0.36.1/web/dist/chunks/_define_property-JgUJi83s.js +1 -0
  60. workpilot-0.36.1/web/dist/chunks/common~KnowledgeView~ConfigurationEditor-B9HrL56n.js +1 -0
  61. workpilot-0.36.1/web/dist/chunks/common~ScheduleView~ScheduleDetailView-B3MsQroe.js +1 -0
  62. workpilot-0.36.1/web/dist/chunks/common~ScheduleView~ScheduleDetailView~AgentsView~ConfigurationEditor-CpXgvWf9.js +1 -0
  63. workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView-ClPEZOYm.js +1 -0
  64. workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView-CwTgQvUK.js +1 -0
  65. workpilot-0.36.1/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView~ConfigurationEditor-D2GzpfVG.js +1 -0
  66. workpilot-0.36.1/web/dist/chunks/common~ToolsView~SkillsView~SettingsView~ModelsView~AgentsView~ConfigurationEditor-BzO0aQ-O.js +25 -0
  67. workpilot-0.36.1/web/dist/chunks/common~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~PromptsView~AgentsView~Conf~nh6d1266-D5Yg9ykp.js +1 -0
  68. workpilot-0.36.1/web/dist/chunks/common~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SecurityView~ScheduleView~Sch~ndhlet6b-B8BuN1dr.js +1 -0
  69. workpilot-0.36.1/web/dist/chunks/common~UsageView~ToolsView~SkillsView~SecurityView~KnowledgeView~AgentsView-CRVBrHdh.js +1 -0
  70. workpilot-0.36.1/web/dist/chunks/common~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~Securi~lyvg2ya6-D_OD01vx.js +17 -0
  71. workpilot-0.36.1/web/dist/chunks/common~index-DyYf0Pra.js +1 -0
  72. workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~ScheduleView~ScheduleDetailView~ModelsView~Ag~noz36xh2-C3L4cjoO.js +1 -0
  73. workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleView~Schedu~pa8m5gaq-hGBM9FhJ.js +1 -0
  74. workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~eeeajtw3-ClOUGMa_.js +1 -0
  75. workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~kdvl6os7-Bh8Mbd7_.js +1 -0
  76. workpilot-0.36.1/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~nc2z2c8m-BTveb4G2.js +1 -0
  77. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ScheduleView-M5Ww59-F.js +1 -0
  78. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView-1L1sixPX.js +1 -0
  79. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView-aqv2q6uT.js +1 -0
  80. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView~ScheduleDetailView-nmwQgrRr.js +1 -0
  81. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleV~imoc2wih-C2VMMJBW.js +1 -0
  82. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~ScheduleVie~g5kggcio-CX2GxSFp.js +1 -0
  83. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~d2lgwbsb-C_dGrafZ.js +1 -0
  84. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~egd2j22m-Dsg3Rfal.js +1 -0
  85. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~fd7sn78u-CWaHfhht.js +1 -0
  86. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~nv6fnw6l-D0SUxOsW.js +1 -0
  87. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~ckaid4m6-ingKD5dE.js +2 -0
  88. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~e4la2u87-pFJacrWX.js +1 -0
  89. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~ijmu3yfe-ZxvADrya.js +1 -0
  90. workpilot-0.36.1/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~j7l6oxa9-zg8nSmpD.js +2 -0
  91. workpilot-0.36.1/web/dist/chunks/configSchema-DU9qn2y6.js +2 -0
  92. workpilot-0.36.1/web/dist/chunks/createPresenceComponentVariant-B0R0rqiM.js +1 -0
  93. workpilot-0.36.1/web/dist/chunks/elementContains-DsEfTZAO.js +1 -0
  94. workpilot-0.36.1/web/dist/chunks/getReactElementRef-CKKCK222.js +1 -0
  95. workpilot-0.36.1/web/dist/chunks/isResolvedShorthand-DEEQPZ2V.js +1 -0
  96. workpilot-0.36.1/web/dist/chunks/management-DrUIs-SY.js +1 -0
  97. workpilot-0.36.1/web/dist/chunks/useAnimationFrame-BPhpI3sJ.js +1 -0
  98. workpilot-0.36.1/web/dist/chunks/useBrowserTimer-BLaxSrrG.js +1 -0
  99. workpilot-0.36.1/web/dist/chunks/useCardGridStyles-DOUZN8UE.js +1 -0
  100. workpilot-0.36.1/web/dist/chunks/useContextSelector-CWEM17Q3.js +1 -0
  101. workpilot-0.36.1/web/dist/chunks/useFieldControlProps-BOKjlRZM.js +1 -0
  102. workpilot-0.36.1/web/dist/chunks/useFocusFinders-B9jnNP17.js +1 -0
  103. workpilot-0.36.1/web/dist/chunks/useFocusVisible-DlzPuOvX.js +1 -0
  104. workpilot-0.36.1/web/dist/chunks/useMergeTabsterAttributes-Mc5vtDVL.js +1 -0
  105. workpilot-0.36.1/web/dist/chunks/useTimeout-COZs6EYL.js +1 -0
  106. workpilot-0.36.1/web/dist/chunks/window-DN08EBsw.js +1 -0
  107. workpilot-0.36.1/web/dist/index.html +64 -0
  108. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/schema/workpilot-config.schema.json +37 -2
  109. workpilot-0.36.1/workpilot/agent/__init__.py +0 -0
  110. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/_bg.py +2 -2
  111. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/browser_resource.py +40 -13
  112. workpilot-0.36.1/workpilot/agent/browser_sessions.py +294 -0
  113. workpilot-0.36.1/workpilot/agent/cards/__init__.py +0 -0
  114. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/base.py +10 -1
  115. workpilot-0.36.1/workpilot/agent/code_mode/event_entrypoint.py +63 -0
  116. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/monty.py +22 -4
  117. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/stdlib.py +20 -3
  118. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/consolidation.py +1 -0
  119. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/context.py +15 -2
  120. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/history.py +52 -3
  121. workpilot-0.36.1/workpilot/agent/instances.py +909 -0
  122. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/loop.py +245 -29
  123. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/memory.py +10 -0
  124. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/slash.py +16 -4
  125. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/subagents.py +15 -0
  126. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tool_execution.py +244 -10
  127. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/agent.py +5 -1
  128. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/browser.py +158 -105
  129. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/browser_code.py +31 -9
  130. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/config_workpilot.py +4 -1
  131. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/cron.py +43 -6
  132. workpilot-0.36.1/workpilot/agent/tools/events.py +258 -0
  133. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/git.py +3 -0
  134. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/msgraph.py +29 -4
  135. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/registry.py +30 -26
  136. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/run_code.py +100 -15
  137. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/shell.py +56 -37
  138. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/web.py +16 -16
  139. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/Browser.md +15 -3
  140. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/events.py +1 -0
  141. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_attachments.py +2 -2
  142. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/cloud.py +12 -0
  143. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/manager.py +9 -1
  144. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/commands.py +22 -8
  145. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/cron.py +7 -0
  146. workpilot-0.36.1/workpilot/cli/hooks.py +210 -0
  147. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/init.py +3 -2
  148. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/update.py +4 -1
  149. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/loader.py +55 -3
  150. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/management.py +5 -1
  151. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/schema.py +35 -12
  152. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/heartbeat.py +11 -1
  153. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/job.py +52 -6
  154. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/job_md.py +43 -7
  155. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/service.py +295 -25
  156. workpilot-0.36.1/workpilot/defaults/_EVENT_HANDOFF.md +25 -0
  157. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_SECURITY_SHELL.md +22 -4
  158. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/workpilot-config.schema.json +37 -2
  159. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/workpilot.yaml +10 -3
  160. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/updates.py +12 -4
  161. workpilot-0.36.1/workpilot/events/__init__.py +1 -0
  162. workpilot-0.36.1/workpilot/events/context.py +92 -0
  163. workpilot-0.36.1/workpilot/events/models.py +355 -0
  164. workpilot-0.36.1/workpilot/events/runner.py +126 -0
  165. workpilot-0.36.1/workpilot/events/scheduling.py +400 -0
  166. workpilot-0.36.1/workpilot/events/service.py +714 -0
  167. workpilot-0.36.1/workpilot/events/store.py +336 -0
  168. workpilot-0.36.1/workpilot/events_runtime.py +362 -0
  169. workpilot-0.36.1/workpilot/hooks/__init__.py +59 -0
  170. workpilot-0.36.1/workpilot/hooks/executor.py +300 -0
  171. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/hooks/handlers.py +383 -46
  172. workpilot-0.36.1/workpilot/hooks/loader.py +282 -0
  173. workpilot-0.36.1/workpilot/hooks/manager.py +420 -0
  174. workpilot-0.36.1/workpilot/hooks/models.py +135 -0
  175. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/loader.py +42 -7
  176. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/model_catalog.py +7 -3
  177. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/transport.py +3 -0
  178. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/runtime.py +770 -142
  179. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/approval.py +16 -2
  180. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/approval_format.py +70 -2
  181. workpilot-0.36.1/workpilot/security/auto_approval.py +358 -0
  182. workpilot-0.36.1/workpilot/security/data/__init__.py +0 -0
  183. workpilot-0.36.1/workpilot/security/event_authority.py +70 -0
  184. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/rbac.py +1 -0
  185. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/risk.py +12 -1
  186. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sandbox.py +10 -1
  187. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/scorer.py +8 -2
  188. workpilot-0.36.1/workpilot/security/ssrf.py +150 -0
  189. workpilot-0.36.1/workpilot/security/turn_trust.py +154 -0
  190. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/url_classify.py +10 -0
  191. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/manager.py +25 -9
  192. workpilot-0.36.1/workpilot/skills/bundled/__init__.py +0 -0
  193. workpilot-0.36.1/workpilot/skills/bundled/event-automation.md +164 -0
  194. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/loader.py +4 -0
  195. workpilot-0.36.1/workpilot/utils/__init__.py +0 -0
  196. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/defaults.py +2 -1
  197. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/auth.py +11 -0
  198. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/__init__.py +8 -0
  199. workpilot-0.36.1/workpilot/web/handlers/agents.py +203 -0
  200. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/approvals.py +49 -45
  201. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/clarifications.py +16 -0
  202. workpilot-0.36.1/workpilot/web/handlers/configuration.py +324 -0
  203. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/schedule.py +22 -3
  204. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/sessions.py +4 -0
  205. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/server.py +103 -1
  206. workpilot-0.35.2/docs/security/approvals.md +0 -119
  207. workpilot-0.35.2/web/dist/app-C21mYjTW.css +0 -1
  208. workpilot-0.35.2/web/dist/app-CsXAYX_C.js +0 -18
  209. workpilot-0.35.2/web/dist/chunks/KnowledgeView-D5kr0gY3.js +0 -1
  210. workpilot-0.35.2/web/dist/chunks/ModelsView-UPKC5cS_.js +0 -1
  211. workpilot-0.35.2/web/dist/chunks/PromptsView-Cu7mFy8a.js +0 -1
  212. workpilot-0.35.2/web/dist/chunks/ScheduleDetailView-Cbe9k37h.js +0 -1
  213. workpilot-0.35.2/web/dist/chunks/ScheduleView-CC2TGFb_.js +0 -1
  214. workpilot-0.35.2/web/dist/chunks/SecurityView-Cz0NTGmF.js +0 -3
  215. workpilot-0.35.2/web/dist/chunks/SessionsView-CUTdXRcI.js +0 -1
  216. workpilot-0.35.2/web/dist/chunks/SettingsView-xgr3Wfg9.js +0 -4
  217. workpilot-0.35.2/web/dist/chunks/SkillsView-CC0lFI0P.js +0 -1
  218. workpilot-0.35.2/web/dist/chunks/StatusView-WTOTBpK2.js +0 -1
  219. workpilot-0.35.2/web/dist/chunks/StoreView-Ci8YpeWT.js +0 -10
  220. workpilot-0.35.2/web/dist/chunks/ToolsView-BFo4vtm6.js +0 -1
  221. workpilot-0.35.2/web/dist/chunks/UsageView-D-xb1rlz.js +0 -3
  222. workpilot-0.35.2/web/dist/chunks/common-BgaUHuMn.js +0 -43
  223. workpilot-0.35.2/web/dist/chunks/window-DQtQZoVn.js +0 -1
  224. workpilot-0.35.2/web/dist/index.html +0 -32
  225. workpilot-0.35.2/workpilot/hooks/__init__.py +0 -21
  226. workpilot-0.35.2/workpilot/hooks/manager.py +0 -243
  227. workpilot-0.35.2/workpilot/security/ssrf.py +0 -319
  228. workpilot-0.35.2/workpilot/security/turn_trust.py +0 -41
  229. {workpilot-0.35.2 → workpilot-0.36.1}/.gitignore +0 -0
  230. {workpilot-0.35.2 → workpilot-0.36.1}/README.md +0 -0
  231. {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/__init__.py +0 -0
  232. {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/actions.py +0 -0
  233. {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/network.py +0 -0
  234. {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/proxy.py +0 -0
  235. {workpilot-0.35.2 → workpilot-0.36.1}/browser_agent/runtime.py +0 -0
  236. {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/claude-code.md +0 -0
  237. {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/github-copilot.md +0 -0
  238. {workpilot-0.35.2 → workpilot-0.36.1}/docs/agents/subagents.md +0 -0
  239. {workpilot-0.35.2 → workpilot-0.36.1}/docs/automation/heartbeat.md +0 -0
  240. {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/teams.md +0 -0
  241. {workpilot-0.35.2 → workpilot-0.36.1}/docs/channels/tui.md +0 -0
  242. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/agents.md +0 -0
  243. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/attachments.md +0 -0
  244. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/chat.md +0 -0
  245. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/cloud.md +0 -0
  246. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/config.md +0 -0
  247. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/cron.md +0 -0
  248. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/doctor.md +0 -0
  249. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/logs.md +0 -0
  250. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/mcp.md +0 -0
  251. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/memory.md +0 -0
  252. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/plugins.md +0 -0
  253. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/run.md +0 -0
  254. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/secrets.md +0 -0
  255. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/security.md +0 -0
  256. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/serve.md +0 -0
  257. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/service.md +0 -0
  258. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/sessions.md +0 -0
  259. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/skills.md +0 -0
  260. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/status.md +0 -0
  261. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/teams.md +0 -0
  262. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/tools.md +0 -0
  263. {workpilot-0.35.2 → workpilot-0.36.1}/docs/cli/version.md +0 -0
  264. {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/customization.md +0 -0
  265. {workpilot-0.35.2 → workpilot-0.36.1}/docs/configuration/providers.md +0 -0
  266. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/api.md +0 -0
  267. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/cloud-gateway-deployment.md +0 -0
  268. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/documentation.md +0 -0
  269. {workpilot-0.35.2 → workpilot-0.36.1}/docs/contributing/feedback-routing.md +0 -0
  270. {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/mcp.md +0 -0
  271. {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/plugins.md +0 -0
  272. {workpilot-0.35.2 → workpilot-0.36.1}/docs/extend/skills.md +0 -0
  273. {workpilot-0.35.2 → workpilot-0.36.1}/docs/feedback.md +0 -0
  274. {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/cloud.md +0 -0
  275. {workpilot-0.35.2 → workpilot-0.36.1}/docs/gateways/self-hosting.md +0 -0
  276. {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/audit-and-estop.md +0 -0
  277. {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/authentication.md +0 -0
  278. {workpilot-0.35.2 → workpilot-0.36.1}/docs/security/secrets.md +0 -0
  279. {workpilot-0.35.2 → workpilot-0.36.1}/docs/storage/attachments.md +0 -0
  280. {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/microsoft-graph.md +0 -0
  281. {workpilot-0.35.2 → workpilot-0.36.1}/docs/tools/web-search.md +0 -0
  282. {workpilot-0.35.2 → workpilot-0.36.1}/hatch_build.py +0 -0
  283. /workpilot-0.35.2/web/dist/app-B5GQoc8V.css → /workpilot-0.36.1/web/dist/app-9Sk3b3Pl.css +0 -0
  284. /workpilot-0.35.2/web/dist/app-BG0MnlsF.css → /workpilot-0.36.1/web/dist/app-B5GQoc8V.css +0 -0
  285. /workpilot-0.35.2/web/dist/app-BMpGkMxz.css → /workpilot-0.36.1/web/dist/app-BCIpmu3M.css +0 -0
  286. /workpilot-0.35.2/web/dist/app-BjBgkMUd.css → /workpilot-0.36.1/web/dist/app-BG0MnlsF.css +0 -0
  287. /workpilot-0.35.2/web/dist/app-BmPNfp5q.css → /workpilot-0.36.1/web/dist/app-BMpGkMxz.css +0 -0
  288. /workpilot-0.35.2/web/dist/app-CBRs0pqs.css → /workpilot-0.36.1/web/dist/app-BjBgkMUd.css +0 -0
  289. /workpilot-0.35.2/web/dist/app-CeVx_1Uc.css → /workpilot-0.36.1/web/dist/app-BmPNfp5q.css +0 -0
  290. /workpilot-0.35.2/web/dist/app-Cr6SPxVu.css → /workpilot-0.36.1/web/dist/app-BoA41zjD.css +0 -0
  291. /workpilot-0.35.2/web/dist/app-CrphASwR.css → /workpilot-0.36.1/web/dist/app-ByM9P1Eh.css +0 -0
  292. /workpilot-0.35.2/web/dist/app-DnejMwtf.css → /workpilot-0.36.1/web/dist/app-CBRs0pqs.css +0 -0
  293. /workpilot-0.35.2/web/dist/app-J0wEnVQ9.css → /workpilot-0.36.1/web/dist/app-CExcdCxf.css +0 -0
  294. /workpilot-0.35.2/web/dist/app-X0K9ZNVl.css → /workpilot-0.36.1/web/dist/app-CT5xvRo-.css +0 -0
  295. /workpilot-0.35.2/web/dist/app-orwSkC5k.css → /workpilot-0.36.1/web/dist/app-CWtPr-2m.css +0 -0
  296. /workpilot-0.35.2/web/dist/app-s3Wdl3G6.css → /workpilot-0.36.1/web/dist/app-Cr6SPxVu.css +0 -0
  297. /workpilot-0.35.2/workpilot/agent/__init__.py → /workpilot-0.36.1/web/dist/app-CrphASwR.css +0 -0
  298. /workpilot-0.35.2/workpilot/agent/cards/__init__.py → /workpilot-0.36.1/web/dist/app-DeoqYaYU.css +0 -0
  299. /workpilot-0.35.2/workpilot/security/data/__init__.py → /workpilot-0.36.1/web/dist/app-DnejMwtf.css +0 -0
  300. /workpilot-0.35.2/workpilot/skills/bundled/__init__.py → /workpilot-0.36.1/web/dist/app-DzggVBNJ.css +0 -0
  301. /workpilot-0.35.2/workpilot/utils/__init__.py → /workpilot-0.36.1/web/dist/app-J0wEnVQ9.css +0 -0
  302. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/auth-callback.html +0 -0
  303. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/BrowserPerformanceMeasurement-BDzbW3oA.js +0 -0
  304. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/_hljs-langs-Dc_1zEsH.js +0 -0
  305. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/dist-0H8Ur5Q4.js +0 -0
  306. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/1c-73lFXAp6.js +0 -0
  307. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/abnf-CSrFSEx0.js +0 -0
  308. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/accesslog-Dv0yWYFF.js +0 -0
  309. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/actionscript-1l-8ymtB.js +0 -0
  310. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ada-C4qX_6Ry.js +0 -0
  311. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/angelscript-KNgW1fZo.js +0 -0
  312. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/apache-Dh9PJFmJ.js +0 -0
  313. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/applescript-BcBB30ub.js +0 -0
  314. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/arcade-bShcHfOZ.js +0 -0
  315. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/arduino-BqwItFkb.js +0 -0
  316. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/armasm-D3oKByup.js +0 -0
  317. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/asciidoc-Qa3iLJWP.js +0 -0
  318. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/aspectj-Bjg1FiVd.js +0 -0
  319. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/autohotkey-BW462adD.js +0 -0
  320. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/autoit-DwUuKi_Q.js +0 -0
  321. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/avrasm-CHTJ6C4a.js +0 -0
  322. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/awk-D463B8d-.js +0 -0
  323. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/axapta-p7Fa3A78.js +0 -0
  324. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/basic-oUUdvLrs.js +0 -0
  325. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/bnf-CWGByNpv.js +0 -0
  326. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/brainfuck-CkSV9Luo.js +0 -0
  327. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cal-DTzUSEH8.js +0 -0
  328. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/capnproto-DvbP7u24.js +0 -0
  329. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ceylon-dTiwAriW.js +0 -0
  330. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clean-zdpkyKaR.js +0 -0
  331. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clojure-CR7dvLJ4.js +0 -0
  332. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/clojure-repl-aHBM9jLK.js +0 -0
  333. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cmake-CgP6gB4W.js +0 -0
  334. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/coffeescript-p0dfWXuO.js +0 -0
  335. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/coq-rqf_V7Lc.js +0 -0
  336. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/cos-PigSugnL.js +0 -0
  337. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/crmsh-CR9tZ93c.js +0 -0
  338. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/crystal-DyGSoxxU.js +0 -0
  339. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/csp-Bfnlcs7r.js +0 -0
  340. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/d-CXnZM-Nf.js +0 -0
  341. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dart-Do_01MLp.js +0 -0
  342. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/delphi-BzWcX1gm.js +0 -0
  343. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/django-Dxj7e8BX.js +0 -0
  344. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dns-Dz97dZh0.js +0 -0
  345. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dockerfile-C0zufGsU.js +0 -0
  346. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dos-DfZf_1de.js +0 -0
  347. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dsconfig-BQvSqJrQ.js +0 -0
  348. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dts-D-4KA1m9.js +0 -0
  349. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/dust-BCRbq8jp.js +0 -0
  350. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ebnf-BmerogBf.js +0 -0
  351. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/elixir-DXIHlGsR.js +0 -0
  352. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/elm-BOkolQqs.js +0 -0
  353. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erb-DptdJbGO.js +0 -0
  354. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erlang-BjYI8dhz.js +0 -0
  355. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/erlang-repl-LZCIum1w.js +0 -0
  356. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/excel-BI2r-hyN.js +0 -0
  357. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fix-BSf_7YOu.js +0 -0
  358. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/flix-DOTrSD3H.js +0 -0
  359. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fortran-tuAJdZsI.js +0 -0
  360. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/freedesktop-D80i-mP2.js +0 -0
  361. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/fsharp-CvvkikEj.js +0 -0
  362. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gams-CEFdYGQ4.js +0 -0
  363. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gauss-Cu9sx8W2.js +0 -0
  364. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gcode-DVi5cKOT.js +0 -0
  365. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gherkin-BXFuf_vg.js +0 -0
  366. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/glsl-Boj4HSji.js +0 -0
  367. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gml-5I1j5qRd.js +0 -0
  368. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/golo-CR1Ogma7.js +0 -0
  369. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/gradle-DeCngaqu.js +0 -0
  370. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/groovy-DaJmaWG6.js +0 -0
  371. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haml-lM-YLvZH.js +0 -0
  372. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/handlebars-DJqXWVRL.js +0 -0
  373. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haskell-DUkhXIda.js +0 -0
  374. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/haxe-qGz9CBa_.js +0 -0
  375. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/hsp-DJFrA4nv.js +0 -0
  376. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/http-DdjbPXam.js +0 -0
  377. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/hy-jK6vAkqq.js +0 -0
  378. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/inform7-C3EegiWg.js +0 -0
  379. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/irpf90-Wu2ux-Fn.js +0 -0
  380. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/isbl-D8SR3GGH.js +0 -0
  381. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/jboss-cli-CSRnPoYO.js +0 -0
  382. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/julia-C_UcIgej.js +0 -0
  383. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/julia-repl-Hj_vmM07.js +0 -0
  384. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/kotlin-DgSK8bu-.js +0 -0
  385. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lasso-3ymKbqSp.js +0 -0
  386. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/latex-ifxXhTOO.js +0 -0
  387. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ldif-Dg6dmf5K.js +0 -0
  388. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/leaf-7ZZ5wCnn.js +0 -0
  389. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/less-Bp0mgmpG.js +0 -0
  390. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lisp-RAPfxQzG.js +0 -0
  391. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/livecodeserver-C_mGJ3Jy.js +0 -0
  392. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/livescript-ClNaFHRt.js +0 -0
  393. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/llvm-OW2Pjs3T.js +0 -0
  394. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lsl-DGokiC3s.js +0 -0
  395. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/lua-1dXYaL-H.js +0 -0
  396. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/makefile-BX-o3EIz.js +0 -0
  397. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mathematica-FGVCSpsQ.js +0 -0
  398. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/matlab-DkTKhn5C.js +0 -0
  399. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/maxima-DqHi-6vF.js +0 -0
  400. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mel-DZJEcL8n.js +0 -0
  401. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mercury-DRbqW1u4.js +0 -0
  402. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mipsasm-CElFSg8P.js +0 -0
  403. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mizar-Dh71fdD_.js +0 -0
  404. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/mojolicious-tYyfRjr6.js +0 -0
  405. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/monkey-BCEr2jAI.js +0 -0
  406. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/moonscript-BGRQnnF2.js +0 -0
  407. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/n1ql-BLbzjUaV.js +0 -0
  408. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nestedtext-DGs-X5Vp.js +0 -0
  409. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nginx-B1pH5dXO.js +0 -0
  410. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nim-BGBfXPIx.js +0 -0
  411. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nix-CR3yefiA.js +0 -0
  412. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/node-repl-Vgr6fxPS.js +0 -0
  413. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/nsis-UYRebJNT.js +0 -0
  414. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/objectivec-DLXDdhyK.js +0 -0
  415. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ocaml-B-P1Uyq8.js +0 -0
  416. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/openscad-JVA7wRWo.js +0 -0
  417. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/oxygene-upDuL0ca.js +0 -0
  418. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/parser3-BpsPHbGc.js +0 -0
  419. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/perl-CvqMZYuf.js +0 -0
  420. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pf-Hak9sRVf.js +0 -0
  421. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pgsql-BJ2OcN8V.js +0 -0
  422. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/php-DuZl5e-L.js +0 -0
  423. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/php-template-8u8Pml-P.js +0 -0
  424. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/pony-CpMp0mBm.js +0 -0
  425. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/processing-BD9AMQkN.js +0 -0
  426. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/profile-BWVYCPTK.js +0 -0
  427. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/prolog-CpiLaDrO.js +0 -0
  428. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/properties-C_5_0OWv.js +0 -0
  429. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/protobuf-DGOW1qT8.js +0 -0
  430. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/puppet-DEWZKVv3.js +0 -0
  431. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/purebasic-CRcZGluc.js +0 -0
  432. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/python-repl-D5uGO-jm.js +0 -0
  433. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/q-B3koHNzP.js +0 -0
  434. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/qml-CjhsRFLe.js +0 -0
  435. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/r-DNWPCnjT.js +0 -0
  436. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/reasonml-CJ1TLoQF.js +0 -0
  437. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/rib-hKzGh-52.js +0 -0
  438. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/roboconf-CaM3tfvi.js +0 -0
  439. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/routeros-iLCLl-5n.js +0 -0
  440. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/rsl-Da8STgqx.js +0 -0
  441. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ruby-BGpZ3p4_.js +0 -0
  442. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/ruleslanguage-ZpNubZZ_.js +0 -0
  443. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sas-DEdPwm2c.js +0 -0
  444. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scala-C9lP4FWY.js +0 -0
  445. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scheme-BXgVOBG5.js +0 -0
  446. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scilab-B4bepPhE.js +0 -0
  447. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/scss-gOyOKiXd.js +0 -0
  448. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/smali--7SxcPXF.js +0 -0
  449. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/smalltalk-DSQwiuj1.js +0 -0
  450. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sml-Bqj0DVIt.js +0 -0
  451. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/sqf-BaWmPklZ.js +0 -0
  452. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stan-aGu1RaYf.js +0 -0
  453. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stata-BakFZ2ml.js +0 -0
  454. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/step21-1CIrbR2Q.js +0 -0
  455. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/stylus-ueqB8vk5.js +0 -0
  456. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/subunit-DV7smCjo.js +0 -0
  457. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/swift-BTn9__hL.js +0 -0
  458. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/taggerscript-YlWmQdSJ.js +0 -0
  459. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tap-NqH9ctA4.js +0 -0
  460. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tcl-CiO3JXx7.js +0 -0
  461. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/thrift-DO8eeo3I.js +0 -0
  462. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/tp-BkW-mzl-.js +0 -0
  463. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/twig-CP1rWjpH.js +0 -0
  464. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vala-wv2tBZQi.js +0 -0
  465. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbnet-BiMsFFN_.js +0 -0
  466. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbscript-BahAjTwm.js +0 -0
  467. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vbscript-html-DQKGwi3G.js +0 -0
  468. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/verilog-Ke-GOEW9.js +0 -0
  469. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vhdl-CaU6e6N4.js +0 -0
  470. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/vim-Dhhcn_CA.js +0 -0
  471. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/wasm-hBR4I1od.js +0 -0
  472. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/wren-B1F_0bnw.js +0 -0
  473. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/x86asm-p0pDTEuW.js +0 -0
  474. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/xl-xylFSQAW.js +0 -0
  475. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/xquery-Dr9rmg8t.js +0 -0
  476. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs/zephir-CJH3ep_3.js +0 -0
  477. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/hljs-CLaOA3Zl.js +0 -0
  478. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/marked.esm-D7dwggTa.js +0 -0
  479. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/purify.es-7fJ1DZ6H.js +0 -0
  480. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/rolldown-runtime-hePW80VL.js +0 -0
  481. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/chunks/vendor-react-Dn9Luu3B.js +0 -0
  482. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/logo.svg +0 -0
  483. {workpilot-0.35.2 → workpilot-0.36.1}/web/dist/msal-redirect-bridge.min.js +0 -0
  484. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/__init__.py +0 -0
  485. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/__main__.py +0 -0
  486. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge.py +0 -0
  487. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge_claude.py +0 -0
  488. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/bridge_copilot.py +0 -0
  489. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/browser_runtime.py +0 -0
  490. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/builders.py +0 -0
  491. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/chip_strategy.py +0 -0
  492. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/status.py +0 -0
  493. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/cards/types.py +0 -0
  494. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/clarify_match.py +0 -0
  495. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/clarify_render.py +0 -0
  496. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/code_mode/__init__.py +0 -0
  497. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/coding.py +0 -0
  498. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/compaction.py +0 -0
  499. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/interactive_router.py +0 -0
  500. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/interrupt.py +0 -0
  501. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/loop_detect.py +0 -0
  502. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/mid_run.py +0 -0
  503. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/output_parser.py +0 -0
  504. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/reminders.py +0 -0
  505. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tool_scope.py +0 -0
  506. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/__init__.py +0 -0
  507. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_browser_emulation.py +0 -0
  508. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_delegate_notify.py +0 -0
  509. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/_shared.py +0 -0
  510. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/base.py +0 -0
  511. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/bridge.py +0 -0
  512. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/clarify.py +0 -0
  513. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/claude_code.py +0 -0
  514. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/coding_task.py +0 -0
  515. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/concurrency.py +0 -0
  516. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/copilot.py +0 -0
  517. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/defer_delivery.py +0 -0
  518. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/filesystem.py +0 -0
  519. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/notify.py +0 -0
  520. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/read_session.py +0 -0
  521. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/search_history.py +0 -0
  522. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/search_workpilot_docs.py +0 -0
  523. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/spawn.py +0 -0
  524. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/task_status.py +0 -0
  525. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/tools.py +0 -0
  526. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/tools/update.py +0 -0
  527. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/truncation.py +0 -0
  528. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agent/typing.py +0 -0
  529. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/__init__.py +0 -0
  530. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/builtin.py +0 -0
  531. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/FileSearch.md +0 -0
  532. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/HistorySession.md +0 -0
  533. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/bundled/WorkPilotSupport.md +0 -0
  534. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/github.py +0 -0
  535. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/loader.py +0 -0
  536. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/shortener.py +0 -0
  537. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/agents/tool_categories.py +0 -0
  538. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/__init__.py +0 -0
  539. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/queue.py +0 -0
  540. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/bus/streaming.py +0 -0
  541. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/__init__.py +0 -0
  542. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_allowlist.py +0 -0
  543. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/_cloud_throttle.py +0 -0
  544. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/base.py +0 -0
  545. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/cli.py +0 -0
  546. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/conv_ref_store.py +0 -0
  547. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/channels/web.py +0 -0
  548. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/__init__.py +0 -0
  549. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/agents.py +0 -0
  550. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/attachments.py +0 -0
  551. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/browser.py +0 -0
  552. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/chat.py +0 -0
  553. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/doctor.py +0 -0
  554. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/mcp.py +0 -0
  555. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/mcp_setup.py +0 -0
  556. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/memory.py +0 -0
  557. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/msgraph.py +0 -0
  558. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/plugins.py +0 -0
  559. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/prompts.py +0 -0
  560. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/security.py +0 -0
  561. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/serve.py +0 -0
  562. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/service.py +0 -0
  563. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/sessions.py +0 -0
  564. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/skills.py +0 -0
  565. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/teams.py +0 -0
  566. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cli/tools.py +0 -0
  567. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/__init__.py +0 -0
  568. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/config/action_plan.py +0 -0
  569. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/__init__.py +0 -0
  570. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/crontab_compat.py +0 -0
  571. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/misfire.py +0 -0
  572. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/cron/tz_migration.py +0 -0
  573. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/AGENTS.md +0 -0
  574. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/COMPACTION.md +0 -0
  575. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/GROUPING.md +0 -0
  576. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/HEARTBEAT.md +0 -0
  577. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/MEMORY.md +0 -0
  578. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/MERGE_SUMMARY.md +0 -0
  579. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/RESPONSE.md +0 -0
  580. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/SOUL.md +0 -0
  581. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/TOOLS.md +0 -0
  582. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/USER.md +0 -0
  583. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_CONSOLIDATION.md +0 -0
  584. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_RECOMPRESSION.md +0 -0
  585. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/_SECURITY.md +0 -0
  586. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/defaults/__init__.py +0 -0
  587. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/__init__.py +0 -0
  588. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/desktop/backend.py +0 -0
  589. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/__init__.py +0 -0
  590. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/adapter.py +0 -0
  591. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/auth.py +0 -0
  592. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/client.py +0 -0
  593. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/defaults.py +0 -0
  594. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/health.py +0 -0
  595. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/manager.py +0 -0
  596. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_callback.py +0 -0
  597. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_provider.py +0 -0
  598. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/oauth_storage.py +0 -0
  599. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/protocol.py +0 -0
  600. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/store.py +0 -0
  601. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/transport.py +0 -0
  602. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/mcp/types.py +0 -0
  603. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/__init__.py +0 -0
  604. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/plugins/store.py +0 -0
  605. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/__init__.py +0 -0
  606. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/__main__.py +0 -0
  607. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/product_docs/corpus.py +0 -0
  608. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/__init__.py +0 -0
  609. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/base.py +0 -0
  610. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/client.py +0 -0
  611. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/copilot_web_search.py +0 -0
  612. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/reasoning.py +0 -0
  613. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/resolver.py +0 -0
  614. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/providers/usage.py +0 -0
  615. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/runtime_status.py +0 -0
  616. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/__init__.py +0 -0
  617. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/allowlist.py +0 -0
  618. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/allowlist_presets.py +0 -0
  619. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/attachments.py +0 -0
  620. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/audit.py +0 -0
  621. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/binary_frame.py +0 -0
  622. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/clarify.py +0 -0
  623. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/data/url_classify.json +0 -0
  624. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/destructive.py +0 -0
  625. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/estop.py +0 -0
  626. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/execution_directories.py +0 -0
  627. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/github_auth.py +0 -0
  628. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/leak.py +0 -0
  629. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/migrate.py +0 -0
  630. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/relay_validator.py +0 -0
  631. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sanitizer.py +0 -0
  632. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets.py +0 -0
  633. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_env.py +0 -0
  634. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_fernet.py +0 -0
  635. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/secrets_keyring.py +0 -0
  636. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/self_governance.py +0 -0
  637. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/sensitive.py +0 -0
  638. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/short_id.py +0 -0
  639. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/task_approval.py +0 -0
  640. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/security/zw_id.py +0 -0
  641. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/__init__.py +0 -0
  642. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/linux.py +0 -0
  643. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/macos.py +0 -0
  644. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/manager.py +0 -0
  645. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/models.py +0 -0
  646. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/native.py +0 -0
  647. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/service/windows.py +0 -0
  648. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/__init__.py +0 -0
  649. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/artifacts.py +0 -0
  650. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/session/bridge_store.py +0 -0
  651. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/__init__.py +0 -0
  652. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/ado.md +0 -0
  653. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/azure-ops.md +0 -0
  654. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/calendar-lookup.md +0 -0
  655. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/cloud-apply.md +0 -0
  656. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/docx.md +0 -0
  657. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/github.md +0 -0
  658. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/SKILL.md +0 -0
  659. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/calendar.md +0 -0
  660. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/files.md +0 -0
  661. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/mail.md +0 -0
  662. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/people.md +0 -0
  663. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/productivity.md +0 -0
  664. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/msgraph-api/references/teams.md +0 -0
  665. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/pptx.md +0 -0
  666. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/read-remote-document.md +0 -0
  667. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/sharepoint-pptx.md +0 -0
  668. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/SKILL.md +0 -0
  669. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/references/advanced.md +0 -0
  670. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/teams-message/references/targets.md +0 -0
  671. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/workpilot-feedback.md +0 -0
  672. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/workpilot-maintenance.md +0 -0
  673. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/bundled/xlsx.md +0 -0
  674. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/shortener.py +0 -0
  675. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/store.py +0 -0
  676. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/skills/universal.py +0 -0
  677. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/auth.py +0 -0
  678. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/cloud_verify.py +0 -0
  679. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/devbox_keepalive.py +0 -0
  680. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/frozen_runtime.py +0 -0
  681. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/helpers.py +0 -0
  682. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/html.py +0 -0
  683. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/identity.py +0 -0
  684. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/input.py +0 -0
  685. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/json_truncate.py +0 -0
  686. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/llm_shortener.py +0 -0
  687. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/log_context.py +0 -0
  688. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/logging.py +0 -0
  689. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/markdown_frontmatter.py +0 -0
  690. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/msgraph_scopes.py +0 -0
  691. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/msgraph_token.py +0 -0
  692. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/package_index.py +0 -0
  693. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/playwright_node.py +0 -0
  694. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/sleep_inhibitor.py +0 -0
  695. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/token_errors.py +0 -0
  696. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/update.py +0 -0
  697. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/utils/wam_token.py +0 -0
  698. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/__init__.py +0 -0
  699. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/estop_middleware.py +0 -0
  700. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/_common.py +0 -0
  701. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/admin.py +0 -0
  702. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/config.py +0 -0
  703. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/mcp_connections.py +0 -0
  704. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/mcp_store.py +0 -0
  705. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/memory.py +0 -0
  706. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/models.py +0 -0
  707. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/plugins_store.py +0 -0
  708. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/prompts.py +0 -0
  709. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/skills.py +0 -0
  710. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/skills_store.py +0 -0
  711. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/status.py +0 -0
  712. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/telemetry.py +0 -0
  713. {workpilot-0.35.2 → workpilot-0.36.1}/workpilot/web/handlers/tools.py +0 -0
  714. {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.35.2
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.23
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 and fire the job each time a matching event occurs.
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. Existing file tools create directories on first write. They are in scope only for
135
- that job's execution and its participating agents; definitions and other jobs remain outside
136
- this grant. Denied paths and normal risk checks still apply. An unavailable output directory
137
- blocks the affected file operation, not tasks that only return text.
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, advanced security/channel configuration, and automatic runtime restart remain
141
- separate workflows.
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** | Create, inspect, enable, disable, run, and review scheduled jobs |
147
- | **Tools / Skills / Models** | Manage MCP connections, browse full skills and installations, and edit model settings |
148
- | **Prompts / Knowledge** | Review prompt sections, `MEMORY.md`, and searchable knowledge |
149
- | **Store** | Discover and manage MCP servers and skills |
150
- | **Security / Status** | Review credentials, E-stop, security state, channels, and health |
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 model/workspace settings and inspect masked advanced configuration |
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.