beecork 0.3.2 → 1.0.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 (204) hide show
  1. package/dist/channels/discord.d.ts +23 -0
  2. package/dist/channels/discord.d.ts.map +1 -0
  3. package/dist/channels/discord.js +240 -0
  4. package/dist/channels/discord.js.map +1 -0
  5. package/dist/channels/index.d.ts +8 -0
  6. package/dist/channels/index.d.ts.map +1 -0
  7. package/dist/channels/index.js +7 -0
  8. package/dist/channels/index.js.map +1 -0
  9. package/dist/channels/loader.d.ts +8 -0
  10. package/dist/channels/loader.d.ts.map +1 -0
  11. package/dist/channels/loader.js +72 -0
  12. package/dist/channels/loader.js.map +1 -0
  13. package/dist/channels/registry.d.ts +24 -0
  14. package/dist/channels/registry.d.ts.map +1 -0
  15. package/dist/channels/registry.js +65 -0
  16. package/dist/channels/registry.js.map +1 -0
  17. package/dist/channels/telegram.d.ts +41 -0
  18. package/dist/channels/telegram.d.ts.map +1 -0
  19. package/dist/channels/telegram.js +606 -0
  20. package/dist/channels/telegram.js.map +1 -0
  21. package/dist/channels/types.d.ts +67 -0
  22. package/dist/channels/types.d.ts.map +1 -0
  23. package/dist/channels/types.js +2 -0
  24. package/dist/channels/types.js.map +1 -0
  25. package/dist/channels/webhook.d.ts +28 -0
  26. package/dist/channels/webhook.d.ts.map +1 -0
  27. package/dist/channels/webhook.js +164 -0
  28. package/dist/channels/webhook.js.map +1 -0
  29. package/dist/channels/whatsapp.d.ts +27 -0
  30. package/dist/channels/whatsapp.d.ts.map +1 -0
  31. package/dist/channels/whatsapp.js +260 -0
  32. package/dist/channels/whatsapp.js.map +1 -0
  33. package/dist/cli/channel.d.ts +4 -0
  34. package/dist/cli/channel.d.ts.map +1 -0
  35. package/dist/cli/channel.js +194 -0
  36. package/dist/cli/channel.js.map +1 -0
  37. package/dist/cli/doctor.d.ts +2 -0
  38. package/dist/cli/doctor.d.ts.map +1 -0
  39. package/dist/cli/doctor.js +150 -0
  40. package/dist/cli/doctor.js.map +1 -0
  41. package/dist/cli/handoff.d.ts +16 -0
  42. package/dist/cli/handoff.d.ts.map +1 -0
  43. package/dist/cli/handoff.js +69 -0
  44. package/dist/cli/handoff.js.map +1 -0
  45. package/dist/cli/mcp.d.ts +4 -0
  46. package/dist/cli/mcp.d.ts.map +1 -0
  47. package/dist/cli/mcp.js +48 -0
  48. package/dist/cli/mcp.js.map +1 -0
  49. package/dist/cli/setup.d.ts.map +1 -1
  50. package/dist/cli/setup.js +47 -10
  51. package/dist/cli/setup.js.map +1 -1
  52. package/dist/config.d.ts.map +1 -1
  53. package/dist/config.js +10 -1
  54. package/dist/config.js.map +1 -1
  55. package/dist/cron/scheduler.d.ts +2 -0
  56. package/dist/cron/scheduler.d.ts.map +1 -1
  57. package/dist/cron/scheduler.js +32 -10
  58. package/dist/cron/scheduler.js.map +1 -1
  59. package/dist/daemon.js +66 -25
  60. package/dist/daemon.js.map +1 -1
  61. package/dist/dashboard/html.d.ts +1 -1
  62. package/dist/dashboard/html.d.ts.map +1 -1
  63. package/dist/dashboard/html.js +396 -111
  64. package/dist/dashboard/html.js.map +1 -1
  65. package/dist/dashboard/server.d.ts.map +1 -1
  66. package/dist/dashboard/server.js +152 -16
  67. package/dist/dashboard/server.js.map +1 -1
  68. package/dist/db/index.d.ts.map +1 -1
  69. package/dist/db/index.js +15 -0
  70. package/dist/db/index.js.map +1 -1
  71. package/dist/db/migrations.d.ts.map +1 -1
  72. package/dist/db/migrations.js +64 -0
  73. package/dist/db/migrations.js.map +1 -1
  74. package/dist/delegation/manager.d.ts +21 -0
  75. package/dist/delegation/manager.d.ts.map +1 -0
  76. package/dist/delegation/manager.js +88 -0
  77. package/dist/delegation/manager.js.map +1 -0
  78. package/dist/index.js +162 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/machines/forwarder.d.ts +7 -0
  81. package/dist/machines/forwarder.d.ts.map +1 -0
  82. package/dist/machines/forwarder.js +25 -0
  83. package/dist/machines/forwarder.js.map +1 -0
  84. package/dist/machines/index.d.ts +3 -0
  85. package/dist/machines/index.d.ts.map +1 -0
  86. package/dist/machines/index.js +3 -0
  87. package/dist/machines/index.js.map +1 -0
  88. package/dist/machines/registry.d.ts +22 -0
  89. package/dist/machines/registry.d.ts.map +1 -0
  90. package/dist/machines/registry.js +71 -0
  91. package/dist/machines/registry.js.map +1 -0
  92. package/dist/mcp/server.js +265 -32
  93. package/dist/mcp/server.js.map +1 -1
  94. package/dist/media/store.d.ts +11 -0
  95. package/dist/media/store.d.ts.map +1 -0
  96. package/dist/media/store.js +53 -0
  97. package/dist/media/store.js.map +1 -0
  98. package/dist/memory/extractor.js +1 -1
  99. package/dist/memory/extractor.js.map +1 -1
  100. package/dist/notifications/index.d.ts +7 -0
  101. package/dist/notifications/index.d.ts.map +1 -0
  102. package/dist/notifications/index.js +35 -0
  103. package/dist/notifications/index.js.map +1 -0
  104. package/dist/notifications/ntfy.d.ts +10 -0
  105. package/dist/notifications/ntfy.d.ts.map +1 -0
  106. package/dist/notifications/ntfy.js +26 -0
  107. package/dist/notifications/ntfy.js.map +1 -0
  108. package/dist/notifications/pushover.d.ts +10 -0
  109. package/dist/notifications/pushover.d.ts.map +1 -0
  110. package/dist/notifications/pushover.js +27 -0
  111. package/dist/notifications/pushover.js.map +1 -0
  112. package/dist/notifications/types.d.ts +6 -0
  113. package/dist/notifications/types.d.ts.map +1 -0
  114. package/dist/notifications/types.js +2 -0
  115. package/dist/notifications/types.js.map +1 -0
  116. package/dist/notifications/webhook-provider.d.ts +10 -0
  117. package/dist/notifications/webhook-provider.d.ts.map +1 -0
  118. package/dist/notifications/webhook-provider.js +25 -0
  119. package/dist/notifications/webhook-provider.js.map +1 -0
  120. package/dist/observability/analytics.d.ts +26 -0
  121. package/dist/observability/analytics.d.ts.map +1 -0
  122. package/dist/observability/analytics.js +94 -0
  123. package/dist/observability/analytics.js.map +1 -0
  124. package/dist/pipe/memory-store.d.ts +1 -6
  125. package/dist/pipe/memory-store.d.ts.map +1 -1
  126. package/dist/pipe/memory-store.js +0 -24
  127. package/dist/pipe/memory-store.js.map +1 -1
  128. package/dist/pipe/types.d.ts +0 -9
  129. package/dist/pipe/types.d.ts.map +1 -1
  130. package/dist/service/install.d.ts.map +1 -1
  131. package/dist/service/install.js +26 -7
  132. package/dist/service/install.js.map +1 -1
  133. package/dist/service/windows.d.ts +11 -0
  134. package/dist/service/windows.d.ts.map +1 -0
  135. package/dist/service/windows.js +70 -0
  136. package/dist/service/windows.js.map +1 -0
  137. package/dist/session/manager.d.ts.map +1 -1
  138. package/dist/session/manager.js +41 -5
  139. package/dist/session/manager.js.map +1 -1
  140. package/dist/session/subprocess.d.ts +2 -1
  141. package/dist/session/subprocess.d.ts.map +1 -1
  142. package/dist/session/subprocess.js +8 -2
  143. package/dist/session/subprocess.js.map +1 -1
  144. package/dist/types.d.ts +47 -2
  145. package/dist/types.d.ts.map +1 -1
  146. package/dist/types.js +1 -3
  147. package/dist/types.js.map +1 -1
  148. package/dist/users/index.d.ts +3 -0
  149. package/dist/users/index.d.ts.map +1 -0
  150. package/dist/users/index.js +2 -0
  151. package/dist/users/index.js.map +1 -0
  152. package/dist/users/service.d.ts +25 -0
  153. package/dist/users/service.d.ts.map +1 -0
  154. package/dist/users/service.js +65 -0
  155. package/dist/users/service.js.map +1 -0
  156. package/dist/util/logger.d.ts +2 -0
  157. package/dist/util/logger.d.ts.map +1 -1
  158. package/dist/util/logger.js +24 -0
  159. package/dist/util/logger.js.map +1 -1
  160. package/dist/util/platform.d.ts +1 -1
  161. package/dist/util/platform.d.ts.map +1 -1
  162. package/dist/util/platform.js +3 -1
  163. package/dist/util/platform.js.map +1 -1
  164. package/dist/util/rate-limiter.d.ts +15 -0
  165. package/dist/util/rate-limiter.d.ts.map +1 -0
  166. package/dist/util/rate-limiter.js +43 -0
  167. package/dist/util/rate-limiter.js.map +1 -0
  168. package/dist/util/text.d.ts +3 -0
  169. package/dist/util/text.d.ts.map +1 -1
  170. package/dist/util/text.js +19 -0
  171. package/dist/util/text.js.map +1 -1
  172. package/dist/voice/index.d.ts +10 -0
  173. package/dist/voice/index.d.ts.map +1 -0
  174. package/dist/voice/index.js +16 -0
  175. package/dist/voice/index.js.map +1 -0
  176. package/dist/voice/stt.d.ts +15 -0
  177. package/dist/voice/stt.d.ts.map +1 -0
  178. package/dist/voice/stt.js +40 -0
  179. package/dist/voice/stt.js.map +1 -0
  180. package/dist/voice/tts.d.ts +24 -0
  181. package/dist/voice/tts.d.ts.map +1 -0
  182. package/dist/voice/tts.js +85 -0
  183. package/dist/voice/tts.js.map +1 -0
  184. package/package.json +2 -1
  185. package/dist/session/approval.d.ts +0 -20
  186. package/dist/session/approval.d.ts.map +0 -1
  187. package/dist/session/approval.js +0 -59
  188. package/dist/session/approval.js.map +0 -1
  189. package/dist/telegram/bot.d.ts +0 -25
  190. package/dist/telegram/bot.d.ts.map +0 -1
  191. package/dist/telegram/bot.js +0 -307
  192. package/dist/telegram/bot.js.map +0 -1
  193. package/dist/telegram/formatter.d.ts +0 -9
  194. package/dist/telegram/formatter.d.ts.map +0 -1
  195. package/dist/telegram/formatter.js +0 -13
  196. package/dist/telegram/formatter.js.map +0 -1
  197. package/dist/whatsapp/client.d.ts +0 -26
  198. package/dist/whatsapp/client.d.ts.map +0 -1
  199. package/dist/whatsapp/client.js +0 -145
  200. package/dist/whatsapp/client.js.map +0 -1
  201. package/dist/whatsapp/formatter.d.ts +0 -3
  202. package/dist/whatsapp/formatter.d.ts.map +0 -1
  203. package/dist/whatsapp/formatter.js +0 -7
  204. package/dist/whatsapp/formatter.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ export { PushoverProvider } from './pushover.js';
2
+ export { NtfyProvider } from './ntfy.js';
3
+ export { WebhookNotificationProvider } from './webhook-provider.js';
4
+ import { logger } from '../util/logger.js';
5
+ import { PushoverProvider } from './pushover.js';
6
+ import { NtfyProvider } from './ntfy.js';
7
+ import { WebhookNotificationProvider } from './webhook-provider.js';
8
+ export function createNotificationProvider(config) {
9
+ if (!config?.type)
10
+ return null;
11
+ switch (config.type) {
12
+ case 'pushover':
13
+ if (!config.userKey || !config.appToken) {
14
+ logger.warn('Pushover: missing userKey or appToken');
15
+ return null;
16
+ }
17
+ return new PushoverProvider(config.userKey, config.appToken);
18
+ case 'ntfy':
19
+ if (!config.topic) {
20
+ logger.warn('ntfy: missing topic');
21
+ return null;
22
+ }
23
+ return new NtfyProvider(config.topic, config.server);
24
+ case 'webhook':
25
+ if (!config.url) {
26
+ logger.warn('Webhook notification: missing url');
27
+ return null;
28
+ }
29
+ return new WebhookNotificationProvider(config.url, config.headers);
30
+ default:
31
+ logger.warn(`Unknown notification provider: ${config.type}`);
32
+ return null;
33
+ }
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,UAAU,0BAA0B,CAAC,MAAW;IACpD,IAAI,CAAC,MAAM,EAAE,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YAC/G,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,KAAK,MAAM;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YACvE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,KAAK,SAAS;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YACnF,OAAO,IAAI,2BAA2B,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE;YACE,MAAM,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { NotificationProvider } from './types.js';
2
+ export declare class NtfyProvider implements NotificationProvider {
3
+ private topic;
4
+ private server;
5
+ readonly id = "ntfy";
6
+ readonly name = "ntfy.sh";
7
+ constructor(topic: string, server?: string);
8
+ send(message: string, urgent?: boolean): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=ntfy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ntfy.d.ts","sourceRoot":"","sources":["../../src/notifications/ntfy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,YAAa,YAAW,oBAAoB;IAI3C,OAAO,CAAC,KAAK;IAAU,OAAO,CAAC,MAAM;IAHjD,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,IAAI,aAAa;gBAEN,KAAK,EAAE,MAAM,EAAU,MAAM,GAAE,MAA0B;IAEvE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAe7D"}
@@ -0,0 +1,26 @@
1
+ export class NtfyProvider {
2
+ topic;
3
+ server;
4
+ id = 'ntfy';
5
+ name = 'ntfy.sh';
6
+ constructor(topic, server = 'https://ntfy.sh') {
7
+ this.topic = topic;
8
+ this.server = server;
9
+ }
10
+ async send(message, urgent) {
11
+ const response = await fetch(`${this.server}/${this.topic}`, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Title': 'Beecork',
15
+ 'Priority': urgent ? '5' : '3',
16
+ 'Tags': urgent ? 'warning' : 'robot',
17
+ },
18
+ body: message,
19
+ signal: AbortSignal.timeout(10000),
20
+ });
21
+ if (!response.ok) {
22
+ throw new Error(`ntfy error: ${response.status}`);
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=ntfy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ntfy.js","sourceRoot":"","sources":["../../src/notifications/ntfy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAIH;IAAuB;IAHlC,EAAE,GAAG,MAAM,CAAC;IACZ,IAAI,GAAG,SAAS,CAAC;IAE1B,YAAoB,KAAa,EAAU,SAAiB,iBAAiB;QAAzD,UAAK,GAAL,KAAK,CAAQ;QAAU,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAEjF,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,MAAgB;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;gBAClB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAC9B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;aACrC;YACD,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { NotificationProvider } from './types.js';
2
+ export declare class PushoverProvider implements NotificationProvider {
3
+ private userKey;
4
+ private appToken;
5
+ readonly id = "pushover";
6
+ readonly name = "Pushover";
7
+ constructor(userKey: string, appToken: string);
8
+ send(message: string, urgent?: boolean): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=pushover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushover.d.ts","sourceRoot":"","sources":["../../src/notifications/pushover.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,gBAAiB,YAAW,oBAAoB;IAI/C,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,QAAQ;IAHrD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,cAAc;gBAEP,OAAO,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM;IAEvD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB7D"}
@@ -0,0 +1,27 @@
1
+ export class PushoverProvider {
2
+ userKey;
3
+ appToken;
4
+ id = 'pushover';
5
+ name = 'Pushover';
6
+ constructor(userKey, appToken) {
7
+ this.userKey = userKey;
8
+ this.appToken = appToken;
9
+ }
10
+ async send(message, urgent) {
11
+ const response = await fetch('https://api.pushover.net/1/messages.json', {
12
+ method: 'POST',
13
+ headers: { 'Content-Type': 'application/json' },
14
+ body: JSON.stringify({
15
+ token: this.appToken,
16
+ user: this.userKey,
17
+ message: message.slice(0, 1024),
18
+ priority: urgent ? 1 : 0,
19
+ }),
20
+ signal: AbortSignal.timeout(10000),
21
+ });
22
+ if (!response.ok) {
23
+ throw new Error(`Pushover API error: ${response.status}`);
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=pushover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushover.js","sourceRoot":"","sources":["../../src/notifications/pushover.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAIP;IAAyB;IAHpC,EAAE,GAAG,UAAU,CAAC;IAChB,IAAI,GAAG,UAAU,CAAC;IAE3B,YAAoB,OAAe,EAAU,QAAgB;QAAzC,YAAO,GAAP,OAAO,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjE,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,MAAgB;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,0CAA0C,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC/B,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export interface NotificationProvider {
2
+ readonly id: string;
3
+ readonly name: string;
4
+ send(message: string, urgent?: boolean): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notifications/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/notifications/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { NotificationProvider } from './types.js';
2
+ export declare class WebhookNotificationProvider implements NotificationProvider {
3
+ private url;
4
+ private headers?;
5
+ readonly id = "webhook-notify";
6
+ readonly name = "Webhook";
7
+ constructor(url: string, headers?: Record<string, string> | undefined);
8
+ send(message: string, urgent?: boolean): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=webhook-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-provider.d.ts","sourceRoot":"","sources":["../../src/notifications/webhook-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,2BAA4B,YAAW,oBAAoB;IAI1D,OAAO,CAAC,GAAG;IAAU,OAAO,CAAC,OAAO,CAAC;IAHjD,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,aAAa;gBAEN,GAAG,EAAE,MAAM,EAAU,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;IAEnE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7D"}
@@ -0,0 +1,25 @@
1
+ export class WebhookNotificationProvider {
2
+ url;
3
+ headers;
4
+ id = 'webhook-notify';
5
+ name = 'Webhook';
6
+ constructor(url, headers) {
7
+ this.url = url;
8
+ this.headers = headers;
9
+ }
10
+ async send(message, urgent) {
11
+ const response = await fetch(this.url, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ ...this.headers,
16
+ },
17
+ body: JSON.stringify({ message, urgent: !!urgent, timestamp: new Date().toISOString() }),
18
+ signal: AbortSignal.timeout(10000),
19
+ });
20
+ if (!response.ok) {
21
+ throw new Error(`Webhook notification error: ${response.status}`);
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=webhook-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-provider.js","sourceRoot":"","sources":["../../src/notifications/webhook-provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,2BAA2B;IAIlB;IAAqB;IAHhC,EAAE,GAAG,gBAAgB,CAAC;IACtB,IAAI,GAAG,SAAS,CAAC;IAE1B,YAAoB,GAAW,EAAU,OAAgC;QAArD,QAAG,GAAH,GAAG,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAE7E,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,MAAgB;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,IAAI,CAAC,OAAO;aAChB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACxF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ export interface CostSummary {
2
+ today: number;
3
+ last7Days: number;
4
+ last30Days: number;
5
+ perTab: Array<{
6
+ name: string;
7
+ cost: number;
8
+ messages: number;
9
+ }>;
10
+ }
11
+ export interface ActivitySummary {
12
+ period: string;
13
+ messagesReceived: number;
14
+ messagesFromAssistant: number;
15
+ cronJobsFired: number;
16
+ memoriesCreated: number;
17
+ totalCost: number;
18
+ activeTabsCount: number;
19
+ }
20
+ export declare function getCostSummary(): CostSummary;
21
+ export declare function getActivitySummary(hours?: number): ActivitySummary;
22
+ export declare function checkAnomalies(): string | null;
23
+ export declare function formatCostSummary(summary: CostSummary): string;
24
+ export declare function formatActivitySummary(summary: ActivitySummary): string;
25
+ export declare function generateDailyDigest(): string;
26
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/observability/analytics.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,IAAI,WAAW,CAc5C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,MAAW,GAAG,eAAe,CAoBtE;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAqB9C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkB9D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAUtE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAgB5C"}
@@ -0,0 +1,94 @@
1
+ import { getDb } from '../db/index.js';
2
+ export function getCostSummary() {
3
+ const db = getDb();
4
+ const today = db.prepare("SELECT COALESCE(SUM(cost_usd), 0) as total FROM messages WHERE created_at > date('now')").get().total;
5
+ const last7 = db.prepare("SELECT COALESCE(SUM(cost_usd), 0) as total FROM messages WHERE created_at > date('now', '-7 days')").get().total;
6
+ const last30 = db.prepare("SELECT COALESCE(SUM(cost_usd), 0) as total FROM messages WHERE created_at > date('now', '-30 days')").get().total;
7
+ const perTab = db.prepare(`
8
+ SELECT t.name, COALESCE(SUM(m.cost_usd), 0) as cost, COUNT(m.id) as messages
9
+ FROM tabs t LEFT JOIN messages m ON m.tab_id = t.id
10
+ GROUP BY t.id ORDER BY cost DESC
11
+ `).all();
12
+ return { today, last7Days: last7, last30Days: last30, perTab };
13
+ }
14
+ export function getActivitySummary(hours = 24) {
15
+ const db = getDb();
16
+ const sinceDate = new Date(Date.now() - hours * 3600000).toISOString();
17
+ const messagesReceived = db.prepare('SELECT COUNT(*) as c FROM messages WHERE role = ? AND created_at > ?').get('user', sinceDate).c;
18
+ const messagesFromAssistant = db.prepare('SELECT COUNT(*) as c FROM messages WHERE role = ? AND created_at > ?').get('assistant', sinceDate).c;
19
+ const cronJobsFired = db.prepare('SELECT COUNT(*) as c FROM cron_jobs WHERE last_run_at > ?').get(sinceDate).c;
20
+ const memoriesCreated = db.prepare('SELECT COUNT(*) as c FROM memories WHERE created_at > ?').get(sinceDate).c;
21
+ const totalCost = db.prepare('SELECT COALESCE(SUM(cost_usd), 0) as total FROM messages WHERE created_at > ?').get(sinceDate).total;
22
+ const activeTabsCount = db.prepare('SELECT COUNT(DISTINCT tab_id) as c FROM messages WHERE created_at > ?').get(sinceDate).c;
23
+ return {
24
+ period: `Last ${hours} hours`,
25
+ messagesReceived,
26
+ messagesFromAssistant,
27
+ cronJobsFired,
28
+ memoriesCreated,
29
+ totalCost,
30
+ activeTabsCount,
31
+ };
32
+ }
33
+ export function checkAnomalies() {
34
+ const db = getDb();
35
+ // Today's spend
36
+ const todaySpend = db.prepare("SELECT COALESCE(SUM(cost_usd), 0) as total FROM messages WHERE created_at > date('now')").get().total;
37
+ // 7-day rolling average (excluding today)
38
+ const avgSpend = db.prepare(`
39
+ SELECT COALESCE(AVG(daily_total), 0) as avg FROM (
40
+ SELECT date(created_at) as day, SUM(cost_usd) as daily_total
41
+ FROM messages
42
+ WHERE created_at > date('now', '-7 days') AND created_at < date('now')
43
+ GROUP BY date(created_at)
44
+ )
45
+ `).get().avg;
46
+ if (avgSpend > 0 && todaySpend > avgSpend * 2) {
47
+ return `⚠️ Anomaly: Today's spend ($${todaySpend.toFixed(4)}) exceeds 2x your 7-day average ($${avgSpend.toFixed(4)}/day)`;
48
+ }
49
+ return null;
50
+ }
51
+ export function formatCostSummary(summary) {
52
+ const lines = [
53
+ `💰 Cost Summary`,
54
+ ` Today: $${summary.today.toFixed(4)}`,
55
+ ` 7 days: $${summary.last7Days.toFixed(4)}`,
56
+ ` 30 days: $${summary.last30Days.toFixed(4)}`,
57
+ ];
58
+ if (summary.perTab.length > 0) {
59
+ lines.push('', ' Per tab:');
60
+ for (const tab of summary.perTab.slice(0, 10)) {
61
+ if (tab.cost > 0) {
62
+ lines.push(` ${tab.name}: $${tab.cost.toFixed(4)} (${tab.messages} msgs)`);
63
+ }
64
+ }
65
+ }
66
+ return lines.join('\n');
67
+ }
68
+ export function formatActivitySummary(summary) {
69
+ return [
70
+ `📊 Activity (${summary.period})`,
71
+ ` Messages in: ${summary.messagesReceived}`,
72
+ ` Messages out: ${summary.messagesFromAssistant}`,
73
+ ` Cron jobs fired: ${summary.cronJobsFired}`,
74
+ ` Memories created: ${summary.memoriesCreated}`,
75
+ ` Active tabs: ${summary.activeTabsCount}`,
76
+ ` Cost: $${summary.totalCost.toFixed(4)}`,
77
+ ].join('\n');
78
+ }
79
+ export function generateDailyDigest() {
80
+ const activity = getActivitySummary(24);
81
+ const costs = getCostSummary();
82
+ const anomaly = checkAnomalies();
83
+ const lines = [
84
+ '📋 Daily Beecork Digest',
85
+ '',
86
+ formatActivitySummary(activity),
87
+ '',
88
+ formatCostSummary(costs),
89
+ ];
90
+ if (anomaly)
91
+ lines.push('', anomaly);
92
+ return lines.join('\n');
93
+ }
94
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/observability/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAmBvC,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,KAAK,GAAI,EAAE,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IACzI,MAAM,KAAK,GAAI,EAAE,CAAC,OAAO,CAAC,oGAAoG,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IACpJ,MAAM,MAAM,GAAI,EAAE,CAAC,OAAO,CAAC,qGAAqG,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAEtJ,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAIzB,CAAC,CAAC,GAAG,EAA6D,CAAC;IAEpE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE;IACnD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvE,MAAM,gBAAgB,GAAI,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAS,CAAC,CAAC,CAAC;IAC9I,MAAM,qBAAqB,GAAI,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAS,CAAC,CAAC,CAAC;IACxJ,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC;IACxH,MAAM,eAAe,GAAI,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC;IACxH,MAAM,SAAS,GAAI,EAAE,CAAC,OAAO,CAAC,+EAA+E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,KAAK,CAAC;IAC5I,MAAM,eAAe,GAAI,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC;IAEtI,OAAO;QACL,MAAM,EAAE,QAAQ,KAAK,QAAQ;QAC7B,gBAAgB;QAChB,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,SAAS;QACT,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,gBAAgB;IAChB,MAAM,UAAU,GAAI,EAAE,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,GAAG,EAAU,CAAC,KAAK,CAAC;IAE9I,0CAA0C;IAC1C,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC;;;;;;;GAO5B,CAAC,CAAC,GAAG,EAAU,CAAC,GAAG,CAAC;IAErB,IAAI,QAAQ,GAAG,CAAC,IAAI,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,+BAA+B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7H,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACpD,MAAM,KAAK,GAAG;QACZ,iBAAiB;QACjB,aAAa,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvC,cAAc,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC5C,eAAe,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KAC/C,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,QAAQ,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAwB;IAC5D,OAAO;QACL,gBAAgB,OAAO,CAAC,MAAM,GAAG;QACjC,kBAAkB,OAAO,CAAC,gBAAgB,EAAE;QAC5C,mBAAmB,OAAO,CAAC,qBAAqB,EAAE;QAClD,sBAAsB,OAAO,CAAC,aAAa,EAAE;QAC7C,uBAAuB,OAAO,CAAC,eAAe,EAAE;QAChD,kBAAkB,OAAO,CAAC,eAAe,EAAE;QAC3C,YAAY,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG;QACZ,yBAAyB;QACzB,EAAE;QACF,qBAAqB,CAAC,QAAQ,CAAC;QAC/B,EAAE;QACF,iBAAiB,CAAC,KAAK,CAAC;KACzB,CAAC;IAEF,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,13 +1,8 @@
1
- import type { Project, PermissionEntry, KnowledgeEntry } from './types.js';
1
+ import type { Project, KnowledgeEntry } from './types.js';
2
2
  export declare class PipeMemoryStore {
3
3
  getProjects(): Project[];
4
4
  upsertProject(project: Project): void;
5
- findProjectByName(name: string): Project | undefined;
6
5
  updateProjectLastUsed(path: string): void;
7
- getPreference(key: string): string | null;
8
- setPreference(key: string, value: string): void;
9
- getPermissionHistory(toolName: string, limit?: number): PermissionEntry[];
10
- recordPermission(toolName: string, argsPattern: string, decision: 'allow' | 'deny', confidence: number, context: string | null, tabName: string | null): void;
11
6
  getRecentRouting(limit?: number): string[];
12
7
  recordRouting(messagePreview: string, tabName: string, projectPath: string | null, confidence: number): void;
13
8
  addKnowledge(entry: KnowledgeEntry): void;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/pipe/memory-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3E,qBAAa,eAAe;IAG1B,WAAW,IAAI,OAAO,EAAE;IAgBxB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAWrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKpD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMzC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,eAAe,EAAE;IAO7E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAS7J,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,EAAE;IAQ9C,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAS5G,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,EAAE;CAO1D"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/pipe/memory-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,eAAe;IAG1B,WAAW,IAAI,OAAO,EAAE;IAgBxB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAWrC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzC,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM,EAAE;IAQ9C,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAS5G,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,EAAE;CAO1D"}
@@ -26,34 +26,10 @@ export class PipeMemoryStore {
26
26
  last_used=excluded.last_used, tab_name=excluded.tab_name, updated_at=datetime('now')
27
27
  `).run(project.id || uuidv4(), project.name, project.path, project.description, JSON.stringify(project.languages), project.lastUsed, project.tabName, project.discoveredVia);
28
28
  }
29
- findProjectByName(name) {
30
- const projects = this.getProjects();
31
- return projects.find(p => p.name.toLowerCase() === name.toLowerCase());
32
- }
33
29
  updateProjectLastUsed(path) {
34
30
  const db = getDb();
35
31
  db.prepare('UPDATE projects SET last_used = datetime("now") WHERE path = ?').run(path);
36
32
  }
37
- // ─── Preferences ───
38
- getPreference(key) {
39
- const db = getDb();
40
- const row = db.prepare('SELECT value FROM preferences WHERE key = ?').get(key);
41
- return row?.value ?? null;
42
- }
43
- setPreference(key, value) {
44
- const db = getDb();
45
- db.prepare('INSERT INTO preferences (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value, updated_at=datetime("now")')
46
- .run(key, value);
47
- }
48
- // ─── Permission History ───
49
- getPermissionHistory(toolName, limit = 10) {
50
- const db = getDb();
51
- return db.prepare('SELECT * FROM permission_history WHERE tool_name = ? ORDER BY created_at DESC LIMIT ?').all(toolName, limit);
52
- }
53
- recordPermission(toolName, argsPattern, decision, confidence, context, tabName) {
54
- const db = getDb();
55
- db.prepare('INSERT INTO permission_history (tool_name, tool_args_pattern, decision, confidence, context, tab_name) VALUES (?, ?, ?, ?, ?, ?)').run(toolName, argsPattern, decision, confidence, context, tabName);
56
- }
57
33
  // ─── Routing History ───
58
34
  getRecentRouting(limit = 10) {
59
35
  const db = getDb();
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/pipe/memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/pipe/memory-store.ts"],"names":[],"mappings":"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"}
@@ -31,15 +31,6 @@ export interface PermissionEntry {
31
31
  tabName: string | null;
32
32
  createdAt: string;
33
33
  }
34
- export interface RoutingEntry {
35
- id: number;
36
- messagePreview: string;
37
- tabName: string;
38
- projectPath: string | null;
39
- confidence: number;
40
- wasCorrect: boolean | null;
41
- createdAt: string;
42
- }
43
34
  export interface KnowledgeEntry {
44
35
  content: string;
45
36
  category: 'project' | 'preference' | 'decision' | 'fact';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pipe/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pipe/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/service/install.ts"],"names":[],"mappings":"AAkCA,wBAAgB,cAAc,IAAI,MAAM,CAWvC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAQnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAYlC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/service/install.ts"],"names":[],"mappings":"AA4CA,wBAAgB,cAAc,IAAI,MAAM,CAcvC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAUzC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAclC"}
@@ -4,17 +4,22 @@ import { execSync } from 'node:child_process';
4
4
  import { getPlatform } from '../util/platform.js';
5
5
  import { ensureBeecorkDirs } from '../util/paths.js';
6
6
  import { getLaunchdPlist, getSystemdUnit, getLaunchdPlistPath, getSystemdUnitPath, } from './templates.js';
7
+ import { installWindowsService, startWindowsService, stopWindowsService, uninstallWindowsService, } from './windows.js';
7
8
  function findNodePath() {
8
9
  try {
9
- return execSync('which node', { encoding: 'utf-8' }).trim();
10
+ const cmd = process.platform === 'win32' ? 'where node' : 'which node';
11
+ return execSync(cmd, { encoding: 'utf-8' }).trim().split(/\r?\n/)[0];
10
12
  }
11
13
  catch {
12
- return '/usr/local/bin/node';
14
+ return process.platform === 'win32' ? 'node' : '/usr/local/bin/node';
13
15
  }
14
16
  }
15
17
  function findDaemonPath() {
16
18
  // import.meta.url is dist/service/install.js — daemon is at dist/daemon.js (one level up)
17
- const thisFile = new URL(import.meta.url).pathname;
19
+ const thisFileUrl = new URL(import.meta.url);
20
+ const thisFile = process.platform === 'win32'
21
+ ? thisFileUrl.pathname.replace(/^\/([A-Za-z]:)/, '$1') // strip leading / on Windows drive paths
22
+ : thisFileUrl.pathname;
18
23
  const distDir = path.dirname(path.dirname(thisFile)); // go up from service/ to dist/
19
24
  const daemonPath = path.join(distDir, 'daemon.js');
20
25
  if (fs.existsSync(daemonPath))
@@ -30,7 +35,11 @@ export function installService() {
30
35
  const platform = getPlatform();
31
36
  const nodePath = findNodePath();
32
37
  const daemonPath = findDaemonPath();
33
- if (platform === 'mac') {
38
+ if (platform === 'windows') {
39
+ installWindowsService(`${nodePath}" "${daemonPath}`);
40
+ return 'Windows Task Scheduler';
41
+ }
42
+ else if (platform === 'mac') {
34
43
  return installLaunchd(nodePath, daemonPath);
35
44
  }
36
45
  else {
@@ -39,7 +48,11 @@ export function installService() {
39
48
  }
40
49
  export function uninstallService() {
41
50
  const platform = getPlatform();
42
- if (platform === 'mac') {
51
+ if (platform === 'windows') {
52
+ uninstallWindowsService();
53
+ return 'Windows Task Scheduler';
54
+ }
55
+ else if (platform === 'mac') {
43
56
  return uninstallLaunchd();
44
57
  }
45
58
  else {
@@ -48,7 +61,10 @@ export function uninstallService() {
48
61
  }
49
62
  export function startService() {
50
63
  const platform = getPlatform();
51
- if (platform === 'mac') {
64
+ if (platform === 'windows') {
65
+ startWindowsService();
66
+ }
67
+ else if (platform === 'mac') {
52
68
  const plistPath = getLaunchdPlistPath();
53
69
  execSync(`launchctl load "${plistPath}"`, { stdio: 'inherit' });
54
70
  }
@@ -58,7 +74,10 @@ export function startService() {
58
74
  }
59
75
  export function stopService() {
60
76
  const platform = getPlatform();
61
- if (platform === 'mac') {
77
+ if (platform === 'windows') {
78
+ stopWindowsService();
79
+ }
80
+ else if (platform === 'mac') {
62
81
  const plistPath = getLaunchdPlistPath();
63
82
  try {
64
83
  execSync(`launchctl unload "${plistPath}"`, { stdio: 'inherit' });
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/service/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/service/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** Install Beecork as a Windows Task Scheduler task */
2
+ export declare function installWindowsService(binPath: string): void;
3
+ /** Start the Windows service */
4
+ export declare function startWindowsService(): void;
5
+ /** Stop the Windows service */
6
+ export declare function stopWindowsService(): void;
7
+ /** Uninstall the Windows service */
8
+ export declare function uninstallWindowsService(): void;
9
+ /** Check if the Windows service is installed */
10
+ export declare function isWindowsServiceInstalled(): boolean;
11
+ //# sourceMappingURL=windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../../src/service/windows.ts"],"names":[],"mappings":"AAOA,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAuB3D;AAED,gCAAgC;AAChC,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C;AAED,+BAA+B;AAC/B,wBAAgB,kBAAkB,IAAI,IAAI,CAUzC;AAED,oCAAoC;AACpC,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AAED,gDAAgD;AAChD,wBAAgB,yBAAyB,IAAI,OAAO,CAOnD"}