mcp-sunsama 0.3.0 → 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/.claude/settings.local.json +3 -1
- package/CHANGELOG.md +24 -0
- package/CLAUDE.md +11 -3
- package/Dockerfile +35 -0
- package/README.md +2 -1
- package/TODO-0_5_0.md +108 -0
- package/TODO.md +152 -0
- package/bun.lock +35 -23
- package/dev/prd-get-archived-tasks.md +156 -0
- package/dist/config/transport.d.ts +7 -5
- package/dist/config/transport.d.ts.map +1 -1
- package/dist/config/transport.js +3 -1
- package/dist/main.js +3 -10
- package/dist/utils/task-trimmer.d.ts +5 -2
- package/dist/utils/task-trimmer.d.ts.map +1 -1
- package/dist/utils/task-trimmer.js +10 -1
- package/package.json +3 -3
- package/src/config/transport.ts +12 -6
- package/src/main.ts +162 -87
- package/src/schemas.ts +7 -0
- package/src/utils/task-trimmer.ts +33 -19
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"includeCoAuthoredBy": false,
|
|
2
3
|
"permissions": {
|
|
3
4
|
"allow": [
|
|
4
5
|
"mcp__context7__resolve-library-id",
|
|
@@ -17,7 +18,8 @@
|
|
|
17
18
|
"Bash(npm ls:*)",
|
|
18
19
|
"Bash(cat:*)",
|
|
19
20
|
"Bash(grep:*)",
|
|
20
|
-
"Bash(mkdir:*)"
|
|
21
|
+
"Bash(mkdir:*)",
|
|
22
|
+
"mcp__fetch__fetch"
|
|
21
23
|
],
|
|
22
24
|
"deny": []
|
|
23
25
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# mcp-sunsama
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8478b69: Add get-archived-tasks tool with enhanced pagination
|
|
8
|
+
|
|
9
|
+
- Implement get-archived-tasks tool to access archived task history
|
|
10
|
+
- Add smart pagination with limit+1 pattern to determine if more results exist
|
|
11
|
+
- Include pagination metadata (hasMore flag, nextOffset, count) for LLM context
|
|
12
|
+
- Default limit set to 100 for optimal performance
|
|
13
|
+
- Response format includes TSV data with pagination header
|
|
14
|
+
- Update documentation in README.md and CLAUDE.md
|
|
15
|
+
|
|
16
|
+
## 0.4.0
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- 8955a8f: Update the task integration response object and include the url if available
|
|
21
|
+
- 8955a8f: Add functional HTTP_ENDPOINT env variable
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 8955a8f: Improve transport configuration type safety with discriminated union and template literal validation
|
|
26
|
+
|
|
3
27
|
## 0.3.0
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
package/CLAUDE.md
CHANGED
|
@@ -52,6 +52,14 @@ Two-tier optimization for large datasets:
|
|
|
52
52
|
|
|
53
53
|
Always apply filtering before trimming for efficiency.
|
|
54
54
|
|
|
55
|
+
### Enhanced Pagination Pattern
|
|
56
|
+
The `get-archived-tasks` tool implements smart pagination:
|
|
57
|
+
|
|
58
|
+
- **Limit+1 Pattern**: Fetches `requestedLimit + 1` to determine if more results exist
|
|
59
|
+
- **Pagination Metadata**: Returns `hasMore` flag, `nextOffset`, and count information
|
|
60
|
+
- **LLM Context**: Provides clear guidance for AI assistants on whether to continue fetching
|
|
61
|
+
- **Response Format**: TSV data with pagination header for optimal processing
|
|
62
|
+
|
|
55
63
|
### Schema Architecture
|
|
56
64
|
All tools use Zod schemas from `schemas.ts`:
|
|
57
65
|
- Type-safe parameter validation
|
|
@@ -118,10 +126,10 @@ Optional:
|
|
|
118
126
|
|
|
119
127
|
### Task Operations
|
|
120
128
|
Full CRUD support:
|
|
121
|
-
- **Read**: `get-tasks-by-day`, `get-tasks-backlog`, `get-streams`
|
|
129
|
+
- **Read**: `get-tasks-by-day`, `get-tasks-backlog`, `get-archived-tasks`, `get-streams`
|
|
122
130
|
- **Write**: `create-task`, `update-task-complete`, `delete-task`
|
|
123
131
|
|
|
124
|
-
|
|
132
|
+
Task read operations support response trimming. `get-tasks-by-day` includes completion filtering. `get-archived-tasks` includes enhanced pagination with hasMore flag for LLM decision-making.
|
|
125
133
|
|
|
126
134
|
### Testing Tools
|
|
127
135
|
Use MCP Inspector for debugging: `bun run inspect`
|
|
@@ -140,4 +148,4 @@ When updating the version:
|
|
|
140
148
|
|
|
141
149
|
**IMPORTANT**: Never commit the `dev/` directory or any of its files to git. This directory contains development data including sample API responses and testing data that should remain local only.
|
|
142
150
|
|
|
143
|
-
**
|
|
151
|
+
**Branch Naming Convention**: Use the format `{type}/{short-name}` where `{type}` follows conventional commit naming convention (feat, fix, chore, refactor, docs, style, test, ci, etc.).
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ----- Build Stage -----
|
|
2
|
+
FROM oven/bun:1-alpine AS builder
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
# Copy package and configuration files
|
|
6
|
+
COPY package.json bun.lock* tsconfig.json ./
|
|
7
|
+
|
|
8
|
+
# Copy source code
|
|
9
|
+
COPY src ./src
|
|
10
|
+
|
|
11
|
+
# Install dependencies and build
|
|
12
|
+
RUN bun install && bun run build
|
|
13
|
+
|
|
14
|
+
# ----- Production Stage -----
|
|
15
|
+
FROM oven/bun:1-alpine
|
|
16
|
+
WORKDIR /app
|
|
17
|
+
|
|
18
|
+
# Copy built artifacts
|
|
19
|
+
COPY --from=builder /app/dist ./dist
|
|
20
|
+
|
|
21
|
+
# Copy package.json for production install
|
|
22
|
+
COPY package.json ./
|
|
23
|
+
|
|
24
|
+
# Install only production dependencies
|
|
25
|
+
RUN bun install --production --frozen-lockfile
|
|
26
|
+
|
|
27
|
+
# Set environment defaults for containerized deployment
|
|
28
|
+
ENV TRANSPORT_TYPE=httpStream
|
|
29
|
+
ENV PORT=3000
|
|
30
|
+
|
|
31
|
+
# Expose HTTP port
|
|
32
|
+
EXPOSE 3000
|
|
33
|
+
|
|
34
|
+
# Start the application
|
|
35
|
+
CMD ["bun", "dist/main.js"]
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ A Model Context Protocol (MCP) server that provides comprehensive task managemen
|
|
|
6
6
|
|
|
7
7
|
### Task Management
|
|
8
8
|
- **Create Tasks** - Create new tasks with notes, time estimates, due dates, and stream assignments
|
|
9
|
-
- **Read Tasks** - Get tasks by day with completion filtering, access backlog tasks
|
|
9
|
+
- **Read Tasks** - Get tasks by day with completion filtering, access backlog tasks, retrieve archived task history
|
|
10
10
|
- **Update Tasks** - Mark tasks as complete with custom timestamps, reschedule tasks or move to backlog
|
|
11
11
|
- **Delete Tasks** - Permanently remove tasks from your workspace
|
|
12
12
|
|
|
@@ -91,6 +91,7 @@ Add this configuration to your Claude Desktop MCP settings:
|
|
|
91
91
|
- `create-task` - Create new tasks with optional properties
|
|
92
92
|
- `get-tasks-by-day` - Get tasks for a specific day with completion filtering
|
|
93
93
|
- `get-tasks-backlog` - Get backlog tasks
|
|
94
|
+
- `get-archived-tasks` - Get archived tasks with pagination (includes hasMore flag for LLM context)
|
|
94
95
|
- `update-task-complete` - Mark tasks as complete
|
|
95
96
|
- `update-task-snooze-date` - Reschedule tasks to different dates or move to backlog
|
|
96
97
|
- `delete-task` - Delete tasks permanently
|
package/TODO-0_5_0.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Sunsama MCP Server - Implementation Status & Future Plans
|
|
2
|
+
|
|
3
|
+
## Current Status (⚠️ Update Required)
|
|
4
|
+
|
|
5
|
+
**Package Version**: sunsama-api v0.6.0 (updated 2025-06-20)
|
|
6
|
+
|
|
7
|
+
The MCP server currently implements **61.5% coverage** (8/13 methods) of available methods in the sunsama-api package.
|
|
8
|
+
|
|
9
|
+
**NEW METHODS AVAILABLE**: 5 additional methods are now available in sunsama-api v0.6.0 that need MCP tool implementation.
|
|
10
|
+
|
|
11
|
+
### Implemented Tools
|
|
12
|
+
|
|
13
|
+
#### User Operations
|
|
14
|
+
- ✅ `get-user` → `SunsamaClient.getUser()`
|
|
15
|
+
- Returns user profile, timezone, and group information
|
|
16
|
+
|
|
17
|
+
#### Task Operations
|
|
18
|
+
- ✅ `get-tasks-by-day` → `SunsamaClient.getTasksByDay(day, timezone?)`
|
|
19
|
+
- Supports completion filtering (`all`, `incomplete`, `completed`)
|
|
20
|
+
- Includes task trimming for response optimization
|
|
21
|
+
- ✅ `get-tasks-backlog` → `SunsamaClient.getTasksBacklog()`
|
|
22
|
+
- Returns all backlog tasks with trimming optimization
|
|
23
|
+
- ✅ `create-task` → `SunsamaClient.createTask(text, options?)`
|
|
24
|
+
- Full parameter support: notes, timeEstimate, dueDate, streamIds, etc.
|
|
25
|
+
- ✅ `update-task-complete` → `SunsamaClient.updateTaskComplete(taskId, completeOn?, limitResponsePayload?)`
|
|
26
|
+
- Mark tasks as complete with optional timestamp
|
|
27
|
+
- ✅ `delete-task` → `SunsamaClient.deleteTask(taskId, limitResponsePayload?, wasTaskMerged?)`
|
|
28
|
+
- Permanent task deletion
|
|
29
|
+
- ✅ `update-task-snooze-date` → `SunsamaClient.updateTaskSnoozeDate(taskId, newDay, options?)`
|
|
30
|
+
- Reschedule tasks or move to backlog
|
|
31
|
+
|
|
32
|
+
#### Stream Operations
|
|
33
|
+
- ✅ `get-streams` → `SunsamaClient.getStreamsByGroupId()`
|
|
34
|
+
- Returns all available streams (channels) for the user's group
|
|
35
|
+
|
|
36
|
+
## Future Enhancements
|
|
37
|
+
|
|
38
|
+
### 1. Archived Tasks (Priority: Medium)
|
|
39
|
+
**Status**: Research needed - API exists but not in sunsama-api package
|
|
40
|
+
|
|
41
|
+
**Description**: Implement support for retrieving archived tasks
|
|
42
|
+
- **API Endpoint**: `/get-archived-tasks` (confirmed in dev/user-stories/)
|
|
43
|
+
- **Parameters**: `userId`, `groupId`, `offset`, `limit`, optional filters
|
|
44
|
+
- **Returns**: Archived tasks with `archivedAt` timestamps
|
|
45
|
+
|
|
46
|
+
**Implementation Steps**:
|
|
47
|
+
1. **Upstream Work**: Add `getArchivedTasks()` method to sunsama-api package
|
|
48
|
+
2. **MCP Tool**: Implement `get-archived-tasks` tool with:
|
|
49
|
+
- Pagination support (`offset`, `limit`)
|
|
50
|
+
- Date range filtering (`dateFrom`, `dateTo`)
|
|
51
|
+
- Stream filtering
|
|
52
|
+
- Response trimming optimization
|
|
53
|
+
|
|
54
|
+
### 2. Enhanced Task Management (Priority: Low)
|
|
55
|
+
**Potential Extensions**:
|
|
56
|
+
- Task bulk operations (bulk delete, bulk complete)
|
|
57
|
+
- Task search/filtering by content
|
|
58
|
+
- Task time tracking integration
|
|
59
|
+
- Task dependency management
|
|
60
|
+
|
|
61
|
+
### 3. Advanced Stream Operations (Priority: Low)
|
|
62
|
+
**Potential Extensions**:
|
|
63
|
+
- Stream creation/modification (if API supports)
|
|
64
|
+
- Stream-specific task queries
|
|
65
|
+
- Stream statistics/analytics
|
|
66
|
+
|
|
67
|
+
### 4. Performance Optimizations (Priority: Low)
|
|
68
|
+
**Current Optimizations**:
|
|
69
|
+
- ✅ Task filtering before processing
|
|
70
|
+
- ✅ Response payload trimming (60-80% reduction)
|
|
71
|
+
- ✅ Dual transport support (stdio/HTTP)
|
|
72
|
+
|
|
73
|
+
**Future Optimizations**:
|
|
74
|
+
- Response caching for frequently accessed data
|
|
75
|
+
- Batch operations for multiple task updates
|
|
76
|
+
- Streaming responses for large datasets
|
|
77
|
+
|
|
78
|
+
## Development Notes
|
|
79
|
+
|
|
80
|
+
### Architecture Strengths
|
|
81
|
+
- Complete dual transport support (stdio + HTTP stream)
|
|
82
|
+
- Robust authentication handling per transport type
|
|
83
|
+
- Comprehensive error handling and validation
|
|
84
|
+
- Response optimization strategies
|
|
85
|
+
- Type-safe parameter validation with Zod schemas
|
|
86
|
+
|
|
87
|
+
### Maintenance Tasks
|
|
88
|
+
- ✅ Version synchronization (package.json ↔ src/main.ts)
|
|
89
|
+
- Monitor sunsama-api updates for new methods
|
|
90
|
+
- Update dependencies regularly
|
|
91
|
+
- Maintain test coverage
|
|
92
|
+
|
|
93
|
+
### Contributing Guidelines
|
|
94
|
+
- Follow existing patterns in `src/main.ts`
|
|
95
|
+
- Use Zod schemas for parameter validation
|
|
96
|
+
- Implement response trimming for large datasets
|
|
97
|
+
- Support both transport modes
|
|
98
|
+
- Add comprehensive tool descriptions
|
|
99
|
+
|
|
100
|
+
## Conclusion
|
|
101
|
+
|
|
102
|
+
The current implementation provides complete coverage of the sunsama-api package with a robust, well-architected foundation. Future enhancements should focus on:
|
|
103
|
+
|
|
104
|
+
1. **Upstream API Development**: Contributing archived tasks functionality to sunsama-api
|
|
105
|
+
2. **Advanced Features**: Building on the solid foundation for enhanced productivity workflows
|
|
106
|
+
3. **Performance**: Continuous optimization as usage scales
|
|
107
|
+
|
|
108
|
+
The codebase is well-positioned for extension and maintenance with clear patterns and comprehensive documentation.
|
package/TODO.md
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Sunsama MCP Server - v0.6.0 Implementation Plan
|
|
2
|
+
|
|
3
|
+
## 📊 Status Overview
|
|
4
|
+
- **sunsama-api Version**: 0.6.0 (updated from 0.3.1)
|
|
5
|
+
- **Currently Implemented**: 8/13 methods (61.5% coverage)
|
|
6
|
+
- **New Methods Available**: 5 methods ready for implementation
|
|
7
|
+
|
|
8
|
+
## 🚀 High Priority - Implement First
|
|
9
|
+
|
|
10
|
+
### 1. `get-archived-tasks` Tool
|
|
11
|
+
**API Method**: `getArchivedTasks(offset?, limit?)`
|
|
12
|
+
- **Impact**: High - Access to archived task history
|
|
13
|
+
- **Complexity**: Low - Standard read operation with pagination
|
|
14
|
+
- **Sample Data**: Available at `/dev/sample-data/get-archived-tasks/`
|
|
15
|
+
|
|
16
|
+
**Implementation Tasks**:
|
|
17
|
+
- [ ] Add `getArchivedTasksSchema` to `src/schemas.ts`
|
|
18
|
+
- [ ] Implement tool in `src/main.ts`
|
|
19
|
+
- [ ] Apply task trimming optimization
|
|
20
|
+
- [ ] Use TSV output format
|
|
21
|
+
- [ ] Add pagination support (offset/limit)
|
|
22
|
+
- [ ] Test with MCP Inspector
|
|
23
|
+
|
|
24
|
+
**Schema**:
|
|
25
|
+
```typescript
|
|
26
|
+
export const getArchivedTasksSchema = z.object({
|
|
27
|
+
offset: z.number().min(0).optional(),
|
|
28
|
+
limit: z.number().min(1).max(100).optional()
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. `get-task-by-id` Tool
|
|
33
|
+
**API Method**: `getTaskById(taskId)`
|
|
34
|
+
- **Impact**: High - Essential for task debugging and inspection
|
|
35
|
+
- **Complexity**: Low - Simple lookup operation
|
|
36
|
+
- **Returns**: Single Task object or null
|
|
37
|
+
|
|
38
|
+
**Implementation Tasks**:
|
|
39
|
+
- [ ] Add `getTaskByIdSchema` to `src/schemas.ts`
|
|
40
|
+
- [ ] Implement tool in `src/main.ts`
|
|
41
|
+
- [ ] Use JSON output format (single object)
|
|
42
|
+
- [ ] Handle null responses gracefully
|
|
43
|
+
- [ ] Add comprehensive error handling
|
|
44
|
+
- [ ] Test with valid and invalid task IDs
|
|
45
|
+
|
|
46
|
+
**Schema**:
|
|
47
|
+
```typescript
|
|
48
|
+
export const getTaskByIdSchema = z.object({
|
|
49
|
+
taskId: z.string().min(1).describe("The ID of the task to retrieve")
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 🔧 Medium Priority - Implement After High Priority
|
|
54
|
+
|
|
55
|
+
### 3. `update-task-notes` Tool
|
|
56
|
+
**API Method**: `updateTaskNotes(taskId, notes, notesMarkdown, options?)`
|
|
57
|
+
- **Impact**: Medium - Enhanced task content management
|
|
58
|
+
- **Complexity**: High - Requires CollabSnapshot handling
|
|
59
|
+
- **Research Needed**: CollabSnapshot format and usage
|
|
60
|
+
|
|
61
|
+
**Implementation Tasks**:
|
|
62
|
+
- [ ] Research CollabSnapshot parameter requirements
|
|
63
|
+
- [ ] Add `updateTaskNotesSchema` to `src/schemas.ts`
|
|
64
|
+
- [ ] Implement tool in `src/main.ts`
|
|
65
|
+
- [ ] Handle HTML and Markdown note formats
|
|
66
|
+
- [ ] Test with existing tasks that have notes
|
|
67
|
+
- [ ] Validate collaborative editing scenarios
|
|
68
|
+
|
|
69
|
+
## 🛠️ Low Priority - Utility Functions
|
|
70
|
+
|
|
71
|
+
### 4. `get-user-timezone` Tool
|
|
72
|
+
**API Method**: `getUserTimezone()`
|
|
73
|
+
- **Impact**: Low - Utility function (already used internally)
|
|
74
|
+
- **Complexity**: Low - Simple getter
|
|
75
|
+
- **Note**: Already called internally by `get-tasks-by-day`
|
|
76
|
+
|
|
77
|
+
**Implementation Tasks**:
|
|
78
|
+
- [ ] Add schema (no parameters)
|
|
79
|
+
- [ ] Implement standalone tool
|
|
80
|
+
- [ ] Return timezone string
|
|
81
|
+
- [ ] Test timezone format consistency
|
|
82
|
+
|
|
83
|
+
### 5. `generate-task-id` Tool
|
|
84
|
+
**API Method**: `SunsamaClient.generateTaskId()` (static)
|
|
85
|
+
- **Impact**: Low - Developer convenience
|
|
86
|
+
- **Complexity**: Low - Static method call
|
|
87
|
+
- **Note**: No authentication required
|
|
88
|
+
|
|
89
|
+
**Implementation Tasks**:
|
|
90
|
+
- [ ] Add schema (no parameters)
|
|
91
|
+
- [ ] Implement tool using static method
|
|
92
|
+
- [ ] Return 24-character hex string
|
|
93
|
+
- [ ] Test ID format compatibility
|
|
94
|
+
|
|
95
|
+
## 📋 Implementation Patterns
|
|
96
|
+
|
|
97
|
+
### Standard Tool Structure
|
|
98
|
+
```typescript
|
|
99
|
+
server.addTool({
|
|
100
|
+
name: "tool-name",
|
|
101
|
+
description: "Clear description of functionality",
|
|
102
|
+
parameters: toolSchema,
|
|
103
|
+
execute: async (args, {session, log}) => {
|
|
104
|
+
try {
|
|
105
|
+
log.info("Operation starting", { params });
|
|
106
|
+
|
|
107
|
+
const sunsamaClient = getSunsamaClient(session as SessionData | null);
|
|
108
|
+
const result = await sunsamaClient.methodName(args);
|
|
109
|
+
|
|
110
|
+
// Apply optimizations if needed
|
|
111
|
+
const optimizedResult = optimizeResponse(result);
|
|
112
|
+
|
|
113
|
+
log.info("Operation completed", { resultInfo });
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
content: [{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: formatOutput(optimizedResult)
|
|
119
|
+
}]
|
|
120
|
+
};
|
|
121
|
+
} catch (error) {
|
|
122
|
+
log.error("Operation failed", { error: error.message });
|
|
123
|
+
throw new Error(`Failed to [operation]: ${error.message}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Response Format Guidelines
|
|
130
|
+
- **Arrays**: Use TSV format with `toTsv()` and apply `trimTasksForResponse()`
|
|
131
|
+
- **Single Objects**: Use JSON format with `JSON.stringify(obj, null, 2)`
|
|
132
|
+
- **Large Datasets**: Always apply trimming optimizations
|
|
133
|
+
|
|
134
|
+
## 🎯 Success Criteria
|
|
135
|
+
- [ ] All 5 new methods have corresponding MCP tools
|
|
136
|
+
- [ ] 100% test coverage with MCP Inspector
|
|
137
|
+
- [ ] Response optimization applied consistently
|
|
138
|
+
- [ ] Error handling follows established patterns
|
|
139
|
+
- [ ] Documentation updated in server instructions
|
|
140
|
+
- [ ] Version bump in `src/main.ts` matches `package.json`
|
|
141
|
+
|
|
142
|
+
## 🔄 Development Workflow
|
|
143
|
+
1. **Implement High Priority tools first** (archived tasks, task by ID)
|
|
144
|
+
2. **Test each tool individually** before proceeding
|
|
145
|
+
3. **Update schemas and imports in batches**
|
|
146
|
+
4. **Apply consistent patterns** from existing tools
|
|
147
|
+
5. **Update server version** and documentation
|
|
148
|
+
6. **Final integration testing** with full tool suite
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
*Target: Complete implementation of all 5 new sunsama-api v0.6.0 methods*
|
|
152
|
+
*Goal: Achieve 100% coverage (13/13 methods implemented)*
|
package/bun.lock
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"name": "mcp-sunsama",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@types/papaparse": "^5.3.16",
|
|
8
|
-
"fastmcp": "
|
|
8
|
+
"fastmcp": "3.3.1",
|
|
9
9
|
"papaparse": "^5.5.3",
|
|
10
|
-
"sunsama-api": "0.
|
|
10
|
+
"sunsama-api": "0.6.1",
|
|
11
11
|
"zod": "3.24.4",
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
|
|
91
91
|
"ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
|
|
92
92
|
|
|
93
|
-
"ansi-styles": ["ansi-styles@
|
|
93
|
+
"ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="],
|
|
94
94
|
|
|
95
95
|
"argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
|
|
96
96
|
|
|
@@ -114,11 +114,7 @@
|
|
|
114
114
|
|
|
115
115
|
"ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="],
|
|
116
116
|
|
|
117
|
-
"cliui": ["cliui@
|
|
118
|
-
|
|
119
|
-
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
|
120
|
-
|
|
121
|
-
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
|
117
|
+
"cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="],
|
|
122
118
|
|
|
123
119
|
"content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="],
|
|
124
120
|
|
|
@@ -144,7 +140,7 @@
|
|
|
144
140
|
|
|
145
141
|
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
|
|
146
142
|
|
|
147
|
-
"emoji-regex": ["emoji-regex@
|
|
143
|
+
"emoji-regex": ["emoji-regex@10.4.0", "", {}, "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw=="],
|
|
148
144
|
|
|
149
145
|
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
|
|
150
146
|
|
|
@@ -184,7 +180,7 @@
|
|
|
184
180
|
|
|
185
181
|
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
|
|
186
182
|
|
|
187
|
-
"fastmcp": ["fastmcp@
|
|
183
|
+
"fastmcp": ["fastmcp@3.3.1", "", { "dependencies": { "@modelcontextprotocol/sdk": "^1.12.1", "@standard-schema/spec": "^1.0.0", "execa": "^9.6.0", "file-type": "^21.0.0", "fuse.js": "^7.1.0", "mcp-proxy": "^5.0.0", "strict-event-emitter-types": "^2.0.0", "undici": "^7.10.0", "uri-templates": "^0.2.0", "xsschema": "0.3.0-beta.3", "yargs": "^18.0.0", "zod": "^3.25.56", "zod-to-json-schema": "^3.24.5" }, "bin": { "fastmcp": "dist/bin/fastmcp.js" } }, "sha512-08tcvSJoWUpimxEX0DBf9uGPDb//5BPNImfpScPIUGobcaA4CABnLzbJYvO5KPwozOyFk1Qi/9QSAHE/dzSHMw=="],
|
|
188
184
|
|
|
189
185
|
"fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
|
|
190
186
|
|
|
@@ -192,7 +188,7 @@
|
|
|
192
188
|
|
|
193
189
|
"figures": ["figures@6.1.0", "", { "dependencies": { "is-unicode-supported": "^2.0.0" } }, "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg=="],
|
|
194
190
|
|
|
195
|
-
"file-type": ["file-type@
|
|
191
|
+
"file-type": ["file-type@21.0.0", "", { "dependencies": { "@tokenizer/inflate": "^0.2.7", "strtok3": "^10.2.2", "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" } }, "sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg=="],
|
|
196
192
|
|
|
197
193
|
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
|
|
198
194
|
|
|
@@ -212,6 +208,8 @@
|
|
|
212
208
|
|
|
213
209
|
"get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
|
|
214
210
|
|
|
211
|
+
"get-east-asian-width": ["get-east-asian-width@1.3.0", "", {}, "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ=="],
|
|
212
|
+
|
|
215
213
|
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
|
216
214
|
|
|
217
215
|
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
|
@@ -252,8 +250,6 @@
|
|
|
252
250
|
|
|
253
251
|
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
|
254
252
|
|
|
255
|
-
"is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
|
|
256
|
-
|
|
257
253
|
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
|
258
254
|
|
|
259
255
|
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
|
|
@@ -272,19 +268,23 @@
|
|
|
272
268
|
|
|
273
269
|
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
|
274
270
|
|
|
271
|
+
"isomorphic.js": ["isomorphic.js@0.2.5", "", {}, "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw=="],
|
|
272
|
+
|
|
275
273
|
"js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
|
|
276
274
|
|
|
277
275
|
"json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
|
|
278
276
|
|
|
279
277
|
"jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="],
|
|
280
278
|
|
|
279
|
+
"lib0": ["lib0@0.2.108", "", { "dependencies": { "isomorphic.js": "^0.2.4" }, "bin": { "0gentesthtml": "bin/gentesthtml.js", "0serve": "bin/0serve.js", "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js" } }, "sha512-+3eK/B0SqYoZiQu9fNk4VEc6EX8cb0Li96tPGKgugzoGj/OdRdREtuTLvUW+mtinoB2mFiJjSqOJBIaMkAGhxQ=="],
|
|
280
|
+
|
|
281
281
|
"locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="],
|
|
282
282
|
|
|
283
283
|
"lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="],
|
|
284
284
|
|
|
285
285
|
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
|
286
286
|
|
|
287
|
-
"mcp-proxy": ["mcp-proxy@
|
|
287
|
+
"mcp-proxy": ["mcp-proxy@5.1.0", "", { "dependencies": { "@modelcontextprotocol/sdk": "^1.12.1", "eventsource": "^4.0.0", "yargs": "^18.0.0" }, "bin": { "mcp-proxy": "dist/bin/mcp-proxy.js" } }, "sha512-6pfAdXFOvfpqse9dMLuQo8WTSFdD0al8vhr0Nx5EWv+dR6aTAHphdQj9NUP2xej2bhaWzJ5p8BRwbvXufOjJHA=="],
|
|
288
288
|
|
|
289
289
|
"media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
|
|
290
290
|
|
|
@@ -372,8 +372,6 @@
|
|
|
372
372
|
|
|
373
373
|
"read-yaml-file": ["read-yaml-file@1.1.0", "", { "dependencies": { "graceful-fs": "^4.1.5", "js-yaml": "^3.6.1", "pify": "^4.0.1", "strip-bom": "^3.0.0" } }, "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA=="],
|
|
374
374
|
|
|
375
|
-
"require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
|
|
376
|
-
|
|
377
375
|
"resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="],
|
|
378
376
|
|
|
379
377
|
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
|
|
@@ -418,7 +416,7 @@
|
|
|
418
416
|
|
|
419
417
|
"strict-event-emitter-types": ["strict-event-emitter-types@2.0.0", "", {}, "sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA=="],
|
|
420
418
|
|
|
421
|
-
"string-width": ["string-width@
|
|
419
|
+
"string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
|
|
422
420
|
|
|
423
421
|
"strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
|
|
424
422
|
|
|
@@ -428,7 +426,7 @@
|
|
|
428
426
|
|
|
429
427
|
"strtok3": ["strtok3@10.3.1", "", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw=="],
|
|
430
428
|
|
|
431
|
-
"sunsama-api": ["sunsama-api@0.
|
|
429
|
+
"sunsama-api": ["sunsama-api@0.6.1", "", { "dependencies": { "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "tough-cookie": "^5.1.2", "tslib": "^2.8.1", "yjs": "^13.6.27", "zod": "^3.25.64" } }, "sha512-4GhOdrAMo99JIXv9GZg7+NQJu1uPRgGbmnKFWTCNzXYiSVicNPNv27vgqHa3kJtPo19x8sBf4gOYZYlw6b1Wgw=="],
|
|
432
430
|
|
|
433
431
|
"term-size": ["term-size@2.2.1", "", {}, "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="],
|
|
434
432
|
|
|
@@ -472,17 +470,19 @@
|
|
|
472
470
|
|
|
473
471
|
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
|
474
472
|
|
|
475
|
-
"wrap-ansi": ["wrap-ansi@
|
|
473
|
+
"wrap-ansi": ["wrap-ansi@9.0.0", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q=="],
|
|
476
474
|
|
|
477
475
|
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
|
|
478
476
|
|
|
479
|
-
"xsschema": ["xsschema@0.3.0-beta.
|
|
477
|
+
"xsschema": ["xsschema@0.3.0-beta.3", "", { "peerDependencies": { "@valibot/to-json-schema": "^1.0.0", "arktype": "^2.1.16", "effect": "^3.14.5", "sury": "^10.0.0-rc", "zod": "^3.25.0", "zod-to-json-schema": "^3.24.5" }, "optionalPeers": ["@valibot/to-json-schema", "arktype", "effect", "sury", "zod", "zod-to-json-schema"] }, "sha512-8fKI0Kqxs7npz3ElebNCeGdS0HDuS2qL3IqHK5O53yCdh419hcr3GQillwN39TNFasHjbMLQ+DjSwpY0NONdnQ=="],
|
|
480
478
|
|
|
481
479
|
"y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
|
|
482
480
|
|
|
483
|
-
"yargs": ["yargs@
|
|
481
|
+
"yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="],
|
|
484
482
|
|
|
485
|
-
"yargs-parser": ["yargs-parser@
|
|
483
|
+
"yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="],
|
|
484
|
+
|
|
485
|
+
"yjs": ["yjs@13.6.27", "", { "dependencies": { "lib0": "^0.2.99" } }, "sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw=="],
|
|
486
486
|
|
|
487
487
|
"yoctocolors": ["yoctocolors@2.1.1", "", {}, "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ=="],
|
|
488
488
|
|
|
@@ -502,7 +502,9 @@
|
|
|
502
502
|
|
|
503
503
|
"body-parser/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
|
|
504
504
|
|
|
505
|
-
"
|
|
505
|
+
"cliui/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
|
|
506
|
+
|
|
507
|
+
"fastmcp/zod": ["zod@3.25.64", "", {}, "sha512-hbP9FpSZf7pkS7hRVUrOjhwKJNyampPgtXKc3AN6DsWtoHsg2Sb4SQaS4Tcay380zSwd2VPo9G9180emBACp5g=="],
|
|
506
508
|
|
|
507
509
|
"http-errors/statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
|
|
508
510
|
|
|
@@ -512,6 +514,16 @@
|
|
|
512
514
|
|
|
513
515
|
"raw-body/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
|
|
514
516
|
|
|
517
|
+
"string-width/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
|
|
518
|
+
|
|
515
519
|
"sunsama-api/zod": ["zod@3.25.64", "", {}, "sha512-hbP9FpSZf7pkS7hRVUrOjhwKJNyampPgtXKc3AN6DsWtoHsg2Sb4SQaS4Tcay380zSwd2VPo9G9180emBACp5g=="],
|
|
520
|
+
|
|
521
|
+
"wrap-ansi/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
|
|
522
|
+
|
|
523
|
+
"cliui/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],
|
|
524
|
+
|
|
525
|
+
"string-width/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],
|
|
526
|
+
|
|
527
|
+
"wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],
|
|
516
528
|
}
|
|
517
529
|
}
|