0xkobold 0.0.6 → 0.2.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 (120) hide show
  1. package/HEARTBEAT.md +66 -32
  2. package/README.md +220 -1
  3. package/dist/package.json +3 -2
  4. package/dist/src/agent/bootstrap-loader.js +138 -0
  5. package/dist/src/agent/bootstrap-loader.js.map +1 -0
  6. package/dist/src/agent/context-pruning.js +279 -0
  7. package/dist/src/agent/context-pruning.js.map +1 -0
  8. package/dist/src/agent/dynamic-personality.js +211 -0
  9. package/dist/src/agent/dynamic-personality.js.map +1 -0
  10. package/dist/src/agent/embedded-runner.js +79 -0
  11. package/dist/src/agent/embedded-runner.js.map +1 -0
  12. package/dist/src/agent/index.js +16 -0
  13. package/dist/src/agent/index.js.map +1 -0
  14. package/dist/src/agent/system-prompt.js +84 -0
  15. package/dist/src/agent/system-prompt.js.map +1 -0
  16. package/dist/src/agent/task-router.js +194 -0
  17. package/dist/src/agent/task-router.js.map +1 -0
  18. package/dist/src/agent/tools/index.js +2 -0
  19. package/dist/src/agent/tools/index.js.map +1 -0
  20. package/dist/src/agent/tools/spawn-agent.js +200 -0
  21. package/dist/src/agent/tools/spawn-agent.js.map +1 -0
  22. package/dist/src/agent/types/definitions.js +317 -0
  23. package/dist/src/agent/types/definitions.js.map +1 -0
  24. package/dist/src/agent/types/index.js +2 -0
  25. package/dist/src/agent/types/index.js.map +1 -0
  26. package/dist/src/agent/user-profile.js +300 -0
  27. package/dist/src/agent/user-profile.js.map +1 -0
  28. package/dist/src/agents/task-router.js +194 -0
  29. package/dist/src/agents/task-router.js.map +1 -0
  30. package/dist/src/agents/tools/index.js +2 -0
  31. package/dist/src/agents/tools/index.js.map +1 -0
  32. package/dist/src/agents/tools/spawn-agent.js +200 -0
  33. package/dist/src/agents/tools/spawn-agent.js.map +1 -0
  34. package/dist/src/agents/types/definitions.js +317 -0
  35. package/dist/src/agents/types/definitions.js.map +1 -0
  36. package/dist/src/agents/types/index.js +2 -0
  37. package/dist/src/agents/types/index.js.map +1 -0
  38. package/dist/src/cli/commands/embedded.js +36 -0
  39. package/dist/src/cli/commands/embedded.js.map +1 -0
  40. package/dist/src/cli/commands/gateway.js +127 -166
  41. package/dist/src/cli/commands/gateway.js.map +1 -1
  42. package/dist/src/cli/program-fixed.js +1 -0
  43. package/dist/src/cli/program-fixed.js.map +1 -0
  44. package/dist/src/cli/program.js +10 -29
  45. package/dist/src/cli/program.js.map +1 -1
  46. package/dist/src/extensions/core/agent-lifecycle-extension.js +323 -0
  47. package/dist/src/extensions/core/agent-lifecycle-extension.js.map +1 -0
  48. package/dist/src/extensions/core/agent-orchestrator-extension.js +642 -0
  49. package/dist/src/extensions/core/agent-orchestrator-extension.js.map +1 -0
  50. package/dist/src/extensions/core/agent-workspace-extension.js +174 -0
  51. package/dist/src/extensions/core/agent-workspace-extension.js.map +1 -0
  52. package/dist/src/extensions/core/autonomous-executor-extension.js +145 -0
  53. package/dist/src/extensions/core/autonomous-executor-extension.js.map +1 -0
  54. package/dist/src/extensions/core/autonomous-subagent-extension.js +333 -0
  55. package/dist/src/extensions/core/autonomous-subagent-extension.js.map +1 -0
  56. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js +323 -0
  57. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js.map +1 -0
  58. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js +333 -0
  59. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js.map +1 -0
  60. package/dist/src/extensions/core/deprecated/subagent-extension.js +647 -0
  61. package/dist/src/extensions/core/deprecated/subagent-extension.js.map +1 -0
  62. package/dist/src/extensions/core/mode-manager-extension.js +11 -0
  63. package/dist/src/extensions/core/mode-manager-extension.js.map +1 -1
  64. package/dist/src/extensions/core/perennial-memory-extension.js +10 -2
  65. package/dist/src/extensions/core/perennial-memory-extension.js.map +1 -1
  66. package/dist/src/extensions/core/persona-loader-extension.js +61 -129
  67. package/dist/src/extensions/core/persona-loader-extension.js.map +1 -1
  68. package/dist/src/extensions/core/websearch-enhanced-extension.js +705 -0
  69. package/dist/src/extensions/core/websearch-enhanced-extension.js.map +1 -0
  70. package/dist/src/extensions/core/websearch-v2-extension.js +303 -0
  71. package/dist/src/extensions/core/websearch-v2-extension.js.map +1 -0
  72. package/dist/src/gateway/discord-bot.js +185 -0
  73. package/dist/src/gateway/discord-bot.js.map +1 -0
  74. package/dist/src/gateway/index.js +10 -350
  75. package/dist/src/gateway/index.js.map +1 -1
  76. package/dist/src/gateway/server.js +325 -0
  77. package/dist/src/gateway/server.js.map +1 -0
  78. package/dist/src/gateway/websocket-server.js +142 -0
  79. package/dist/src/gateway/websocket-server.js.map +1 -0
  80. package/dist/src/heartbeat/checkin.js +185 -0
  81. package/dist/src/heartbeat/checkin.js.map +1 -0
  82. package/dist/src/heartbeat/index.js +5 -0
  83. package/dist/src/heartbeat/index.js.map +1 -0
  84. package/dist/src/heartbeat/notifications.js +216 -0
  85. package/dist/src/heartbeat/notifications.js.map +1 -0
  86. package/dist/src/heartbeat/scheduler.js +284 -0
  87. package/dist/src/heartbeat/scheduler.js.map +1 -0
  88. package/dist/src/index.js +21 -3
  89. package/dist/src/index.js.map +1 -1
  90. package/dist/src/mode/auto-detector.js +211 -0
  91. package/dist/src/mode/auto-detector.js.map +1 -0
  92. package/dist/src/mode/index.js +3 -0
  93. package/dist/src/mode/index.js.map +1 -0
  94. package/dist/src/mode/natural-switcher.js +123 -0
  95. package/dist/src/mode/natural-switcher.js.map +1 -0
  96. package/dist/src/skills/builtin/api-worker.js +88 -0
  97. package/dist/src/skills/builtin/api-worker.js.map +1 -0
  98. package/dist/src/skills/builtin/nextjs-worker.js +55 -0
  99. package/dist/src/skills/builtin/nextjs-worker.js.map +1 -0
  100. package/dist/src/skills/builtin/real-workers.js +166 -0
  101. package/dist/src/skills/builtin/real-workers.js.map +1 -0
  102. package/dist/src/skills/builtin/sql-worker.js +61 -0
  103. package/dist/src/skills/builtin/sql-worker.js.map +1 -0
  104. package/dist/src/skills/builtin/test-worker.js +79 -0
  105. package/dist/src/skills/builtin/test-worker.js.map +1 -0
  106. package/dist/src/skills/builtin/web-research.js +77 -0
  107. package/dist/src/skills/builtin/web-research.js.map +1 -0
  108. package/dist/src/skills/framework.js +250 -0
  109. package/dist/src/skills/framework.js.map +1 -0
  110. package/dist/src/skills/index.js +10 -10
  111. package/dist/src/skills/index.js.map +1 -1
  112. package/dist/src/streaming/block-streamer.js +172 -0
  113. package/dist/src/streaming/block-streamer.js.map +1 -0
  114. package/dist/src/streaming/index.js +2 -0
  115. package/dist/src/streaming/index.js.map +1 -0
  116. package/dist/src/workspace/index.js +2 -0
  117. package/dist/src/workspace/index.js.map +1 -0
  118. package/dist/src/workspace/manager.js +181 -0
  119. package/dist/src/workspace/manager.js.map +1 -0
  120. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../../src/heartbeat/checkin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // Heartbeat module exports
2
+ export { HeartbeatScheduler, getScheduler, resetScheduler } from './scheduler.js';
3
+ export { getCheckInPrompt, formatCheckInMessage, buildCheckInResponse, handleCheckInAction, detectIdle, getGreeting } from './checkin.js';
4
+ export { getNotificationManager, resetNotificationManager } from './notifications.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/heartbeat/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAIL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EAIzB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Heartbeat Notifications - v0.2.0
3
+ *
4
+ * Proactive notification system with smart timing.
5
+ */
6
+ const DEFAULT_CONFIG = {
7
+ enabled: true,
8
+ maxPerDay: 5,
9
+ minInterval: 30, // 30 minutes minimum between notifications
10
+ };
11
+ class NotificationManager {
12
+ config;
13
+ stats;
14
+ queue = [];
15
+ constructor(config = {}) {
16
+ this.config = { ...DEFAULT_CONFIG, ...config };
17
+ this.stats = {
18
+ sent: 0,
19
+ sentToday: 0,
20
+ lastSent: null,
21
+ categories: {},
22
+ };
23
+ }
24
+ /**
25
+ * Check if quiet hours
26
+ */
27
+ isQuietHours() {
28
+ if (this.config.quietHoursStart === undefined ||
29
+ this.config.quietHoursEnd === undefined) {
30
+ return false;
31
+ }
32
+ const now = new Date();
33
+ const hour = now.getHours();
34
+ // Handle wrap-around (e.g., 22:00 - 08:00)
35
+ if (this.config.quietHoursStart > this.config.quietHoursEnd) {
36
+ return hour >= this.config.quietHoursStart || hour < this.config.quietHoursEnd;
37
+ }
38
+ return hour >= this.config.quietHoursStart && hour < this.config.quietHoursEnd;
39
+ }
40
+ /**
41
+ * Check if can send notification (rate limiting)
42
+ */
43
+ canSend() {
44
+ if (!this.config.enabled)
45
+ return false;
46
+ if (this.isQuietHours())
47
+ return false;
48
+ if (this.stats.sentToday >= this.config.maxPerDay)
49
+ return false;
50
+ // Check min interval
51
+ if (this.stats.lastSent) {
52
+ const minutesSinceLast = (Date.now() - this.stats.lastSent.getTime()) / 60000;
53
+ if (minutesSinceLast < this.config.minInterval) {
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Send notification
61
+ */
62
+ send(notification) {
63
+ if (!this.canSend()) {
64
+ this.queue.push({
65
+ ...notification,
66
+ id: this.generateId(),
67
+ timestamp: new Date(),
68
+ });
69
+ console.log('[Notification] Queued (rate limited or quiet hours)');
70
+ return null;
71
+ }
72
+ const fullNotification = {
73
+ ...notification,
74
+ id: this.generateId(),
75
+ timestamp: new Date(),
76
+ };
77
+ // Update stats
78
+ this.stats.sent++;
79
+ this.stats.sentToday++;
80
+ this.stats.lastSent = fullNotification.timestamp;
81
+ const category = notification.type;
82
+ this.stats.categories[category] = (this.stats.categories[category] || 0) + 1;
83
+ // Actually send
84
+ this.deliver(fullNotification);
85
+ return fullNotification;
86
+ }
87
+ /**
88
+ * Queue notification for later
89
+ */
90
+ queueNotification(notification) {
91
+ this.queue.push({
92
+ ...notification,
93
+ id: this.generateId(),
94
+ timestamp: new Date(),
95
+ });
96
+ }
97
+ /**
98
+ * Process queued notifications
99
+ */
100
+ processQueue() {
101
+ const sent = [];
102
+ while (this.queue.length > 0 && this.canSend()) {
103
+ const notification = this.queue.shift();
104
+ if (notification) {
105
+ const result = this.send({
106
+ type: notification.type,
107
+ title: notification.title,
108
+ message: notification.message,
109
+ priority: notification.priority,
110
+ actions: notification.actions,
111
+ });
112
+ if (result)
113
+ sent.push(result);
114
+ }
115
+ }
116
+ return sent;
117
+ }
118
+ /**
119
+ * Deliver notification (platform-specific)
120
+ */
121
+ deliver(notification) {
122
+ // Log for now - could integrate with system notifications
123
+ console.log(`[Notification] ${notification.type.toUpperCase()}: ${notification.title}`);
124
+ console.log(` ${notification.message}`);
125
+ if (notification.actions) {
126
+ console.log(` Actions: ${notification.actions.join(', ')}`);
127
+ }
128
+ }
129
+ /**
130
+ * Send check-in notification
131
+ */
132
+ sendCheckIn(message) {
133
+ return this.send({
134
+ type: 'checkin',
135
+ title: 'Check-in',
136
+ message,
137
+ priority: 'low',
138
+ });
139
+ }
140
+ /**
141
+ * Send reminder notification
142
+ */
143
+ sendReminder(message, priority = 'normal') {
144
+ return this.send({
145
+ type: 'reminder',
146
+ title: 'Reminder',
147
+ message,
148
+ priority,
149
+ });
150
+ }
151
+ /**
152
+ * Send nurture notification
153
+ */
154
+ sendNurture(message) {
155
+ return this.send({
156
+ type: 'nurture',
157
+ title: '👋 Hi there',
158
+ message,
159
+ priority: 'low',
160
+ actions: ['respond', 'dismiss'],
161
+ });
162
+ }
163
+ /**
164
+ * Get stats
165
+ */
166
+ getStats() {
167
+ return { ...this.stats };
168
+ }
169
+ /**
170
+ * Reset daily stats
171
+ */
172
+ resetDailyStats() {
173
+ this.stats.sentToday = 0;
174
+ this.stats.categories = {};
175
+ }
176
+ /**
177
+ * Get queue length
178
+ */
179
+ getQueueLength() {
180
+ return this.queue.length;
181
+ }
182
+ /**
183
+ * Update config
184
+ */
185
+ updateConfig(config) {
186
+ this.config = { ...this.config, ...config };
187
+ }
188
+ /**
189
+ * Get config
190
+ */
191
+ getConfig() {
192
+ return { ...this.config };
193
+ }
194
+ generateId() {
195
+ return `notif-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
196
+ }
197
+ }
198
+ // Singleton instance
199
+ let manager = null;
200
+ /**
201
+ * Get notification manager
202
+ */
203
+ export function getNotificationManager(config) {
204
+ if (!manager) {
205
+ manager = new NotificationManager(config);
206
+ }
207
+ return manager;
208
+ }
209
+ /**
210
+ * Reset notification manager
211
+ */
212
+ export function resetNotificationManager() {
213
+ manager = null;
214
+ }
215
+ export default getNotificationManager;
216
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/heartbeat/notifications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Real Heartbeat Scheduler - v0.2.0
3
+ *
4
+ * ACTUAL cron-based scheduler for check-ins and notifications.
5
+ * Replaces setTimeout mocks with real scheduling.
6
+ */
7
+ import { EventEmitter } from "events";
8
+ class HeartbeatScheduler extends EventEmitter {
9
+ config;
10
+ jobs = new Map();
11
+ running = false;
12
+ lastInteraction = new Date();
13
+ idleCheckTimer;
14
+ nurtureTimer;
15
+ constructor(config = {}) {
16
+ super();
17
+ this.config = {
18
+ morning: "09:00",
19
+ evening: "18:00",
20
+ idleThreshold: 30,
21
+ nurtureAfter: 60,
22
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
23
+ quietHoursStart: 22,
24
+ quietHoursEnd: 8,
25
+ ...config,
26
+ };
27
+ }
28
+ /**
29
+ * Start the scheduler - ACTUALLY runs now
30
+ */
31
+ async start() {
32
+ if (this.running)
33
+ return;
34
+ this.running = true;
35
+ console.log(`[Heartbeat] Scheduler started (timezone: ${this.config.timezone})`);
36
+ // Schedule morning check-in
37
+ if (this.config.morning) {
38
+ this.scheduleTimeBasedCheckIn('morning', this.config.morning);
39
+ }
40
+ // Schedule evening check-in
41
+ if (this.config.evening) {
42
+ this.scheduleTimeBasedCheckIn('evening', this.config.evening);
43
+ }
44
+ // Schedule periodic check-ins
45
+ if (this.config.periodic) {
46
+ this.schedulePeriodicCheckIn('periodic', this.config.periodic);
47
+ }
48
+ // Start idle monitoring (ACTUAL implementation)
49
+ this.startIdleMonitoring();
50
+ // Start nurture monitoring (ACTUAL implementation)
51
+ if (this.config.nurtureAfter) {
52
+ this.startNurtureMonitoring();
53
+ }
54
+ this.emit('started');
55
+ }
56
+ /**
57
+ * Stop all scheduled jobs
58
+ */
59
+ stop() {
60
+ this.running = false;
61
+ // Clear all timers
62
+ for (const job of this.jobs.values()) {
63
+ if (job.timer) {
64
+ clearTimeout(job.timer);
65
+ }
66
+ }
67
+ this.jobs.clear();
68
+ if (this.idleCheckTimer) {
69
+ clearInterval(this.idleCheckTimer);
70
+ }
71
+ if (this.nurtureTimer) {
72
+ clearInterval(this.nurtureTimer);
73
+ }
74
+ console.log("[Heartbeat] Scheduler stopped");
75
+ this.emit('stopped');
76
+ }
77
+ /**
78
+ * Schedule a time-based check-in (e.g., "09:00")
79
+ * ACTUALLY calculates next occurrence and sets timer
80
+ */
81
+ scheduleTimeBasedCheckIn(type, timeStr) {
82
+ const [hours, minutes] = timeStr.split(':').map(Number);
83
+ const calculateNextRun = () => {
84
+ const now = new Date();
85
+ const next = new Date();
86
+ next.setHours(hours, minutes, 0, 0);
87
+ // If time already passed today, schedule for tomorrow
88
+ if (next <= now) {
89
+ next.setDate(next.getDate() + 1);
90
+ }
91
+ return next;
92
+ };
93
+ const scheduleNext = () => {
94
+ const nextRun = calculateNextRun();
95
+ const delay = nextRun.getTime() - Date.now();
96
+ console.log(`[Heartbeat] ${type} check-in scheduled for ${timeStr} (in ${Math.round(delay / 60000)} minutes)`);
97
+ const timer = setTimeout(() => {
98
+ this.triggerCheckIn(type);
99
+ // Reschedule for next day
100
+ scheduleNext();
101
+ }, delay);
102
+ const jobId = `daily-${type}`;
103
+ this.jobs.set(jobId, {
104
+ id: jobId,
105
+ type,
106
+ schedule: timeStr,
107
+ nextRun,
108
+ timer,
109
+ });
110
+ };
111
+ scheduleNext();
112
+ }
113
+ /**
114
+ * Schedule periodic check-ins (e.g., every 30 minutes)
115
+ */
116
+ schedulePeriodicCheckIn(type, intervalMinutes) {
117
+ const intervalMs = intervalMinutes * 60 * 1000;
118
+ const timer = setInterval(() => {
119
+ this.triggerCheckIn(type);
120
+ }, intervalMs);
121
+ this.jobs.set(`periodic-${type}`, {
122
+ id: `periodic-${type}`,
123
+ type,
124
+ schedule: `every ${intervalMinutes}m`,
125
+ nextRun: new Date(Date.now() + intervalMs),
126
+ timer,
127
+ });
128
+ console.log(`[Heartbeat] Periodic ${type} check-ins every ${intervalMinutes} minutes`);
129
+ }
130
+ /**
131
+ * Schedule a one-off check-in (e.g., remind me in 5 minutes)
132
+ */
133
+ scheduleCheckIn(type, delayMinutes) {
134
+ const id = `scheduled-${type}-${Date.now()}`;
135
+ const delayMs = delayMinutes * 60 * 1000;
136
+ const timer = setTimeout(() => {
137
+ this.triggerCheckIn(type);
138
+ this.jobs.delete(id);
139
+ }, delayMs);
140
+ this.jobs.set(id, {
141
+ id,
142
+ type,
143
+ schedule: `in ${delayMinutes}m`,
144
+ nextRun: new Date(Date.now() + delayMs),
145
+ timer,
146
+ });
147
+ return id;
148
+ }
149
+ /**
150
+ * Cancel a scheduled check-in
151
+ */
152
+ cancelCheckIn(id) {
153
+ const job = this.jobs.get(id);
154
+ if (job) {
155
+ if (job.timer)
156
+ clearTimeout(job.timer);
157
+ this.jobs.delete(id);
158
+ return true;
159
+ }
160
+ return false;
161
+ }
162
+ /**
163
+ * ACTUAL idle detection with real monitoring
164
+ */
165
+ startIdleMonitoring() {
166
+ if (!this.config.idleThreshold)
167
+ return;
168
+ // Check every minute
169
+ this.idleCheckTimer = setInterval(() => {
170
+ if (!this.running)
171
+ return;
172
+ const idleTime = Date.now() - this.lastInteraction.getTime();
173
+ const thresholdMs = (this.config.idleThreshold || 30) * 60 * 1000;
174
+ if (idleTime >= thresholdMs) {
175
+ const idleMinutes = Math.round(idleTime / 60000);
176
+ console.log(`[Heartbeat] Idle detected: ${idleMinutes} minutes`);
177
+ this.triggerCheckIn('idle', {
178
+ idleMinutes,
179
+ since: this.lastInteraction.toISOString()
180
+ });
181
+ // Reset to avoid repeated triggers
182
+ this.lastInteraction = new Date();
183
+ }
184
+ }, 60000); // Check every minute
185
+ console.log(`[Heartbeat] Idle monitoring started (${this.config.idleThreshold} min threshold)`);
186
+ }
187
+ /**
188
+ * ACTUAL nurture monitoring
189
+ */
190
+ startNurtureMonitoring() {
191
+ const thresholdMs = (this.config.nurtureAfter || 60) * 60 * 1000;
192
+ this.nurtureTimer = setInterval(() => {
193
+ if (!this.running || this.isQuietHours())
194
+ return;
195
+ const timeSinceInteraction = Date.now() - this.lastInteraction.getTime();
196
+ if (timeSinceInteraction >= thresholdMs) {
197
+ console.log('[Heartbeat] Nurture check-in triggered');
198
+ this.triggerCheckIn('nurture');
199
+ this.lastInteraction = new Date(); // Reset
200
+ }
201
+ }, 5 * 60 * 1000); // Check every 5 minutes
202
+ console.log(`[Heartbeat] Nurture monitoring started (${this.config.nurtureAfter} min threshold)`);
203
+ }
204
+ /**
205
+ * Trigger an ACTUAL check-in event
206
+ */
207
+ triggerCheckIn(type, payload) {
208
+ if (this.isQuietHours() && type !== 'periodic') {
209
+ console.log(`[Heartbeat] Skipping ${type} check-in (quiet hours)`);
210
+ return;
211
+ }
212
+ const event = {
213
+ id: `${type}-${Date.now()}`,
214
+ type,
215
+ scheduledTime: new Date(),
216
+ payload,
217
+ };
218
+ console.log(`[Heartbeat] 🔔 ${type.toUpperCase()} check-in triggered`);
219
+ this.emit('checkin', event);
220
+ }
221
+ /**
222
+ * Record user interaction (resets idle timers)
223
+ * ACTUALLY used by the system
224
+ */
225
+ recordInteraction() {
226
+ const wasIdle = Date.now() - this.lastInteraction.getTime() > 5 * 60 * 1000; // 5 min
227
+ this.lastInteraction = new Date();
228
+ if (wasIdle) {
229
+ console.log('[Heartbeat] User returned from idle');
230
+ this.emit('active');
231
+ }
232
+ }
233
+ /**
234
+ * Check if currently in quiet hours
235
+ */
236
+ isQuietHours() {
237
+ if (this.config.quietHoursStart === undefined || this.config.quietHoursEnd === undefined) {
238
+ return false;
239
+ }
240
+ const now = new Date();
241
+ const currentHour = now.getHours();
242
+ // Handle wrap-around (e.g., 22:00 - 08:00)
243
+ if (this.config.quietHoursStart > this.config.quietHoursEnd) {
244
+ return currentHour >= this.config.quietHoursStart || currentHour < this.config.quietHoursEnd;
245
+ }
246
+ return currentHour >= this.config.quietHoursStart && currentHour < this.config.quietHoursEnd;
247
+ }
248
+ /**
249
+ * Get upcoming scheduled events
250
+ */
251
+ getUpcoming() {
252
+ return Array.from(this.jobs.values())
253
+ .map(job => ({ type: job.type, nextRun: job.nextRun }))
254
+ .sort((a, b) => a.nextRun.getTime() - b.nextRun.getTime());
255
+ }
256
+ /**
257
+ * Get time until next check-in
258
+ */
259
+ getTimeUntilNext() {
260
+ const upcoming = this.getUpcoming();
261
+ if (upcoming.length === 0)
262
+ return Infinity;
263
+ const next = upcoming[0];
264
+ return Math.max(0, next.nextRun.getTime() - Date.now());
265
+ }
266
+ isRunning() {
267
+ return this.running;
268
+ }
269
+ }
270
+ // Singleton
271
+ let scheduler = null;
272
+ export function getScheduler(config) {
273
+ if (!scheduler) {
274
+ scheduler = new HeartbeatScheduler(config);
275
+ }
276
+ return scheduler;
277
+ }
278
+ export function resetScheduler() {
279
+ scheduler?.stop();
280
+ scheduler = null;
281
+ }
282
+ export { HeartbeatScheduler };
283
+ export default HeartbeatScheduler;
284
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/heartbeat/scheduler.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -50,6 +50,18 @@ function verifyExtensions() {
50
50
  '--extension', ext('ollama-router-extension'),
51
51
  '--extension', ext('session-bridge-extension'),
52
52
  // Core Features
53
+ // Agent Orchestration (Unified - v0.2.0)
54
+ // Replaces: agent-registry, subagent-extension, agent-lifecycle, agent-workspace
55
+ '--extension', ext('agent-orchestrator-extension'),
56
+ '--extension', ext('persona-loader-extension'),
57
+ // Legacy Extensions (DEPRECATED - will be removed in v0.3.0)
58
+ // Kept for backwards compatibility, use agent_orchestrate instead
59
+ // '--extension', ext('agent-registry-extension'),
60
+ // '--extension', ext('subagent-extension'),
61
+ // '--extension', ext('agent-lifecycle-extension'),
62
+ // '--extension', ext('agent-workspace-extension'),
63
+ // '--extension', ext('autonomous-subagent-extension'),
64
+ // Core Features
53
65
  '--extension', ext('persona-loader-extension'),
54
66
  '--extension', ext('context-aware-extension'),
55
67
  '--extension', ext('onboarding-extension'),
@@ -77,13 +89,19 @@ function verifyExtensions() {
77
89
  // Integrations
78
90
  '--extension', ext('mcp-extension'),
79
91
  '--extension', ext('gateway-extension'),
80
- '--extension', ext('agent-registry-extension'),
81
- '--extension', ext('websearch-extension'),
92
+ // Agent workspace provides advanced_web_fetch tool
93
+ '--extension', ext('agent-workspace-extension'),
94
+ // Deprecated: Use agent-orchestrator-extension instead
95
+ // '--extension', ext('agent-lifecycle-extension'),
96
+ // '--extension', ext('autonomous-subagent-extension'),
97
+ // '--extension', ext('agent-registry-extension'),
98
+ '--extension', ext('websearch-enhanced-extension'),
82
99
  '--extension', ext('memory-extension'),
83
100
  '--extension', ext('perennial-memory-extension'),
84
101
  '--extension', ext('diagnostics-extension'),
85
102
  '--extension', ext('memory-synthesis-extension'),
86
- '--extension', ext('subagent-extension'),
103
+ // Deprecated: Use agent-orchestrator-extension instead
104
+ // '--extension', ext('subagent-extension'),
87
105
  // Note: pi-coding-agent updates disabled - user manages dependencies manually
88
106
  // '--extension', ext('update-extension'),
89
107
  // Self-update for 0xKobold only (shows in dev mode)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}