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.
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/runner.d.ts.map +1 -1
- package/dist/cli/lib/runner.js +36 -18
- package/dist/cli/lib/runner.js.map +1 -1
- package/dist/daemon/api/server.d.ts.map +1 -1
- package/dist/daemon/api/server.js +4 -2
- package/dist/daemon/api/server.js.map +1 -1
- package/dist/daemon/daemon.d.ts +2 -0
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +121 -16
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/lib/executor.d.ts +14 -0
- package/dist/daemon/lib/executor.d.ts.map +1 -1
- package/dist/daemon/lib/executor.js +105 -0
- package/dist/daemon/lib/executor.js.map +1 -1
- package/dist/daemon/lib/watcher.d.ts +14 -2
- package/dist/daemon/lib/watcher.d.ts.map +1 -1
- package/dist/daemon/lib/watcher.js +43 -3
- package/dist/daemon/lib/watcher.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/persona.d.ts +20 -0
- package/dist/lib/persona.d.ts.map +1 -1
- package/dist/lib/persona.js +71 -14
- package/dist/lib/persona.js.map +1 -1
- package/dist/lib/types/persona.d.ts +8 -0
- package/dist/lib/types/persona.d.ts.map +1 -1
- package/dist/lib/types/triggers.d.ts +11 -0
- package/dist/lib/types/triggers.d.ts.map +1 -1
- package/dist/lib/version.d.ts +26 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +61 -0
- package/dist/lib/version.js.map +1 -0
- package/internal/personas/_base/PERSONA.md +68 -0
- package/internal/skills/channels/publish/SKILL.md +129 -0
- package/internal/skills/channels/read/SKILL.md +124 -0
- package/internal/skills/channels/reply/SKILL.md +138 -0
- 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.
|
|
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
|
],
|