@poolzin/pool-bot 2026.2.21 → 2026.2.23
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 +25 -0
- package/dist/agents/api-key-rotation.js +47 -0
- package/dist/agents/apply-patch-update.js +19 -9
- package/dist/agents/apply-patch.js +72 -47
- package/dist/agents/bash-tools.exec.js +141 -559
- package/dist/agents/cli-backends.js +49 -6
- package/dist/agents/cli-runner/helpers.js +69 -152
- package/dist/agents/cli-runner.js +70 -19
- package/dist/agents/identity.js +20 -1
- package/dist/agents/image-sanitization.js +9 -0
- package/dist/agents/live-auth-keys.js +123 -26
- package/dist/agents/live-model-filter.js +13 -4
- package/dist/agents/model-catalog.js +40 -9
- package/dist/agents/model-forward-compat.js +60 -23
- package/dist/agents/model-selection.js +134 -41
- package/dist/agents/pi-auth-json.js +2 -2
- package/dist/agents/pi-embedded-helpers/bootstrap.js +65 -15
- package/dist/agents/pi-embedded-helpers/errors.js +140 -15
- package/dist/agents/pi-embedded-helpers/images.js +22 -12
- package/dist/agents/pi-embedded-helpers.js +2 -2
- package/dist/agents/pi-embedded-runner/abort.js +10 -3
- package/dist/agents/pi-embedded-runner/compact.js +230 -32
- package/dist/agents/pi-embedded-runner/extra-params.js +203 -12
- package/dist/agents/pi-embedded-runner/google.js +109 -19
- package/dist/agents/pi-embedded-runner/history.js +35 -17
- package/dist/agents/pi-embedded-runner/run/attempt.js +386 -95
- package/dist/agents/pi-embedded-runner/run/images.js +81 -55
- package/dist/agents/pi-embedded-runner/run/payloads.js +89 -39
- package/dist/agents/pi-embedded-runner/run.js +193 -25
- package/dist/agents/pi-embedded-runner/run.overflow-compaction.mocks.shared.js +2 -2
- package/dist/agents/pi-embedded-runner/runs.js +17 -8
- package/dist/agents/pi-embedded-runner/tool-result-context-guard.js +262 -0
- package/dist/agents/pi-embedded-runner.js +1 -1
- package/dist/agents/pi-embedded-subscribe.handlers.tools.js +180 -10
- package/dist/agents/pi-embedded-subscribe.js +37 -0
- package/dist/agents/pi-embedded-subscribe.tools.js +127 -30
- package/dist/agents/pi-model-discovery.js +9 -2
- package/dist/agents/pi-tool-definition-adapter.js +60 -8
- package/dist/agents/pi-tools.before-tool-call.js +1 -1
- package/dist/agents/pi-tools.js +113 -94
- package/dist/agents/pi-tools.read.js +337 -38
- package/dist/agents/poolbot-tools.js +14 -5
- package/dist/agents/sandbox/docker.js +10 -5
- package/dist/agents/sandbox/registry.js +96 -46
- package/dist/agents/sandbox/sanitize-env-vars.js +82 -0
- package/dist/agents/sandbox-paths.js +43 -10
- package/dist/agents/session-tool-result-guard-wrapper.js +23 -11
- package/dist/agents/session-tool-result-guard.js +39 -39
- package/dist/agents/session-transcript-repair.js +36 -33
- package/dist/agents/session-write-lock.js +62 -44
- package/dist/agents/skills/frontmatter.js +49 -88
- package/dist/agents/skills/workspace.js +335 -28
- package/dist/agents/subagent-announce.js +508 -174
- package/dist/agents/subagent-registry.js +45 -4
- package/dist/agents/subagent-spawn.js +16 -33
- package/dist/agents/system-prompt-report.js +27 -10
- package/dist/agents/system-prompt.js +26 -32
- package/dist/agents/tool-call-id.js +69 -17
- package/dist/agents/tool-display-common.js +1 -1
- package/dist/agents/tool-images.js +64 -31
- package/dist/agents/tools/canvas-tool.js +17 -11
- package/dist/agents/tools/common.js +37 -19
- package/dist/agents/tools/cron-tool.js +40 -38
- package/dist/agents/tools/gateway.js +70 -2
- package/dist/agents/tools/message-tool.js +181 -40
- package/dist/agents/tools/nodes-tool.js +128 -36
- package/dist/agents/tools/nodes-utils.js +12 -38
- package/dist/agents/tools/session-status-tool.js +24 -71
- package/dist/agents/tools/sessions-helpers.js +38 -210
- package/dist/agents/tools/sessions-spawn-tool.js +28 -198
- package/dist/agents/tools/telegram-actions.js +58 -7
- package/dist/agents/tools/web-fetch-utils.js +112 -7
- package/dist/agents/tools/web-fetch.js +279 -175
- package/dist/agents/tools/web-shared.js +71 -8
- package/dist/agents/usage.js +25 -16
- package/dist/auto-reply/commands-registry.data.js +85 -11
- package/dist/auto-reply/dispatch.js +40 -21
- package/dist/auto-reply/reply/abort.js +102 -33
- package/dist/auto-reply/reply/commands-core.js +82 -33
- package/dist/auto-reply/reply/commands-export-session.js +1 -1
- package/dist/auto-reply/reply/commands-info.js +41 -12
- package/dist/auto-reply/reply/commands-subagents.js +352 -100
- package/dist/auto-reply/reply/commands-system-prompt.js +2 -2
- package/dist/auto-reply/reply/dispatch-from-config.js +100 -29
- package/dist/auto-reply/reply/elevated-unavailable.js +1 -1
- package/dist/auto-reply/reply/inbound-meta.js +12 -1
- package/dist/auto-reply/reply/mentions.js +18 -11
- package/dist/auto-reply/reply/normalize-reply.js +17 -8
- package/dist/auto-reply/reply/reply-dispatcher.js +62 -10
- package/dist/auto-reply/reply/session.js +102 -21
- package/dist/auto-reply/reply/streaming-directives.js +16 -5
- package/dist/auto-reply/status.js +73 -50
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/http-auth.js +1 -1
- package/dist/browser/paths.js +2 -2
- package/dist/build-info.json +3 -3
- package/dist/channels/allowlist-match.js +20 -0
- package/dist/channels/allowlists/resolve-utils.js +65 -2
- package/dist/channels/chat-type.js +8 -4
- package/dist/channels/dock.js +127 -35
- package/dist/channels/draft-stream-loop.js +6 -2
- package/dist/channels/plugins/actions/telegram.js +42 -18
- package/dist/channels/plugins/allowlist-match.js +1 -1
- package/dist/channels/plugins/group-mentions.js +51 -41
- package/dist/channels/plugins/message-action-names.js +2 -0
- package/dist/channels/plugins/message-actions.js +24 -5
- package/dist/channels/plugins/normalize/discord.js +26 -4
- package/dist/channels/plugins/normalize/signal.js +35 -22
- package/dist/channels/plugins/onboarding/helpers.js +8 -26
- package/dist/channels/plugins/outbound/imessage.js +15 -14
- package/dist/channels/registry.js +20 -7
- package/dist/cli/acp-cli.js +7 -5
- package/dist/cli/browser-cli-extension.js +25 -12
- package/dist/cli/browser-cli-state.cookies-storage.js +25 -6
- package/dist/cli/browser-cli-state.js +101 -145
- package/dist/cli/command-options.js +28 -0
- package/dist/cli/completion-cli.js +6 -6
- package/dist/cli/cron-cli/register.cron-add.js +25 -1
- package/dist/cli/cron-cli/register.cron-edit.js +44 -0
- package/dist/cli/cron-cli/shared.js +7 -1
- package/dist/cli/daemon-cli/lifecycle-core.js +23 -21
- package/dist/cli/daemon-cli/lifecycle.js +23 -247
- package/dist/cli/daemon-cli/register-service-commands.js +25 -4
- package/dist/cli/daemon-cli.js +1 -0
- package/dist/cli/devices-cli.js +33 -20
- package/dist/cli/gateway-cli/register.js +37 -105
- package/dist/cli/gateway-cli/run.js +49 -11
- package/dist/cli/nodes-camera.js +59 -4
- package/dist/cli/nodes-cli/register.camera.js +27 -24
- package/dist/cli/nodes-cli/rpc.js +21 -38
- package/dist/cli/qr-cli.js +2 -2
- package/dist/cli/skills-cli.format.js +2 -2
- package/dist/cli/update-cli/progress.js +2 -2
- package/dist/cli/update-cli/restart-helper.js +28 -7
- package/dist/cli/update-cli/shared.js +7 -7
- package/dist/cli/update-cli/status.js +1 -1
- package/dist/cli/update-cli/update-command.js +14 -8
- package/dist/cli/update-cli/wizard.js +2 -2
- package/dist/cli/update-cli.js +21 -1027
- package/dist/commands/auth-choice.apply.anthropic.js +10 -2
- package/dist/commands/channels/add-mutators.js +3 -35
- package/dist/commands/channels/add.js +39 -51
- package/dist/commands/config-validation.js +1 -1
- package/dist/commands/configure.gateway-auth.js +52 -15
- package/dist/commands/configure.gateway.js +84 -40
- package/dist/commands/doctor-completion.js +3 -3
- package/dist/commands/doctor-config-flow.js +536 -16
- package/dist/commands/doctor-gateway-services.js +103 -79
- package/dist/commands/doctor-memory-search.js +9 -9
- package/dist/commands/doctor-platform-notes.js +57 -30
- package/dist/commands/doctor-prompter.js +26 -15
- package/dist/commands/doctor-session-locks.js +1 -1
- package/dist/commands/doctor.js +21 -9
- package/dist/commands/model-picker.js +120 -95
- package/dist/commands/models/set.js +2 -21
- package/dist/commands/models/shared.js +65 -37
- package/dist/commands/onboard-helpers.js +81 -39
- package/dist/commands/openai-codex-oauth.js +1 -1
- package/dist/commands/sessions.js +52 -53
- package/dist/commands/status.summary.js +52 -34
- package/dist/commands/test-wizard-helpers.js +2 -2
- package/dist/config/defaults.js +79 -42
- package/dist/config/group-policy.js +50 -18
- package/dist/config/includes.js +37 -10
- package/dist/config/schema.help.js +5 -4
- package/dist/config/schema.hints.js +2 -2
- package/dist/config/schema.labels.js +1 -0
- package/dist/config/sessions/group.js +12 -11
- package/dist/config/sessions/paths.js +137 -11
- package/dist/config/sessions/store.js +185 -65
- package/dist/config/sessions/types.js +15 -1
- package/dist/config/sessions.js +1 -0
- package/dist/config/telegram-custom-commands.js +3 -2
- package/dist/config/types.js +2 -0
- package/dist/config/zod-schema.agent-defaults.js +6 -27
- package/dist/config/zod-schema.agent-runtime.js +171 -79
- package/dist/config/zod-schema.providers-core.js +138 -65
- package/dist/config/zod-schema.session.js +49 -22
- package/dist/control-ui/assets/index-HRr1grwl.js.map +1 -1
- package/dist/cron/isolated-agent/run.js +224 -57
- package/dist/cron/normalize.js +48 -45
- package/dist/cron/run-log.js +14 -0
- package/dist/cron/service/jobs.js +190 -28
- package/dist/cron/service/normalize.js +29 -11
- package/dist/cron/service/store.js +30 -44
- package/dist/cron/service/timer.js +182 -96
- package/dist/cron/service.js +3 -0
- package/dist/cron/stagger.js +37 -0
- package/dist/daemon/inspect.js +132 -92
- package/dist/daemon/runtime-paths.js +25 -4
- package/dist/daemon/service-audit.js +47 -16
- package/dist/discord/accounts.js +23 -20
- package/dist/discord/monitor/agent-components.js +1115 -219
- package/dist/discord/monitor/allow-list.js +114 -34
- package/dist/discord/monitor/listeners.js +204 -97
- package/dist/discord/monitor/message-handler.js +21 -10
- package/dist/discord/monitor/message-handler.preflight.js +195 -101
- package/dist/discord/monitor/message-handler.process.js +384 -123
- package/dist/discord/monitor/message-utils.js +86 -23
- package/dist/discord/monitor/native-command.js +77 -57
- package/dist/discord/monitor/provider.js +122 -117
- package/dist/discord/monitor/reply-context.js +20 -16
- package/dist/discord/monitor/reply-delivery.js +40 -8
- package/dist/discord/monitor/rest-fetch.js +22 -0
- package/dist/discord/monitor/threading.js +117 -24
- package/dist/discord/send.js +2 -1
- package/dist/discord/send.outbound.js +124 -11
- package/dist/discord/send.shared.js +112 -72
- package/dist/discord/voice-message.js +3 -3
- package/dist/gateway/auth.js +119 -44
- package/dist/gateway/call.js +76 -34
- package/dist/gateway/channel-health-monitor.js +57 -50
- package/dist/gateway/client.js +63 -29
- package/dist/gateway/control-ui-contract.js +1 -1
- package/dist/gateway/gateway-config-prompts.shared.js +2 -2
- package/dist/gateway/net.js +109 -1
- package/dist/gateway/protocol/index.js +5 -8
- package/dist/gateway/protocol/schema/agent.js +19 -1
- package/dist/gateway/protocol/schema/channels.js +21 -0
- package/dist/gateway/protocol/schema/cron.js +43 -30
- package/dist/gateway/protocol/schema/protocol-schemas.js +6 -11
- package/dist/gateway/protocol/schema/sessions.js +5 -1
- package/dist/gateway/protocol/schema.js +0 -1
- package/dist/gateway/server/presence-events.js +12 -0
- package/dist/gateway/server/ws-connection/message-handler.js +203 -212
- package/dist/gateway/server/ws-connection.js +58 -21
- package/dist/gateway/server-broadcast.js +18 -13
- package/dist/gateway/server-cron.js +177 -10
- package/dist/gateway/server-methods/agent-job.js +131 -38
- package/dist/gateway/server-methods/send.js +60 -14
- package/dist/gateway/server-methods/sessions.js +160 -96
- package/dist/gateway/server-methods/system.js +5 -7
- package/dist/gateway/server-methods-list.js +8 -0
- package/dist/gateway/server-methods.js +24 -8
- package/dist/gateway/server-node-events.js +278 -68
- package/dist/gateway/session-utils.fs.js +316 -75
- package/dist/gateway/session-utils.js +224 -70
- package/dist/gateway/sessions-patch.js +63 -20
- package/dist/gateway/test-temp-config.js +1 -1
- package/dist/gateway/tools-invoke-http.js +118 -70
- package/dist/gateway/ws-log.js +135 -107
- package/dist/hooks/frontmatter.js +36 -82
- package/dist/hooks/install.js +149 -139
- package/dist/hooks/internal-hooks.js +29 -4
- package/dist/hooks/plugin-hooks.js +2 -1
- package/dist/imessage/monitor/deliver.js +10 -4
- package/dist/imessage/monitor/monitor-provider.js +138 -375
- package/dist/imessage/monitor/runtime.js +4 -8
- package/dist/imessage/send.js +65 -19
- package/dist/infra/exec-approvals-allowlist.js +7 -0
- package/dist/infra/exec-approvals.js +35 -920
- package/dist/infra/exec-safe-bin-trust.js +64 -0
- package/dist/infra/heartbeat-runner.js +207 -134
- package/dist/infra/heartbeat-wake.js +183 -22
- package/dist/infra/install-source-utils.js +47 -0
- package/dist/infra/net/ssrf.js +170 -36
- package/dist/infra/outbound/deliver.js +224 -58
- package/dist/infra/outbound/message-action-spec.js +12 -5
- package/dist/infra/outbound/outbound-session.js +27 -25
- package/dist/infra/poolbot-root.js +32 -22
- package/dist/infra/ports.js +14 -11
- package/dist/infra/skills-remote.js +48 -37
- package/dist/infra/system-events.js +25 -11
- package/dist/infra/system-presence.js +26 -33
- package/dist/infra/tmp-poolbot-dir.js +81 -2
- package/dist/infra/wsl.js +37 -1
- package/dist/line/bot-message-context.js +163 -191
- package/dist/logging/subsystem.js +59 -22
- package/dist/markdown/ir.js +124 -50
- package/dist/media/store.js +1 -1
- package/dist/media-understanding/runner.entries.js +42 -25
- package/dist/media-understanding/runner.js +53 -488
- package/dist/memory/embeddings-gemini.js +53 -38
- package/dist/memory/manager-embedding-ops.js +48 -69
- package/dist/pairing/pairing-store.js +178 -119
- package/dist/plugin-sdk/index.js +34 -6
- package/dist/plugins/hooks.js +135 -14
- package/dist/plugins/install.js +190 -152
- package/dist/polls.js +11 -0
- package/dist/routing/resolve-route.js +190 -56
- package/dist/routing/session-key.js +38 -22
- package/dist/runtime.js +35 -9
- package/dist/security/audit-channel.js +1 -1
- package/dist/sessions/session-key-utils.js +29 -11
- package/dist/shared/frontmatter.js +5 -5
- package/dist/shared/node-list-types.js +1 -0
- package/dist/shared/string-normalization.js +15 -0
- package/dist/signal/monitor/event-handler.js +68 -36
- package/dist/signal/send.js +29 -37
- package/dist/slack/monitor/allow-list.js +10 -11
- package/dist/slack/monitor/commands.js +14 -3
- package/dist/slack/monitor/events/interactions.js +4 -4
- package/dist/slack/monitor/media.js +224 -16
- package/dist/slack/monitor/message-handler/dispatch.js +247 -13
- package/dist/slack/monitor/message-handler/prepare.js +128 -45
- package/dist/slack/monitor/slash.js +357 -144
- package/dist/slack/streaming.js +77 -0
- package/dist/telegram/accounts.js +40 -13
- package/dist/telegram/allowed-updates.js +3 -0
- package/dist/telegram/bot/delivery.js +129 -66
- package/dist/telegram/bot/helpers.js +136 -122
- package/dist/telegram/bot-handlers.js +600 -339
- package/dist/telegram/bot-message-context.js +115 -73
- package/dist/telegram/bot-message-dispatch.js +235 -104
- package/dist/telegram/bot-native-command-menu.js +3 -1
- package/dist/telegram/bot-native-commands.js +213 -193
- package/dist/telegram/bot.js +24 -132
- package/dist/telegram/draft-stream.js +84 -75
- package/dist/telegram/format.js +150 -6
- package/dist/telegram/send.js +415 -255
- package/dist/telegram/targets.js +21 -2
- package/dist/telegram/update-offset-store.js +19 -3
- package/dist/terminal/restore.js +5 -2
- package/dist/test-utils/fetch-mock.js +5 -0
- package/dist/version.js +18 -5
- package/dist/web/auto-reply/monitor/broadcast.js +7 -3
- package/dist/web/auto-reply/monitor/on-message.js +6 -3
- package/dist/web/inbound/media.js +34 -8
- package/dist/web/inbound/monitor.js +34 -17
- package/dist/web/inbound/send-api.js +18 -17
- package/dist/web/outbound.js +12 -5
- package/dist/wizard/clack-prompter.js +40 -7
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/device-pair/index.ts +2 -2
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/irc/src/accounts.ts +1 -1
- package/extensions/irc/src/onboarding.ts +4 -4
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +10 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +10 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +10 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai-codex-auth/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +10 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +10 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +10 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +10 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/skills/apple-reminders/SKILL.md +100 -49
- package/skills/coding-agent/SKILL.md +34 -28
- package/skills/github/SKILL.md +131 -16
- package/skills/imsg/SKILL.md +112 -15
- package/skills/openhue/SKILL.md +101 -19
- package/skills/tmux/SKILL.md +111 -79
- package/skills/weather/SKILL.md +88 -25
- package/dist/agents/openclaw-tools.js +0 -151
- package/dist/agents/tool-security.js +0 -96
- package/dist/gateway/url-validation.js +0 -94
- package/dist/infra/openclaw-root.js +0 -109
- package/dist/infra/tmp-openclaw-dir.js +0 -81
- package/dist/media/path-sanitization.js +0 -78
package/skills/openhue/SKILL.md
CHANGED
|
@@ -1,30 +1,112 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openhue
|
|
3
|
-
description: Control Philips Hue lights
|
|
3
|
+
description: Control Philips Hue lights and scenes via the OpenHue CLI.
|
|
4
4
|
homepage: https://www.openhue.io/cli
|
|
5
|
-
metadata:
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"poolbot":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "💡",
|
|
10
|
+
"requires": { "bins": ["openhue"] },
|
|
11
|
+
"install":
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "brew",
|
|
15
|
+
"kind": "brew",
|
|
16
|
+
"formula": "openhue/cli/openhue-cli",
|
|
17
|
+
"bins": ["openhue"],
|
|
18
|
+
"label": "Install OpenHue CLI (brew)",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
}
|
|
6
23
|
---
|
|
7
24
|
|
|
8
25
|
# OpenHue CLI
|
|
9
26
|
|
|
10
|
-
Use `openhue` to control Hue lights and scenes via a Hue Bridge.
|
|
27
|
+
Use `openhue` to control Philips Hue lights and scenes via a Hue Bridge.
|
|
11
28
|
|
|
12
|
-
|
|
13
|
-
- Discover bridges: `openhue discover`
|
|
14
|
-
- Guided setup: `openhue setup`
|
|
29
|
+
## When to Use
|
|
15
30
|
|
|
16
|
-
|
|
17
|
-
- `openhue get light --json`
|
|
18
|
-
- `openhue get room --json`
|
|
19
|
-
- `openhue get scene --json`
|
|
31
|
+
✅ **USE this skill when:**
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- Scene: `openhue set scene <scene-id>`
|
|
33
|
+
- "Turn on/off the lights"
|
|
34
|
+
- "Dim the living room lights"
|
|
35
|
+
- "Set a scene" or "movie mode"
|
|
36
|
+
- Controlling specific Hue rooms or zones
|
|
37
|
+
- Adjusting brightness, color, or color temperature
|
|
27
38
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
## When NOT to Use
|
|
40
|
+
|
|
41
|
+
❌ **DON'T use this skill when:**
|
|
42
|
+
|
|
43
|
+
- Non-Hue smart devices (other brands) → not supported
|
|
44
|
+
- HomeKit scenes or Shortcuts → use Apple's ecosystem
|
|
45
|
+
- TV or entertainment system control
|
|
46
|
+
- Thermostat or HVAC
|
|
47
|
+
- Smart plugs (unless Hue smart plugs)
|
|
48
|
+
|
|
49
|
+
## Common Commands
|
|
50
|
+
|
|
51
|
+
### List Resources
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
openhue get light # List all lights
|
|
55
|
+
openhue get room # List all rooms
|
|
56
|
+
openhue get scene # List all scenes
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Control Lights
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Turn on/off
|
|
63
|
+
openhue set light "Bedroom Lamp" --on
|
|
64
|
+
openhue set light "Bedroom Lamp" --off
|
|
65
|
+
|
|
66
|
+
# Brightness (0-100)
|
|
67
|
+
openhue set light "Bedroom Lamp" --on --brightness 50
|
|
68
|
+
|
|
69
|
+
# Color temperature (warm to cool: 153-500 mirek)
|
|
70
|
+
openhue set light "Bedroom Lamp" --on --temperature 300
|
|
71
|
+
|
|
72
|
+
# Color (by name or hex)
|
|
73
|
+
openhue set light "Bedroom Lamp" --on --color red
|
|
74
|
+
openhue set light "Bedroom Lamp" --on --rgb "#FF5500"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Control Rooms
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Turn off entire room
|
|
81
|
+
openhue set room "Bedroom" --off
|
|
82
|
+
|
|
83
|
+
# Set room brightness
|
|
84
|
+
openhue set room "Bedroom" --on --brightness 30
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Scenes
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Activate scene
|
|
91
|
+
openhue set scene "Relax" --room "Bedroom"
|
|
92
|
+
openhue set scene "Concentrate" --room "Office"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Quick Presets
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Bedtime (dim warm)
|
|
99
|
+
openhue set room "Bedroom" --on --brightness 20 --temperature 450
|
|
100
|
+
|
|
101
|
+
# Work mode (bright cool)
|
|
102
|
+
openhue set room "Office" --on --brightness 100 --temperature 250
|
|
103
|
+
|
|
104
|
+
# Movie mode (dim)
|
|
105
|
+
openhue set room "Living Room" --on --brightness 10
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Notes
|
|
109
|
+
|
|
110
|
+
- Bridge must be on local network
|
|
111
|
+
- First run requires button press on Hue bridge to pair
|
|
112
|
+
- Colors only work on color-capable bulbs (not white-only)
|
package/skills/tmux/SKILL.md
CHANGED
|
@@ -1,121 +1,153 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tmux
|
|
3
3
|
description: Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
|
|
4
|
-
metadata:
|
|
4
|
+
metadata:
|
|
5
|
+
{ "poolbot": { "emoji": "🧵", "os": ["darwin", "linux"], "requires": { "bins": ["tmux"] } } }
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
# tmux
|
|
8
|
+
# tmux Session Control
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Control tmux sessions by sending keystrokes and reading output. Essential for managing Claude Code sessions.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## When to Use
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
SOCKET_DIR="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/poolbot-tmux-sockets}"
|
|
15
|
-
mkdir -p "$SOCKET_DIR"
|
|
16
|
-
SOCKET="$SOCKET_DIR/poolbot.sock"
|
|
17
|
-
SESSION=poolbot-python
|
|
18
|
-
|
|
19
|
-
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
|
|
20
|
-
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
|
|
21
|
-
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
|
|
22
|
-
```
|
|
14
|
+
✅ **USE this skill when:**
|
|
23
15
|
|
|
24
|
-
|
|
16
|
+
- Monitoring Claude/Codex sessions in tmux
|
|
17
|
+
- Sending input to interactive terminal applications
|
|
18
|
+
- Scraping output from long-running processes in tmux
|
|
19
|
+
- Navigating tmux panes/windows programmatically
|
|
20
|
+
- Checking on background work in existing sessions
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
❌ **DON'T use this skill when:**
|
|
25
|
+
|
|
26
|
+
- Running one-off shell commands → use `exec` tool directly
|
|
27
|
+
- Starting new background processes → use `exec` with `background:true`
|
|
28
|
+
- Non-interactive scripts → use `exec` tool
|
|
29
|
+
- The process isn't in tmux
|
|
30
|
+
- You need to create a new tmux session → use `exec` with `tmux new-session`
|
|
31
|
+
|
|
32
|
+
## Example Sessions
|
|
33
|
+
|
|
34
|
+
| Session | Purpose |
|
|
35
|
+
| ----------------------- | --------------------------- |
|
|
36
|
+
| `shared` | Primary interactive session |
|
|
37
|
+
| `worker-2` - `worker-8` | Parallel worker sessions |
|
|
38
|
+
|
|
39
|
+
## Common Commands
|
|
40
|
+
|
|
41
|
+
### List Sessions
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
tmux list-sessions
|
|
45
|
+
tmux ls
|
|
30
46
|
```
|
|
31
47
|
|
|
32
|
-
|
|
48
|
+
### Capture Output
|
|
33
49
|
|
|
34
|
-
|
|
35
|
-
|
|
50
|
+
```bash
|
|
51
|
+
# Last 20 lines of pane
|
|
52
|
+
tmux capture-pane -t shared -p | tail -20
|
|
36
53
|
|
|
37
|
-
|
|
54
|
+
# Entire scrollback
|
|
55
|
+
tmux capture-pane -t shared -p -S -
|
|
38
56
|
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
57
|
+
# Specific pane in window
|
|
58
|
+
tmux capture-pane -t shared:0.0 -p
|
|
59
|
+
```
|
|
42
60
|
|
|
43
|
-
|
|
61
|
+
### Send Keys
|
|
44
62
|
|
|
45
|
-
|
|
46
|
-
|
|
63
|
+
```bash
|
|
64
|
+
# Send text (doesn't press Enter)
|
|
65
|
+
tmux send-keys -t shared "hello"
|
|
66
|
+
|
|
67
|
+
# Send text + Enter
|
|
68
|
+
tmux send-keys -t shared "y" Enter
|
|
69
|
+
|
|
70
|
+
# Send special keys
|
|
71
|
+
tmux send-keys -t shared Enter
|
|
72
|
+
tmux send-keys -t shared Escape
|
|
73
|
+
tmux send-keys -t shared C-c # Ctrl+C
|
|
74
|
+
tmux send-keys -t shared C-d # Ctrl+D (EOF)
|
|
75
|
+
tmux send-keys -t shared C-z # Ctrl+Z (suspend)
|
|
76
|
+
```
|
|
47
77
|
|
|
48
|
-
|
|
78
|
+
### Window/Pane Navigation
|
|
49
79
|
|
|
50
|
-
|
|
51
|
-
|
|
80
|
+
```bash
|
|
81
|
+
# Select window
|
|
82
|
+
tmux select-window -t shared:0
|
|
52
83
|
|
|
53
|
-
|
|
84
|
+
# Select pane
|
|
85
|
+
tmux select-pane -t shared:0.1
|
|
54
86
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
87
|
+
# List windows
|
|
88
|
+
tmux list-windows -t shared
|
|
89
|
+
```
|
|
58
90
|
|
|
59
|
-
|
|
91
|
+
### Session Management
|
|
60
92
|
|
|
61
|
-
|
|
93
|
+
```bash
|
|
94
|
+
# Create new session
|
|
95
|
+
tmux new-session -d -s newsession
|
|
62
96
|
|
|
63
|
-
|
|
97
|
+
# Kill session
|
|
98
|
+
tmux kill-session -t sessionname
|
|
64
99
|
|
|
65
|
-
|
|
66
|
-
-
|
|
100
|
+
# Rename session
|
|
101
|
+
tmux rename-session -t old new
|
|
102
|
+
```
|
|
67
103
|
|
|
68
|
-
##
|
|
104
|
+
## Sending Input Safely
|
|
69
105
|
|
|
70
|
-
|
|
106
|
+
For interactive TUIs (Claude Code, Codex, etc.), split text and Enter into separate sends to avoid paste/multiline edge cases:
|
|
71
107
|
|
|
72
108
|
```bash
|
|
73
|
-
|
|
109
|
+
tmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts"
|
|
110
|
+
sleep 0.1
|
|
111
|
+
tmux send-keys -t shared Enter
|
|
112
|
+
```
|
|
74
113
|
|
|
75
|
-
|
|
76
|
-
for i in 1 2 3 4 5; do
|
|
77
|
-
tmux -S "$SOCKET" new-session -d -s "agent-$i"
|
|
78
|
-
done
|
|
114
|
+
## Claude Code Session Patterns
|
|
79
115
|
|
|
80
|
-
|
|
81
|
-
tmux -S "$SOCKET" send-keys -t agent-1 "cd /tmp/project1 && codex --yolo 'Fix bug X'" Enter
|
|
82
|
-
tmux -S "$SOCKET" send-keys -t agent-2 "cd /tmp/project2 && codex --yolo 'Fix bug Y'" Enter
|
|
83
|
-
|
|
84
|
-
# Poll for completion (check if prompt returned)
|
|
85
|
-
for sess in agent-1 agent-2; do
|
|
86
|
-
if tmux -S "$SOCKET" capture-pane -p -t "$sess" -S -3 | grep -q "❯"; then
|
|
87
|
-
echo "$sess: DONE"
|
|
88
|
-
else
|
|
89
|
-
echo "$sess: Running..."
|
|
90
|
-
fi
|
|
91
|
-
done
|
|
116
|
+
### Check if Session Needs Input
|
|
92
117
|
|
|
93
|
-
|
|
94
|
-
|
|
118
|
+
```bash
|
|
119
|
+
# Look for prompts
|
|
120
|
+
tmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"
|
|
95
121
|
```
|
|
96
122
|
|
|
97
|
-
|
|
98
|
-
- Use separate git worktrees for parallel fixes (no branch conflicts)
|
|
99
|
-
- `pnpm install` first before running codex in fresh clones
|
|
100
|
-
- Check for shell prompt (`❯` or `$`) to detect completion
|
|
101
|
-
- Codex needs `--yolo` or `--full-auto` for non-interactive fixes
|
|
123
|
+
### Approve Claude Code Prompt
|
|
102
124
|
|
|
103
|
-
|
|
125
|
+
```bash
|
|
126
|
+
# Send 'y' and Enter
|
|
127
|
+
tmux send-keys -t worker-3 'y' Enter
|
|
104
128
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
129
|
+
# Or select numbered option
|
|
130
|
+
tmux send-keys -t worker-3 '2' Enter
|
|
131
|
+
```
|
|
108
132
|
|
|
109
|
-
|
|
133
|
+
### Check All Sessions Status
|
|
110
134
|
|
|
111
|
-
|
|
135
|
+
```bash
|
|
136
|
+
for s in shared worker-2 worker-3 worker-4 worker-5 worker-6 worker-7 worker-8; do
|
|
137
|
+
echo "=== $s ==="
|
|
138
|
+
tmux capture-pane -t $s -p 2>/dev/null | tail -5
|
|
139
|
+
done
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Send Task to Session
|
|
112
143
|
|
|
113
144
|
```bash
|
|
114
|
-
|
|
145
|
+
tmux send-keys -t worker-4 "Fix the bug in auth.js" Enter
|
|
115
146
|
```
|
|
116
147
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
- `-
|
|
121
|
-
-
|
|
148
|
+
## Notes
|
|
149
|
+
|
|
150
|
+
- Use `capture-pane -p` to print to stdout (essential for scripting)
|
|
151
|
+
- `-S -` captures entire scrollback history
|
|
152
|
+
- Target format: `session:window.pane` (e.g., `shared:0.0`)
|
|
153
|
+
- Sessions persist across SSH disconnects
|
package/skills/weather/SKILL.md
CHANGED
|
@@ -1,49 +1,112 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: weather
|
|
3
|
-
description: Get current weather and forecasts
|
|
3
|
+
description: "Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed."
|
|
4
4
|
homepage: https://wttr.in/:help
|
|
5
|
-
metadata: {"poolbot":{"emoji":"🌤️","requires":{"bins":["curl"]}}}
|
|
5
|
+
metadata: { "poolbot": { "emoji": "🌤️", "requires": { "bins": ["curl"] } } }
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Weather
|
|
8
|
+
# Weather Skill
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Get current weather conditions and forecasts.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
✅ **USE this skill when:**
|
|
15
|
+
|
|
16
|
+
- "What's the weather?"
|
|
17
|
+
- "Will it rain today/tomorrow?"
|
|
18
|
+
- "Temperature in [city]"
|
|
19
|
+
- "Weather forecast for the week"
|
|
20
|
+
- Travel planning weather checks
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
❌ **DON'T use this skill when:**
|
|
25
|
+
|
|
26
|
+
- Historical weather data → use weather archives/APIs
|
|
27
|
+
- Climate analysis or trends → use specialized data sources
|
|
28
|
+
- Hyper-local microclimate data → use local sensors
|
|
29
|
+
- Severe weather alerts → check official NWS sources
|
|
30
|
+
- Aviation/marine weather → use specialized services (METAR, etc.)
|
|
31
|
+
|
|
32
|
+
## Location
|
|
33
|
+
|
|
34
|
+
Always include a city, region, or airport code in weather queries.
|
|
35
|
+
|
|
36
|
+
## Commands
|
|
37
|
+
|
|
38
|
+
### Current Weather
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# One-line summary
|
|
42
|
+
curl "wttr.in/London?format=3"
|
|
43
|
+
|
|
44
|
+
# Detailed current conditions
|
|
45
|
+
curl "wttr.in/London?0"
|
|
46
|
+
|
|
47
|
+
# Specific city
|
|
48
|
+
curl "wttr.in/New+York?format=3"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Forecasts
|
|
13
52
|
|
|
14
|
-
Quick one-liner:
|
|
15
53
|
```bash
|
|
16
|
-
|
|
17
|
-
|
|
54
|
+
# 3-day forecast
|
|
55
|
+
curl "wttr.in/London"
|
|
56
|
+
|
|
57
|
+
# Week forecast
|
|
58
|
+
curl "wttr.in/London?format=v2"
|
|
59
|
+
|
|
60
|
+
# Specific day (0=today, 1=tomorrow, 2=day after)
|
|
61
|
+
curl "wttr.in/London?1"
|
|
18
62
|
```
|
|
19
63
|
|
|
20
|
-
|
|
64
|
+
### Format Options
|
|
65
|
+
|
|
21
66
|
```bash
|
|
22
|
-
|
|
23
|
-
|
|
67
|
+
# One-liner
|
|
68
|
+
curl "wttr.in/London?format=%l:+%c+%t+%w"
|
|
69
|
+
|
|
70
|
+
# JSON output
|
|
71
|
+
curl "wttr.in/London?format=j1"
|
|
72
|
+
|
|
73
|
+
# PNG image
|
|
74
|
+
curl "wttr.in/London.png"
|
|
24
75
|
```
|
|
25
76
|
|
|
26
|
-
|
|
77
|
+
### Format Codes
|
|
78
|
+
|
|
79
|
+
- `%c` — Weather condition emoji
|
|
80
|
+
- `%t` — Temperature
|
|
81
|
+
- `%f` — "Feels like"
|
|
82
|
+
- `%w` — Wind
|
|
83
|
+
- `%h` — Humidity
|
|
84
|
+
- `%p` — Precipitation
|
|
85
|
+
- `%l` — Location
|
|
86
|
+
|
|
87
|
+
## Quick Responses
|
|
88
|
+
|
|
89
|
+
**"What's the weather?"**
|
|
90
|
+
|
|
27
91
|
```bash
|
|
28
|
-
curl -s "wttr.in/London?
|
|
92
|
+
curl -s "wttr.in/London?format=%l:+%c+%t+(feels+like+%f),+%w+wind,+%h+humidity"
|
|
29
93
|
```
|
|
30
94
|
|
|
31
|
-
|
|
95
|
+
**"Will it rain?"**
|
|
32
96
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- Units: `?m` (metric) `?u` (USCS)
|
|
37
|
-
- Today only: `?1` · Current only: `?0`
|
|
38
|
-
- PNG: `curl -s "wttr.in/Berlin.png" -o /tmp/weather.png`
|
|
97
|
+
```bash
|
|
98
|
+
curl -s "wttr.in/London?format=%l:+%c+%p"
|
|
99
|
+
```
|
|
39
100
|
|
|
40
|
-
|
|
101
|
+
**"Weekend forecast"**
|
|
41
102
|
|
|
42
|
-
Free, no key, good for programmatic use:
|
|
43
103
|
```bash
|
|
44
|
-
curl
|
|
104
|
+
curl "wttr.in/London?format=v2"
|
|
45
105
|
```
|
|
46
106
|
|
|
47
|
-
|
|
107
|
+
## Notes
|
|
48
108
|
|
|
49
|
-
|
|
109
|
+
- No API key needed (uses wttr.in)
|
|
110
|
+
- Rate limited; don't spam requests
|
|
111
|
+
- Works for most global cities
|
|
112
|
+
- Supports airport codes: `curl wttr.in/ORD`
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { resolvePluginTools } from "../plugins/tools.js";
|
|
2
|
-
import { resolveSessionAgentId } from "./agent-scope.js";
|
|
3
|
-
import { createAgentsListTool } from "./tools/agents-list-tool.js";
|
|
4
|
-
import { createBrowserTool } from "./tools/browser-tool.js";
|
|
5
|
-
import { createCanvasTool } from "./tools/canvas-tool.js";
|
|
6
|
-
import { createCronTool } from "./tools/cron-tool.js";
|
|
7
|
-
import { createGatewayTool } from "./tools/gateway-tool.js";
|
|
8
|
-
import { createDeepResearchTool } from "./tools/deep-research-tool.js";
|
|
9
|
-
import { createImageGenerateTool } from "./tools/image-generate-tool.js";
|
|
10
|
-
import { createImageTool } from "./tools/image-tool.js";
|
|
11
|
-
import { createMessageTool } from "./tools/message-tool.js";
|
|
12
|
-
import { createNodesTool } from "./tools/nodes-tool.js";
|
|
13
|
-
import { createSessionStatusTool } from "./tools/session-status-tool.js";
|
|
14
|
-
import { createSessionsHistoryTool } from "./tools/sessions-history-tool.js";
|
|
15
|
-
import { createSessionsListTool } from "./tools/sessions-list-tool.js";
|
|
16
|
-
import { createSessionsSendTool } from "./tools/sessions-send-tool.js";
|
|
17
|
-
import { createSessionsSpawnTool } from "./tools/sessions-spawn-tool.js";
|
|
18
|
-
import { createSubagentsTool } from "./tools/subagents-tool.js";
|
|
19
|
-
import { createTtsTool } from "./tools/tts-tool.js";
|
|
20
|
-
import { createWebFetchTool, createWebSearchTool } from "./tools/web-tools.js";
|
|
21
|
-
import { resolveWorkspaceRoot } from "./workspace-dir.js";
|
|
22
|
-
export function createOpenClawTools(options) {
|
|
23
|
-
const workspaceDir = resolveWorkspaceRoot(options?.workspaceDir);
|
|
24
|
-
const imageTool = options?.agentDir?.trim()
|
|
25
|
-
? createImageTool({
|
|
26
|
-
config: options?.config,
|
|
27
|
-
agentDir: options.agentDir,
|
|
28
|
-
workspaceDir,
|
|
29
|
-
sandbox: options?.sandboxRoot && options?.sandboxFsBridge
|
|
30
|
-
? { root: options.sandboxRoot, bridge: options.sandboxFsBridge }
|
|
31
|
-
: undefined,
|
|
32
|
-
modelHasVision: options?.modelHasVision,
|
|
33
|
-
})
|
|
34
|
-
: null;
|
|
35
|
-
const imageGenerateTool = createImageGenerateTool({
|
|
36
|
-
config: options?.config,
|
|
37
|
-
agentDir: options?.agentDir,
|
|
38
|
-
sandboxRoot: options?.sandboxRoot,
|
|
39
|
-
});
|
|
40
|
-
const webSearchTool = createWebSearchTool({
|
|
41
|
-
config: options?.config,
|
|
42
|
-
sandboxed: options?.sandboxed,
|
|
43
|
-
});
|
|
44
|
-
const webFetchTool = createWebFetchTool({
|
|
45
|
-
config: options?.config,
|
|
46
|
-
sandboxed: options?.sandboxed,
|
|
47
|
-
});
|
|
48
|
-
const messageTool = options?.disableMessageTool
|
|
49
|
-
? null
|
|
50
|
-
: createMessageTool({
|
|
51
|
-
agentAccountId: options?.agentAccountId,
|
|
52
|
-
agentSessionKey: options?.agentSessionKey,
|
|
53
|
-
config: options?.config,
|
|
54
|
-
currentChannelId: options?.currentChannelId,
|
|
55
|
-
currentChannelProvider: options?.agentChannel,
|
|
56
|
-
currentThreadTs: options?.currentThreadTs,
|
|
57
|
-
replyToMode: options?.replyToMode,
|
|
58
|
-
hasRepliedRef: options?.hasRepliedRef,
|
|
59
|
-
sandboxRoot: options?.sandboxRoot,
|
|
60
|
-
requireExplicitTarget: options?.requireExplicitMessageTarget,
|
|
61
|
-
});
|
|
62
|
-
const tools = [
|
|
63
|
-
createBrowserTool({
|
|
64
|
-
sandboxBridgeUrl: options?.sandboxBrowserBridgeUrl,
|
|
65
|
-
allowHostControl: options?.allowHostBrowserControl,
|
|
66
|
-
}),
|
|
67
|
-
createCanvasTool(),
|
|
68
|
-
createNodesTool({
|
|
69
|
-
agentSessionKey: options?.agentSessionKey,
|
|
70
|
-
config: options?.config,
|
|
71
|
-
}),
|
|
72
|
-
createCronTool({
|
|
73
|
-
agentSessionKey: options?.agentSessionKey,
|
|
74
|
-
}),
|
|
75
|
-
...(messageTool ? [messageTool] : []),
|
|
76
|
-
createTtsTool({
|
|
77
|
-
agentChannel: options?.agentChannel,
|
|
78
|
-
config: options?.config,
|
|
79
|
-
}),
|
|
80
|
-
createGatewayTool({
|
|
81
|
-
agentSessionKey: options?.agentSessionKey,
|
|
82
|
-
config: options?.config,
|
|
83
|
-
}),
|
|
84
|
-
createAgentsListTool({
|
|
85
|
-
agentSessionKey: options?.agentSessionKey,
|
|
86
|
-
requesterAgentIdOverride: options?.requesterAgentIdOverride,
|
|
87
|
-
}),
|
|
88
|
-
createSessionsListTool({
|
|
89
|
-
agentSessionKey: options?.agentSessionKey,
|
|
90
|
-
sandboxed: options?.sandboxed,
|
|
91
|
-
}),
|
|
92
|
-
createSessionsHistoryTool({
|
|
93
|
-
agentSessionKey: options?.agentSessionKey,
|
|
94
|
-
sandboxed: options?.sandboxed,
|
|
95
|
-
}),
|
|
96
|
-
createSessionsSendTool({
|
|
97
|
-
agentSessionKey: options?.agentSessionKey,
|
|
98
|
-
agentChannel: options?.agentChannel,
|
|
99
|
-
sandboxed: options?.sandboxed,
|
|
100
|
-
}),
|
|
101
|
-
createSessionsSpawnTool({
|
|
102
|
-
agentSessionKey: options?.agentSessionKey,
|
|
103
|
-
agentChannel: options?.agentChannel,
|
|
104
|
-
agentAccountId: options?.agentAccountId,
|
|
105
|
-
agentTo: options?.agentTo,
|
|
106
|
-
agentThreadId: options?.agentThreadId,
|
|
107
|
-
agentGroupId: options?.agentGroupId,
|
|
108
|
-
agentGroupChannel: options?.agentGroupChannel,
|
|
109
|
-
agentGroupSpace: options?.agentGroupSpace,
|
|
110
|
-
sandboxed: options?.sandboxed,
|
|
111
|
-
requesterAgentIdOverride: options?.requesterAgentIdOverride,
|
|
112
|
-
}),
|
|
113
|
-
createSubagentsTool({
|
|
114
|
-
agentSessionKey: options?.agentSessionKey,
|
|
115
|
-
}),
|
|
116
|
-
createSessionStatusTool({
|
|
117
|
-
agentSessionKey: options?.agentSessionKey,
|
|
118
|
-
config: options?.config,
|
|
119
|
-
}),
|
|
120
|
-
...(webSearchTool ? [webSearchTool] : []),
|
|
121
|
-
...(webFetchTool ? [webFetchTool] : []),
|
|
122
|
-
...(imageTool ? [imageTool] : []),
|
|
123
|
-
...(imageGenerateTool ? [imageGenerateTool] : []),
|
|
124
|
-
];
|
|
125
|
-
// Z.AI-powered research tool (gracefully absent when no key configured)
|
|
126
|
-
const deepResearchTool = createDeepResearchTool({
|
|
127
|
-
config: options?.config,
|
|
128
|
-
agentDir: options?.agentDir,
|
|
129
|
-
sandboxRoot: options?.sandboxRoot,
|
|
130
|
-
});
|
|
131
|
-
if (deepResearchTool)
|
|
132
|
-
tools.push(deepResearchTool);
|
|
133
|
-
const pluginTools = resolvePluginTools({
|
|
134
|
-
context: {
|
|
135
|
-
config: options?.config,
|
|
136
|
-
workspaceDir,
|
|
137
|
-
agentDir: options?.agentDir,
|
|
138
|
-
agentId: resolveSessionAgentId({
|
|
139
|
-
sessionKey: options?.agentSessionKey,
|
|
140
|
-
config: options?.config,
|
|
141
|
-
}),
|
|
142
|
-
sessionKey: options?.agentSessionKey,
|
|
143
|
-
messageChannel: options?.agentChannel,
|
|
144
|
-
agentAccountId: options?.agentAccountId,
|
|
145
|
-
sandboxed: options?.sandboxed,
|
|
146
|
-
},
|
|
147
|
-
existingToolNames: new Set(tools.map((tool) => tool.name)),
|
|
148
|
-
toolAllowlist: options?.pluginToolAllowlist,
|
|
149
|
-
});
|
|
150
|
-
return [...tools, ...pluginTools];
|
|
151
|
-
}
|