@heznpc/imcp 0.1.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +225 -57
  3. package/README.md +222 -30
  4. package/dist/calendar/prompts.d.ts +2 -0
  5. package/dist/calendar/prompts.js +43 -0
  6. package/dist/calendar/prompts.js.map +1 -0
  7. package/dist/calendar/scripts.d.ts +20 -0
  8. package/dist/calendar/scripts.js +283 -0
  9. package/dist/calendar/scripts.js.map +1 -0
  10. package/dist/calendar/tools.d.ts +3 -0
  11. package/dist/calendar/tools.js +252 -0
  12. package/dist/calendar/tools.js.map +1 -0
  13. package/dist/contacts/scripts.d.ts +22 -0
  14. package/dist/contacts/scripts.js +220 -0
  15. package/dist/contacts/scripts.js.map +1 -0
  16. package/dist/contacts/tools.d.ts +3 -0
  17. package/dist/contacts/tools.js +173 -0
  18. package/dist/contacts/tools.js.map +1 -0
  19. package/dist/cross/prompts.d.ts +2 -0
  20. package/dist/cross/prompts.js +177 -0
  21. package/dist/cross/prompts.js.map +1 -0
  22. package/dist/finder/scripts.d.ts +8 -0
  23. package/dist/finder/scripts.js +127 -0
  24. package/dist/finder/scripts.js.map +1 -0
  25. package/dist/finder/tools.d.ts +3 -0
  26. package/dist/finder/tools.js +134 -0
  27. package/dist/finder/tools.js.map +1 -0
  28. package/dist/index.js +38 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/intelligence/tools.d.ts +3 -0
  31. package/dist/intelligence/tools.js +74 -0
  32. package/dist/intelligence/tools.js.map +1 -0
  33. package/dist/mail/scripts.d.ts +9 -0
  34. package/dist/mail/scripts.js +214 -0
  35. package/dist/mail/scripts.js.map +1 -0
  36. package/dist/mail/tools.d.ts +3 -0
  37. package/dist/mail/tools.js +145 -0
  38. package/dist/mail/tools.js.map +1 -0
  39. package/dist/music/scripts.d.ts +9 -0
  40. package/dist/music/scripts.js +180 -0
  41. package/dist/music/scripts.js.map +1 -0
  42. package/dist/music/tools.d.ts +3 -0
  43. package/dist/music/tools.js +143 -0
  44. package/dist/music/tools.js.map +1 -0
  45. package/dist/notes/prompts.js +1 -6
  46. package/dist/notes/prompts.js.map +1 -1
  47. package/dist/notes/scripts.js +1 -11
  48. package/dist/notes/scripts.js.map +1 -1
  49. package/dist/notes/tools.js +1 -11
  50. package/dist/notes/tools.js.map +1 -1
  51. package/dist/photos/scripts.d.ts +7 -0
  52. package/dist/photos/scripts.js +142 -0
  53. package/dist/photos/scripts.js.map +1 -0
  54. package/dist/photos/tools.d.ts +3 -0
  55. package/dist/photos/tools.js +158 -0
  56. package/dist/photos/tools.js.map +1 -0
  57. package/dist/reminders/prompts.d.ts +2 -0
  58. package/dist/reminders/prompts.js +40 -0
  59. package/dist/reminders/prompts.js.map +1 -0
  60. package/dist/reminders/scripts.d.ts +21 -0
  61. package/dist/reminders/scripts.js +202 -0
  62. package/dist/reminders/scripts.js.map +1 -0
  63. package/dist/reminders/tools.d.ts +3 -0
  64. package/dist/reminders/tools.js +267 -0
  65. package/dist/reminders/tools.js.map +1 -0
  66. package/dist/safari/scripts.d.ts +8 -0
  67. package/dist/safari/scripts.js +120 -0
  68. package/dist/safari/scripts.js.map +1 -0
  69. package/dist/safari/tools.d.ts +3 -0
  70. package/dist/safari/tools.js +129 -0
  71. package/dist/safari/tools.js.map +1 -0
  72. package/dist/shared/esc.d.ts +10 -0
  73. package/dist/shared/esc.js +35 -0
  74. package/dist/shared/esc.js.map +1 -0
  75. package/dist/shared/jxa.js +1 -1
  76. package/dist/shared/jxa.js.map +1 -1
  77. package/dist/shared/prompt.d.ts +11 -0
  78. package/dist/shared/prompt.js +8 -0
  79. package/dist/shared/prompt.js.map +1 -0
  80. package/dist/shared/resources.d.ts +5 -0
  81. package/dist/shared/resources.js +81 -0
  82. package/dist/shared/resources.js.map +1 -0
  83. package/dist/shared/result.d.ts +15 -0
  84. package/dist/shared/result.js +14 -0
  85. package/dist/shared/result.js.map +1 -0
  86. package/dist/shared/setup.d.ts +2 -0
  87. package/dist/shared/setup.js +44 -0
  88. package/dist/shared/setup.js.map +1 -0
  89. package/dist/shared/swift.d.ts +2 -0
  90. package/dist/shared/swift.js +73 -0
  91. package/dist/shared/swift.js.map +1 -0
  92. package/dist/shortcuts/scripts.d.ts +4 -0
  93. package/dist/shortcuts/scripts.js +47 -0
  94. package/dist/shortcuts/scripts.js.map +1 -0
  95. package/dist/shortcuts/tools.d.ts +3 -0
  96. package/dist/shortcuts/tools.js +66 -0
  97. package/dist/shortcuts/tools.js.map +1 -0
  98. package/dist/system/scripts.d.ts +9 -0
  99. package/dist/system/scripts.js +124 -0
  100. package/dist/system/scripts.js.map +1 -0
  101. package/dist/system/tools.d.ts +3 -0
  102. package/dist/system/tools.js +179 -0
  103. package/dist/system/tools.js.map +1 -0
  104. package/package.json +39 -5
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/notes/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/notes/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function listAlbumsScript(): string;
2
+ export declare function listPhotosScript(album: string, limit: number, offset: number): string;
3
+ export declare function searchPhotosScript(query: string, limit: number): string;
4
+ export declare function getPhotoInfoScript(id: string): string;
5
+ export declare function listFavoritesScript(limit: number): string;
6
+ export declare function createAlbumScript(name: string): string;
7
+ export declare function addToAlbumScript(photoIds: string[], albumName: string): string;
@@ -0,0 +1,142 @@
1
+ // JXA scripts for Apple Photos automation.
2
+ import { esc } from "../shared/esc.js";
3
+ export function listAlbumsScript() {
4
+ return `
5
+ const Photos = Application('Photos');
6
+ const ids = Photos.albums.id();
7
+ const names = Photos.albums.name();
8
+ const result = ids.map((id, i) => ({
9
+ id: id,
10
+ name: names[i],
11
+ count: Photos.albums[i].mediaItems.length
12
+ }));
13
+ JSON.stringify(result);
14
+ `;
15
+ }
16
+ export function listPhotosScript(album, limit, offset) {
17
+ return `
18
+ const Photos = Application('Photos');
19
+ const albums = Photos.albums.whose({name: '${esc(album)}'})();
20
+ if (albums.length === 0) throw new Error('Album not found: ${esc(album)}');
21
+ const a = albums[0];
22
+ const total = a.mediaItems.length;
23
+ const s = Math.min(${offset}, total);
24
+ const e = Math.min(s + ${limit}, total);
25
+ const result = [];
26
+ for (let i = s; i < e; i++) {
27
+ const item = a.mediaItems[i];
28
+ const d = item.date();
29
+ result.push({
30
+ id: item.id(),
31
+ filename: item.filename(),
32
+ name: item.name(),
33
+ date: d ? d.toISOString() : null,
34
+ width: item.width(),
35
+ height: item.height(),
36
+ favorite: item.favorite()
37
+ });
38
+ }
39
+ JSON.stringify({total: total, offset: s, returned: result.length, photos: result});
40
+ `;
41
+ }
42
+ export function searchPhotosScript(query, limit) {
43
+ return `
44
+ const Photos = Application('Photos');
45
+ const allNames = Photos.mediaItems.name();
46
+ const allFilenames = Photos.mediaItems.filename();
47
+ const allDescs = Photos.mediaItems.description();
48
+ const q = '${esc(query)}'.toLowerCase();
49
+ const matches = [];
50
+ for (let i = 0; i < allNames.length && matches.length < ${limit}; i++) {
51
+ const name = allNames[i] || '';
52
+ const filename = allFilenames[i] || '';
53
+ const desc = allDescs[i] || '';
54
+ if (name.toLowerCase().includes(q) || filename.toLowerCase().includes(q) || desc.toLowerCase().includes(q)) {
55
+ matches.push(i);
56
+ }
57
+ }
58
+ const result = matches.map(i => {
59
+ const item = Photos.mediaItems[i];
60
+ const d = item.date();
61
+ return {
62
+ id: item.id(),
63
+ filename: allFilenames[i] || '',
64
+ name: allNames[i] || '',
65
+ date: d ? d.toISOString() : null,
66
+ favorite: item.favorite(),
67
+ description: allDescs[i] || ''
68
+ };
69
+ });
70
+ JSON.stringify({total: result.length, photos: result});
71
+ `;
72
+ }
73
+ export function getPhotoInfoScript(id) {
74
+ return `
75
+ const Photos = Application('Photos');
76
+ const items = Photos.mediaItems.whose({id: '${esc(id)}'})();
77
+ if (items.length === 0) throw new Error('Photo not found: ${esc(id)}');
78
+ const item = items[0];
79
+ const d = item.date();
80
+ JSON.stringify({
81
+ id: item.id(),
82
+ filename: item.filename(),
83
+ name: item.name(),
84
+ description: item.description(),
85
+ date: d ? d.toISOString() : null,
86
+ width: item.width(),
87
+ height: item.height(),
88
+ altitude: item.altitude(),
89
+ location: item.location(),
90
+ favorite: item.favorite(),
91
+ keywords: item.keywords()
92
+ });
93
+ `;
94
+ }
95
+ export function listFavoritesScript(limit) {
96
+ return `
97
+ const Photos = Application('Photos');
98
+ const favs = Photos.mediaItems.whose({favorite: true})();
99
+ const count = Math.min(favs.length, ${limit});
100
+ const result = [];
101
+ for (let i = 0; i < count; i++) {
102
+ const item = favs[i];
103
+ const d = item.date();
104
+ result.push({
105
+ id: item.id(),
106
+ filename: item.filename(),
107
+ name: item.name(),
108
+ date: d ? d.toISOString() : null,
109
+ width: item.width(),
110
+ height: item.height()
111
+ });
112
+ }
113
+ JSON.stringify({total: favs.length, returned: result.length, photos: result});
114
+ `;
115
+ }
116
+ export function createAlbumScript(name) {
117
+ return `
118
+ const Photos = Application('Photos');
119
+ Photos.make({new: 'album', named: '${esc(name)}'});
120
+ const albums = Photos.albums.whose({name: '${esc(name)}'})();
121
+ if (albums.length === 0) throw new Error('Failed to create album');
122
+ JSON.stringify({id: albums[0].id(), name: albums[0].name()});
123
+ `;
124
+ }
125
+ export function addToAlbumScript(photoIds, albumName) {
126
+ const idArray = photoIds.map(id => `'${esc(id)}'`).join(', ');
127
+ return `
128
+ const Photos = Application('Photos');
129
+ const albums = Photos.albums.whose({name: '${esc(albumName)}'})();
130
+ if (albums.length === 0) throw new Error('Album not found: ${esc(albumName)}');
131
+ const ids = [${idArray}];
132
+ const items = [];
133
+ for (const id of ids) {
134
+ const found = Photos.mediaItems.whose({id: id})();
135
+ if (found.length > 0) items.push(found[0]);
136
+ }
137
+ if (items.length === 0) throw new Error('No matching photos found');
138
+ Photos.add(items, {to: albums[0]});
139
+ JSON.stringify({added: items.length, album: '${esc(albumName)}'});
140
+ `;
141
+ }
142
+ //# sourceMappingURL=scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/photos/scripts.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;GAUN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc;IAC3E,OAAO;;iDAEwC,GAAG,CAAC,KAAK,CAAC;iEACM,GAAG,CAAC,KAAK,CAAC;;;yBAGlD,MAAM;6BACF,KAAK;;;;;;;;;;;;;;;;GAgB/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAa;IAC7D,OAAO;;;;;iBAKQ,GAAG,CAAC,KAAK,CAAC;;8DAEmC,KAAK;;;;;;;;;;;;;;;;;;;;;GAqBhE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO;;kDAEyC,GAAG,CAAC,EAAE,CAAC;gEACO,GAAG,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;GAgBpE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO;;;0CAGiC,KAAK;;;;;;;;;;;;;;;GAe5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO;;yCAEgC,GAAG,CAAC,IAAI,CAAC;iDACD,GAAG,CAAC,IAAI,CAAC;;;GAGvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,SAAiB;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO;;iDAEwC,GAAG,CAAC,SAAS,CAAC;iEACE,GAAG,CAAC,SAAS,CAAC;mBAC5D,OAAO;;;;;;;;mDAQyB,GAAG,CAAC,SAAS,CAAC;GAC9D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ImcpConfig } from "../shared/config.js";
3
+ export declare function registerPhotosTools(server: McpServer, _config: ImcpConfig): void;
@@ -0,0 +1,158 @@
1
+ import { z } from "zod";
2
+ import { runJxa } from "../shared/jxa.js";
3
+ import { runSwift } from "../shared/swift.js";
4
+ import { ok, err } from "../shared/result.js";
5
+ import { listAlbumsScript, listPhotosScript, searchPhotosScript, getPhotoInfoScript, listFavoritesScript, createAlbumScript, addToAlbumScript, } from "./scripts.js";
6
+ export function registerPhotosTools(server, _config) {
7
+ server.registerTool("list_albums", {
8
+ title: "List Photo Albums",
9
+ description: "List all photo albums with name and item count.",
10
+ inputSchema: {},
11
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
12
+ }, async () => {
13
+ try {
14
+ return ok(await runJxa(listAlbumsScript()));
15
+ }
16
+ catch (e) {
17
+ return err(`Failed to list albums: ${e instanceof Error ? e.message : String(e)}`);
18
+ }
19
+ });
20
+ server.registerTool("list_photos", {
21
+ title: "List Photos",
22
+ description: "List photos in an album with metadata. Use list_albums to find album names first.",
23
+ inputSchema: {
24
+ album: z.string().describe("Album name"),
25
+ limit: z.number().int().min(1).max(500).optional().default(50).describe("Max photos (default: 50)"),
26
+ offset: z.number().int().min(0).optional().default(0).describe("Offset for pagination (default: 0)"),
27
+ },
28
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
29
+ }, async ({ album, limit, offset }) => {
30
+ try {
31
+ return ok(await runJxa(listPhotosScript(album, limit, offset)));
32
+ }
33
+ catch (e) {
34
+ return err(`Failed to list photos: ${e instanceof Error ? e.message : String(e)}`);
35
+ }
36
+ });
37
+ server.registerTool("search_photos", {
38
+ title: "Search Photos",
39
+ description: "Search photos by filename, name, or description keyword.",
40
+ inputSchema: {
41
+ query: z.string().describe("Search keyword"),
42
+ limit: z.number().int().min(1).max(200).optional().default(30).describe("Max results (default: 30)"),
43
+ },
44
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
45
+ }, async ({ query, limit }) => {
46
+ try {
47
+ return ok(await runJxa(searchPhotosScript(query, limit)));
48
+ }
49
+ catch (e) {
50
+ return err(`Failed to search photos: ${e instanceof Error ? e.message : String(e)}`);
51
+ }
52
+ });
53
+ server.registerTool("get_photo_info", {
54
+ title: "Get Photo Info",
55
+ description: "Get detailed metadata for a specific photo by ID.",
56
+ inputSchema: {
57
+ id: z.string().describe("Photo media item ID"),
58
+ },
59
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
60
+ }, async ({ id }) => {
61
+ try {
62
+ return ok(await runJxa(getPhotoInfoScript(id)));
63
+ }
64
+ catch (e) {
65
+ return err(`Failed to get photo info: ${e instanceof Error ? e.message : String(e)}`);
66
+ }
67
+ });
68
+ server.registerTool("list_favorites", {
69
+ title: "List Favorite Photos",
70
+ description: "List photos marked as favorites.",
71
+ inputSchema: {
72
+ limit: z.number().int().min(1).max(500).optional().default(50).describe("Max photos (default: 50)"),
73
+ },
74
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
75
+ }, async ({ limit }) => {
76
+ try {
77
+ return ok(await runJxa(listFavoritesScript(limit)));
78
+ }
79
+ catch (e) {
80
+ return err(`Failed to list favorites: ${e instanceof Error ? e.message : String(e)}`);
81
+ }
82
+ });
83
+ server.registerTool("create_album", {
84
+ title: "Create Album",
85
+ description: "Create a new photo album.",
86
+ inputSchema: {
87
+ name: z.string().describe("Album name"),
88
+ },
89
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
90
+ }, async ({ name }) => {
91
+ try {
92
+ return ok(await runJxa(createAlbumScript(name)));
93
+ }
94
+ catch (e) {
95
+ return err(`Failed to create album: ${e instanceof Error ? e.message : String(e)}`);
96
+ }
97
+ });
98
+ server.registerTool("add_to_album", {
99
+ title: "Add Photos to Album",
100
+ description: "Add photos to an existing album by photo IDs and album name.",
101
+ inputSchema: {
102
+ photoIds: z.array(z.string()).describe("Array of photo media item IDs"),
103
+ albumName: z.string().describe("Target album name"),
104
+ },
105
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
106
+ }, async ({ photoIds, albumName }) => {
107
+ try {
108
+ return ok(await runJxa(addToAlbumScript(photoIds, albumName)));
109
+ }
110
+ catch (e) {
111
+ return err(`Failed to add photos to album: ${e instanceof Error ? e.message : String(e)}`);
112
+ }
113
+ });
114
+ server.registerTool("import_photo", {
115
+ title: "Import Photo",
116
+ description: "Import a photo from a file path into Photos library. Optionally add to an existing album. Requires macOS 26+ Swift bridge.",
117
+ inputSchema: {
118
+ filePath: z.string().describe("Absolute path to the image file to import"),
119
+ albumName: z.string().optional().describe("Album to add the imported photo to (must already exist)"),
120
+ },
121
+ annotations: {
122
+ readOnlyHint: false,
123
+ destructiveHint: false,
124
+ idempotentHint: false,
125
+ openWorldHint: false,
126
+ },
127
+ }, async ({ filePath, albumName }) => {
128
+ try {
129
+ const result = await runSwift("import-photo", JSON.stringify({ filePath, albumName }));
130
+ return ok(result);
131
+ }
132
+ catch (e) {
133
+ return err(`Failed to import photo: ${e instanceof Error ? e.message : String(e)}`);
134
+ }
135
+ });
136
+ server.registerTool("delete_photos", {
137
+ title: "Delete Photos",
138
+ description: "Delete photos by local identifier. Shows macOS confirmation dialog for user approval. Requires macOS 26+ Swift bridge.",
139
+ inputSchema: {
140
+ identifiers: z.array(z.string()).describe("Array of photo local identifiers to delete"),
141
+ },
142
+ annotations: {
143
+ readOnlyHint: false,
144
+ destructiveHint: true,
145
+ idempotentHint: false,
146
+ openWorldHint: false,
147
+ },
148
+ }, async ({ identifiers }) => {
149
+ try {
150
+ const result = await runSwift("delete-photos", JSON.stringify({ identifiers }));
151
+ return ok(result);
152
+ }
153
+ catch (e) {
154
+ return err(`Failed to delete photos: ${e instanceof Error ? e.message : String(e)}`);
155
+ }
156
+ });
157
+ }
158
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/photos/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerReminderPrompts(server: McpServer): void;
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ import { userPrompt } from "../shared/prompt.js";
3
+ export function registerReminderPrompts(server) {
4
+ server.prompt("organize-reminders", { list: z.string().optional().describe("List to organize. Defaults to all lists.") }, ({ list }) => {
5
+ const scope = list ? `"${list}" 리스트의` : "전체";
6
+ return userPrompt("Scan reminders, identify overdue/completed, and suggest cleanup.", `Apple Reminders에서 ${scope} 리마인더를 정리해줘.
7
+
8
+ 다음 단계를 반드시 iMcp 도구를 사용해서 실행해:
9
+
10
+ 1. list_reminder_lists로 모든 리스트를 확인해
11
+ 2. list_reminders로 리마인더를 조회해 (list, completed 필터 사용 가능)
12
+ 3. 완료된 리마인더, 기한 지난 리마인더, 중복 항목을 분류해
13
+ 4. 정리 방안을 나에게 제안해:
14
+ - 완료된 항목 일괄 삭제
15
+ - 기한 지난 항목 업데이트 또는 삭제
16
+ - 비슷한 항목 통합
17
+ 5. 나의 확인 후 delete_reminder 또는 update_reminder로 실행해
18
+
19
+ 중요: 삭제 전에 반드시 나에게 확인을 받아.`);
20
+ });
21
+ server.prompt("daily-review", "Review today's due reminders and suggest priorities.", () => {
22
+ const today = new Date().toISOString().split("T")[0];
23
+ return userPrompt("Review today's due reminders, flag overdue items, and suggest priorities.", `오늘(${today})의 리마인더를 리뷰해줘.
24
+
25
+ 다음 단계를 반드시 iMcp 도구를 사용해서 실행해:
26
+
27
+ 1. list_reminders(completed: false)로 미완료 리마인더를 모두 조회해
28
+ 2. 오늘 마감인 항목과 이미 기한이 지난 항목을 분류해
29
+ 3. 우선순위별로 정리해서 보여줘:
30
+ - 🔴 기한 지남 (overdue)
31
+ - 🟡 오늘 마감
32
+ - 🟢 이번 주 내 마감
33
+ - ⚪ 마감일 없음
34
+ 4. 우선 처리할 항목을 제안해
35
+ 5. 내가 원하면 complete_reminder로 완료 처리하거나 update_reminder로 기한을 변경해
36
+
37
+ 중요: 실제 iMcp 도구를 사용해서 Apple Reminders 데이터를 조회해.`);
38
+ });
39
+ }
40
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +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;;;;;;;;;;;;;0BAaR,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;;;;;;;;;;;;;;+CAc4B,CACxC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare function listReminderListsScript(): string;
2
+ export declare function listRemindersScript(list?: string, completed?: boolean): string;
3
+ export declare function readReminderScript(id: string): string;
4
+ export declare function createReminderScript(title: string, opts: {
5
+ body?: string;
6
+ dueDate?: string;
7
+ priority?: number;
8
+ list?: string;
9
+ }): string;
10
+ export declare function updateReminderScript(id: string, updates: {
11
+ name?: string;
12
+ body?: string;
13
+ dueDate?: string | null;
14
+ priority?: number;
15
+ flagged?: boolean;
16
+ }): string;
17
+ export declare function completeReminderScript(id: string, completed: boolean): string;
18
+ export declare function deleteReminderScript(id: string): string;
19
+ export declare function searchRemindersScript(query: string, limit: number): string;
20
+ export declare function createReminderListScript(name: string): string;
21
+ export declare function deleteReminderListScript(name: string): string;
@@ -0,0 +1,202 @@
1
+ // JXA scripts for Apple Reminders automation.
2
+ // Each function returns a JXA script string to be executed via osascript.
3
+ import { esc } from "../shared/esc.js";
4
+ export function listReminderListsScript() {
5
+ return `
6
+ const Reminders = Application('Reminders');
7
+ const lists = Reminders.lists();
8
+ const names = Reminders.lists.name();
9
+ const ids = Reminders.lists.id();
10
+ const result = names.map((name, i) => ({
11
+ id: ids[i],
12
+ name: name,
13
+ reminderCount: lists[i].reminders.length
14
+ }));
15
+ JSON.stringify(result);
16
+ `;
17
+ }
18
+ export function listRemindersScript(list, completed) {
19
+ const filterParts = [];
20
+ if (completed === true)
21
+ filterParts.push("r.completed()");
22
+ if (completed === false)
23
+ filterParts.push("!r.completed()");
24
+ const filterExpr = filterParts.length > 0
25
+ ? `.filter(r => ${filterParts.join(" && ")})`
26
+ : "";
27
+ if (list) {
28
+ return `
29
+ const Reminders = Application('Reminders');
30
+ const lists = Reminders.lists.whose({name: '${esc(list)}'})();
31
+ if (lists.length === 0) throw new Error('List not found: ${esc(list)}');
32
+ const l = lists[0];
33
+ const reminders = l.reminders();
34
+ const filtered = reminders${filterExpr};
35
+ const result = filtered.map(r => ({
36
+ id: r.id(),
37
+ name: r.name(),
38
+ completed: r.completed(),
39
+ dueDate: r.dueDate() ? r.dueDate().toISOString() : null,
40
+ priority: r.priority(),
41
+ flagged: r.flagged(),
42
+ list: '${esc(list)}'
43
+ }));
44
+ JSON.stringify(result);
45
+ `;
46
+ }
47
+ return `
48
+ const Reminders = Application('Reminders');
49
+ const lists = Reminders.lists();
50
+ const result = [];
51
+ for (const l of lists) {
52
+ const reminders = l.reminders();
53
+ const filtered = reminders${filterExpr};
54
+ const listName = l.name();
55
+ for (const r of filtered) {
56
+ result.push({
57
+ id: r.id(),
58
+ name: r.name(),
59
+ completed: r.completed(),
60
+ dueDate: r.dueDate() ? r.dueDate().toISOString() : null,
61
+ priority: r.priority(),
62
+ flagged: r.flagged(),
63
+ list: listName
64
+ });
65
+ }
66
+ }
67
+ JSON.stringify(result);
68
+ `;
69
+ }
70
+ export function readReminderScript(id) {
71
+ return `
72
+ const Reminders = Application('Reminders');
73
+ const r = Reminders.reminders.byId('${esc(id)}');
74
+ JSON.stringify({
75
+ id: r.id(),
76
+ name: r.name(),
77
+ body: r.body(),
78
+ completed: r.completed(),
79
+ completionDate: r.completionDate() ? r.completionDate().toISOString() : null,
80
+ creationDate: r.creationDate().toISOString(),
81
+ modificationDate: r.modificationDate().toISOString(),
82
+ dueDate: r.dueDate() ? r.dueDate().toISOString() : null,
83
+ priority: r.priority(),
84
+ flagged: r.flagged(),
85
+ list: r.container().name()
86
+ });
87
+ `;
88
+ }
89
+ export function createReminderScript(title, opts) {
90
+ const props = [`name: '${esc(title)}'`];
91
+ if (opts.body)
92
+ props.push(`body: '${esc(opts.body)}'`);
93
+ if (opts.priority !== undefined)
94
+ props.push(`priority: ${opts.priority}`);
95
+ const dateSetup = opts.dueDate
96
+ ? `r.dueDate = new Date('${esc(opts.dueDate)}');`
97
+ : "";
98
+ if (opts.list) {
99
+ return `
100
+ const Reminders = Application('Reminders');
101
+ const lists = Reminders.lists.whose({name: '${esc(opts.list)}'})();
102
+ if (lists.length === 0) throw new Error('List not found: ${esc(opts.list)}');
103
+ const r = Reminders.Reminder({${props.join(", ")}});
104
+ lists[0].reminders.push(r);
105
+ ${dateSetup}
106
+ JSON.stringify({id: r.id(), name: r.name()});
107
+ `;
108
+ }
109
+ return `
110
+ const Reminders = Application('Reminders');
111
+ const r = Reminders.Reminder({${props.join(", ")}});
112
+ Reminders.defaultList().reminders.push(r);
113
+ ${dateSetup}
114
+ JSON.stringify({id: r.id(), name: r.name()});
115
+ `;
116
+ }
117
+ export function updateReminderScript(id, updates) {
118
+ const lines = [];
119
+ if (updates.name !== undefined)
120
+ lines.push(`r.name = '${esc(updates.name)}';`);
121
+ if (updates.body !== undefined)
122
+ lines.push(`r.body = '${esc(updates.body)}';`);
123
+ if (updates.dueDate === null)
124
+ lines.push("r.dueDate = null;");
125
+ else if (updates.dueDate !== undefined)
126
+ lines.push(`r.dueDate = new Date('${esc(updates.dueDate)}');`);
127
+ if (updates.priority !== undefined)
128
+ lines.push(`r.priority = ${updates.priority};`);
129
+ if (updates.flagged !== undefined)
130
+ lines.push(`r.flagged = ${updates.flagged};`);
131
+ return `
132
+ const Reminders = Application('Reminders');
133
+ const r = Reminders.reminders.byId('${esc(id)}');
134
+ ${lines.join("\n ")}
135
+ JSON.stringify({id: r.id(), name: r.name()});
136
+ `;
137
+ }
138
+ export function completeReminderScript(id, completed) {
139
+ return `
140
+ const Reminders = Application('Reminders');
141
+ const r = Reminders.reminders.byId('${esc(id)}');
142
+ r.completed = ${completed};
143
+ JSON.stringify({id: r.id(), name: r.name(), completed: r.completed()});
144
+ `;
145
+ }
146
+ export function deleteReminderScript(id) {
147
+ return `
148
+ const Reminders = Application('Reminders');
149
+ const r = Reminders.reminders.byId('${esc(id)}');
150
+ const name = r.name();
151
+ Reminders.delete(r);
152
+ JSON.stringify({deleted: true, name: name});
153
+ `;
154
+ }
155
+ export function searchRemindersScript(query, limit) {
156
+ return `
157
+ const Reminders = Application('Reminders');
158
+ const lists = Reminders.lists();
159
+ const q = '${esc(query)}'.toLowerCase();
160
+ const result = [];
161
+ for (const l of lists) {
162
+ if (result.length >= ${limit}) break;
163
+ const reminders = l.reminders();
164
+ const listName = l.name();
165
+ for (const r of reminders) {
166
+ if (result.length >= ${limit}) break;
167
+ const name = r.name() || '';
168
+ const body = r.body() || '';
169
+ if (name.toLowerCase().includes(q) || body.toLowerCase().includes(q)) {
170
+ result.push({
171
+ id: r.id(),
172
+ name: name,
173
+ completed: r.completed(),
174
+ dueDate: r.dueDate() ? r.dueDate().toISOString() : null,
175
+ priority: r.priority(),
176
+ flagged: r.flagged(),
177
+ list: listName
178
+ });
179
+ }
180
+ }
181
+ }
182
+ JSON.stringify({returned: result.length, reminders: result});
183
+ `;
184
+ }
185
+ export function createReminderListScript(name) {
186
+ return `
187
+ const Reminders = Application('Reminders');
188
+ const l = Reminders.List({name: '${esc(name)}'});
189
+ Reminders.lists.push(l);
190
+ JSON.stringify({id: l.id(), name: l.name()});
191
+ `;
192
+ }
193
+ export function deleteReminderListScript(name) {
194
+ return `
195
+ const Reminders = Application('Reminders');
196
+ const lists = Reminders.lists.whose({name: '${esc(name)}'})();
197
+ if (lists.length === 0) throw new Error('List not found: ${esc(name)}');
198
+ Reminders.delete(lists[0]);
199
+ JSON.stringify({deleted: true, name: '${esc(name)}'});
200
+ `;
201
+ }
202
+ //# sourceMappingURL=scripts.js.map