@withbuddi/buddi 0.1.0-pre.37 → 0.1.0-pre.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extension/background.js +764 -32
- package/extension/manifest.json +2 -2
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/access-cmd.d.ts +10 -0
- package/node_modules/@buddi/cli/dist/access-cmd.d.ts.map +1 -0
- package/node_modules/@buddi/cli/dist/access-cmd.js +180 -0
- package/node_modules/@buddi/cli/dist/access-cmd.js.map +1 -0
- package/node_modules/@buddi/cli/dist/args.d.ts +10 -0
- package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/args.js +34 -1
- package/node_modules/@buddi/cli/dist/args.js.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.js +39 -2
- package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js +54 -29
- package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.d.ts +36 -12
- package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.js +32 -9
- package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.d.ts +2 -0
- package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +20 -2
- package/node_modules/@buddi/cli/dist/main.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts +2 -0
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js +1 -0
- package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/edit.d.ts +2 -0
- package/node_modules/@buddi/core/dist/agents/edit.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/edit.js +3 -1
- package/node_modules/@buddi/core/dist/agents/edit.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +11 -0
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.js +7 -0
- package/node_modules/@buddi/core/dist/agents/frontmatter.js.map +1 -1
- package/node_modules/@buddi/core/dist/index.d.ts +1 -0
- package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/index.js +1 -0
- package/node_modules/@buddi/core/dist/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +3 -0
- package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js +3 -0
- package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
- package/node_modules/@buddi/core/dist/questions/store.d.ts +12 -0
- package/node_modules/@buddi/core/dist/questions/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/questions/store.js +11 -1
- package/node_modules/@buddi/core/dist/questions/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/questions/types.d.ts +8 -0
- package/node_modules/@buddi/core/dist/questions/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/questions/types.js +15 -0
- package/node_modules/@buddi/core/dist/questions/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/queue/jobs.d.ts +8 -0
- package/node_modules/@buddi/core/dist/queue/jobs.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/queue/jobs.js +9 -3
- package/node_modules/@buddi/core/dist/queue/jobs.js.map +1 -1
- package/node_modules/@buddi/core/dist/queue/worker.d.ts +2 -0
- package/node_modules/@buddi/core/dist/queue/worker.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/queue/worker.js +2 -1
- package/node_modules/@buddi/core/dist/queue/worker.js.map +1 -1
- package/node_modules/@buddi/core/dist/registry.d.ts +7 -1
- package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/registry.js +73 -11
- package/node_modules/@buddi/core/dist/registry.js.map +1 -1
- package/node_modules/@buddi/core/dist/routes.d.ts +153 -0
- package/node_modules/@buddi/core/dist/routes.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/routes.js +47 -0
- package/node_modules/@buddi/core/dist/routes.js.map +1 -0
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts +5 -3
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/missions.js +9 -7
- package/node_modules/@buddi/core/dist/scheduler/missions.js.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts +7 -0
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.js +1 -0
- package/node_modules/@buddi/core/dist/scheduler/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/tools.d.ts +59 -2
- package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/tools.js.map +1 -1
- package/node_modules/@buddi/core/migrations/075_access_providers.sql +43 -0
- package/node_modules/@buddi/core/migrations/076_mission_browser.sql +7 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts +12 -12
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +38 -20
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +6 -0
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/delegation.js +1 -0
- package/node_modules/@buddi/gateway/dist/agents/delegation.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +7 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +15 -6
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js +8 -0
- package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/browser-host.d.ts +30 -1
- package/node_modules/@buddi/gateway/dist/browser-host.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/browser-host.js +56 -1
- package/node_modules/@buddi/gateway/dist/browser-host.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/chat/session.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/chat/session.js +9 -5
- package/node_modules/@buddi/gateway/dist/chat/session.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.d.ts +2 -1
- package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.js +2 -1
- package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/ask-cap.d.ts +26 -0
- package/node_modules/@buddi/gateway/dist/missions/ask-cap.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/ask-cap.js +83 -0
- package/node_modules/@buddi/gateway/dist/missions/ask-cap.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +45 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js +156 -10
- package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/parked.d.ts +139 -0
- package/node_modules/@buddi/gateway/dist/missions/parked.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/parked.js +255 -0
- package/node_modules/@buddi/gateway/dist/missions/parked.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/serve.d.ts +7 -0
- package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.js +49 -9
- package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.d.ts +18 -0
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.js +42 -0
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.js +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/owner-request.d.ts +6 -0
- package/node_modules/@buddi/gateway/dist/surfaces/owner-request.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/owner-request.js +7 -1
- package/node_modules/@buddi/gateway/dist/surfaces/owner-request.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.d.ts +7 -0
- package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.js +14 -7
- package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts +17 -17
- package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/browser-view.js +33 -37
- package/node_modules/@buddi/gateway/dist/telegram/browser-view.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.js +17 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.js +11 -3
- package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.js +10 -0
- package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/facts.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/tips/facts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/facts.js +8 -2
- package/node_modules/@buddi/gateway/dist/tips/facts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/rules.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/tips/rules.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/rules.js +15 -0
- package/node_modules/@buddi/gateway/dist/tips/rules.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/arrival.d.ts +24 -0
- package/node_modules/@buddi/gateway/dist/web/access/arrival.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/arrival.js +18 -0
- package/node_modules/@buddi/gateway/dist/web/access/arrival.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-api.d.ts +124 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-api.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-api.js +206 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-api.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts +163 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js +438 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.d.ts +31 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js +74 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare.d.ts +145 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare.js +474 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.d.ts +9 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.js +9 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/ingress.d.ts +30 -0
- package/node_modules/@buddi/gateway/dist/web/access/ingress.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/ingress.js +76 -0
- package/node_modules/@buddi/gateway/dist/web/access/ingress.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/provider.d.ts +173 -0
- package/node_modules/@buddi/gateway/dist/web/access/provider.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/provider.js +11 -0
- package/node_modules/@buddi/gateway/dist/web/access/provider.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/registry.d.ts +33 -0
- package/node_modules/@buddi/gateway/dist/web/access/registry.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/registry.js +32 -0
- package/node_modules/@buddi/gateway/dist/web/access/registry.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/{tailscale.d.ts → access/tailscale.d.ts} +27 -0
- package/node_modules/@buddi/gateway/dist/web/access/tailscale.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/{tailscale.js → access/tailscale.js} +118 -3
- package/node_modules/@buddi/gateway/dist/web/access/tailscale.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/agents.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/web/agents.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/agents.js +19 -1
- package/node_modules/@buddi/gateway/dist/web/agents.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts +4 -3
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +106 -19
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/attention.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/attention.js +11 -3
- package/node_modules/@buddi/gateway/dist/web/attention.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts +23 -0
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.js +62 -2
- package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/client-key.d.ts +3 -0
- package/node_modules/@buddi/gateway/dist/web/client-key.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/client-key.js +8 -1
- package/node_modules/@buddi/gateway/dist/web/client-key.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts +21 -1
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.js +183 -3
- package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/http.d.ts +7 -0
- package/node_modules/@buddi/gateway/dist/web/http.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/http.js +15 -1
- package/node_modules/@buddi/gateway/dist/web/http.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/index.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/web/index.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/index.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/index.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/remote-hand.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/remote-hand.js +45 -2
- package/node_modules/@buddi/gateway/dist/web/remote-hand.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.d.ts +26 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.js +66 -3
- package/node_modules/@buddi/gateway/dist/web/secrets.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts +38 -2
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +634 -147
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/sessions.d.ts +24 -14
- package/node_modules/@buddi/gateway/dist/web/sessions.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/sessions.js +42 -14
- package/node_modules/@buddi/gateway/dist/web/sessions.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/signed-out.js +47 -0
- package/node_modules/@buddi/gateway/dist/web/signed-out.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/version.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/web/version.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/version.js +5 -1
- package/node_modules/@buddi/gateway/dist/web/version.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/install/dist/app-layout.d.ts +127 -0
- package/node_modules/@buddi/install/dist/app-layout.d.ts.map +1 -0
- package/node_modules/@buddi/install/dist/app-layout.js +323 -0
- package/node_modules/@buddi/install/dist/app-layout.js.map +1 -0
- package/node_modules/@buddi/install/dist/index.d.ts +1 -0
- package/node_modules/@buddi/install/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/index.js +1 -0
- package/node_modules/@buddi/install/dist/index.js.map +1 -1
- package/node_modules/@buddi/install/dist/launcher.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/launcher.js +18 -4
- package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
- package/node_modules/@buddi/install/dist/provenance.d.ts +34 -0
- package/node_modules/@buddi/install/dist/provenance.d.ts.map +1 -0
- package/node_modules/@buddi/install/dist/provenance.js +200 -0
- package/node_modules/@buddi/install/dist/provenance.js.map +1 -0
- package/node_modules/@buddi/install/dist/supervisor.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/supervisor.js +9 -4
- package/node_modules/@buddi/install/dist/supervisor.js.map +1 -1
- package/node_modules/@buddi/install/dist/upgrade.d.ts +77 -3
- package/node_modules/@buddi/install/dist/upgrade.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/upgrade.js +325 -43
- package/node_modules/@buddi/install/dist/upgrade.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.d.ts +8 -0
- package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.js +19 -1
- package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/loop.d.ts +2 -0
- package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/loop.js +18 -4
- package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/availability.d.ts +2 -2
- package/node_modules/@buddi/tool-browser/dist/availability.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/availability.js +2 -2
- package/node_modules/@buddi/tool-browser/dist/availability.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts +82 -58
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.js +823 -217
- package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/driver.d.ts +3 -1
- package/node_modules/@buddi/tool-browser/dist/driver.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/driver.js +82 -1
- package/node_modules/@buddi/tool-browser/dist/driver.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.d.ts +70 -5
- package/node_modules/@buddi/tool-browser/dist/extension.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.js +94 -9
- package/node_modules/@buddi/tool-browser/dist/extension.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/index.d.ts +17 -7
- package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/index.js +35 -15
- package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/logins.d.ts +150 -0
- package/node_modules/@buddi/tool-browser/dist/logins.d.ts.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/logins.js +476 -0
- package/node_modules/@buddi/tool-browser/dist/logins.js.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/manager.d.ts +39 -21
- package/node_modules/@buddi/tool-browser/dist/manager.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/manager.js +229 -136
- package/node_modules/@buddi/tool-browser/dist/manager.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts +151 -0
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/routes.js +331 -0
- package/node_modules/@buddi/tool-browser/dist/routes.js.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/secrets.d.ts +3 -1
- package/node_modules/@buddi/tool-browser/dist/secrets.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/secrets.js +10 -6
- package/node_modules/@buddi/tool-browser/dist/secrets.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/service.d.ts +182 -115
- package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/service.js +491 -388
- package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/settings.d.ts +88 -0
- package/node_modules/@buddi/tool-browser/dist/settings.d.ts.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/settings.js +86 -0
- package/node_modules/@buddi/tool-browser/dist/settings.js.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/telemetry.d.ts +203 -0
- package/node_modules/@buddi/tool-browser/dist/telemetry.d.ts.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/telemetry.js +142 -0
- package/node_modules/@buddi/tool-browser/dist/telemetry.js.map +1 -0
- package/node_modules/@buddi/tool-browser/dist/types.d.ts +102 -3
- package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/types.js +27 -9
- package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/hono/dist/cjs/hono-base.js +2 -0
- package/node_modules/hono/dist/cjs/middleware/language/language.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/mount/index.js +71 -0
- package/node_modules/hono/dist/cjs/request.js +4 -4
- package/node_modules/hono/dist/hono-base.js +2 -0
- package/node_modules/hono/dist/middleware/mount/index.js +70 -0
- package/node_modules/hono/dist/request.js +4 -4
- package/node_modules/hono/dist/types/hono-base.d.ts +2 -0
- package/node_modules/hono/dist/types/jsx/base.d.ts +1 -1
- package/node_modules/hono/dist/types/middleware/mount/index.d.ts +46 -0
- package/node_modules/hono/dist/types/request.d.ts +4 -4
- package/node_modules/hono/package.json +9 -1
- package/node_modules/imapflow/CHANGELOG.md +15 -0
- package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
- package/node_modules/imapflow/dist/cjs/search-compiler.js +21 -31
- package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/esm/package-info.js +1 -1
- package/node_modules/imapflow/dist/esm/search-compiler.js +21 -31
- package/node_modules/imapflow/package.json +2 -2
- package/node_modules/pino/CONTRIBUTING.md +1 -5
- package/node_modules/pino/LICENSE +1 -1
- package/node_modules/pino/README.md +1 -1
- package/node_modules/pino/SECURITY.md +2 -18
- package/node_modules/pino/browser.js +8 -68
- package/node_modules/pino/docs/api.md +4 -75
- package/node_modules/pino/docs/asynchronous.md +3 -18
- package/node_modules/pino/docs/browser.md +0 -63
- package/node_modules/pino/docs/child-loggers.md +1 -22
- package/node_modules/pino/docs/ecosystem.md +0 -1
- package/node_modules/pino/docs/help.md +3 -11
- package/node_modules/pino/docs/lts.md +0 -29
- package/node_modules/pino/docs/pretty.md +0 -3
- package/node_modules/pino/docs/redaction.md +8 -3
- package/node_modules/pino/docs/transports.md +0 -71
- package/node_modules/pino/docs/web.md +14 -11
- package/node_modules/pino/eslint.config.js +7 -15
- package/node_modules/pino/lib/caller.js +0 -10
- package/node_modules/pino/lib/meta.js +1 -1
- package/node_modules/pino/lib/multistream.js +7 -15
- package/node_modules/pino/lib/redaction.js +3 -8
- package/node_modules/pino/lib/symbols.js +1 -3
- package/node_modules/pino/lib/tools.js +2 -2
- package/node_modules/pino/lib/transport.js +1 -14
- package/node_modules/pino/lib/worker.js +1 -4
- package/node_modules/pino/package.json +22 -14
- package/node_modules/pino/pino.d.ts +736 -709
- package/node_modules/pino/pino.js +2 -27
- package/node_modules/pino/test/basic.test.js +0 -66
- package/node_modules/pino/test/escaping.test.js +0 -17
- package/node_modules/pino/test/fixtures/ts/transpile.cjs +3 -3
- package/node_modules/pino/test/helper.js +2 -6
- package/node_modules/pino/test/multistream.test.js +0 -64
- package/node_modules/pino/test/redact.test.js +0 -30
- package/node_modules/pino/test/transport/core.test.js +0 -85
- package/node_modules/pino/test/transport/sync-false.test.js +0 -12
- package/node_modules/pino/test/transport/uses-pino-config.test.js +4 -4
- package/node_modules/pino/test/types/pino-import.test-d.cts +30 -0
- package/node_modules/pino/test/types/pino-multistream.test-d.ts +28 -0
- package/node_modules/pino/test/types/pino-top-export.test-d.ts +34 -0
- package/node_modules/pino/test/types/{pino-transport.tst.ts → pino-transport.test-d.ts} +70 -85
- package/node_modules/pino/test/types/pino-type-only.test-d.ts +75 -0
- package/node_modules/pino/test/types/{pino.tst.ts → pino.test-d.ts} +137 -135
- package/node_modules/pino/test/types/pino.ts +7 -14
- package/node_modules/pino/tsconfig.json +6 -6
- package/node_modules/real-require/README.md +6 -6
- package/node_modules/real-require/package.json +21 -10
- package/node_modules/real-require/src/index.js +2 -2
- package/node_modules/thread-stream/node_modules/real-require/LICENSE.md +21 -0
- package/node_modules/thread-stream/node_modules/real-require/README.md +51 -0
- package/node_modules/thread-stream/node_modules/real-require/package.json +38 -0
- package/node_modules/thread-stream/node_modules/real-require/src/index.js +14 -0
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/access-cmd.d.ts +10 -0
- package/packages/cli/dist/access-cmd.d.ts.map +1 -0
- package/packages/cli/dist/access-cmd.js +180 -0
- package/packages/cli/dist/access-cmd.js.map +1 -0
- package/packages/cli/dist/args.d.ts +10 -0
- package/packages/cli/dist/args.d.ts.map +1 -1
- package/packages/cli/dist/args.js +34 -1
- package/packages/cli/dist/args.js.map +1 -1
- package/packages/cli/dist/commands.d.ts.map +1 -1
- package/packages/cli/dist/commands.js +39 -2
- package/packages/cli/dist/commands.js.map +1 -1
- package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
- package/packages/cli/dist/doctor-probes.js +54 -29
- package/packages/cli/dist/doctor-probes.js.map +1 -1
- package/packages/cli/dist/doctor.d.ts +36 -12
- package/packages/cli/dist/doctor.d.ts.map +1 -1
- package/packages/cli/dist/doctor.js +32 -9
- package/packages/cli/dist/doctor.js.map +1 -1
- package/packages/cli/dist/main.d.ts +2 -0
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +20 -2
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/catalog.d.ts +2 -0
- package/packages/core/dist/agents/catalog.d.ts.map +1 -1
- package/packages/core/dist/agents/catalog.js +1 -0
- package/packages/core/dist/agents/catalog.js.map +1 -1
- package/packages/core/dist/agents/edit.d.ts +2 -0
- package/packages/core/dist/agents/edit.d.ts.map +1 -1
- package/packages/core/dist/agents/edit.js +3 -1
- package/packages/core/dist/agents/edit.js.map +1 -1
- package/packages/core/dist/agents/frontmatter.d.ts +11 -0
- package/packages/core/dist/agents/frontmatter.d.ts.map +1 -1
- package/packages/core/dist/agents/frontmatter.js +7 -0
- package/packages/core/dist/agents/frontmatter.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/plugin/index.d.ts +3 -0
- package/packages/core/dist/plugin/index.d.ts.map +1 -1
- package/packages/core/dist/plugin/index.js +3 -0
- package/packages/core/dist/plugin/index.js.map +1 -1
- package/packages/core/dist/plugin/version.d.ts +1 -1
- package/packages/core/dist/plugin/version.js +1 -1
- package/packages/core/dist/questions/store.d.ts +12 -0
- package/packages/core/dist/questions/store.d.ts.map +1 -1
- package/packages/core/dist/questions/store.js +11 -1
- package/packages/core/dist/questions/store.js.map +1 -1
- package/packages/core/dist/questions/types.d.ts +8 -0
- package/packages/core/dist/questions/types.d.ts.map +1 -1
- package/packages/core/dist/questions/types.js +15 -0
- package/packages/core/dist/questions/types.js.map +1 -1
- package/packages/core/dist/queue/jobs.d.ts +8 -0
- package/packages/core/dist/queue/jobs.d.ts.map +1 -1
- package/packages/core/dist/queue/jobs.js +9 -3
- package/packages/core/dist/queue/jobs.js.map +1 -1
- package/packages/core/dist/queue/worker.d.ts +2 -0
- package/packages/core/dist/queue/worker.d.ts.map +1 -1
- package/packages/core/dist/queue/worker.js +2 -1
- package/packages/core/dist/queue/worker.js.map +1 -1
- package/packages/core/dist/registry.d.ts +7 -1
- package/packages/core/dist/registry.d.ts.map +1 -1
- package/packages/core/dist/registry.js +73 -11
- package/packages/core/dist/registry.js.map +1 -1
- package/packages/core/dist/routes.d.ts +153 -0
- package/packages/core/dist/routes.d.ts.map +1 -0
- package/packages/core/dist/routes.js +47 -0
- package/packages/core/dist/routes.js.map +1 -0
- package/packages/core/dist/scheduler/missions.d.ts +5 -3
- package/packages/core/dist/scheduler/missions.d.ts.map +1 -1
- package/packages/core/dist/scheduler/missions.js +9 -7
- package/packages/core/dist/scheduler/missions.js.map +1 -1
- package/packages/core/dist/scheduler/types.d.ts +7 -0
- package/packages/core/dist/scheduler/types.d.ts.map +1 -1
- package/packages/core/dist/scheduler/types.js +1 -0
- package/packages/core/dist/scheduler/types.js.map +1 -1
- package/packages/core/dist/tools.d.ts +59 -2
- package/packages/core/dist/tools.d.ts.map +1 -1
- package/packages/core/dist/tools.js.map +1 -1
- package/packages/core/migrations/075_access_providers.sql +43 -0
- package/packages/core/migrations/076_mission_browser.sql +7 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/canvas.d.ts +12 -12
- package/packages/gateway/dist/agents/catalogue-package.d.ts +38 -20
- package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalogue-package.js +6 -0
- package/packages/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/packages/gateway/dist/agents/delegation.d.ts +10 -0
- package/packages/gateway/dist/agents/delegation.d.ts.map +1 -1
- package/packages/gateway/dist/agents/delegation.js +1 -0
- package/packages/gateway/dist/agents/delegation.js.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.d.ts +7 -1
- package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.js +15 -6
- package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
- package/packages/gateway/dist/bootstrap.js +8 -0
- package/packages/gateway/dist/bootstrap.js.map +1 -1
- package/packages/gateway/dist/browser-host.d.ts +30 -1
- package/packages/gateway/dist/browser-host.d.ts.map +1 -1
- package/packages/gateway/dist/browser-host.js +56 -1
- package/packages/gateway/dist/browser-host.js.map +1 -1
- package/packages/gateway/dist/chat/session.d.ts.map +1 -1
- package/packages/gateway/dist/chat/session.js +9 -5
- package/packages/gateway/dist/chat/session.js.map +1 -1
- package/packages/gateway/dist/index.d.ts +2 -1
- package/packages/gateway/dist/index.d.ts.map +1 -1
- package/packages/gateway/dist/index.js +2 -1
- package/packages/gateway/dist/index.js.map +1 -1
- package/packages/gateway/dist/missions/ask-cap.d.ts +26 -0
- package/packages/gateway/dist/missions/ask-cap.d.ts.map +1 -0
- package/packages/gateway/dist/missions/ask-cap.js +83 -0
- package/packages/gateway/dist/missions/ask-cap.js.map +1 -0
- package/packages/gateway/dist/missions/execute.d.ts +45 -1
- package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
- package/packages/gateway/dist/missions/execute.js +156 -10
- package/packages/gateway/dist/missions/execute.js.map +1 -1
- package/packages/gateway/dist/missions/parked.d.ts +139 -0
- package/packages/gateway/dist/missions/parked.d.ts.map +1 -0
- package/packages/gateway/dist/missions/parked.js +255 -0
- package/packages/gateway/dist/missions/parked.js.map +1 -0
- package/packages/gateway/dist/serve.d.ts +7 -0
- package/packages/gateway/dist/serve.d.ts.map +1 -1
- package/packages/gateway/dist/serve.js +49 -9
- package/packages/gateway/dist/serve.js.map +1 -1
- package/packages/gateway/dist/surfaces/browser-cards.d.ts +18 -0
- package/packages/gateway/dist/surfaces/browser-cards.d.ts.map +1 -0
- package/packages/gateway/dist/surfaces/browser-cards.js +42 -0
- package/packages/gateway/dist/surfaces/browser-cards.js.map +1 -0
- package/packages/gateway/dist/surfaces/browser-continuation.js +1 -1
- package/packages/gateway/dist/surfaces/browser-continuation.js.map +1 -1
- package/packages/gateway/dist/surfaces/owner-request.d.ts +6 -0
- package/packages/gateway/dist/surfaces/owner-request.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/owner-request.js +7 -1
- package/packages/gateway/dist/surfaces/owner-request.js.map +1 -1
- package/packages/gateway/dist/system-context.d.ts +7 -0
- package/packages/gateway/dist/system-context.d.ts.map +1 -1
- package/packages/gateway/dist/system-context.js +14 -7
- package/packages/gateway/dist/system-context.js.map +1 -1
- package/packages/gateway/dist/telegram/browser-view.d.ts +17 -17
- package/packages/gateway/dist/telegram/browser-view.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/browser-view.js +33 -37
- package/packages/gateway/dist/telegram/browser-view.js.map +1 -1
- package/packages/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/channel.js +17 -1
- package/packages/gateway/dist/telegram/channel.js.map +1 -1
- package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/main.js +11 -3
- package/packages/gateway/dist/telegram/main.js.map +1 -1
- package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/surface.js +10 -0
- package/packages/gateway/dist/telegram/surface.js.map +1 -1
- package/packages/gateway/dist/tips/facts.d.ts +8 -0
- package/packages/gateway/dist/tips/facts.d.ts.map +1 -1
- package/packages/gateway/dist/tips/facts.js +8 -2
- package/packages/gateway/dist/tips/facts.js.map +1 -1
- package/packages/gateway/dist/tips/rules.d.ts +2 -0
- package/packages/gateway/dist/tips/rules.d.ts.map +1 -1
- package/packages/gateway/dist/tips/rules.js +15 -0
- package/packages/gateway/dist/tips/rules.js.map +1 -1
- package/packages/gateway/dist/web/access/arrival.d.ts +24 -0
- package/packages/gateway/dist/web/access/arrival.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/arrival.js +18 -0
- package/packages/gateway/dist/web/access/arrival.js.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-api.d.ts +124 -0
- package/packages/gateway/dist/web/access/cloudflare-api.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-api.js +206 -0
- package/packages/gateway/dist/web/access/cloudflare-api.js.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-setup.d.ts +163 -0
- package/packages/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-setup.js +438 -0
- package/packages/gateway/dist/web/access/cloudflare-setup.js.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-token.d.ts +31 -0
- package/packages/gateway/dist/web/access/cloudflare-token.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-token.js +74 -0
- package/packages/gateway/dist/web/access/cloudflare-token.js.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare.d.ts +145 -0
- package/packages/gateway/dist/web/access/cloudflare.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare.js +474 -0
- package/packages/gateway/dist/web/access/cloudflare.js.map +1 -0
- package/packages/gateway/dist/web/access/index.d.ts +9 -0
- package/packages/gateway/dist/web/access/index.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/index.js +9 -0
- package/packages/gateway/dist/web/access/index.js.map +1 -0
- package/packages/gateway/dist/web/access/ingress.d.ts +30 -0
- package/packages/gateway/dist/web/access/ingress.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/ingress.js +76 -0
- package/packages/gateway/dist/web/access/ingress.js.map +1 -0
- package/packages/gateway/dist/web/access/provider.d.ts +173 -0
- package/packages/gateway/dist/web/access/provider.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/provider.js +11 -0
- package/packages/gateway/dist/web/access/provider.js.map +1 -0
- package/packages/gateway/dist/web/access/registry.d.ts +33 -0
- package/packages/gateway/dist/web/access/registry.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/registry.js +32 -0
- package/packages/gateway/dist/web/access/registry.js.map +1 -0
- package/packages/gateway/dist/web/{tailscale.d.ts → access/tailscale.d.ts} +27 -0
- package/packages/gateway/dist/web/access/tailscale.d.ts.map +1 -0
- package/packages/gateway/dist/web/{tailscale.js → access/tailscale.js} +118 -3
- package/packages/gateway/dist/web/access/tailscale.js.map +1 -0
- package/packages/gateway/dist/web/agents.d.ts +2 -0
- package/packages/gateway/dist/web/agents.d.ts.map +1 -1
- package/packages/gateway/dist/web/agents.js +19 -1
- package/packages/gateway/dist/web/agents.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts +4 -3
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +106 -19
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/attention.d.ts.map +1 -1
- package/packages/gateway/dist/web/attention.js +11 -3
- package/packages/gateway/dist/web/attention.js.map +1 -1
- package/packages/gateway/dist/web/chat.d.ts +23 -0
- package/packages/gateway/dist/web/chat.d.ts.map +1 -1
- package/packages/gateway/dist/web/chat.js +62 -2
- package/packages/gateway/dist/web/chat.js.map +1 -1
- package/packages/gateway/dist/web/client-key.d.ts +3 -0
- package/packages/gateway/dist/web/client-key.d.ts.map +1 -1
- package/packages/gateway/dist/web/client-key.js +8 -1
- package/packages/gateway/dist/web/client-key.js.map +1 -1
- package/packages/gateway/dist/web/extension.d.ts +21 -1
- package/packages/gateway/dist/web/extension.d.ts.map +1 -1
- package/packages/gateway/dist/web/extension.js +183 -3
- package/packages/gateway/dist/web/extension.js.map +1 -1
- package/packages/gateway/dist/web/http.d.ts +7 -0
- package/packages/gateway/dist/web/http.d.ts.map +1 -1
- package/packages/gateway/dist/web/http.js +15 -1
- package/packages/gateway/dist/web/http.js.map +1 -1
- package/packages/gateway/dist/web/index.d.ts +1 -1
- package/packages/gateway/dist/web/index.d.ts.map +1 -1
- package/packages/gateway/dist/web/index.js +1 -1
- package/packages/gateway/dist/web/index.js.map +1 -1
- package/packages/gateway/dist/web/onboarding.js +1 -1
- package/packages/gateway/dist/web/onboarding.js.map +1 -1
- package/packages/gateway/dist/web/remote-hand.d.ts.map +1 -1
- package/packages/gateway/dist/web/remote-hand.js +45 -2
- package/packages/gateway/dist/web/remote-hand.js.map +1 -1
- package/packages/gateway/dist/web/secrets.d.ts +26 -1
- package/packages/gateway/dist/web/secrets.d.ts.map +1 -1
- package/packages/gateway/dist/web/secrets.js +66 -3
- package/packages/gateway/dist/web/secrets.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts +38 -2
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +634 -147
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/gateway/dist/web/sessions.d.ts +24 -14
- package/packages/gateway/dist/web/sessions.d.ts.map +1 -1
- package/packages/gateway/dist/web/sessions.js +42 -14
- package/packages/gateway/dist/web/sessions.js.map +1 -1
- package/packages/gateway/dist/web/signed-out.d.ts +10 -0
- package/packages/gateway/dist/web/signed-out.d.ts.map +1 -1
- package/packages/gateway/dist/web/signed-out.js +47 -0
- package/packages/gateway/dist/web/signed-out.js.map +1 -1
- package/packages/gateway/dist/web/version.d.ts +2 -0
- package/packages/gateway/dist/web/version.d.ts.map +1 -1
- package/packages/gateway/dist/web/version.js +5 -1
- package/packages/gateway/dist/web/version.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/install/dist/app-layout.d.ts +127 -0
- package/packages/install/dist/app-layout.d.ts.map +1 -0
- package/packages/install/dist/app-layout.js +323 -0
- package/packages/install/dist/app-layout.js.map +1 -0
- package/packages/install/dist/index.d.ts +1 -0
- package/packages/install/dist/index.d.ts.map +1 -1
- package/packages/install/dist/index.js +1 -0
- package/packages/install/dist/index.js.map +1 -1
- package/packages/install/dist/launcher.d.ts.map +1 -1
- package/packages/install/dist/launcher.js +18 -4
- package/packages/install/dist/launcher.js.map +1 -1
- package/packages/install/dist/provenance.d.ts +34 -0
- package/packages/install/dist/provenance.d.ts.map +1 -0
- package/packages/install/dist/provenance.js +200 -0
- package/packages/install/dist/provenance.js.map +1 -0
- package/packages/install/dist/supervisor.d.ts.map +1 -1
- package/packages/install/dist/supervisor.js +9 -4
- package/packages/install/dist/supervisor.js.map +1 -1
- package/packages/install/dist/upgrade.d.ts +77 -3
- package/packages/install/dist/upgrade.d.ts.map +1 -1
- package/packages/install/dist/upgrade.js +325 -43
- package/packages/install/dist/upgrade.js.map +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/delegate.d.ts +8 -0
- package/packages/runtime/dist/delegate.d.ts.map +1 -1
- package/packages/runtime/dist/delegate.js +19 -1
- package/packages/runtime/dist/delegate.js.map +1 -1
- package/packages/runtime/dist/loop.d.ts +2 -0
- package/packages/runtime/dist/loop.d.ts.map +1 -1
- package/packages/runtime/dist/loop.js +18 -4
- package/packages/runtime/dist/loop.js.map +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/availability.d.ts +2 -2
- package/packages/tools/browser/dist/availability.d.ts.map +1 -1
- package/packages/tools/browser/dist/availability.js +2 -2
- package/packages/tools/browser/dist/availability.js.map +1 -1
- package/packages/tools/browser/dist/controller.d.ts +82 -58
- package/packages/tools/browser/dist/controller.d.ts.map +1 -1
- package/packages/tools/browser/dist/controller.js +823 -217
- package/packages/tools/browser/dist/controller.js.map +1 -1
- package/packages/tools/browser/dist/driver.d.ts +3 -1
- package/packages/tools/browser/dist/driver.d.ts.map +1 -1
- package/packages/tools/browser/dist/driver.js +82 -1
- package/packages/tools/browser/dist/driver.js.map +1 -1
- package/packages/tools/browser/dist/extension.d.ts +70 -5
- package/packages/tools/browser/dist/extension.d.ts.map +1 -1
- package/packages/tools/browser/dist/extension.js +94 -9
- package/packages/tools/browser/dist/extension.js.map +1 -1
- package/packages/tools/browser/dist/index.d.ts +17 -7
- package/packages/tools/browser/dist/index.d.ts.map +1 -1
- package/packages/tools/browser/dist/index.js +35 -15
- package/packages/tools/browser/dist/index.js.map +1 -1
- package/packages/tools/browser/dist/logins.d.ts +150 -0
- package/packages/tools/browser/dist/logins.d.ts.map +1 -0
- package/packages/tools/browser/dist/logins.js +476 -0
- package/packages/tools/browser/dist/logins.js.map +1 -0
- package/packages/tools/browser/dist/manager.d.ts +39 -21
- package/packages/tools/browser/dist/manager.d.ts.map +1 -1
- package/packages/tools/browser/dist/manager.js +229 -136
- package/packages/tools/browser/dist/manager.js.map +1 -1
- package/packages/tools/browser/dist/routes.d.ts +151 -0
- package/packages/tools/browser/dist/routes.d.ts.map +1 -0
- package/packages/tools/browser/dist/routes.js +331 -0
- package/packages/tools/browser/dist/routes.js.map +1 -0
- package/packages/tools/browser/dist/secrets.d.ts +3 -1
- package/packages/tools/browser/dist/secrets.d.ts.map +1 -1
- package/packages/tools/browser/dist/secrets.js +10 -6
- package/packages/tools/browser/dist/secrets.js.map +1 -1
- package/packages/tools/browser/dist/service.d.ts +182 -115
- package/packages/tools/browser/dist/service.d.ts.map +1 -1
- package/packages/tools/browser/dist/service.js +491 -388
- package/packages/tools/browser/dist/service.js.map +1 -1
- package/packages/tools/browser/dist/settings.d.ts +88 -0
- package/packages/tools/browser/dist/settings.d.ts.map +1 -0
- package/packages/tools/browser/dist/settings.js +86 -0
- package/packages/tools/browser/dist/settings.js.map +1 -0
- package/packages/tools/browser/dist/telemetry.d.ts +203 -0
- package/packages/tools/browser/dist/telemetry.d.ts.map +1 -0
- package/packages/tools/browser/dist/telemetry.js +142 -0
- package/packages/tools/browser/dist/telemetry.js.map +1 -0
- package/packages/tools/browser/dist/types.d.ts +102 -3
- package/packages/tools/browser/dist/types.d.ts.map +1 -1
- package/packages/tools/browser/dist/types.js +27 -9
- package/packages/tools/browser/dist/types.js.map +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/index-DYfeUW-0.css +1 -0
- package/packages/web/dist/assets/index-vpc904_b.js +146 -0
- package/packages/web/dist/assets/{lottie_light-CKJ88Yuk.js → lottie_light-BFAMYgLA.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/precache.json +4 -4
- package/node_modules/@buddi/gateway/dist/web/apps.d.ts +0 -18
- package/node_modules/@buddi/gateway/dist/web/apps.d.ts.map +0 -1
- package/node_modules/@buddi/gateway/dist/web/apps.js +0 -84
- package/node_modules/@buddi/gateway/dist/web/apps.js.map +0 -1
- package/node_modules/@buddi/gateway/dist/web/tailscale.d.ts.map +0 -1
- package/node_modules/@buddi/gateway/dist/web/tailscale.js.map +0 -1
- package/node_modules/@buddi/tool-browser/dist/computer.d.ts +0 -153
- package/node_modules/@buddi/tool-browser/dist/computer.d.ts.map +0 -1
- package/node_modules/@buddi/tool-browser/dist/computer.js +0 -392
- package/node_modules/@buddi/tool-browser/dist/computer.js.map +0 -1
- package/node_modules/@buddi/tool-browser/dist/native/buddi-computer +0 -0
- package/node_modules/pino/test/browser-bindings.test.js +0 -114
- package/node_modules/pino/test/browser-redaction.test.js +0 -264
- package/node_modules/pino/test/browser-set-bindings.test.js +0 -99
- package/node_modules/pino/test/caller.test.js +0 -20
- package/node_modules/pino/test/fixtures/caller-loop.js +0 -6
- package/node_modules/pino/test/smoke.js +0 -59
- package/node_modules/pino/test/types/pino-import.tst.cts +0 -30
- package/node_modules/pino/test/types/pino-import.tst.js +0 -73
- package/node_modules/pino/test/types/pino-multistream.tst.ts +0 -49
- package/node_modules/pino/test/types/pino-top-export.tst.ts +0 -32
- package/node_modules/pino/test/types/pino-type-only.tst.ts +0 -77
- package/node_modules/pino/test/types/tsconfig.json +0 -10
- package/packages/gateway/dist/web/apps.d.ts +0 -18
- package/packages/gateway/dist/web/apps.d.ts.map +0 -1
- package/packages/gateway/dist/web/apps.js +0 -84
- package/packages/gateway/dist/web/apps.js.map +0 -1
- package/packages/gateway/dist/web/tailscale.d.ts.map +0 -1
- package/packages/gateway/dist/web/tailscale.js.map +0 -1
- package/packages/tools/browser/dist/computer.d.ts +0 -153
- package/packages/tools/browser/dist/computer.d.ts.map +0 -1
- package/packages/tools/browser/dist/computer.js +0 -392
- package/packages/tools/browser/dist/computer.js.map +0 -1
- package/packages/tools/browser/dist/native/buddi-computer +0 -0
- package/packages/web/dist/assets/index-CN1AXMI1.css +0 -1
- package/packages/web/dist/assets/index-CQRE9LJX.js +0 -145
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A mission run parked on the owner (docs/browser.md, "Missions").
|
|
3
|
+
*
|
|
4
|
+
* A mission that opted in (`browser: own`) looks at pages in buddi's own
|
|
5
|
+
* browser while nobody is there. Four moments in that browser need a person —
|
|
6
|
+
* Look? (a click that may not have landed), Keep going? (the task's steps or
|
|
7
|
+
* hour are spent), Sign in, Human check — and on an interactive surface each
|
|
8
|
+
* is a question card in the chat. In a mission there is no chat to hold it,
|
|
9
|
+
* so the card becomes an owner notification with an action and the run parks:
|
|
10
|
+
*
|
|
11
|
+
* the card the same question card `conversation.ask` records
|
|
12
|
+
* (`core.questions`), open for the parking time, in the
|
|
13
|
+
* mission's own conversation;
|
|
14
|
+
* the reach a `question` notification (always reaches, even in a
|
|
15
|
+
* focus), drawn with the card's buttons on Telegram and
|
|
16
|
+
* held on Home / Needs you as "Asked you a question";
|
|
17
|
+
* the run a suspended job (`awaiting-owner:<question id>`), holding
|
|
18
|
+
* no worker, no transaction and no model call.
|
|
19
|
+
*
|
|
20
|
+
* The answer, from any of those places, resumes the job in the same
|
|
21
|
+
* conversation with the owner's words as its next turn. No answer within the
|
|
22
|
+
* parking time (an hour by default, `missionWaitMinutes` in the browser's
|
|
23
|
+
* settings) and the run ends as "needed you" with one report line — never
|
|
24
|
+
* silently.
|
|
25
|
+
*
|
|
26
|
+
* The job is tied to its question before the card goes out, and an answer is
|
|
27
|
+
* written onto the job in the same statement that wakes it: an answer that
|
|
28
|
+
* lands while the worker is still suspending the job is kept there, and the
|
|
29
|
+
* suspension wakes the job when it finds one (`wakeIf`).
|
|
30
|
+
*
|
|
31
|
+
* A mission's own question parks the same way (docs/browser.md, "Any mission
|
|
32
|
+
* may ask"): an unattended run may call `conversation.ask` once, and its
|
|
33
|
+
* question becomes the card, with its choices as the buttons.
|
|
34
|
+
*
|
|
35
|
+
* Take over is a wait of its own: the run parks again, on the page rather
|
|
36
|
+
* than a card (`page:<conversation>`), until the owner gives the page back.
|
|
37
|
+
*/
|
|
38
|
+
import { askQuestion, appendEvent, closeQuestion, notifyOwner, questionKey, resumeJob, } from '@buddi/core';
|
|
39
|
+
import { QUESTION_ASKED, QUESTION_CLEARED } from '../web/attention.js';
|
|
40
|
+
/** The suspended reason a parked mission job carries. */
|
|
41
|
+
export const PARKED_REASON_PREFIX = 'awaiting-owner:';
|
|
42
|
+
/** The parking time when the browser has no setting to read. */
|
|
43
|
+
export const DEFAULT_MISSION_WAIT_MS = 60 * 60_000;
|
|
44
|
+
export function parkedRunOf(value) {
|
|
45
|
+
if (typeof value !== 'object' || value === null)
|
|
46
|
+
return null;
|
|
47
|
+
const p = value;
|
|
48
|
+
if (typeof p.questionId !== 'string' || typeof p.conversationId !== 'string' || typeof p.until !== 'string')
|
|
49
|
+
return null;
|
|
50
|
+
return {
|
|
51
|
+
questionId: p.questionId,
|
|
52
|
+
conversationId: p.conversationId,
|
|
53
|
+
question: typeof p.question === 'string' ? p.question : '',
|
|
54
|
+
until: p.until,
|
|
55
|
+
waitMs: typeof p.waitMs === 'number' && p.waitMs > 0 ? p.waitMs : DEFAULT_MISSION_WAIT_MS,
|
|
56
|
+
...(p.handback === true ? { handback: true } : {}),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** The question id a run parked on a taken-over page waits under: the page, not a card. */
|
|
60
|
+
export function handbackQuestionId(conversationId) {
|
|
61
|
+
return `page:${conversationId}`;
|
|
62
|
+
}
|
|
63
|
+
/** A real question card's id (a run parked on a page has no card to close). */
|
|
64
|
+
export function isCardQuestion(questionId) {
|
|
65
|
+
return !questionId.startsWith('page:');
|
|
66
|
+
}
|
|
67
|
+
/** What the run is told when the owner took the page themselves and gave it back. */
|
|
68
|
+
export const GAVE_BACK_ANSWER = 'I took over the page myself and gave it back.';
|
|
69
|
+
export function parkedAnswerOf(value) {
|
|
70
|
+
if (typeof value !== 'object' || value === null)
|
|
71
|
+
return null;
|
|
72
|
+
const p = value;
|
|
73
|
+
if (typeof p.questionId !== 'string')
|
|
74
|
+
return null;
|
|
75
|
+
return {
|
|
76
|
+
questionId: p.questionId,
|
|
77
|
+
...(typeof p.text === 'string' ? { text: p.text } : {}),
|
|
78
|
+
...(p.timedOut === true ? { timedOut: true } : {}),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** "an hour", "45 minutes": how long it waited, in the report line. */
|
|
82
|
+
export function waitWords(ms) {
|
|
83
|
+
const minutes = Math.max(1, Math.round(ms / 60_000));
|
|
84
|
+
if (minutes % 60 === 0) {
|
|
85
|
+
const hours = minutes / 60;
|
|
86
|
+
return hours === 1 ? 'an hour' : `${hours} hours`;
|
|
87
|
+
}
|
|
88
|
+
return `${minutes} minutes`;
|
|
89
|
+
}
|
|
90
|
+
/** The one line a run that waited in vain delivers. */
|
|
91
|
+
export function neededYouLine(input) {
|
|
92
|
+
// A browser card is its title, a newline and a line of why: the title is what was asked.
|
|
93
|
+
const title = (input.question.trim().split('\n')[0] ?? '').trim().replace(/\s+/g, ' ');
|
|
94
|
+
const asked = /[.?!]$/.test(title) ? title : `${title}.`;
|
|
95
|
+
if (input.handback) {
|
|
96
|
+
return `${input.missionName} waited for you to give the page back and stopped: "${asked}" The page was not given back within ${waitWords(input.waitedMs)}, so it ended there. Run it again from Missions when you are done with it.`;
|
|
97
|
+
}
|
|
98
|
+
return `${input.missionName} needed you and stopped: "${asked}" No answer came within ${waitWords(input.waitedMs)}, so it ended there. Run it again from Missions when you can take a look.`;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Put the card in front of the owner and say how the run waits. Returns what
|
|
102
|
+
* the job writes on itself; the caller returns the suspension.
|
|
103
|
+
*/
|
|
104
|
+
export async function parkMissionRun(deps, input) {
|
|
105
|
+
const now = deps.now();
|
|
106
|
+
const until = new Date(now.getTime() + input.waitMs);
|
|
107
|
+
// The owner may also say it in their own words ("take over", "skip it"): the browser reads answers loosely.
|
|
108
|
+
const question = await askQuestion(deps.pool, {
|
|
109
|
+
agentId: input.agentId,
|
|
110
|
+
conversationId: input.conversationId,
|
|
111
|
+
question: input.asked.question,
|
|
112
|
+
options: input.asked.options,
|
|
113
|
+
allowOther: true,
|
|
114
|
+
now,
|
|
115
|
+
ttlMs: input.waitMs,
|
|
116
|
+
});
|
|
117
|
+
// Home / Needs you and the agent's face: "Asked you a question", for the parking time rather than fifteen minutes.
|
|
118
|
+
await appendEvent(deps.pool, QUESTION_ASKED, { agentId: input.agentId, questionId: question.id, missionId: input.missionId, until: until.toISOString() }, input.conversationId);
|
|
119
|
+
const parked = { questionId: question.id, conversationId: input.conversationId, question: question.question, until: until.toISOString(), waitMs: input.waitMs };
|
|
120
|
+
// Before anyone can see the card: an answer that comes back at once finds this job.
|
|
121
|
+
if (input.jobId)
|
|
122
|
+
await tieJob(deps.pool, input.jobId, parked);
|
|
123
|
+
try {
|
|
124
|
+
await notifyOwner(deps.pool, { now: deps.now, ...(deps.timezone ? { timezone: deps.timezone } : {}), ...(deps.log ? { log: deps.log } : {}) }, {
|
|
125
|
+
kind: 'question',
|
|
126
|
+
urgency: 'now',
|
|
127
|
+
title: `${input.missionName}: ${question.question}`,
|
|
128
|
+
text: input.browser === false
|
|
129
|
+
? `It is running while you are away and needs your answer to carry on. It waits ${waitWords(input.waitMs)}, then stops and tells you.`
|
|
130
|
+
: `It is running while you are away, in buddi's own browser, and needs you here. It waits ${waitWords(input.waitMs)}, then stops and tells you.`,
|
|
131
|
+
action: question.question,
|
|
132
|
+
link: { route: `#/chat/${encodeURIComponent(input.agentId)}/${encodeURIComponent(input.conversationId)}` },
|
|
133
|
+
agentId: input.agentId,
|
|
134
|
+
dedupeKey: questionKey(question.id),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
// The card is stored and Home shows it: a channel that failed costs the phone, never the run.
|
|
139
|
+
deps.log?.(`mission ${input.missionId}: could not send the card as a notification: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
|
+
}
|
|
141
|
+
await appendEvent(deps.pool, 'mission.parked', { missionId: input.missionId, agentId: input.agentId, questionId: question.id, until: until.toISOString() }, input.conversationId);
|
|
142
|
+
return parked;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Park on the page the owner just took over: no card and no notification (the
|
|
146
|
+
* owner is at the page already). The run waits until the page is given back
|
|
147
|
+
* (`resumeParkedForPage`), or until the parking time runs out.
|
|
148
|
+
*/
|
|
149
|
+
export async function parkForHandback(deps, input) {
|
|
150
|
+
const until = new Date(deps.now().getTime() + input.waitMs);
|
|
151
|
+
const parked = { questionId: handbackQuestionId(input.conversationId), conversationId: input.conversationId, question: input.question, until: until.toISOString(), waitMs: input.waitMs, handback: true };
|
|
152
|
+
if (input.jobId)
|
|
153
|
+
await tieJob(deps.pool, input.jobId, parked);
|
|
154
|
+
await appendEvent(deps.pool, 'mission.parked', { missionId: input.missionId, agentId: input.agentId, questionId: parked.questionId, until: parked.until, handback: true }, input.conversationId);
|
|
155
|
+
return parked;
|
|
156
|
+
}
|
|
157
|
+
/** Write what the run waits on onto its (still leased) job, with no answer yet. */
|
|
158
|
+
async function tieJob(pool, jobId, parked) {
|
|
159
|
+
await pool.query(`update core.jobs
|
|
160
|
+
set payload = coalesce(payload, '{}'::jsonb) || jsonb_build_object('parked', $2::jsonb, 'answer', null),
|
|
161
|
+
updated_at = now()
|
|
162
|
+
where id = $1::uuid and state = 'leased'`, [jobId, JSON.stringify(parked)]);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Hand an answer to the job parked on `questionId`, in one statement: a job
|
|
166
|
+
* already suspended is woken with it; a job still being suspended (its worker
|
|
167
|
+
* has not landed the suspension yet) keeps it in its payload, and the
|
|
168
|
+
* suspension wakes it (`wakeIf`). An answer already given is never replaced.
|
|
169
|
+
* Returns the job's id, or null when no run waits on this question.
|
|
170
|
+
*/
|
|
171
|
+
async function answerParkedJob(pool, questionId, answer) {
|
|
172
|
+
const { rows } = await pool.query(`update core.jobs
|
|
173
|
+
set payload = coalesce(payload, '{}'::jsonb) || jsonb_build_object('answer', $2::jsonb),
|
|
174
|
+
state = case when state = 'suspended' then 'pending' else state end,
|
|
175
|
+
suspended_reason = case when state = 'suspended' then null else suspended_reason end,
|
|
176
|
+
run_after = case when state = 'suspended' then now() else run_after end,
|
|
177
|
+
attempts = case when state = 'suspended' and attempts > 0 then attempts - 1 else attempts end,
|
|
178
|
+
updated_at = now()
|
|
179
|
+
where payload->'parked'->>'questionId' = $1
|
|
180
|
+
and ((state = 'suspended' and suspended_reason = $3) or state = 'leased')
|
|
181
|
+
and coalesce(payload->'answer'->>'questionId', '') <> $1
|
|
182
|
+
returning id, state, kind, conversation_id`, [questionId, JSON.stringify(answer), `${PARKED_REASON_PREFIX}${questionId}`]);
|
|
183
|
+
const row = rows[0];
|
|
184
|
+
if (!row)
|
|
185
|
+
return null;
|
|
186
|
+
if (row.state === 'pending') {
|
|
187
|
+
await appendEvent(pool, 'job.resumed', { jobId: row.id, kind: row.kind, patched: ['answer'] }, row.conversation_id ?? undefined).catch(() => undefined);
|
|
188
|
+
}
|
|
189
|
+
return row.id;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* The owner answered a question card. If a parked mission run is waiting on
|
|
193
|
+
* it, wake that run with the answer and say so (`true`): the surface then
|
|
194
|
+
* starts no turn of its own. `false` for every ordinary question.
|
|
195
|
+
*/
|
|
196
|
+
export async function resumeParkedForQuestion(pool, question, answerText) {
|
|
197
|
+
const answer = { questionId: question.id, text: question.answer ?? answerText ?? '' };
|
|
198
|
+
if (!(await answerParkedJob(pool, question.id, answer)))
|
|
199
|
+
return false;
|
|
200
|
+
// The face and Home stop saying "Asked you a question".
|
|
201
|
+
await appendEvent(pool, QUESTION_CLEARED, { agentId: question.agentId }, question.conversationId).catch(() => undefined);
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The owner gave back a page in this conversation. A mission run waiting on
|
|
206
|
+
* it carries on: one parked on the page after Take over, or one still parked
|
|
207
|
+
* on its card (the owner took the page from the Canvas rather than the card;
|
|
208
|
+
* that card is closed). `true` when a run was woken.
|
|
209
|
+
*/
|
|
210
|
+
export async function resumeParkedForPage(pool, conversationId, now) {
|
|
211
|
+
const handback = handbackQuestionId(conversationId);
|
|
212
|
+
if (await answerParkedJob(pool, handback, { questionId: handback, text: GAVE_BACK_ANSWER }))
|
|
213
|
+
return true;
|
|
214
|
+
const { rows } = await pool.query(`select payload->'parked'->>'questionId' as question_id
|
|
215
|
+
from core.jobs
|
|
216
|
+
where payload->'parked'->>'conversationId' = $1
|
|
217
|
+
and ((state = 'suspended' and suspended_reason like $2) or state = 'leased')
|
|
218
|
+
and coalesce(payload->'answer'->>'questionId', '') <> coalesce(payload->'parked'->>'questionId', '')
|
|
219
|
+
order by updated_at desc limit 1`, [conversationId, `${PARKED_REASON_PREFIX}%`]);
|
|
220
|
+
const questionId = rows[0]?.question_id;
|
|
221
|
+
if (!questionId)
|
|
222
|
+
return false;
|
|
223
|
+
if (!(await answerParkedJob(pool, questionId, { questionId, text: GAVE_BACK_ANSWER })))
|
|
224
|
+
return false;
|
|
225
|
+
if (isCardQuestion(questionId)) {
|
|
226
|
+
const closed = await pool.query(`update core.questions set answered_at = $2, answered_via = 'browser', answer = $3
|
|
227
|
+
where id = $1::uuid and answered_at is null returning agent_id`, [questionId, now, GAVE_BACK_ANSWER]).catch(() => ({ rows: [] }));
|
|
228
|
+
if (closed.rows[0])
|
|
229
|
+
await appendEvent(pool, QUESTION_CLEARED, { agentId: closed.rows[0].agent_id }, conversationId).catch(() => undefined);
|
|
230
|
+
}
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The clock's half: every parked run whose time is up is closed and woken as
|
|
235
|
+
* timed out; its handler delivers the "needed you" line. Safe to run from two
|
|
236
|
+
* processes: the resume is guarded by the job's state.
|
|
237
|
+
*/
|
|
238
|
+
export async function expireParkedRuns(pool, now) {
|
|
239
|
+
const { rows } = await pool.query(`select id, payload->'parked'->>'questionId' as question_id
|
|
240
|
+
from core.jobs
|
|
241
|
+
where state = 'suspended'
|
|
242
|
+
and suspended_reason like $1
|
|
243
|
+
and payload->'parked'->>'until' is not null
|
|
244
|
+
and (payload->'parked'->>'until')::timestamptz <= $2`, [`${PARKED_REASON_PREFIX}%`, now]);
|
|
245
|
+
let woken = 0;
|
|
246
|
+
for (const row of rows) {
|
|
247
|
+
if (row.question_id && isCardQuestion(row.question_id))
|
|
248
|
+
await closeQuestion(pool, { id: row.question_id, via: 'timeout', now }).catch(() => false);
|
|
249
|
+
const answer = { questionId: row.question_id, timedOut: true };
|
|
250
|
+
if (await resumeJob(pool, row.id, { payloadPatch: { answer } }))
|
|
251
|
+
woken++;
|
|
252
|
+
}
|
|
253
|
+
return woken;
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=parked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parked.js","sourceRoot":"","sources":["../../src/missions/parked.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAwBnD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzH,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC1D,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB;QACzF,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,kBAAkB,CAAC,cAAsB;IACvD,OAAO,QAAQ,cAAc,EAAE,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEhF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,GAAG,EAAE,CAAC;QAC3B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,OAAO,UAAU,CAAC;AAC9B,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,KAAsF;IAClH,yFAAyF;IACzF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IACzD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,GAAG,KAAK,CAAC,WAAW,uDAAuD,KAAK,wCAAwC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IACvO,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,WAAW,6BAA6B,KAAK,2BAA2B,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,2EAA2E,CAAC;AAC/L,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAc,EACd,KAWC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,4GAA4G;IAC5G,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;QAC5C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;QAC9B,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;QAC5B,UAAU,EAAE,IAAI;QAChB,GAAG;QACH,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,mHAAmH;IACnH,MAAM,WAAW,CACf,IAAI,CAAC,IAAI,EACT,cAAc,EACd,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,EAC3G,KAAK,CAAC,cAAc,CACrB,CAAC;IACF,MAAM,MAAM,GAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC3K,oFAAoF;IACpF,IAAI,KAAK,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7I,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,QAAQ,EAAE;YACnD,IAAI,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK;gBAC3B,CAAC,CAAC,gFAAgF,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B;gBACtI,CAAC,CAAC,0FAA0F,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B;YAClJ,MAAM,EAAE,QAAQ,CAAC,QAAQ;YACzB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE;YAC1G,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8FAA8F;QAC9F,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,KAAK,CAAC,SAAS,gDAAgD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3I,CAAC;IACD,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAClL,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAc,EACd,KAAuH;IAEvH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAc,EAAE,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrN,IAAI,KAAK,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjM,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,KAAa,EAAE,MAAiB;IAChE,MAAM,IAAI,CAAC,KAAK,CACd;;;+CAG2C,EAC3C,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,UAAkB,EAAE,MAAoB;IACjF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;;;;;;;;;iDAU6C,EAC7C,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,GAAG,UAAU,EAAE,CAAC,CAC7E,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1J,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAU,EACV,QAAwE,EACxE,UAAmB;IAEnB,MAAM,MAAM,GAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;IACpG,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,wDAAwD;IACxD,MAAM,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,cAAsB,EAAE,GAAS;IACrF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACzG,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;;;;uCAKmC,EACnC,CAAC,cAAc,EAAE,GAAG,oBAAoB,GAAG,CAAC,CAC7C,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACxC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrG,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;uEACiE,EACjE,CAAC,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,CACpC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAiC,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7I,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAU,EAAE,GAAS;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;;;;6DAKyD,EACzD,CAAC,GAAG,oBAAoB,GAAG,EAAE,GAAG,CAAC,CAClC,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACnJ,MAAM,MAAM,GAAiB,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7E,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;YAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { runScheduler, runWorker, type Job, type JobHandler, type Mission, type
|
|
|
3
3
|
import type { Pool } from 'pg';
|
|
4
4
|
import type { ApprovalResume } from '@buddi/runtime';
|
|
5
5
|
import { type MissionRunControl, type MissionRunResult } from './missions/execute.js';
|
|
6
|
+
import { type ParkedAnswer, type ParkedRun } from './missions/parked.js';
|
|
6
7
|
import { createInlineMissionRunner, type InlineMissionDeps } from './missions/inline.js';
|
|
7
8
|
/**
|
|
8
9
|
* `/recap` now lives in `missions/inline.ts`, so a surface that is not this
|
|
@@ -65,6 +66,8 @@ export declare const REMINDER_TICK_MS = 60000;
|
|
|
65
66
|
* speak, it only notices — the aggregation window inside it decides that.
|
|
66
67
|
*/
|
|
67
68
|
export declare const DEAD_LETTER_TICK_MS = 60000;
|
|
69
|
+
/** How often parked mission runs are checked for a parking time that ran out. */
|
|
70
|
+
export declare const PARKED_TICK_MS = 60000;
|
|
68
71
|
/** How often held and shown notifications are looked at: escalations, quiet hours, the end of the day. */
|
|
69
72
|
export declare const NOTIFICATIONS_TICK_MS = 60000;
|
|
70
73
|
/** The scheduler's kind: run one occurrence of a scheduled mission. */
|
|
@@ -89,6 +92,10 @@ export interface MissionJobPayload {
|
|
|
89
92
|
conversationId: string;
|
|
90
93
|
};
|
|
91
94
|
approval?: ApprovalResume;
|
|
95
|
+
/** Written when the run parks on a browser card (docs/browser.md, "Missions"). */
|
|
96
|
+
parked?: ParkedRun;
|
|
97
|
+
/** Merged in by the owner's answer, or by the clock when nobody answered. */
|
|
98
|
+
answer?: ParkedAnswer;
|
|
92
99
|
}
|
|
93
100
|
/** The three shapes a loop has when it is not running at all: see `idleLoops`. */
|
|
94
101
|
export interface IdleLoops {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":";AAyBA,OAAO,EAuBL,YAAY,EAIZ,SAAS,EAGT,KAAK,GAAG,EACR,KAAK,UAAU,EACf,KAAK,OAAO,EAEZ,KAAK,UAAU,EACf,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAYrD,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAqBzF;;;;GAIG;AACH,OAAO,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAE7D,8EAA8E;AAC9E,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AACjD,eAAO,MAAM,eAAe,QAAc,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,cAAc,QAAS,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE;YAAE,EAAE,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CACxF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,UAAU,GAClB,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAEtC;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,0GAA0G;AAC1G,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,8EAA8E;AAC9E,eAAO,MAAM,SAAS,uCAAkD,CAAC;AAEzE,qFAAqF;AACrF,eAAO,MAAM,cAAc,OAAQ,CAAC;AACpC,eAAO,MAAM,YAAY,QAAc,CAAC;AAExC,sEAAsE;AACtE,eAAO,MAAM,WAAW,oEAC2C,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ import { AGENT_RUN_JOB_KIND, createAgentRunHandler, OFFER_HINT_PREFIX } from './
|
|
|
36
36
|
import { composePrepare, createMissionExecutor, } from './missions/execute.js';
|
|
37
37
|
import { withNudgeBudget } from './missions/getting-started.js';
|
|
38
38
|
import { createDeadLetterWatch } from './missions/dead-letter.js';
|
|
39
|
+
import { expireParkedRuns, parkedAnswerOf, parkedRunOf, PARKED_REASON_PREFIX } from './missions/parked.js';
|
|
39
40
|
import { createInlineMissionRunner } from './missions/inline.js';
|
|
40
41
|
import { createDigestPrepare } from './missions/recap.js';
|
|
41
42
|
import { createMailWatcherPrepare } from './missions/watcher-mail.js';
|
|
@@ -106,6 +107,8 @@ export const REMINDER_TICK_MS = 60_000;
|
|
|
106
107
|
* speak, it only notices — the aggregation window inside it decides that.
|
|
107
108
|
*/
|
|
108
109
|
export const DEAD_LETTER_TICK_MS = 60_000;
|
|
110
|
+
/** How often parked mission runs are checked for a parking time that ran out. */
|
|
111
|
+
export const PARKED_TICK_MS = 60_000;
|
|
109
112
|
/** How often held and shown notifications are looked at: escalations, quiet hours, the end of the day. */
|
|
110
113
|
export const NOTIFICATIONS_TICK_MS = 60_000;
|
|
111
114
|
/** The scheduler's kind: run one occurrence of a scheduled mission. */
|
|
@@ -141,6 +144,8 @@ function missionJobPayload(payload) {
|
|
|
141
144
|
...(approval && typeof approval.actionId === 'string' && typeof approval.state === 'string'
|
|
142
145
|
? { approval: approval }
|
|
143
146
|
: {}),
|
|
147
|
+
...(parkedRunOf(p.parked) ? { parked: parkedRunOf(p.parked) } : {}),
|
|
148
|
+
...(parkedAnswerOf(p.answer) ? { answer: parkedAnswerOf(p.answer) } : {}),
|
|
144
149
|
};
|
|
145
150
|
}
|
|
146
151
|
/**
|
|
@@ -279,17 +284,23 @@ export function createMissionJobHandler(deps) {
|
|
|
279
284
|
// A job coming back from an approval carries the decision in its payload.
|
|
280
285
|
// The run continues in the conversation it suspended in; the occurrence was
|
|
281
286
|
// deliberately left claimed while it waited.
|
|
287
|
+
// Or back from a browser card: the owner's answer, or the clock saying nobody came.
|
|
288
|
+
const answered = payload.parked && payload.answer && payload.answer.questionId === payload.parked.questionId
|
|
289
|
+
? { parked: payload.parked, ...(payload.answer.text !== undefined ? { text: payload.answer.text } : {}), ...(payload.answer.timedOut ? { timedOut: true } : {}) }
|
|
290
|
+
: null;
|
|
282
291
|
const control = {
|
|
283
292
|
jobId: job.id,
|
|
284
293
|
signal: jobContext.signal,
|
|
285
|
-
...(
|
|
286
|
-
? {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
294
|
+
...(answered
|
|
295
|
+
? { answer: answered }
|
|
296
|
+
: payload.approval && payload.awaiting
|
|
297
|
+
? {
|
|
298
|
+
resume: {
|
|
299
|
+
conversationId: payload.awaiting.conversationId,
|
|
300
|
+
approval: payload.approval,
|
|
301
|
+
},
|
|
302
|
+
}
|
|
303
|
+
: {}),
|
|
293
304
|
};
|
|
294
305
|
try {
|
|
295
306
|
const result = await deps.execute(occurrence, mission, control);
|
|
@@ -300,7 +311,19 @@ export function createMissionJobHandler(deps) {
|
|
|
300
311
|
log(`mission ${mission.id}: suspended on action ${result.awaiting.actionId} — waiting for the owner`);
|
|
301
312
|
return {
|
|
302
313
|
suspended: `awaiting-approval:${result.awaiting.actionId}`,
|
|
303
|
-
|
|
314
|
+
// A browser card answered earlier is done with: only the decision brings this back.
|
|
315
|
+
payloadPatch: { awaiting: result.awaiting, parked: null, answer: null },
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
// Parked on a browser card: the answer, or the parking time running out, brings it back.
|
|
319
|
+
if (result.parked) {
|
|
320
|
+
log(`mission ${mission.id}: parked on the owner's card (question ${result.parked.questionId}) — waiting for the owner until ${result.parked.until}`);
|
|
321
|
+
return {
|
|
322
|
+
suspended: `${PARKED_REASON_PREFIX}${result.parked.questionId}`,
|
|
323
|
+
// No `answer: null` here: the run cleared it when it tied the job to the card, and
|
|
324
|
+
// an answer that came back while this suspension was on its way is kept and wakes it.
|
|
325
|
+
payloadPatch: { parked: result.parked, awaiting: null, approval: null },
|
|
326
|
+
wakeIf: { answer: { questionId: result.parked.questionId } },
|
|
304
327
|
};
|
|
305
328
|
}
|
|
306
329
|
await finishOccurrence(deps.pool, occurrence.id, {
|
|
@@ -628,6 +651,8 @@ export async function main() {
|
|
|
628
651
|
imageReady: async () => wiring.registry.has('image.generate') && (await wiring.registry.readiness('image', wiring.ctx))?.ready === true,
|
|
629
652
|
})),
|
|
630
653
|
askApproval,
|
|
654
|
+
// A mission that browses (`browser: own`): the owner's answer touches its page; the parking time is the browser's setting.
|
|
655
|
+
browser: browserHost(process.env),
|
|
631
656
|
}), {
|
|
632
657
|
pool,
|
|
633
658
|
now,
|
|
@@ -908,6 +933,19 @@ export async function main() {
|
|
|
908
933
|
},
|
|
909
934
|
log: logErr,
|
|
910
935
|
});
|
|
936
|
+
// Mission runs parked on a browser card whose parking time is up: each ends
|
|
937
|
+
// as "needed you" with its one report line (docs/browser.md, "Missions").
|
|
938
|
+
const parkedLoop = recovering ? idle.loop : startLoop({
|
|
939
|
+
name: 'parked-missions',
|
|
940
|
+
everyMs: PARKED_TICK_MS,
|
|
941
|
+
abortAfterMs: PARKED_TICK_MS * 2,
|
|
942
|
+
run: async () => {
|
|
943
|
+
const woken = await expireParkedRuns(pool, now());
|
|
944
|
+
if (woken > 0)
|
|
945
|
+
console.log(`missions: ${woken} parked run${woken === 1 ? '' : 's'} ran out of time waiting for you`);
|
|
946
|
+
},
|
|
947
|
+
log: logErr,
|
|
948
|
+
});
|
|
911
949
|
// Notifications that were shown or held and whose moment came: an unseen
|
|
912
950
|
// one escalates, a focus ends, the day ends (docs/notifications.md).
|
|
913
951
|
const notificationsLoop = recovering ? idle.loop : startLoop({
|
|
@@ -1066,6 +1104,7 @@ export async function main() {
|
|
|
1066
1104
|
reminderLoop.stop();
|
|
1067
1105
|
deadLetterLoop.stop();
|
|
1068
1106
|
notificationsLoop.stop();
|
|
1107
|
+
parkedLoop.stop();
|
|
1069
1108
|
proposalLoop.stop();
|
|
1070
1109
|
requirementsLoop.stop();
|
|
1071
1110
|
datesLoop.stop();
|
|
@@ -1140,6 +1179,7 @@ export async function main() {
|
|
|
1140
1179
|
reminderLoop.stop();
|
|
1141
1180
|
deadLetterLoop.stop();
|
|
1142
1181
|
notificationsLoop.stop();
|
|
1182
|
+
parkedLoop.stop();
|
|
1143
1183
|
proposalLoop.stop();
|
|
1144
1184
|
requirementsLoop.stop();
|
|
1145
1185
|
datesLoop.stop();
|