claude-pager 0.1.0 → 0.1.2
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/README.md +16 -10
- package/dist/cli/index.js +0 -0
- package/dist/daemon/handlers.d.ts.map +1 -1
- package/dist/daemon/handlers.js +9 -2
- package/dist/daemon/handlers.js.map +1 -1
- package/dist/hooks/index.js +0 -0
- package/dist/sessions/events.js +1 -1
- package/dist/sessions/events.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
# claude-pager
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/claude-pager)
|
|
4
|
+
[](https://www.npmjs.com/package/claude-pager)
|
|
5
|
+
[](https://github.com/sbassomp/claude-pager/blob/main/LICENSE)
|
|
6
|
+
|
|
7
|
+
Get paged on your phone when Claude Code needs input. Reply from Telegram or ntfy, and `claude-pager` types your response into the correct terminal.
|
|
4
8
|
|
|
5
9
|
## How it works
|
|
6
10
|
|
|
7
11
|
```
|
|
8
|
-
|
|
9
|
-
│
|
|
10
|
-
│ (N instances)│
|
|
11
|
-
|
|
12
|
-
│
|
|
12
|
+
┌───────────────┐ hook → HTTP ┌────────────────┐ Telegram / ntfy ┌─────────┐
|
|
13
|
+
│ Claude Code │ ─────────────► │ claude-pager │ ───────────────► │ Phone │
|
|
14
|
+
│ (N instances) │ │ daemon │ ◄─────────────── │ (reply) │
|
|
15
|
+
└───────────────┘ └───────┬────────┘ └─────────┘
|
|
16
|
+
│
|
|
17
|
+
tmux send-keys
|
|
18
|
+
│
|
|
13
19
|
▼
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
┌───────────────┐
|
|
21
|
+
│ Right terminal │
|
|
22
|
+
└───────────────┘
|
|
17
23
|
```
|
|
18
24
|
|
|
19
25
|
1. Claude Code hooks fire when an instance needs user input
|
|
@@ -189,7 +195,7 @@ See `docs/ARCHITECTURE.md` for the detailed flow.
|
|
|
189
195
|
- HTTP API binds to `127.0.0.1` only — no network exposure
|
|
190
196
|
- Input validation with Fastify JSON Schema + custom validators (`isValidEventType`, `isValidSessionId`)
|
|
191
197
|
- No shell injection — all child processes use `execFileSync` with argument arrays
|
|
192
|
-
-
|
|
198
|
+
- Minimal context in notifications — tool names, project names, and truncated tool input (max 300 chars)
|
|
193
199
|
- Memory-bounded maps (capped at 500-1000 entries)
|
|
194
200
|
- Safe JSON parsing with fallbacks for corrupted files
|
|
195
201
|
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/daemon/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAe,MAAM,wBAAwB,CAAC;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAW9D,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/daemon/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAe,MAAM,wBAAwB,CAAC;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAW9D,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,CA8KlB"}
|
package/dist/daemon/handlers.js
CHANGED
|
@@ -88,8 +88,15 @@ function createChannelHandlers(channel, injector) {
|
|
|
88
88
|
}
|
|
89
89
|
(0, events_js_1.removePending)(question.event.id);
|
|
90
90
|
}
|
|
91
|
-
//
|
|
92
|
-
|
|
91
|
+
// If the text looks like a response to an expired event, don't inject as free message
|
|
92
|
+
if (/^#[\w-]{8,}\s+/.test(rawText)) {
|
|
93
|
+
console.log('[daemon] Response to expired event, ignoring:', rawText.slice(0, 60));
|
|
94
|
+
if (channel.sendRaw)
|
|
95
|
+
await channel.sendRaw('Event expired. The permission prompt may have timed out.');
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Fallback: treat as free message (strip #shortId prefix if present)
|
|
99
|
+
const cleanText = rawText.replace(/^#\d+\s+/, '').trim();
|
|
93
100
|
if (!cleanText) {
|
|
94
101
|
console.log('[daemon] No text to inject');
|
|
95
102
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/daemon/handlers.ts"],"names":[],"mappings":";;AAYA,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/daemon/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.js
CHANGED
|
File without changes
|
package/dist/sessions/events.js
CHANGED
|
@@ -25,7 +25,7 @@ function getPending(eventId) {
|
|
|
25
25
|
function removePending(eventId) {
|
|
26
26
|
pending.delete(eventId);
|
|
27
27
|
}
|
|
28
|
-
const PENDING_TTL_MS =
|
|
28
|
+
const PENDING_TTL_MS = 30 * 60 * 1000; // 30 minutes
|
|
29
29
|
function listPending() {
|
|
30
30
|
// Expire old questions
|
|
31
31
|
const now = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sessions/events.ts"],"names":[],"mappings":";;AAMA,gCAUC;AAED,gCAEC;AAED,sCAEC;AAID,kCASC;AAOD,0CAsCC;AAhFD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;AACnD,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAgB,UAAU,CAAC,KAAiB,EAAE,gBAAyB;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;QACpB,KAAK;QACL,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,gBAAgB;QAChB,OAAO;QACP,KAAK,EAAE,cAAc,EAAE;KACxB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sessions/events.ts"],"names":[],"mappings":"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"}
|