@geminixiang/mikan 1.0.0-beta.78 → 1.0.0-beta.79
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/CHANGELOG.md +24 -0
- package/dist/adapters/commands/admin.js +1 -1
- package/dist/adapters/commands/admin.js.map +1 -1
- package/dist/adapters/commands/login.d.ts.map +1 -1
- package/dist/adapters/commands/login.js +3 -2
- package/dist/adapters/commands/login.js.map +1 -1
- package/dist/adapters/commands/manifest.d.ts +0 -1
- package/dist/adapters/commands/manifest.d.ts.map +1 -1
- package/dist/adapters/commands/manifest.js.map +1 -1
- package/dist/adapters/commands/model.d.ts +0 -1
- package/dist/adapters/commands/model.d.ts.map +1 -1
- package/dist/adapters/commands/model.js +8 -20
- package/dist/adapters/commands/model.js.map +1 -1
- package/dist/adapters/commands/new.js +1 -1
- package/dist/adapters/commands/new.js.map +1 -1
- package/dist/adapters/commands/registry.js +1 -1
- package/dist/adapters/commands/registry.js.map +1 -1
- package/dist/adapters/commands/sandbox.d.ts +0 -1
- package/dist/adapters/commands/sandbox.d.ts.map +1 -1
- package/dist/adapters/commands/sandbox.js +1 -1
- package/dist/adapters/commands/sandbox.js.map +1 -1
- package/dist/adapters/commands/types.d.ts +6 -17
- package/dist/adapters/commands/types.d.ts.map +1 -1
- package/dist/adapters/commands/types.js.map +1 -1
- package/dist/adapters/commands/utils.d.ts +1 -1
- package/dist/adapters/commands/utils.d.ts.map +1 -1
- package/dist/adapters/commands/utils.js.map +1 -1
- package/dist/adapters/discord/bot.d.ts +4 -10
- package/dist/adapters/discord/bot.d.ts.map +1 -1
- package/dist/adapters/discord/bot.js +26 -22
- package/dist/adapters/discord/bot.js.map +1 -1
- package/dist/adapters/discord/components.d.ts +0 -1
- package/dist/adapters/discord/components.d.ts.map +1 -1
- package/dist/adapters/discord/components.js.map +1 -1
- package/dist/adapters/discord/context.d.ts +3 -3
- package/dist/adapters/discord/context.d.ts.map +1 -1
- package/dist/adapters/discord/context.js +1 -1
- package/dist/adapters/discord/context.js.map +1 -1
- package/dist/adapters/discord/types.d.ts +83 -1
- package/dist/adapters/discord/types.d.ts.map +1 -1
- package/dist/adapters/discord/types.js.map +1 -1
- package/dist/adapters/github/bot.d.ts +4 -5
- package/dist/adapters/github/bot.d.ts.map +1 -1
- package/dist/adapters/github/bot.js +10 -10
- package/dist/adapters/github/bot.js.map +1 -1
- package/dist/adapters/github/client.js +1 -1
- package/dist/adapters/github/client.js.map +1 -1
- package/dist/adapters/github/context.d.ts +3 -4
- package/dist/adapters/github/context.d.ts.map +1 -1
- package/dist/adapters/github/context.js +1 -2
- package/dist/adapters/github/context.js.map +1 -1
- package/dist/adapters/github/github-ops.d.ts +5 -6
- package/dist/adapters/github/github-ops.d.ts.map +1 -1
- package/dist/adapters/github/github-ops.js +1 -2
- package/dist/adapters/github/github-ops.js.map +1 -1
- package/dist/adapters/github/ids.d.ts +0 -3
- package/dist/adapters/github/ids.d.ts.map +1 -1
- package/dist/adapters/github/ids.js +0 -19
- package/dist/adapters/github/ids.js.map +1 -1
- package/dist/adapters/github/repo.d.ts +1 -1
- package/dist/adapters/github/repo.js.map +1 -1
- package/dist/adapters/github/tools/checks.d.ts +6 -4
- package/dist/adapters/github/tools/checks.d.ts.map +1 -1
- package/dist/adapters/github/tools/checks.js +4 -3
- package/dist/adapters/github/tools/checks.js.map +1 -1
- package/dist/adapters/github/tools/issue.d.ts +10 -8
- package/dist/adapters/github/tools/issue.d.ts.map +1 -1
- package/dist/adapters/github/tools/issue.js +4 -3
- package/dist/adapters/github/tools/issue.js.map +1 -1
- package/dist/adapters/github/tools/pr.d.ts +8 -6
- package/dist/adapters/github/tools/pr.d.ts.map +1 -1
- package/dist/adapters/github/tools/pr.js +4 -3
- package/dist/adapters/github/tools/pr.js.map +1 -1
- package/dist/adapters/github/tools/read.d.ts +9 -7
- package/dist/adapters/github/tools/read.d.ts.map +1 -1
- package/dist/adapters/github/tools/read.js +4 -3
- package/dist/adapters/github/tools/read.js.map +1 -1
- package/dist/adapters/github/tools/review-reply.d.ts +6 -4
- package/dist/adapters/github/tools/review-reply.d.ts.map +1 -1
- package/dist/adapters/github/tools/review-reply.js +4 -3
- package/dist/adapters/github/tools/review-reply.js.map +1 -1
- package/dist/adapters/github/tools/sync.d.ts +5 -3
- package/dist/adapters/github/tools/sync.d.ts.map +1 -1
- package/dist/adapters/github/tools/sync.js +4 -3
- package/dist/adapters/github/tools/sync.js.map +1 -1
- package/dist/adapters/github/types.d.ts +5 -4
- package/dist/adapters/github/types.d.ts.map +1 -1
- package/dist/adapters/github/types.js.map +1 -1
- package/dist/adapters/github/webhook.d.ts +0 -1
- package/dist/adapters/github/webhook.d.ts.map +1 -1
- package/dist/adapters/github/webhook.js.map +1 -1
- package/dist/adapters/intake.d.ts +1 -1
- package/dist/adapters/intake.d.ts.map +1 -1
- package/dist/adapters/intake.js.map +1 -1
- package/dist/adapters/markdown-tables.d.ts +0 -1
- package/dist/adapters/markdown-tables.d.ts.map +1 -1
- package/dist/adapters/markdown-tables.js.map +1 -1
- package/dist/adapters/messages.d.ts +1 -1
- package/dist/adapters/messages.d.ts.map +1 -1
- package/dist/adapters/messages.js.map +1 -1
- package/dist/adapters/progressive-renderer.d.ts +1 -1
- package/dist/adapters/progressive-renderer.d.ts.map +1 -1
- package/dist/adapters/progressive-renderer.js +8 -6
- package/dist/adapters/progressive-renderer.js.map +1 -1
- package/dist/adapters/shared.d.ts +6 -4
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/shared.js +39 -25
- package/dist/adapters/shared.js.map +1 -1
- package/dist/adapters/slack/assistant.d.ts +0 -1
- package/dist/adapters/slack/assistant.d.ts.map +1 -1
- package/dist/adapters/slack/assistant.js +2 -1
- package/dist/adapters/slack/assistant.js.map +1 -1
- package/dist/adapters/slack/bot.d.ts +5 -10
- package/dist/adapters/slack/bot.d.ts.map +1 -1
- package/dist/adapters/slack/bot.js +84 -86
- package/dist/adapters/slack/bot.js.map +1 -1
- package/dist/adapters/slack/context.d.ts +3 -5
- package/dist/adapters/slack/context.d.ts.map +1 -1
- package/dist/adapters/slack/context.js +1 -2
- package/dist/adapters/slack/context.js.map +1 -1
- package/dist/adapters/slack/jev-context.d.ts.map +1 -1
- package/dist/adapters/slack/jev-context.js +4 -2
- package/dist/adapters/slack/jev-context.js.map +1 -1
- package/dist/adapters/slack/response-lifecycle.d.ts +3 -4
- package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
- package/dist/adapters/slack/response-lifecycle.js +5 -3
- package/dist/adapters/slack/response-lifecycle.js.map +1 -1
- package/dist/adapters/slack/session.d.ts +1 -1
- package/dist/adapters/slack/session.d.ts.map +1 -1
- package/dist/adapters/slack/session.js.map +1 -1
- package/dist/adapters/slack/task-intent.js +1 -1
- package/dist/adapters/slack/task-intent.js.map +1 -1
- package/dist/adapters/slack/task-status.d.ts.map +1 -1
- package/dist/adapters/slack/task-status.js +2 -1
- package/dist/adapters/slack/task-status.js.map +1 -1
- package/dist/adapters/slack/tool-pack.d.ts +0 -1
- package/dist/adapters/slack/tool-pack.d.ts.map +1 -1
- package/dist/adapters/slack/tool-pack.js +2 -1
- package/dist/adapters/slack/tool-pack.js.map +1 -1
- package/dist/adapters/slack/tools/blockkit.d.ts +9 -7
- package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -1
- package/dist/adapters/slack/tools/blockkit.js +6 -4
- package/dist/adapters/slack/tools/blockkit.js.map +1 -1
- package/dist/adapters/slack/types.d.ts +36 -2
- package/dist/adapters/slack/types.d.ts.map +1 -1
- package/dist/adapters/slack/types.js.map +1 -1
- package/dist/adapters/telegram/bot.d.ts +3 -8
- package/dist/adapters/telegram/bot.d.ts.map +1 -1
- package/dist/adapters/telegram/bot.js +11 -11
- package/dist/adapters/telegram/bot.js.map +1 -1
- package/dist/adapters/telegram/context.d.ts +3 -3
- package/dist/adapters/telegram/context.d.ts.map +1 -1
- package/dist/adapters/telegram/context.js +2 -2
- package/dist/adapters/telegram/context.js.map +1 -1
- package/dist/adapters/telegram/types.d.ts +24 -1
- package/dist/adapters/telegram/types.d.ts.map +1 -1
- package/dist/adapters/telegram/types.js.map +1 -1
- package/dist/adapters/types.d.ts +1 -2
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/adapters/web/admin/client-assets.d.ts +1 -1
- package/dist/adapters/web/admin/client-assets.d.ts.map +1 -1
- package/dist/adapters/web/admin/client-assets.js +3 -2
- package/dist/adapters/web/admin/client-assets.js.map +1 -1
- package/dist/adapters/web/admin/portal.d.ts +4 -11
- package/dist/adapters/web/admin/portal.d.ts.map +1 -1
- package/dist/adapters/web/admin/portal.js +27 -30
- package/dist/adapters/web/admin/portal.js.map +1 -1
- package/dist/adapters/web/admin/provider-models.d.ts +1 -1
- package/dist/adapters/web/admin/provider-models.d.ts.map +1 -1
- package/dist/adapters/web/admin/provider-models.js.map +1 -1
- package/dist/adapters/web/admin/types.d.ts +10 -4
- package/dist/adapters/web/admin/types.d.ts.map +1 -1
- package/dist/adapters/web/admin/types.js.map +1 -1
- package/dist/adapters/web/login/oauth.d.ts +0 -1
- package/dist/adapters/web/login/oauth.d.ts.map +1 -1
- package/dist/adapters/web/login/oauth.js +12 -12
- package/dist/adapters/web/login/oauth.js.map +1 -1
- package/dist/adapters/web/login/portal.d.ts +3 -6
- package/dist/adapters/web/login/portal.d.ts.map +1 -1
- package/dist/adapters/web/login/portal.js +5 -4
- package/dist/adapters/web/login/portal.js.map +1 -1
- package/dist/adapters/web/login/types.d.ts +1 -1
- package/dist/adapters/web/login/types.d.ts.map +1 -1
- package/dist/adapters/web/login/types.js.map +1 -1
- package/dist/adapters/web/portal-shell.d.ts +0 -1
- package/dist/adapters/web/portal-shell.d.ts.map +1 -1
- package/dist/adapters/web/portal-shell.js.map +1 -1
- package/dist/adapters/web/server.d.ts +6 -6
- package/dist/adapters/web/server.d.ts.map +1 -1
- package/dist/adapters/web/server.js +3 -2
- package/dist/adapters/web/server.js.map +1 -1
- package/dist/adapters/web/session-view/portal.d.ts +2 -3
- package/dist/adapters/web/session-view/portal.d.ts.map +1 -1
- package/dist/adapters/web/session-view/portal.js +12 -12
- package/dist/adapters/web/session-view/portal.js.map +1 -1
- package/dist/adapters/web/session-view/types.d.ts +1 -11
- package/dist/adapters/web/session-view/types.d.ts.map +1 -1
- package/dist/adapters/web/session-view/types.js.map +1 -1
- package/dist/adapters/web/token-store.d.ts +0 -1
- package/dist/adapters/web/token-store.d.ts.map +1 -1
- package/dist/adapters/web/token-store.js.map +1 -1
- package/dist/cli/boot.d.ts +0 -1
- package/dist/cli/boot.d.ts.map +1 -1
- package/dist/cli/boot.js +4 -4
- package/dist/cli/boot.js.map +1 -1
- package/dist/cli/office.d.ts.map +1 -1
- package/dist/cli/office.js +4 -3
- package/dist/cli/office.js.map +1 -1
- package/dist/cli/onboard.js +1 -1
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli/sandbox.d.ts.map +1 -1
- package/dist/cli/sandbox.js +2 -1
- package/dist/cli/sandbox.js.map +1 -1
- package/dist/cli/sessions.d.ts.map +1 -1
- package/dist/cli/sessions.js +2 -1
- package/dist/cli/sessions.js.map +1 -1
- package/dist/env-manifest.d.ts +1 -1
- package/dist/env-manifest.d.ts.map +1 -1
- package/dist/env-manifest.js.map +1 -1
- package/dist/events/index.d.ts +3 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +11 -10
- package/dist/events/index.js.map +1 -1
- package/dist/events/scheduler.d.ts +1 -2
- package/dist/events/scheduler.d.ts.map +1 -1
- package/dist/events/scheduler.js +4 -4
- package/dist/events/scheduler.js.map +1 -1
- package/dist/file-guards.d.ts +8 -6
- package/dist/file-guards.d.ts.map +1 -1
- package/dist/file-guards.js +10 -15
- package/dist/file-guards.js.map +1 -1
- package/dist/harness/execution-env.d.ts +1 -1
- package/dist/harness/execution-env.d.ts.map +1 -1
- package/dist/harness/execution-env.js +7 -6
- package/dist/harness/execution-env.js.map +1 -1
- package/dist/harness/execution-resolver.d.ts +4 -6
- package/dist/harness/execution-resolver.d.ts.map +1 -1
- package/dist/harness/execution-resolver.js +1 -1
- package/dist/harness/execution-resolver.js.map +1 -1
- package/dist/harness/jev.d.ts +1 -1
- package/dist/harness/jev.d.ts.map +1 -1
- package/dist/harness/jev.js +1 -4
- package/dist/harness/jev.js.map +1 -1
- package/dist/harness/mcp-result.d.ts.map +1 -1
- package/dist/harness/mcp-result.js +15 -7
- package/dist/harness/mcp-result.js.map +1 -1
- package/dist/harness/mcp.d.ts +0 -2
- package/dist/harness/mcp.d.ts.map +1 -1
- package/dist/harness/mcp.js +13 -15
- package/dist/harness/mcp.js.map +1 -1
- package/dist/harness/models.d.ts +0 -1
- package/dist/harness/models.d.ts.map +1 -1
- package/dist/harness/models.js +2 -1
- package/dist/harness/models.js.map +1 -1
- package/dist/harness/open-connector.d.ts +2 -3
- package/dist/harness/open-connector.d.ts.map +1 -1
- package/dist/harness/open-connector.js +13 -9
- package/dist/harness/open-connector.js.map +1 -1
- package/dist/harness/presenter.d.ts +4 -25
- package/dist/harness/presenter.d.ts.map +1 -1
- package/dist/harness/presenter.js +26 -20
- package/dist/harness/presenter.js.map +1 -1
- package/dist/harness/prompt.d.ts +1 -2
- package/dist/harness/prompt.d.ts.map +1 -1
- package/dist/harness/prompt.js.map +1 -1
- package/dist/harness/runner.d.ts.map +1 -1
- package/dist/harness/runner.js +34 -17
- package/dist/harness/runner.js.map +1 -1
- package/dist/harness/session.d.ts +0 -7
- package/dist/harness/session.d.ts.map +1 -1
- package/dist/harness/session.js +16 -14
- package/dist/harness/session.js.map +1 -1
- package/dist/harness/skills.d.ts +2 -5
- package/dist/harness/skills.d.ts.map +1 -1
- package/dist/harness/skills.js.map +1 -1
- package/dist/harness/subagent-profiles.d.ts +0 -1
- package/dist/harness/subagent-profiles.d.ts.map +1 -1
- package/dist/harness/subagent-profiles.js +12 -16
- package/dist/harness/subagent-profiles.js.map +1 -1
- package/dist/harness/subagent.d.ts +1 -1
- package/dist/harness/subagent.d.ts.map +1 -1
- package/dist/harness/subagent.js +17 -17
- package/dist/harness/subagent.js.map +1 -1
- package/dist/harness/tool-args.d.ts +2 -0
- package/dist/harness/tool-args.d.ts.map +1 -0
- package/dist/harness/tool-args.js +20 -0
- package/dist/harness/tool-args.js.map +1 -0
- package/dist/harness/tools/attach.d.ts +5 -4
- package/dist/harness/tools/attach.d.ts.map +1 -1
- package/dist/harness/tools/attach.js +1 -1
- package/dist/harness/tools/attach.js.map +1 -1
- package/dist/harness/tools/event.d.ts +12 -11
- package/dist/harness/tools/event.d.ts.map +1 -1
- package/dist/harness/tools/event.js +1 -1
- package/dist/harness/tools/event.js.map +1 -1
- package/dist/harness/tools/generate-image.d.ts +7 -5
- package/dist/harness/tools/generate-image.d.ts.map +1 -1
- package/dist/harness/tools/generate-image.js +7 -5
- package/dist/harness/tools/generate-image.js.map +1 -1
- package/dist/harness/tools/host-fn-tool.d.ts +3 -2
- package/dist/harness/tools/host-fn-tool.d.ts.map +1 -1
- package/dist/harness/tools/host-fn-tool.js +5 -2
- package/dist/harness/tools/host-fn-tool.js.map +1 -1
- package/dist/harness/tools/index.d.ts +3 -4
- package/dist/harness/tools/index.d.ts.map +1 -1
- package/dist/harness/tools/index.js +1 -3
- package/dist/harness/tools/index.js.map +1 -1
- package/dist/harness/tools/jev-browser.d.ts +12 -10
- package/dist/harness/tools/jev-browser.d.ts.map +1 -1
- package/dist/harness/tools/jev-browser.js +6 -4
- package/dist/harness/tools/jev-browser.js.map +1 -1
- package/dist/harness/tools/jev.d.ts +9 -7
- package/dist/harness/tools/jev.d.ts.map +1 -1
- package/dist/harness/tools/jev.js +5 -6
- package/dist/harness/tools/jev.js.map +1 -1
- package/dist/harness/tools/pi-tools.d.ts.map +1 -1
- package/dist/harness/tools/pi-tools.js +2 -2
- package/dist/harness/tools/pi-tools.js.map +1 -1
- package/dist/harness/tools/react.d.ts +3 -2
- package/dist/harness/tools/react.d.ts.map +1 -1
- package/dist/harness/tools/react.js +1 -1
- package/dist/harness/tools/react.js.map +1 -1
- package/dist/harness/tools/sandbox.d.ts +7 -6
- package/dist/harness/tools/sandbox.d.ts.map +1 -1
- package/dist/harness/tools/sandbox.js +3 -2
- package/dist/harness/tools/sandbox.js.map +1 -1
- package/dist/harness/tools/subagent.d.ts +26 -26
- package/dist/harness/tools/subagent.d.ts.map +1 -1
- package/dist/harness/tools/subagent.js +25 -29
- package/dist/harness/tools/subagent.js.map +1 -1
- package/dist/harness/tools/task.d.ts +11 -8
- package/dist/harness/tools/task.d.ts.map +1 -1
- package/dist/harness/tools/task.js +8 -6
- package/dist/harness/tools/task.js.map +1 -1
- package/dist/harness/tools/types.d.ts +2 -1
- package/dist/harness/tools/types.d.ts.map +1 -1
- package/dist/harness/tools/types.js.map +1 -1
- package/dist/harness/types.d.ts +37 -4
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/index.d.ts +16 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +0 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +1 -1
- package/dist/log.js.map +1 -1
- package/dist/main.js +27 -17
- package/dist/main.js.map +1 -1
- package/dist/memory-capture/index.d.ts +1 -2
- package/dist/memory-capture/index.d.ts.map +1 -1
- package/dist/memory-capture/index.js +8 -3
- package/dist/memory-capture/index.js.map +1 -1
- package/dist/memory-capture/types.d.ts +1 -1
- package/dist/memory-capture/types.js.map +1 -1
- package/dist/observability/index.d.ts +0 -3
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +11 -16
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/sentry.d.ts +9 -12
- package/dist/observability/sentry.d.ts.map +1 -1
- package/dist/observability/sentry.js +9 -118
- package/dist/observability/sentry.js.map +1 -1
- package/dist/office/index.d.ts +14 -3
- package/dist/office/index.d.ts.map +1 -1
- package/dist/office/index.js +51 -14
- package/dist/office/index.js.map +1 -1
- package/dist/office/projection.d.ts +1 -3
- package/dist/office/projection.d.ts.map +1 -1
- package/dist/office/projection.js +5 -5
- package/dist/office/projection.js.map +1 -1
- package/dist/office/types.d.ts +5 -0
- package/dist/office/types.d.ts.map +1 -1
- package/dist/office/types.js.map +1 -1
- package/dist/runtime/conversation-runtime.d.ts +0 -1
- package/dist/runtime/conversation-runtime.d.ts.map +1 -1
- package/dist/runtime/conversation-runtime.js +10 -6
- package/dist/runtime/conversation-runtime.js.map +1 -1
- package/dist/runtime/session-lifecycle.d.ts.map +1 -1
- package/dist/runtime/session-lifecycle.js +2 -1
- package/dist/runtime/session-lifecycle.js.map +1 -1
- package/dist/runtime/types.d.ts +8 -5
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/dist/sandbox/cloudflare.d.ts.map +1 -1
- package/dist/sandbox/cloudflare.js +3 -2
- package/dist/sandbox/cloudflare.js.map +1 -1
- package/dist/sandbox/container.d.ts.map +1 -1
- package/dist/sandbox/container.js +2 -1
- package/dist/sandbox/container.js.map +1 -1
- package/dist/sandbox/host.js +1 -1
- package/dist/sandbox/host.js.map +1 -1
- package/dist/sandbox/identity.d.ts +0 -1
- package/dist/sandbox/identity.d.ts.map +1 -1
- package/dist/sandbox/identity.js.map +1 -1
- package/dist/sandbox/index.d.ts +4 -14
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +4 -93
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/provisioner.d.ts +0 -1
- package/dist/sandbox/provisioner.d.ts.map +1 -1
- package/dist/sandbox/provisioner.js +12 -11
- package/dist/sandbox/provisioner.js.map +1 -1
- package/dist/sandbox/registry.d.ts +12 -0
- package/dist/sandbox/registry.d.ts.map +1 -0
- package/dist/sandbox/registry.js +93 -0
- package/dist/sandbox/registry.js.map +1 -0
- package/dist/sandbox/types.d.ts +3 -0
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sandbox/types.js.map +1 -1
- package/dist/sandbox/utils.d.ts.map +1 -1
- package/dist/sandbox/utils.js +1 -0
- package/dist/sandbox/utils.js.map +1 -1
- package/dist/sessions/chat-history-sync.d.ts +2 -2
- package/dist/sessions/chat-history-sync.d.ts.map +1 -1
- package/dist/sessions/chat-history-sync.js +32 -23
- package/dist/sessions/chat-history-sync.js.map +1 -1
- package/dist/sessions/migrate-common.js +2 -2
- package/dist/sessions/migrate-common.js.map +1 -1
- package/dist/sessions/migrate-pi-084.d.ts +0 -1
- package/dist/sessions/migrate-pi-084.d.ts.map +1 -1
- package/dist/sessions/migrate-pi-084.js +4 -6
- package/dist/sessions/migrate-pi-084.js.map +1 -1
- package/dist/sessions/migrate-v3.d.ts +0 -1
- package/dist/sessions/migrate-v3.d.ts.map +1 -1
- package/dist/sessions/migrate-v3.js +3 -5
- package/dist/sessions/migrate-v3.js.map +1 -1
- package/dist/sessions/session-key.d.ts +0 -1
- package/dist/sessions/session-key.d.ts.map +1 -1
- package/dist/sessions/session-key.js.map +1 -1
- package/dist/sessions/session-store.d.ts.map +1 -1
- package/dist/sessions/session-store.js +12 -19
- package/dist/sessions/session-store.js.map +1 -1
- package/dist/sessions/store.d.ts +0 -1
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +5 -3
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +2 -0
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +1 -0
- package/dist/sessions/types.js.map +1 -1
- package/dist/settings/apply.d.ts +1 -2
- package/dist/settings/apply.d.ts.map +1 -1
- package/dist/settings/apply.js.map +1 -1
- package/dist/settings/index.d.ts +37 -34
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +28 -22
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/migrate.d.ts +1 -1
- package/dist/settings/migrate.d.ts.map +1 -1
- package/dist/settings/migrate.js +5 -4
- package/dist/settings/migrate.js.map +1 -1
- package/dist/types.d.ts +17 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/unknown-values.d.ts +3 -0
- package/dist/unknown-values.d.ts.map +1 -0
- package/dist/unknown-values.js +7 -0
- package/dist/unknown-values.js.map +1 -0
- package/dist/vault/index.d.ts +10 -2
- package/dist/vault/index.d.ts.map +1 -1
- package/dist/vault/index.js +16 -7
- package/dist/vault/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/adapters/index.d.ts +0 -11
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -19
- package/dist/adapters/index.js.map +0 -1
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { SocketModeClient } from "@slack/socket-mode";
|
|
2
2
|
import { WebAPIRateLimitedError, WebClient } from "@slack/web-api";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
|
-
import { readFile
|
|
5
|
-
import { basename
|
|
6
|
-
import { createConversationEvent, createConversationMessage, } from "
|
|
7
|
-
import { createOfficeAddress, listRegisteredOffices } from "../../office/index.js";
|
|
4
|
+
import { readFile } from "node:fs/promises";
|
|
5
|
+
import { basename } from "node:path";
|
|
6
|
+
import { createConversationEvent, createConversationMessage, createOfficeAddress, listRegisteredOffices, } from "../../office/index.js";
|
|
8
7
|
import { COMMAND_MANIFEST } from "../commands/manifest.js";
|
|
9
8
|
import { slackConversationAutoReplyMode, resolveConversationSettings, } from "../../settings/index.js";
|
|
10
|
-
import { evaluateWithJev, JevNotConfiguredError } from "../../harness/
|
|
9
|
+
import { evaluateWithJev, JevNotConfiguredError } from "../../harness/jev.js";
|
|
11
10
|
import * as log from "../../log.js";
|
|
12
|
-
import {
|
|
11
|
+
import { readTextFileIfExists } from "../../file-guards.js";
|
|
13
12
|
import { PRODUCT_NAME, formatForceStopped } from "../messages.js";
|
|
14
|
-
import { appendBotResponseLog, appendChannelLog, MessagingEventQueue, MessagingIntakeTracker, saveIncomingAttachments, withRetry, } from "../shared.js";
|
|
13
|
+
import { appendBotResponseLog, appendChannelLog, MessagingEventQueue, MessagingIntakeTracker, AttachmentRejectedError, saveIncomingAttachments, writeResponseToFile, withRetry, } from "../shared.js";
|
|
15
14
|
import { matchMagicWord, processMessageIntake } from "../intake.js";
|
|
16
|
-
import { readPlatformChannelKind, recordPlatformChannelKind
|
|
15
|
+
import { readPlatformChannelKind, recordPlatformChannelKind } from "../../office/projection.js";
|
|
17
16
|
import { AssistantThreadRegistry, handleAgentContextChanged, handleAgentDmOpened, handleAssistantThreadStarted, titleAssistantThread, } from "./assistant.js";
|
|
18
17
|
import { createSlackAdapters } from "./context.js";
|
|
19
18
|
import { hasMaterializedChatSession, registerThreadSession, } from "../../sessions/chat-history-sync.js";
|
|
@@ -26,6 +25,7 @@ import { querySlackTasks, formatTaskStatus, readTaskRoots, isTaskStatusQuestion,
|
|
|
26
25
|
import { buildAutoReplyState, JEV_ADDRESSED_INSTRUCTIONS } from "./auto-reply-context.js";
|
|
27
26
|
import { buildTaskIntentState, classifyTaskIntent } from "./task-intent.js";
|
|
28
27
|
import { StreamStartLimiter } from "./stream-limits.js";
|
|
28
|
+
import { errorMessage, isRecord } from "../../unknown-values.js";
|
|
29
29
|
const SLACK_EVENT_ANCHOR_TEXT = "Working on it...";
|
|
30
30
|
function hasMessageContent(message, includeBlocks = true) {
|
|
31
31
|
const content = [message.text, message.files];
|
|
@@ -103,13 +103,24 @@ class AttachmentDownloadHttpError extends Error {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
function isRetryableAttachmentDownloadError(error) {
|
|
106
|
+
if (error instanceof AttachmentRejectedError)
|
|
107
|
+
return false;
|
|
106
108
|
if (!(error instanceof AttachmentDownloadHttpError))
|
|
107
109
|
return true;
|
|
108
110
|
return error.status === 408 || error.status === 429 || error.status >= 500;
|
|
109
111
|
}
|
|
112
|
+
function assertSlackFileUrl(url) {
|
|
113
|
+
const { protocol, hostname } = new URL(url);
|
|
114
|
+
if (protocol === "https:" && (hostname === "slack.com" || hostname.endsWith(".slack.com")))
|
|
115
|
+
return;
|
|
116
|
+
throw new AttachmentRejectedError(`refusing to send the bot token to ${hostname}`);
|
|
117
|
+
}
|
|
110
118
|
export class SlackMessagingBot {
|
|
119
|
+
office(channelId) {
|
|
120
|
+
return this.workspace.office(createOfficeAddress("slack", channelId));
|
|
121
|
+
}
|
|
111
122
|
conversationDir(channelId) {
|
|
112
|
-
return this.
|
|
123
|
+
return this.office(channelId).dir;
|
|
113
124
|
}
|
|
114
125
|
resolveReplyMode(address) {
|
|
115
126
|
return (resolveConversationSettings(this.workspace.office(address)).slack?.replyMode ?? "top-level");
|
|
@@ -215,15 +226,19 @@ export class SlackMessagingBot {
|
|
|
215
226
|
this.handler = handler;
|
|
216
227
|
this.workspace = config.workspace;
|
|
217
228
|
this.botToken = config.botToken;
|
|
218
|
-
this.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
229
|
+
this.fetchFn = config.fetch ?? ((input, init) => fetch(input, init));
|
|
230
|
+
this.socketClient =
|
|
231
|
+
config.socket ??
|
|
232
|
+
new SocketModeClient({
|
|
233
|
+
appToken: config.appToken,
|
|
234
|
+
clientPingTimeout: 12_000,
|
|
235
|
+
});
|
|
236
|
+
this.webClient = config.webApi ?? new WebClient(config.botToken, { fetch: config.fetch });
|
|
223
237
|
this.statusClient = new WebClient(config.botToken, {
|
|
224
238
|
timeout: 3000,
|
|
225
239
|
retryConfig: { retries: 0 },
|
|
226
240
|
rejectRateLimitedCalls: true,
|
|
241
|
+
fetch: config.fetch,
|
|
227
242
|
});
|
|
228
243
|
}
|
|
229
244
|
setEventScheduler(scheduler) {
|
|
@@ -286,8 +301,9 @@ export class SlackMessagingBot {
|
|
|
286
301
|
return slackRetry(async () => {
|
|
287
302
|
const payload = {
|
|
288
303
|
channel,
|
|
289
|
-
|
|
290
|
-
|
|
304
|
+
thread_ts: threadTs,
|
|
305
|
+
username: identity?.username,
|
|
306
|
+
icon_emoji: identity?.iconEmoji,
|
|
291
307
|
...renderSlackBlocks(this.resolveMentions(text)),
|
|
292
308
|
};
|
|
293
309
|
const result = await this.webClient.chat.postMessage(payload);
|
|
@@ -313,8 +329,8 @@ export class SlackMessagingBot {
|
|
|
313
329
|
channel,
|
|
314
330
|
user,
|
|
315
331
|
text,
|
|
316
|
-
|
|
317
|
-
|
|
332
|
+
blocks: blocks,
|
|
333
|
+
thread_ts: threadTs || undefined,
|
|
318
334
|
});
|
|
319
335
|
});
|
|
320
336
|
}
|
|
@@ -327,7 +343,7 @@ export class SlackMessagingBot {
|
|
|
327
343
|
channel,
|
|
328
344
|
text,
|
|
329
345
|
blocks: blocks,
|
|
330
|
-
|
|
346
|
+
thread_ts: threadTs,
|
|
331
347
|
};
|
|
332
348
|
const result = await this.webClient.chat.postMessage(payload);
|
|
333
349
|
return result.ts;
|
|
@@ -366,12 +382,14 @@ export class SlackMessagingBot {
|
|
|
366
382
|
? await this.webClient.conversations.replies({
|
|
367
383
|
channel,
|
|
368
384
|
ts: threadTs,
|
|
369
|
-
|
|
385
|
+
oldest: options?.oldest || undefined,
|
|
386
|
+
inclusive: options?.oldest ? false : undefined,
|
|
370
387
|
limit,
|
|
371
388
|
})
|
|
372
389
|
: await this.webClient.conversations.history({
|
|
373
390
|
channel,
|
|
374
|
-
|
|
391
|
+
oldest: options?.oldest || undefined,
|
|
392
|
+
inclusive: options?.oldest ? false : undefined,
|
|
375
393
|
limit,
|
|
376
394
|
});
|
|
377
395
|
const messages = (result.messages ?? []);
|
|
@@ -427,9 +445,9 @@ export class SlackMessagingBot {
|
|
|
427
445
|
const result = await this.webClient.apiCall("chat.startStream", {
|
|
428
446
|
channel,
|
|
429
447
|
markdown_text: this.resolveMentions(head ?? ""),
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
448
|
+
thread_ts: threadTs || undefined,
|
|
449
|
+
recipient_team_id: this.teamId || undefined,
|
|
450
|
+
recipient_user_id: recipientUserId || undefined,
|
|
433
451
|
});
|
|
434
452
|
const streamTs = result.ts;
|
|
435
453
|
if (!streamTs)
|
|
@@ -489,7 +507,7 @@ export class SlackMessagingBot {
|
|
|
489
507
|
return slackRetry(async () => {
|
|
490
508
|
await this.webClient.assistant.threads.setSuggestedPrompts({
|
|
491
509
|
channel_id: channel,
|
|
492
|
-
|
|
510
|
+
thread_ts: threadTs || undefined,
|
|
493
511
|
prompts,
|
|
494
512
|
});
|
|
495
513
|
});
|
|
@@ -518,7 +536,7 @@ export class SlackMessagingBot {
|
|
|
518
536
|
return;
|
|
519
537
|
void handleAssistantThreadStarted(this.assistantOps(), this.assistantThreads, payload.assistant_thread);
|
|
520
538
|
}
|
|
521
|
-
handleAgentContextChangedEvent({ event, ack
|
|
539
|
+
handleAgentContextChangedEvent({ event, ack }) {
|
|
522
540
|
ack();
|
|
523
541
|
const payload = event;
|
|
524
542
|
if (payload.assistant_thread) {
|
|
@@ -560,11 +578,11 @@ export class SlackMessagingBot {
|
|
|
560
578
|
logBotResponse(channel, text, ts, threadTs, slackBlocks) {
|
|
561
579
|
appendBotResponseLog(this.workspace.office(createOfficeAddress("slack", channel)), text, ts, threadTs, {
|
|
562
580
|
platform: "slack",
|
|
563
|
-
|
|
581
|
+
slackBlocks,
|
|
564
582
|
});
|
|
565
583
|
}
|
|
566
584
|
ownsBlockKitMessage(channel, ts, threadTs) {
|
|
567
|
-
const content = readTextFileIfExists(
|
|
585
|
+
const content = readTextFileIfExists(this.office(channel).logPath);
|
|
568
586
|
if (content === undefined)
|
|
569
587
|
return false;
|
|
570
588
|
for (const line of content.trim().split("\n").toReversed()) {
|
|
@@ -586,7 +604,7 @@ export class SlackMessagingBot {
|
|
|
586
604
|
getMessagingInfo() {
|
|
587
605
|
return {
|
|
588
606
|
name: "slack",
|
|
589
|
-
|
|
607
|
+
workspaceId: this.teamId || undefined,
|
|
590
608
|
trustModel: "membership",
|
|
591
609
|
formattingGuide: "## Slack Formatting\nWrite standard Markdown/GFM: **bold**, _italic_, ~~strike~~, `code`, fenced code blocks, [links](url), lists, and pipe tables (rendered as native Slack tables).\nDo NOT use Slack mrkdwn syntax like *single-asterisk bold* or <url|label> links.",
|
|
592
610
|
channels: this.getAllChannels().map((c) => ({ id: c.id, name: c.name })),
|
|
@@ -617,7 +635,7 @@ export class SlackMessagingBot {
|
|
|
617
635
|
anchorTs = await this.postMessage(conversationId, SLACK_EVENT_ANCHOR_TEXT);
|
|
618
636
|
}
|
|
619
637
|
catch (err) {
|
|
620
|
-
log.logWarning(`Failed to post Slack event anchor for ${conversationId}`,
|
|
638
|
+
log.logWarning(`Failed to post Slack event anchor for ${conversationId}`, errorMessage(err));
|
|
621
639
|
reportUserFacingError(err, {
|
|
622
640
|
domain: "events",
|
|
623
641
|
surface: "event_delivery",
|
|
@@ -979,7 +997,7 @@ export class SlackMessagingBot {
|
|
|
979
997
|
text: commandText,
|
|
980
998
|
attachments: [],
|
|
981
999
|
isMessagingBot: false,
|
|
982
|
-
|
|
1000
|
+
threadTs: threadTs || undefined,
|
|
983
1001
|
});
|
|
984
1002
|
const event = createConversationEvent({
|
|
985
1003
|
platform: "slack",
|
|
@@ -990,7 +1008,7 @@ export class SlackMessagingBot {
|
|
|
990
1008
|
user: payload.user_id,
|
|
991
1009
|
text: commandText,
|
|
992
1010
|
attachments: [],
|
|
993
|
-
|
|
1011
|
+
thread_ts: threadTs || undefined,
|
|
994
1012
|
sessionKey,
|
|
995
1013
|
});
|
|
996
1014
|
const context = this.createCommandAdapters({
|
|
@@ -999,9 +1017,9 @@ export class SlackMessagingBot {
|
|
|
999
1017
|
userName,
|
|
1000
1018
|
text: commandText,
|
|
1001
1019
|
ts: eventTs,
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1020
|
+
ephemeralChannelId: isDirectMessage ? undefined : conversationId,
|
|
1021
|
+
threadTs,
|
|
1022
|
+
sessionKey,
|
|
1005
1023
|
});
|
|
1006
1024
|
return { event, context };
|
|
1007
1025
|
}
|
|
@@ -1009,13 +1027,11 @@ export class SlackMessagingBot {
|
|
|
1009
1027
|
const { event, context } = this.buildSlashCommandEvent(payload, {
|
|
1010
1028
|
includeText: route.includeText,
|
|
1011
1029
|
thread: route.thread,
|
|
1012
|
-
|
|
1013
|
-
?
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
}
|
|
1018
|
-
: {}),
|
|
1030
|
+
type: route.privateCommand
|
|
1031
|
+
? payload.channel_id.startsWith("D")
|
|
1032
|
+
? "dm"
|
|
1033
|
+
: "private_command"
|
|
1034
|
+
: undefined,
|
|
1019
1035
|
});
|
|
1020
1036
|
await this.handler.handleEvent(event, this, context);
|
|
1021
1037
|
}
|
|
@@ -1029,35 +1045,18 @@ export class SlackMessagingBot {
|
|
|
1029
1045
|
this.socketClient.on("unable_to_socket_mode_start", (err) => {
|
|
1030
1046
|
log.logWarning("Slack socket unable_to_start", err ? String(err) : "");
|
|
1031
1047
|
});
|
|
1032
|
-
this.socketClient.on("app_mention", (payload) =>
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
this.socketClient.on("
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
this.socketClient.on("
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
this.socketClient.on("
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
this.socketClient.on("assistant_thread_started", (payload) => {
|
|
1045
|
-
void this.intake.run(() => this.handleAssistantThreadStarted(payload));
|
|
1046
|
-
});
|
|
1047
|
-
this.socketClient.on("assistant_thread_context_changed", (payload) => {
|
|
1048
|
-
void this.intake.run(() => this.handleAgentContextChangedEvent(payload));
|
|
1049
|
-
});
|
|
1050
|
-
this.socketClient.on("app_context_changed", (payload) => {
|
|
1051
|
-
void this.intake.run(() => this.handleAgentContextChangedEvent(payload));
|
|
1052
|
-
});
|
|
1053
|
-
this.socketClient.on("block_actions", (payload) => {
|
|
1054
|
-
void this.intake.run(() => this.handleBlockAction(payload));
|
|
1055
|
-
});
|
|
1056
|
-
this.socketClient.on("interactive", (payload) => {
|
|
1057
|
-
void this.intake.run(() => this.handleBlockAction(payload));
|
|
1058
|
-
});
|
|
1059
|
-
}
|
|
1060
|
-
async handleAppMention({ event, ack, }) {
|
|
1048
|
+
this.socketClient.on("app_mention", (payload) => this.intake.run(() => this.handleAppMention(payload)));
|
|
1049
|
+
this.socketClient.on("message", (payload) => this.intake.run(() => this.handleMessageEvent(payload)));
|
|
1050
|
+
this.socketClient.on("slash_commands", (payload) => this.intake.run(() => this.handleSlashCommand(payload)));
|
|
1051
|
+
this.socketClient.on("app_home_opened", (payload) => this.intake.run(() => this.handleAppHomeOpened(payload)));
|
|
1052
|
+
this.socketClient.on("assistant_thread_started", (payload) => this.intake.run(() => this.handleAssistantThreadStarted(payload)));
|
|
1053
|
+
this.socketClient.on("assistant_thread_context_changed", (payload) => this.intake.run(() => this.handleAgentContextChangedEvent(payload)));
|
|
1054
|
+
this.socketClient.on("app_context_changed", (payload) => this.intake.run(() => this.handleAgentContextChangedEvent(payload)));
|
|
1055
|
+
const blockAction = ({ body, ack }) => this.intake.run(() => this.handleBlockAction({ body: body, ack }));
|
|
1056
|
+
this.socketClient.on("block_actions", blockAction);
|
|
1057
|
+
this.socketClient.on("interactive", blockAction);
|
|
1058
|
+
}
|
|
1059
|
+
async handleAppMention({ event, ack }) {
|
|
1061
1060
|
const e = event;
|
|
1062
1061
|
if (e.channel.startsWith("D")) {
|
|
1063
1062
|
ack();
|
|
@@ -1208,7 +1207,7 @@ export class SlackMessagingBot {
|
|
|
1208
1207
|
return false;
|
|
1209
1208
|
}
|
|
1210
1209
|
}
|
|
1211
|
-
async handleMessageEvent({ event, ack
|
|
1210
|
+
async handleMessageEvent({ event, ack }) {
|
|
1212
1211
|
const e = event;
|
|
1213
1212
|
if (!this.admitHumanMessage(e, ack))
|
|
1214
1213
|
return;
|
|
@@ -1275,7 +1274,7 @@ export class SlackMessagingBot {
|
|
|
1275
1274
|
ack();
|
|
1276
1275
|
await intake;
|
|
1277
1276
|
}
|
|
1278
|
-
async handleSlashCommand({ body, ack
|
|
1277
|
+
async handleSlashCommand({ body, ack }) {
|
|
1279
1278
|
const payload = body;
|
|
1280
1279
|
await ack();
|
|
1281
1280
|
if (!payload.command || !payload.channel_id || !payload.user_id) {
|
|
@@ -1298,7 +1297,7 @@ export class SlackMessagingBot {
|
|
|
1298
1297
|
});
|
|
1299
1298
|
}
|
|
1300
1299
|
catch (err) {
|
|
1301
|
-
log.logWarning("Slack slash command error",
|
|
1300
|
+
log.logWarning("Slack slash command error", errorMessage(err));
|
|
1302
1301
|
}
|
|
1303
1302
|
}
|
|
1304
1303
|
handleAppHomeOpened({ event, ack }) {
|
|
@@ -1372,7 +1371,7 @@ export class SlackMessagingBot {
|
|
|
1372
1371
|
this.logToFile(channelId, {
|
|
1373
1372
|
date: new Date().toISOString(),
|
|
1374
1373
|
ts,
|
|
1375
|
-
|
|
1374
|
+
threadTs: threadTs || undefined,
|
|
1376
1375
|
user: userId,
|
|
1377
1376
|
userName: body.user?.username ?? body.user?.name,
|
|
1378
1377
|
text,
|
|
@@ -1404,7 +1403,7 @@ export class SlackMessagingBot {
|
|
|
1404
1403
|
user: userId,
|
|
1405
1404
|
text,
|
|
1406
1405
|
attachments: [],
|
|
1407
|
-
|
|
1406
|
+
thread_ts: threadTs || undefined,
|
|
1408
1407
|
sessionKey,
|
|
1409
1408
|
});
|
|
1410
1409
|
this.getQueue(this.resolveQueueKey(channelId, sessionKey)).enqueue(async () => {
|
|
@@ -1447,21 +1446,21 @@ export class SlackMessagingBot {
|
|
|
1447
1446
|
const firstFailure = failed[0];
|
|
1448
1447
|
if (firstFailure) {
|
|
1449
1448
|
const { name, error } = firstFailure;
|
|
1450
|
-
const errorMsg =
|
|
1449
|
+
const errorMsg = errorMessage(error);
|
|
1451
1450
|
throw new Error(`Failed to download attachment ${name}: ${errorMsg}`, { cause: error });
|
|
1452
1451
|
}
|
|
1453
1452
|
return saved;
|
|
1454
1453
|
}
|
|
1455
1454
|
async downloadSlackFile(url, destPath) {
|
|
1455
|
+
assertSlackFileUrl(url);
|
|
1456
1456
|
await withRetry(async () => {
|
|
1457
|
-
const response = await
|
|
1457
|
+
const response = await this.fetchFn(url, {
|
|
1458
1458
|
headers: { Authorization: `Bearer ${this.botToken}` },
|
|
1459
1459
|
});
|
|
1460
1460
|
if (!response.ok) {
|
|
1461
1461
|
throw new AttachmentDownloadHttpError(`HTTP ${response.status}: ${response.statusText}`, response.status);
|
|
1462
1462
|
}
|
|
1463
|
-
|
|
1464
|
-
await writeFile(destPath, Buffer.from(buffer));
|
|
1463
|
+
await writeResponseToFile(response, destPath);
|
|
1465
1464
|
}, { maxAttempts: 3, baseDelayMs: 250, isRateLimited: isRetryableAttachmentDownloadError });
|
|
1466
1465
|
}
|
|
1467
1466
|
async logUserMessage(event) {
|
|
@@ -1513,7 +1512,7 @@ export class SlackMessagingBot {
|
|
|
1513
1512
|
return attachments;
|
|
1514
1513
|
}
|
|
1515
1514
|
async getExistingTimestamps(channelId) {
|
|
1516
|
-
const logPath =
|
|
1515
|
+
const { logPath } = this.office(channelId);
|
|
1517
1516
|
const timestamps = new Set();
|
|
1518
1517
|
if (!existsSync(logPath))
|
|
1519
1518
|
return timestamps;
|
|
@@ -1526,7 +1525,7 @@ export class SlackMessagingBot {
|
|
|
1526
1525
|
timestamps.add(entry.ts);
|
|
1527
1526
|
}
|
|
1528
1527
|
catch (err) {
|
|
1529
|
-
log.logWarning(`Skipping malformed log entry at ${logPath}:${i + 1}`,
|
|
1528
|
+
log.logWarning(`Skipping malformed log entry at ${logPath}:${i + 1}`, errorMessage(err));
|
|
1530
1529
|
}
|
|
1531
1530
|
}
|
|
1532
1531
|
return timestamps;
|
|
@@ -1605,8 +1604,7 @@ export class SlackMessagingBot {
|
|
|
1605
1604
|
const startTime = Date.now();
|
|
1606
1605
|
const channelsToBackfill = [];
|
|
1607
1606
|
for (const [channelId, channel] of this.channels) {
|
|
1608
|
-
|
|
1609
|
-
if (existsSync(logPath)) {
|
|
1607
|
+
if (existsSync(this.office(channelId).logPath)) {
|
|
1610
1608
|
channelsToBackfill.push([channelId, channel]);
|
|
1611
1609
|
}
|
|
1612
1610
|
}
|
|
@@ -1663,8 +1661,8 @@ export class SlackMessagingBot {
|
|
|
1663
1661
|
this.channels.set(c.id, {
|
|
1664
1662
|
id: c.id,
|
|
1665
1663
|
name: c.name,
|
|
1666
|
-
|
|
1667
|
-
|
|
1664
|
+
isPrivate: typeof c.is_private === "boolean" ? c.is_private : undefined,
|
|
1665
|
+
isExternallyShared: c.is_shared || c.is_ext_shared ? true : undefined,
|
|
1668
1666
|
});
|
|
1669
1667
|
}
|
|
1670
1668
|
cursor = result.response_metadata?.next_cursor;
|