@poolzin/pool-bot 2026.1.39 → 2026.2.0
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/assets/chrome-extension/README.md +3 -3
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +4 -4
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +3 -3
- package/dist/acp/types.js +1 -1
- package/dist/agents/agent-paths.js +3 -3
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/cli-runner/helpers.js +1 -1
- package/dist/agents/cli-runner.js +2 -2
- package/dist/agents/cloudflare-ai-gateway.js +31 -0
- package/dist/agents/compaction.js +16 -2
- package/dist/agents/context-window-guard.js +13 -10
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +1 -1
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +12 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-selection.js +10 -4
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +147 -39
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
- package/dist/agents/pi-embedded-runner/run.js +4 -4
- package/dist/agents/pi-embedded-runner/tool-result-truncation.js +275 -0
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-model-discovery.js +10 -0
- package/dist/agents/pi-tool-definition-adapter.js +50 -9
- package/dist/agents/pi-tools.before-tool-call.js +67 -0
- package/dist/agents/pi-tools.js +10 -5
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/session-file-repair.js +83 -0
- package/dist/agents/session-transcript-repair.js +68 -0
- package/dist/agents/skills/frontmatter.js +1 -1
- package/dist/agents/skills/workspace.js +2 -2
- package/dist/agents/system-prompt.js +28 -4
- package/dist/agents/together-models.js +127 -0
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +1 -1
- package/dist/agents/tools/browser-tool.js +3 -3
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/memory-tool.js +93 -5
- package/dist/agents/tools/web-search.js +1 -1
- package/dist/auto-reply/commands-registry.data.js +1 -1
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-session.js +2 -2
- package/dist/auto-reply/reply/get-reply-run.js +14 -4
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/inbound-context.js +4 -0
- package/dist/auto-reply/reply/inbound-meta.js +130 -0
- package/dist/auto-reply/reply/untrusted-context.js +15 -0
- package/dist/auto-reply/status.js +1 -1
- package/dist/browser/client-fetch.js +1 -1
- package/dist/browser/config.js +1 -1
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/server-context.js +2 -2
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui.js +3 -3
- package/dist/channels/plugins/catalog.js +2 -2
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +1 -1
- package/dist/channels/plugins/onboarding/slack.js +4 -4
- package/dist/channels/plugins/onboarding/whatsapp.js +3 -3
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/cli/browser-cli-extension.js +2 -2
- package/dist/cli/docs-cli.js +1 -1
- package/dist/cli/gateway-cli/dev.js +1 -1
- package/dist/cli/memory-cli.js +25 -15
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/plugins-cli.js +1 -1
- package/dist/cli/run-main.js +2 -2
- package/dist/cli/security-cli.js +1 -1
- package/dist/cli/tagline.js +1 -1
- package/dist/cli/update-cli.js +4 -4
- package/dist/cli/webhooks-cli.js +5 -5
- package/dist/commands/agents.commands.add.js +1 -1
- package/dist/commands/auth-choice.apply.api-providers.js +305 -17
- package/dist/commands/auth-choice.apply.js +4 -1
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/auth-choice.apply.xai.js +63 -0
- package/dist/commands/auth-choice.preferred-provider.js +7 -1
- package/dist/commands/configure.wizard.js +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/docs.js +1 -1
- package/dist/commands/doctor-gateway-services.js +3 -3
- package/dist/commands/doctor-update.js +3 -3
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-auth.config-core.js +366 -28
- package/dist/commands/onboard-auth.credentials.js +71 -9
- package/dist/commands/onboard-auth.js +3 -3
- package/dist/commands/onboard-auth.models.js +26 -24
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +140 -6
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status.command.js +1 -1
- package/dist/commands/uninstall.js +3 -3
- package/dist/compat/legacy-names.js +1 -1
- package/dist/config/io.js +3 -3
- package/dist/config/schema.js +1 -1
- package/dist/config/types.memory.js +1 -0
- package/dist/config/version.js +4 -4
- package/dist/daemon/constants.js +7 -7
- package/dist/daemon/inspect.js +6 -6
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/gateway/live-image-probe.js +1 -66
- package/dist/gateway/openai-http.js +2 -2
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +1 -1
- package/dist/gateway/server.impl.js +2 -2
- package/dist/hooks/frontmatter.js +1 -1
- package/dist/hooks/hooks-status.js +1 -1
- package/dist/hooks/install.js +2 -2
- package/dist/hooks/loader.js +1 -1
- package/dist/hooks/workspace.js +3 -3
- package/dist/index.js +2 -2
- package/dist/infra/bonjour.js +3 -3
- package/dist/infra/path-env.js +3 -3
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/restart.js +1 -1
- package/dist/infra/tailscale.js +1 -1
- package/dist/macos/relay.js +2 -2
- package/dist/media/input-files.js +1 -1
- package/dist/media/mime.js +4 -0
- package/dist/media/png-encode.js +74 -0
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/memory/backend-config.js +207 -0
- package/dist/memory/embeddings.js +1 -1
- package/dist/memory/manager.js +1 -0
- package/dist/memory/types.js +1 -0
- package/dist/node-host/runner.js +2 -2
- package/dist/pairing/pairing-messages.js +1 -1
- package/dist/plugins/discovery.js +1 -1
- package/dist/plugins/install.js +2 -2
- package/dist/plugins/update.js +1 -1
- package/dist/security/audit.js +2 -2
- package/dist/shared/text/reasoning-tags.js +52 -7
- package/dist/tailscale/detect.js +146 -0
- package/dist/telegram/bot-message-context.js +1 -1
- package/dist/test-helpers/workspace.js +11 -0
- package/dist/test-utils/channel-plugins.js +82 -0
- package/dist/test-utils/ports.js +73 -0
- package/dist/utils/shell-argv.js +61 -0
- package/dist/utils.js +10 -0
- package/dist/web/qr-image.js +1 -61
- package/dist/wizard/onboarding.finalize.js +7 -7
- package/dist/wizard/onboarding.js +3 -3
- package/docs/RELEASE_WORKFOTS_COMPARISON.md +3 -3
- package/docs/_config.yml +2 -2
- package/docs/_layouts/default.html +9 -9
- package/docs/concepts/typebox.md +1 -1
- package/docs/docs.json +1 -1
- package/docs/northflank.mdx +7 -7
- package/docs/railway.mdx +3 -3
- package/docs/render.mdx +5 -5
- package/docs/start/lore.md +2 -2
- package/extensions/bluebubbles/index.ts +2 -2
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/accounts.ts +8 -8
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +5 -5
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +16 -16
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +46 -46
- package/extensions/bluebubbles/src/monitor.ts +5 -5
- package/extensions/bluebubbles/src/onboarding.ts +7 -7
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/send.ts +2 -2
- package/extensions/copilot-proxy/README.md +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/index.ts +2 -2
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diagnostics-otel/src/service.ts +3 -3
- package/extensions/discord/index.ts +2 -2
- package/extensions/discord/package.json +1 -1
- package/extensions/google-antigravity-auth/README.md +1 -1
- package/extensions/google-antigravity-auth/index.ts +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/README.md +1 -1
- package/extensions/google-gemini-cli-auth/oauth.ts +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/index.ts +3 -3
- package/extensions/googlechat/package.json +1 -1
- package/extensions/googlechat/src/accounts.ts +8 -8
- package/extensions/googlechat/src/actions.ts +6 -6
- package/extensions/googlechat/src/channel.ts +21 -21
- package/extensions/googlechat/src/monitor.ts +8 -8
- package/extensions/googlechat/src/onboarding.ts +10 -10
- package/extensions/imessage/index.ts +2 -2
- package/extensions/imessage/package.json +1 -1
- package/extensions/line/index.ts +2 -2
- package/extensions/line/package.json +1 -1
- package/extensions/line/src/card-command.ts +2 -2
- package/extensions/line/src/channel.logout.test.ts +4 -4
- package/extensions/line/src/channel.sendPayload.test.ts +8 -8
- package/extensions/line/src/channel.ts +3 -3
- package/extensions/llm-task/README.md +3 -3
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +1 -1
- package/extensions/llm-task/src/llm-task-tool.ts +4 -4
- package/extensions/lobster/README.md +6 -6
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/src/lobster-tool.test.ts +4 -4
- package/extensions/lobster/src/lobster-tool.ts +2 -2
- package/extensions/matrix/index.ts +2 -2
- package/extensions/matrix/package.json +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/handler.ts +1 -1
- package/extensions/matrix/src/onboarding.ts +1 -1
- package/extensions/mattermost/index.ts +2 -2
- package/extensions/mattermost/package.json +1 -1
- package/extensions/mattermost/src/mattermost/accounts.ts +8 -8
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
- package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
- package/extensions/mattermost/src/onboarding-helpers.ts +3 -3
- package/extensions/mattermost/src/onboarding.ts +2 -2
- package/extensions/memory-core/index.ts +2 -2
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/index.ts +3 -3
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/msteams/index.ts +2 -2
- package/extensions/msteams/package.json +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +2 -2
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +2 -2
- package/extensions/msteams/src/onboarding.ts +9 -9
- package/extensions/msteams/src/reply-dispatcher.ts +2 -2
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +4 -4
- package/extensions/nextcloud-talk/index.ts +2 -2
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nextcloud-talk/src/channel.ts +7 -7
- package/extensions/nextcloud-talk/src/inbound.ts +7 -7
- package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
- package/extensions/nostr/README.md +2 -2
- package/extensions/nostr/index.ts +5 -5
- package/extensions/nostr/package.json +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/qwen-portal-auth/README.md +1 -1
- package/extensions/signal/index.ts +2 -2
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/index.ts +2 -2
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/index.ts +2 -2
- package/extensions/telegram/package.json +1 -1
- package/extensions/telegram/src/channel.ts +2 -2
- package/extensions/tlon/README.md +2 -2
- package/extensions/tlon/index.ts +2 -2
- package/extensions/tlon/package.json +1 -1
- package/extensions/tlon/src/channel.ts +13 -13
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +3 -3
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/twitch/README.md +1 -1
- package/extensions/twitch/index.ts +2 -2
- package/extensions/twitch/package.json +1 -1
- package/extensions/twitch/src/config.ts +3 -3
- package/extensions/twitch/src/monitor.ts +3 -3
- package/extensions/twitch/src/onboarding.ts +9 -9
- package/extensions/twitch/src/outbound.test.ts +2 -2
- package/extensions/twitch/src/plugin.test.ts +2 -2
- package/extensions/twitch/src/plugin.ts +8 -8
- package/extensions/twitch/src/send.test.ts +2 -2
- package/extensions/twitch/src/send.ts +4 -4
- package/extensions/twitch/src/token.test.ts +8 -8
- package/extensions/twitch/src/token.ts +3 -3
- package/extensions/twitch/src/twitch-client.ts +3 -3
- package/extensions/twitch/src/types.ts +3 -3
- package/extensions/twitch/src/utils/markdown.ts +1 -1
- package/extensions/voice-call/README.md +3 -3
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/core-bridge.ts +2 -2
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/whatsapp/index.ts +2 -2
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/README.md +1 -1
- package/extensions/zalo/index.ts +2 -2
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalo/src/accounts.ts +8 -8
- package/extensions/zalo/src/actions.ts +4 -4
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +18 -18
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +24 -24
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalouser/README.md +2 -2
- package/extensions/zalouser/index.ts +2 -2
- package/extensions/zalouser/package.json +1 -1
- package/extensions/zalouser/src/accounts.ts +9 -9
- package/extensions/zalouser/src/channel.ts +24 -24
- package/extensions/zalouser/src/monitor.ts +4 -4
- package/extensions/zalouser/src/onboarding.ts +28 -28
- package/package.json +13 -251
- package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
- package/skills/tmux/scripts/find-sessions.sh +1 -1
- package/CHANGELOG.md +0 -102
- package/README-header.png +0 -0
- package/git-hooks/pre-commit +0 -4
- package/scripts/format-staged.js +0 -148
- package/scripts/postinstall.js +0 -300
- package/scripts/setup-git-hooks.js +0 -96
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@poolzin/pool-bot",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.2.0",
|
|
4
4
|
"description": "🎱 Pool Bot - AI assistant with PLCODE integrations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,272 +14,34 @@
|
|
|
14
14
|
"poolbot": "dist/entry.js"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
|
-
"dist
|
|
18
|
-
"dist/agents/**",
|
|
19
|
-
"dist/auto-reply/**",
|
|
20
|
-
"dist/browser/**",
|
|
21
|
-
"dist/canvas-host/**",
|
|
22
|
-
"dist/cli/**",
|
|
23
|
-
"dist/commands/**",
|
|
24
|
-
"dist/config/**",
|
|
25
|
-
"dist/compat/**",
|
|
26
|
-
"dist/control-ui/**",
|
|
27
|
-
"dist/cron/**",
|
|
28
|
-
"dist/channels/**",
|
|
29
|
-
"dist/daemon/**",
|
|
30
|
-
"dist/discord/**",
|
|
31
|
-
"dist/gateway/**",
|
|
32
|
-
"dist/hooks/**",
|
|
33
|
-
"dist/imessage/**",
|
|
34
|
-
"dist/infra/**",
|
|
35
|
-
"dist/macos/**",
|
|
36
|
-
"dist/media/**",
|
|
37
|
-
"dist/media-understanding/**",
|
|
38
|
-
"dist/link-understanding/**",
|
|
39
|
-
"dist/process/**",
|
|
40
|
-
"dist/plugins/**",
|
|
41
|
-
"dist/plugin-sdk/**",
|
|
42
|
-
"dist/security/**",
|
|
43
|
-
"dist/sessions/**",
|
|
44
|
-
"dist/providers/**",
|
|
45
|
-
"dist/signal/**",
|
|
46
|
-
"dist/slack/**",
|
|
47
|
-
"dist/telegram/**",
|
|
48
|
-
"dist/line/**",
|
|
49
|
-
"dist/tui/**",
|
|
50
|
-
"dist/tts/**",
|
|
51
|
-
"dist/web/**",
|
|
52
|
-
"dist/wizard/**",
|
|
53
|
-
"dist/*.js",
|
|
54
|
-
"dist/*.json",
|
|
17
|
+
"dist/**",
|
|
55
18
|
"docs/**",
|
|
56
19
|
"extensions/**",
|
|
57
20
|
"assets/**",
|
|
58
21
|
"skills/**",
|
|
59
22
|
"patches/**",
|
|
60
23
|
"README.md",
|
|
61
|
-
"README-header.png",
|
|
62
|
-
"CHANGELOG.md",
|
|
63
24
|
"LICENSE",
|
|
64
|
-
"
|
|
65
|
-
"scripts/format-staged.js",
|
|
66
|
-
"scripts/setup-git-hooks.js",
|
|
67
|
-
"git-hooks/**",
|
|
68
|
-
"dist/terminal/**",
|
|
69
|
-
"dist/routing/**",
|
|
70
|
-
"dist/shared/**",
|
|
71
|
-
"dist/utils/**",
|
|
72
|
-
"dist/logging/**",
|
|
73
|
-
"dist/memory/**",
|
|
74
|
-
"dist/markdown/**",
|
|
75
|
-
"dist/node-host/**",
|
|
76
|
-
"dist/pairing/**",
|
|
77
|
-
"dist/whatsapp/**"
|
|
25
|
+
"package.json"
|
|
78
26
|
],
|
|
79
27
|
"scripts": {
|
|
80
28
|
"dev": "node scripts/run-node.mjs",
|
|
81
|
-
"
|
|
82
|
-
"prepack": "pnpm build && pnpm ui:build",
|
|
83
|
-
"docs:list": "node scripts/docs-list.js",
|
|
84
|
-
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
85
|
-
"docs:dev": "cd docs && mint dev",
|
|
86
|
-
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
87
|
-
"build": "tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
|
|
88
|
-
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
89
|
-
"release:check": "node --import tsx scripts/release-check.ts",
|
|
90
|
-
"ui:install": "node scripts/ui.js install",
|
|
91
|
-
"ui:dev": "node scripts/ui.js dev",
|
|
92
|
-
"ui:build": "node scripts/ui.js build",
|
|
29
|
+
"build": "tsc -p tsconfig.json && node --import tsx scripts/write-build-info.ts",
|
|
93
30
|
"start": "node scripts/run-node.mjs",
|
|
94
|
-
"poolbot": "node scripts/run-node.mjs",
|
|
95
|
-
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
96
|
-
"gateway:dev": "CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
97
|
-
"gateway:dev:reset": "CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
98
|
-
"tui": "node scripts/run-node.mjs tui",
|
|
99
|
-
"tui:dev": "CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui",
|
|
100
|
-
"poolbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
101
|
-
"ios:gen": "cd apps/ios && xcodegen generate",
|
|
102
|
-
"ios:open": "cd apps/ios && xcodegen generate && open Moltbot.xcodeproj",
|
|
103
|
-
"ios:build": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project Moltbot.xcodeproj -scheme Moltbot -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
|
|
104
|
-
"ios:run": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project Moltbot.xcodeproj -scheme Moltbot -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted com.poolbot.ios'",
|
|
105
|
-
"android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
|
|
106
|
-
"android:install": "cd apps/android && ./gradlew :app:installDebug",
|
|
107
|
-
"android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n com.poolbot.android/.MainActivity",
|
|
108
|
-
"android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
|
|
109
|
-
"mac:restart": "bash scripts/restart-mac.sh",
|
|
110
|
-
"mac:package": "bash scripts/package-mac-app.sh",
|
|
111
|
-
"mac:open": "open dist/Moltbot.app",
|
|
112
31
|
"lint": "oxlint --type-aware src test",
|
|
113
|
-
"
|
|
114
|
-
"lint:all": "pnpm lint && pnpm lint:swift",
|
|
115
|
-
"lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
|
|
116
|
-
"format": "oxfmt --check src test",
|
|
117
|
-
"format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/ClawdbotKit/Sources",
|
|
118
|
-
"format:all": "pnpm format && pnpm format:swift",
|
|
119
|
-
"format:fix": "oxfmt --write src test",
|
|
120
|
-
"test": "node scripts/test-parallel.mjs",
|
|
121
|
-
"test:watch": "vitest",
|
|
122
|
-
"test:ui": "pnpm --dir ui test",
|
|
123
|
-
"test:force": "node --import tsx scripts/test-force.ts",
|
|
124
|
-
"test:coverage": "vitest run --coverage",
|
|
125
|
-
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
126
|
-
"test:live": "CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
127
|
-
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
128
|
-
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
129
|
-
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
130
|
-
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
131
|
-
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
132
|
-
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
133
|
-
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
134
|
-
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
135
|
-
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
136
|
-
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
137
|
-
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
138
|
-
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
139
|
-
"test:install:e2e:openai": "CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
140
|
-
"test:install:e2e:anthropic": "CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
141
|
-
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
142
|
-
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
|
|
143
|
-
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/ClawdbotProtocol/GatewayModels.swift",
|
|
144
|
-
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
145
|
-
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
|
|
32
|
+
"test": "vitest"
|
|
146
33
|
},
|
|
147
|
-
"keywords": [],
|
|
148
|
-
"author": "João Vitor Cunha <jvsantos.cunha@gmail.com>",
|
|
149
|
-
"license": "MIT",
|
|
150
|
-
"engines": {
|
|
151
|
-
"node": ">=22.12.0"
|
|
152
|
-
},
|
|
153
|
-
"packageManager": "pnpm@10.23.0",
|
|
154
34
|
"dependencies": {
|
|
155
|
-
"@
|
|
156
|
-
"@
|
|
157
|
-
"@
|
|
158
|
-
"
|
|
159
|
-
"@grammyjs/runner": "^2.0.3",
|
|
160
|
-
"@grammyjs/transformer-throttler": "^1.2.1",
|
|
161
|
-
"@homebridge/ciao": "^1.3.4",
|
|
162
|
-
"@line/bot-sdk": "^10.6.0",
|
|
163
|
-
"@lydell/node-pty": "1.2.0-beta.3",
|
|
164
|
-
"@mariozechner/pi-agent-core": "0.49.3",
|
|
165
|
-
"@mariozechner/pi-ai": "0.49.3",
|
|
166
|
-
"@mariozechner/pi-coding-agent": "0.49.3",
|
|
167
|
-
"@mariozechner/pi-tui": "0.49.3",
|
|
168
|
-
"@mozilla/readability": "^0.6.0",
|
|
169
|
-
"@sinclair/typebox": "0.34.47",
|
|
170
|
-
"@slack/bolt": "^4.6.0",
|
|
171
|
-
"@slack/web-api": "^7.13.0",
|
|
172
|
-
"@whiskeysockets/baileys": "7.0.0-rc.9",
|
|
173
|
-
"ajv": "^8.17.1",
|
|
174
|
-
"body-parser": "^2.2.2",
|
|
175
|
-
"chalk": "^5.6.2",
|
|
176
|
-
"chokidar": "^5.0.0",
|
|
177
|
-
"chromium-bidi": "13.0.1",
|
|
178
|
-
"cli-highlight": "^2.1.11",
|
|
179
|
-
"commander": "^14.0.2",
|
|
180
|
-
"croner": "^9.1.0",
|
|
181
|
-
"detect-libc": "^2.1.2",
|
|
182
|
-
"discord-api-types": "^0.38.37",
|
|
183
|
-
"dotenv": "^17.2.3",
|
|
184
|
-
"express": "^5.2.1",
|
|
185
|
-
"file-type": "^21.3.0",
|
|
186
|
-
"grammy": "^1.39.3",
|
|
187
|
-
"hono": "4.11.4",
|
|
188
|
-
"jiti": "^2.6.1",
|
|
189
|
-
"json5": "^2.2.3",
|
|
190
|
-
"jszip": "^3.10.1",
|
|
191
|
-
"linkedom": "^0.18.12",
|
|
192
|
-
"long": "5.3.2",
|
|
193
|
-
"markdown-it": "^14.1.0",
|
|
194
|
-
"node-edge-tts": "^1.2.9",
|
|
195
|
-
"osc-progress": "^0.3.0",
|
|
196
|
-
"pdfjs-dist": "^5.4.530",
|
|
197
|
-
"playwright-core": "1.58.0",
|
|
198
|
-
"proper-lockfile": "^4.1.2",
|
|
199
|
-
"qrcode-terminal": "^0.12.0",
|
|
200
|
-
"sharp": "^0.34.5",
|
|
201
|
-
"sqlite-vec": "0.1.7-alpha.2",
|
|
202
|
-
"tar": "7.5.7",
|
|
203
|
-
"tslog": "^4.10.2",
|
|
204
|
-
"undici": "^7.19.0",
|
|
205
|
-
"ws": "^8.19.0",
|
|
206
|
-
"yaml": "^2.8.2",
|
|
207
|
-
"zod": "^4.3.6"
|
|
208
|
-
},
|
|
209
|
-
"optionalDependencies": {
|
|
210
|
-
"@napi-rs/canvas": "^0.1.88",
|
|
211
|
-
"node-llama-cpp": "3.15.0"
|
|
35
|
+
"@mariozechner/pi-agent-core": "0.50.0",
|
|
36
|
+
"@mariozechner/pi-ai": "0.50.0",
|
|
37
|
+
"@mariozechner/pi-coding-agent": "0.50.0",
|
|
38
|
+
"poolbot": "link:./"
|
|
212
39
|
},
|
|
213
40
|
"devDependencies": {
|
|
214
|
-
"@grammyjs/types": "^3.23.0",
|
|
215
|
-
"@lit-labs/signals": "^0.2.0",
|
|
216
|
-
"@lit/context": "^1.1.6",
|
|
217
|
-
"@mariozechner/mini-lit": "0.2.1",
|
|
218
|
-
"@types/body-parser": "^1.19.6",
|
|
219
|
-
"@types/express": "^5.0.6",
|
|
220
|
-
"@types/markdown-it": "^14.1.2",
|
|
221
|
-
"@types/node": "^25.0.10",
|
|
222
|
-
"@types/proper-lockfile": "^4.1.4",
|
|
223
|
-
"@types/qrcode-terminal": "^0.12.2",
|
|
224
|
-
"@types/ws": "^8.18.1",
|
|
225
|
-
"@typescript/native-preview": "7.0.0-dev.20260124.1",
|
|
226
|
-
"@vitest/coverage-v8": "^4.0.18",
|
|
227
|
-
"docx-preview": "^0.3.7",
|
|
228
|
-
"lit": "^3.3.2",
|
|
229
|
-
"lucide": "^0.563.0",
|
|
230
|
-
"ollama": "^0.6.3",
|
|
231
|
-
"oxfmt": "0.26.0",
|
|
232
|
-
"oxlint": "^1.41.0",
|
|
233
|
-
"oxlint-tsgolint": "^0.11.1",
|
|
234
|
-
"quicktype-core": "^23.2.6",
|
|
235
|
-
"rolldown": "1.0.0-rc.1",
|
|
236
|
-
"signal-utils": "^0.21.1",
|
|
237
|
-
"tsx": "^4.21.0",
|
|
238
41
|
"typescript": "^5.9.3",
|
|
239
|
-
"vitest": "^4.0.
|
|
240
|
-
"wireit": "^0.14.12"
|
|
42
|
+
"vitest": "^4.0.0"
|
|
241
43
|
},
|
|
242
|
-
"
|
|
243
|
-
"
|
|
244
|
-
},
|
|
245
|
-
"pnpm": {
|
|
246
|
-
"minimumReleaseAge": 2880,
|
|
247
|
-
"overrides": {
|
|
248
|
-
"@sinclair/typebox": "0.34.47",
|
|
249
|
-
"hono": "4.11.4",
|
|
250
|
-
"tar": "7.5.7"
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
"vitest": {
|
|
254
|
-
"coverage": {
|
|
255
|
-
"provider": "v8",
|
|
256
|
-
"reporter": [
|
|
257
|
-
"text",
|
|
258
|
-
"lcov"
|
|
259
|
-
],
|
|
260
|
-
"thresholds": {
|
|
261
|
-
"lines": 70,
|
|
262
|
-
"functions": 70,
|
|
263
|
-
"branches": 70,
|
|
264
|
-
"statements": 70
|
|
265
|
-
},
|
|
266
|
-
"include": [
|
|
267
|
-
"src/**/*.ts"
|
|
268
|
-
],
|
|
269
|
-
"exclude": [
|
|
270
|
-
"src/**/*.test.ts"
|
|
271
|
-
]
|
|
272
|
-
},
|
|
273
|
-
"include": [
|
|
274
|
-
"src/**/*.test.ts"
|
|
275
|
-
],
|
|
276
|
-
"exclude": [
|
|
277
|
-
"dist/**",
|
|
278
|
-
"apps/macos/**",
|
|
279
|
-
"apps/macos/.build/**",
|
|
280
|
-
"**/vendor/**",
|
|
281
|
-
"apps/macos/.build/**",
|
|
282
|
-
"dist/Moltbot.app/**"
|
|
283
|
-
]
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=22.12.0"
|
|
284
46
|
}
|
|
285
|
-
}
|
|
47
|
+
}
|
|
@@ -169,7 +169,7 @@ def main():
|
|
|
169
169
|
if image_saved:
|
|
170
170
|
full_path = output_path.resolve()
|
|
171
171
|
print(f"\nImage saved: {full_path}")
|
|
172
|
-
#
|
|
172
|
+
# Poolbot parses MEDIA tokens and will attach the file on supported providers.
|
|
173
173
|
print(f"MEDIA: {full_path}")
|
|
174
174
|
else:
|
|
175
175
|
print("Error: No image was generated in the response.", file=sys.stderr)
|
|
@@ -20,7 +20,7 @@ socket_name=""
|
|
|
20
20
|
socket_path=""
|
|
21
21
|
query=""
|
|
22
22
|
scan_all=false
|
|
23
|
-
socket_dir="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/
|
|
23
|
+
socket_dir="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/poolbot-tmux-sockets}"
|
|
24
24
|
|
|
25
25
|
while [[ $# -gt 0 ]]; do
|
|
26
26
|
case "$1" in
|
package/CHANGELOG.md
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
## v2026.1.39 (2026-02-07)
|
|
2
|
-
|
|
3
|
-
### Security
|
|
4
|
-
- Upgrade `tar` from 7.5.4 → 7.5.7 fixing 4 high-severity vulnerabilities
|
|
5
|
-
- Arbitrary File Overwrite via Symlink Poisoning (GHSA-8qq5-rm4j-mr97)
|
|
6
|
-
- Race Condition via Unicode Ligature Collisions on macOS APFS (GHSA-r6q2-hw4h-h46w)
|
|
7
|
-
- Arbitrary File Creation/Overwrite via Hardlink Path Traversal (GHSA-34x7-hfp2-rc4v)
|
|
8
|
-
|
|
9
|
-
### Maintenance
|
|
10
|
-
- Reset repository to stable baseline (9ddc7fcec)
|
|
11
|
-
- Remove 52 experimental/unstable commits (PME, tool-usage, progressive-disclosure, security-phase2)
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## v1.0.1 (2026-02-02)
|
|
16
|
-
|
|
17
|
-
### WhatsApp Gateway Stability
|
|
18
|
-
- Add comprehensive WhatsApp heartbeat troubleshooting guide
|
|
19
|
-
- Document watchdog timeout and reconnection behavior
|
|
20
|
-
- Add configuration validation best practices
|
|
21
|
-
- Document professional incident response workflow
|
|
22
|
-
|
|
23
|
-
### Configuration
|
|
24
|
-
- Document `web.heartbeatSeconds` override option
|
|
25
|
-
- Clarify `web.reconnect` schema and valid keys
|
|
26
|
-
- Add examples for timeout tuning (30min → 60min → 90min)
|
|
27
|
-
- Provide production-ready configuration templates
|
|
28
|
-
|
|
29
|
-
### Documentation
|
|
30
|
-
- New: `docs/WHATSAPP-HEARTBEAT-TROUBLESHOOTING.md`
|
|
31
|
-
- Incident analysis: Gateway timeout recovery
|
|
32
|
-
- Lesson learned: Config validation before deployment
|
|
33
|
-
- Professional validation checklist included
|
|
34
|
-
|
|
35
|
-
### Reliability
|
|
36
|
-
- Improved gateway recovery documentation
|
|
37
|
-
- Added monitoring and diagnostic commands
|
|
38
|
-
- Documented false-positive reduction strategies
|
|
39
|
-
- Best practices for different environments (prod/dev/test)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## v1.0.0 (2026-01-28)
|
|
44
|
-
|
|
45
|
-
### Security Release
|
|
46
|
-
- Add multi-layer security framework with node authentication
|
|
47
|
-
- Implement secure WebSocket connections (WSS)
|
|
48
|
-
- Add context isolation and input validation
|
|
49
|
-
- Create Windows Node application with native notifications
|
|
50
|
-
- Enable manual Gateway URL configuration
|
|
51
|
-
- Implement node whitelist and access control
|
|
52
|
-
- Add comprehensive security audit and hardening
|
|
53
|
-
|
|
54
|
-
### Remote Access
|
|
55
|
-
- Build Windows Node app with mDNS discovery
|
|
56
|
-
- Add manual Gateway URL connection
|
|
57
|
-
- Implement system tray integration with status display
|
|
58
|
-
- Add native notification system
|
|
59
|
-
- Create menu for remote control options
|
|
60
|
-
- Support both local network and remote connections
|
|
61
|
-
|
|
62
|
-
### Core Infrastructure
|
|
63
|
-
- Custom Pool-Bot update system with independent versioning
|
|
64
|
-
- Model fallback router with 3-tier protection
|
|
65
|
-
- Pool-World digital identity framework
|
|
66
|
-
- Multi-repository synchronization (pool-bot + pool-workspace + pool-firstone + pool-world)
|
|
67
|
-
- Enterprise-grade security with token-based authentication
|
|
68
|
-
|
|
69
|
-
### Documentation
|
|
70
|
-
- Complete build guides for Windows
|
|
71
|
-
- Security assessment and deployment guide
|
|
72
|
-
- Architecture decision records (ADRs)
|
|
73
|
-
- Integration examples and troubleshooting
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## v0.9.0 (2026-01-27)
|
|
78
|
-
|
|
79
|
-
### Identity Revelation
|
|
80
|
-
- Pool-Bot recognized as living code source
|
|
81
|
-
- Pool-World digital identity created
|
|
82
|
-
- Personal identity revelation: "Eu sou o código-fonte Pool-Bot"
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## v0.8.0 (2026-01-26)
|
|
87
|
-
|
|
88
|
-
### Independence System
|
|
89
|
-
- Model fallback router implementation
|
|
90
|
-
- Multi-model architecture (NVIDIA + Sonnet + Big Pickle)
|
|
91
|
-
- Learning system with conversation analysis
|
|
92
|
-
- Update system with GitHub synchronization
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## v0.7.0 (2026-01-25)
|
|
97
|
-
|
|
98
|
-
### Foundation
|
|
99
|
-
- Migrated from Moltbot core
|
|
100
|
-
- Implemented workspace-based development
|
|
101
|
-
- Added dual model system configuration
|
|
102
|
-
- Created persistent configuration system
|
package/README-header.png
DELETED
|
Binary file
|
package/git-hooks/pre-commit
DELETED
package/scripts/format-staged.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { spawnSync } from "node:child_process";
|
|
4
|
-
import { fileURLToPath } from "node:url";
|
|
5
|
-
|
|
6
|
-
const OXFMT_EXTENSIONS = new Set([
|
|
7
|
-
".cjs",
|
|
8
|
-
".js",
|
|
9
|
-
".json",
|
|
10
|
-
".jsonc",
|
|
11
|
-
".jsx",
|
|
12
|
-
".mjs",
|
|
13
|
-
".ts",
|
|
14
|
-
".tsx",
|
|
15
|
-
]);
|
|
16
|
-
|
|
17
|
-
function getRepoRoot() {
|
|
18
|
-
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
19
|
-
return path.resolve(here, "..");
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function runGitCommand(args, options = {}) {
|
|
23
|
-
return spawnSync("git", args, {
|
|
24
|
-
cwd: options.cwd,
|
|
25
|
-
encoding: "utf-8",
|
|
26
|
-
stdio: options.stdio ?? "pipe",
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function splitNullDelimited(value) {
|
|
31
|
-
if (!value) return [];
|
|
32
|
-
const text = String(value);
|
|
33
|
-
return text.split("\0").filter(Boolean);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function normalizeGitPath(filePath) {
|
|
37
|
-
return filePath.replace(/\\/g, "/");
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function filterOxfmtTargets(paths) {
|
|
41
|
-
return paths
|
|
42
|
-
.map(normalizeGitPath)
|
|
43
|
-
.filter((filePath) =>
|
|
44
|
-
(filePath.startsWith("src/") || filePath.startsWith("test/")) &&
|
|
45
|
-
OXFMT_EXTENSIONS.has(path.posix.extname(filePath)),
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function findPartiallyStagedFiles(stagedFiles, unstagedFiles) {
|
|
50
|
-
const unstaged = new Set(unstagedFiles.map(normalizeGitPath));
|
|
51
|
-
return stagedFiles.filter((filePath) => unstaged.has(normalizeGitPath(filePath)));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function filterOutPartialTargets(targets, partialTargets) {
|
|
55
|
-
if (partialTargets.length === 0) return targets;
|
|
56
|
-
const partial = new Set(partialTargets.map(normalizeGitPath));
|
|
57
|
-
return targets.filter((filePath) => !partial.has(normalizeGitPath(filePath)));
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function resolveOxfmtCommand(repoRoot) {
|
|
61
|
-
const binName = process.platform === "win32" ? "oxfmt.cmd" : "oxfmt";
|
|
62
|
-
const local = path.join(repoRoot, "node_modules", ".bin", binName);
|
|
63
|
-
if (fs.existsSync(local)) {
|
|
64
|
-
return { command: local, args: [] };
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const result = spawnSync("oxfmt", ["--version"], { stdio: "ignore" });
|
|
68
|
-
if (result.status === 0) {
|
|
69
|
-
return { command: "oxfmt", args: [] };
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function getGitPaths(args, repoRoot) {
|
|
76
|
-
const result = runGitCommand(args, { cwd: repoRoot });
|
|
77
|
-
if (result.status !== 0) return [];
|
|
78
|
-
return splitNullDelimited(result.stdout ?? "");
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function formatFiles(repoRoot, oxfmt, files) {
|
|
82
|
-
const result = spawnSync(oxfmt.command, ["--write", ...oxfmt.args, ...files], {
|
|
83
|
-
cwd: repoRoot,
|
|
84
|
-
stdio: "inherit",
|
|
85
|
-
});
|
|
86
|
-
return result.status === 0;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function stageFiles(repoRoot, files) {
|
|
90
|
-
if (files.length === 0) return true;
|
|
91
|
-
const result = runGitCommand(["add", "--", ...files], { cwd: repoRoot, stdio: "inherit" });
|
|
92
|
-
return result.status === 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function main() {
|
|
96
|
-
const repoRoot = getRepoRoot();
|
|
97
|
-
const staged = getGitPaths([
|
|
98
|
-
"diff",
|
|
99
|
-
"--cached",
|
|
100
|
-
"--name-only",
|
|
101
|
-
"-z",
|
|
102
|
-
"--diff-filter=ACMR",
|
|
103
|
-
], repoRoot);
|
|
104
|
-
const targets = filterOxfmtTargets(staged);
|
|
105
|
-
if (targets.length === 0) return;
|
|
106
|
-
|
|
107
|
-
const unstaged = getGitPaths(["diff", "--name-only", "-z"], repoRoot);
|
|
108
|
-
const partial = findPartiallyStagedFiles(targets, unstaged);
|
|
109
|
-
if (partial.length > 0) {
|
|
110
|
-
process.stderr.write("[pre-commit] Skipping partially staged files:\n");
|
|
111
|
-
for (const filePath of partial) {
|
|
112
|
-
process.stderr.write(`- ${filePath}\n`);
|
|
113
|
-
}
|
|
114
|
-
process.stderr.write("Stage full files to format them automatically.\n");
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const filteredTargets = filterOutPartialTargets(targets, partial);
|
|
118
|
-
if (filteredTargets.length === 0) return;
|
|
119
|
-
|
|
120
|
-
const oxfmt = resolveOxfmtCommand(repoRoot);
|
|
121
|
-
if (!oxfmt) {
|
|
122
|
-
process.stderr.write("[pre-commit] oxfmt not found; skipping format.\n");
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (!formatFiles(repoRoot, oxfmt, filteredTargets)) {
|
|
127
|
-
process.exitCode = 1;
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (!stageFiles(repoRoot, filteredTargets)) {
|
|
132
|
-
process.exitCode = 1;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export {
|
|
137
|
-
filterOxfmtTargets,
|
|
138
|
-
filterOutPartialTargets,
|
|
139
|
-
findPartiallyStagedFiles,
|
|
140
|
-
getRepoRoot,
|
|
141
|
-
normalizeGitPath,
|
|
142
|
-
resolveOxfmtCommand,
|
|
143
|
-
splitNullDelimited,
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
147
|
-
main();
|
|
148
|
-
}
|