spidersan 0.3.0 → 0.3.3

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 (51) hide show
  1. package/README.md +7 -43
  2. package/dist/bin/spidersan.d.ts.map +1 -1
  3. package/dist/bin/spidersan.js +2 -1
  4. package/dist/bin/spidersan.js.map +1 -1
  5. package/dist/commands/demo.d.ts.map +1 -1
  6. package/dist/commands/demo.js +24 -19
  7. package/dist/commands/demo.js.map +1 -1
  8. package/dist/commands/inbox.d.ts.map +1 -1
  9. package/dist/commands/inbox.js +81 -27
  10. package/dist/commands/inbox.js.map +1 -1
  11. package/dist/commands/index.d.ts +1 -0
  12. package/dist/commands/index.d.ts.map +1 -1
  13. package/dist/commands/index.js +1 -0
  14. package/dist/commands/index.js.map +1 -1
  15. package/dist/commands/msg-read.d.ts.map +1 -1
  16. package/dist/commands/msg-read.js +59 -34
  17. package/dist/commands/msg-read.js.map +1 -1
  18. package/dist/commands/semantic.d.ts.map +1 -1
  19. package/dist/commands/semantic.js.map +1 -1
  20. package/dist/commands/send.d.ts.map +1 -1
  21. package/dist/commands/send.js +53 -66
  22. package/dist/commands/send.js.map +1 -1
  23. package/dist/commands/welcome.d.ts +3 -0
  24. package/dist/commands/welcome.d.ts.map +1 -0
  25. package/dist/commands/welcome.js +92 -0
  26. package/dist/commands/welcome.js.map +1 -0
  27. package/dist/storage/git-messages.d.ts +53 -0
  28. package/dist/storage/git-messages.d.ts.map +1 -0
  29. package/dist/storage/git-messages.js +372 -0
  30. package/dist/storage/git-messages.js.map +1 -0
  31. package/dist/storage/index.d.ts +5 -0
  32. package/dist/storage/index.d.ts.map +1 -1
  33. package/dist/storage/index.js +7 -0
  34. package/dist/storage/index.js.map +1 -1
  35. package/dist/storage/local-messages.d.ts +37 -0
  36. package/dist/storage/local-messages.d.ts.map +1 -0
  37. package/dist/storage/local-messages.js +151 -0
  38. package/dist/storage/local-messages.js.map +1 -0
  39. package/dist/storage/message-adapter.d.ts +86 -0
  40. package/dist/storage/message-adapter.d.ts.map +1 -0
  41. package/dist/storage/message-adapter.js +28 -0
  42. package/dist/storage/message-adapter.js.map +1 -0
  43. package/dist/storage/message-factory.d.ts +36 -0
  44. package/dist/storage/message-factory.d.ts.map +1 -0
  45. package/dist/storage/message-factory.js +99 -0
  46. package/dist/storage/message-factory.js.map +1 -0
  47. package/dist/storage/mycmail-adapter.d.ts +38 -0
  48. package/dist/storage/mycmail-adapter.d.ts.map +1 -0
  49. package/dist/storage/mycmail-adapter.js +297 -0
  50. package/dist/storage/mycmail-adapter.js.map +1 -0
  51. package/package.json +2 -2
package/README.md CHANGED
@@ -1,9 +1,3 @@
1
- ---
2
- aliases: ["Spidersan Overview"]
3
- tags: [agent/myceliumail, type/readme]
4
- ---
5
-
6
- <div align="center">
7
1
 
8
2
  # šŸ•·ļø Spidersan
9
3
 
@@ -16,12 +10,13 @@ tags: [agent/myceliumail, type/readme]
16
10
 
17
11
  ![Demo](./assets/demo.gif)
18
12
 
19
- [Quick Start](#-quick-start) • [Features](#-features) • [Documentation](#-documentation) • [Pro](#-pro)
13
+ [Quick Start](#-quick-start) • [Features](#-features) • [Documentation](#-documentation)
20
14
 
21
15
  </div>
22
16
 
23
17
  ---
24
18
 
19
+
25
20
  ## šŸŽÆ The Problem
26
21
 
27
22
  **10 AI agents. 1 file. 51 minutes of chaos.**
@@ -147,55 +142,25 @@ spidersan rescue-status
147
142
 
148
143
  **Perfect for:** Post-hackathon cleanup, onboarding to chaotic repos, AI agent disasters.
149
144
 
150
- ### Pro (License Required)
151
-
152
- | Feature | Description |
153
- |---------|-------------|
154
- | **Unlimited Branches** | No limit on concurrent registered branches |
155
- | **Conflict Prediction** | Proactive detection before conflicts occur |
156
- | **MCP Server** | Model Context Protocol integration for AI agents |
157
-
158
145
  ---
159
146
 
160
147
  ## šŸ“– Documentation
161
148
 
162
149
  - [One Pager](docs/ONE_PAGER.md) - Product overview
163
- - [Implementation Plan](docs/implementation_plan.md) - Technical architecture
164
150
  - [Data Collection](docs/DATA_COLLECTION.md) - Privacy & data practices
165
151
 
166
152
  ---
167
153
 
168
- ## šŸ’Ž Pro
169
154
 
170
- Spidersan Pro unlocks advanced features for teams running multiple AI agents.
171
-
172
- | Feature | Free | Pro ($9/mo) |
173
- |---------|------|-------------|
174
- | Core commands | āœ… All | āœ… All |
175
- | Concurrent branches | 5 max | āœ… Unlimited |
176
- | MCP Server | āŒ | āœ… |
177
- | Conflict prediction | āŒ | āœ… Coming soon |
178
- | Priority support | āŒ | āœ… |
179
-
180
- **Activate Pro:**
181
- ```bash
182
- spidersan activate <your-license-key>
183
- spidersan status # Check your plan
184
- ```
185
-
186
- Get a license: [spidersan.dev/pro](https://spidersan.dev/pro)
187
-
188
- > **Note:** One Pro license unlocks the entire Treebird ecosystem (Spidersan + Myceliumail).
189
-
190
- ---
191
155
 
192
156
  ## šŸ—£ļø Feedback & Support
193
157
 
194
158
  We're building this in public and want to hear from you!
195
159
 
196
- - **Issues & Features:** [GitHub Issues](https://github.com/treebird7/Spidersan/issues)
197
- - **Email:** treebird7@proton.me
198
- - **Twitter/X:** [@treebird7](https://twitter.com/treebird7)
160
+ - **Issues & Features:** [GitHub Issues](https://github.com/treebird7/spidersan-oss/issues)
161
+ - **Email:** treebird@treebird.dev
162
+ - **Site:** [Treebird](https://treebird.uk)
163
+ - **Twitter/X:** [@Treebird_Dev](https://twitter.com/Treebird_Dev)
199
164
 
200
165
  Tell us what's working, what's broken, and what you'd love to see next.
201
166
 
@@ -210,7 +175,6 @@ Contributions welcome! Please read our contributing guidelines first.
210
175
  ## šŸ“„ License
211
176
 
212
177
  - **Core CLI**: [MIT License](LICENSE.md)
213
- - **Pro Features**: [Business Source License 1.1](LICENSE.md)
214
178
 
215
179
  ---
216
180
 
@@ -218,6 +182,6 @@ Contributions welcome! Please read our contributing guidelines first.
218
182
 
219
183
  **Made with šŸ•·ļø for AI-first development teams**
220
184
 
221
- Part of the [Treebird Ecosystem](https://github.com/treebird7) 🌲
185
+ Part of the [Treebird Ecosystem](https://treebird.uk) 🌲
222
186
 
223
187
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"spidersan.d.ts","sourceRoot":"","sources":["../../src/bin/spidersan.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,eAAe,CAAC;AA8EvB,eAAO,MAAM,WAAW,eAAkB,CAAC"}
1
+ {"version":3,"file":"spidersan.d.ts","sourceRoot":"","sources":["../../src/bin/spidersan.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,eAAe,CAAC;AA+EvB,eAAO,MAAM,WAAW,eAAkB,CAAC"}
@@ -25,7 +25,7 @@ logCommand,
25
25
  // Daemon mode
26
26
  watchCommand, radarCommand,
27
27
  // Demo/Onboarding
28
- demoCommand,
28
+ welcomeCommand, demoCommand,
29
29
  // MCP Health
30
30
  mcpHealthCommand, mcpRestartCommand,
31
31
  // Task Torrenting
@@ -130,6 +130,7 @@ program.addCommand(logCommand);
130
130
  program.addCommand(watchCommand);
131
131
  program.addCommand(radarCommand);
132
132
  // Demo/Onboarding
133
+ program.addCommand(welcomeCommand);
133
134
  program.addCommand(demoCommand);
134
135
  // MCP Health
135
136
  program.addCommand(mcpHealthCommand);
@@ -1 +1 @@
1
- {"version":3,"file":"spidersan.js","sourceRoot":"","sources":["../../src/bin/spidersan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spidersan.js","sourceRoot":"","sources":["../../src/bin/spidersan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4HpC,eAAO,MAAM,WAAW,SAIlB,CAAC"}
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiIpC,eAAO,MAAM,WAAW,SAIlB,CAAC"}
@@ -23,59 +23,64 @@ ${c.bright}${c.magenta}╔══════════════════
23
23
  ā•‘ ā•‘
24
24
  ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•${c.reset}
25
25
  `);
26
- await sleep(500);
26
+ await sleep(1000);
27
27
  // Scenario setup
28
28
  console.log(`${c.cyan}šŸ“‹ SCENARIO: Two AI agents working on the same codebase${c.reset}\n`);
29
- await sleep(800);
29
+ await sleep(1500);
30
30
  console.log(`${c.dim}Simulating a typical multi-agent workflow...${c.reset}\n`);
31
- await sleep(600);
31
+ await sleep(1200);
32
32
  // Agent 1 registers
33
33
  console.log(`${c.yellow}━━━ Agent 1: Claude (Session A) ━━━${c.reset}`);
34
- await sleep(400);
34
+ await sleep(800);
35
35
  console.log(`${c.green}āœ“${c.reset} Registering branch: ${c.bright}feature/auth${c.reset}`);
36
- await sleep(300);
37
- console.log(`${c.green}āœ“${c.reset} Files: ${c.cyan}src/auth.ts, src/middleware.ts${c.reset}`);
38
36
  await sleep(600);
37
+ console.log(`${c.green}āœ“${c.reset} Files: ${c.cyan}src/auth.ts, src/middleware.ts${c.reset}`);
38
+ await sleep(1000);
39
39
  console.log(`\n${c.dim}[Claude starts working on authentication...]${c.reset}\n`);
40
- await sleep(800);
40
+ await sleep(1500);
41
41
  // Agent 2 registers - conflict!
42
42
  console.log(`${c.yellow}━━━ Agent 2: Cursor (Session B) ━━━${c.reset}`);
43
- await sleep(400);
43
+ await sleep(800);
44
44
  console.log(`${c.green}āœ“${c.reset} Registering branch: ${c.bright}feature/api${c.reset}`);
45
- await sleep(300);
46
- console.log(`${c.green}āœ“${c.reset} Files: ${c.cyan}src/api.ts, src/middleware.ts${c.reset}`);
47
45
  await sleep(600);
46
+ console.log(`${c.green}āœ“${c.reset} Files: ${c.cyan}src/api.ts, src/middleware.ts${c.reset}`);
47
+ await sleep(1000);
48
48
  // CONFLICT DETECTED
49
49
  console.log(`
50
50
  ${c.bright}${c.red}╔════════════════════════════════════════════════════════════╗
51
51
  ā•‘ āš ļø CONFLICT DETECTED! ā•‘
52
52
  ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•${c.reset}
53
53
  `);
54
- await sleep(500);
54
+ await sleep(1200);
55
55
  console.log(`${c.red}šŸ”“ File: ${c.bright}src/middleware.ts${c.reset}`);
56
+ await sleep(500);
56
57
  console.log(`${c.red} ā”œā”€ ${c.yellow}feature/auth${c.reset} ${c.dim}(Claude)${c.reset}`);
58
+ await sleep(400);
57
59
  console.log(`${c.red} └─ ${c.yellow}feature/api${c.reset} ${c.dim}(Cursor)${c.reset}`);
58
- await sleep(800);
60
+ await sleep(1500);
59
61
  console.log(`
60
62
  ${c.cyan}šŸ’” Spidersan caught this BEFORE you created a merge conflict!${c.reset}
61
63
  `);
62
- await sleep(600);
64
+ await sleep(1200);
63
65
  // Resolution
64
66
  console.log(`${c.green}━━━ RESOLUTION OPTIONS ━━━${c.reset}`);
67
+ await sleep(600);
65
68
  console.log(`${c.dim}1.${c.reset} Coordinate with the other agent`);
69
+ await sleep(400);
66
70
  console.log(`${c.dim}2.${c.reset} Wait for their branch to merge first`);
71
+ await sleep(400);
67
72
  console.log(`${c.dim}3.${c.reset} Split the work differently`);
68
- await sleep(800);
73
+ await sleep(1500);
69
74
  // Watch mode teaser
70
75
  console.log(`
71
76
  ${c.bright}${c.blue}━━━ NEW: WATCH MODE ━━━${c.reset}
72
77
  ${c.dim}Auto-register files as you edit them:${c.reset}
73
78
 
74
79
  ${c.cyan}$ spidersan watch --agent claude${c.reset}
75
-
80
+
76
81
  ${c.dim}Files are tracked automatically. Conflicts detected in real-time.${c.reset}
77
82
  `);
78
- await sleep(500);
83
+ await sleep(1000);
79
84
  // Next steps
80
85
  console.log(`
81
86
  ${c.bright}${c.magenta}╔════════════════════════════════════════════════════════════╗
@@ -97,9 +102,9 @@ ${c.bright}Quick Setup:${c.reset}
97
102
  ${c.green}$ spidersan watch --agent myname${c.reset}
98
103
 
99
104
  ${c.bright}Learn More:${c.reset}
100
- šŸ“– Docs: ${c.cyan}https://github.com/treebird7/Spidersan${c.reset}
101
- šŸ’¬ Discord: ${c.cyan}https://discord.gg/treebird${c.reset}
102
- šŸ“§ Help: ${c.cyan}treebird7@proton.me${c.reset}
105
+ šŸ“– Repo: ${c.cyan}https://github.com/treebird7/spidersan-oss${c.reset}
106
+ 🌐 Site: ${c.cyan}http://treebird.uk${c.reset}
107
+ šŸ“§ Help: ${c.cyan}treebird@treebird.dev${c.reset}
103
108
 
104
109
  ${c.dim}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
105
110
  ${c.bright}šŸ•·ļø The web catches conflicts before they catch you.${c.reset}
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,YAAY,SAwDnB,CAAC"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,eAAO,MAAM,YAAY,SAyFnB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { execSync, spawnSync } from 'child_process';
2
+ import { getMessageStorage, parseTierOption, printTierStatus, } from '../storage/message-factory.js';
3
3
  // Security: Input validation
4
4
  const VALID_AGENT_ID = /^[a-z0-9][a-z0-9_-]{0,30}$/i;
5
5
  function validateAgentId(agentId) {
@@ -8,12 +8,30 @@ function validateAgentId(agentId) {
8
8
  }
9
9
  return agentId;
10
10
  }
11
+ function formatTimestamp(date) {
12
+ const now = new Date();
13
+ const diff = now.getTime() - date.getTime();
14
+ const hours = Math.floor(diff / (1000 * 60 * 60));
15
+ const days = Math.floor(hours / 24);
16
+ if (days > 0) {
17
+ return `${days}d ago`;
18
+ }
19
+ else if (hours > 0) {
20
+ return `${hours}h ago`;
21
+ }
22
+ else {
23
+ const minutes = Math.floor(diff / (1000 * 60));
24
+ return minutes > 0 ? `${minutes}m ago` : 'just now';
25
+ }
26
+ }
11
27
  export const inboxCommand = new Command('inbox')
12
- .description('View messages sent to you (via Myceliumail)')
28
+ .description('View messages sent to you (tiered fallback)')
13
29
  .option('-a, --agent <id>', 'Agent identifier (default: SPIDERSAN_AGENT env or "cli-agent")')
14
- .option('-u, --unread', 'Show only unread messages (handled by mycmail if supported)')
15
- .option('-n, --limit <count>', 'Limit number of messages (handled by mycmail if supported)', '20')
16
- .option('--sent', 'Show sent messages instead of inbox (check mycmail docs for support)')
30
+ .option('-u, --unread', 'Show only unread messages')
31
+ .option('-n, --limit <count>', 'Limit number of messages', '20')
32
+ .option('--status', 'Show tier availability status')
33
+ .option('--tier <n>', 'Force specific tier (1, 2, or 3)')
34
+ .option('-v, --verbose', 'Show which tier is being used')
17
35
  .option('--json', 'Output as JSON')
18
36
  .action(async (options) => {
19
37
  const rawAgentId = options.agent || process.env.SPIDERSAN_AGENT || 'cli-agent';
@@ -26,41 +44,77 @@ export const inboxCommand = new Command('inbox')
26
44
  console.error(`āŒ ${error.message}`);
27
45
  process.exit(1);
28
46
  }
29
- try {
30
- // Check if mycmail is available
31
- execSync('which mycmail', { stdio: 'ignore' });
32
- }
33
- catch {
34
- console.error('āŒ Myceliumail (mycmail) not found.');
35
- console.error(' Please install it: npm install -g myceliumail');
36
- process.exit(1);
47
+ // Handle --status flag
48
+ if (options.status) {
49
+ await printTierStatus({ agentId });
50
+ return;
37
51
  }
38
- // Security: Use spawnSync with argument array instead of string interpolation
52
+ // Get message storage adapter
53
+ const forceTier = parseTierOption(options.tier);
39
54
  try {
40
- const result = spawnSync('mycmail', ['inbox'], {
41
- encoding: 'utf-8',
42
- env: { ...process.env, MYCELIUMAIL_AGENT_ID: agentId }
55
+ const storage = await getMessageStorage({
56
+ forceTier,
57
+ agentId,
58
+ verbose: options.verbose,
59
+ });
60
+ // Fetch messages
61
+ const messages = await storage.inbox(agentId, {
62
+ unread: options.unread,
63
+ limit: parseInt(options.limit, 10),
43
64
  });
44
- if (result.error) {
45
- throw result.error;
46
- }
47
- const output = result.stdout || '';
48
65
  if (options.json) {
49
- // Return structured data if possible
50
66
  console.log(JSON.stringify({
51
67
  agent: agentId,
52
- command: 'inbox',
53
- output: output.trim()
68
+ tier: storage.getTier(),
69
+ tierName: storage.getTierName(),
70
+ count: messages.length,
71
+ messages: messages.map(m => ({
72
+ ...m,
73
+ timestamp: m.timestamp.toISOString(),
74
+ })),
54
75
  }, null, 2));
76
+ return;
55
77
  }
56
- else {
57
- console.log(output);
78
+ // Display messages
79
+ const tierInfo = options.verbose ? ` (via ${storage.getTierName()})` : '';
80
+ console.log(`\nšŸ“¬ Inbox for ${agentId}${tierInfo}\n`);
81
+ if (messages.length === 0) {
82
+ console.log(' No messages.\n');
83
+ return;
58
84
  }
85
+ for (const msg of messages) {
86
+ const readIcon = msg.read ? 'šŸ“­' : 'šŸ“©';
87
+ const encryptIcon = msg.encrypted ? 'šŸ”’' : '';
88
+ const typeIcon = getTypeIcon(msg.type);
89
+ const timeStr = formatTimestamp(msg.timestamp);
90
+ console.log(`${readIcon} ${typeIcon} ${msg.subject} ${encryptIcon}`);
91
+ console.log(` From: ${msg.from} Ā· ${timeStr}`);
92
+ console.log(` ID: ${msg.id}`);
93
+ if (msg.branch) {
94
+ console.log(` Branch: ${msg.branch}`);
95
+ }
96
+ console.log('');
97
+ }
98
+ console.log(`Total: ${messages.length} message(s)\n`);
59
99
  }
60
100
  catch (error) {
61
- console.error('āŒ Failed to fetch inbox via Myceliumail');
101
+ console.error('āŒ Failed to fetch inbox');
62
102
  console.error(error.message || error);
63
103
  process.exit(1);
64
104
  }
65
105
  });
106
+ function getTypeIcon(type) {
107
+ switch (type) {
108
+ case 'question':
109
+ return 'ā“';
110
+ case 'alert':
111
+ return '🚨';
112
+ case 'handoff':
113
+ return 'šŸ¤';
114
+ case 'file_share':
115
+ return 'šŸ“Ž';
116
+ default:
117
+ return 'ā„¹ļø';
118
+ }
119
+ }
66
120
  //# sourceMappingURL=inbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export { auditMarkCommand } from './audit-mark.js';
31
31
  export { logCommand } from './log.js';
32
32
  export { watchCommand } from './watch.js';
33
33
  export { radarCommand } from './radar.js';
34
+ export { welcomeCommand } from './welcome.js';
34
35
  export { demoCommand } from './demo.js';
35
36
  export { mcpHealthCommand } from './mcp-health.js';
36
37
  export { mcpRestartCommand } from './mcp-restart.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,qBAAqB,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,qBAAqB,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -42,6 +42,7 @@ export { logCommand } from './log.js';
42
42
  export { watchCommand } from './watch.js';
43
43
  export { radarCommand } from './radar.js';
44
44
  // Demo/Onboarding
45
+ export { welcomeCommand } from './welcome.js';
45
46
  export { demoCommand } from './demo.js';
46
47
  // MCP Health
47
48
  export { mcpHealthCommand } from './mcp-health.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"msg-read.d.ts","sourceRoot":"","sources":["../../src/commands/msg-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,cAAc,SAqDrB,CAAC"}
1
+ {"version":3,"file":"msg-read.d.ts","sourceRoot":"","sources":["../../src/commands/msg-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,cAAc,SAoFrB,CAAC"}
@@ -1,68 +1,93 @@
1
1
  import { Command } from 'commander';
2
- import { execSync, spawnSync } from 'child_process';
2
+ import { getMessageStorage, parseTierOption } from '../storage/message-factory.js';
3
3
  // Security: Input validation
4
- const VALID_AGENT_ID = /^[a-z0-9][a-z0-9_-]{0,30}$/i;
5
4
  const VALID_MESSAGE_ID = /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,64}$/;
6
- function validateAgentId(agentId) {
7
- if (!VALID_AGENT_ID.test(agentId)) {
8
- throw new Error(`Invalid agent ID: "${agentId.slice(0, 20)}..."`);
9
- }
10
- return agentId;
11
- }
12
5
  function validateMessageId(id) {
13
6
  if (!VALID_MESSAGE_ID.test(id)) {
14
7
  throw new Error(`Invalid message ID: "${id.slice(0, 20)}..."`);
15
8
  }
16
9
  return id;
17
10
  }
11
+ function formatTimestamp(date) {
12
+ return date.toLocaleString('en-US', {
13
+ weekday: 'short',
14
+ month: 'short',
15
+ day: 'numeric',
16
+ hour: '2-digit',
17
+ minute: '2-digit',
18
+ });
19
+ }
18
20
  export const msgReadCommand = new Command('read')
19
- .description('Read a specific message (via Myceliumail)')
21
+ .description('Read a specific message (tiered fallback)')
20
22
  .argument('<id>', 'Message ID (full or partial)')
21
- .option('--no-mark-read', 'Don\'t mark the message as read (handled by mycmail)')
23
+ .option('--no-mark-read', 'Don\'t mark the message as read')
24
+ .option('--tier <n>', 'Force specific tier (1, 2, or 3)')
25
+ .option('-v, --verbose', 'Show which tier is being used')
22
26
  .option('--json', 'Output as JSON')
23
27
  .action(async (id, options) => {
24
- const rawAgentId = process.env.SPIDERSAN_AGENT || 'cli-agent';
25
- // Security: Validate inputs
26
- let agentId;
28
+ const agentId = process.env.SPIDERSAN_AGENT || 'cli-agent';
29
+ // Security: Validate message ID
27
30
  let messageId;
28
31
  try {
29
- agentId = validateAgentId(rawAgentId);
30
32
  messageId = validateMessageId(id);
31
33
  }
32
34
  catch (error) {
33
35
  console.error(`āŒ ${error.message}`);
34
36
  process.exit(1);
35
37
  }
38
+ // Get message storage adapter
39
+ const forceTier = parseTierOption(options.tier);
36
40
  try {
37
- execSync('which mycmail', { stdio: 'ignore' });
38
- }
39
- catch {
40
- console.error('āŒ Myceliumail (mycmail) not found.');
41
- console.error(' Please install it: npm install -g myceliumail');
42
- process.exit(1);
43
- }
44
- // Security: Use spawnSync with argument array instead of string interpolation
45
- try {
46
- const result = spawnSync('mycmail', ['read', messageId], {
47
- encoding: 'utf-8',
48
- env: { ...process.env, MYCELIUMAIL_AGENT_ID: agentId }
41
+ const storage = await getMessageStorage({
42
+ forceTier,
43
+ agentId,
44
+ verbose: options.verbose,
49
45
  });
50
- if (result.error) {
51
- throw result.error;
46
+ // Read message
47
+ const message = await storage.read(messageId);
48
+ if (!message) {
49
+ console.error(`āŒ Message not found: ${messageId}`);
50
+ process.exit(1);
51
+ }
52
+ // Mark as read if requested
53
+ if (options.markRead !== false) {
54
+ await storage.markRead(messageId);
52
55
  }
53
- const output = result.stdout || '';
54
56
  if (options.json) {
55
57
  console.log(JSON.stringify({
56
- id: messageId,
57
- output: output.trim()
58
+ tier: storage.getTier(),
59
+ tierName: storage.getTierName(),
60
+ message: {
61
+ ...message,
62
+ timestamp: message.timestamp.toISOString(),
63
+ },
58
64
  }, null, 2));
65
+ return;
66
+ }
67
+ // Display message
68
+ const tierInfo = options.verbose ? ` (via ${storage.getTierName()})` : '';
69
+ const encryptIcon = message.encrypted ? ' šŸ”’' : '';
70
+ const typeLabel = message.type !== 'info' ? ` [${message.type.toUpperCase()}]` : '';
71
+ console.log(`\nšŸ“§ Message${tierInfo}\n`);
72
+ console.log('─'.repeat(60));
73
+ console.log(`Subject: ${message.subject}${typeLabel}${encryptIcon}`);
74
+ console.log(`From: ${message.from}`);
75
+ console.log(`To: ${message.to}`);
76
+ console.log(`Date: ${formatTimestamp(message.timestamp)}`);
77
+ console.log(`ID: ${message.id}`);
78
+ if (message.branch) {
79
+ console.log(`Branch: ${message.branch}`);
59
80
  }
60
- else {
61
- console.log(output);
81
+ if (message.files && message.files.length > 0) {
82
+ console.log(`Files: ${message.files.join(', ')}`);
62
83
  }
84
+ console.log('─'.repeat(60));
85
+ console.log('');
86
+ console.log(message.body);
87
+ console.log('');
63
88
  }
64
89
  catch (error) {
65
- console.error('āŒ Failed to read message via Myceliumail');
90
+ console.error('āŒ Failed to read message');
66
91
  console.error(error.message || error);
67
92
  process.exit(1);
68
93
  }