@flowdot.ai/daemon 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.
- package/LICENSE +45 -0
- package/README.md +51 -0
- package/dist/goals/DependencyResolver.d.ts +54 -0
- package/dist/goals/DependencyResolver.js +329 -0
- package/dist/goals/ErrorRecovery.d.ts +133 -0
- package/dist/goals/ErrorRecovery.js +489 -0
- package/dist/goals/GoalApiClient.d.ts +81 -0
- package/dist/goals/GoalApiClient.js +743 -0
- package/dist/goals/GoalCache.d.ts +65 -0
- package/dist/goals/GoalCache.js +243 -0
- package/dist/goals/GoalCommsHandler.d.ts +150 -0
- package/dist/goals/GoalCommsHandler.js +378 -0
- package/dist/goals/GoalExporter.d.ts +164 -0
- package/dist/goals/GoalExporter.js +318 -0
- package/dist/goals/GoalImporter.d.ts +107 -0
- package/dist/goals/GoalImporter.js +345 -0
- package/dist/goals/GoalManager.d.ts +110 -0
- package/dist/goals/GoalManager.js +535 -0
- package/dist/goals/GoalReporter.d.ts +105 -0
- package/dist/goals/GoalReporter.js +534 -0
- package/dist/goals/GoalScheduler.d.ts +102 -0
- package/dist/goals/GoalScheduler.js +209 -0
- package/dist/goals/GoalValidator.d.ts +72 -0
- package/dist/goals/GoalValidator.js +657 -0
- package/dist/goals/MetaGoalEnforcer.d.ts +111 -0
- package/dist/goals/MetaGoalEnforcer.js +536 -0
- package/dist/goals/MilestoneBreaker.d.ts +74 -0
- package/dist/goals/MilestoneBreaker.js +348 -0
- package/dist/goals/PermissionBridge.d.ts +109 -0
- package/dist/goals/PermissionBridge.js +326 -0
- package/dist/goals/ProgressTracker.d.ts +113 -0
- package/dist/goals/ProgressTracker.js +324 -0
- package/dist/goals/ReviewScheduler.d.ts +106 -0
- package/dist/goals/ReviewScheduler.js +360 -0
- package/dist/goals/TaskExecutor.d.ts +116 -0
- package/dist/goals/TaskExecutor.js +370 -0
- package/dist/goals/TaskFeedback.d.ts +126 -0
- package/dist/goals/TaskFeedback.js +402 -0
- package/dist/goals/TaskGenerator.d.ts +75 -0
- package/dist/goals/TaskGenerator.js +329 -0
- package/dist/goals/TaskQueue.d.ts +84 -0
- package/dist/goals/TaskQueue.js +331 -0
- package/dist/goals/TaskSanitizer.d.ts +61 -0
- package/dist/goals/TaskSanitizer.js +464 -0
- package/dist/goals/errors.d.ts +116 -0
- package/dist/goals/errors.js +299 -0
- package/dist/goals/index.d.ts +24 -0
- package/dist/goals/index.js +23 -0
- package/dist/goals/types.d.ts +395 -0
- package/dist/goals/types.js +230 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -0
- package/dist/loop/DaemonIPC.d.ts +67 -0
- package/dist/loop/DaemonIPC.js +358 -0
- package/dist/loop/IntervalParser.d.ts +39 -0
- package/dist/loop/IntervalParser.js +217 -0
- package/dist/loop/LoopDaemon.d.ts +123 -0
- package/dist/loop/LoopDaemon.js +1821 -0
- package/dist/loop/LoopExecutor.d.ts +93 -0
- package/dist/loop/LoopExecutor.js +326 -0
- package/dist/loop/LoopManager.d.ts +79 -0
- package/dist/loop/LoopManager.js +476 -0
- package/dist/loop/LoopScheduler.d.ts +69 -0
- package/dist/loop/LoopScheduler.js +329 -0
- package/dist/loop/LoopStore.d.ts +57 -0
- package/dist/loop/LoopStore.js +406 -0
- package/dist/loop/LoopValidator.d.ts +55 -0
- package/dist/loop/LoopValidator.js +603 -0
- package/dist/loop/errors.d.ts +115 -0
- package/dist/loop/errors.js +312 -0
- package/dist/loop/index.d.ts +11 -0
- package/dist/loop/index.js +10 -0
- package/dist/loop/notifications/Notifier.d.ts +28 -0
- package/dist/loop/notifications/Notifier.js +78 -0
- package/dist/loop/notifications/SlackNotifier.d.ts +28 -0
- package/dist/loop/notifications/SlackNotifier.js +203 -0
- package/dist/loop/notifications/TerminalNotifier.d.ts +18 -0
- package/dist/loop/notifications/TerminalNotifier.js +72 -0
- package/dist/loop/notifications/WebhookNotifier.d.ts +24 -0
- package/dist/loop/notifications/WebhookNotifier.js +123 -0
- package/dist/loop/notifications/index.d.ts +24 -0
- package/dist/loop/notifications/index.js +109 -0
- package/dist/loop/types.d.ts +280 -0
- package/dist/loop/types.js +222 -0
- package/package.json +92 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { LoopConfig, LoopDaemonConfig, DaemonStatus, Logger } from './types.js';
|
|
3
|
+
import { type LoopManagerOptions } from './LoopManager.js';
|
|
4
|
+
import { type GoalManagerOptions, type TokenProvider, type TaskType, type TaskGeneratorLLMFunction, type TaskGeneratorOptions, type TaskExecutorOptions, type TaskExecutionHandler, type ApprovalRequestFunction, type PermissionBridgeOptions, type GoalCommsHandlerOptions, type CommsSendFunction, type ReviewSchedulerOptions, type ProgressTrackerOptions, type ErrorRecoveryOptions, type GoalSchedulerOptions, type ExecuteGoalFunction } from '../goals/index.js';
|
|
5
|
+
export interface DaemonGoalConfig {
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
tokenProvider: TokenProvider;
|
|
8
|
+
managerOptions?: Partial<Omit<GoalManagerOptions, 'baseUrl' | 'tokenProvider' | 'logger'>>;
|
|
9
|
+
llmFunction?: TaskGeneratorLLMFunction;
|
|
10
|
+
taskGeneratorOptions?: Partial<Omit<TaskGeneratorOptions, 'llmFunction' | 'logger'>>;
|
|
11
|
+
taskHandlers?: Partial<Record<TaskType, TaskExecutionHandler>>;
|
|
12
|
+
approvalRequestFunction?: ApprovalRequestFunction;
|
|
13
|
+
permissionBridgeOptions?: Partial<Omit<PermissionBridgeOptions, 'logger'>>;
|
|
14
|
+
taskExecutorOptions?: Partial<Omit<TaskExecutorOptions, 'handlers' | 'requestApproval' | 'checkPermission' | 'updateTaskStatus' | 'logger'>>;
|
|
15
|
+
commsSendFunction?: CommsSendFunction;
|
|
16
|
+
commsHandlerOptions?: Partial<Omit<GoalCommsHandlerOptions, 'sendFunction' | 'logger'>>;
|
|
17
|
+
enableReviewScheduler?: boolean;
|
|
18
|
+
reviewSchedulerOptions?: Partial<Omit<ReviewSchedulerOptions, 'logger'>>;
|
|
19
|
+
enableProgressTracker?: boolean;
|
|
20
|
+
progressTrackerOptions?: Partial<Omit<ProgressTrackerOptions, 'logger'>>;
|
|
21
|
+
enableErrorRecovery?: boolean;
|
|
22
|
+
errorRecoveryOptions?: Partial<Omit<ErrorRecoveryOptions, 'logger'>>;
|
|
23
|
+
enableGoalScheduler?: boolean;
|
|
24
|
+
goalSchedulerOptions?: Partial<Omit<GoalSchedulerOptions, 'getDueGoals' | 'markGoalStarted' | 'markGoalCompleted' | 'executeGoal' | 'logger'>>;
|
|
25
|
+
executeGoalFunction?: ExecuteGoalFunction;
|
|
26
|
+
}
|
|
27
|
+
export interface LoopDaemonOptions {
|
|
28
|
+
baseDir?: string;
|
|
29
|
+
daemonConfig?: Partial<LoopDaemonConfig>;
|
|
30
|
+
loopConfig?: Partial<LoopConfig>;
|
|
31
|
+
managerOptions?: LoopManagerOptions;
|
|
32
|
+
goalConfig?: DaemonGoalConfig;
|
|
33
|
+
logger?: Logger;
|
|
34
|
+
}
|
|
35
|
+
export type DaemonMethod = 'ping' | 'status' | 'shutdown' | 'createLoop' | 'getLoop' | 'getLoopByName' | 'getAllLoops' | 'getLoopsByStatus' | 'pauseLoop' | 'resumeLoop' | 'stopLoop' | 'deleteLoop' | 'runNow' | 'runLoopNow' | 'getRunHistory' | 'getLoopHistory' | 'getRun' | 'getStats' | 'listGoals' | 'getGoal' | 'createGoal' | 'updateGoal' | 'deleteGoal' | 'pauseGoal' | 'resumeGoal' | 'completeGoal' | 'abandonGoal' | 'getGoalProgress' | 'listMilestones' | 'getMilestone' | 'createMilestone' | 'updateMilestone' | 'deleteMilestone' | 'completeMilestone' | 'listTasks' | 'getTask' | 'createTask' | 'updateTask' | 'deleteTask' | 'approveTask' | 'denyTask' | 'startTask' | 'completeTask' | 'failTask' | 'skipTask' | 'addTaskFeedback' | 'getPendingTasks' | 'getTasksAwaitingApproval' | 'listMemories' | 'createMemory' | 'updateMemory' | 'toggleMemory' | 'deleteMemory' | 'getEnabledMemories' | 'getGoalStats' | 'getActionLogs' | 'generateTasks' | 'generateDailyTasks' | 'suggestNextTask' | 'isTaskGenerationEnabled' | 'executeTask' | 'executeTaskSequence' | 'runGoalAutoMode' | 'canExecuteTask' | 'isTaskExecutionEnabled' | 'getExecutionCapabilities' | 'checkTaskPermission' | 'recordPermissionDecision' | 'getPermissionAuditLog' | 'clearPermissionCache' | 'sendGoalNotification' | 'requestGoalApproval' | 'handleApprovalResponse' | 'isCommsEnabled' | 'isReviewSchedulerEnabled' | 'setReviewSchedule' | 'removeReviewSchedule' | 'scheduleReview' | 'completeReview' | 'snoozeReview' | 'getPendingReviews' | 'getDueReviews' | 'isProgressTrackerEnabled' | 'calculateGoalProgress' | 'recordTaskCompletion' | 'createProgressSnapshot' | 'getProgressSnapshots' | 'getVelocityMetrics' | 'isErrorRecoveryEnabled' | 'createCheckpoint' | 'getCheckpoints' | 'restoreCheckpoint' | 'clearCheckpoints' | 'analyzeError';
|
|
36
|
+
export interface DaemonEvents {
|
|
37
|
+
started: [];
|
|
38
|
+
stopping: [];
|
|
39
|
+
stopped: [];
|
|
40
|
+
error: [error: Error];
|
|
41
|
+
loopEvent: [event: string, data: Record<string, unknown>];
|
|
42
|
+
goalEvent: [event: string, data: Record<string, unknown>];
|
|
43
|
+
}
|
|
44
|
+
export declare class LoopDaemon extends EventEmitter {
|
|
45
|
+
private readonly baseDir;
|
|
46
|
+
private readonly flowdotDir;
|
|
47
|
+
private readonly config;
|
|
48
|
+
private readonly store;
|
|
49
|
+
private readonly managerOptions;
|
|
50
|
+
private readonly goalConfig?;
|
|
51
|
+
private readonly logger;
|
|
52
|
+
private manager;
|
|
53
|
+
private goalManager;
|
|
54
|
+
private taskGenerator;
|
|
55
|
+
private taskExecutor;
|
|
56
|
+
private permissionBridge;
|
|
57
|
+
private goalCommsHandler;
|
|
58
|
+
private reviewScheduler;
|
|
59
|
+
private progressTracker;
|
|
60
|
+
private errorRecovery;
|
|
61
|
+
private goalScheduler;
|
|
62
|
+
private ipcServer;
|
|
63
|
+
private logStream;
|
|
64
|
+
private startedAt;
|
|
65
|
+
private isShuttingDown;
|
|
66
|
+
constructor(options?: LoopDaemonOptions);
|
|
67
|
+
start(): Promise<void>;
|
|
68
|
+
stop(): Promise<void>;
|
|
69
|
+
getStatus(): Promise<DaemonStatus>;
|
|
70
|
+
isRunning(): boolean;
|
|
71
|
+
private resolveLoopId;
|
|
72
|
+
private assertGoalManager;
|
|
73
|
+
private assertTaskGenerator;
|
|
74
|
+
private assertTaskExecutor;
|
|
75
|
+
private assertPermissionBridge;
|
|
76
|
+
private assertGoalCommsHandler;
|
|
77
|
+
private assertReviewScheduler;
|
|
78
|
+
private assertProgressTracker;
|
|
79
|
+
private assertErrorRecovery;
|
|
80
|
+
private handleRequest;
|
|
81
|
+
private setupManagerEvents;
|
|
82
|
+
private serializeEventData;
|
|
83
|
+
private setupGoalManagerEvents;
|
|
84
|
+
private serializeGoalEventData;
|
|
85
|
+
private setupTaskExecutorEvents;
|
|
86
|
+
private serializeExecutorEventData;
|
|
87
|
+
private serializePermissionEventData;
|
|
88
|
+
private setupCommsHandlerEvents;
|
|
89
|
+
private serializeCommsEventData;
|
|
90
|
+
private setupReviewSchedulerEvents;
|
|
91
|
+
private serializeReviewSchedulerEventData;
|
|
92
|
+
private setupProgressTrackerEvents;
|
|
93
|
+
private serializeProgressTrackerEventData;
|
|
94
|
+
private setupErrorRecoveryEvents;
|
|
95
|
+
private serializeErrorRecoveryEventData;
|
|
96
|
+
private setupGoalSchedulerEvents;
|
|
97
|
+
private serializeGoalSchedulerEventData;
|
|
98
|
+
private createGetDueGoalsFunction;
|
|
99
|
+
private createMarkGoalStartedFunction;
|
|
100
|
+
private createMarkGoalCompletedFunction;
|
|
101
|
+
private createDefaultExecuteGoalFunction;
|
|
102
|
+
private setupSignalHandlers;
|
|
103
|
+
private setupLogging;
|
|
104
|
+
private closeLogStream;
|
|
105
|
+
private logMessage;
|
|
106
|
+
private ensureDirectories;
|
|
107
|
+
private cleanup;
|
|
108
|
+
}
|
|
109
|
+
export interface DaemonControlOptions {
|
|
110
|
+
port?: number;
|
|
111
|
+
baseDir?: string;
|
|
112
|
+
daemonConfig?: Partial<LoopDaemonConfig>;
|
|
113
|
+
logger?: Logger;
|
|
114
|
+
daemonScript?: string;
|
|
115
|
+
}
|
|
116
|
+
export declare function startDaemon(options?: DaemonControlOptions): Promise<{
|
|
117
|
+
pid: number;
|
|
118
|
+
}>;
|
|
119
|
+
export declare function stopDaemon(options?: DaemonControlOptions): Promise<void>;
|
|
120
|
+
export declare function getDaemonStatus(options?: DaemonControlOptions): Promise<DaemonStatus>;
|
|
121
|
+
export declare function isProcessRunning(pid: number): boolean;
|
|
122
|
+
export declare function createLoopDaemon(options?: LoopDaemonOptions): LoopDaemon;
|
|
123
|
+
export declare function runDaemon(options?: LoopDaemonOptions): Promise<void>;
|