dot-agents 0.4.1 → 0.6.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 (140) hide show
  1. package/README.md +239 -122
  2. package/dist/cli/commands/channel.d.ts +19 -0
  3. package/dist/cli/commands/channel.d.ts.map +1 -1
  4. package/dist/cli/commands/channel.js +152 -13
  5. package/dist/cli/commands/channel.js.map +1 -1
  6. package/dist/cli/commands/check.d.ts.map +1 -1
  7. package/dist/cli/commands/check.js +61 -1
  8. package/dist/cli/commands/check.js.map +1 -1
  9. package/dist/cli/commands/index.d.ts +2 -0
  10. package/dist/cli/commands/index.d.ts.map +1 -1
  11. package/dist/cli/commands/index.js +2 -0
  12. package/dist/cli/commands/index.js.map +1 -1
  13. package/dist/cli/commands/personas.d.ts +3 -0
  14. package/dist/cli/commands/personas.d.ts.map +1 -0
  15. package/dist/cli/commands/personas.js +402 -0
  16. package/dist/cli/commands/personas.js.map +1 -0
  17. package/dist/cli/commands/projects.d.ts +3 -0
  18. package/dist/cli/commands/projects.d.ts.map +1 -0
  19. package/dist/cli/commands/projects.js +138 -0
  20. package/dist/cli/commands/projects.js.map +1 -0
  21. package/dist/cli/commands/run.d.ts.map +1 -1
  22. package/dist/cli/commands/run.js +4 -5
  23. package/dist/cli/commands/run.js.map +1 -1
  24. package/dist/cli/index.js +5 -12
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/lib/runner.d.ts +2 -0
  27. package/dist/cli/lib/runner.d.ts.map +1 -1
  28. package/dist/cli/lib/runner.js +102 -25
  29. package/dist/cli/lib/runner.js.map +1 -1
  30. package/dist/daemon/api/server.d.ts.map +1 -1
  31. package/dist/daemon/api/server.js +4 -2
  32. package/dist/daemon/api/server.js.map +1 -1
  33. package/dist/daemon/daemon.d.ts +12 -3
  34. package/dist/daemon/daemon.d.ts.map +1 -1
  35. package/dist/daemon/daemon.js +138 -35
  36. package/dist/daemon/daemon.js.map +1 -1
  37. package/dist/daemon/lib/executor.d.ts +12 -2
  38. package/dist/daemon/lib/executor.d.ts.map +1 -1
  39. package/dist/daemon/lib/executor.js +52 -34
  40. package/dist/daemon/lib/executor.js.map +1 -1
  41. package/dist/daemon/lib/watcher.d.ts +14 -2
  42. package/dist/daemon/lib/watcher.d.ts.map +1 -1
  43. package/dist/daemon/lib/watcher.js +43 -3
  44. package/dist/daemon/lib/watcher.js.map +1 -1
  45. package/dist/lib/channel.d.ts +53 -1
  46. package/dist/lib/channel.d.ts.map +1 -1
  47. package/dist/lib/channel.js +221 -30
  48. package/dist/lib/channel.js.map +1 -1
  49. package/dist/lib/channel.test.d.ts +2 -0
  50. package/dist/lib/channel.test.d.ts.map +1 -0
  51. package/dist/lib/channel.test.js +33 -0
  52. package/dist/lib/channel.test.js.map +1 -0
  53. package/dist/lib/daemon-status.d.ts +26 -0
  54. package/dist/lib/daemon-status.d.ts.map +1 -0
  55. package/dist/lib/daemon-status.js +64 -0
  56. package/dist/lib/daemon-status.js.map +1 -0
  57. package/dist/lib/environment.d.ts +87 -0
  58. package/dist/lib/environment.d.ts.map +1 -0
  59. package/dist/lib/environment.js +224 -0
  60. package/dist/lib/environment.js.map +1 -0
  61. package/dist/lib/frontmatter.d.ts +8 -0
  62. package/dist/lib/frontmatter.d.ts.map +1 -1
  63. package/dist/lib/frontmatter.js +16 -3
  64. package/dist/lib/frontmatter.js.map +1 -1
  65. package/dist/lib/frontmatter.test.d.ts +2 -0
  66. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  67. package/dist/lib/frontmatter.test.js +60 -0
  68. package/dist/lib/frontmatter.test.js.map +1 -0
  69. package/dist/lib/index.d.ts +8 -0
  70. package/dist/lib/index.d.ts.map +1 -1
  71. package/dist/lib/index.js +8 -0
  72. package/dist/lib/index.js.map +1 -1
  73. package/dist/lib/integration.test.d.ts +2 -0
  74. package/dist/lib/integration.test.d.ts.map +1 -0
  75. package/dist/lib/integration.test.js +445 -0
  76. package/dist/lib/integration.test.js.map +1 -0
  77. package/dist/lib/invoke.d.ts +23 -0
  78. package/dist/lib/invoke.d.ts.map +1 -0
  79. package/dist/lib/invoke.js +158 -0
  80. package/dist/lib/invoke.js.map +1 -0
  81. package/dist/lib/invoke.test.d.ts +2 -0
  82. package/dist/lib/invoke.test.d.ts.map +1 -0
  83. package/dist/lib/invoke.test.js +82 -0
  84. package/dist/lib/invoke.test.js.map +1 -0
  85. package/dist/lib/persona.d.ts +41 -0
  86. package/dist/lib/persona.d.ts.map +1 -1
  87. package/dist/lib/persona.js +233 -31
  88. package/dist/lib/persona.js.map +1 -1
  89. package/dist/lib/persona.test.d.ts +2 -0
  90. package/dist/lib/persona.test.d.ts.map +1 -0
  91. package/dist/lib/persona.test.js +324 -0
  92. package/dist/lib/persona.test.js.map +1 -0
  93. package/dist/lib/processor.d.ts +50 -0
  94. package/dist/lib/processor.d.ts.map +1 -0
  95. package/dist/lib/processor.js +135 -0
  96. package/dist/lib/processor.js.map +1 -0
  97. package/dist/lib/processor.test.d.ts +2 -0
  98. package/dist/lib/processor.test.d.ts.map +1 -0
  99. package/dist/lib/processor.test.js +134 -0
  100. package/dist/lib/processor.test.js.map +1 -0
  101. package/dist/lib/registry.d.ts +109 -0
  102. package/dist/lib/registry.d.ts.map +1 -0
  103. package/dist/lib/registry.js +192 -0
  104. package/dist/lib/registry.js.map +1 -0
  105. package/dist/lib/registry.test.d.ts +2 -0
  106. package/dist/lib/registry.test.d.ts.map +1 -0
  107. package/dist/lib/registry.test.js +236 -0
  108. package/dist/lib/registry.test.js.map +1 -0
  109. package/dist/lib/session-thread.d.ts +75 -0
  110. package/dist/lib/session-thread.d.ts.map +1 -0
  111. package/dist/lib/session-thread.js +132 -0
  112. package/dist/lib/session-thread.js.map +1 -0
  113. package/dist/lib/session-thread.test.d.ts +2 -0
  114. package/dist/lib/session-thread.test.d.ts.map +1 -0
  115. package/dist/lib/session-thread.test.js +235 -0
  116. package/dist/lib/session-thread.test.js.map +1 -0
  117. package/dist/lib/session.d.ts +150 -0
  118. package/dist/lib/session.d.ts.map +1 -0
  119. package/dist/lib/session.js +183 -0
  120. package/dist/lib/session.js.map +1 -0
  121. package/dist/lib/session.test.d.ts +2 -0
  122. package/dist/lib/session.test.d.ts.map +1 -0
  123. package/dist/lib/session.test.js +336 -0
  124. package/dist/lib/session.test.js.map +1 -0
  125. package/dist/lib/types/channel.d.ts +4 -0
  126. package/dist/lib/types/channel.d.ts.map +1 -1
  127. package/dist/lib/types/persona.d.ts +51 -0
  128. package/dist/lib/types/persona.d.ts.map +1 -1
  129. package/dist/lib/types/triggers.d.ts +11 -0
  130. package/dist/lib/types/triggers.d.ts.map +1 -1
  131. package/dist/lib/version.d.ts +26 -0
  132. package/dist/lib/version.d.ts.map +1 -0
  133. package/dist/lib/version.js +61 -0
  134. package/dist/lib/version.js.map +1 -0
  135. package/internal/personas/_base/PERSONA.md +251 -0
  136. package/internal/skills/channels/list/SKILL.md +76 -0
  137. package/internal/skills/channels/publish/SKILL.md +129 -0
  138. package/internal/skills/channels/read/SKILL.md +124 -0
  139. package/internal/skills/channels/reply/SKILL.md +138 -0
  140. package/package.json +7 -2
@@ -1,5 +1,5 @@
1
- import { readdir } from "node:fs/promises";
2
- import { requireConfig, listWorkflows, loadWorkflow, listPersonas, loadPersona, } from "../lib/index.js";
1
+ import { readFile } from "node:fs/promises";
2
+ import { requireConfig, listWorkflows, loadWorkflow, listPersonas, loadPersona, getPackageInfo, getRecentSessions as getRecentSessionsFromLib, writePidFile, removePidFile, } from "../lib/index.js";
3
3
  import { Scheduler } from "./lib/scheduler.js";
4
4
  import { Executor } from "./lib/executor.js";
5
5
  import { Watcher } from "./lib/watcher.js";
@@ -18,6 +18,8 @@ export class Daemon {
18
18
  running = false;
19
19
  port;
20
20
  watchEnabled;
21
+ /** Map of channel names to workflows that trigger on them */
22
+ channelTriggers = new Map();
21
23
  constructor(options = {}) {
22
24
  this.port = options.port ?? 3141;
23
25
  this.watchEnabled = options.watch ?? true;
@@ -45,7 +47,10 @@ export class Daemon {
45
47
  async start() {
46
48
  if (this.running)
47
49
  return;
48
- console.log("[daemon] Starting...");
50
+ // Get package info and format startup timestamp
51
+ const pkgInfo = await getPackageInfo();
52
+ const timestamp = new Date().toISOString();
53
+ console.log(`[${timestamp}] dot-agents v${pkgInfo.version} starting...`);
49
54
  // Load config if not provided
50
55
  if (!this.config) {
51
56
  this.config = await requireConfig();
@@ -53,23 +58,29 @@ export class Daemon {
53
58
  this.executor = new Executor(this.config);
54
59
  this.startTime = new Date();
55
60
  // Load and schedule workflows
61
+ console.log(`[${new Date().toISOString()}] Loading workflows from ${this.config.agentsDir}`);
56
62
  await this.loadWorkflows();
57
63
  // Start scheduler
58
64
  this.scheduler.start();
59
- console.log(`[scheduler] Started with ${this.scheduler.getJobCount()} jobs`);
65
+ const jobCount = this.scheduler.getJobCount();
66
+ const channelCount = this.channelTriggers.size;
67
+ console.log(`[${new Date().toISOString()}] Scheduler started with ${jobCount} scheduled job${jobCount !== 1 ? "s" : ""}` +
68
+ (channelCount > 0 ? `, ${channelCount} channel trigger${channelCount !== 1 ? "s" : ""}` : ""));
60
69
  // Start file watcher
61
70
  if (this.watchEnabled) {
62
- this.watcher = new Watcher(this.config.workflowsDir, this.config.personasDir);
71
+ this.watcher = new Watcher(this.config.workflowsDir, this.config.personasDir, this.config.channelsDir);
63
72
  this.setupWatcherEvents();
64
73
  this.watcher.start();
65
- console.log("[watcher] Watching for file changes");
74
+ console.log(`[${new Date().toISOString()}] File watcher started`);
66
75
  }
67
76
  // Start API server
68
77
  this.app = createApiServer(this);
69
78
  this.apiServer = await startApiServer(this.app, this.port);
70
- console.log(`[api] Listening on http://localhost:${this.port}`);
79
+ console.log(`[${new Date().toISOString()}] API listening on http://localhost:${this.port}`);
80
+ // Write PID file
81
+ await writePidFile(this.config.agentsDir, process.pid);
71
82
  this.running = true;
72
- console.log("[daemon] Ready");
83
+ console.log(`[${new Date().toISOString()}] Daemon ready`);
73
84
  }
74
85
  /**
75
86
  * Stop the daemon
@@ -90,6 +101,10 @@ export class Daemon {
90
101
  this.apiServer.close(() => resolve());
91
102
  });
92
103
  }
104
+ // Remove PID file
105
+ if (this.config) {
106
+ await removePidFile(this.config.agentsDir);
107
+ }
93
108
  this.running = false;
94
109
  console.log("[daemon] Stopped");
95
110
  }
@@ -98,11 +113,21 @@ export class Daemon {
98
113
  */
99
114
  async loadWorkflows() {
100
115
  const workflowPaths = await listWorkflows(this.config.workflowsDir);
116
+ // Clear existing channel triggers
117
+ this.channelTriggers.clear();
101
118
  for (const path of workflowPaths) {
102
119
  try {
103
120
  const workflow = await loadWorkflow(path);
104
121
  this.scheduler.addWorkflow(workflow);
105
- console.log(`[loaded] ${workflow.name}`);
122
+ // Register channel triggers
123
+ if (workflow.on?.channel) {
124
+ const channel = workflow.on.channel.channel;
125
+ this.channelTriggers.set(channel, workflow);
126
+ console.log(`[loaded] ${workflow.name} (triggers on ${channel})`);
127
+ }
128
+ else {
129
+ console.log(`[loaded] ${workflow.name}`);
130
+ }
106
131
  }
107
132
  catch (error) {
108
133
  console.error(`[error] Failed to load workflow at ${path}: ${error.message}`);
@@ -136,6 +161,12 @@ export class Daemon {
136
161
  try {
137
162
  const workflow = await loadWorkflow(path);
138
163
  this.scheduler.addWorkflow(workflow);
164
+ // Register channel trigger if present
165
+ if (workflow.on?.channel) {
166
+ const channel = workflow.on.channel.channel;
167
+ this.channelTriggers.set(channel, workflow);
168
+ console.log(`[watcher] Registered ${workflow.name} for channel ${channel}`);
169
+ }
139
170
  }
140
171
  catch (error) {
141
172
  console.error(`[error] Failed to load new workflow: ${error.message}`);
@@ -146,6 +177,19 @@ export class Daemon {
146
177
  try {
147
178
  const workflow = await loadWorkflow(path);
148
179
  this.scheduler.reloadWorkflow(workflow);
180
+ // Update channel trigger registration
181
+ // First, remove old registration for this workflow
182
+ for (const [channel, w] of this.channelTriggers.entries()) {
183
+ if (w.name === workflow.name) {
184
+ this.channelTriggers.delete(channel);
185
+ }
186
+ }
187
+ // Re-register if workflow has channel trigger
188
+ if (workflow.on?.channel) {
189
+ const channel = workflow.on.channel.channel;
190
+ this.channelTriggers.set(channel, workflow);
191
+ console.log(`[watcher] Updated ${workflow.name} for channel ${channel}`);
192
+ }
149
193
  }
150
194
  catch (error) {
151
195
  console.error(`[error] Failed to reload workflow: ${error.message}`);
@@ -157,20 +201,87 @@ export class Daemon {
157
201
  const parts = path.split("/");
158
202
  const name = parts[parts.length - 1];
159
203
  this.scheduler.removeWorkflow(name);
204
+ // Remove any channel trigger registration for this workflow
205
+ for (const [channel, w] of this.channelTriggers.entries()) {
206
+ if (w.name === name) {
207
+ this.channelTriggers.delete(channel);
208
+ console.log(`[watcher] Unregistered ${name} from channel ${channel}`);
209
+ }
210
+ }
211
+ });
212
+ // Handle DM messages to personas
213
+ this.watcher.on("dm:received", async ({ channel, messageId, messagePath }) => {
214
+ // Extract persona name from channel (e.g., "@channel-manager" -> "channel-manager")
215
+ const personaName = channel.slice(1);
216
+ console.log(`[dm] Received message for ${personaName}: ${messageId}`);
217
+ try {
218
+ // Read the message content
219
+ const messageContent = await readFile(messagePath, "utf-8");
220
+ // Strip frontmatter if present
221
+ let content = messageContent;
222
+ if (content.startsWith("---\n")) {
223
+ const endIndex = content.indexOf("\n---\n", 4);
224
+ if (endIndex !== -1) {
225
+ content = content.slice(endIndex + 5).trim();
226
+ }
227
+ }
228
+ // Invoke the persona with the message
229
+ console.log(`[dm] Invoking persona ${personaName}...`);
230
+ const result = await this.executor.invokePersona(personaName, content, {
231
+ source: channel,
232
+ context: { DM_MESSAGE_ID: messageId },
233
+ });
234
+ console.log(`[dm] ${personaName}: ${result.success ? "success" : "failure"} (${result.duration}ms)`);
235
+ }
236
+ catch (error) {
237
+ console.error(`[dm] Failed to invoke ${personaName}: ${error.message}`);
238
+ }
239
+ });
240
+ // Handle public channel messages -> trigger workflows
241
+ this.watcher.on("channel:message", async ({ channel, messageId, messagePath }) => {
242
+ // Check if any workflow is registered to trigger on this channel
243
+ const workflow = this.channelTriggers.get(channel);
244
+ if (!workflow) {
245
+ // No workflow registered for this channel - that's fine, not all channels trigger workflows
246
+ return;
247
+ }
248
+ console.log(`[channel] ${channel} message ${messageId} -> triggering ${workflow.name}`);
249
+ try {
250
+ // Read the message content
251
+ const messageContent = await readFile(messagePath, "utf-8");
252
+ // Strip frontmatter if present
253
+ let content = messageContent;
254
+ if (content.startsWith("---\n")) {
255
+ const endIndex = content.indexOf("\n---\n", 4);
256
+ if (endIndex !== -1) {
257
+ content = content.slice(endIndex + 5).trim();
258
+ }
259
+ }
260
+ // Merge trigger-specific inputs with the message content
261
+ const inputs = {
262
+ ...workflow.on?.channel?.inputs,
263
+ CHANNEL_MESSAGE: content,
264
+ CHANNEL_MESSAGE_ID: messageId,
265
+ CHANNEL_NAME: channel,
266
+ };
267
+ const result = await this.executor.run(workflow, { inputs });
268
+ console.log(`[channel] ${workflow.name}: ${result.success ? "success" : "failure"} (${result.duration}ms)`);
269
+ }
270
+ catch (error) {
271
+ console.error(`[channel] Failed to trigger ${workflow.name}: ${error.message}`);
272
+ }
160
273
  });
161
274
  }
162
275
  /**
163
276
  * Manually trigger a workflow
164
277
  */
165
278
  async triggerWorkflow(name, inputs) {
166
- const workflowPaths = await listWorkflows(this.config.workflowsDir);
167
- for (const path of workflowPaths) {
168
- const workflow = await loadWorkflow(path);
169
- if (workflow.name === name) {
170
- return this.executor.run(workflow, inputs);
171
- }
279
+ const workflows = await this.getWorkflows();
280
+ const workflow = workflows.find((w) => w.name === name);
281
+ if (!workflow) {
282
+ throw new Error(`Workflow not found: ${name}`);
172
283
  }
173
- throw new Error(`Workflow not found: ${name}`);
284
+ return this.executor.run(workflow, inputs);
174
285
  }
175
286
  /**
176
287
  * Get all workflows
@@ -214,26 +325,18 @@ export class Daemon {
214
325
  * Get recent session logs
215
326
  */
216
327
  async getRecentSessions(limit = 20) {
217
- const sessions = [];
218
- try {
219
- const files = await readdir(this.config.sessionsDir);
220
- const logFiles = files.filter((f) => f.endsWith(".log"));
221
- // Sort by filename (which includes timestamp)
222
- logFiles.sort().reverse();
223
- for (const file of logFiles.slice(0, limit)) {
224
- // Parse timestamp from filename: YYYYMMDD-HHMMSS.log
225
- const match = file.match(/^(\d{8})-(\d{6})\.log$/);
226
- if (match) {
227
- const [, date, time] = match;
228
- const timestamp = new Date(`${date.slice(0, 4)}-${date.slice(4, 6)}-${date.slice(6, 8)}T${time.slice(0, 2)}:${time.slice(2, 4)}:${time.slice(4, 6)}`);
229
- sessions.push({ filename: file, timestamp });
230
- }
231
- }
232
- }
233
- catch {
234
- // Sessions directory might not exist yet
328
+ if (!this.config) {
329
+ return [];
235
330
  }
236
- return sessions;
331
+ const libSessions = await getRecentSessionsFromLib(this.config.sessionsDir, limit);
332
+ // Convert to daemon SessionInfo format for API compatibility
333
+ return libSessions.map((s) => ({
334
+ id: s.id,
335
+ path: s.path,
336
+ timestamp: s.timestamp,
337
+ persona: s.metadata?.persona?.name,
338
+ workflow: s.metadata?.workflow?.name,
339
+ }));
237
340
  }
238
341
  /**
239
342
  * Get the scheduler instance
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ export interface ExecutionOptions {
8
8
  /** Run in interactive mode (requires persona to support it) */
9
9
  interactive?: boolean;
10
10
  }
11
+ /**
12
+ * Options for direct persona invocation
13
+ */
14
+ export interface InvokeOptions {
15
+ /** Optional context to include in the prompt */
16
+ context?: Record<string, string>;
17
+ /** Source of the invocation (e.g., DM channel name) */
18
+ source?: string;
19
+ }
11
20
  /**
12
21
  * Executor for running workflows
13
22
  */
@@ -19,8 +28,9 @@ export declare class Executor {
19
28
  */
20
29
  run(workflow: Workflow, options?: ExecutionOptions): Promise<ExecutionResult>;
21
30
  /**
22
- * Write execution log to sessions directory
31
+ * Invoke a persona directly with a message (no workflow required)
32
+ * Used for DM-triggered invocations
23
33
  */
24
- private writeSessionLog;
34
+ invokePersona(personaName: string, message: string, options?: InvokeOptions): Promise<ExecutionResult>;
25
35
  }
26
36
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/daemon/lib/executor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,eAAe,EACpB,KAAK,eAAe,EAOrB,MAAM,oBAAoB,CAAC;AAyD5B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE3C;;OAEG;IACG,GAAG,CACP,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAoJ3B;;OAEG;YACW,eAAe;CAmC9B"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/daemon/lib/executor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,eAAe,EACpB,KAAK,eAAe,EAWrB,MAAM,oBAAoB,CAAC;AAyD5B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE3C;;OAEG;IACG,GAAG,CACP,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IA4L3B;;;OAGG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,eAAe,CAAC;CAM5B"}
@@ -1,7 +1,7 @@
1
1
  import { execa } from "execa";
2
- import { mkdir, writeFile } from "node:fs/promises";
3
2
  import { join } from "node:path";
4
- import { resolvePersona, createExecutionContext, processTemplate, expandVariables, getInputDefaults, } from "../../lib/index.js";
3
+ import { hostname } from "node:os";
4
+ import { resolvePersona, createExecutionContext, processTemplate, expandVariables, getInputDefaults, createSession, finalizeSession, invokePersona as invokePersonaLib, } from "../../lib/index.js";
5
5
  /**
6
6
  * Parse duration string to milliseconds
7
7
  */
@@ -53,12 +53,35 @@ export class Executor {
53
53
  const startedAt = new Date();
54
54
  // Resolve persona
55
55
  const persona = await resolvePersona(join(this.config.personasDir, workflow.persona), this.config.personasDir);
56
+ // Determine working directory early (needed for session creation)
57
+ let workingDir = workflow.working_dir ?? process.cwd();
58
+ // Create session
59
+ const session = await createSession({
60
+ sessionsDir: this.config.sessionsDir,
61
+ runtime: {
62
+ hostname: hostname(),
63
+ executionMode: interactive ? "interactive" : "headless",
64
+ triggerType: "cron",
65
+ workingDir,
66
+ },
67
+ goal: `Run workflow: ${workflow.name}`,
68
+ persona: {
69
+ name: persona.name,
70
+ inheritanceChain: persona.inheritanceChain,
71
+ },
72
+ workflow: {
73
+ name: workflow.name,
74
+ path: workflow.path,
75
+ inputs: inputOverrides,
76
+ },
77
+ });
56
78
  const context = createExecutionContext({
57
79
  WORKFLOW_NAME: workflow.name,
58
80
  WORKFLOW_DIR: workflow.path,
59
81
  PERSONA_NAME: persona.name,
60
82
  PERSONA_DIR: persona.path,
61
83
  AGENTS_DIR: this.config.agentsDir,
84
+ SESSION_DIR: session.path,
62
85
  });
63
86
  // Merge inputs
64
87
  const inputs = {
@@ -77,8 +100,7 @@ export class Executor {
77
100
  env[key] = expandVariables(value, context, env);
78
101
  }
79
102
  }
80
- // Working directory
81
- let workingDir = workflow.working_dir ?? process.cwd();
103
+ // Expand working directory variables
82
104
  workingDir = expandVariables(workingDir, { ...context, ...inputs }, env);
83
105
  // Build prompt
84
106
  const prompt = buildPrompt(workflow, persona, context, inputs);
@@ -92,7 +114,7 @@ export class Executor {
92
114
  : persona.commands.headless;
93
115
  if (!cmds) {
94
116
  const endedAt = new Date();
95
- return {
117
+ const result = {
96
118
  success: false,
97
119
  exitCode: 1,
98
120
  stdout: "",
@@ -103,6 +125,15 @@ export class Executor {
103
125
  endedAt,
104
126
  error: `Unsupported execution mode: ${interactive ? "interactive" : "headless"}`,
105
127
  };
128
+ // Finalize session for error
129
+ await finalizeSession(session, {
130
+ success: result.success,
131
+ exitCode: result.exitCode,
132
+ duration: result.duration,
133
+ error: result.error,
134
+ stderr: result.stderr,
135
+ });
136
+ return result;
106
137
  }
107
138
  // Try each command
108
139
  let lastError = null;
@@ -151,39 +182,26 @@ export class Executor {
151
182
  error: lastError?.message,
152
183
  };
153
184
  }
154
- // Write session log
155
- await this.writeSessionLog(workflow.name, persona.name, result);
185
+ // Finalize session
186
+ await finalizeSession(session, {
187
+ success: result.success,
188
+ exitCode: result.exitCode,
189
+ duration: result.duration,
190
+ error: result.error,
191
+ stdout: result.stdout,
192
+ stderr: result.stderr,
193
+ });
156
194
  return result;
157
195
  }
158
196
  /**
159
- * Write execution log to sessions directory
197
+ * Invoke a persona directly with a message (no workflow required)
198
+ * Used for DM-triggered invocations
160
199
  */
161
- async writeSessionLog(workflowName, personaName, result) {
162
- await mkdir(this.config.sessionsDir, { recursive: true });
163
- const timestamp = result.startedAt
164
- .toISOString()
165
- .replace(/[-:]/g, "")
166
- .replace("T", "-")
167
- .split(".")[0];
168
- const filename = `${timestamp}.log`;
169
- const logPath = join(this.config.sessionsDir, filename);
170
- const logContent = `Run ID: ${result.runId}
171
- Workflow: ${workflowName}
172
- Persona: ${personaName}
173
- Started: ${result.startedAt.toISOString()}
174
- Ended: ${result.endedAt.toISOString()}
175
- Duration: ${result.duration}ms
176
- Exit Code: ${result.exitCode}
177
- Success: ${result.success}
178
- ${result.error ? `Error: ${result.error}\n` : ""}
179
- --- STDOUT ---
180
- ${result.stdout}
181
-
182
- --- STDERR ---
183
- ${result.stderr}
184
- `;
185
- await writeFile(logPath, logContent, "utf-8");
186
- return logPath;
200
+ async invokePersona(personaName, message, options = {}) {
201
+ return invokePersonaLib(this.config, personaName, message, {
202
+ source: options.source ?? "dm",
203
+ context: options.context,
204
+ });
187
205
  }
188
206
  }
189
207
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/daemon/lib/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/daemon/lib/executor.ts"],"names":[],"mappings":"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"}
@@ -21,17 +21,29 @@ export interface WatcherEvents {
21
21
  "persona:removed": {
22
22
  path: string;
23
23
  };
24
+ "dm:received": {
25
+ channel: string;
26
+ messageId: string;
27
+ messagePath: string;
28
+ };
29
+ "channel:message": {
30
+ channel: string;
31
+ messageId: string;
32
+ messagePath: string;
33
+ };
24
34
  }
25
35
  /**
26
- * File watcher for workflows and personas
36
+ * File watcher for workflows, personas, and channels
27
37
  */
28
38
  export declare class Watcher extends EventEmitter {
29
39
  private workflowsDir;
30
40
  private personasDir;
41
+ private channelsDir?;
31
42
  private workflowWatcher;
32
43
  private personaWatcher;
44
+ private channelWatcher;
33
45
  private running;
34
- constructor(workflowsDir: string, personasDir: string);
46
+ constructor(workflowsDir: string, personasDir: string, channelsDir?: string | undefined);
35
47
  /**
36
48
  * Start watching for file changes
37
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/daemon/lib/watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IAMrC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,OAAO,CAAS;gBAGd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM;IAK7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAyCb;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/daemon/lib/watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IAOrC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW,CAAC;IARtB,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,OAAO,CAAS;gBAGd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,YAAA;IAK9B;;OAEG;IACH,KAAK,IAAI,IAAI;IA8Eb;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,19 +1,22 @@
1
1
  import { watch } from "chokidar";
2
2
  import { EventEmitter } from "node:events";
3
- import { dirname } from "node:path";
3
+ import { dirname, basename } from "node:path";
4
4
  /**
5
- * File watcher for workflows and personas
5
+ * File watcher for workflows, personas, and channels
6
6
  */
7
7
  export class Watcher extends EventEmitter {
8
8
  workflowsDir;
9
9
  personasDir;
10
+ channelsDir;
10
11
  workflowWatcher = null;
11
12
  personaWatcher = null;
13
+ channelWatcher = null;
12
14
  running = false;
13
- constructor(workflowsDir, personasDir) {
15
+ constructor(workflowsDir, personasDir, channelsDir) {
14
16
  super();
15
17
  this.workflowsDir = workflowsDir;
16
18
  this.personasDir = personasDir;
19
+ this.channelsDir = channelsDir;
17
20
  }
18
21
  /**
19
22
  * Start watching for file changes
@@ -50,6 +53,39 @@ export class Watcher extends EventEmitter {
50
53
  this.personaWatcher.on("unlink", (path) => {
51
54
  this.emit("persona:removed", { path: dirname(path) });
52
55
  });
56
+ // Watch channels for new messages (both DM @* and public #*)
57
+ if (this.channelsDir) {
58
+ // Watch the channels directory for new message.md files
59
+ // Using directory watch instead of glob because @* patterns are unreliable
60
+ this.channelWatcher = watch(this.channelsDir, {
61
+ ignoreInitial: true,
62
+ persistent: true,
63
+ depth: 3, // channels/{@name|#name}/message-id/message.md
64
+ });
65
+ this.channelWatcher.on("add", (path) => {
66
+ // Only process message.md files
67
+ if (!path.endsWith("/message.md")) {
68
+ return;
69
+ }
70
+ // Path: {channelsDir}/{@persona|#channel}/{message-id}/message.md
71
+ const messageDir = dirname(path);
72
+ const messageId = basename(messageDir);
73
+ const channelDir = dirname(messageDir);
74
+ const channel = basename(channelDir);
75
+ // Emit appropriate event based on channel type
76
+ if (channel.startsWith("@")) {
77
+ // DM channel -> invoke persona
78
+ this.emit("dm:received", { channel, messageId, messagePath: path });
79
+ }
80
+ else if (channel.startsWith("#")) {
81
+ // Public channel -> trigger workflow
82
+ this.emit("channel:message", { channel, messageId, messagePath: path });
83
+ }
84
+ });
85
+ this.channelWatcher.on("error", (error) => {
86
+ console.error(`[watcher] Channel watcher error: ${error.message}`);
87
+ });
88
+ }
53
89
  }
54
90
  /**
55
91
  * Stop watching
@@ -66,6 +102,10 @@ export class Watcher extends EventEmitter {
66
102
  await this.personaWatcher.close();
67
103
  this.personaWatcher = null;
68
104
  }
105
+ if (this.channelWatcher) {
106
+ await this.channelWatcher.close();
107
+ this.channelWatcher = null;
108
+ }
69
109
  }
70
110
  /**
71
111
  * Check if watcher is running
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/daemon/lib/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/daemon/lib/watcher.ts"],"names":[],"mappings":"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"}