airmcp 1.0.0 → 1.5.1
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/README.md +2 -2
- package/dist/calendar/prompts.js +12 -2
- package/dist/calendar/prompts.js.map +1 -1
- package/dist/calendar/scripts.js +1 -1
- package/dist/cross/prompts.js +114 -19
- package/dist/cross/prompts.js.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/mail/tools.js +4 -3
- package/dist/mail/tools.js.map +1 -1
- package/dist/messages/scripts.js +1 -1
- package/dist/music/scripts.js +2 -2
- package/dist/notes/prompts.js +19 -4
- package/dist/notes/prompts.js.map +1 -1
- package/dist/reminders/prompts.js +12 -2
- package/dist/reminders/prompts.js.map +1 -1
- package/dist/screen/scripts.js +1 -1
- package/dist/screen/tools.js +14 -1
- package/dist/screen/tools.js.map +1 -1
- package/dist/shared/esc.js +2 -0
- package/dist/shared/esc.js.map +1 -1
- package/dist/shared/jxa.d.ts +1 -1
- package/dist/shared/jxa.js +149 -9
- package/dist/shared/jxa.js.map +1 -1
- package/dist/shortcuts/prompts.js +18 -3
- package/dist/shortcuts/prompts.js.map +1 -1
- package/dist/shortcuts/scripts.js +4 -4
- package/dist/ui/scripts.js +8 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,8 +6,8 @@ MCP server for the entire Apple ecosystem — Notes, Reminders, Calendar, Contac
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
9
|
+
- **173 tools** (18 modules) — Apple app CRUD + system control + Apple Intelligence + UI Automation + Screen Capture + Maps + Podcasts + dynamic shortcuts
|
|
10
|
+
- **29 prompts** — per-app workflows (notes, calendar, reminders, shortcuts) + cross-module + developer workflows
|
|
11
11
|
- **11 MCP resources** — Notes, Calendar, Reminders live data URIs
|
|
12
12
|
- **JXA + Swift bridge** — JXA for basic automation, EventKit/PhotoKit for advanced features
|
|
13
13
|
- **Recurring events/reminders** — EventKit recurrence rules (macOS 26+ Swift bridge)
|
package/dist/calendar/prompts.js
CHANGED
|
@@ -21,7 +21,12 @@ export function registerCalendarPrompts(server) {
|
|
|
21
21
|
- 집중 업무 시간 확보 제안
|
|
22
22
|
5. 내가 원하면 update_event로 일정을 수정해
|
|
23
23
|
|
|
24
|
-
중요: 실제 AirMCP 도구를 사용해서 Apple Calendar 데이터를
|
|
24
|
+
중요: 실제 AirMCP 도구를 사용해서 Apple Calendar 데이터를 조회해.
|
|
25
|
+
|
|
26
|
+
에러 처리:
|
|
27
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_events 실패 시 search_events 시도)
|
|
28
|
+
- 권한 에러 시 setup_permissions 안내
|
|
29
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
25
30
|
});
|
|
26
31
|
server.prompt("meeting-prep", { eventId: z.string().describe("Event ID to prepare for") }, ({ eventId }) => {
|
|
27
32
|
return userPrompt("Read event details, find related notes, and prepare meeting context.", `미팅 준비를 도와줘.
|
|
@@ -37,7 +42,12 @@ export function registerCalendarPrompts(server) {
|
|
|
37
42
|
- 준비할 사항 제안
|
|
38
43
|
- 예상 안건
|
|
39
44
|
|
|
40
|
-
중요: 실제 AirMCP 도구를 사용해서 Apple Calendar와 Notes 데이터를
|
|
45
|
+
중요: 실제 AirMCP 도구를 사용해서 Apple Calendar와 Notes 데이터를 조회해.
|
|
46
|
+
|
|
47
|
+
에러 처리:
|
|
48
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: read_event 실패 시 search_events로 이벤트 검색)
|
|
49
|
+
- 권한 에러 시 setup_permissions 안내
|
|
50
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
41
51
|
});
|
|
42
52
|
}
|
|
43
53
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/calendar/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,EAC5G,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,OAAO,UAAU,CACf,mBAAmB,CAAC,iEAAiE,EACrF,OAAO,CAAC;;;;;6BAKa,KAAK,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/calendar/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,EAC5G,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,OAAO,UAAU,CACf,mBAAmB,CAAC,iEAAiE,EACrF,OAAO,CAAC;;;;;6BAKa,KAAK,gBAAgB,GAAG;;;;;;;;;;;;;;;;0BAgB3B,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,cAAc,EACd,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,EAC3D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,OAAO,UAAU,CACf,sEAAsE,EACtE;;;;qBAIa,OAAO;;;;;;;;;;;;;;0BAcF,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/calendar/scripts.js
CHANGED
|
@@ -280,7 +280,7 @@ export function todayEventsScript() {
|
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
all.sort((a, b) => new Date(a.startDate) - new Date(b.startDate));
|
|
283
|
-
JSON.stringify({total: all.length, events: all});
|
|
283
|
+
JSON.stringify({total: all.length, returned: all.length, events: all});
|
|
284
284
|
`;
|
|
285
285
|
}
|
|
286
286
|
//# sourceMappingURL=scripts.js.map
|
package/dist/cross/prompts.js
CHANGED
|
@@ -19,7 +19,12 @@ export function registerCrossPrompts(server) {
|
|
|
19
19
|
- body: 원본 메모 참조
|
|
20
20
|
- dueDate: 언급된 기한 (없으면 이벤트 다음 날)
|
|
21
21
|
|
|
22
|
-
중요: 삭제/수정 전에 반드시 확인을
|
|
22
|
+
중요: 삭제/수정 전에 반드시 확인을 받아.
|
|
23
|
+
|
|
24
|
+
에러 처리:
|
|
25
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: read_event 실패 시 search_events로 이벤트 검색)
|
|
26
|
+
- 권한 에러 시 setup_permissions 안내
|
|
27
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
23
28
|
});
|
|
24
29
|
server.prompt("weekly-digest", { days: z.number().int().min(1).max(30).optional().describe("Days to review (default: 7)") }, ({ days }) => {
|
|
25
30
|
const n = days ?? 7;
|
|
@@ -43,7 +48,12 @@ export function registerCrossPrompts(server) {
|
|
|
43
48
|
- 일정 조정 제안
|
|
44
49
|
- 우선 처리할 리마인더
|
|
45
50
|
|
|
46
|
-
중요: 실제 AirMCP 도구를 사용해서 Apple Notes, Calendar, Reminders 데이터를
|
|
51
|
+
중요: 실제 AirMCP 도구를 사용해서 Apple Notes, Calendar, Reminders 데이터를 조회해.
|
|
52
|
+
|
|
53
|
+
에러 처리:
|
|
54
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_events 실패 시 search_events 시도)
|
|
55
|
+
- 권한 에러 시 setup_permissions 안내
|
|
56
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
47
57
|
});
|
|
48
58
|
server.prompt("event-follow-up", { eventId: z.string().describe("Calendar event ID") }, ({ eventId }) => {
|
|
49
59
|
return userPrompt("Create follow-up note and reminders after a meeting.", `미팅 후 팔로업을 정리해줘.
|
|
@@ -62,7 +72,12 @@ export function registerCrossPrompts(server) {
|
|
|
62
72
|
b. 각 action item을 create_reminder로 생성해
|
|
63
73
|
5. 생성된 메모와 리마인더를 확인해줘
|
|
64
74
|
|
|
65
|
-
중요: 미팅 내용은 나에게 물어보고, 자의적으로 작성하지
|
|
75
|
+
중요: 미팅 내용은 나에게 물어보고, 자의적으로 작성하지 마.
|
|
76
|
+
|
|
77
|
+
에러 처리:
|
|
78
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: read_event 실패 시 search_events로 이벤트 검색)
|
|
79
|
+
- 권한 에러 시 setup_permissions 안내
|
|
80
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
66
81
|
});
|
|
67
82
|
server.prompt("daily-briefing", "Comprehensive daily briefing with today's events, due reminders, and recent notes.", () => {
|
|
68
83
|
const today = new Date();
|
|
@@ -95,7 +110,12 @@ export function registerCrossPrompts(server) {
|
|
|
95
110
|
- 우선 처리 항목
|
|
96
111
|
- 준비가 필요한 미팅
|
|
97
112
|
|
|
98
|
-
중요: 실제 AirMCP 도구를 사용해서 데이터를
|
|
113
|
+
중요: 실제 AirMCP 도구를 사용해서 데이터를 조회해.
|
|
114
|
+
|
|
115
|
+
에러 처리:
|
|
116
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_reminders 실패 시 search_reminders 시도)
|
|
117
|
+
- 권한 에러 시 setup_permissions 안내
|
|
118
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
99
119
|
});
|
|
100
120
|
server.prompt("research-with-safari", { topic: z.string().describe("Research topic to investigate") }, ({ topic }) => {
|
|
101
121
|
return userPrompt("Safari + Notes research workflow: search tabs, read content, compile findings into a note.", `"${topic}" 주제로 리서치를 진행해줘.
|
|
@@ -113,7 +133,12 @@ export function registerCrossPrompts(server) {
|
|
|
113
133
|
- 기존 메모와의 연관성 (있으면)
|
|
114
134
|
5. 추가 조사가 필요한 부분이 있으면 알려줘
|
|
115
135
|
|
|
116
|
-
중요: Safari 탭의 URL을 출처로 반드시
|
|
136
|
+
중요: Safari 탭의 URL을 출처로 반드시 포함해.
|
|
137
|
+
|
|
138
|
+
에러 처리:
|
|
139
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: read_page_content 실패 시 다른 탭 시도)
|
|
140
|
+
- 권한 에러 시 setup_permissions 안내
|
|
141
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
117
142
|
});
|
|
118
143
|
server.prompt("focus-session", { duration: z.number().optional().describe("Focus duration in hours (default: 2)") }, ({ duration }) => {
|
|
119
144
|
const hours = duration ?? 2;
|
|
@@ -146,7 +171,12 @@ export function registerCrossPrompts(server) {
|
|
|
146
171
|
- 현재 재생 상태 안내
|
|
147
172
|
- 음악을 틀거나 변경하고 싶으면 playback_control 사용 가능
|
|
148
173
|
|
|
149
|
-
중요: 집중 시간 내 미팅이 있으면 반드시
|
|
174
|
+
중요: 집중 시간 내 미팅이 있으면 반드시 경고해줘.
|
|
175
|
+
|
|
176
|
+
에러 처리:
|
|
177
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_events 실패 시 today_events 시도)
|
|
178
|
+
- 권한 에러 시 setup_permissions 안내
|
|
179
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
150
180
|
});
|
|
151
181
|
server.prompt("file-organizer", { directory: z.string().describe("Directory path to organize") }, ({ directory }) => {
|
|
152
182
|
return userPrompt("Finder + Notes file organization: scan directory, apply tags, and create summary note.", `"${directory}" 폴더의 파일을 정리해줘.
|
|
@@ -171,7 +201,12 @@ export function registerCrossPrompts(server) {
|
|
|
171
201
|
- 적용한 태그 목록
|
|
172
202
|
- 추가 정리 제안
|
|
173
203
|
|
|
174
|
-
중요: 파일 삭제/이동은 하지 말고, 태그 적용 전에 반드시 확인을
|
|
204
|
+
중요: 파일 삭제/이동은 하지 말고, 태그 적용 전에 반드시 확인을 받아.
|
|
205
|
+
|
|
206
|
+
에러 처리:
|
|
207
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_files 실패 시 list_directory 시도)
|
|
208
|
+
- 권한 에러 시 setup_permissions 안내
|
|
209
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
175
210
|
});
|
|
176
211
|
server.prompt("dev-session", { projectPath: z.string().describe("Project directory path") }, ({ projectPath }) => {
|
|
177
212
|
return userPrompt("Developer session setup: scan project, check specs, research docs, log to notes.", `"${projectPath}" 프로젝트로 개발 세션을 시작해줘.
|
|
@@ -205,7 +240,12 @@ export function registerCrossPrompts(server) {
|
|
|
205
240
|
- 오늘의 할 일 우선순위
|
|
206
241
|
- 주의할 사항
|
|
207
242
|
|
|
208
|
-
중요: 실제 파일시스템과 Apple 앱 데이터를 조회해서 정확한 컨텍스트를
|
|
243
|
+
중요: 실제 파일시스템과 Apple 앱 데이터를 조회해서 정확한 컨텍스트를 구성해.
|
|
244
|
+
|
|
245
|
+
에러 처리:
|
|
246
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_files 실패 시 list_directory 시도)
|
|
247
|
+
- 권한 에러 시 setup_permissions 안내
|
|
248
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
209
249
|
});
|
|
210
250
|
server.prompt("debug-loop", {
|
|
211
251
|
errorMessage: z.string().optional().describe("Error message or bug description"),
|
|
@@ -245,7 +285,12 @@ export function registerCrossPrompts(server) {
|
|
|
245
285
|
- 제안하는 수정 순서
|
|
246
286
|
- 추가 조사가 필요한 부분
|
|
247
287
|
|
|
248
|
-
중요: 에러 분석은 실제 데이터 기반으로. 추측만으로 판단하지
|
|
288
|
+
중요: 에러 분석은 실제 데이터 기반으로. 추측만으로 판단하지 마.
|
|
289
|
+
|
|
290
|
+
에러 처리:
|
|
291
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_files 실패 시 list_directory 시도)
|
|
292
|
+
- 권한 에러 시 setup_permissions 안내
|
|
293
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
249
294
|
});
|
|
250
295
|
server.prompt("screen-capture-flow", {
|
|
251
296
|
description: z.string().optional().describe("What to capture/document"),
|
|
@@ -279,7 +324,12 @@ export function registerCrossPrompts(server) {
|
|
|
279
324
|
|
|
280
325
|
5. **알림**: show_notification으로 캡처 완료 알림
|
|
281
326
|
|
|
282
|
-
중요: 캡처 전에 준비가 필요하면 나에게 알려줘. 민감한 정보가 포함될 수 있으니 확인 후
|
|
327
|
+
중요: 캡처 전에 준비가 필요하면 나에게 알려줘. 민감한 정보가 포함될 수 있으니 확인 후 진행.
|
|
328
|
+
|
|
329
|
+
에러 처리:
|
|
330
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: capture_screenshot 실패 시 capture_window 시도)
|
|
331
|
+
- 권한 에러 시 setup_permissions 안내
|
|
332
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
283
333
|
});
|
|
284
334
|
server.prompt("app-release-prep", {
|
|
285
335
|
appName: z.string().describe("Application/project name"),
|
|
@@ -327,7 +377,12 @@ export function registerCrossPrompts(server) {
|
|
|
327
377
|
- 알려진 이슈
|
|
328
378
|
- 업그레이드 가이드 (필요 시)
|
|
329
379
|
|
|
330
|
-
중요: 빌드 트리거 전에 반드시 확인을 받아. 체크리스트 항목은 상황에 맞게
|
|
380
|
+
중요: 빌드 트리거 전에 반드시 확인을 받아. 체크리스트 항목은 상황에 맞게 조정해.
|
|
381
|
+
|
|
382
|
+
에러 처리:
|
|
383
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_events 실패 시 list_events 시도)
|
|
384
|
+
- 권한 에러 시 setup_permissions 안내
|
|
385
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
331
386
|
});
|
|
332
387
|
server.prompt("idea-to-task", { idea: z.string().describe("Idea or feature description to break down into tasks") }, ({ idea }) => {
|
|
333
388
|
return userPrompt("Idea to task pipeline: capture idea in Notes, decompose into tasks, create reminders, block calendar.", `"${idea}" 아이디어를 태스크로 분해해줘.
|
|
@@ -364,7 +419,12 @@ export function registerCrossPrompts(server) {
|
|
|
364
419
|
- 타임라인 제안
|
|
365
420
|
- 리스크/의존성 경고
|
|
366
421
|
|
|
367
|
-
중요: 태스크 분해 결과를 먼저 보여주고 확인받은 후에 리마인더/캘린더를
|
|
422
|
+
중요: 태스크 분해 결과를 먼저 보여주고 확인받은 후에 리마인더/캘린더를 생성해.
|
|
423
|
+
|
|
424
|
+
에러 처리:
|
|
425
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: create_reminder 실패 시 재시도 또는 다음 항목으로)
|
|
426
|
+
- 권한 에러 시 setup_permissions 안내
|
|
427
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
368
428
|
});
|
|
369
429
|
server.prompt("build-log", { projectPath: z.string().describe("Project build output directory or project root") }, ({ projectPath }) => {
|
|
370
430
|
return userPrompt("Build log analysis: check build output, log errors to Notes, celebrate success with Music.", `"${projectPath}" 빌드 결과를 분석해줘.
|
|
@@ -407,7 +467,12 @@ export function registerCrossPrompts(server) {
|
|
|
407
467
|
- 빌드 결과 (성공/실패)
|
|
408
468
|
- 다음 단계 제안
|
|
409
469
|
|
|
410
|
-
중요: 빌드 결과는 실제 파일 시스템 데이터 기반으로
|
|
470
|
+
중요: 빌드 결과는 실제 파일 시스템 데이터 기반으로 판단해.
|
|
471
|
+
|
|
472
|
+
에러 처리:
|
|
473
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_files 실패 시 list_directory 시도)
|
|
474
|
+
- 권한 에러 시 setup_permissions 안내
|
|
475
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
411
476
|
});
|
|
412
477
|
// ── Professional Workflow Prompts ──
|
|
413
478
|
server.prompt("inbox-zero", "Professional email triage: scan, categorize, draft replies, create follow-ups, archive.", () => {
|
|
@@ -452,7 +517,12 @@ export function registerCrossPrompts(server) {
|
|
|
452
517
|
- 답장이 필요한 메일 목록과 초안
|
|
453
518
|
- 일정 충돌 경고
|
|
454
519
|
|
|
455
|
-
중요: 메일 삭제나 답장 전송은 반드시 확인을 받아. 분류 결과를 먼저 보여주고
|
|
520
|
+
중요: 메일 삭제나 답장 전송은 반드시 확인을 받아. 분류 결과를 먼저 보여주고 진행해.
|
|
521
|
+
|
|
522
|
+
에러 처리:
|
|
523
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_messages 실패 시 search_messages 시도)
|
|
524
|
+
- 권한 에러 시 setup_permissions 안내
|
|
525
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
456
526
|
});
|
|
457
527
|
server.prompt("travel-planner", {
|
|
458
528
|
destination: z.string().describe("Travel destination"),
|
|
@@ -509,7 +579,12 @@ export function registerCrossPrompts(server) {
|
|
|
509
579
|
- 목적지 주요 정보 (위치, 이동시간)
|
|
510
580
|
- 추가로 준비할 사항 제안
|
|
511
581
|
|
|
512
|
-
중요: 캘린더 이벤트 생성 전에 반드시 확인을 받아. 기존 일정과의 충돌을 반드시
|
|
582
|
+
중요: 캘린더 이벤트 생성 전에 반드시 확인을 받아. 기존 일정과의 충돌을 반드시 알려줘.
|
|
583
|
+
|
|
584
|
+
에러 처리:
|
|
585
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: search_location 실패 시 search_nearby 시도)
|
|
586
|
+
- 권한 에러 시 setup_permissions 안내
|
|
587
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
513
588
|
});
|
|
514
589
|
server.prompt("content-curator", { topic: z.string().describe("Research topic or content area to curate") }, ({ topic }) => {
|
|
515
590
|
const today = new Date().toISOString().split("T")[0];
|
|
@@ -564,7 +639,12 @@ export function registerCrossPrompts(server) {
|
|
|
564
639
|
- 생성된 노트/리마인더 목록
|
|
565
640
|
- 추가 조사 제안
|
|
566
641
|
|
|
567
|
-
중요: 출처 URL을 반드시 포함해. 요약은 원문의 맥락을 보존하되
|
|
642
|
+
중요: 출처 URL을 반드시 포함해. 요약은 원문의 맥락을 보존하되 간결하게.
|
|
643
|
+
|
|
644
|
+
에러 처리:
|
|
645
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: read_page_content 실패 시 다른 탭 시도)
|
|
646
|
+
- 권한 에러 시 setup_permissions 안내
|
|
647
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
568
648
|
});
|
|
569
649
|
server.prompt("morning-brief", "Comprehensive morning briefing: calendar, reminders, email, notes, music, system status.", () => {
|
|
570
650
|
const today = new Date();
|
|
@@ -647,7 +727,12 @@ export function registerCrossPrompts(server) {
|
|
|
647
727
|
- 준비가 필요한 미팅
|
|
648
728
|
- 집중 작업 추천 시간대
|
|
649
729
|
|
|
650
|
-
중요: 모든 데이터는 실제 AirMCP 도구로 조회해서 정확한 정보를
|
|
730
|
+
중요: 모든 데이터는 실제 AirMCP 도구로 조회해서 정확한 정보를 제공해.
|
|
731
|
+
|
|
732
|
+
에러 처리:
|
|
733
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_messages 실패 시 get_unread_count만 시도)
|
|
734
|
+
- 권한 에러 시 setup_permissions 안내
|
|
735
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
651
736
|
});
|
|
652
737
|
server.prompt("project-kickoff", {
|
|
653
738
|
projectName: z.string().describe("Name of the new project"),
|
|
@@ -717,7 +802,12 @@ ${description ? `프로젝트 설명: ${description}` : ""}
|
|
|
717
802
|
- 생성된 캘린더 이벤트 (있으면)
|
|
718
803
|
- 다음 단계 제안
|
|
719
804
|
|
|
720
|
-
중요: 캘린더 이벤트는 시간 확인 후 생성. 폴더/노트/리마인더는 바로 생성
|
|
805
|
+
중요: 캘린더 이벤트는 시간 확인 후 생성. 폴더/노트/리마인더는 바로 생성 가능.
|
|
806
|
+
|
|
807
|
+
에러 처리:
|
|
808
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: create_folder 실패 시 기본 폴더에 노트 생성)
|
|
809
|
+
- 권한 에러 시 setup_permissions 안내
|
|
810
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
721
811
|
});
|
|
722
812
|
server.prompt("weekly-review", { days: z.number().int().min(1).max(14).optional().describe("Review period in days (default: 7)") }, ({ days }) => {
|
|
723
813
|
const n = days ?? 7;
|
|
@@ -796,7 +886,12 @@ ${description ? `프로젝트 설명: ${description}` : ""}
|
|
|
796
886
|
- create_reminder("[주간 리뷰] 이월 항목 정리", dueDate: 다음 월요일)
|
|
797
887
|
- 필요하면 추가 팔로업 리마인더
|
|
798
888
|
|
|
799
|
-
중요: 모든 데이터는 실제 AirMCP 도구로 조회해. 통계는 정확한 수치를
|
|
889
|
+
중요: 모든 데이터는 실제 AirMCP 도구로 조회해. 통계는 정확한 수치를 제공해.
|
|
890
|
+
|
|
891
|
+
에러 처리:
|
|
892
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_reminders 실패 시 search_reminders 시도)
|
|
893
|
+
- 권한 에러 시 setup_permissions 안내
|
|
894
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
800
895
|
});
|
|
801
896
|
}
|
|
802
897
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cross/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,MAAM,CACX,4BAA4B,EAC5B,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC,EAAE,EAClF,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,OAAO,UAAU,CACf,+DAA+D,EAC/D;;;;qBAIa,OAAO
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cross/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -149,12 +149,13 @@ async function main() {
|
|
|
149
149
|
const app = express();
|
|
150
150
|
app.use(express.json());
|
|
151
151
|
const transports = new Map();
|
|
152
|
-
const
|
|
152
|
+
const MAX_SESSIONS = 50;
|
|
153
|
+
const SESSION_IDLE_TTL = 5 * 60 * 1000; // 5 minutes — orphaned/idle session cleanup
|
|
153
154
|
const sessionActivity = new Map();
|
|
154
155
|
const cleanupInterval = setInterval(() => {
|
|
155
156
|
const now = Date.now();
|
|
156
157
|
for (const [id, lastActive] of sessionActivity) {
|
|
157
|
-
if (now - lastActive >
|
|
158
|
+
if (now - lastActive > SESSION_IDLE_TTL) {
|
|
158
159
|
const transport = transports.get(id);
|
|
159
160
|
if (transport)
|
|
160
161
|
transport.close?.();
|
|
@@ -162,7 +163,7 @@ async function main() {
|
|
|
162
163
|
sessionActivity.delete(id);
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
|
-
},
|
|
166
|
+
}, 1 * 60 * 1000); // cleanup every 1 minute
|
|
166
167
|
process.on("exit", () => clearInterval(cleanupInterval));
|
|
167
168
|
app.post("/mcp", async (req, res) => {
|
|
168
169
|
try {
|
|
@@ -180,6 +181,14 @@ async function main() {
|
|
|
180
181
|
});
|
|
181
182
|
return;
|
|
182
183
|
}
|
|
184
|
+
if (transports.size >= MAX_SESSIONS) {
|
|
185
|
+
res.status(503).json({
|
|
186
|
+
jsonrpc: "2.0",
|
|
187
|
+
error: { code: -32000, message: "Too many concurrent sessions. Try again later." },
|
|
188
|
+
id: null,
|
|
189
|
+
});
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
183
192
|
const transport = new StreamableHTTPServerTransport({
|
|
184
193
|
sessionIdGenerator: () => randomUUID(),
|
|
185
194
|
onsessioninitialized: (id) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,8CAA8C;AAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM;QACzB,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC;QAC/B,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAE,GAAsC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAE,GAAwC,CAAC,SAAS,EAAE,CAAC,CAAC;IACpI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAC;AAE5G,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;AAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AAEjC,mEAAmE;AACnE,IAAI,UAAU,GAAsB,IAAI,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;IAChC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,KAAK,aAAa,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACtI,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACxC,CAAC;AAED,+BAA+B;AAC/B,SAAS,MAAM;IACb,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,GAAG,IAAI,CAAC;QAClB,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC9C,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,eAAe,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5E,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,oBAAoB,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,gBAAgB,GAAG,IAAI,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/D,0EAA0E;IAC1E,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,YAAY,YAAY,oCAAoC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,0DAA0D;IAC1D,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,gBAAgB;IAChB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,sBAAsB;IACtB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,sFAAsF;IACtF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,yFAAyF;YACzF,oFAAoF;QACtF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACtF,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAClB,QAAQ,EAAE;iBACV,QAAQ,CAAC,qCAAqC,CAAC;SACnD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACvB,8DAA8D;QAC9D,MAAM,OAAO,GAAI,MAAc,CAAC,kBAAoF,CAAC;QACrH,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC,mBAAmB,IAAI,iBAAiB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE1F,KAAK,UAAU,IAAI;IACjB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAClD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;QACpE,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACjD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAElD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC/C,IAAI,GAAG,GAAG,UAAU,GAAG,WAAW,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrC,IAAI,SAAS;wBAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACtB,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QAEzD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;gBAEtE,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3C,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC3C,MAAM,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnE,OAAO;gBACT,CAAC;gBAED,IAAI,SAAS,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE;wBAC7E,EAAE,EAAE,IAAI;qBACT,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;oBAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;oBACtC,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;wBAC3B,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC9B,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,CAAC;oBACD,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;wBACtB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACtB,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;iBACF,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBACpC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBAClD,EAAE,EAAE,IAAI;qBACT,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;gBACtE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;oBACjE,OAAO;gBACT,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,MAAM,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;gBACtE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;oBACjE,OAAO;gBACT,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,MAAM,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,uBAAuB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,oBAAoB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9O,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,iDAAiD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,oBAAoB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACvN,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mail/tools.js
CHANGED
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { runJxa } from "../shared/jxa.js";
|
|
3
3
|
import { ok, err } from "../shared/result.js";
|
|
4
4
|
import { listMailboxesScript, listMessagesScript, readMessageScript, searchMessagesScript, markReadScript, flagMessageScript, getUnreadCountScript, moveMessageScript, listAccountsScript, sendMailScript, replyMailScript, } from "./scripts.js";
|
|
5
|
+
const MAX_RECIPIENTS = 20;
|
|
5
6
|
export function registerMailTools(server, config) {
|
|
6
7
|
const { allowSendMail } = config;
|
|
7
8
|
server.registerTool("list_mailboxes", {
|
|
@@ -147,11 +148,11 @@ export function registerMailTools(server, config) {
|
|
|
147
148
|
title: "Send Email",
|
|
148
149
|
description: "Compose and send an email via Apple Mail. Requires allowSendMail config.",
|
|
149
150
|
inputSchema: {
|
|
150
|
-
to: z.array(z.string().email()).min(1).describe(
|
|
151
|
+
to: z.array(z.string().email()).min(1).max(MAX_RECIPIENTS).describe(`Recipient email addresses (max ${MAX_RECIPIENTS})`),
|
|
151
152
|
subject: z.string().describe("Email subject"),
|
|
152
153
|
body: z.string().describe("Email body text"),
|
|
153
|
-
cc: z.array(z.string().email()).optional().describe(
|
|
154
|
-
bcc: z.array(z.string().email()).optional().describe(
|
|
154
|
+
cc: z.array(z.string().email()).max(MAX_RECIPIENTS).optional().describe(`CC recipients (max ${MAX_RECIPIENTS})`),
|
|
155
|
+
bcc: z.array(z.string().email()).max(MAX_RECIPIENTS).optional().describe(`BCC recipients (max ${MAX_RECIPIENTS})`),
|
|
155
156
|
account: z.string().optional().describe("Sender email address (uses default account if omitted)"),
|
|
156
157
|
},
|
|
157
158
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
|
package/dist/mail/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mail/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAoB;IACvE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,6BAA6B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+FAA+F;QAC5G,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACnF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACtG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,4BAA4B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iHAAiH;QAC9H,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACzH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC9F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACrG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC/F;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACnF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACxG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,4BAA4B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4CAA4C;IAE5C,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mail/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAoB;IACvE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,6BAA6B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+FAA+F;QAC5G,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACnF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACtG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,4BAA4B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iHAAiH;QAC9H,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACzH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YAC9F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACrG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC/F;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAClG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACnF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACxG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,4BAA4B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4CAA4C;IAE5C,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,kCAAkC,cAAc,GAAG,CAAC;YACxH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC5C,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,cAAc,GAAG,CAAC;YAChH,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,cAAc,GAAG,CAAC;YAClH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAClG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC9H,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,wBAAwB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC5C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACrG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC9H,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,oBAAoB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/messages/scripts.js
CHANGED
|
@@ -92,7 +92,7 @@ export function searchMessagesScript(query, limit) {
|
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
JSON.stringify({returned: result.length, chats: result});
|
|
95
|
+
JSON.stringify({total: chats.length, returned: result.length, chats: result});
|
|
96
96
|
`;
|
|
97
97
|
}
|
|
98
98
|
export function sendMessageScript(target, text) {
|
package/dist/music/scripts.js
CHANGED
|
@@ -78,7 +78,7 @@ export function searchTracksScript(query, limit) {
|
|
|
78
78
|
const Music = Application('Music');
|
|
79
79
|
const lib = Music.playlists.whose({name: 'Library'})();
|
|
80
80
|
if (lib.length === 0) {
|
|
81
|
-
JSON.stringify({returned: 0, tracks: []});
|
|
81
|
+
JSON.stringify({total: 0, returned: 0, tracks: []});
|
|
82
82
|
} else {
|
|
83
83
|
const tracks = lib[0].tracks();
|
|
84
84
|
const q = '${esc(query)}'.toLowerCase();
|
|
@@ -97,7 +97,7 @@ export function searchTracksScript(query, limit) {
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
JSON.stringify({returned: result.length, tracks: result});
|
|
100
|
+
JSON.stringify({total: tracks.length, returned: result.length, tracks: result});
|
|
101
101
|
}
|
|
102
102
|
`;
|
|
103
103
|
}
|
package/dist/notes/prompts.js
CHANGED
|
@@ -13,7 +13,12 @@ export function registerNotePrompts(server) {
|
|
|
13
13
|
4. 확인 후 create_folder로 필요한 폴더를 생성해
|
|
14
14
|
5. bulk_move_notes로 메모를 해당 폴더로 실제 이동시켜
|
|
15
15
|
|
|
16
|
-
중요: MD 파일을 작성하지 말고, 실제 Apple Notes 앱에서 폴더를 만들고 메모를 이동해야
|
|
16
|
+
중요: MD 파일을 작성하지 말고, 실제 Apple Notes 앱에서 폴더를 만들고 메모를 이동해야 해.
|
|
17
|
+
|
|
18
|
+
에러 처리:
|
|
19
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: scan_notes 실패 시 list_notes 시도)
|
|
20
|
+
- 권한 에러 시 setup_permissions 안내
|
|
21
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
17
22
|
});
|
|
18
23
|
server.prompt("find-duplicates", { folder: z.string().optional().describe("Folder to scan for duplicates. Defaults to all.") }, ({ folder }) => {
|
|
19
24
|
const scope = folder ? `"${folder}" 폴더의` : "전체";
|
|
@@ -27,9 +32,14 @@ export function registerNotePrompts(server) {
|
|
|
27
32
|
4. 각 그룹별로 "어떤 걸 남기고 어떤 걸 삭제할지" 제안해
|
|
28
33
|
5. 나의 확인 후 delete_note로 중복 메모를 삭제해
|
|
29
34
|
|
|
30
|
-
중요: 삭제 전에 반드시 나에게 확인을 받아. 미리보기만 보고 판단하지 말고 compare_notes로 전체 내용을
|
|
35
|
+
중요: 삭제 전에 반드시 나에게 확인을 받아. 미리보기만 보고 판단하지 말고 compare_notes로 전체 내용을 확인해.
|
|
36
|
+
|
|
37
|
+
에러 처리:
|
|
38
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: compare_notes 실패 시 read_note로 개별 확인)
|
|
39
|
+
- 권한 에러 시 setup_permissions 안내
|
|
40
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
31
41
|
});
|
|
32
|
-
server.prompt("weekly-review", "Summarize notes from the past week and suggest organization actions.", () => {
|
|
42
|
+
server.prompt("notes-weekly-review", "Summarize notes from the past week and suggest organization actions.", () => {
|
|
33
43
|
const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
|
|
34
44
|
return userPrompt("Summarize notes from the past week and suggest organization actions.", `Apple Notes 주간 리뷰를 해줘.
|
|
35
45
|
|
|
@@ -41,7 +51,12 @@ export function registerNotePrompts(server) {
|
|
|
41
51
|
4. 정리가 필요한 메모가 있으면 제안해 (미분류, 빈 메모 등)
|
|
42
52
|
5. 내가 원하면 폴더 이동이나 삭제를 실행해
|
|
43
53
|
|
|
44
|
-
중요: 실제 AirMCP 도구를 사용해서 Apple Notes 데이터를
|
|
54
|
+
중요: 실제 AirMCP 도구를 사용해서 Apple Notes 데이터를 조회해.
|
|
55
|
+
|
|
56
|
+
에러 처리:
|
|
57
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: scan_notes 실패 시 list_notes 시도)
|
|
58
|
+
- 권한 에러 시 setup_permissions 안내
|
|
59
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
45
60
|
});
|
|
46
61
|
}
|
|
47
62
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/notes/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,EAC7F,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;QACjC,OAAO,UAAU,CACf,8EAA8E,EAC9E,iBAAiB,MAAM;;;;yBAIN,MAAM
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/notes/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,EAC7F,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;QACjC,OAAO,UAAU,CACf,8EAA8E,EAC9E,iBAAiB,MAAM;;;;yBAIN,MAAM;;;;;;;;;;;0BAWL,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,EAC7F,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,OAAO,UAAU,CACf,wEAAwE,EACxE,iBAAiB,KAAK;;;;;;;;;;;;;;;0BAeJ,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,qBAAqB,EACrB,sEAAsE,EACtE,GAAG,EAAE;QACH,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChF,OAAO,UAAU,CACf,sEAAsE,EACtE;;;;;KAKH,UAAU;;;;;;;;;;0BAUW,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -16,7 +16,12 @@ export function registerReminderPrompts(server) {
|
|
|
16
16
|
- 비슷한 항목 통합
|
|
17
17
|
5. 나의 확인 후 delete_reminder 또는 update_reminder로 실행해
|
|
18
18
|
|
|
19
|
-
중요: 삭제 전에 반드시 나에게 확인을
|
|
19
|
+
중요: 삭제 전에 반드시 나에게 확인을 받아.
|
|
20
|
+
|
|
21
|
+
에러 처리:
|
|
22
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_reminders 실패 시 search_reminders 시도)
|
|
23
|
+
- 권한 에러 시 setup_permissions 안내
|
|
24
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
20
25
|
});
|
|
21
26
|
server.prompt("daily-review", "Review today's due reminders and suggest priorities.", () => {
|
|
22
27
|
const today = new Date().toISOString().split("T")[0];
|
|
@@ -34,7 +39,12 @@ export function registerReminderPrompts(server) {
|
|
|
34
39
|
4. 우선 처리할 항목을 제안해
|
|
35
40
|
5. 내가 원하면 complete_reminder로 완료 처리하거나 update_reminder로 기한을 변경해
|
|
36
41
|
|
|
37
|
-
중요: 실제 AirMCP 도구를 사용해서 Apple Reminders 데이터를
|
|
42
|
+
중요: 실제 AirMCP 도구를 사용해서 Apple Reminders 데이터를 조회해.
|
|
43
|
+
|
|
44
|
+
에러 처리:
|
|
45
|
+
- 도구 호출 실패 시 사용자에게 알리고 대안 도구 시도 (예: list_reminders 실패 시 search_reminders 시도)
|
|
46
|
+
- 권한 에러 시 setup_permissions 안내
|
|
47
|
+
- 앱이 응답하지 않으면 다음 단계로 건너뛰기`);
|
|
38
48
|
});
|
|
39
49
|
}
|
|
40
50
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/reminders/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,EACpF,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,OAAO,UAAU,CACf,kEAAkE,EAClE,qBAAqB,KAAK
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/reminders/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,EACpF,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,OAAO,UAAU,CACf,kEAAkE,EAClE,qBAAqB,KAAK;;;;;;;;;;;;;;;;;;0BAkBR,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,cAAc,EACd,sDAAsD,EACtD,GAAG,EAAE;QACH,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,UAAU,CACf,2EAA2E,EAC3E,MAAM,KAAK;;;;;;;;;;;;;;;;;;;0BAmBO,CACnB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/screen/scripts.js
CHANGED
|
@@ -30,7 +30,7 @@ export function captureScreenScript(display) {
|
|
|
30
30
|
export function captureWindowScript(appName) {
|
|
31
31
|
const filePath = tempScreenshotPath();
|
|
32
32
|
const activateBlock = appName
|
|
33
|
-
? `Application('${esc(appName)}').activate(); delay(0
|
|
33
|
+
? `Application('${esc(appName)}').activate(); delay(1.0);`
|
|
34
34
|
: "";
|
|
35
35
|
const targetApp = appName ? `'${esc(appName)}'` : "null";
|
|
36
36
|
return `
|
package/dist/screen/tools.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readFile, unlink } from "node:fs/promises";
|
|
2
|
+
import { readFile, stat, unlink } from "node:fs/promises";
|
|
3
3
|
import { runJxa } from "../shared/jxa.js";
|
|
4
4
|
import { toolError } from "../shared/result.js";
|
|
5
5
|
import { captureScreenScript, captureWindowScript, captureAreaScript, listWindowsScript, recordScreenScript, } from "./scripts.js";
|
|
6
|
+
const MAX_CAPTURE_SIZE = 5 * 1024 * 1024; // 5MB
|
|
6
7
|
/**
|
|
7
8
|
* Run a JXA capture script that returns { path: string },
|
|
8
9
|
* read the resulting PNG as base64, clean up the temp file,
|
|
@@ -12,6 +13,10 @@ async function captureAndReturn(script) {
|
|
|
12
13
|
const result = await runJxa(script);
|
|
13
14
|
const filePath = result.path;
|
|
14
15
|
try {
|
|
16
|
+
const { size } = await stat(filePath);
|
|
17
|
+
if (size > MAX_CAPTURE_SIZE) {
|
|
18
|
+
throw new Error("Screenshot too large (>5MB). Use capture_area for a smaller region or reduce resolution.");
|
|
19
|
+
}
|
|
15
20
|
const buffer = await readFile(filePath);
|
|
16
21
|
const base64 = buffer.toString("base64");
|
|
17
22
|
return {
|
|
@@ -147,6 +152,14 @@ export function registerScreenTools(server, _config) {
|
|
|
147
152
|
}, async ({ duration, display }) => {
|
|
148
153
|
try {
|
|
149
154
|
const result = await runJxa(recordScreenScript(duration, display));
|
|
155
|
+
const { size } = await stat(result.path);
|
|
156
|
+
if (size > MAX_CAPTURE_SIZE) {
|
|
157
|
+
try {
|
|
158
|
+
await unlink(result.path);
|
|
159
|
+
}
|
|
160
|
+
catch { /* ignore */ }
|
|
161
|
+
throw new Error("Recording too large (>5MB). Use a shorter duration or smaller region.");
|
|
162
|
+
}
|
|
150
163
|
return {
|
|
151
164
|
content: [
|
|
152
165
|
{
|
package/dist/screen/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/screen/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/screen/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/esc.js
CHANGED
|
@@ -7,6 +7,8 @@ export function esc(str) {
|
|
|
7
7
|
.replace(/\n/g, "\\n")
|
|
8
8
|
.replace(/\r/g, "\\r")
|
|
9
9
|
.replace(/\t/g, "\\t")
|
|
10
|
+
// eslint-disable-next-line no-control-regex
|
|
11
|
+
.replace(/[\x01-\x08\x0b\x0c\x0e-\x1f]/g, "")
|
|
10
12
|
.replace(/\u2028/g, "\\u2028")
|
|
11
13
|
.replace(/\u2029/g, "\\u2029");
|
|
12
14
|
}
|
package/dist/shared/esc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esc.js","sourceRoot":"","sources":["../../src/shared/esc.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"esc.js","sourceRoot":"","sources":["../../src/shared/esc.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,4CAA4C;SAC3C,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC;SAC5C,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,SAAS;SACb,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/shared/jxa.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function runJxa<T>(script: string): Promise<T>;
|
|
1
|
+
export declare function runJxa<T>(script: string, appName?: string): Promise<T>;
|
package/dist/shared/jxa.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
-
import { promisify } from "node:util";
|
|
3
|
-
const execFileAsync = promisify(execFile);
|
|
4
2
|
const TIMEOUT_MS = 30_000;
|
|
5
3
|
const MAX_BUFFER = 10 * 1024 * 1024; // 10 MB
|
|
6
4
|
const MAX_RETRIES = 2; // up to 3 total attempts
|
|
@@ -10,6 +8,119 @@ const TRANSIENT_PATTERNS = [
|
|
|
10
8
|
"Connection is invalid",
|
|
11
9
|
"-1728",
|
|
12
10
|
];
|
|
11
|
+
// ── Fix 6: PII scrubbing ──────────────────────────────────────────────
|
|
12
|
+
const EMAIL_RE = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g;
|
|
13
|
+
const PATH_RE = /\/Users\/[^\s'",;)}\]]+/g;
|
|
14
|
+
const MAX_ERR_LEN = 200;
|
|
15
|
+
function scrubPii(msg) {
|
|
16
|
+
return msg
|
|
17
|
+
.replace(EMAIL_RE, "[email]")
|
|
18
|
+
.replace(PATH_RE, "[path]")
|
|
19
|
+
.slice(0, MAX_ERR_LEN);
|
|
20
|
+
}
|
|
21
|
+
// ── Fix 4: Concurrency semaphore ──────────────────────────────────────
|
|
22
|
+
const MAX_CONCURRENT = 3;
|
|
23
|
+
class Semaphore {
|
|
24
|
+
running = 0;
|
|
25
|
+
queue = [];
|
|
26
|
+
async acquire() {
|
|
27
|
+
if (this.running < MAX_CONCURRENT) {
|
|
28
|
+
this.running++;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
return new Promise((resolve) => {
|
|
32
|
+
this.queue.push(() => {
|
|
33
|
+
this.running++;
|
|
34
|
+
resolve();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
release() {
|
|
39
|
+
this.running--;
|
|
40
|
+
const next = this.queue.shift();
|
|
41
|
+
if (next)
|
|
42
|
+
next();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const semaphore = new Semaphore();
|
|
46
|
+
// ── Fix 5: Circuit breaker ────────────────────────────────────────────
|
|
47
|
+
const FAILURE_THRESHOLD = 3;
|
|
48
|
+
const OPEN_DURATION_MS = 60_000;
|
|
49
|
+
const MAX_CIRCUITS = 50;
|
|
50
|
+
const circuits = new Map();
|
|
51
|
+
function getCircuit(app) {
|
|
52
|
+
let c = circuits.get(app);
|
|
53
|
+
if (!c) {
|
|
54
|
+
// Evict oldest entry if map is at capacity.
|
|
55
|
+
if (circuits.size >= MAX_CIRCUITS) {
|
|
56
|
+
const oldest = circuits.keys().next().value;
|
|
57
|
+
circuits.delete(oldest);
|
|
58
|
+
}
|
|
59
|
+
c = { failures: 0, state: "closed", openedAt: 0 };
|
|
60
|
+
circuits.set(app, c);
|
|
61
|
+
}
|
|
62
|
+
return c;
|
|
63
|
+
}
|
|
64
|
+
function checkCircuit(app) {
|
|
65
|
+
const c = getCircuit(app);
|
|
66
|
+
if (c.state === "open") {
|
|
67
|
+
if (Date.now() - c.openedAt >= OPEN_DURATION_MS) {
|
|
68
|
+
c.state = "half-open";
|
|
69
|
+
return; // allow probe
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Circuit open for ${app} — failing fast`);
|
|
72
|
+
}
|
|
73
|
+
// closed or half-open: allow
|
|
74
|
+
}
|
|
75
|
+
function recordSuccess(app) {
|
|
76
|
+
const c = getCircuit(app);
|
|
77
|
+
c.failures = 0;
|
|
78
|
+
c.state = "closed";
|
|
79
|
+
}
|
|
80
|
+
function recordFailure(app) {
|
|
81
|
+
const c = getCircuit(app);
|
|
82
|
+
c.failures++;
|
|
83
|
+
if (c.failures >= FAILURE_THRESHOLD || c.state === "half-open") {
|
|
84
|
+
c.state = "open";
|
|
85
|
+
c.openedAt = Date.now();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** Try to extract Application('Name') from a JXA script string. */
|
|
89
|
+
function extractAppName(script) {
|
|
90
|
+
const m = script.match(/Application\s*\(\s*['"]([^'"]+)['"]\s*\)/);
|
|
91
|
+
return m?.[1];
|
|
92
|
+
}
|
|
93
|
+
// ── Fix 3: SIGKILL fallback helper ────────────────────────────────────
|
|
94
|
+
const SIGKILL_GRACE_MS = 3_000;
|
|
95
|
+
function execJxa(script, timeout) {
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
let settled = false;
|
|
98
|
+
const child = execFile("osascript", ["-l", "JavaScript", "-e", script], { timeout, maxBuffer: MAX_BUFFER }, (error, stdout) => {
|
|
99
|
+
if (settled)
|
|
100
|
+
return;
|
|
101
|
+
settled = true;
|
|
102
|
+
if (error) {
|
|
103
|
+
reject(error);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
resolve(stdout);
|
|
107
|
+
});
|
|
108
|
+
// After Node sends SIGTERM (on timeout), wait then escalate to SIGKILL.
|
|
109
|
+
child.on("close", () => {
|
|
110
|
+
// Process has exited — nothing more to do.
|
|
111
|
+
settled = true;
|
|
112
|
+
});
|
|
113
|
+
// Safety: if the process is still alive after timeout + grace, force-kill.
|
|
114
|
+
const killTimer = setTimeout(() => {
|
|
115
|
+
if (child && !child.killed && child.exitCode === null) {
|
|
116
|
+
child.kill("SIGKILL");
|
|
117
|
+
}
|
|
118
|
+
}, timeout + SIGKILL_GRACE_MS);
|
|
119
|
+
// Don't keep the Node process alive just for this timer.
|
|
120
|
+
killTimer.unref();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
// ── Transient detection ───────────────────────────────────────────────
|
|
13
124
|
function isTransient(e) {
|
|
14
125
|
const err = e;
|
|
15
126
|
if (err.killed || err.signal === "SIGTERM")
|
|
@@ -17,21 +128,41 @@ function isTransient(e) {
|
|
|
17
128
|
const msg = `${err.stderr ?? ""} ${err.message ?? ""}`;
|
|
18
129
|
return TRANSIENT_PATTERNS.some((p) => msg.includes(p));
|
|
19
130
|
}
|
|
20
|
-
|
|
131
|
+
// ── Main entry point ──────────────────────────────────────────────────
|
|
132
|
+
export async function runJxa(script, appName) {
|
|
133
|
+
// Resolve app name for circuit breaker (prefer explicit, fall back to extraction).
|
|
134
|
+
const app = appName ?? extractAppName(script);
|
|
135
|
+
// Fix 5: check circuit breaker (skip if no app name).
|
|
136
|
+
if (app)
|
|
137
|
+
checkCircuit(app);
|
|
138
|
+
// Fix 4: acquire semaphore slot.
|
|
139
|
+
await semaphore.acquire();
|
|
140
|
+
try {
|
|
141
|
+
return await runJxaInner(script, app);
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
semaphore.release();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function runJxaInner(script, app) {
|
|
21
148
|
let stdout;
|
|
22
149
|
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
23
150
|
try {
|
|
24
|
-
|
|
25
|
-
stdout = result.stdout;
|
|
151
|
+
stdout = await execJxa(script, TIMEOUT_MS);
|
|
26
152
|
break;
|
|
27
153
|
}
|
|
28
154
|
catch (e) {
|
|
29
155
|
if (!isTransient(e) || attempt === MAX_RETRIES) {
|
|
30
156
|
const err = e;
|
|
31
|
-
if (
|
|
157
|
+
if (app)
|
|
158
|
+
recordFailure(app);
|
|
159
|
+
if (err.killed || err.signal === "SIGTERM" || err.signal === "SIGKILL") {
|
|
32
160
|
throw new Error(`osascript timed out after ${TIMEOUT_MS / 1000}s`, { cause: e });
|
|
33
161
|
}
|
|
34
|
-
|
|
162
|
+
// Fix 6: scrub PII from error messages.
|
|
163
|
+
const rawMsg = `${err.stderr ?? ""} ${err.message ?? ""}`.trim();
|
|
164
|
+
const cleanMsg = scrubPii(rawMsg);
|
|
165
|
+
throw new Error(`osascript error: ${cleanMsg}`, { cause: e });
|
|
35
166
|
}
|
|
36
167
|
console.error(`[AirMCP] JXA retry attempt ${attempt + 2}/3`);
|
|
37
168
|
await new Promise((r) => setTimeout(r, RETRY_DELAYS[attempt]));
|
|
@@ -42,11 +173,20 @@ export async function runJxa(script) {
|
|
|
42
173
|
const trimmed = stdout.trim();
|
|
43
174
|
if (!trimmed)
|
|
44
175
|
throw new Error("osascript returned empty output");
|
|
176
|
+
let parsed;
|
|
45
177
|
try {
|
|
46
|
-
|
|
178
|
+
parsed = JSON.parse(trimmed);
|
|
47
179
|
}
|
|
48
180
|
catch {
|
|
49
|
-
throw new Error(`osascript returned invalid JSON: ${trimmed
|
|
181
|
+
throw new Error(`osascript returned invalid JSON: ${scrubPii(trimmed)}`);
|
|
182
|
+
}
|
|
183
|
+
// Fix 2: ensure the result is structurally sane (object or array).
|
|
184
|
+
if (parsed === null || parsed === undefined || typeof parsed !== "object") {
|
|
185
|
+
parsed = { value: parsed };
|
|
50
186
|
}
|
|
187
|
+
// Circuit breaker: record success.
|
|
188
|
+
if (app)
|
|
189
|
+
recordSuccess(app);
|
|
190
|
+
return parsed;
|
|
51
191
|
}
|
|
52
192
|
//# sourceMappingURL=jxa.js.map
|
package/dist/shared/jxa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jxa.js","sourceRoot":"","sources":["../../src/shared/jxa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"jxa.js","sourceRoot":"","sources":["../../src/shared/jxa.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,12 @@ Important:
|
|
|
38
38
|
- Always use exact shortcut names from list_shortcuts or search_shortcuts — names must match exactly
|
|
39
39
|
- Some shortcuts may trigger UI prompts or require user interaction — warn me before running those
|
|
40
40
|
- Never assume a shortcut exists; always verify with search_shortcuts first
|
|
41
|
-
- Ask for confirmation before running shortcuts that perform destructive or irreversible actions
|
|
41
|
+
- Ask for confirmation before running shortcuts that perform destructive or irreversible actions
|
|
42
|
+
|
|
43
|
+
Error handling:
|
|
44
|
+
- If a tool call fails, inform the user and try an alternative (e.g., if run_shortcut fails, try search_shortcuts to verify the name)
|
|
45
|
+
- On permission errors, guide the user to setup_permissions
|
|
46
|
+
- If an app is unresponsive, skip to the next step`);
|
|
42
47
|
});
|
|
43
48
|
server.prompt("shortcut-discovery", {
|
|
44
49
|
category: z.string().optional().describe("Optional category or keyword to focus the discovery (e.g. 'productivity', 'media', 'text')"),
|
|
@@ -85,7 +90,12 @@ Execute the following steps using AirMCP tools:
|
|
|
85
90
|
Important:
|
|
86
91
|
- Use get_shortcut_detail on shortcuts with ambiguous names to provide accurate descriptions
|
|
87
92
|
- Do not run any shortcuts during discovery — this is a read-only exploration
|
|
88
|
-
- If the list is very large, focus on the most useful categories first
|
|
93
|
+
- If the list is very large, focus on the most useful categories first
|
|
94
|
+
|
|
95
|
+
Error handling:
|
|
96
|
+
- If a tool call fails, inform the user and try an alternative (e.g., if get_shortcut_detail fails, use search_shortcuts for basic info)
|
|
97
|
+
- On permission errors, guide the user to setup_permissions
|
|
98
|
+
- If an app is unresponsive, skip to the next step`);
|
|
89
99
|
});
|
|
90
100
|
server.prompt("shortcut-troubleshooting", {
|
|
91
101
|
shortcutName: z.string().describe("Name of the shortcut that is having issues"),
|
|
@@ -142,7 +152,12 @@ Important:
|
|
|
142
152
|
- Some shortcuts will trigger UI prompts — warn me before running them
|
|
143
153
|
- If a shortcut consistently fails, it may need to be edited in the Shortcuts app directly
|
|
144
154
|
- Report the exact error output for accurate diagnosis
|
|
145
|
-
- Do not modify or delete any shortcuts — only inspect and run them
|
|
155
|
+
- Do not modify or delete any shortcuts — only inspect and run them
|
|
156
|
+
|
|
157
|
+
Error handling:
|
|
158
|
+
- If a tool call fails, inform the user and try an alternative (e.g., if search_shortcuts fails, use list_shortcuts and filter manually)
|
|
159
|
+
- On permission errors, guide the user to setup_permissions
|
|
160
|
+
- If an app is unresponsive, skip to the next step`);
|
|
146
161
|
});
|
|
147
162
|
}
|
|
148
163
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/shortcuts/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,qBAAqB,EACrB;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,EACD,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,UAAU,CACf,iFAAiF,EACjF,6CAA6C,IAAI,IAAI,QAAQ;;;;;;kDAMnB,IAAI
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/shortcuts/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,MAAM,CACX,qBAAqB,EACrB;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,EACD,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,UAAU,CACf,iFAAiF,EACjF,6CAA6C,IAAI,IAAI,QAAQ;;;;;;kDAMnB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA+BH,CAC5C,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4FAA4F,CAAC;KACvI,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACf,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,kCAAkC,QAAQ,IAAI;YAChD,CAAC,CAAC,gCAAgC,CAAC;QACrC,OAAO,UAAU,CACf,0EAA0E,EAC1E,gEAAgE,SAAS;;;;;;6BAMpD,QAAQ,CAAC,CAAC,CAAC,mCAAmC,QAAQ,wCAAwC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAsC7E,CAC5C,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,0BAA0B,EAC1B;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC/E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KACpG,EACD,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,gBAAgB;YAC/B,CAAC,CAAC,sBAAsB,gBAAgB,GAAG;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,UAAU,CACf,6CAA6C,EAC7C,mCAAmC,YAAY,KAAK,QAAQ;;;;;gCAKpC,YAAY;;;;;kCAKV,YAAY;;;;;;2BAMnB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAqCY,CAC5C,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -87,11 +87,11 @@ export function editShortcutScript(name) {
|
|
|
87
87
|
shortcuts.activate();
|
|
88
88
|
delay(1);
|
|
89
89
|
se.keystroke('f', {using: 'command down'});
|
|
90
|
-
delay(0.
|
|
90
|
+
delay(0.3);
|
|
91
91
|
se.keystroke('${esc(name)}');
|
|
92
92
|
delay(1);
|
|
93
93
|
se.keyCode(36);
|
|
94
|
-
delay(0.
|
|
94
|
+
delay(0.3);
|
|
95
95
|
JSON.stringify({shortcut: '${esc(name)}', success: true, note: 'Opened shortcut in Shortcuts app for editing. Use the Shortcuts app UI to make changes.'});
|
|
96
96
|
`;
|
|
97
97
|
}
|
|
@@ -106,9 +106,9 @@ export function createShortcutScript(name) {
|
|
|
106
106
|
se.keystroke('n', {using: 'command down'});
|
|
107
107
|
delay(1);
|
|
108
108
|
se.keystroke('${esc(name)}');
|
|
109
|
-
delay(0.
|
|
109
|
+
delay(0.3);
|
|
110
110
|
se.keyCode(36);
|
|
111
|
-
delay(0.
|
|
111
|
+
delay(0.3);
|
|
112
112
|
JSON.stringify({created: '${esc(name)}', success: true, note: 'Shortcut created via Shortcuts app UI automation. Open Shortcuts app to add actions.'});
|
|
113
113
|
`;
|
|
114
114
|
}
|
package/dist/ui/scripts.js
CHANGED
|
@@ -8,7 +8,7 @@ export function uiOpenAppScript(appName) {
|
|
|
8
8
|
const se = Application('System Events');
|
|
9
9
|
const app = Application('${esc(appName)}');
|
|
10
10
|
app.activate();
|
|
11
|
-
delay(0
|
|
11
|
+
delay(1.0);
|
|
12
12
|
|
|
13
13
|
const proc = se.processes.whose({frontmost: true})()[0];
|
|
14
14
|
const procName = proc.name();
|
|
@@ -62,7 +62,7 @@ export function uiClickScript(appName, x, y, text, role, index) {
|
|
|
62
62
|
if (x !== undefined && y !== undefined) {
|
|
63
63
|
return `
|
|
64
64
|
const se = Application('System Events');
|
|
65
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
65
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
66
66
|
const app = Application.currentApplication();
|
|
67
67
|
app.includeStandardAdditions = true;
|
|
68
68
|
app.doShellScript('cliclick c:${x},${y}');
|
|
@@ -75,7 +75,7 @@ export function uiClickScript(appName, x, y, text, role, index) {
|
|
|
75
75
|
const targetIndex = index ?? 0;
|
|
76
76
|
return `
|
|
77
77
|
const se = Application('System Events');
|
|
78
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
78
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
79
79
|
|
|
80
80
|
const proc = se.processes.whose({frontmost: true})()[0];
|
|
81
81
|
const wins = proc.windows();
|
|
@@ -135,7 +135,7 @@ export function uiClickScript(appName, x, y, text, role, index) {
|
|
|
135
135
|
export function uiTypeScript(text, appName) {
|
|
136
136
|
return `
|
|
137
137
|
const se = Application('System Events');
|
|
138
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
138
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
139
139
|
se.keystroke('${esc(text)}');
|
|
140
140
|
JSON.stringify({ typed: true, length: ${text.length} });
|
|
141
141
|
`;
|
|
@@ -195,7 +195,7 @@ export function uiPressKeyScript(key, modifiers, appName) {
|
|
|
195
195
|
if (keyCode !== undefined) {
|
|
196
196
|
return `
|
|
197
197
|
const se = Application('System Events');
|
|
198
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
198
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
199
199
|
se.keyCode(${keyCode}${usingStr});
|
|
200
200
|
JSON.stringify({ pressed: true, keyCode: ${keyCode}, key: '${esc(key)}' });
|
|
201
201
|
`;
|
|
@@ -203,7 +203,7 @@ export function uiPressKeyScript(key, modifiers, appName) {
|
|
|
203
203
|
// Single character keystroke
|
|
204
204
|
return `
|
|
205
205
|
const se = Application('System Events');
|
|
206
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
206
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
207
207
|
se.keystroke('${esc(key)}'${usingStr});
|
|
208
208
|
JSON.stringify({ pressed: true, key: '${esc(key)}' });
|
|
209
209
|
`;
|
|
@@ -231,7 +231,7 @@ export function uiScrollScript(direction, amount, appName) {
|
|
|
231
231
|
}
|
|
232
232
|
return `
|
|
233
233
|
const se = Application('System Events');
|
|
234
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
234
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
235
235
|
|
|
236
236
|
const proc = se.processes.whose({frontmost: true})()[0];
|
|
237
237
|
const wins = proc.windows();
|
|
@@ -267,7 +267,7 @@ export function uiReadScript(appName, maxDepth, maxElements) {
|
|
|
267
267
|
const maxElems = maxElements ?? 200;
|
|
268
268
|
return `
|
|
269
269
|
const se = Application('System Events');
|
|
270
|
-
${appName ? `Application('${esc(appName)}').activate(); delay(0
|
|
270
|
+
${appName ? `Application('${esc(appName)}').activate(); delay(1.0);` : ""}
|
|
271
271
|
|
|
272
272
|
const proc = se.processes.whose({frontmost: true})()[0];
|
|
273
273
|
const procName = proc.name();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "airmcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "MCP server for the entire Apple ecosystem — Notes, Reminders, Calendar, Contacts, Mail, Messages, Music, Finder, Safari, System, Photos, Shortcuts, Apple Intelligence, TV, Screen Capture, Maps, and Podcasts. Connect any AI to your Mac.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|