claude-pager 0.2.2 → 0.3.1

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.
Files changed (41) hide show
  1. package/README.md +42 -2
  2. package/dist/channels/telegram/provider.d.ts.map +1 -1
  3. package/dist/channels/telegram/provider.js +14 -0
  4. package/dist/channels/telegram/provider.js.map +1 -1
  5. package/dist/cli/index.js +45 -0
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/daemon/server.d.ts.map +1 -1
  8. package/dist/daemon/server.js +157 -0
  9. package/dist/daemon/server.js.map +1 -1
  10. package/dist/dashboard/enricher.d.ts +3 -0
  11. package/dist/dashboard/enricher.d.ts.map +1 -1
  12. package/dist/dashboard/enricher.js +9 -5
  13. package/dist/dashboard/enricher.js.map +1 -1
  14. package/dist/dashboard/git-status.d.ts +1 -1
  15. package/dist/dashboard/git-status.d.ts.map +1 -1
  16. package/dist/dashboard/git-status.js +14 -12
  17. package/dist/dashboard/git-status.js.map +1 -1
  18. package/dist/dashboard/html.d.ts +1 -1
  19. package/dist/dashboard/html.d.ts.map +1 -1
  20. package/dist/dashboard/html.js +481 -6
  21. package/dist/dashboard/html.js.map +1 -1
  22. package/dist/dashboard/routes.d.ts.map +1 -1
  23. package/dist/dashboard/routes.js +12 -0
  24. package/dist/dashboard/routes.js.map +1 -1
  25. package/dist/dashboard/sse.d.ts +5 -0
  26. package/dist/dashboard/sse.d.ts.map +1 -0
  27. package/dist/dashboard/sse.js +45 -0
  28. package/dist/dashboard/sse.js.map +1 -0
  29. package/dist/hooks/index.js +19 -5
  30. package/dist/hooks/index.js.map +1 -1
  31. package/dist/notes/__tests__/store.test.d.ts +2 -0
  32. package/dist/notes/__tests__/store.test.d.ts.map +1 -0
  33. package/dist/notes/__tests__/store.test.js +88 -0
  34. package/dist/notes/__tests__/store.test.js.map +1 -0
  35. package/dist/notes/store.d.ts +27 -0
  36. package/dist/notes/store.d.ts.map +1 -0
  37. package/dist/notes/store.js +174 -0
  38. package/dist/notes/store.js.map +1 -0
  39. package/dist/types.d.ts +1 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/dashboard/sse.ts"],"names":[],"mappings":";;AAsBA,oCAIC;AAED,oCASC;AAED,wCAEC;AAvCD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;AACxC,IAAI,cAAc,GAA0C,IAAI,CAAC;AAEjE,SAAS,cAAc;IACrB,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;YACzC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,YAAY,CAAC,KAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,YAAY,CAAC,SAAS,GAAG,SAAS;IAChD,MAAM,OAAO,GAAG,UAAU,SAAS,WAAW,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC"}
@@ -41,16 +41,30 @@ function findToolUseInFile(filePath, maxLines) {
41
41
  if (input?.command) {
42
42
  toolInput = input.command;
43
43
  }
44
+ else if (input?.old_string != null && input?.new_string != null) {
45
+ // Edit tool — show diff-like view
46
+ const file = input.file_path || '';
47
+ const old = String(input.old_string).slice(0, 300);
48
+ const nw = String(input.new_string).slice(0, 300);
49
+ toolInput = `${file}\n--- old\n${old}\n+++ new\n${nw}`;
50
+ }
51
+ else if (input?.file_path && input?.content) {
52
+ toolInput = `${input.file_path}\n${String(input.content).slice(0, 150)}`;
53
+ }
44
54
  else if (input?.file_path) {
45
55
  toolInput = input.file_path;
46
56
  }
47
- else if (input?.content) {
48
- toolInput = `${input.file_path || ''}\n${String(input.content).slice(0, 150)}`;
49
- }
50
57
  else if (typeof input === 'object') {
51
58
  toolInput = JSON.stringify(input).slice(0, 200);
52
59
  }
53
- return { toolName: block.name, toolInput };
60
+ // Extract assistant text from same message as context
61
+ const textBlocks = entry.message.content
62
+ .filter((b) => b.type === 'text' && b.text)
63
+ .map((b) => b.text);
64
+ const context = textBlocks.length > 0
65
+ ? textBlocks.join('\n').slice(-500)
66
+ : undefined;
67
+ return { toolName: block.name, toolInput, context };
54
68
  }
55
69
  }
56
70
  }
@@ -146,7 +160,7 @@ async function handleNotification() {
146
160
  // Enrich with tool name and input
147
161
  const ctx = extractToolContext(data.transcript_path);
148
162
  if (ctx.toolName) {
149
- enriched = { ...data, tool_name: ctx.toolName, tool_input: ctx.toolInput };
163
+ enriched = { ...data, tool_name: ctx.toolName, tool_input: ctx.toolInput, context: ctx.context };
150
164
  }
151
165
  }
152
166
  else if (type === 'idle_prompt') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.d.ts","sourceRoot":"","sources":["../../../src/notes/__tests__/store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const store_js_1 = require("../store.js");
9
+ (0, node_test_1.describe)('notes store', () => {
10
+ (0, node_test_1.beforeEach)(() => {
11
+ (0, store_js_1._resetStore)();
12
+ });
13
+ (0, node_test_1.it)('should add a note and retrieve it', () => {
14
+ const note = (0, store_js_1.addNote)('/home/user/dev/myproject', 'fix the CSS', 'cli');
15
+ strict_1.default.ok(note.id);
16
+ strict_1.default.equal(note.project, 'myproject');
17
+ strict_1.default.equal(note.text, 'fix the CSS');
18
+ strict_1.default.equal(note.source, 'cli');
19
+ strict_1.default.equal(note.status, 'pending');
20
+ const retrieved = (0, store_js_1.getNote)(note.id);
21
+ strict_1.default.ok(retrieved);
22
+ strict_1.default.equal(retrieved.id, note.id);
23
+ });
24
+ (0, node_test_1.it)('should list only pending notes', () => {
25
+ (0, store_js_1.addNote)('project-a', 'note 1', 'api');
26
+ const n2 = (0, store_js_1.addNote)('project-a', 'note 2', 'api');
27
+ (0, store_js_1.addNote)('project-b', 'note 3', 'api');
28
+ strict_1.default.equal((0, store_js_1.listNotes)().length, 3);
29
+ strict_1.default.equal((0, store_js_1.listNotes)('project-a').length, 2);
30
+ strict_1.default.equal((0, store_js_1.listNotes)('project-b').length, 1);
31
+ (0, store_js_1.markSent)(n2.id);
32
+ strict_1.default.equal((0, store_js_1.listNotes)('project-a').length, 1);
33
+ });
34
+ (0, node_test_1.it)('should remove a note', () => {
35
+ const note = (0, store_js_1.addNote)('project', 'test', 'dashboard');
36
+ strict_1.default.ok((0, store_js_1.getNote)(note.id));
37
+ const removed = (0, store_js_1.removeNote)(note.id);
38
+ strict_1.default.ok(removed);
39
+ strict_1.default.equal((0, store_js_1.getNote)(note.id), undefined);
40
+ });
41
+ (0, node_test_1.it)('should return false when removing unknown note', () => {
42
+ strict_1.default.equal((0, store_js_1.removeNote)('nonexistent'), false);
43
+ });
44
+ (0, node_test_1.it)('should mark note as sent', () => {
45
+ const note = (0, store_js_1.addNote)('project', 'test', 'api');
46
+ strict_1.default.ok((0, store_js_1.markSent)(note.id));
47
+ const updated = (0, store_js_1.getNote)(note.id);
48
+ strict_1.default.equal(updated?.status, 'sent');
49
+ // Sent notes not listed in pending
50
+ strict_1.default.equal((0, store_js_1.listNotes)().length, 0);
51
+ });
52
+ (0, node_test_1.it)('should list unique project names', () => {
53
+ (0, store_js_1.addNote)('project-a', 'note 1', 'api');
54
+ (0, store_js_1.addNote)('project-b', 'note 2', 'api');
55
+ (0, store_js_1.addNote)('project-a', 'note 3', 'api');
56
+ const projects = (0, store_js_1.listProjects)();
57
+ strict_1.default.equal(projects.length, 2);
58
+ strict_1.default.ok(projects.includes('project-a'));
59
+ strict_1.default.ok(projects.includes('project-b'));
60
+ });
61
+ });
62
+ (0, node_test_1.describe)('normalizeProject', () => {
63
+ (0, node_test_1.it)('should extract last path component', () => {
64
+ strict_1.default.equal((0, store_js_1.normalizeProject)('/home/user/dev/myproject'), 'myproject');
65
+ strict_1.default.equal((0, store_js_1.normalizeProject)('/home/user/dev/my-app/'), 'my-app');
66
+ });
67
+ (0, node_test_1.it)('should lowercase simple names', () => {
68
+ strict_1.default.equal((0, store_js_1.normalizeProject)('MyProject'), 'myproject');
69
+ });
70
+ });
71
+ (0, node_test_1.describe)('matchProject', () => {
72
+ (0, node_test_1.beforeEach)(() => {
73
+ (0, store_js_1._resetStore)();
74
+ });
75
+ (0, node_test_1.it)('should match exact project name', () => {
76
+ (0, store_js_1.addNote)('claude-relay', 'test', 'api');
77
+ strict_1.default.equal((0, store_js_1.matchProject)('claude-relay'), 'claude-relay');
78
+ });
79
+ (0, node_test_1.it)('should fuzzy match with spaces to dashes', () => {
80
+ (0, store_js_1.addNote)('claude-relay', 'test', 'api');
81
+ strict_1.default.equal((0, store_js_1.matchProject)('claude relay'), 'claude-relay');
82
+ });
83
+ (0, node_test_1.it)('should return null when no match', () => {
84
+ (0, store_js_1.addNote)('some-project', 'test', 'api');
85
+ strict_1.default.equal((0, store_js_1.matchProject)('totally-different'), null);
86
+ });
87
+ });
88
+ //# sourceMappingURL=store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../../src/notes/__tests__/store.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface Note {
2
+ id: string;
3
+ project: string;
4
+ text: string;
5
+ image?: string;
6
+ source: 'voice' | 'dashboard' | 'telegram' | 'cli' | 'api';
7
+ createdAt: number;
8
+ status: 'pending' | 'sent';
9
+ }
10
+ export declare function imagesDir(): string;
11
+ export declare function saveImage(data: Buffer): string;
12
+ export declare function setNoteImage(id: string, filename: string): boolean;
13
+ export declare function addNote(project: string, text: string, source?: Note['source']): Note;
14
+ export declare function listNotes(project?: string): Note[];
15
+ export declare function getNote(id: string): Note | undefined;
16
+ export declare function markSent(id: string): boolean;
17
+ export declare function removeNote(id: string): boolean;
18
+ export declare function updateNoteText(id: string, text: string): boolean;
19
+ export declare function reorderNotes(project: string, orderedIds: string[]): boolean;
20
+ export declare function listProjects(): string[];
21
+ /** Normalize project path to short name (last directory component) */
22
+ export declare function normalizeProject(project: string): string;
23
+ /** Find best matching project name for fuzzy input (e.g. voice "claude relay" → "claude-relay") */
24
+ export declare function matchProject(input: string): string | null;
25
+ /** Reset store — for testing only */
26
+ export declare function _resetStore(): void;
27
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notes/store.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AAYD,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOlE;AAoBD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,CAAC,QAAQ,CAAS,GAAG,IAAI,CAiB3F;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAMlD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAGpD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAO5C;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAW9C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAa3E;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAIvC;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAazD;AAED,qCAAqC;AACrC,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imagesDir = imagesDir;
4
+ exports.saveImage = saveImage;
5
+ exports.setNoteImage = setNoteImage;
6
+ exports.addNote = addNote;
7
+ exports.listNotes = listNotes;
8
+ exports.getNote = getNote;
9
+ exports.markSent = markSent;
10
+ exports.removeNote = removeNote;
11
+ exports.updateNoteText = updateNoteText;
12
+ exports.reorderNotes = reorderNotes;
13
+ exports.listProjects = listProjects;
14
+ exports.normalizeProject = normalizeProject;
15
+ exports.matchProject = matchProject;
16
+ exports._resetStore = _resetStore;
17
+ const node_fs_1 = require("node:fs");
18
+ const node_path_1 = require("node:path");
19
+ const node_crypto_1 = require("node:crypto");
20
+ const index_js_1 = require("../config/index.js");
21
+ const json_js_1 = require("../utils/json.js");
22
+ const MAX_NOTES = 500;
23
+ let notes = [];
24
+ let loaded = false;
25
+ let testMode = false;
26
+ function notesFile() {
27
+ return (0, node_path_1.join)((0, index_js_1.getDataDir)(), 'notes.json');
28
+ }
29
+ function imagesDir() {
30
+ const dir = (0, node_path_1.join)((0, index_js_1.getDataDir)(), 'note-images');
31
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
32
+ return dir;
33
+ }
34
+ function saveImage(data) {
35
+ const filename = (0, node_crypto_1.randomUUID)() + '.png';
36
+ (0, node_fs_1.writeFileSync)((0, node_path_1.join)(imagesDir(), filename), data);
37
+ return filename;
38
+ }
39
+ function setNoteImage(id, filename) {
40
+ load();
41
+ const note = notes.find(n => n.id === id);
42
+ if (!note)
43
+ return false;
44
+ note.image = filename;
45
+ persist();
46
+ return true;
47
+ }
48
+ function load() {
49
+ if (loaded)
50
+ return;
51
+ try {
52
+ const raw = (0, node_fs_1.readFileSync)(notesFile(), 'utf-8');
53
+ notes = (0, json_js_1.safeJsonParse)(raw, []);
54
+ }
55
+ catch {
56
+ notes = [];
57
+ }
58
+ loaded = true;
59
+ }
60
+ function persist() {
61
+ if (testMode)
62
+ return;
63
+ const tmp = notesFile() + '.tmp';
64
+ (0, node_fs_1.writeFileSync)(tmp, JSON.stringify(notes, null, 2) + '\n');
65
+ (0, node_fs_1.renameSync)(tmp, notesFile());
66
+ }
67
+ function addNote(project, text, source = 'api') {
68
+ load();
69
+ const note = {
70
+ id: (0, node_crypto_1.randomUUID)(),
71
+ project: normalizeProject(project),
72
+ text: text.trim(),
73
+ source,
74
+ createdAt: Date.now(),
75
+ status: 'pending',
76
+ };
77
+ notes.push(note);
78
+ // Cap size
79
+ if (notes.length > MAX_NOTES) {
80
+ notes = notes.slice(notes.length - MAX_NOTES);
81
+ }
82
+ persist();
83
+ return note;
84
+ }
85
+ function listNotes(project) {
86
+ load();
87
+ const pending = notes.filter(n => n.status === 'pending');
88
+ if (!project)
89
+ return pending;
90
+ const normalized = normalizeProject(project);
91
+ return pending.filter(n => n.project === normalized);
92
+ }
93
+ function getNote(id) {
94
+ load();
95
+ return notes.find(n => n.id === id);
96
+ }
97
+ function markSent(id) {
98
+ load();
99
+ const note = notes.find(n => n.id === id);
100
+ if (!note)
101
+ return false;
102
+ note.status = 'sent';
103
+ persist();
104
+ return true;
105
+ }
106
+ function removeNote(id) {
107
+ load();
108
+ const idx = notes.findIndex(n => n.id === id);
109
+ if (idx === -1)
110
+ return false;
111
+ const note = notes[idx];
112
+ if (note.image) {
113
+ try {
114
+ (0, node_fs_1.unlinkSync)((0, node_path_1.join)(imagesDir(), note.image));
115
+ }
116
+ catch { /* already deleted */ }
117
+ }
118
+ notes.splice(idx, 1);
119
+ persist();
120
+ return true;
121
+ }
122
+ function updateNoteText(id, text) {
123
+ load();
124
+ const note = notes.find(n => n.id === id);
125
+ if (!note)
126
+ return false;
127
+ note.text = text.trim();
128
+ persist();
129
+ return true;
130
+ }
131
+ function reorderNotes(project, orderedIds) {
132
+ load();
133
+ const normalized = normalizeProject(project);
134
+ const projectNotes = notes.filter(n => n.project === normalized && n.status === 'pending');
135
+ const otherNotes = notes.filter(n => n.project !== normalized || n.status !== 'pending');
136
+ // Sort project notes by the provided order
137
+ const idIndex = new Map(orderedIds.map((id, i) => [id, i]));
138
+ projectNotes.sort((a, b) => (idIndex.get(a.id) ?? 999) - (idIndex.get(b.id) ?? 999));
139
+ notes = [...otherNotes, ...projectNotes];
140
+ persist();
141
+ return true;
142
+ }
143
+ function listProjects() {
144
+ load();
145
+ const projects = new Set(notes.filter(n => n.status === 'pending').map(n => n.project));
146
+ return Array.from(projects).sort();
147
+ }
148
+ /** Normalize project path to short name (last directory component) */
149
+ function normalizeProject(project) {
150
+ // If it looks like a path, take the last component
151
+ if (project.includes('/')) {
152
+ return project.replace(/\/+$/, '').split('/').pop() || project;
153
+ }
154
+ return project.toLowerCase().trim();
155
+ }
156
+ /** Find best matching project name for fuzzy input (e.g. voice "claude relay" → "claude-relay") */
157
+ function matchProject(input) {
158
+ load();
159
+ const projects = listProjects();
160
+ const normalized = input.toLowerCase().replace(/\s+/g, '-').trim();
161
+ // Exact match
162
+ if (projects.includes(normalized))
163
+ return normalized;
164
+ // Fuzzy: check if input is contained in a project name or vice versa
165
+ const match = projects.find(p => p.includes(normalized) || normalized.includes(p));
166
+ return match || null;
167
+ }
168
+ /** Reset store — for testing only */
169
+ function _resetStore() {
170
+ notes = [];
171
+ loaded = true; // Mark as loaded so it doesn't re-read the file
172
+ testMode = true; // Disable file persistence during tests
173
+ }
174
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notes/store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -40,6 +40,7 @@ export interface RelayEvent {
40
40
  message: string;
41
41
  toolName?: string;
42
42
  toolInput?: string;
43
+ context?: string;
43
44
  project: string;
44
45
  timestamp: number;
45
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-pager",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "Remote notification and response relay for Claude Code CLI sessions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",