workpilot 0.35.2__tar.gz → 0.37.0__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 (737) hide show
  1. {workpilot-0.35.2 → workpilot-0.37.0}/PKG-INFO +5 -4
  2. {workpilot-0.35.2 → workpilot-0.37.0}/browser_agent/actions.py +4 -0
  3. {workpilot-0.35.2 → workpilot-0.37.0}/docs/agents/bridge-mode.md +46 -4
  4. {workpilot-0.35.2 → workpilot-0.37.0}/docs/agents/claude-code.md +13 -9
  5. {workpilot-0.35.2 → workpilot-0.37.0}/docs/agents/github-copilot.md +54 -11
  6. {workpilot-0.35.2 → workpilot-0.37.0}/docs/agents/overview.md +42 -0
  7. workpilot-0.37.0/docs/automation/events.md +254 -0
  8. {workpilot-0.35.2 → workpilot-0.37.0}/docs/automation/scheduling.md +74 -5
  9. {workpilot-0.35.2 → workpilot-0.37.0}/docs/channels/web.md +32 -8
  10. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/browser.md +4 -3
  11. workpilot-0.37.0/docs/cli/hooks.md +130 -0
  12. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/init.md +2 -1
  13. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/msgraph.md +1 -1
  14. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/overview.md +9 -6
  15. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/update.md +14 -2
  16. {workpilot-0.35.2 → workpilot-0.37.0}/docs/configuration/overview.md +1 -1
  17. {workpilot-0.35.2 → workpilot-0.37.0}/docs/configuration/schema.md +17 -7
  18. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/architecture.md +2 -2
  19. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/development.md +6 -0
  20. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/releasing.md +58 -10
  21. {workpilot-0.35.2 → workpilot-0.37.0}/docs/desktop.md +78 -17
  22. {workpilot-0.35.2 → workpilot-0.37.0}/docs/gateways/local.md +9 -0
  23. {workpilot-0.35.2 → workpilot-0.37.0}/docs/getting-started/initialize.md +2 -1
  24. {workpilot-0.35.2 → workpilot-0.37.0}/docs/getting-started/install.md +65 -1
  25. {workpilot-0.35.2 → workpilot-0.37.0}/docs/getting-started/update.md +58 -3
  26. {workpilot-0.35.2 → workpilot-0.37.0}/docs/index.md +1 -0
  27. workpilot-0.37.0/docs/security/approvals.md +307 -0
  28. {workpilot-0.35.2 → workpilot-0.37.0}/docs/security/overview.md +32 -4
  29. {workpilot-0.35.2 → workpilot-0.37.0}/docs/storage/overview.md +13 -0
  30. {workpilot-0.35.2 → workpilot-0.37.0}/docs/storage/sessions.md +22 -1
  31. {workpilot-0.35.2 → workpilot-0.37.0}/docs/tools/browser.md +78 -15
  32. {workpilot-0.35.2 → workpilot-0.37.0}/docs/tools/overview.md +6 -1
  33. {workpilot-0.35.2 → workpilot-0.37.0}/docs/tools/run-code.md +15 -8
  34. {workpilot-0.35.2 → workpilot-0.37.0}/docs/troubleshooting.md +37 -0
  35. {workpilot-0.35.2 → workpilot-0.37.0}/pyproject.toml +5 -4
  36. workpilot-0.37.0/web/dist/app-CIo_O1d6.css +1 -0
  37. workpilot-0.37.0/web/dist/app-CYZDCQXy.js +18 -0
  38. workpilot-0.37.0/web/dist/app-DeoqYaYU.css +0 -0
  39. workpilot-0.37.0/web/dist/app-DnejMwtf.css +0 -0
  40. workpilot-0.37.0/web/dist/app-DzggVBNJ.css +0 -0
  41. workpilot-0.37.0/web/dist/app-J0wEnVQ9.css +0 -0
  42. workpilot-0.37.0/web/dist/app-ZeLuo_qI.css +0 -0
  43. workpilot-0.37.0/web/dist/app-orwSkC5k.css +0 -0
  44. workpilot-0.37.0/web/dist/app-s3Wdl3G6.css +0 -0
  45. workpilot-0.37.0/web/dist/app-zQFr_IGx.css +0 -0
  46. workpilot-0.37.0/web/dist/chunks/AgentModelEditor-Hs0ZiCl_.js +1 -0
  47. workpilot-0.37.0/web/dist/chunks/AgentsView-BUwcLmNP.js +3 -0
  48. workpilot-0.37.0/web/dist/chunks/AskAssistant-D-Njb_9G.js +1 -0
  49. workpilot-0.37.0/web/dist/chunks/BackgroundAppearanceContext-D16ZpFHE.js +1 -0
  50. workpilot-0.37.0/web/dist/chunks/ConfigurationEditor-X7U3-oDb.js +1 -0
  51. workpilot-0.37.0/web/dist/chunks/ConfigurationPanel-qrVnGHor.js +2 -0
  52. workpilot-0.37.0/web/dist/chunks/ConfirmDialog-CUxbO5dJ.js +1 -0
  53. workpilot-0.37.0/web/dist/chunks/ConfirmOperation-DaNIMt40.js +1 -0
  54. workpilot-0.37.0/web/dist/chunks/EventDetailView-Yr2zjRBD.js +1 -0
  55. workpilot-0.37.0/web/dist/chunks/EventEditorView-0bWj4SjG.js +3 -0
  56. workpilot-0.37.0/web/dist/chunks/EventsView-C2AVQv0j.js +1 -0
  57. workpilot-0.37.0/web/dist/chunks/FieldContext-B0SnnBYq.js +1 -0
  58. workpilot-0.37.0/web/dist/chunks/KnowledgeView-Bl_-1HFR.js +1 -0
  59. workpilot-0.37.0/web/dist/chunks/Label-Gtq0dkNb.js +1 -0
  60. workpilot-0.37.0/web/dist/chunks/LinkageDetails-D-91YcM3.js +1 -0
  61. workpilot-0.37.0/web/dist/chunks/ModelsView-BNFZAtQ5.js +1 -0
  62. workpilot-0.37.0/web/dist/chunks/PromptsView-DZvUUZ2e.js +1 -0
  63. workpilot-0.37.0/web/dist/chunks/ScheduleDetailView-VcnE-oPY.js +1 -0
  64. workpilot-0.37.0/web/dist/chunks/ScheduleView-_l_bo2KB.js +1 -0
  65. workpilot-0.37.0/web/dist/chunks/SecurityView-B8wC0EYW.js +3 -0
  66. workpilot-0.37.0/web/dist/chunks/SessionsView-D74ndoUu.js +1 -0
  67. workpilot-0.37.0/web/dist/chunks/SettingsView-S8Q1yJTC.js +3 -0
  68. workpilot-0.37.0/web/dist/chunks/SkillsView-C2aem39V.js +1 -0
  69. workpilot-0.37.0/web/dist/chunks/StatusView-D3ceg64h.js +1 -0
  70. workpilot-0.37.0/web/dist/chunks/StoreView--j3PyWoE.js +10 -0
  71. workpilot-0.37.0/web/dist/chunks/Subtitle2-Dh0-x0nJ.js +1 -0
  72. workpilot-0.37.0/web/dist/chunks/ToolsView-DTC2C5-s.js +1 -0
  73. workpilot-0.37.0/web/dist/chunks/UsageView-CCH4tpjM.js +3 -0
  74. workpilot-0.37.0/web/dist/chunks/_define_property-JgUJi83s.js +1 -0
  75. workpilot-0.37.0/web/dist/chunks/common~EventEditorView~EventDetailView-CmXmouOb.js +1 -0
  76. workpilot-0.37.0/web/dist/chunks/common~KnowledgeView~ConfigurationEditor-CLq7BDn7.js +1 -0
  77. workpilot-0.37.0/web/dist/chunks/common~ScheduleView~ScheduleDetailView-q1d_gPT5.js +1 -0
  78. workpilot-0.37.0/web/dist/chunks/common~ScheduleView~ScheduleDetailView~EventEditorView~AgentsView~ConfigurationEditor-DXStIC9H.js +1 -0
  79. workpilot-0.37.0/web/dist/chunks/common~SettingsView~ConfigurationEditor-DqXZ0Lxp.js +2 -0
  80. workpilot-0.37.0/web/dist/chunks/common~StoreView~ScheduleView-BD2-QVGY.js +1 -0
  81. workpilot-0.37.0/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView-Dw1uH_oY.js +1 -0
  82. workpilot-0.37.0/web/dist/chunks/common~StoreView~ScheduleView~ScheduleDetailView~EventEditorView~ConfigurationEditor-BKxe82U4.js +1 -0
  83. workpilot-0.37.0/web/dist/chunks/common~ToolsView~SkillsView~SettingsView~ScheduleView~ScheduleDetailView~ModelsView~EventsV~hykddpuv-DTmk88w9.js +25 -0
  84. workpilot-0.37.0/web/dist/chunks/common~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~PromptsView~EventDetailView~j0k80ooi-DoKZE66I.js +1 -0
  85. workpilot-0.37.0/web/dist/chunks/common~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SecurityView~ScheduleView~Sch~i8zn7jh1-C3gvqy-F.js +1 -0
  86. workpilot-0.37.0/web/dist/chunks/common~UsageView~ToolsView~SkillsView~SecurityView~KnowledgeView~EventsView~AgentsView-C9F-8Ble.js +1 -0
  87. workpilot-0.37.0/web/dist/chunks/common~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~Securi~bme0q1na-h1SiF-cV.js +17 -0
  88. workpilot-0.37.0/web/dist/chunks/common~index-CwwRK_51.js +1 -0
  89. workpilot-0.37.0/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~ScheduleView~ScheduleDetailView~ModelsView~Ev~hnpoo2xb-FP5l90l-.js +1 -0
  90. workpilot-0.37.0/web/dist/chunks/common~index~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleView~Schedu~e549fo3q-DKZOT4vv.js +1 -0
  91. workpilot-0.37.0/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~eeeajtw3-BLA9-nsy.js +1 -0
  92. workpilot-0.37.0/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~jxe0gace-COEONZ7B.js +1 -0
  93. workpilot-0.37.0/web/dist/chunks/common~index~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleView~Schedule~k13lxfvk-CQPZkBRt.js +1 -0
  94. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ScheduleView-CrZG5Po9.js +1 -0
  95. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~StoreView-CUzPxYRn.js +1 -0
  96. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView-DB4r0JLo.js +1 -0
  97. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~StoreView~ScheduleView~ScheduleDetailView-B-EQb-Eq.js +1 -0
  98. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SettingsView~SessionsView~SecurityView~ScheduleV~n5uota57-7fTC30-e.js +1 -0
  99. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SecurityView~ScheduleVie~d0dlozpb-r0pZ5frh.js +1 -0
  100. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~egd2j22m-wZuNzdDP.js +1 -0
  101. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~el5qpxb0-Ci7aYSWg.js +1 -0
  102. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~jc0u55fq-BcVEUcxl.js +1 -0
  103. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~SkillsView~SettingsView~SessionsView~ScheduleVie~mu4s5l7p-DR5_gMZ_.js +1 -0
  104. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~e4la2u87-CptqeeMu.js +1 -0
  105. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~eswq4jkg-CuZQ53qe.js +1 -0
  106. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~hsi6g182-BizIRaxA.js +1 -0
  107. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~kjs63cx7-BQASqQ24.js +2 -0
  108. workpilot-0.37.0/web/dist/chunks/common~index~UsageView~ToolsView~StoreView~StatusView~SkillsView~SettingsView~SessionsView~~m9i0rw6q-B2uLYO2q.js +2 -0
  109. workpilot-0.37.0/web/dist/chunks/createPresenceComponentVariant-BQQoYxuO.js +1 -0
  110. workpilot-0.37.0/web/dist/chunks/elementContains-C6noOVPK.js +1 -0
  111. workpilot-0.37.0/web/dist/chunks/eventsApi-Dyde4KP-.js +1 -0
  112. workpilot-0.37.0/web/dist/chunks/getReactElementRef-CKKCK222.js +1 -0
  113. workpilot-0.37.0/web/dist/chunks/isResolvedShorthand-DEEQPZ2V.js +1 -0
  114. workpilot-0.37.0/web/dist/chunks/management-BXuEC0W1.js +1 -0
  115. workpilot-0.37.0/web/dist/chunks/mergeCallbacks-ChLGui_y.js +1 -0
  116. workpilot-0.37.0/web/dist/chunks/purify.es-Bvo9QlJ8.js +3 -0
  117. workpilot-0.37.0/web/dist/chunks/useAnimationFrame-DeiqGdx3.js +1 -0
  118. workpilot-0.37.0/web/dist/chunks/useBrowserTimer-BLaxSrrG.js +1 -0
  119. workpilot-0.37.0/web/dist/chunks/useCardGridStyles-CYMr4IBm.js +1 -0
  120. workpilot-0.37.0/web/dist/chunks/useContextSelector-T0H5MvGp.js +1 -0
  121. workpilot-0.37.0/web/dist/chunks/useFieldControlProps-BOKjlRZM.js +1 -0
  122. workpilot-0.37.0/web/dist/chunks/useFocusFinders-BBA4gVIn.js +1 -0
  123. workpilot-0.37.0/web/dist/chunks/useFocusVisible-BVC3pfEE.js +1 -0
  124. workpilot-0.37.0/web/dist/chunks/useFocusWithin-4_8N_TN7.js +1 -0
  125. workpilot-0.37.0/web/dist/chunks/useMergeTabsterAttributes-a0TlZ-tx.js +1 -0
  126. workpilot-0.37.0/web/dist/chunks/useTimeout-D5Zw4E--.js +1 -0
  127. workpilot-0.37.0/web/dist/chunks/window-B9XFNWhS.js +1 -0
  128. workpilot-0.37.0/web/dist/index.html +68 -0
  129. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/schema/workpilot-config.schema.json +39 -4
  130. workpilot-0.37.0/workpilot/agent/__init__.py +0 -0
  131. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/_bg.py +2 -2
  132. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/bridge.py +190 -140
  133. workpilot-0.37.0/workpilot/agent/bridge_copilot.py +376 -0
  134. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/browser_resource.py +40 -13
  135. workpilot-0.37.0/workpilot/agent/browser_sessions.py +296 -0
  136. workpilot-0.37.0/workpilot/agent/cards/__init__.py +0 -0
  137. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/code_mode/base.py +10 -1
  138. workpilot-0.37.0/workpilot/agent/code_mode/event_entrypoint.py +63 -0
  139. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/code_mode/monty.py +22 -4
  140. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/code_mode/stdlib.py +20 -3
  141. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/coding.py +15 -3
  142. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/compaction.py +60 -37
  143. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/consolidation.py +1 -0
  144. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/context.py +18 -3
  145. workpilot-0.37.0/workpilot/agent/copilot_runtime.py +386 -0
  146. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/history.py +52 -3
  147. workpilot-0.37.0/workpilot/agent/instances.py +909 -0
  148. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/loop.py +377 -106
  149. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/memory.py +10 -0
  150. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/slash.py +42 -9
  151. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/subagents.py +15 -0
  152. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tool_execution.py +255 -10
  153. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/agent.py +12 -3
  154. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/browser.py +225 -172
  155. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/browser_code.py +72 -11
  156. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/claude_code.py +46 -64
  157. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/config_workpilot.py +4 -1
  158. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/copilot.py +388 -536
  159. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/cron.py +61 -6
  160. workpilot-0.37.0/workpilot/agent/tools/events.py +268 -0
  161. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/git.py +3 -0
  162. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/msgraph.py +29 -4
  163. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/read_session.py +7 -12
  164. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/registry.py +30 -26
  165. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/run_code.py +100 -15
  166. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/shell.py +56 -37
  167. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/web.py +16 -16
  168. workpilot-0.37.0/workpilot/agents/bundled/Browser.md +94 -0
  169. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/bus/events.py +1 -0
  170. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/_cloud_attachments.py +2 -2
  171. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/cloud.py +30 -0
  172. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/manager.py +9 -1
  173. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/commands.py +22 -8
  174. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/cron.py +7 -0
  175. workpilot-0.37.0/workpilot/cli/hooks.py +210 -0
  176. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/init.py +3 -2
  177. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/sessions.py +25 -22
  178. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/update.py +4 -1
  179. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/config/loader.py +55 -3
  180. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/config/management.py +5 -1
  181. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/config/schema.py +42 -15
  182. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/heartbeat.py +11 -1
  183. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/job.py +63 -6
  184. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/job_md.py +48 -7
  185. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/service.py +390 -38
  186. workpilot-0.37.0/workpilot/defaults/_EVENT_HANDOFF.md +25 -0
  187. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/_SECURITY_SHELL.md +22 -4
  188. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/workpilot-config.schema.json +39 -4
  189. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/workpilot.yaml +11 -4
  190. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/desktop/updates.py +12 -4
  191. workpilot-0.37.0/workpilot/events/__init__.py +1 -0
  192. workpilot-0.37.0/workpilot/events/context.py +92 -0
  193. workpilot-0.37.0/workpilot/events/models.py +357 -0
  194. workpilot-0.37.0/workpilot/events/runner.py +126 -0
  195. workpilot-0.37.0/workpilot/events/scheduling.py +473 -0
  196. workpilot-0.37.0/workpilot/events/service.py +883 -0
  197. workpilot-0.37.0/workpilot/events/store.py +520 -0
  198. workpilot-0.37.0/workpilot/events_runtime.py +368 -0
  199. workpilot-0.37.0/workpilot/hooks/__init__.py +59 -0
  200. workpilot-0.37.0/workpilot/hooks/executor.py +300 -0
  201. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/hooks/handlers.py +386 -46
  202. workpilot-0.37.0/workpilot/hooks/loader.py +282 -0
  203. workpilot-0.37.0/workpilot/hooks/manager.py +420 -0
  204. workpilot-0.37.0/workpilot/hooks/models.py +135 -0
  205. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/plugins/loader.py +42 -7
  206. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/client.py +61 -1
  207. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/model_catalog.py +7 -3
  208. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/transport.py +92 -31
  209. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/runtime.py +820 -173
  210. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/approval.py +16 -2
  211. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/approval_format.py +70 -2
  212. workpilot-0.37.0/workpilot/security/auto_approval.py +358 -0
  213. workpilot-0.37.0/workpilot/security/data/__init__.py +0 -0
  214. workpilot-0.37.0/workpilot/security/event_authority.py +70 -0
  215. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/rbac.py +1 -0
  216. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/risk.py +12 -1
  217. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/sandbox.py +10 -1
  218. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/scorer.py +8 -2
  219. workpilot-0.37.0/workpilot/security/ssrf.py +150 -0
  220. workpilot-0.37.0/workpilot/security/turn_trust.py +154 -0
  221. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/url_classify.py +10 -0
  222. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/session/bridge_store.py +4 -9
  223. workpilot-0.37.0/workpilot/session/jsonl.py +33 -0
  224. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/session/manager.py +39 -62
  225. workpilot-0.37.0/workpilot/skills/bundled/__init__.py +0 -0
  226. workpilot-0.37.0/workpilot/skills/bundled/event-automation.md +179 -0
  227. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/workpilot-feedback.md +1 -1
  228. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/workpilot-maintenance.md +2 -2
  229. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/loader.py +6 -0
  230. workpilot-0.37.0/workpilot/utils/__init__.py +0 -0
  231. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/defaults.py +2 -1
  232. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/auth.py +11 -0
  233. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/__init__.py +8 -0
  234. workpilot-0.37.0/workpilot/web/handlers/agents.py +203 -0
  235. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/approvals.py +49 -45
  236. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/clarifications.py +16 -0
  237. workpilot-0.37.0/workpilot/web/handlers/configuration.py +324 -0
  238. workpilot-0.37.0/workpilot/web/handlers/events.py +316 -0
  239. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/schedule.py +32 -15
  240. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/sessions.py +4 -0
  241. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/server.py +120 -1
  242. workpilot-0.35.2/docs/security/approvals.md +0 -119
  243. workpilot-0.35.2/web/dist/app-C21mYjTW.css +0 -1
  244. workpilot-0.35.2/web/dist/app-CsXAYX_C.js +0 -18
  245. workpilot-0.35.2/web/dist/chunks/KnowledgeView-D5kr0gY3.js +0 -1
  246. workpilot-0.35.2/web/dist/chunks/ModelsView-UPKC5cS_.js +0 -1
  247. workpilot-0.35.2/web/dist/chunks/PromptsView-Cu7mFy8a.js +0 -1
  248. workpilot-0.35.2/web/dist/chunks/ScheduleDetailView-Cbe9k37h.js +0 -1
  249. workpilot-0.35.2/web/dist/chunks/ScheduleView-CC2TGFb_.js +0 -1
  250. workpilot-0.35.2/web/dist/chunks/SecurityView-Cz0NTGmF.js +0 -3
  251. workpilot-0.35.2/web/dist/chunks/SessionsView-CUTdXRcI.js +0 -1
  252. workpilot-0.35.2/web/dist/chunks/SettingsView-xgr3Wfg9.js +0 -4
  253. workpilot-0.35.2/web/dist/chunks/SkillsView-CC0lFI0P.js +0 -1
  254. workpilot-0.35.2/web/dist/chunks/StatusView-WTOTBpK2.js +0 -1
  255. workpilot-0.35.2/web/dist/chunks/StoreView-Ci8YpeWT.js +0 -10
  256. workpilot-0.35.2/web/dist/chunks/ToolsView-BFo4vtm6.js +0 -1
  257. workpilot-0.35.2/web/dist/chunks/UsageView-D-xb1rlz.js +0 -3
  258. workpilot-0.35.2/web/dist/chunks/common-BgaUHuMn.js +0 -43
  259. workpilot-0.35.2/web/dist/chunks/purify.es-7fJ1DZ6H.js +0 -3
  260. workpilot-0.35.2/web/dist/chunks/window-DQtQZoVn.js +0 -1
  261. workpilot-0.35.2/web/dist/index.html +0 -32
  262. workpilot-0.35.2/workpilot/agent/bridge_copilot.py +0 -526
  263. workpilot-0.35.2/workpilot/agents/bundled/Browser.md +0 -57
  264. workpilot-0.35.2/workpilot/hooks/__init__.py +0 -21
  265. workpilot-0.35.2/workpilot/hooks/manager.py +0 -243
  266. workpilot-0.35.2/workpilot/security/ssrf.py +0 -319
  267. workpilot-0.35.2/workpilot/security/turn_trust.py +0 -41
  268. {workpilot-0.35.2 → workpilot-0.37.0}/.gitignore +0 -0
  269. {workpilot-0.35.2 → workpilot-0.37.0}/README.md +0 -0
  270. {workpilot-0.35.2 → workpilot-0.37.0}/browser_agent/__init__.py +0 -0
  271. {workpilot-0.35.2 → workpilot-0.37.0}/browser_agent/network.py +0 -0
  272. {workpilot-0.35.2 → workpilot-0.37.0}/browser_agent/proxy.py +0 -0
  273. {workpilot-0.35.2 → workpilot-0.37.0}/browser_agent/runtime.py +0 -0
  274. {workpilot-0.35.2 → workpilot-0.37.0}/docs/agents/subagents.md +0 -0
  275. {workpilot-0.35.2 → workpilot-0.37.0}/docs/automation/heartbeat.md +0 -0
  276. {workpilot-0.35.2 → workpilot-0.37.0}/docs/channels/teams.md +0 -0
  277. {workpilot-0.35.2 → workpilot-0.37.0}/docs/channels/tui.md +0 -0
  278. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/agents.md +0 -0
  279. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/attachments.md +0 -0
  280. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/chat.md +0 -0
  281. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/cloud.md +0 -0
  282. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/config.md +0 -0
  283. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/cron.md +0 -0
  284. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/doctor.md +0 -0
  285. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/logs.md +0 -0
  286. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/mcp.md +0 -0
  287. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/memory.md +0 -0
  288. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/plugins.md +0 -0
  289. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/run.md +0 -0
  290. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/secrets.md +0 -0
  291. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/security.md +0 -0
  292. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/serve.md +0 -0
  293. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/service.md +0 -0
  294. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/sessions.md +0 -0
  295. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/skills.md +0 -0
  296. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/status.md +0 -0
  297. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/teams.md +0 -0
  298. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/tools.md +0 -0
  299. {workpilot-0.35.2 → workpilot-0.37.0}/docs/cli/version.md +0 -0
  300. {workpilot-0.35.2 → workpilot-0.37.0}/docs/configuration/customization.md +0 -0
  301. {workpilot-0.35.2 → workpilot-0.37.0}/docs/configuration/providers.md +0 -0
  302. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/api.md +0 -0
  303. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/cloud-gateway-deployment.md +0 -0
  304. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/documentation.md +0 -0
  305. {workpilot-0.35.2 → workpilot-0.37.0}/docs/contributing/feedback-routing.md +0 -0
  306. {workpilot-0.35.2 → workpilot-0.37.0}/docs/extend/mcp.md +0 -0
  307. {workpilot-0.35.2 → workpilot-0.37.0}/docs/extend/plugins.md +0 -0
  308. {workpilot-0.35.2 → workpilot-0.37.0}/docs/extend/skills.md +0 -0
  309. {workpilot-0.35.2 → workpilot-0.37.0}/docs/feedback.md +0 -0
  310. {workpilot-0.35.2 → workpilot-0.37.0}/docs/gateways/cloud.md +0 -0
  311. {workpilot-0.35.2 → workpilot-0.37.0}/docs/gateways/self-hosting.md +0 -0
  312. {workpilot-0.35.2 → workpilot-0.37.0}/docs/security/audit-and-estop.md +0 -0
  313. {workpilot-0.35.2 → workpilot-0.37.0}/docs/security/authentication.md +0 -0
  314. {workpilot-0.35.2 → workpilot-0.37.0}/docs/security/secrets.md +0 -0
  315. {workpilot-0.35.2 → workpilot-0.37.0}/docs/storage/attachments.md +0 -0
  316. {workpilot-0.35.2 → workpilot-0.37.0}/docs/tools/microsoft-graph.md +0 -0
  317. {workpilot-0.35.2 → workpilot-0.37.0}/docs/tools/web-search.md +0 -0
  318. {workpilot-0.35.2 → workpilot-0.37.0}/hatch_build.py +0 -0
  319. /workpilot-0.35.2/web/dist/app-B5GQoc8V.css → /workpilot-0.37.0/web/dist/app-9Sk3b3Pl.css +0 -0
  320. /workpilot-0.35.2/web/dist/app-BG0MnlsF.css → /workpilot-0.37.0/web/dist/app-B5GQoc8V.css +0 -0
  321. /workpilot-0.35.2/web/dist/app-BMpGkMxz.css → /workpilot-0.37.0/web/dist/app-BCIpmu3M.css +0 -0
  322. /workpilot-0.35.2/web/dist/app-BjBgkMUd.css → /workpilot-0.37.0/web/dist/app-BG0MnlsF.css +0 -0
  323. /workpilot-0.35.2/web/dist/app-BmPNfp5q.css → /workpilot-0.37.0/web/dist/app-BMpGkMxz.css +0 -0
  324. /workpilot-0.35.2/web/dist/app-CBRs0pqs.css → /workpilot-0.37.0/web/dist/app-BiTj5w54.css +0 -0
  325. /workpilot-0.35.2/web/dist/app-CeVx_1Uc.css → /workpilot-0.37.0/web/dist/app-BjBgkMUd.css +0 -0
  326. /workpilot-0.35.2/web/dist/app-Cr6SPxVu.css → /workpilot-0.37.0/web/dist/app-BmPNfp5q.css +0 -0
  327. /workpilot-0.35.2/web/dist/app-CrphASwR.css → /workpilot-0.37.0/web/dist/app-BoA41zjD.css +0 -0
  328. /workpilot-0.35.2/web/dist/app-DnejMwtf.css → /workpilot-0.37.0/web/dist/app-Bwhb2CXy.css +0 -0
  329. /workpilot-0.35.2/web/dist/app-J0wEnVQ9.css → /workpilot-0.37.0/web/dist/app-ByM9P1Eh.css +0 -0
  330. /workpilot-0.35.2/web/dist/app-X0K9ZNVl.css → /workpilot-0.37.0/web/dist/app-CBRs0pqs.css +0 -0
  331. /workpilot-0.35.2/web/dist/app-orwSkC5k.css → /workpilot-0.37.0/web/dist/app-CExcdCxf.css +0 -0
  332. /workpilot-0.35.2/web/dist/app-s3Wdl3G6.css → /workpilot-0.37.0/web/dist/app-CHBQLV_M.css +0 -0
  333. /workpilot-0.35.2/workpilot/agent/__init__.py → /workpilot-0.37.0/web/dist/app-CMxsATC4.css +0 -0
  334. /workpilot-0.35.2/workpilot/agent/cards/__init__.py → /workpilot-0.37.0/web/dist/app-CRehheLC.css +0 -0
  335. /workpilot-0.35.2/workpilot/security/data/__init__.py → /workpilot-0.37.0/web/dist/app-CWtPr-2m.css +0 -0
  336. /workpilot-0.35.2/workpilot/skills/bundled/__init__.py → /workpilot-0.37.0/web/dist/app-Cr6SPxVu.css +0 -0
  337. /workpilot-0.35.2/workpilot/utils/__init__.py → /workpilot-0.37.0/web/dist/app-CrphASwR.css +0 -0
  338. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/auth-callback.html +0 -0
  339. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/BrowserPerformanceMeasurement-BDzbW3oA.js +0 -0
  340. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/_hljs-langs-Dc_1zEsH.js +0 -0
  341. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/dist-0H8Ur5Q4.js +0 -0
  342. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/1c-73lFXAp6.js +0 -0
  343. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/abnf-CSrFSEx0.js +0 -0
  344. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/accesslog-Dv0yWYFF.js +0 -0
  345. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/actionscript-1l-8ymtB.js +0 -0
  346. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ada-C4qX_6Ry.js +0 -0
  347. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/angelscript-KNgW1fZo.js +0 -0
  348. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/apache-Dh9PJFmJ.js +0 -0
  349. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/applescript-BcBB30ub.js +0 -0
  350. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/arcade-bShcHfOZ.js +0 -0
  351. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/arduino-BqwItFkb.js +0 -0
  352. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/armasm-D3oKByup.js +0 -0
  353. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/asciidoc-Qa3iLJWP.js +0 -0
  354. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/aspectj-Bjg1FiVd.js +0 -0
  355. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/autohotkey-BW462adD.js +0 -0
  356. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/autoit-DwUuKi_Q.js +0 -0
  357. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/avrasm-CHTJ6C4a.js +0 -0
  358. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/awk-D463B8d-.js +0 -0
  359. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/axapta-p7Fa3A78.js +0 -0
  360. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/basic-oUUdvLrs.js +0 -0
  361. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/bnf-CWGByNpv.js +0 -0
  362. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/brainfuck-CkSV9Luo.js +0 -0
  363. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/cal-DTzUSEH8.js +0 -0
  364. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/capnproto-DvbP7u24.js +0 -0
  365. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ceylon-dTiwAriW.js +0 -0
  366. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/clean-zdpkyKaR.js +0 -0
  367. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/clojure-CR7dvLJ4.js +0 -0
  368. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/clojure-repl-aHBM9jLK.js +0 -0
  369. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/cmake-CgP6gB4W.js +0 -0
  370. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/coffeescript-p0dfWXuO.js +0 -0
  371. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/coq-rqf_V7Lc.js +0 -0
  372. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/cos-PigSugnL.js +0 -0
  373. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/crmsh-CR9tZ93c.js +0 -0
  374. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/crystal-DyGSoxxU.js +0 -0
  375. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/csp-Bfnlcs7r.js +0 -0
  376. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/d-CXnZM-Nf.js +0 -0
  377. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dart-Do_01MLp.js +0 -0
  378. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/delphi-BzWcX1gm.js +0 -0
  379. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/django-Dxj7e8BX.js +0 -0
  380. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dns-Dz97dZh0.js +0 -0
  381. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dockerfile-C0zufGsU.js +0 -0
  382. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dos-DfZf_1de.js +0 -0
  383. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dsconfig-BQvSqJrQ.js +0 -0
  384. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dts-D-4KA1m9.js +0 -0
  385. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/dust-BCRbq8jp.js +0 -0
  386. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ebnf-BmerogBf.js +0 -0
  387. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/elixir-DXIHlGsR.js +0 -0
  388. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/elm-BOkolQqs.js +0 -0
  389. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/erb-DptdJbGO.js +0 -0
  390. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/erlang-BjYI8dhz.js +0 -0
  391. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/erlang-repl-LZCIum1w.js +0 -0
  392. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/excel-BI2r-hyN.js +0 -0
  393. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/fix-BSf_7YOu.js +0 -0
  394. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/flix-DOTrSD3H.js +0 -0
  395. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/fortran-tuAJdZsI.js +0 -0
  396. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/freedesktop-D80i-mP2.js +0 -0
  397. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/fsharp-CvvkikEj.js +0 -0
  398. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gams-CEFdYGQ4.js +0 -0
  399. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gauss-Cu9sx8W2.js +0 -0
  400. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gcode-DVi5cKOT.js +0 -0
  401. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gherkin-BXFuf_vg.js +0 -0
  402. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/glsl-Boj4HSji.js +0 -0
  403. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gml-5I1j5qRd.js +0 -0
  404. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/golo-CR1Ogma7.js +0 -0
  405. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/gradle-DeCngaqu.js +0 -0
  406. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/groovy-DaJmaWG6.js +0 -0
  407. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/haml-lM-YLvZH.js +0 -0
  408. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/handlebars-DJqXWVRL.js +0 -0
  409. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/haskell-DUkhXIda.js +0 -0
  410. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/haxe-qGz9CBa_.js +0 -0
  411. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/hsp-DJFrA4nv.js +0 -0
  412. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/http-DdjbPXam.js +0 -0
  413. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/hy-jK6vAkqq.js +0 -0
  414. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/inform7-C3EegiWg.js +0 -0
  415. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/irpf90-Wu2ux-Fn.js +0 -0
  416. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/isbl-D8SR3GGH.js +0 -0
  417. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/jboss-cli-CSRnPoYO.js +0 -0
  418. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/julia-C_UcIgej.js +0 -0
  419. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/julia-repl-Hj_vmM07.js +0 -0
  420. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/kotlin-DgSK8bu-.js +0 -0
  421. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/lasso-3ymKbqSp.js +0 -0
  422. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/latex-ifxXhTOO.js +0 -0
  423. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ldif-Dg6dmf5K.js +0 -0
  424. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/leaf-7ZZ5wCnn.js +0 -0
  425. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/less-Bp0mgmpG.js +0 -0
  426. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/lisp-RAPfxQzG.js +0 -0
  427. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/livecodeserver-C_mGJ3Jy.js +0 -0
  428. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/livescript-ClNaFHRt.js +0 -0
  429. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/llvm-OW2Pjs3T.js +0 -0
  430. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/lsl-DGokiC3s.js +0 -0
  431. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/lua-1dXYaL-H.js +0 -0
  432. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/makefile-BX-o3EIz.js +0 -0
  433. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mathematica-FGVCSpsQ.js +0 -0
  434. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/matlab-DkTKhn5C.js +0 -0
  435. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/maxima-DqHi-6vF.js +0 -0
  436. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mel-DZJEcL8n.js +0 -0
  437. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mercury-DRbqW1u4.js +0 -0
  438. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mipsasm-CElFSg8P.js +0 -0
  439. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mizar-Dh71fdD_.js +0 -0
  440. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/mojolicious-tYyfRjr6.js +0 -0
  441. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/monkey-BCEr2jAI.js +0 -0
  442. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/moonscript-BGRQnnF2.js +0 -0
  443. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/n1ql-BLbzjUaV.js +0 -0
  444. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/nestedtext-DGs-X5Vp.js +0 -0
  445. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/nginx-B1pH5dXO.js +0 -0
  446. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/nim-BGBfXPIx.js +0 -0
  447. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/nix-CR3yefiA.js +0 -0
  448. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/node-repl-Vgr6fxPS.js +0 -0
  449. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/nsis-UYRebJNT.js +0 -0
  450. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/objectivec-DLXDdhyK.js +0 -0
  451. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ocaml-B-P1Uyq8.js +0 -0
  452. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/openscad-JVA7wRWo.js +0 -0
  453. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/oxygene-upDuL0ca.js +0 -0
  454. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/parser3-BpsPHbGc.js +0 -0
  455. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/perl-CvqMZYuf.js +0 -0
  456. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/pf-Hak9sRVf.js +0 -0
  457. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/pgsql-BJ2OcN8V.js +0 -0
  458. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/php-DuZl5e-L.js +0 -0
  459. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/php-template-8u8Pml-P.js +0 -0
  460. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/pony-CpMp0mBm.js +0 -0
  461. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/processing-BD9AMQkN.js +0 -0
  462. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/profile-BWVYCPTK.js +0 -0
  463. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/prolog-CpiLaDrO.js +0 -0
  464. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/properties-C_5_0OWv.js +0 -0
  465. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/protobuf-DGOW1qT8.js +0 -0
  466. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/puppet-DEWZKVv3.js +0 -0
  467. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/purebasic-CRcZGluc.js +0 -0
  468. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/python-repl-D5uGO-jm.js +0 -0
  469. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/q-B3koHNzP.js +0 -0
  470. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/qml-CjhsRFLe.js +0 -0
  471. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/r-DNWPCnjT.js +0 -0
  472. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/reasonml-CJ1TLoQF.js +0 -0
  473. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/rib-hKzGh-52.js +0 -0
  474. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/roboconf-CaM3tfvi.js +0 -0
  475. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/routeros-iLCLl-5n.js +0 -0
  476. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/rsl-Da8STgqx.js +0 -0
  477. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ruby-BGpZ3p4_.js +0 -0
  478. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/ruleslanguage-ZpNubZZ_.js +0 -0
  479. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/sas-DEdPwm2c.js +0 -0
  480. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/scala-C9lP4FWY.js +0 -0
  481. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/scheme-BXgVOBG5.js +0 -0
  482. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/scilab-B4bepPhE.js +0 -0
  483. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/scss-gOyOKiXd.js +0 -0
  484. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/smali--7SxcPXF.js +0 -0
  485. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/smalltalk-DSQwiuj1.js +0 -0
  486. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/sml-Bqj0DVIt.js +0 -0
  487. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/sqf-BaWmPklZ.js +0 -0
  488. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/stan-aGu1RaYf.js +0 -0
  489. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/stata-BakFZ2ml.js +0 -0
  490. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/step21-1CIrbR2Q.js +0 -0
  491. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/stylus-ueqB8vk5.js +0 -0
  492. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/subunit-DV7smCjo.js +0 -0
  493. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/swift-BTn9__hL.js +0 -0
  494. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/taggerscript-YlWmQdSJ.js +0 -0
  495. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/tap-NqH9ctA4.js +0 -0
  496. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/tcl-CiO3JXx7.js +0 -0
  497. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/thrift-DO8eeo3I.js +0 -0
  498. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/tp-BkW-mzl-.js +0 -0
  499. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/twig-CP1rWjpH.js +0 -0
  500. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vala-wv2tBZQi.js +0 -0
  501. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vbnet-BiMsFFN_.js +0 -0
  502. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vbscript-BahAjTwm.js +0 -0
  503. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vbscript-html-DQKGwi3G.js +0 -0
  504. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/verilog-Ke-GOEW9.js +0 -0
  505. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vhdl-CaU6e6N4.js +0 -0
  506. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/vim-Dhhcn_CA.js +0 -0
  507. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/wasm-hBR4I1od.js +0 -0
  508. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/wren-B1F_0bnw.js +0 -0
  509. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/x86asm-p0pDTEuW.js +0 -0
  510. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/xl-xylFSQAW.js +0 -0
  511. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/xquery-Dr9rmg8t.js +0 -0
  512. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs/zephir-CJH3ep_3.js +0 -0
  513. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/hljs-CLaOA3Zl.js +0 -0
  514. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/marked.esm-D7dwggTa.js +0 -0
  515. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/rolldown-runtime-hePW80VL.js +0 -0
  516. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/chunks/vendor-react-Dn9Luu3B.js +0 -0
  517. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/logo.svg +0 -0
  518. {workpilot-0.35.2 → workpilot-0.37.0}/web/dist/msal-redirect-bridge.min.js +0 -0
  519. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/__init__.py +0 -0
  520. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/__main__.py +0 -0
  521. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/bridge_claude.py +0 -0
  522. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/browser_runtime.py +0 -0
  523. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/cards/builders.py +0 -0
  524. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/cards/chip_strategy.py +0 -0
  525. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/cards/status.py +0 -0
  526. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/cards/types.py +0 -0
  527. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/clarify_match.py +0 -0
  528. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/clarify_render.py +0 -0
  529. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/code_mode/__init__.py +0 -0
  530. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/interactive_router.py +0 -0
  531. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/interrupt.py +0 -0
  532. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/loop_detect.py +0 -0
  533. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/mid_run.py +0 -0
  534. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/output_parser.py +0 -0
  535. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/reminders.py +0 -0
  536. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tool_scope.py +0 -0
  537. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/__init__.py +0 -0
  538. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/_browser_emulation.py +0 -0
  539. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/_delegate_notify.py +0 -0
  540. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/_shared.py +0 -0
  541. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/base.py +0 -0
  542. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/bridge.py +0 -0
  543. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/clarify.py +0 -0
  544. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/coding_task.py +0 -0
  545. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/concurrency.py +0 -0
  546. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/defer_delivery.py +0 -0
  547. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/filesystem.py +0 -0
  548. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/notify.py +0 -0
  549. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/search_history.py +0 -0
  550. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/search_workpilot_docs.py +0 -0
  551. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/spawn.py +0 -0
  552. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/task_status.py +0 -0
  553. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/tools.py +0 -0
  554. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/tools/update.py +0 -0
  555. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/truncation.py +0 -0
  556. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agent/typing.py +0 -0
  557. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/__init__.py +0 -0
  558. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/builtin.py +0 -0
  559. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/bundled/FileSearch.md +0 -0
  560. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/bundled/HistorySession.md +0 -0
  561. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/bundled/WorkPilotSupport.md +0 -0
  562. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/github.py +0 -0
  563. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/loader.py +0 -0
  564. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/shortener.py +0 -0
  565. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/agents/tool_categories.py +0 -0
  566. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/bus/__init__.py +0 -0
  567. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/bus/queue.py +0 -0
  568. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/bus/streaming.py +0 -0
  569. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/__init__.py +0 -0
  570. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/_cloud_allowlist.py +0 -0
  571. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/_cloud_throttle.py +0 -0
  572. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/base.py +0 -0
  573. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/cli.py +0 -0
  574. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/conv_ref_store.py +0 -0
  575. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/channels/web.py +0 -0
  576. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/__init__.py +0 -0
  577. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/agents.py +0 -0
  578. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/attachments.py +0 -0
  579. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/browser.py +0 -0
  580. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/chat.py +0 -0
  581. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/doctor.py +0 -0
  582. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/mcp.py +0 -0
  583. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/mcp_setup.py +0 -0
  584. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/memory.py +0 -0
  585. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/msgraph.py +0 -0
  586. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/plugins.py +0 -0
  587. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/prompts.py +0 -0
  588. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/security.py +0 -0
  589. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/serve.py +0 -0
  590. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/service.py +0 -0
  591. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/skills.py +0 -0
  592. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/teams.py +0 -0
  593. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cli/tools.py +0 -0
  594. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/config/__init__.py +0 -0
  595. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/config/action_plan.py +0 -0
  596. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/__init__.py +0 -0
  597. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/crontab_compat.py +0 -0
  598. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/misfire.py +0 -0
  599. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/cron/tz_migration.py +0 -0
  600. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/AGENTS.md +0 -0
  601. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/COMPACTION.md +0 -0
  602. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/GROUPING.md +0 -0
  603. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/HEARTBEAT.md +0 -0
  604. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/MEMORY.md +0 -0
  605. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/MERGE_SUMMARY.md +0 -0
  606. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/RESPONSE.md +0 -0
  607. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/SOUL.md +0 -0
  608. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/TOOLS.md +0 -0
  609. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/USER.md +0 -0
  610. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/_CONSOLIDATION.md +0 -0
  611. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/_RECOMPRESSION.md +0 -0
  612. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/_SECURITY.md +0 -0
  613. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/defaults/__init__.py +0 -0
  614. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/desktop/__init__.py +0 -0
  615. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/desktop/backend.py +0 -0
  616. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/__init__.py +0 -0
  617. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/adapter.py +0 -0
  618. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/auth.py +0 -0
  619. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/client.py +0 -0
  620. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/defaults.py +0 -0
  621. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/health.py +0 -0
  622. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/manager.py +0 -0
  623. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/oauth_callback.py +0 -0
  624. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/oauth_provider.py +0 -0
  625. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/oauth_storage.py +0 -0
  626. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/protocol.py +0 -0
  627. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/store.py +0 -0
  628. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/transport.py +0 -0
  629. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/mcp/types.py +0 -0
  630. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/plugins/__init__.py +0 -0
  631. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/plugins/store.py +0 -0
  632. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/product_docs/__init__.py +0 -0
  633. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/product_docs/__main__.py +0 -0
  634. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/product_docs/corpus.py +0 -0
  635. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/__init__.py +0 -0
  636. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/base.py +0 -0
  637. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/copilot_web_search.py +0 -0
  638. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/reasoning.py +0 -0
  639. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/resolver.py +0 -0
  640. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/providers/usage.py +0 -0
  641. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/runtime_status.py +0 -0
  642. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/__init__.py +0 -0
  643. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/allowlist.py +0 -0
  644. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/allowlist_presets.py +0 -0
  645. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/attachments.py +0 -0
  646. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/audit.py +0 -0
  647. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/binary_frame.py +0 -0
  648. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/clarify.py +0 -0
  649. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/data/url_classify.json +0 -0
  650. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/destructive.py +0 -0
  651. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/estop.py +0 -0
  652. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/execution_directories.py +0 -0
  653. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/github_auth.py +0 -0
  654. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/leak.py +0 -0
  655. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/migrate.py +0 -0
  656. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/relay_validator.py +0 -0
  657. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/sanitizer.py +0 -0
  658. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/secrets.py +0 -0
  659. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/secrets_env.py +0 -0
  660. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/secrets_fernet.py +0 -0
  661. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/secrets_keyring.py +0 -0
  662. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/self_governance.py +0 -0
  663. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/sensitive.py +0 -0
  664. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/short_id.py +0 -0
  665. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/task_approval.py +0 -0
  666. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/security/zw_id.py +0 -0
  667. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/__init__.py +0 -0
  668. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/linux.py +0 -0
  669. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/macos.py +0 -0
  670. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/manager.py +0 -0
  671. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/models.py +0 -0
  672. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/native.py +0 -0
  673. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/service/windows.py +0 -0
  674. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/session/__init__.py +0 -0
  675. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/session/artifacts.py +0 -0
  676. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/__init__.py +0 -0
  677. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/ado.md +0 -0
  678. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/azure-ops.md +0 -0
  679. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/calendar-lookup.md +0 -0
  680. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/cloud-apply.md +0 -0
  681. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/docx.md +0 -0
  682. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/github.md +0 -0
  683. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/SKILL.md +0 -0
  684. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/calendar.md +0 -0
  685. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/files.md +0 -0
  686. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/mail.md +0 -0
  687. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/people.md +0 -0
  688. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/productivity.md +0 -0
  689. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/msgraph-api/references/teams.md +0 -0
  690. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/pptx.md +0 -0
  691. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/read-remote-document.md +0 -0
  692. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/sharepoint-pptx.md +0 -0
  693. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/teams-message/SKILL.md +0 -0
  694. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/teams-message/references/advanced.md +0 -0
  695. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/teams-message/references/targets.md +0 -0
  696. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/bundled/xlsx.md +0 -0
  697. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/shortener.py +0 -0
  698. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/store.py +0 -0
  699. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/skills/universal.py +0 -0
  700. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/auth.py +0 -0
  701. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/cloud_verify.py +0 -0
  702. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/devbox_keepalive.py +0 -0
  703. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/frozen_runtime.py +0 -0
  704. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/helpers.py +0 -0
  705. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/html.py +0 -0
  706. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/identity.py +0 -0
  707. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/input.py +0 -0
  708. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/json_truncate.py +0 -0
  709. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/llm_shortener.py +0 -0
  710. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/log_context.py +0 -0
  711. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/logging.py +0 -0
  712. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/markdown_frontmatter.py +0 -0
  713. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/msgraph_scopes.py +0 -0
  714. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/msgraph_token.py +0 -0
  715. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/package_index.py +0 -0
  716. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/playwright_node.py +0 -0
  717. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/sleep_inhibitor.py +0 -0
  718. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/token_errors.py +0 -0
  719. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/update.py +0 -0
  720. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/utils/wam_token.py +0 -0
  721. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/__init__.py +0 -0
  722. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/estop_middleware.py +0 -0
  723. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/_common.py +0 -0
  724. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/admin.py +0 -0
  725. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/config.py +0 -0
  726. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/mcp_connections.py +0 -0
  727. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/mcp_store.py +0 -0
  728. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/memory.py +0 -0
  729. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/models.py +0 -0
  730. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/plugins_store.py +0 -0
  731. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/prompts.py +0 -0
  732. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/skills.py +0 -0
  733. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/skills_store.py +0 -0
  734. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/status.py +0 -0
  735. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/telemetry.py +0 -0
  736. {workpilot-0.35.2 → workpilot-0.37.0}/workpilot/web/handlers/tools.py +0 -0
  737. {workpilot-0.35.2 → workpilot-0.37.0}/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.37.0
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/
@@ -12,7 +12,7 @@ Requires-Dist: apscheduler>=3.11
12
12
  Requires-Dist: beautifulsoup4>=4.14
13
13
  Requires-Dist: fastapi>=0.135
14
14
  Requires-Dist: filelock>=3.32.5
15
- Requires-Dist: github-copilot-sdk>=1.0
15
+ Requires-Dist: github-copilot-sdk<2,>=1.0.16
16
16
  Requires-Dist: httptools>=0.8.0
17
17
  Requires-Dist: httpx2>=2.12.0
18
18
  Requires-Dist: jsonschema>=4.20
@@ -22,13 +22,14 @@ Requires-Dist: markdownify>=1.2
22
22
  Requires-Dist: mcp<3,>=2.1.1
23
23
  Requires-Dist: msal>=1.35.1; sys_platform == 'linux' and platform_machine == 'aarch64'
24
24
  Requires-Dist: msal[broker]>=1.35.1; sys_platform != 'linux' or platform_machine != 'aarch64'
25
- Requires-Dist: playwright>=1.58
25
+ Requires-Dist: playwright>=1.59
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
@@ -38,11 +38,15 @@ class BrowserLocator(BaseModel):
38
38
  by: Literal["css", "role", "label", "text", "test_id"]
39
39
  value: str = Field(min_length=1, max_length=300)
40
40
  name: str | None = Field(default=None, max_length=300)
41
+ exact: bool = False
42
+ nth: int | None = Field(default=None, ge=0)
41
43
 
42
44
  @model_validator(mode="after")
43
45
  def compatible_name(self) -> Self:
44
46
  if self.by != "role" and "name" in self.model_fields_set:
45
47
  raise ValueError("only role locators accept a name")
48
+ if self.by not in {"role", "label", "text"} and "exact" in self.model_fields_set:
49
+ raise ValueError("only role, label and text locators accept exact")
46
50
  return self
47
51
 
48
52
 
@@ -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
@@ -19,6 +32,7 @@ From the `you>` prompt:
19
32
  ```text
20
33
  /bridge claude # bridge to Claude Code
21
34
  /bridge copilot # bridge to the GitHub Copilot CLI
35
+ /bridge copilot --fresh # create a distinct native conversation, even while bridged
22
36
  /bridge off # exit bridge mode, return to the normal agent loop
23
37
  ```
24
38
 
@@ -42,19 +56,47 @@ itself or session-level behavior rather than the underlying tool:
42
56
  - `/reset` — reset E-stop
43
57
  - `/exit`, `/quit`, or `/bye` — aliases for `/bridge off`
44
58
 
59
+ ## Copilot conversation and output
60
+
61
+ `/bridge copilot resume=<id>` resumes a specific native conversation. Ordinary re-entry
62
+ can resume the last conversation from the Bridge transcript. A fresh entry creates a
63
+ unique native ID without deleting previous history. WorkPilot starts fresh automatically
64
+ only when native metadata confirms the requested history is missing, not when discovery
65
+ or resume fails.
66
+
67
+ `/model <name>` switches the live native model while preserving history. `/model default`
68
+ clears WorkPilot's pin but leaves a live or resumed Copilot conversation on its current
69
+ native selection. Use a fresh, unpinned conversation to select the CLI default.
70
+ Unavailable discovery is shown explicitly; static model suggestions are not claims of
71
+ current availability.
72
+
73
+ Streaming surfaces receive ordered, credential-redacted root assistant text. Subagent
74
+ output, reasoning, and raw tool arguments are not forwarded. Every turn still has an
75
+ authoritative final response; Teams receives only that buffered response.
76
+
77
+ Cancelling a Copilot turn requests native `abort()` before finishing local cleanup.
78
+ `/bg` leaves the active Copilot turn running and keeps its conversation reserved until
79
+ completion; resume that conversation after it finishes. E-stop and shutdown also cancel
80
+ detached Bridge turns. Runtime shutdown closes discovery-only SDK clients as well.
81
+ If native abort fails, WorkPilot reports that work may still be running and retains the
82
+ conversation reservation until a confirmed stop or runtime shutdown.
83
+
45
84
  ## Requirements
46
85
 
47
86
  - **Claude Code bridge**: requires WorkPilot installed with the optional `all` extra — see
48
87
  [Install](../getting-started/install.md) and [Claude Code tasks](claude-code.md).
49
- - **Copilot bridge**: requires a GitHub Copilot subscription and a configured GitHub token — see [Copilot tasks](../agents/github-copilot.md).
88
+ - **Copilot bridge**: requires a GitHub Copilot subscription and native GitHub authentication
89
+ or a configured token — see [Copilot tasks](github-copilot.md).
50
90
 
51
91
  ## Security
52
92
 
53
93
  Entering Bridge mode is itself risk-gated and audited. While bridged, WorkPilot's normal
54
94
  tool registry and per-tool approval pipeline are not orchestrating the external CLI; the
55
- bridge integration instead bypasses Claude permission prompts and automatically approves
56
- Copilot permission requests. Treat the risk approval for entering Bridge mode as authorization
57
- for the bridged CLI to use its tools without further WorkPilot or external per-tool prompts.
95
+ bridge integration instead bypasses Claude permission prompts and approves ordinary unresolved
96
+ Copilot permission requests. Native Copilot rules still apply, and enterprise-managed
97
+ requests requiring human approval are never auto-approved. Treat the risk approval for
98
+ entering Bridge mode as authorization for ordinary native tool use, not a bypass of
99
+ managed policy.
58
100
  WorkPilot still enforces channel authentication, credential redaction, outbound safety hooks,
59
101
  and E-stop. Session history records the bridge timeline, while the per-turn audit event stores
60
102
  metadata and a prompt hash rather than the prompt body. See
@@ -16,7 +16,7 @@ workpilot_search:
16
16
 
17
17
  > [中文版](../zh-cn/agents/claude-code.md)
18
18
 
19
- WorkPilot can delegate coding tasks to Claude Code using the `claude_code` tool family. This lets the agent run code, review, test, research, and refactor tasks in the background using Anthropic's Claude models via the Claude Agent SDK.
19
+ WorkPilot can delegate coding tasks to Claude Code using the `claude_code` tool. This lets the agent run code, review, test, research, and refactor tasks in the background using Anthropic's Claude models via the Claude Agent SDK.
20
20
 
21
21
  ::: tip Ask WorkPilot
22
22
  ```text
@@ -39,7 +39,7 @@ available before WorkPilot can delegate.
39
39
  - Claude Code enabled in config (`tools.claude_code.enabled: true`, the default)
40
40
 
41
41
  This is the **only** part of WorkPilot gated behind an optional install extra — the base
42
- install works without it. The `claude_code` tools register only when both the SDK and CLI
42
+ install works without it. The `claude_code` tool registers only when both the SDK and CLI
43
43
  binary are available.
44
44
 
45
45
  ## How it works
@@ -60,11 +60,13 @@ failed, preserving any partial result that was already received.
60
60
 
61
61
  ### claude_code
62
62
 
63
- Submits a task to Claude Code.
63
+ Submits tasks and checks their status. Omit `action` to submit a task.
64
64
 
65
65
  | Parameter | Type | Description |
66
66
  |-----------|------|-------------|
67
- | `task` | string | Description of what to do |
67
+ | `action` | string | `submit` (default) or `status` (read-only) |
68
+ | `task_id` | string | For `status`: task ID to check; omit to list all tasks |
69
+ | `task` | string | Description of what to do; required only for `submit` |
68
70
  | `task_type` | string | `code` (default), `review`, `test`, `refactor`, or `research` |
69
71
  | `files` | list | Files relevant to the task (optional) |
70
72
  | `mode` | string | `background` (default) or `wait` |
@@ -78,13 +80,15 @@ Submits a task to Claude Code.
78
80
  | `agent` | string | Claude sub-agent name to invoke |
79
81
  | `effort` | string | Reasoning effort override |
80
82
 
81
- ### claude_code_status
83
+ ### Status queries
82
84
 
83
- Check the status of a running or completed task.
85
+ Use `claude_code(action="status", task_id="...")` to check a running or completed task.
86
+ Omit `task_id` to list all tasks. Status queries need no `task` description, score 0, and
87
+ do not require approval.
84
88
 
85
- | Parameter | Type | Description |
86
- |-----------|------|-------------|
87
- | `task_id` | string | Task ID to check (optional — lists all tasks if omitted) |
89
+ The separate `claude_code_status` tool is no longer registered. Update old calls and
90
+ tool-name configuration references explicitly; status-only permissions are not
91
+ automatically widened to allow task submission.
88
92
 
89
93
  ## Task types
90
94
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > [中文版](../zh-cn/agents/github-copilot.md)
4
4
 
5
- WorkPilot can delegate coding tasks to GitHub Copilot using the `github_copilot` tool family. This lets the agent run code, review, test, and refactor tasks in the background while you continue working.
5
+ WorkPilot can delegate coding tasks to GitHub Copilot using the `github_copilot` tool. This lets the agent run code, review, test, and refactor tasks in the background while you continue working.
6
6
 
7
7
  These are **local CLI/SDK tasks**, not GitHub-hosted cloud-agent tasks. For Issue
8
8
  triage, cloud agents, and delivery tracking, see
@@ -26,6 +26,8 @@ WorkPilot cannot create the subscription or enter credentials for you.
26
26
 
27
27
  - A GitHub Copilot subscription
28
28
  - GitHub authentication through a configured token or `gh auth login`
29
+ - WorkPilot's supported `github-copilot-sdk>=1.0.16,<2` dependency; the SDK provisions
30
+ its local runtime unless `tools.copilot.cli_path` selects an installed CLI
29
31
 
30
32
  ## How it works
31
33
 
@@ -34,36 +36,51 @@ When you ask WorkPilot to implement a feature, write tests, or review code, it c
34
36
  Tasks can run in the background (you get a task ID and check back later) or in wait mode.
35
37
  Wait mode has a soft cap (`tools.copilot.wait_timeout`, default 900 seconds); after the cap,
36
38
  the Copilot session continues in the background and delivers its result later.
39
+ Interrupting the WorkPilot waiter also detaches it; E-stop, runtime shutdown, and the
40
+ hard task timeout request native cancellation instead. `task_timeout: 0` retains a
41
+ one-hour hard cap, including time spent sending the request.
37
42
 
38
43
  ## Tool reference
39
44
 
40
45
  ### github_copilot
41
46
 
42
- Submits a task to GitHub Copilot.
47
+ One tool supports three actions. `submit` is the default when `action` is omitted;
48
+ `status` and `models` are read-only queries and do not require a task description.
43
49
 
44
50
  | Parameter | Type | Description |
45
51
  |-----------|------|-------------|
46
- | `task` | string | Description of what to do |
52
+ | `action` | string | `submit` (default), `status`, or `models` |
53
+ | `task_id` | string | For `status`: task to inspect; omit to list live and historical tasks |
54
+ | `task` | string | Required for `submit`: description of what to do |
47
55
  | `task_type` | string | `code`, `review`, `test`, or `refactor` |
48
56
  | `files` | list | Files relevant to the task (optional) |
49
57
  | `workdir` | string | Working directory override; paths outside the workspace raise risk |
50
58
  | `mode` | string | `background` (default) or `wait` |
51
59
  | `model` | string | Model to use (optional, defaults to per-type policy) |
52
60
  | `resume_task_id` | string | Resume a previous task (optional) |
53
- | `agent` | string | Copilot custom-agent name |
61
+ | `agent` | string | Copilot custom-agent name, passed through the SDK's native agent option |
54
62
  | `auto_approve` | bool/null | Per-task preference for unresolved grey-area tool requests; it can tighten, never loosen, operator configuration |
55
63
 
56
- ### github_copilot_status
64
+ ### Check status
57
65
 
58
- Check the status of a running or completed task.
66
+ Use `github_copilot(action="status", task_id="...")` to inspect a task, or omit
67
+ `task_id` to list tasks. Output includes the WorkPilot task ID, native Copilot session
68
+ ID, working directory, and known run state. After a restart, a saved binding is
69
+ labelled historical rather than reported as an actively monitored run.
59
70
 
60
- | Parameter | Type | Description |
61
- |-----------|------|-------------|
62
- | `task_id` | string | Task ID to check (optional — lists all tasks if omitted) |
71
+ ### List models
63
72
 
64
- ### github_copilot_models
73
+ Use `github_copilot(action="models")` to list models available to the current
74
+ authentication, with context/prompt limits and billing multipliers. Discovery errors
75
+ are reported explicitly rather than disguised as an empty list.
65
76
 
66
- Lists available GitHub Copilot models and their context limits. No parameters required.
77
+ ### Old tool names
78
+
79
+ `github_copilot_status` and `github_copilot_models` are removed. Replace calls with the
80
+ corresponding actions. Existing configuration references are automatically normalized
81
+ to `github_copilot` with a deprecation warning, using the standard tool-name alias
82
+ mechanism. Configuration applies to the unified tool; submission and query actions
83
+ keep their existing risk and approval rules.
67
84
 
68
85
  ## Task types
69
86
 
@@ -83,6 +100,10 @@ Lists available GitHub Copilot models and their context limits. No parameters re
83
100
  | test | claude-haiku-4.5 |
84
101
  | refactor | claude-sonnet-4.6 |
85
102
 
103
+ An explicit `model` overrides this policy. An unset per-type policy leaves model
104
+ selection to the native CLI; resuming an unpinned conversation preserves its native
105
+ selection.
106
+
86
107
  ## Examples
87
108
 
88
109
  ```text
@@ -98,6 +119,22 @@ WorkPilot decides whether to use `github_copilot` based on the task, unless you
98
119
  ## Concurrent tasks
99
120
 
100
121
  Up to 5 Copilot tasks can run concurrently by default. Additional requests queue until a slot is available.
122
+ Different native conversations can run in parallel, but an active or detached task
123
+ retains its conversation until completion or confirmed cancellation. A competing
124
+ continuation or Bridge attachment is rejected instead of replacing its live handle.
125
+ Status and model queries do not consume delegation slots.
126
+
127
+ ## Continue a task
128
+
129
+ Use `resume_task_id` with a previous WorkPilot task ID. Each continuation has a new
130
+ task ID but keeps the actual native Copilot conversation ID, including when continuing
131
+ a continuation. WorkPilot saves these bindings and their working directories locally;
132
+ Copilot retains the conversation history.
133
+
134
+ When no `files` or `workdir` is supplied, continuation inherits the saved directory
135
+ before risk assessment. For older tasks with no saved binding, query status to recover
136
+ native metadata or supply an explicit directory. WorkPilot does not guess the workspace
137
+ after a restart, automatically replay old tasks, or restore their live notifications.
101
138
 
102
139
  ## Permission-request safety
103
140
 
@@ -106,6 +143,9 @@ native `~/.copilot/` allow/deny rules and other native configuration. WorkPilot
106
143
  the unresolved grey-area requests. For those requests, a per-task `false` can tighten a
107
144
  permissive `tools.copilot.hooks.auto_approve` setting to deny; a per-task `true` can never loosen
108
145
  an operator setting of `false`.
146
+ Native tool exclusions remain effective on create and resume. Enterprise-managed
147
+ requests requiring human approval are not automatically approved; this integration
148
+ reports that human confirmation is unavailable.
109
149
 
110
150
  ## Configuration
111
151
 
@@ -133,6 +173,9 @@ tools:
133
173
  enabled: false
134
174
  ```
135
175
 
176
+ This disables delegation, not [Bridge mode](bridge-mode.md). Root delegation,
177
+ Bridge, and discovery share one lazy SDK runtime; their policies remain separate.
178
+
136
179
  ## See also
137
180
 
138
181
  - [Claude Code tasks](claude-code.md) — delegate tasks to Claude Code (Anthropic Agent SDK) instead
@@ -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,254 @@
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. Create/link the follow-up task before enabling its listener and the Event plan. Enabling does
53
+ not check immediately or replay cached observations; use **Check now** for an explicit
54
+ production check. Verify history rather than inferring execution from a successful save.
55
+
56
+ ### Events in the Web UI
57
+
58
+ Events configuration and management entry points are temporarily hidden throughout the Web UI:
59
+ navigation, command palette, Event pages, Scheduled condition controls, and configuration editors.
60
+ Old Event page URLs return to Chat. Existing definitions, task conditions, runtime behavior, and
61
+ HTTP/tool APIs are unchanged. Scheduled details retain read-only check evidence without Event
62
+ management links, and editing a task preserves its saved conditions. Chat and Security approval
63
+ cards remain available for explicit human authorization.
64
+
65
+ Use the conversational tools for Event changes and operator-managed configuration files for
66
+ capability setup. `test` uses real tools but does not trigger tasks; `run` can trigger enabled linked
67
+ tasks. Once accepted, the host owns the check: closing the client or losing the connection does
68
+ not cancel it. The same request ID resolves to the same retained run; reconnect queries it
69
+ instead of automatically resubmitting. A host restart marks unfinished checks interrupted,
70
+ without replay. Request lookup is bounded by check-history retention.
71
+ HTTP request IDs must be 1-128 characters forming one URL path segment, excluding `/`, `.` and `..`.
72
+ An empty approval `changes` object is equivalent to omitting it and still requires explicit authorization.
73
+
74
+ ## Author a fixed checker
75
+
76
+ Use `async def main(context)` for tool calls or `def main(context)` for computation. The runtime
77
+ invokes it in a fresh code-mode sandbox. The checker engine needs no model; tools may use one.
78
+ Read-only queries are recommended, not enforced: other granted tools are eligible. Checkers cannot
79
+ call `agent`, `spawn`, or `run_code`, directly or through `call_tool`. They can inspect cron tasks
80
+ but cannot add, enable, or run them; task actions are separate.
81
+ A tool-free comparison, with `actual` and `expected` supplied in `params`, is:
82
+
83
+ ```python
84
+ def main(context):
85
+ return context["params"]["actual"] == context["params"]["expected"]
86
+ ```
87
+
88
+ Example disabled `create` payload (not a YAML import file); discover `read_file` first:
89
+
90
+ ```yaml
91
+ id: build-ready
92
+ description: Check whether the build has completed
93
+ enabled: false
94
+ params: {path: build-status.txt}
95
+ pre_trigger: {schedule: 60}
96
+ code: |
97
+ async def main(context):
98
+ text = await read_file(path=context["params"]["path"])
99
+ print(text[:1000])
100
+ complete = "status=complete" in text
101
+ running = "status=running" in text
102
+ if complete == running:
103
+ raise ValueError("Expected one recognized build status")
104
+ return complete
105
+ ```
106
+
107
+ `timeout_seconds` defaults to 60. Use optional `expires_at` for bounded monitoring.
108
+ Keep credentials in existing tool configuration, not code, params, or printed details.
109
+
110
+ Prefer booleans on successful paths. Python truthiness remains compatible, with coercion diagnostics:
111
+ `None` and empty values are false, but the string `"false"` is true. Do not disguise errors as false.
112
+ Errors, blocked, cancelled, interrupted checks, and missing/expired observations have no boolean.
113
+ `print` is bounded supplementary data, separate from the result and diagnostics.
114
+ Run history uses one `source`: `manual`, `time`, or `test`. Test runs never become production
115
+ observations.
116
+
117
+ Context is a copied snapshot containing `event`, `run`, `params`, `input`, and `last_success`.
118
+ `last_success` is the previous successful production check for this revision, including false,
119
+ or `null`; tests/failures do not replace it. There is no writable `context.state` or mutation
120
+ writeback. Input cannot replace host identity, params, or authority.
121
+
122
+ ## Authorization
123
+
124
+ Authorization approves an entire fixed Event by **`event_id` + `fingerprint`**, within the
125
+ current workspace. The fingerprint is the SHA-256 hash of its ID, code and parameters,
126
+ not a credential or proof of approval.
127
+ Event IDs are unique within a workspace, not globally. Conversations share its definitions,
128
+ grants, observations and clocks; the originating conversation is provenance, not an access
129
+ boundary. Deleting or switching a chat does not retire its Events.
130
+ Legacy databases with duplicate workspace IDs report
131
+ `workspace_id_conflict` rather than choosing one definition or grant; reconcile those records
132
+ from a backup before starting the workspace-wide runtime.
133
+ `create`, `get`, and `list` expose the current `fingerprint`. Pass it with `event_id` to `authorize`;
134
+ optional `expires_at` limits the grant. There are no per-tool or per-argument grant rules:
135
+ approval covers the otherwise permitted tool calls made by that fixed Event.
136
+ Code/parameter changes request explicit approval **before** applying. The old version continues
137
+ while approval is pending; approval and applying the matching new grant are one operation.
138
+ The enabled/paused state is preserved, without an extra check or another enable step. Rejection,
139
+ timeout or a stale editing baseline leaves the active version unchanged. The Web editor shows
140
+ the current and proposed definitions; conversational updates use the same approval path.
141
+
142
+ Polling, timeout, Event expiry, description and notifications are ordinary configuration edits
143
+ that preserve the grant. Editing Event expiry does not extend a separate grant expiry.
144
+ Web reauthorization preserves the current grant expiry unless you explicitly change or clear it.
145
+ `update` takes `changes`, `expected_revision`, and optional `expected_version`; Web edits require
146
+ the independent editing version, including for changes that keep the execution revision.
147
+ Existing tool ceilings, hard denies, E-stop, audit, and postflight remain.
148
+ Description and error-notification edits keep the execution revision, grant, observations and timer;
149
+ they do not interrupt an active check. They remain editable after a one-shot time or expiry has
150
+ passed; these edits do not rearm the check or extend its authorization. New executable settings
151
+ must still satisfy schedule and expiry validation.
152
+ Approval cards show the complete checker and JSON authorization scope: Event ID/fingerprint,
153
+ workspace, parameters, runtime configuration, and expiry. Review both before
154
+ approving unattended execution; the Security approval queue shows the same checker and scope.
155
+ When they are too large for a Teams card, the card points to the Security approval queue instead.
156
+
157
+ Inspect the saved Event, use the full fingerprint returned by `get`, wait for the human
158
+ decision, then test:
159
+
160
+ ```python
161
+ events(action="get", event_id="build-ready")
162
+ events(action="authorize", event_id="build-ready",
163
+ fingerprint="<fingerprint returned by get>")
164
+ events(action="test", event_id="build-ready")
165
+ ```
166
+
167
+ Tests execute granted real tools; inspect earlier effects before repeating them. Nested checks
168
+ inherit isolation: no production observations or task triggering. Production `run` may trigger tasks.
169
+ Checker grants never transfer to actions; those retain ordinary [approvals](../security/approvals.md).
170
+
171
+ ## Combine time and conditions
172
+
173
+ Event timers poll independently; clocked tasks **check fresh at each tick** rather than using cache.
174
+ Event-only tasks use committed `event.checked` observations without recursive checks. `cron` examples:
175
+
176
+ ```yaml
177
+ name: build-summary
178
+ schedule: event.checked
179
+ event_conditions:
180
+ mode: all
181
+ items: [{event_id: build-ready, equals: true, max_age_seconds: 120}]
182
+ event_policy: {mode: enter_match, cooldown_seconds: 300}
183
+ prompt: Summarize the completed build using the attached check details.
184
+ ```
185
+
186
+ ```yaml
187
+ name: morning-preparation
188
+ schedule: "0 9 * * *"
189
+ timezone: Asia/Shanghai
190
+ event_conditions:
191
+ mode: all
192
+ items: [{event_id: build-ready, equals: false}]
193
+ prompt: Prepare the build follow-up while the build is still running.
194
+ ```
195
+
196
+ `all` requires every match; `any` needs one known match. Unknown is never false.
197
+ `max_age_seconds` bounds observation age and is rechecked before dispatch, including after waiting
198
+ for task capacity. `each_match` dispatches on matching results;
199
+ `enter_match` on entry into a match, including the first known match. Cooldown is not exactly-once delivery.
200
+ Unknown observations do not reset entry state. `busy_policy: skip` suppresses a busy task's
201
+ action without discarding valid condition transitions or replaying it later. `continue` uses
202
+ ordinary session handling: reuse a persistent conversation or create a new isolated session.
203
+ This policy is only supported for tasks with Event conditions.
204
+ Timed triggers honor the same policy within `cron.max_concurrent_jobs`; `skip` retains the
205
+ single-instance limit, while `continue` can admit overlapping ticks within that capacity.
206
+ Continued Event-bus triggers use the same limit for admitted task activations across jobs.
207
+ Excess matching triggers record `capacity_full` without dispatch or replay; nonmatching
208
+ observations still update condition transitions.
209
+ There are no separate parallel/sequential Event modes.
210
+ Persistent conversations finish the active turn before starting the next trigger as its own
211
+ turn, with its own permissions and check evidence. Waiting for that conversation does not occupy
212
+ global task capacity. Conditions and authority are rechecked before dispatch; an expired or
213
+ invalidated trigger is explicitly skipped, not recorded as completed or replayed later.
214
+ One-shot pre-triggers retain their resolved occurrence across restart and consume it atomically
215
+ with check reservation. Unknown started checks are not automatically replayed.
216
+ Approved code or parameter edits preserve that occurrence and its consumed state; only an
217
+ explicit check-plan change reschedules or rearms it.
218
+ For absolute `at:` timestamps without an offset, `pre_trigger.timezone` selects the wall-clock
219
+ timezone (local timezone when omitted). An explicit timestamp offset takes precedence;
220
+ relative `at:+seconds` delays are unchanged.
221
+
222
+ ## Handoff and management
223
+
224
+ Existing cron owns execution, overlap, capacity, and history; no separate task queue or replay exists.
225
+ Ordinary message/prompt/tool actions retain their instructions and arguments. Printed details stay
226
+ fenced as untrusted data, including in `events` tool results, and are never interpolated into tool
227
+ arguments. Bound tasks can use `events(action="context")`. Existing tools can address idle owned
228
+ agents, but Events do not automatically wait for busy agents or silently resume stopped/paused ones.
229
+ Use the default `completion_mode="wait"` for one-shot tasks so delegated work finishes before retirement.
230
+
231
+ The task context contains `task_id`, `reason`, and bounded `events` evidence. Ownership,
232
+ authorization, trigger bookkeeping and causation stay in the host; they are not read back
233
+ from the task's data. The same true/false/unknown condition rules apply during evaluation
234
+ and immediately before dispatch.
235
+
236
+ Failures remain in history, with grouped error/recovery notices by default (`on_error: {notify: true}`).
237
+ No automatic retries or repair proposals. Agree who retires finished monitors and verify Event/task history.
238
+ Disable an Event to pause it. Deletion retires its workspace ID; retained check history follows
239
+ normal retention, and the workspace cannot reuse the ID for a different definition.
240
+
241
+ Task execution history retains the latest 100 dispatched outcomes. Routine skips do not evict
242
+ those runs: each task persists only its **latest linkage decision**, including time, reason and
243
+ related check IDs/revisions. Older skips are not individually retained. Links use retained
244
+ correlations, never timestamp guesses; an empty reverse lookup does not prove no action occurred.
245
+
246
+ V1 operations: `list`, `get`, `history`, `create`, `update`, `enable`, `disable`, `delete`,
247
+ `validate`, `authorize`, `revoke`, `run`, `test`, `context`. The authenticated `/api/events`
248
+ surface supports workspace management, revision-checked configuration edits, approval requests,
249
+ test/production admission and querying retained runs. Decisions use the same `/api/approvals`
250
+ transport and authenticated approval identity as Security. The Schedule HTTP API also manages
251
+ Event-conditioned tasks. No webhook or YAML import endpoint is introduced.
252
+ Removing an Event-bound task requires its Event runtime so the protected binding is removed
253
+ with the job. Use Scheduled or the live conversational `cron` tool; standalone `wp cron remove`
254
+ refuses these jobs.