Files
HarborForge.OpenclawPlugin/plugin/calendar/index.ts
zhi 97021f97c0 PLG-CAL-002: Implement calendar scheduler for agent slot wakeup
- Add CalendarScheduler class to manage periodic heartbeat and slot execution
- Implement agent wakeup logic when Idle and slots are pending
- Handle slot status transitions (attended, ongoing, deferred)
- Support both real and virtual slot materialization
- Add task context building for different event types (job, system, entertainment)
- Integrate scheduler into main plugin index.ts
- Add new plugin tools: harborforge_calendar_status, complete, abort
2026-04-01 08:45:05 +00:00

34 lines
1.2 KiB
TypeScript

/**
* HarborForge Calendar — Plugin Module
*
* PLG-CAL-001: Calendar heartbeat request/response format definition.
* PLG-CAL-002: Plugin-side slot execution scheduler and agent wakeup.
*
* Exports:
* • Types for heartbeat request/response and slot update
* • CalendarBridgeClient — HTTP client for backend communication
* • createCalendarBridgeClient — factory from plugin API context
* • CalendarScheduler — manages periodic heartbeat and slot execution
* • createCalendarScheduler — factory for scheduler
* • AgentWakeContext — context passed to agent when waking
*
* Usage in plugin/index.ts:
* import { createCalendarBridgeClient, createCalendarScheduler } from './calendar';
*
* const agentId = process.env.AGENT_ID || 'unknown';
* const calendar = createCalendarBridgeClient(api, 'https://monitor.hangman-lab.top', agentId);
*
* const scheduler = createCalendarScheduler({
* bridge: calendar,
* getAgentStatus: async () => { ... },
* wakeAgent: async (context) => { ... },
* logger: api.logger,
* });
*
* scheduler.start();
*/
export * from './types';
export * from './calendar-bridge';
export * from './scheduler';