Commit Graph

260 Commits

Author SHA1 Message Date
Peter Steinberger
bf714164d3 fix: heartbeat falls back to last session contact 2025-11-26 17:08:43 +01:00
Peter Steinberger
3dd2baba9d feat: add heartbeat cli and relay trigger 2025-11-26 17:04:43 +01:00
Peter Steinberger
ace549b70a test(auto-reply): cover cwd timeout hint and queue meta 2025-11-26 03:03:13 +01:00
Peter Steinberger
2bb62c1594 docs: finalize web refactor and coverage 2025-11-26 02:54:43 +01:00
Peter Steinberger
0833760d78 chore: update changelog and surface web relay settings 2025-11-26 02:43:24 +01:00
Peter Steinberger
76df74ecd9 web: add reconnect logging + troubleshooting doc 2025-11-26 02:41:10 +01:00
Peter Steinberger
dd5774906e web: extract reconnect helpers and add tests 2025-11-26 02:39:31 +01:00
Peter Steinberger
00cd24e7e5 web: add heartbeat and bounded reconnect tuning 2025-11-26 02:34:43 +01:00
Peter Steinberger
8c417ff887 chore: commit pending cli/web test tweaks 2025-11-26 02:19:45 +01:00
Peter Steinberger
8abc500964 chore(auto-reply): include cwd in timeout message 2025-11-26 02:18:16 +01:00
Peter Steinberger
49940f3d01 test(auto-reply): add helper coverage and docs 2025-11-26 02:09:50 +01:00
Peter Steinberger
5da713bbd4 refactor(auto-reply): split reply helpers 2025-11-26 02:03:51 +01:00
Peter Steinberger
da46c8e95f feat(web): add logout command and tests 2025-11-26 01:29:02 +01:00
Peter Steinberger
2af00b9765 Auto-reply: refresh typing indicator every 8s 2025-11-26 01:27:51 +01:00
Peter Steinberger
2cb244ec35 chore(tests): organize web test imports 2025-11-26 01:24:34 +01:00
Peter Steinberger
786a6d4952 test(web): split provider web suite 2025-11-26 01:23:34 +01:00
Peter Steinberger
f4a3c406d0 refactor(web): split provider module 2025-11-26 01:16:54 +01:00
Peter Steinberger
9fa3cbab8a chore: format to 2-space and bump changelog 2025-11-26 00:53:53 +01:00
Peter Steinberger
f51ca895a0 chore: format + lint 2025-11-26 00:30:30 +01:00
Peter Steinberger
1eee9d9f2e style: normalize indentation to 2 spaces 2025-11-26 00:15:10 +01:00
Peter Steinberger
e429e873a4 docs/tests: typing interval docs and coverage 2025-11-26 00:10:38 +01:00
Peter Steinberger
41dc5ed5eb feat: keep typing indicators alive during commands 2025-11-26 00:05:11 +01:00
Peter Steinberger
c08dd4bbd4 test: cover sendSystemOnce default 2025-11-25 23:57:41 +01:00
Peter Steinberger
1dfc2ccf6e feat: send session prompt once 2025-11-25 23:52:38 +01:00
Peter Steinberger
cb61b9ff84 docs: document media caps and tidy web tests 2025-11-25 23:43:57 +01:00
Peter Steinberger
918ca94df8 feat: support audio/video/doc media caps and transcript context 2025-11-25 23:21:35 +01:00
Peter Steinberger
ecf0986fe4 feat: transcribe audio and surface transcript to prompts 2025-11-25 23:13:22 +01:00
Peter Steinberger
9b8bcf36c3 feat: optional audio transcription via CLI 2025-11-25 23:06:54 +01:00
Peter Steinberger
a33d7d522b test: cover media formats + doc resize cap 2025-11-25 22:23:06 +01:00
Peter Steinberger
87f9b1f0f4 web: compress auto-reply media 2025-11-25 20:09:03 +01:00
Peter Steinberger
51f3be9230 Web relay: auto-reconnect Baileys and test 2025-11-25 18:09:57 +01:00
Peter Steinberger
7dc5681102 Auto-reply: send timeout fallback and tests 2025-11-25 17:52:57 +01:00
Peter Steinberger
a96eb78ddd Refactor: derive version from package.json 2025-11-25 17:10:53 +01:00
Peter Steinberger
5bbae8c435 Chore: prep 0.1.4 unreleased placeholder and release guardrails 2025-11-25 17:08:13 +01:00
Peter Steinberger
47a79e7a93 Release 0.1.3 2025-11-25 16:53:30 +01:00
Peter Steinberger
0fef193518 Add cwd option for command replies 2025-11-25 16:19:24 +01:00
Peter Steinberger
93d9e932fb chore: bump to 0.1.2 and fix commander typings 2025-11-25 14:26:55 +01:00
Peter Steinberger
15c02b078f chore: prep 0.1.1 (version bump, lowercase branding, ua update) 2025-11-25 14:13:17 +01:00
Peter Steinberger
712c203395 docs: colorized help and example footer 2025-11-25 14:09:59 +01:00
Peter Steinberger
294c11d265 fix: make CLI bin invoke program parse 2025-11-25 13:22:54 +01:00
Peter Steinberger
0967d95e76 Raise test coverage to ~73% 2025-11-25 12:48:12 +01:00
Peter Steinberger
26d132d02b CLI: add verbose flag to send and status 2025-11-25 12:43:20 +01:00
Peter Steinberger
137fd4293b Cleanup: remove deprecated up alias and update ingress docs 2025-11-25 12:40:56 +01:00
Peter Steinberger
78e53b53f1 CLI: unify webhook ingress and keep up as tailscale alias 2025-11-25 12:38:38 +01:00
Peter Steinberger
91c01847c6 CLI: drop web:login alias and simplify web quickstart 2025-11-25 12:30:43 +01:00
Peter Steinberger
86df9a4fb6 Add media hosting and store tests 2025-11-25 12:30:43 +01:00
Peter Steinberger
aa366cb37b Add CLI and infra test coverage 2025-11-25 12:30:43 +01:00
Peter Steinberger
48c04dba22 fix: restore zod typing and import ClaudeJsonParseResult 2025-11-25 12:25:05 +01:00
Peter Steinberger
c202ee81cd tests: mock twilio auth for update-webhook helpers 2025-11-25 12:21:59 +01:00
Peter Steinberger
d219526d97 test: sync updated specs 2025-11-25 12:12:29 +01:00
Peter Steinberger
d298ca2d81 chore: sync source updates 2025-11-25 12:12:13 +01:00
Peter Steinberger
c1929e389c ci: fix node path and lint warnings 2025-11-25 12:08:08 +01:00
Peter Steinberger
1012257d43 claude: allow scratchpad markdown or images, remind length 2025-11-25 06:50:52 +01:00
Peter Steinberger
c30ad610a4 claude: expand Clawd prompt, remind 1500 char limit 2025-11-25 06:50:15 +01:00
Peter Steinberger
1cad440404 claude: tell Clawd to use ~/clawd markdown scratchpad 2025-11-25 06:49:10 +01:00
Peter Steinberger
14473a7367 web: announce available presence when relay starts 2025-11-25 06:42:39 +01:00
Peter Steinberger
184781b85d claude: prefix prompt with Clawd identity 2025-11-25 06:41:27 +01:00
Peter Steinberger
57714bc923 web: send read receipts for inbound messages 2025-11-25 06:36:22 +01:00
Peter Steinberger
018c0fab6d auto-reply: handle empty stdout gracefully 2025-11-25 06:33:49 +01:00
Peter Steinberger
9366140271 refactor: simplify MEDIA parsing, drop invalid lines, keep valid tokens 2025-11-25 06:17:48 +01:00
Peter Steinberger
e79ea15d47 debug: log MEDIA extraction and parse Claude text for tokens 2025-11-25 06:14:12 +01:00
Peter Steinberger
3e4cf4ee03 fix: strip trailing punctuation from MEDIA tokens and add tests 2025-11-25 06:07:11 +01:00
Peter Steinberger
8e499e807e test: cover MEDIA backticks and web media fallback logging 2025-11-25 06:04:41 +01:00
Peter Steinberger
5ad379e7d1 fix: keep MEDIA tokens with punctuation and log web media failures 2025-11-25 06:02:41 +01:00
Peter Steinberger
c712233c34 feat: add relay:tmux:attach to join existing session 2025-11-25 05:53:21 +01:00
Peter Steinberger
60e9344c2a refactor: extract MEDIA parsing helper and tidy whitespace 2025-11-25 05:49:18 +01:00
Peter Steinberger
5312d7caf1 chore: attach when starting relay tmux session 2025-11-25 05:48:00 +01:00
Peter Steinberger
b33f4e710a fix: handle inline MEDIA tokens and host webhook media 2025-11-25 05:47:12 +01:00
Peter Steinberger
d01c500fd0 feat: add relay:tmux helper for relay watcher 2025-11-25 05:47:06 +01:00
Peter Steinberger
ccacfcc223 fix: accept file/media tokens safely and improve web media send 2025-11-25 05:34:08 +01:00
Peter Steinberger
3069bd5c0e fix: harden MEDIA parsing and add tests 2025-11-25 05:25:57 +01:00
Peter Steinberger
7aee77be2b test: cover media url extraction from command stdout 2025-11-25 05:21:59 +01:00
Peter Steinberger
0bcb3b404d chore: surface media URL in command prompts and tests 2025-11-25 05:20:50 +01:00
Peter Steinberger
b878d51488 feat: download inbound media and expose to templating 2025-11-25 05:17:59 +01:00
Peter Steinberger
ecdab6325b chore: add connection/send logs and web error surfacing 2025-11-25 05:10:19 +01:00
Peter Steinberger
73f26f16fc chore: log web media sends 2025-11-25 05:09:09 +01:00
Peter Steinberger
0bd9c5f5c7 feat: add image support across web and twilio 2025-11-25 04:58:31 +01:00
Peter Steinberger
c3bd59efc8 chore: add color to web auto-reply log 2025-11-25 04:42:45 +01:00
Peter Steinberger
42d9ffe1c3 feat: log auto-reply body and stats for web provider 2025-11-25 04:42:19 +01:00
Peter Steinberger
d337960575 chore: fix type regressions and helpers 2025-11-25 04:40:57 +01:00
Peter Steinberger
d580c7669c feat: serialize command auto-replies with queue 2025-11-25 04:40:49 +01:00
Peter Steinberger
ed52110cb2 chore: finish logger sweep and add retry tests 2025-11-25 04:30:40 +01:00
Peter Steinberger
56952c9c0b chore: align web provider logging and relay e2e 2025-11-25 04:15:20 +01:00
Peter Steinberger
3dfc058b59 chore: route exec logging through logger 2025-11-25 04:11:02 +01:00
Peter Steinberger
a12aa733cd feat: retries for webhook bring-up and send --json docs 2025-11-25 04:10:20 +01:00
Peter Steinberger
0ddac0bbc3 feat: add send --json, logger cleanup, and resilient Claude parsing 2025-11-25 04:08:42 +01:00
Peter Steinberger
b8c813ddeb chore: logger cleanup and test fixes 2025-11-25 04:05:02 +01:00
Peter Steinberger
4e87936cc8 feat: add dry-run options and retry helper 2025-11-25 03:57:50 +01:00
Peter Steinberger
d83e429016 refactor: add provider barrels and webhook grouping 2025-11-25 03:56:11 +01:00
Peter Steinberger
490a8f22b0 chore: route port error debug through logger 2025-11-25 03:51:46 +01:00
Peter Steinberger
ee264e7ea5 chore: harden claude json parsing and logging 2025-11-25 03:50:52 +01:00
Peter Steinberger
d2926bec15 test: add infra coverage and fix web logging 2025-11-25 03:50:18 +01:00
Peter Steinberger
03782e9a70 feat: add logger and twilio poll backoff 2025-11-25 03:48:49 +01:00
Peter Steinberger
abcea7d301 feat: add config validation and send dry-run 2025-11-25 03:46:26 +01:00
Peter Steinberger
88b5511a17 refactor: modularize cli helpers 2025-11-25 03:42:12 +01:00
Peter Steinberger
4cbdfbf46e refactor: extract twilio message utilities 2025-11-25 03:22:18 +01:00
Peter Steinberger
58e230e9a9 Refactor CLI and Twilio modules; add helper tests and comments 2025-11-25 03:11:39 +01:00
Peter Steinberger
bee19207b3 Extract env + Twilio utils; shrink index 2025-11-25 02:20:35 +01:00
Peter Steinberger
c1bdf9ca35 Extract auto-reply helpers into modules 2025-11-25 02:16:54 +01:00
Peter Steinberger
7ec3e5a106 Parse Claude JSON output to return text replies 2025-11-25 01:41:52 +01:00
Peter Steinberger
8103e030c6 Silence Baileys session logs unless verbose 2025-11-25 01:40:05 +01:00
Peter Steinberger
75407bba0a Ignore coverage output and document Claude text mode 2025-11-25 01:38:43 +01:00
Peter Steinberger
d8797f366d Add claudeOutputFormat support and provider banners 2025-11-25 01:36:52 +01:00
Peter Steinberger
924c097413 Show provider numbers in relay banner 2025-11-25 01:35:31 +01:00
Peter Steinberger
48acba6398 Fix web auth detection and auto-restart after 515 2025-11-25 00:49:49 +01:00
Peter Steinberger
0c512a0100 Switch to Baileys multi-file auth with latest rc 2025-11-25 00:34:55 +01:00
Peter Steinberger
27d65fa1e1 Update to latest Baileys RC and clean imports 2025-11-25 00:29:44 +01:00
Peter Steinberger
dee44062c0 Pin to @whiskeysockets/baileys 7.0.0-rc.9 and remove auth fallback 2025-11-25 00:28:17 +01:00
Peter Steinberger
7239194024 Fix bailey auth import fallback and assert login alias 2025-11-25 00:22:49 +01:00
Peter Steinberger
dbf88aa9f7 Add login alias for web QR and update docs/tests 2025-11-25 00:19:21 +01:00
Peter Steinberger
f910653624 Fix provider-web mocks and make tests green 2025-11-25 00:16:01 +01:00
Peter Steinberger
c65e19e7f7 Add command modules and tests; commit remaining changes 2025-11-25 00:12:12 +01:00
Peter Steinberger
9a2c3fa2d7 Fix lint warnings and tighten test mocks 2025-11-25 00:10:34 +01:00
Peter Steinberger
b46df466bc Unify relay entrypoint and default to web when available 2025-11-24 23:55:49 +01:00
Peter Steinberger
3caa1d94c0 Add web provider inbound monitor with auto-replies 2025-11-24 18:33:50 +01:00
Peter Steinberger
71d4b3cbce Add coverage run with thresholds and align tests to utils 2025-11-24 17:51:18 +01:00
Peter Steinberger
338ea6e749 Add utility tests for paths, prefixes, and sleep 2025-11-24 17:45:49 +01:00
Peter Steinberger
b60ffcbd70 Refactor CLI into modules for web provider and utils 2025-11-24 17:43:37 +01:00
Peter Steinberger
c1d609497d Update deps to latest and align tests 2025-11-24 17:33:59 +01:00
Peter Steinberger
d52b970f0a Add vitest and unit coverage for provider helpers 2025-11-24 17:23:59 +01:00
Peter Steinberger
e38f4c39d3 Add WhatsApp Web provider option and docs 2025-11-24 17:21:47 +01:00
Peter Steinberger
6555dc01a0 Improve Twilio webhook update flow 2025-11-24 16:56:15 +01:00
Peter Steinberger
6ba387c97c Add messaging service webhook fallback; always log inbound 2025-11-24 16:47:30 +01:00
Peter Steinberger
2622efd8e4 Experiment with Twilio webhook updates (no functional change yet) 2025-11-24 16:32:28 +01:00
Peter Steinberger
82cce40ea1 Run auto-reply commands via spawn with TTY to avoid hangs 2025-11-24 16:15:34 +01:00
Peter Steinberger
e6241a2190 Simplify command log to show resolved argv only 2025-11-24 16:11:57 +01:00
Peter Steinberger
d5d9a3b09e Log stderr and timeout info for auto-reply commands 2025-11-24 16:11:06 +01:00
Peter Steinberger
42ac745cb4 Log templated command argv and enforce timeout kill 2025-11-24 16:09:13 +01:00
Peter Steinberger
8964488077 Add command timeout and async polling auto-replies 2025-11-24 16:06:45 +01:00
Peter Steinberger
f49ae871eb Document config options and log auto-reply timing 2025-11-24 16:02:39 +01:00
Peter Steinberger
c21059d44a Add claude auto-reply allowlist and verbose hooks 2025-11-24 16:00:56 +01:00
Peter Steinberger
0c5e1fbddc Log command execution in config-driven replies 2025-11-24 15:58:21 +01:00
Peter Steinberger
70739a7365 Fix webhook update: send form fields via request; keep SDK/phone fallbacks 2025-11-24 15:37:03 +01:00
Peter Steinberger
52dac6c258 Add wa alias; drop deprecated setup alias 2025-11-24 15:31:21 +01:00
Peter Steinberger
78a2e44ea0 Normalize webhook path, always log inbound, fix Twilio webhook field names, log polling tip 2025-11-24 15:28:27 +01:00
Peter Steinberger
107757bc4b Rename setup->up (alias kept) and keep process alive 2025-11-24 14:43:50 +01:00
Peter Steinberger
6039b38b21 Fallback webhook update to incoming phone number when channels sender update fails 2025-11-24 14:20:04 +01:00
Peter Steinberger
fa0bd28639 Add Biome linting and improve webhook error handling 2025-11-24 14:06:52 +01:00
Peter Steinberger
ea1f84d6e1 Keep process alive reliably with unref interval in waitForever 2025-11-24 13:36:22 +01:00
Peter Steinberger
e50fb495b7 Keep setup/webhook running with waitForever and graceful SIGINT 2025-11-24 13:25:42 +01:00
Peter Steinberger
18911b60a4 Log incoming requests and add 404 handler for webhook server 2025-11-24 13:04:47 +01:00
Peter Steinberger
7354365321 Use Twilio SDK channelsSenders.list to discover sender 2025-11-24 12:59:03 +01:00
Peter Steinberger
154d6305e8 Support TWILIO_SENDER_SID override before sender lookup 2025-11-24 12:56:32 +01:00
Peter Steinberger
bf0653a73b Tighten types for Twilio requests and sender lookup 2025-11-24 12:53:09 +01:00
Peter Steinberger
3f0f6dcc82 Fix Twilio sender list call (use params instead of qs) 2025-11-24 12:50:54 +01:00
Peter Steinberger
d4d08d15a9 Add TWILIO_SENDER_SID override and better funnel/setup error messages 2025-11-24 12:36:03 +01:00
Peter Steinberger
52f17c1840 Improve funnel error UX and add -y auto-confirm 2025-11-24 12:30:36 +01:00
Peter Steinberger
336e6564f3 Add -y/--yes to auto-confirm prompts; verbose keeps showing command output 2025-11-24 12:07:55 +01:00
Peter Steinberger
74cd484a22 Timeout tailscale funnel in verbose runs and surface command output 2025-11-24 12:02:57 +01:00
Peter Steinberger
2a6c8a360e Silence dotenv tip output (quiet mode) 2025-11-24 12:00:15 +01:00