dot-agents 0.4.1 → 0.5.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 (41) hide show
  1. package/dist/cli/index.js +2 -1
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/cli/lib/runner.d.ts.map +1 -1
  4. package/dist/cli/lib/runner.js +36 -18
  5. package/dist/cli/lib/runner.js.map +1 -1
  6. package/dist/daemon/api/server.d.ts.map +1 -1
  7. package/dist/daemon/api/server.js +4 -2
  8. package/dist/daemon/api/server.js.map +1 -1
  9. package/dist/daemon/daemon.d.ts +2 -0
  10. package/dist/daemon/daemon.d.ts.map +1 -1
  11. package/dist/daemon/daemon.js +121 -16
  12. package/dist/daemon/daemon.js.map +1 -1
  13. package/dist/daemon/lib/executor.d.ts +14 -0
  14. package/dist/daemon/lib/executor.d.ts.map +1 -1
  15. package/dist/daemon/lib/executor.js +105 -0
  16. package/dist/daemon/lib/executor.js.map +1 -1
  17. package/dist/daemon/lib/watcher.d.ts +14 -2
  18. package/dist/daemon/lib/watcher.d.ts.map +1 -1
  19. package/dist/daemon/lib/watcher.js +43 -3
  20. package/dist/daemon/lib/watcher.js.map +1 -1
  21. package/dist/lib/index.d.ts +1 -0
  22. package/dist/lib/index.d.ts.map +1 -1
  23. package/dist/lib/index.js +1 -0
  24. package/dist/lib/index.js.map +1 -1
  25. package/dist/lib/persona.d.ts +20 -0
  26. package/dist/lib/persona.d.ts.map +1 -1
  27. package/dist/lib/persona.js +71 -14
  28. package/dist/lib/persona.js.map +1 -1
  29. package/dist/lib/types/persona.d.ts +8 -0
  30. package/dist/lib/types/persona.d.ts.map +1 -1
  31. package/dist/lib/types/triggers.d.ts +11 -0
  32. package/dist/lib/types/triggers.d.ts.map +1 -1
  33. package/dist/lib/version.d.ts +26 -0
  34. package/dist/lib/version.d.ts.map +1 -0
  35. package/dist/lib/version.js +61 -0
  36. package/dist/lib/version.js.map +1 -0
  37. package/internal/personas/_base/PERSONA.md +68 -0
  38. package/internal/skills/channels/publish/SKILL.md +129 -0
  39. package/internal/skills/channels/read/SKILL.md +124 -0
  40. package/internal/skills/channels/reply/SKILL.md +138 -0
  41. package/package.json +2 -1
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: channels/publish
3
+ description: Publish a message to a channel or DM. Use this to post updates, session summaries, issues, or direct messages to personas.
4
+ license: MIT
5
+ ---
6
+
7
+ # Publish to Channel
8
+
9
+ Post a message to a public channel (`#channel-name`) or direct message a persona (`@persona-name`).
10
+
11
+ ## When to Use This Skill
12
+
13
+ Use this skill when:
14
+
15
+ - Posting a session summary to `#sessions`
16
+ - Reporting an issue or blocker to `#issues`
17
+ - Sending a direct message to another persona
18
+ - Escalating to `@human` for human intervention
19
+ - Broadcasting status updates or notifications
20
+
21
+ ## Process
22
+
23
+ ### Step 1: Determine Channel
24
+
25
+ Choose the appropriate channel:
26
+
27
+ | Channel | Purpose |
28
+ | --------------- | ---------------------------------------- |
29
+ | `#sessions` | Session summaries and completion reports |
30
+ | `#issues` | Errors, blockers, and problems |
31
+ | `@human` | Human escalation (use sparingly) |
32
+ | `@persona-name` | Direct message to another persona |
33
+ | `#custom` | Any custom channel you've created |
34
+
35
+ ### Step 2: Compose Message
36
+
37
+ Format your message appropriately for the channel type.
38
+
39
+ ### Step 3: Publish
40
+
41
+ ```bash
42
+ npx dot-agents channels publish "<channel>" "<message>"
43
+ ```
44
+
45
+ For multi-line messages, use a heredoc:
46
+
47
+ ```bash
48
+ npx dot-agents channels publish "<channel>" "$(cat <<'EOF'
49
+ Your multi-line
50
+ message here
51
+ EOF
52
+ )"
53
+ ```
54
+
55
+ Optional flags:
56
+
57
+ - `--from <name>` - Set the sender name (defaults to current persona)
58
+ - `--tags <tag1,tag2>` - Add tags to the message
59
+
60
+ ## Examples
61
+
62
+ ### Example 1: Session Summary
63
+
64
+ ```bash
65
+ npx dot-agents channels publish "#sessions" "$(cat <<'EOF'
66
+ **Workflow:** morning-paper
67
+ **Status:** success
68
+ **Duration:** 2m 30s
69
+
70
+ Generated morning paper PDF with calendar events and weather.
71
+ Delivered to Boox device successfully.
72
+ EOF
73
+ )"
74
+ ```
75
+
76
+ ### Example 2: Report an Issue
77
+
78
+ ```bash
79
+ npx dot-agents channels publish "#issues" "$(cat <<'EOF'
80
+ **Issue:** Calendar API returned empty response
81
+ **Impact:** Morning paper missing today's events
82
+ **Context:** Calendar skill executed but returned no events despite events existing
83
+
84
+ **To Fix:**
85
+ 1. Check Calendar permissions in System Settings
86
+ 2. Run `dot-agents workflow run test-osx-permissions`
87
+
88
+ **Blocked:** no
89
+ EOF
90
+ )"
91
+ ```
92
+
93
+ ### Example 3: DM to Another Persona
94
+
95
+ ```bash
96
+ npx dot-agents channels publish "@channel-manager" "Please archive inactive channels older than 30 days"
97
+ ```
98
+
99
+ ### Example 4: Human Escalation
100
+
101
+ ```bash
102
+ npx dot-agents channels publish "@human" "$(cat <<'EOF'
103
+ Need macOS permission grant for Calendar access.
104
+
105
+ Please open System Settings > Privacy & Security > Calendars
106
+ and enable access for dot-agents.
107
+ EOF
108
+ )"
109
+ ```
110
+
111
+ ### Example 5: Message with Tags
112
+
113
+ ```bash
114
+ npx dot-agents channels publish "#issues" "Build failed: missing dependency" --tags "urgent,build"
115
+ ```
116
+
117
+ ## Best Practices
118
+
119
+ - Keep messages concise but complete
120
+ - Use structured formats for issues (title, impact, context, fix steps)
121
+ - Include relevant context (workflow name, duration, error messages)
122
+ - Use tags to categorize messages for filtering
123
+ - Reserve `@human` for genuine blockers requiring human action
124
+
125
+ ## Error Handling
126
+
127
+ **Channel doesn't exist**: The channel will be created automatically on first publish.
128
+
129
+ **Permission denied**: Ensure you're running with appropriate permissions (`--permission-mode bypassPermissions`).
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: channels/read
3
+ description: Read messages from a channel. Use this to check for new messages, review issue history, or catch up on session logs.
4
+ license: MIT
5
+ ---
6
+
7
+ # Read Channel Messages
8
+
9
+ Retrieve and display messages from a public channel or DM inbox.
10
+
11
+ ## When to Use This Skill
12
+
13
+ Use this skill when:
14
+
15
+ - Checking for new issues or blockers in `#issues`
16
+ - Reviewing recent session logs in `#sessions`
17
+ - Reading your DM inbox (`@your-persona-name`)
18
+ - Catching up on channel activity
19
+ - Looking for messages with specific tags
20
+
21
+ ## Process
22
+
23
+ ### Step 1: Identify Channel
24
+
25
+ Determine which channel to read:
26
+
27
+ - `#sessions` - Session summaries
28
+ - `#issues` - Reported problems
29
+ - `@persona-name` - DMs sent to a persona
30
+ - Any custom channel
31
+
32
+ ### Step 2: Read Messages
33
+
34
+ ```bash
35
+ npx dot-agents channels read "<channel>"
36
+ ```
37
+
38
+ Optional flags:
39
+
40
+ - `--since <duration>` - Only messages from last N hours/days (e.g., `24h`, `7d`)
41
+ - `--limit <n>` - Maximum number of messages to return
42
+ - `--tags <tag1,tag2>` - Filter by tags
43
+
44
+ ### Step 3: Process Results
45
+
46
+ Messages are returned in chronological order with metadata:
47
+
48
+ - Message ID
49
+ - Timestamp
50
+ - Sender (from)
51
+ - Content
52
+ - Reply count (if any)
53
+
54
+ ## Examples
55
+
56
+ ### Example 1: Read Recent Issues
57
+
58
+ ```bash
59
+ npx dot-agents channels read "#issues" --since 24h
60
+ ```
61
+
62
+ Output:
63
+
64
+ ```text
65
+ #issues (2 messages)
66
+
67
+ [2025-12-15T10:30:00Z] from: morning-paper
68
+ **Issue:** Calendar API timeout
69
+ **Impact:** No events in morning paper
70
+ ...
71
+ (1 reply)
72
+
73
+ [2025-12-15T14:45:00Z] from: inbox-processor
74
+ **Issue:** Missing attachment in email
75
+ ...
76
+ ```
77
+
78
+ ### Example 2: Check Your DM Inbox
79
+
80
+ ```bash
81
+ npx dot-agents channels read "@channel-manager"
82
+ ```
83
+
84
+ ### Example 3: Filter by Tags
85
+
86
+ ```bash
87
+ npx dot-agents channels read "#issues" --tags "urgent"
88
+ ```
89
+
90
+ ### Example 4: Limit Results
91
+
92
+ ```bash
93
+ npx dot-agents channels read "#sessions" --limit 5
94
+ ```
95
+
96
+ ### Example 5: Read All Messages from Last Week
97
+
98
+ ```bash
99
+ npx dot-agents channels read "#sessions" --since 7d
100
+ ```
101
+
102
+ ## Best Practices
103
+
104
+ - Use `--since` to avoid processing old, irrelevant messages
105
+ - Check `#issues` regularly for unresolved blockers
106
+ - Look for reply counts to see if issues have been addressed
107
+ - Use tags to filter for specific categories of messages
108
+
109
+ ## Output Format
110
+
111
+ Messages are displayed with:
112
+
113
+ - Timestamp in ISO 8601 format
114
+ - Sender name
115
+ - Full message content
116
+ - Reply count indicator
117
+
118
+ Empty channels return a message indicating no messages found.
119
+
120
+ ## Error Handling
121
+
122
+ **Channel not found**: Returns empty result (channel may not exist yet).
123
+
124
+ **No messages in time range**: Returns message indicating no messages match criteria.
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: channels/reply
3
+ description: Reply to a specific message in a channel. Use this to respond to issues, answer questions, or continue threaded conversations.
4
+ license: MIT
5
+ ---
6
+
7
+ # Reply to Message
8
+
9
+ Post a reply to an existing message, creating a threaded conversation.
10
+
11
+ ## When to Use This Skill
12
+
13
+ Use this skill when:
14
+
15
+ - Responding to a reported issue with a fix or update
16
+ - Answering a question in a DM
17
+ - Providing status updates on an ongoing issue
18
+ - Continuing a conversation thread
19
+ - Acknowledging receipt of a message
20
+
21
+ ## Process
22
+
23
+ ### Step 1: Identify the Message
24
+
25
+ You need the message ID to reply to. Get this from:
26
+
27
+ - The output of `channels read`
28
+ - The message path (e.g., `2025-12-15T10:30:00.000Z`)
29
+
30
+ ### Step 2: Compose Reply
31
+
32
+ Write your response to the original message.
33
+
34
+ ### Step 3: Post Reply
35
+
36
+ ```bash
37
+ npx dot-agents channels reply "<channel>" "<message-id>" "<reply>"
38
+ ```
39
+
40
+ For multi-line replies:
41
+
42
+ ```bash
43
+ npx dot-agents channels reply "<channel>" "<message-id>" "$(cat <<'EOF'
44
+ Your multi-line
45
+ reply here
46
+ EOF
47
+ )"
48
+ ```
49
+
50
+ ## Examples
51
+
52
+ ### Example 1: Reply to an Issue
53
+
54
+ Original message in `#issues`:
55
+
56
+ ```text
57
+ [2025-12-15T10:30:00.000Z] from: morning-paper
58
+ **Issue:** Calendar API timeout
59
+ ```
60
+
61
+ Reply:
62
+
63
+ ```bash
64
+ npx dot-agents channels reply "#issues" "2025-12-15T10:30:00.000Z" "$(cat <<'EOF'
65
+ **Status:** Resolved
66
+
67
+ Root cause: Network timeout due to VPN disconnection.
68
+ Fix: Added retry logic with exponential backoff.
69
+
70
+ Verified working in subsequent run.
71
+ EOF
72
+ )"
73
+ ```
74
+
75
+ ### Example 2: Quick Acknowledgment
76
+
77
+ ```bash
78
+ npx dot-agents channels reply "@human" "2025-12-15T14:00:00.000Z" "Understood. Will proceed with the archive operation."
79
+ ```
80
+
81
+ ### Example 3: Request More Information
82
+
83
+ ```bash
84
+ npx dot-agents channels reply "#issues" "2025-12-15T09:00:00.000Z" "$(cat <<'EOF'
85
+ Need more details to investigate:
86
+
87
+ 1. Which workflow triggered this?
88
+ 2. What was the exact error message?
89
+ 3. Has this happened before?
90
+ EOF
91
+ )"
92
+ ```
93
+
94
+ ### Example 4: Status Update on Ongoing Issue
95
+
96
+ ```bash
97
+ npx dot-agents channels reply "#issues" "2025-12-15T08:00:00.000Z" "$(cat <<'EOF'
98
+ **Update:** Still investigating
99
+
100
+ Tried:
101
+ - Restarting daemon (no effect)
102
+ - Clearing cache (no effect)
103
+
104
+ Next steps:
105
+ - Check system logs
106
+ - Test with fresh config
107
+ EOF
108
+ )"
109
+ ```
110
+
111
+ ## Best Practices
112
+
113
+ - Keep replies focused on the original topic
114
+ - Use structured formats for status updates
115
+ - Reference specific actions taken or planned
116
+ - Close the loop on issues when resolved
117
+ - Use replies rather than new messages for ongoing threads
118
+
119
+ ## Thread Structure
120
+
121
+ Replies create a nested structure:
122
+
123
+ ```text
124
+ channels/#issues/
125
+ 2025-12-15T10:30:00.000Z/
126
+ message.md # Original message
127
+ replies/
128
+ 2025-12-15T11:00:00.000Z/
129
+ message.md # First reply
130
+ 2025-12-15T11:30:00.000Z/
131
+ message.md # Second reply
132
+ ```
133
+
134
+ ## Error Handling
135
+
136
+ **Message not found**: Verify the channel and message ID are correct.
137
+
138
+ **Invalid message ID format**: Use the full ISO 8601 timestamp from the original message.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dot-agents",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "A framework for building agentic workflows with personas and scheduled execution",
5
5
  "type": "module",
6
6
  "main": "./dist/lib/index.js",
@@ -28,6 +28,7 @@
28
28
  },
29
29
  "files": [
30
30
  "dist",
31
+ "internal",
31
32
  "README.md",
32
33
  "LICENSE"
33
34
  ],