beecork 1.0.0 → 1.1.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.
Files changed (112) hide show
  1. package/dist/channels/discord.d.ts.map +1 -1
  2. package/dist/channels/discord.js +118 -6
  3. package/dist/channels/discord.js.map +1 -1
  4. package/dist/channels/telegram.d.ts.map +1 -1
  5. package/dist/channels/telegram.js +122 -8
  6. package/dist/channels/telegram.js.map +1 -1
  7. package/dist/channels/whatsapp.d.ts.map +1 -1
  8. package/dist/channels/whatsapp.js +115 -2
  9. package/dist/channels/whatsapp.js.map +1 -1
  10. package/dist/cli/media.d.ts +3 -0
  11. package/dist/cli/media.d.ts.map +1 -0
  12. package/dist/cli/media.js +113 -0
  13. package/dist/cli/media.js.map +1 -0
  14. package/dist/cli/setup.d.ts.map +1 -1
  15. package/dist/cli/setup.js +213 -20
  16. package/dist/cli/setup.js.map +1 -1
  17. package/dist/daemon.js +21 -0
  18. package/dist/daemon.js.map +1 -1
  19. package/dist/dashboard/server.d.ts.map +1 -1
  20. package/dist/dashboard/server.js +24 -0
  21. package/dist/dashboard/server.js.map +1 -1
  22. package/dist/db/migrations.d.ts.map +1 -1
  23. package/dist/db/migrations.js +30 -0
  24. package/dist/db/migrations.js.map +1 -1
  25. package/dist/index.js +121 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/mcp/server.js +153 -0
  28. package/dist/mcp/server.js.map +1 -1
  29. package/dist/media/factory.d.ts +7 -0
  30. package/dist/media/factory.d.ts.map +1 -0
  31. package/dist/media/factory.js +33 -0
  32. package/dist/media/factory.js.map +1 -0
  33. package/dist/media/generators/dall-e.d.ts +11 -0
  34. package/dist/media/generators/dall-e.d.ts.map +1 -0
  35. package/dist/media/generators/dall-e.js +42 -0
  36. package/dist/media/generators/dall-e.js.map +1 -0
  37. package/dist/media/generators/elevenlabs-music.d.ts +10 -0
  38. package/dist/media/generators/elevenlabs-music.d.ts.map +1 -0
  39. package/dist/media/generators/elevenlabs-music.js +35 -0
  40. package/dist/media/generators/elevenlabs-music.js.map +1 -0
  41. package/dist/media/generators/elevenlabs-sfx.d.ts +10 -0
  42. package/dist/media/generators/elevenlabs-sfx.d.ts.map +1 -0
  43. package/dist/media/generators/elevenlabs-sfx.js +34 -0
  44. package/dist/media/generators/elevenlabs-sfx.js.map +1 -0
  45. package/dist/media/generators/kling.d.ts +10 -0
  46. package/dist/media/generators/kling.d.ts.map +1 -0
  47. package/dist/media/generators/kling.js +53 -0
  48. package/dist/media/generators/kling.js.map +1 -0
  49. package/dist/media/generators/lyria.d.ts +11 -0
  50. package/dist/media/generators/lyria.d.ts.map +1 -0
  51. package/dist/media/generators/lyria.js +42 -0
  52. package/dist/media/generators/lyria.js.map +1 -0
  53. package/dist/media/generators/nano-banana.d.ts +11 -0
  54. package/dist/media/generators/nano-banana.d.ts.map +1 -0
  55. package/dist/media/generators/nano-banana.js +46 -0
  56. package/dist/media/generators/nano-banana.js.map +1 -0
  57. package/dist/media/generators/recraft.d.ts +10 -0
  58. package/dist/media/generators/recraft.d.ts.map +1 -0
  59. package/dist/media/generators/recraft.js +53 -0
  60. package/dist/media/generators/recraft.js.map +1 -0
  61. package/dist/media/generators/runway.d.ts +10 -0
  62. package/dist/media/generators/runway.d.ts.map +1 -0
  63. package/dist/media/generators/runway.js +58 -0
  64. package/dist/media/generators/runway.js.map +1 -0
  65. package/dist/media/generators/stable-diffusion.d.ts +10 -0
  66. package/dist/media/generators/stable-diffusion.d.ts.map +1 -0
  67. package/dist/media/generators/stable-diffusion.js +36 -0
  68. package/dist/media/generators/stable-diffusion.js.map +1 -0
  69. package/dist/media/generators/veo.d.ts +10 -0
  70. package/dist/media/generators/veo.d.ts.map +1 -0
  71. package/dist/media/generators/veo.js +33 -0
  72. package/dist/media/generators/veo.js.map +1 -0
  73. package/dist/media/index.d.ts +13 -0
  74. package/dist/media/index.d.ts.map +1 -0
  75. package/dist/media/index.js +10 -0
  76. package/dist/media/index.js.map +1 -0
  77. package/dist/media/loader.d.ts +8 -0
  78. package/dist/media/loader.d.ts.map +1 -0
  79. package/dist/media/loader.js +46 -0
  80. package/dist/media/loader.js.map +1 -0
  81. package/dist/media/types.d.ts +22 -0
  82. package/dist/media/types.d.ts.map +1 -0
  83. package/dist/media/types.js +2 -0
  84. package/dist/media/types.js.map +1 -0
  85. package/dist/projects/index.d.ts +4 -0
  86. package/dist/projects/index.d.ts.map +1 -0
  87. package/dist/projects/index.js +3 -0
  88. package/dist/projects/index.js.map +1 -0
  89. package/dist/projects/manager.d.ts +20 -0
  90. package/dist/projects/manager.d.ts.map +1 -0
  91. package/dist/projects/manager.js +135 -0
  92. package/dist/projects/manager.js.map +1 -0
  93. package/dist/projects/router.d.ts +6 -0
  94. package/dist/projects/router.d.ts.map +1 -0
  95. package/dist/projects/router.js +177 -0
  96. package/dist/projects/router.js.map +1 -0
  97. package/dist/projects/types.d.ts +26 -0
  98. package/dist/projects/types.d.ts.map +1 -0
  99. package/dist/projects/types.js +2 -0
  100. package/dist/projects/types.js.map +1 -0
  101. package/dist/session/manager.d.ts +3 -1
  102. package/dist/session/manager.d.ts.map +1 -1
  103. package/dist/session/manager.js +6 -5
  104. package/dist/session/manager.js.map +1 -1
  105. package/dist/types.d.ts +7 -0
  106. package/dist/types.d.ts.map +1 -1
  107. package/dist/types.js.map +1 -1
  108. package/dist/util/progress.d.ts +35 -0
  109. package/dist/util/progress.d.ts.map +1 -0
  110. package/dist/util/progress.js +134 -0
  111. package/dist/util/progress.js.map +1 -0
  112. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ import { logger } from './logger.js';
2
+ /**
3
+ * Collects tool use events and sends batched progress updates
4
+ * with escalating intervals and next-update predictions.
5
+ *
6
+ * Schedule: 15s → 30s → 1m → 2m → 3m → 4m → ... (grows by 1m after 2m)
7
+ * Each update tells the user when the next one will come.
8
+ * Works across all channels (Telegram, Discord, WhatsApp, etc.)
9
+ */
10
+ export class ProgressTracker {
11
+ events = [];
12
+ startTime;
13
+ onReport;
14
+ timer = null;
15
+ tabName;
16
+ reportCount = 0;
17
+ // Escalating intervals in ms: 15s, 30s, 1m, 2m, then +1m each
18
+ intervals = [15000, 30000, 60000, 120000];
19
+ constructor(tabName, onReport) {
20
+ this.tabName = tabName;
21
+ this.startTime = Date.now();
22
+ this.onReport = onReport;
23
+ this.scheduleNext();
24
+ }
25
+ /** Record a tool use event */
26
+ record(toolName, toolInput) {
27
+ this.events.push({ tool: toolName, summary: this.summarizeTool(toolName, toolInput) });
28
+ }
29
+ /** Stop the timer (called when task finishes) */
30
+ stop() {
31
+ if (this.timer) {
32
+ clearTimeout(this.timer);
33
+ this.timer = null;
34
+ }
35
+ }
36
+ /** Get the interval for the current report number */
37
+ getInterval() {
38
+ if (this.reportCount < this.intervals.length) {
39
+ return this.intervals[this.reportCount];
40
+ }
41
+ // After the fixed intervals, grow by 1 minute each time (3m, 4m, 5m, ...)
42
+ const extraMinutes = this.reportCount - this.intervals.length + 3;
43
+ return extraMinutes * 60000;
44
+ }
45
+ /** Format a duration in ms to a human-readable string */
46
+ formatDuration(ms) {
47
+ const seconds = Math.round(ms / 1000);
48
+ if (seconds < 60)
49
+ return `${seconds}s`;
50
+ const minutes = Math.floor(seconds / 60);
51
+ const secs = seconds % 60;
52
+ return secs > 0 ? `${minutes}m ${secs}s` : `${minutes}m`;
53
+ }
54
+ /** Schedule the next progress report */
55
+ scheduleNext() {
56
+ const interval = this.getInterval();
57
+ this.timer = setTimeout(() => {
58
+ this.flush();
59
+ this.reportCount++;
60
+ this.scheduleNext();
61
+ }, interval);
62
+ }
63
+ /** Flush pending events as a progress report */
64
+ flush() {
65
+ if (this.events.length === 0)
66
+ return;
67
+ const elapsed = Date.now() - this.startTime;
68
+ const elapsedStr = this.formatDuration(elapsed);
69
+ // Build the activity summary
70
+ const lines = [];
71
+ for (const event of this.events) {
72
+ lines.push(` ${event.summary}`);
73
+ }
74
+ this.events = [];
75
+ // Calculate when the next update will come
76
+ const nextInterval = this.getInterval();
77
+ const nextStr = this.formatDuration(nextInterval);
78
+ const message = [
79
+ `\uD83D\uDD04 Working on "${this.tabName}" (${elapsedStr} elapsed)`,
80
+ ...lines,
81
+ `\n\u23F3 Next update in ${nextStr} or when finished.`,
82
+ ].join('\n');
83
+ try {
84
+ this.onReport(message);
85
+ }
86
+ catch (err) {
87
+ logger.warn('Progress report failed:', err);
88
+ }
89
+ }
90
+ /** Summarize a tool call into a human-readable one-liner */
91
+ summarizeTool(name, input) {
92
+ switch (name) {
93
+ case 'Write':
94
+ case 'write':
95
+ return `\uD83D\uDCDD Created ${this.extractPath(input)}`;
96
+ case 'Edit':
97
+ case 'edit':
98
+ return `\uD83D\uDCDD Edited ${this.extractPath(input)}`;
99
+ case 'Read':
100
+ case 'read':
101
+ return `\uD83D\uDC41 Read ${this.extractPath(input)}`;
102
+ case 'Bash':
103
+ case 'bash':
104
+ return `\uD83D\uDD27 Ran: ${this.extractCommand(input)}`;
105
+ case 'Glob':
106
+ case 'glob':
107
+ return `\uD83D\uDD0D Searched for files: ${input.pattern || '...'}`;
108
+ case 'Grep':
109
+ case 'grep':
110
+ return `\uD83D\uDD0D Searched code: ${input.pattern || '...'}`;
111
+ case 'WebSearch':
112
+ case 'web_search':
113
+ return `\uD83C\uDF10 Searched: ${input.query || '...'}`;
114
+ case 'WebFetch':
115
+ case 'web_fetch':
116
+ return `\uD83C\uDF10 Fetched: ${input.url || '...'}`;
117
+ default:
118
+ return `\u2699\uFE0F ${name}`;
119
+ }
120
+ }
121
+ extractPath(input) {
122
+ const p = (input.file_path || input.path || input.filePath || '');
123
+ if (p.includes('/'))
124
+ return p.split('/').pop() || p;
125
+ if (p.includes('\\'))
126
+ return p.split('\\').pop() || p;
127
+ return p || '...';
128
+ }
129
+ extractCommand(input) {
130
+ const cmd = (input.command || input.cmd || '');
131
+ return cmd.length > 60 ? cmd.slice(0, 57) + '...' : cmd || '...';
132
+ }
133
+ }
134
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/util/progress.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beecork",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Claude Code always-on infrastructure — a phone number, a memory, and an alarm clock",
5
5
  "type": "module",
6
6
  "bin": {