@easynet/agent-tool-buildin 0.0.45 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core-tools-manifest.json +4845 -1222
- package/dist/src/calendar/calendarCreateEvent.d.ts +31 -0
- package/dist/src/calendar/calendarCreateEvent.d.ts.map +1 -0
- package/dist/src/calendar/calendarCreateEvent.js +67 -0
- package/dist/src/calendar/calendarCreateEvent.js.map +1 -0
- package/dist/src/calendar/calendarDeleteEvent.d.ts +22 -0
- package/dist/src/calendar/calendarDeleteEvent.d.ts.map +1 -0
- package/dist/src/calendar/calendarDeleteEvent.js +41 -0
- package/dist/src/calendar/calendarDeleteEvent.js.map +1 -0
- package/dist/src/calendar/calendarListEvents.d.ts +32 -0
- package/dist/src/calendar/calendarListEvents.d.ts.map +1 -0
- package/dist/src/calendar/calendarListEvents.js +95 -0
- package/dist/src/calendar/calendarListEvents.js.map +1 -0
- package/dist/src/calendar/calendarRescheduleEventByTitle.d.ts +30 -0
- package/dist/src/calendar/calendarRescheduleEventByTitle.d.ts.map +1 -0
- package/dist/src/calendar/calendarRescheduleEventByTitle.js +94 -0
- package/dist/src/calendar/calendarRescheduleEventByTitle.js.map +1 -0
- package/dist/src/calendar/calendarSearchEventsByTitle.d.ts +33 -0
- package/dist/src/calendar/calendarSearchEventsByTitle.d.ts.map +1 -0
- package/dist/src/calendar/calendarSearchEventsByTitle.js +95 -0
- package/dist/src/calendar/calendarSearchEventsByTitle.js.map +1 -0
- package/dist/src/calendar/calendarUpdateEvent.d.ts +27 -0
- package/dist/src/calendar/calendarUpdateEvent.d.ts.map +1 -0
- package/dist/src/calendar/calendarUpdateEvent.js +58 -0
- package/dist/src/calendar/calendarUpdateEvent.js.map +1 -0
- package/dist/src/cron/cronListEntries.d.ts +19 -0
- package/dist/src/cron/cronListEntries.d.ts.map +1 -0
- package/dist/src/cron/cronListEntries.js +33 -0
- package/dist/src/cron/cronListEntries.js.map +1 -0
- package/dist/src/cron/cronRemoveTaggedEntries.d.ts +21 -0
- package/dist/src/cron/cronRemoveTaggedEntries.d.ts.map +1 -0
- package/dist/src/cron/cronRemoveTaggedEntries.js +41 -0
- package/dist/src/cron/cronRemoveTaggedEntries.js.map +1 -0
- package/dist/src/cron/cronSetTaggedEntry.d.ts +24 -0
- package/dist/src/cron/cronSetTaggedEntry.d.ts.map +1 -0
- package/dist/src/cron/cronSetTaggedEntry.js +51 -0
- package/dist/src/cron/cronSetTaggedEntry.js.map +1 -0
- package/dist/src/exec/runCommand.d.ts +22 -6
- package/dist/src/exec/runCommand.d.ts.map +1 -1
- package/dist/src/exec/runCommand.js +22 -13
- package/dist/src/exec/runCommand.js.map +1 -1
- package/dist/src/fs/listDir.d.ts +2 -1
- package/dist/src/fs/listDir.d.ts.map +1 -1
- package/dist/src/fs/listDir.js +1 -4
- package/dist/src/fs/listDir.js.map +1 -1
- package/dist/src/git/common.d.ts +34 -0
- package/dist/src/git/common.d.ts.map +1 -0
- package/dist/src/git/common.js +119 -0
- package/dist/src/git/common.js.map +1 -0
- package/dist/src/git/defaults.d.ts +1 -0
- package/dist/src/git/defaults.d.ts.map +1 -1
- package/dist/src/git/defaults.js +15 -0
- package/dist/src/git/defaults.js.map +1 -1
- package/dist/src/git/ghRead.d.ts +29 -0
- package/dist/src/git/ghRead.d.ts.map +1 -0
- package/dist/src/git/ghRead.js +63 -0
- package/dist/src/git/ghRead.js.map +1 -0
- package/dist/src/git/gitAdd.d.ts +29 -0
- package/dist/src/git/gitAdd.d.ts.map +1 -0
- package/dist/src/git/gitAdd.js +57 -0
- package/dist/src/git/gitAdd.js.map +1 -0
- package/dist/src/git/gitCommit.d.ts +29 -0
- package/dist/src/git/gitCommit.d.ts.map +1 -0
- package/dist/src/git/gitCommit.js +56 -0
- package/dist/src/git/gitCommit.js.map +1 -0
- package/dist/src/git/gitDiff.d.ts +28 -0
- package/dist/src/git/gitDiff.d.ts.map +1 -0
- package/dist/src/git/gitDiff.js +54 -0
- package/dist/src/git/gitDiff.js.map +1 -0
- package/dist/src/git/gitLogHistory.d.ts +37 -0
- package/dist/src/git/gitLogHistory.d.ts.map +1 -0
- package/dist/src/git/gitLogHistory.js +85 -0
- package/dist/src/git/gitLogHistory.js.map +1 -0
- package/dist/src/git/gitPrView.d.ts +26 -0
- package/dist/src/git/gitPrView.d.ts.map +1 -0
- package/dist/src/git/gitPrView.js +66 -0
- package/dist/src/git/gitPrView.js.map +1 -0
- package/dist/src/git/gitPull.d.ts +31 -0
- package/dist/src/git/gitPull.d.ts.map +1 -0
- package/dist/src/git/gitPull.js +56 -0
- package/dist/src/git/gitPull.js.map +1 -0
- package/dist/src/git/gitRead.d.ts +28 -0
- package/dist/src/git/gitRead.d.ts.map +1 -0
- package/dist/src/git/gitRead.js +59 -0
- package/dist/src/git/gitRead.js.map +1 -0
- package/dist/src/git/gitStatus.d.ts +28 -0
- package/dist/src/git/gitStatus.d.ts.map +1 -0
- package/dist/src/git/gitStatus.js +55 -0
- package/dist/src/git/gitStatus.js.map +1 -0
- package/dist/src/git/gitSwitchBranch.d.ts +29 -0
- package/dist/src/git/gitSwitchBranch.d.ts.map +1 -0
- package/dist/src/git/gitSwitchBranch.js +57 -0
- package/dist/src/git/gitSwitchBranch.js.map +1 -0
- package/dist/src/git/gitTools.d.ts +10 -155
- package/dist/src/git/gitTools.d.ts.map +1 -1
- package/dist/src/git/gitTools.js +10 -396
- package/dist/src/git/gitTools.js.map +1 -1
- package/dist/src/http/downloadFile.d.ts +2 -2
- package/dist/src/http/downloadFile.d.ts.map +1 -1
- package/dist/src/http/fetchJson.d.ts +2 -2
- package/dist/src/http/fetchJson.d.ts.map +1 -1
- package/dist/src/http/fetchPageMainContent.d.ts +1 -1
- package/dist/src/http/fetchPageMainContent.d.ts.map +1 -1
- package/dist/src/http/fetchText.d.ts +2 -2
- package/dist/src/http/fetchText.d.ts.map +1 -1
- package/dist/src/http/head.d.ts +1 -1
- package/dist/src/http/head.d.ts.map +1 -1
- package/dist/src/http/yahooFinance.d.ts +5 -4
- package/dist/src/http/yahooFinance.d.ts.map +1 -1
- package/dist/src/http/yahooFinance.js +6 -6
- package/dist/src/http/yahooFinance.js.map +1 -1
- package/dist/src/iterm/common.d.ts +8 -0
- package/dist/src/iterm/common.d.ts.map +1 -1
- package/dist/src/iterm/common.js +28 -2
- package/dist/src/iterm/common.js.map +1 -1
- package/dist/src/iterm/itermCreateTab.d.ts +1 -1
- package/dist/src/iterm/itermCreateTab.d.ts.map +1 -1
- package/dist/src/iterm/itermCreateTab.js +18 -4
- package/dist/src/iterm/itermCreateTab.js.map +1 -1
- package/dist/src/iterm/itermCreateWindow.d.ts +1 -1
- package/dist/src/iterm/itermCreateWindow.d.ts.map +1 -1
- package/dist/src/iterm/itermCreateWindow.js +25 -9
- package/dist/src/iterm/itermCreateWindow.js.map +1 -1
- package/dist/src/iterm/itermGetSessionInfo.d.ts +1 -1
- package/dist/src/iterm/itermGetSessionInfo.js +2 -2
- package/dist/src/iterm/itermGetSessionInfo.js.map +1 -1
- package/dist/src/iterm/itermListCurrentWindowSessions.d.ts +14 -35
- package/dist/src/iterm/itermListCurrentWindowSessions.d.ts.map +1 -1
- package/dist/src/iterm/itermListCurrentWindowSessions.js +3 -3
- package/dist/src/iterm/itermListCurrentWindowSessions.js.map +1 -1
- package/dist/src/iterm/itermListWindows.d.ts +1 -1
- package/dist/src/iterm/itermListWindows.js +3 -3
- package/dist/src/iterm/itermListWindows.js.map +1 -1
- package/dist/src/iterm/itermRename.d.ts +1 -1
- package/dist/src/iterm/itermRename.js +3 -3
- package/dist/src/iterm/itermRename.js.map +1 -1
- package/dist/src/iterm/itermResizeWindow.d.ts +1 -1
- package/dist/src/iterm/itermResizeWindow.js +3 -3
- package/dist/src/iterm/itermResizeWindow.js.map +1 -1
- package/dist/src/iterm/itermRunCommandInSession.d.ts +13 -3
- package/dist/src/iterm/itermRunCommandInSession.d.ts.map +1 -1
- package/dist/src/iterm/itermRunCommandInSession.js +48 -6
- package/dist/src/iterm/itermRunCommandInSession.js.map +1 -1
- package/dist/src/iterm/itermSendText.d.ts +4 -1
- package/dist/src/iterm/itermSendText.d.ts.map +1 -1
- package/dist/src/iterm/itermSendText.js +23 -4
- package/dist/src/iterm/itermSendText.js.map +1 -1
- package/dist/src/iterm/itermSetBackgroundColor.d.ts +1 -1
- package/dist/src/iterm/itermSetBackgroundColor.js +2 -2
- package/dist/src/iterm/itermSetBackgroundColor.js.map +1 -1
- package/dist/src/iterm/itermSetSessionColors.d.ts +48 -0
- package/dist/src/iterm/itermSetSessionColors.d.ts.map +1 -0
- package/dist/src/iterm/itermSetSessionColors.js +71 -0
- package/dist/src/iterm/itermSetSessionColors.js.map +1 -0
- package/dist/src/iterm/itermSplitPane.d.ts +1 -1
- package/dist/src/iterm/itermSplitPane.d.ts.map +1 -1
- package/dist/src/iterm/itermSplitPane.js +21 -2
- package/dist/src/iterm/itermSplitPane.js.map +1 -1
- package/dist/src/iterm/itermTools.d.ts +1 -0
- package/dist/src/iterm/itermTools.d.ts.map +1 -1
- package/dist/src/iterm/itermTools.js +1 -0
- package/dist/src/iterm/itermTools.js.map +1 -1
- package/dist/src/messages/messagesFindChatsByParticipant.d.ts +27 -0
- package/dist/src/messages/messagesFindChatsByParticipant.d.ts.map +1 -0
- package/dist/src/messages/messagesFindChatsByParticipant.js +95 -0
- package/dist/src/messages/messagesFindChatsByParticipant.js.map +1 -0
- package/dist/src/messages/messagesListChats.d.ts +25 -0
- package/dist/src/messages/messagesListChats.d.ts.map +1 -0
- package/dist/src/messages/messagesListChats.js +69 -0
- package/dist/src/messages/messagesListChats.js.map +1 -0
- package/dist/src/messages/messagesReadChat.d.ts +28 -0
- package/dist/src/messages/messagesReadChat.d.ts.map +1 -0
- package/dist/src/messages/messagesReadChat.js +88 -0
- package/dist/src/messages/messagesReadChat.js.map +1 -0
- package/dist/src/messages/messagesSendByChatId.d.ts +22 -0
- package/dist/src/messages/messagesSendByChatId.d.ts.map +1 -0
- package/dist/src/messages/messagesSendByChatId.js +48 -0
- package/dist/src/messages/messagesSendByChatId.js.map +1 -0
- package/dist/src/messages/messagesSendByHandle.d.ts +26 -0
- package/dist/src/messages/messagesSendByHandle.d.ts.map +1 -0
- package/dist/src/messages/messagesSendByHandle.js +67 -0
- package/dist/src/messages/messagesSendByHandle.js.map +1 -0
- package/dist/src/messages/messagesSendByParticipantQuery.d.ts +26 -0
- package/dist/src/messages/messagesSendByParticipantQuery.d.ts.map +1 -0
- package/dist/src/messages/messagesSendByParticipantQuery.js +93 -0
- package/dist/src/messages/messagesSendByParticipantQuery.js.map +1 -0
- package/dist/src/notes/notesCreate.d.ts +23 -0
- package/dist/src/notes/notesCreate.d.ts.map +1 -0
- package/dist/src/notes/notesCreate.js +56 -0
- package/dist/src/notes/notesCreate.js.map +1 -0
- package/dist/src/notes/notesDelete.d.ts +20 -0
- package/dist/src/notes/notesDelete.d.ts.map +1 -0
- package/dist/src/notes/notesDelete.js +58 -0
- package/dist/src/notes/notesDelete.js.map +1 -0
- package/dist/src/notes/notesList.d.ts +26 -0
- package/dist/src/notes/notesList.d.ts.map +1 -0
- package/dist/src/notes/notesList.js +80 -0
- package/dist/src/notes/notesList.js.map +1 -0
- package/dist/src/notes/notesRead.d.ts +26 -0
- package/dist/src/notes/notesRead.d.ts.map +1 -0
- package/dist/src/notes/notesRead.js +82 -0
- package/dist/src/notes/notesRead.js.map +1 -0
- package/dist/src/notes/notesUpdate.d.ts +24 -0
- package/dist/src/notes/notesUpdate.d.ts.map +1 -0
- package/dist/src/notes/notesUpdate.js +75 -0
- package/dist/src/notes/notesUpdate.js.map +1 -0
- package/dist/src/osascript/common.d.ts +6 -0
- package/dist/src/osascript/common.d.ts.map +1 -0
- package/dist/src/osascript/common.js +52 -0
- package/dist/src/osascript/common.js.map +1 -0
- package/dist/src/platform/adapters/darwin.d.ts +3 -0
- package/dist/src/platform/adapters/darwin.d.ts.map +1 -0
- package/dist/src/platform/adapters/darwin.js +14 -0
- package/dist/src/platform/adapters/darwin.js.map +1 -0
- package/dist/src/platform/adapters/linux.d.ts +3 -0
- package/dist/src/platform/adapters/linux.d.ts.map +1 -0
- package/dist/src/platform/adapters/linux.js +8 -0
- package/dist/src/platform/adapters/linux.js.map +1 -0
- package/dist/src/platform/adapters/win32.d.ts +3 -0
- package/dist/src/platform/adapters/win32.d.ts.map +1 -0
- package/dist/src/platform/adapters/win32.js +8 -0
- package/dist/src/platform/adapters/win32.js.map +1 -0
- package/dist/src/platform/index.d.ts +4 -0
- package/dist/src/platform/index.d.ts.map +1 -0
- package/dist/src/platform/index.js +4 -0
- package/dist/src/platform/index.js.map +1 -0
- package/dist/src/platform/platformGetCapabilities.d.ts +23 -0
- package/dist/src/platform/platformGetCapabilities.d.ts.map +1 -0
- package/dist/src/platform/platformGetCapabilities.js +32 -0
- package/dist/src/platform/platformGetCapabilities.js.map +1 -0
- package/dist/src/platform/registry.d.ts +3 -0
- package/dist/src/platform/registry.d.ts.map +1 -0
- package/dist/src/platform/registry.js +16 -0
- package/dist/src/platform/registry.js.map +1 -0
- package/dist/src/platform/runtime.d.ts +15 -0
- package/dist/src/platform/runtime.d.ts.map +1 -0
- package/dist/src/platform/runtime.js +37 -0
- package/dist/src/platform/runtime.js.map +1 -0
- package/dist/src/platform/types.d.ts +10 -0
- package/dist/src/platform/types.d.ts.map +1 -0
- package/dist/src/platform/types.js +10 -0
- package/dist/src/platform/types.js.map +1 -0
- package/dist/src/reminders/remindersComplete.d.ts +22 -0
- package/dist/src/reminders/remindersComplete.d.ts.map +1 -0
- package/dist/src/reminders/remindersComplete.js +60 -0
- package/dist/src/reminders/remindersComplete.js.map +1 -0
- package/dist/src/reminders/remindersCreate.d.ts +24 -0
- package/dist/src/reminders/remindersCreate.d.ts.map +1 -0
- package/dist/src/reminders/remindersCreate.js +57 -0
- package/dist/src/reminders/remindersCreate.js.map +1 -0
- package/dist/src/reminders/remindersDelete.d.ts +22 -0
- package/dist/src/reminders/remindersDelete.d.ts.map +1 -0
- package/dist/src/reminders/remindersDelete.js +60 -0
- package/dist/src/reminders/remindersDelete.js.map +1 -0
- package/dist/src/reminders/remindersFind.d.ts +30 -0
- package/dist/src/reminders/remindersFind.d.ts.map +1 -0
- package/dist/src/reminders/remindersFind.js +85 -0
- package/dist/src/reminders/remindersFind.js.map +1 -0
- package/dist/src/reminders/remindersList.d.ts +28 -0
- package/dist/src/reminders/remindersList.d.ts.map +1 -0
- package/dist/src/reminders/remindersList.js +78 -0
- package/dist/src/reminders/remindersList.js.map +1 -0
- package/dist/src/reminders/remindersSyncFromCalendar.d.ts +31 -0
- package/dist/src/reminders/remindersSyncFromCalendar.d.ts.map +1 -0
- package/dist/src/reminders/remindersSyncFromCalendar.js +125 -0
- package/dist/src/reminders/remindersSyncFromCalendar.js.map +1 -0
- package/dist/src/safari/safariCloseTab.d.ts +22 -0
- package/dist/src/safari/safariCloseTab.d.ts.map +1 -0
- package/dist/src/safari/safariCloseTab.js +39 -0
- package/dist/src/safari/safariCloseTab.js.map +1 -0
- package/dist/src/safari/safariGetActiveTab.d.ts +18 -0
- package/dist/src/safari/safariGetActiveTab.d.ts.map +1 -0
- package/dist/src/safari/safariGetActiveTab.js +34 -0
- package/dist/src/safari/safariGetActiveTab.js.map +1 -0
- package/dist/src/safari/safariListTabs.d.ts +26 -0
- package/dist/src/safari/safariListTabs.d.ts.map +1 -0
- package/dist/src/safari/safariListTabs.js +71 -0
- package/dist/src/safari/safariListTabs.js.map +1 -0
- package/dist/src/safari/safariOpenWebUrl.d.ts +22 -0
- package/dist/src/safari/safariOpenWebUrl.d.ts.map +1 -0
- package/dist/src/safari/safariOpenWebUrl.js +49 -0
- package/dist/src/safari/safariOpenWebUrl.js.map +1 -0
- package/dist/src/safari/safariReadPageContent.d.ts +31 -0
- package/dist/src/safari/safariReadPageContent.d.ts.map +1 -0
- package/dist/src/safari/safariReadPageContent.js +69 -0
- package/dist/src/safari/safariReadPageContent.js.map +1 -0
- package/dist/src/safari/safariReadSelection.d.ts +26 -0
- package/dist/src/safari/safariReadSelection.d.ts.map +1 -0
- package/dist/src/safari/safariReadSelection.js +75 -0
- package/dist/src/safari/safariReadSelection.js.map +1 -0
- package/package.json +10 -3
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Calendar events in range into Reminders list as tasks.
|
|
3
|
+
* It avoids duplicates by checking reminder title equality.
|
|
4
|
+
* @tool
|
|
5
|
+
* @effect local_write
|
|
6
|
+
*/
|
|
7
|
+
export declare function remindersSyncFromCalendar(args: {
|
|
8
|
+
calendar?: string;
|
|
9
|
+
remindersList?: string;
|
|
10
|
+
fromDateText?: string;
|
|
11
|
+
toDateText?: string;
|
|
12
|
+
titlePrefix?: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
result: {
|
|
16
|
+
calendar: string;
|
|
17
|
+
remindersList: string;
|
|
18
|
+
fromDateText: string;
|
|
19
|
+
toDateText: string;
|
|
20
|
+
scannedCount: number;
|
|
21
|
+
createdCount: number;
|
|
22
|
+
skippedCount: number;
|
|
23
|
+
};
|
|
24
|
+
evidence: {
|
|
25
|
+
type: string;
|
|
26
|
+
ref: string;
|
|
27
|
+
summary: string;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
}[];
|
|
30
|
+
}>;
|
|
31
|
+
//# sourceMappingURL=remindersSyncFromCalendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remindersSyncFromCalendar.d.ts","sourceRoot":"","sources":["../../../src/reminders/remindersSyncFromCalendar.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;;;;GA6HA"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { quoteAppleScriptString, runOsaScript, parseSeparatedRows } from "../osascript/common.js";
|
|
2
|
+
/**
|
|
3
|
+
* Sync Calendar events in range into Reminders list as tasks.
|
|
4
|
+
* It avoids duplicates by checking reminder title equality.
|
|
5
|
+
* @tool
|
|
6
|
+
* @effect local_write
|
|
7
|
+
*/
|
|
8
|
+
export async function remindersSyncFromCalendar(args) {
|
|
9
|
+
const calendar = args.calendar?.trim() || "Home";
|
|
10
|
+
const remindersList = args.remindersList?.trim() || "Reminders";
|
|
11
|
+
const fromDateText = args.fromDateText?.trim() || "1/1/1970 00:00";
|
|
12
|
+
const toDateText = args.toDateText?.trim() || "1/1/2100 00:00";
|
|
13
|
+
const titlePrefix = args.titlePrefix?.trim() || "[Cal] ";
|
|
14
|
+
const limit = Math.max(1, Math.min(500, Math.trunc(args.limit ?? 100)));
|
|
15
|
+
const lines = [
|
|
16
|
+
'tell application "Calendar"',
|
|
17
|
+
"set rs to (ASCII character 30)",
|
|
18
|
+
"set fs to (ASCII character 31)",
|
|
19
|
+
`set calName to ${quoteAppleScriptString(calendar)}`,
|
|
20
|
+
`set fromText to ${quoteAppleScriptString(fromDateText)}`,
|
|
21
|
+
`set toText to ${quoteAppleScriptString(toDateText)}`,
|
|
22
|
+
"set fromDate to date fromText",
|
|
23
|
+
"set toDate to date toText",
|
|
24
|
+
"set targetCal to calendar calName",
|
|
25
|
+
"set rows to {}",
|
|
26
|
+
"set n to 0",
|
|
27
|
+
`set maxCount to ${limit}`,
|
|
28
|
+
"set matchedEvents to (every event of targetCal whose start date >= fromDate and start date <= toDate)",
|
|
29
|
+
"repeat with ev in matchedEvents",
|
|
30
|
+
"if n is greater than or equal to maxCount then exit repeat",
|
|
31
|
+
"set n to n + 1",
|
|
32
|
+
"set titleText to \"\"",
|
|
33
|
+
"try",
|
|
34
|
+
"set titleText to (summary of ev) as text",
|
|
35
|
+
"end try",
|
|
36
|
+
"set startText to \"\"",
|
|
37
|
+
"try",
|
|
38
|
+
"set startText to (start date of ev) as text",
|
|
39
|
+
"end try",
|
|
40
|
+
"set end of rows to titleText & fs & startText",
|
|
41
|
+
"end repeat",
|
|
42
|
+
"set AppleScript's text item delimiters to rs",
|
|
43
|
+
"set outText to rows as text",
|
|
44
|
+
"set AppleScript's text item delimiters to \"\"",
|
|
45
|
+
"return outText",
|
|
46
|
+
"end tell",
|
|
47
|
+
];
|
|
48
|
+
const eventOutput = await runOsaScript(lines, "CALENDAR");
|
|
49
|
+
const eventRows = parseSeparatedRows(eventOutput);
|
|
50
|
+
const candidates = eventRows.map((parts) => ({
|
|
51
|
+
title: parts[0] ?? "",
|
|
52
|
+
startDateText: parts[1] ?? "",
|
|
53
|
+
}));
|
|
54
|
+
const existingLines = [
|
|
55
|
+
'tell application "Reminders"',
|
|
56
|
+
"set rs to (ASCII character 30)",
|
|
57
|
+
`set listNameText to ${quoteAppleScriptString(remindersList)}`,
|
|
58
|
+
"set targetList to list listNameText",
|
|
59
|
+
"set names to {}",
|
|
60
|
+
"repeat with r in reminders of targetList",
|
|
61
|
+
"set nm to \"\"",
|
|
62
|
+
"try",
|
|
63
|
+
"set nm to (name of r) as text",
|
|
64
|
+
"end try",
|
|
65
|
+
"if nm is not \"\" then set end of names to nm",
|
|
66
|
+
"end repeat",
|
|
67
|
+
"set AppleScript's text item delimiters to rs",
|
|
68
|
+
"set outText to names as text",
|
|
69
|
+
"set AppleScript's text item delimiters to \"\"",
|
|
70
|
+
"return outText",
|
|
71
|
+
"end tell",
|
|
72
|
+
];
|
|
73
|
+
const existingOutput = await runOsaScript(existingLines, "REMINDERS");
|
|
74
|
+
const existingTitles = new Set(existingOutput
|
|
75
|
+
.split("\x1e")
|
|
76
|
+
.map((s) => s.trim())
|
|
77
|
+
.filter((s) => s.length > 0));
|
|
78
|
+
const toCreate = candidates
|
|
79
|
+
.map((ev) => ({
|
|
80
|
+
title: `${titlePrefix}${ev.title}`,
|
|
81
|
+
dueDateText: ev.startDateText,
|
|
82
|
+
}))
|
|
83
|
+
.filter((item) => item.title.trim().length > 0)
|
|
84
|
+
.filter((item) => !existingTitles.has(item.title));
|
|
85
|
+
let createdCount = 0;
|
|
86
|
+
for (const item of toCreate) {
|
|
87
|
+
const createLines = [
|
|
88
|
+
'tell application "Reminders"',
|
|
89
|
+
`set listNameText to ${quoteAppleScriptString(remindersList)}`,
|
|
90
|
+
"set targetList to list listNameText",
|
|
91
|
+
`set t to ${quoteAppleScriptString(item.title)}`,
|
|
92
|
+
`set dueText to ${quoteAppleScriptString(item.dueDateText)}`,
|
|
93
|
+
"tell targetList",
|
|
94
|
+
"set r to make new reminder with properties {name:t}",
|
|
95
|
+
"try",
|
|
96
|
+
"set due date of r to date dueText",
|
|
97
|
+
"end try",
|
|
98
|
+
"end tell",
|
|
99
|
+
'return "ok"',
|
|
100
|
+
"end tell",
|
|
101
|
+
];
|
|
102
|
+
await runOsaScript(createLines, "REMINDERS");
|
|
103
|
+
createdCount += 1;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
result: {
|
|
107
|
+
calendar,
|
|
108
|
+
remindersList,
|
|
109
|
+
fromDateText,
|
|
110
|
+
toDateText,
|
|
111
|
+
scannedCount: candidates.length,
|
|
112
|
+
createdCount,
|
|
113
|
+
skippedCount: Math.max(0, candidates.length - createdCount),
|
|
114
|
+
},
|
|
115
|
+
evidence: [
|
|
116
|
+
{
|
|
117
|
+
type: "tool",
|
|
118
|
+
ref: "remindersSyncFromCalendar",
|
|
119
|
+
summary: `Synced calendar ${calendar} to reminders ${remindersList}, created ${createdCount}`,
|
|
120
|
+
createdAt: new Date().toISOString(),
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=remindersSyncFromCalendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remindersSyncFromCalendar.js","sourceRoot":"","sources":["../../../src/reminders/remindersSyncFromCalendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Close a Safari tab by window and tab index (1-based).
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect local_write
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariCloseTab(args: {
|
|
7
|
+
windowIndex?: number;
|
|
8
|
+
tabIndex: number;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
result: {
|
|
11
|
+
windowIndex: number;
|
|
12
|
+
tabIndex: number;
|
|
13
|
+
status: string;
|
|
14
|
+
};
|
|
15
|
+
evidence: {
|
|
16
|
+
type: string;
|
|
17
|
+
ref: string;
|
|
18
|
+
summary: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
}[];
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=safariCloseTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariCloseTab.d.ts","sourceRoot":"","sources":["../../../src/safari/safariCloseTab.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAkCpF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createTaggedError } from "@easynet/agent-tool";
|
|
2
|
+
import { runOsaScript } from "../osascript/common.js";
|
|
3
|
+
/**
|
|
4
|
+
* Close a Safari tab by window and tab index (1-based).
|
|
5
|
+
* @tool
|
|
6
|
+
* @effect local_write
|
|
7
|
+
*/
|
|
8
|
+
export async function safariCloseTab(args) {
|
|
9
|
+
const windowIndex = Math.max(1, Math.trunc(args.windowIndex ?? 1));
|
|
10
|
+
const tabIndex = Math.max(1, Math.trunc(args.tabIndex));
|
|
11
|
+
if (!Number.isFinite(tabIndex)) {
|
|
12
|
+
throw createTaggedError("SAFARI_INVALID", "tabIndex is required", {});
|
|
13
|
+
}
|
|
14
|
+
const lines = [
|
|
15
|
+
'tell application "Safari"',
|
|
16
|
+
`set targetWindow to window ${windowIndex}`,
|
|
17
|
+
`set targetTab to tab ${tabIndex} of targetWindow`,
|
|
18
|
+
"close targetTab",
|
|
19
|
+
'return "closed"',
|
|
20
|
+
"end tell",
|
|
21
|
+
];
|
|
22
|
+
const output = await runOsaScript(lines, "SAFARI");
|
|
23
|
+
return {
|
|
24
|
+
result: {
|
|
25
|
+
windowIndex,
|
|
26
|
+
tabIndex,
|
|
27
|
+
status: output || "closed",
|
|
28
|
+
},
|
|
29
|
+
evidence: [
|
|
30
|
+
{
|
|
31
|
+
type: "tool",
|
|
32
|
+
ref: "safariCloseTab",
|
|
33
|
+
summary: `Closed Safari tab ${tabIndex} in window ${windowIndex}`,
|
|
34
|
+
createdAt: new Date().toISOString(),
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=safariCloseTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariCloseTab.js","sourceRoot":"","sources":["../../../src/safari/safariCloseTab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAgD;IACnF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,8BAA8B,WAAW,EAAE;QAC3C,wBAAwB,QAAQ,kBAAkB;QAClD,iBAAiB;QACjB,iBAAiB;QACjB,UAAU;KACX,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEnD,OAAO;QACL,MAAM,EAAE;YACN,WAAW;YACX,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,QAAQ;SAC3B;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,gBAAgB;gBACrB,OAAO,EAAE,qBAAqB,QAAQ,cAAc,WAAW,EAAE;gBACjE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical name for reading Safari active tab metadata.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect none
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariGetActiveTab(_?: {}): Promise<{
|
|
7
|
+
result: {
|
|
8
|
+
title: string;
|
|
9
|
+
url: string;
|
|
10
|
+
};
|
|
11
|
+
evidence: {
|
|
12
|
+
type: string;
|
|
13
|
+
ref: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
}[];
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=safariGetActiveTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariGetActiveTab.d.ts","sourceRoot":"","sources":["../../../src/safari/safariGetActiveTab.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,GAAE,EAAO;;;;;;;;;;;GA4BlD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { parseSeparatedRows, runOsaScript } from "../osascript/common.js";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical name for reading Safari active tab metadata.
|
|
4
|
+
* @tool
|
|
5
|
+
* @effect none
|
|
6
|
+
*/
|
|
7
|
+
export async function safariGetActiveTab(_ = {}) {
|
|
8
|
+
const lines = [
|
|
9
|
+
'tell application "Safari"',
|
|
10
|
+
'if (count of windows) is 0 then error "Safari has no open windows"',
|
|
11
|
+
"set fs to (ASCII character 31)",
|
|
12
|
+
"set u to URL of current tab of front window",
|
|
13
|
+
"set t to name of current tab of front window",
|
|
14
|
+
"return t & fs & u",
|
|
15
|
+
"end tell",
|
|
16
|
+
];
|
|
17
|
+
const output = await runOsaScript(lines, "SAFARI");
|
|
18
|
+
const row = parseSeparatedRows(output)[0] ?? output.split("\x1f");
|
|
19
|
+
return {
|
|
20
|
+
result: {
|
|
21
|
+
title: row[0] ?? "",
|
|
22
|
+
url: row[1] ?? "",
|
|
23
|
+
},
|
|
24
|
+
evidence: [
|
|
25
|
+
{
|
|
26
|
+
type: "tool",
|
|
27
|
+
ref: "safariGetActiveTab",
|
|
28
|
+
summary: "Fetched Safari active tab info",
|
|
29
|
+
createdAt: new Date().toISOString(),
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=safariGetActiveTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariGetActiveTab.js","sourceRoot":"","sources":["../../../src/safari/safariGetActiveTab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAQ,EAAE;IACjD,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,oEAAoE;QACpE,gCAAgC;QAChC,6CAA6C;QAC7C,8CAA8C;QAC9C,mBAAmB;QACnB,UAAU;KACX,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElE,OAAO;QACL,MAAM,EAAE;YACN,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;YACnB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;SAClB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,oBAAoB;gBACzB,OAAO,EAAE,gCAAgC;gBACzC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List tabs in Safari windows.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect none
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariListTabs(args?: {
|
|
7
|
+
windowIndex?: number;
|
|
8
|
+
limit?: number;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
result: {
|
|
11
|
+
count: number;
|
|
12
|
+
tabs: {
|
|
13
|
+
windowIndex: number;
|
|
14
|
+
tabIndex: number;
|
|
15
|
+
title: string;
|
|
16
|
+
url: string;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
evidence: {
|
|
20
|
+
type: string;
|
|
21
|
+
ref: string;
|
|
22
|
+
summary: string;
|
|
23
|
+
createdAt: string;
|
|
24
|
+
}[];
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=safariListTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariListTabs.d.ts","sourceRoot":"","sources":["../../../src/safari/safariListTabs.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;GAmEvF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { parseSeparatedRows, runOsaScript } from "../osascript/common.js";
|
|
2
|
+
/**
|
|
3
|
+
* List tabs in Safari windows.
|
|
4
|
+
* @tool
|
|
5
|
+
* @effect none
|
|
6
|
+
*/
|
|
7
|
+
export async function safariListTabs(args = {}) {
|
|
8
|
+
const windowIndex = args.windowIndex != null ? Math.max(1, Math.trunc(args.windowIndex)) : null;
|
|
9
|
+
const limit = Math.max(1, Math.min(500, Math.trunc(args.limit ?? 100)));
|
|
10
|
+
const lines = [
|
|
11
|
+
'tell application "Safari"',
|
|
12
|
+
'if (count of windows) is 0 then return ""',
|
|
13
|
+
"set rs to (ASCII character 30)",
|
|
14
|
+
"set fs to (ASCII character 31)",
|
|
15
|
+
"set rows to {}",
|
|
16
|
+
"set n to 0",
|
|
17
|
+
`set maxCount to ${limit}`,
|
|
18
|
+
...(windowIndex
|
|
19
|
+
? [
|
|
20
|
+
`set sourceWindows to {window ${windowIndex}}`,
|
|
21
|
+
]
|
|
22
|
+
: ["set sourceWindows to windows"]),
|
|
23
|
+
"repeat with w in sourceWindows",
|
|
24
|
+
"set wIdx to index of w",
|
|
25
|
+
"set tIdx to 0",
|
|
26
|
+
"repeat with tb in tabs of w",
|
|
27
|
+
"if n is greater than or equal to maxCount then exit repeat",
|
|
28
|
+
"set n to n + 1",
|
|
29
|
+
"set tIdx to tIdx + 1",
|
|
30
|
+
"set titleText to \"\"",
|
|
31
|
+
"try",
|
|
32
|
+
"set titleText to (name of tb) as text",
|
|
33
|
+
"end try",
|
|
34
|
+
"set urlText to \"\"",
|
|
35
|
+
"try",
|
|
36
|
+
"set urlText to (URL of tb) as text",
|
|
37
|
+
"end try",
|
|
38
|
+
"set end of rows to (wIdx as text) & fs & (tIdx as text) & fs & titleText & fs & urlText",
|
|
39
|
+
"end repeat",
|
|
40
|
+
"if n is greater than or equal to maxCount then exit repeat",
|
|
41
|
+
"end repeat",
|
|
42
|
+
"set AppleScript's text item delimiters to rs",
|
|
43
|
+
"set outText to rows as text",
|
|
44
|
+
"set AppleScript's text item delimiters to \"\"",
|
|
45
|
+
"return outText",
|
|
46
|
+
"end tell",
|
|
47
|
+
];
|
|
48
|
+
const output = await runOsaScript(lines, "SAFARI");
|
|
49
|
+
const rows = parseSeparatedRows(output);
|
|
50
|
+
const tabs = rows.map((parts) => ({
|
|
51
|
+
windowIndex: Number(parts[0] ?? "0") || 0,
|
|
52
|
+
tabIndex: Number(parts[1] ?? "0") || 0,
|
|
53
|
+
title: parts[2] ?? "",
|
|
54
|
+
url: parts[3] ?? "",
|
|
55
|
+
}));
|
|
56
|
+
return {
|
|
57
|
+
result: {
|
|
58
|
+
count: tabs.length,
|
|
59
|
+
tabs,
|
|
60
|
+
},
|
|
61
|
+
evidence: [
|
|
62
|
+
{
|
|
63
|
+
type: "tool",
|
|
64
|
+
ref: "safariListTabs",
|
|
65
|
+
summary: `Listed ${tabs.length} Safari tabs`,
|
|
66
|
+
createdAt: new Date().toISOString(),
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=safariListTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariListTabs.js","sourceRoot":"","sources":["../../../src/safari/safariListTabs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAiD,EAAE;IACtF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,2CAA2C;QAC3C,gCAAgC;QAChC,gCAAgC;QAChC,gBAAgB;QAChB,YAAY;QACZ,mBAAmB,KAAK,EAAE;QAC1B,GAAG,CAAC,WAAW;YACb,CAAC,CAAC;gBACE,gCAAgC,WAAW,GAAG;aAC/C;YACH,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACrC,gCAAgC;QAChC,wBAAwB;QACxB,eAAe;QACf,6BAA6B;QAC7B,4DAA4D;QAC5D,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,KAAK;QACL,uCAAuC;QACvC,SAAS;QACT,qBAAqB;QACrB,KAAK;QACL,oCAAoC;QACpC,SAAS;QACT,yFAAyF;QACzF,YAAY;QACZ,4DAA4D;QAC5D,YAAY;QACZ,8CAA8C;QAC9C,6BAA6B;QAC7B,gDAAgD;QAChD,gBAAgB;QAChB,UAAU;KACX,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;QACzC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;QACtC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;KACpB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,MAAM,EAAE;YACN,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,IAAI;SACL;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,gBAAgB;gBACrB,OAAO,EAAE,UAAU,IAAI,CAAC,MAAM,cAAc;gBAC5C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open a web URL in Safari.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect local_write
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariOpenWebUrl(args: {
|
|
7
|
+
url: string;
|
|
8
|
+
newTab?: boolean;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
result: {
|
|
11
|
+
url: string;
|
|
12
|
+
newTab: boolean;
|
|
13
|
+
title: string;
|
|
14
|
+
};
|
|
15
|
+
evidence: {
|
|
16
|
+
type: string;
|
|
17
|
+
ref: string;
|
|
18
|
+
summary: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
}[];
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=safariOpenWebUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariOpenWebUrl.d.ts","sourceRoot":"","sources":["../../../src/safari/safariOpenWebUrl.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;;GA0C7E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createTaggedError } from "@easynet/agent-tool";
|
|
2
|
+
import { quoteAppleScriptString, runOsaScript } from "../osascript/common.js";
|
|
3
|
+
/**
|
|
4
|
+
* Open a web URL in Safari.
|
|
5
|
+
* @tool
|
|
6
|
+
* @effect local_write
|
|
7
|
+
*/
|
|
8
|
+
export async function safariOpenWebUrl(args) {
|
|
9
|
+
const url = args.url?.trim();
|
|
10
|
+
if (!url)
|
|
11
|
+
throw createTaggedError("SAFARI_INVALID", "url is required", {});
|
|
12
|
+
const newTab = Boolean(args.newTab ?? true);
|
|
13
|
+
const lines = [
|
|
14
|
+
'tell application "Safari"',
|
|
15
|
+
"activate",
|
|
16
|
+
'if (count of windows) is 0 then make new document with properties {URL:"about:blank"}',
|
|
17
|
+
...(newTab
|
|
18
|
+
? [
|
|
19
|
+
"tell front window",
|
|
20
|
+
"set newTabRef to make new tab with properties {URL:" + quoteAppleScriptString(url) + "}",
|
|
21
|
+
"set current tab to newTabRef",
|
|
22
|
+
"end tell",
|
|
23
|
+
]
|
|
24
|
+
: ["set URL of current tab of front window to " + quoteAppleScriptString(url)]),
|
|
25
|
+
"set outTitle to \"\"",
|
|
26
|
+
"try",
|
|
27
|
+
"set outTitle to (name of current tab of front window) as text",
|
|
28
|
+
"end try",
|
|
29
|
+
"return outTitle",
|
|
30
|
+
"end tell",
|
|
31
|
+
];
|
|
32
|
+
const title = await runOsaScript(lines, "SAFARI");
|
|
33
|
+
return {
|
|
34
|
+
result: {
|
|
35
|
+
url,
|
|
36
|
+
newTab,
|
|
37
|
+
title,
|
|
38
|
+
},
|
|
39
|
+
evidence: [
|
|
40
|
+
{
|
|
41
|
+
type: "tool",
|
|
42
|
+
ref: "safariOpenWebUrl",
|
|
43
|
+
summary: `Opened URL in Safari: ${url}`,
|
|
44
|
+
createdAt: new Date().toISOString(),
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=safariOpenWebUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariOpenWebUrl.js","sourceRoot":"","sources":["../../../src/safari/safariOpenWebUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAuC;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,UAAU;QACV,uFAAuF;QACvF,GAAG,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,mBAAmB;gBACnB,qDAAqD,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,GAAG;gBACzF,8BAA8B;gBAC9B,UAAU;aACX;YACH,CAAC,CAAC,CAAC,4CAA4C,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,sBAAsB;QACtB,KAAK;QACL,+DAA+D;QAC/D,SAAS;QACT,iBAAiB;QACjB,UAAU;KACX,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO;QACL,MAAM,EAAE;YACN,GAAG;YACH,MAAM;YACN,KAAK;SACN;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,kBAAkB;gBACvB,OAAO,EAAE,yBAAyB,GAAG,EAAE;gBACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read Safari page main content from front tab or a specified tab.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect none
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariReadPageContent(args?: {
|
|
7
|
+
windowIndex?: number;
|
|
8
|
+
tabIndex?: number;
|
|
9
|
+
maxChars?: number;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
maxBytes?: number;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
result: {
|
|
14
|
+
url: string;
|
|
15
|
+
tabTitle: string;
|
|
16
|
+
pageTitle: string | null;
|
|
17
|
+
status: number;
|
|
18
|
+
isHtml: boolean;
|
|
19
|
+
bytes: number;
|
|
20
|
+
mainContent: string;
|
|
21
|
+
truncated: boolean;
|
|
22
|
+
maxChars: number;
|
|
23
|
+
};
|
|
24
|
+
evidence: {
|
|
25
|
+
type: string;
|
|
26
|
+
ref: string;
|
|
27
|
+
summary: string;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
}[];
|
|
30
|
+
}>;
|
|
31
|
+
//# sourceMappingURL=safariReadPageContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariReadPageContent.d.ts","sourceRoot":"","sources":["../../../src/safari/safariReadPageContent.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,GAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;;;;GAmEL"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createTaggedError } from "@easynet/agent-tool";
|
|
2
|
+
import { runOsaScript } from "../osascript/common.js";
|
|
3
|
+
import { fetchPageMainContent } from "../http/fetchPageMainContent.js";
|
|
4
|
+
/**
|
|
5
|
+
* Read Safari page main content from front tab or a specified tab.
|
|
6
|
+
* @tool
|
|
7
|
+
* @effect none
|
|
8
|
+
*/
|
|
9
|
+
export async function safariReadPageContent(args = {}) {
|
|
10
|
+
const maxChars = Math.max(200, Math.min(200000, Math.trunc(args.maxChars ?? 12000)));
|
|
11
|
+
const useSpecificTab = typeof args.windowIndex === "number" && Number.isFinite(args.windowIndex) &&
|
|
12
|
+
typeof args.tabIndex === "number" && Number.isFinite(args.tabIndex);
|
|
13
|
+
const lines = useSpecificTab
|
|
14
|
+
? [
|
|
15
|
+
'tell application "Safari"',
|
|
16
|
+
'if (count of windows) is 0 then error "Safari has no open windows"',
|
|
17
|
+
`set w to window ${Math.max(1, Math.trunc(args.windowIndex ?? 1))}`,
|
|
18
|
+
`set t to tab ${Math.max(1, Math.trunc(args.tabIndex ?? 1))} of w`,
|
|
19
|
+
"set fs to (ASCII character 31)",
|
|
20
|
+
"set pageTitle to (name of t) as text",
|
|
21
|
+
"set pageUrl to (URL of t) as text",
|
|
22
|
+
"return pageTitle & fs & pageUrl",
|
|
23
|
+
"end tell",
|
|
24
|
+
]
|
|
25
|
+
: [
|
|
26
|
+
'tell application "Safari"',
|
|
27
|
+
'if (count of windows) is 0 then error "Safari has no open windows"',
|
|
28
|
+
"set fs to (ASCII character 31)",
|
|
29
|
+
"set pageTitle to (name of current tab of front window) as text",
|
|
30
|
+
"set pageUrl to (URL of current tab of front window) as text",
|
|
31
|
+
"return pageTitle & fs & pageUrl",
|
|
32
|
+
"end tell",
|
|
33
|
+
];
|
|
34
|
+
const output = await runOsaScript(lines, "SAFARI");
|
|
35
|
+
const [tabTitle = "", url = ""] = output.split("\x1f");
|
|
36
|
+
if (!url.trim()) {
|
|
37
|
+
throw createTaggedError("SAFARI_INVALID", "Cannot read URL from Safari tab", {});
|
|
38
|
+
}
|
|
39
|
+
const page = await fetchPageMainContent({
|
|
40
|
+
url,
|
|
41
|
+
timeoutMs: args.timeoutMs,
|
|
42
|
+
maxBytes: args.maxBytes,
|
|
43
|
+
});
|
|
44
|
+
const mainContent = (page.result.mainContent ?? "");
|
|
45
|
+
const truncatedContent = mainContent.length > maxChars ? `${mainContent.slice(0, maxChars)}...` : mainContent;
|
|
46
|
+
return {
|
|
47
|
+
result: {
|
|
48
|
+
url,
|
|
49
|
+
tabTitle,
|
|
50
|
+
pageTitle: page.result.title ?? null,
|
|
51
|
+
status: page.result.status,
|
|
52
|
+
isHtml: page.result.isHtml,
|
|
53
|
+
bytes: page.result.bytes,
|
|
54
|
+
mainContent: truncatedContent,
|
|
55
|
+
truncated: mainContent.length > maxChars,
|
|
56
|
+
maxChars,
|
|
57
|
+
},
|
|
58
|
+
evidence: [
|
|
59
|
+
...(Array.isArray(page.evidence) ? page.evidence : []),
|
|
60
|
+
{
|
|
61
|
+
type: "tool",
|
|
62
|
+
ref: "safariReadPageContent",
|
|
63
|
+
summary: `Read Safari page content from ${url}`,
|
|
64
|
+
createdAt: new Date().toISOString(),
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=safariReadPageContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariReadPageContent.js","sourceRoot":"","sources":["../../../src/safari/safariReadPageContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read selected text from Safari page (front tab by default).
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect none
|
|
5
|
+
*/
|
|
6
|
+
export declare function safariReadSelection(args?: {
|
|
7
|
+
windowIndex?: number;
|
|
8
|
+
tabIndex?: number;
|
|
9
|
+
maxChars?: number;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
result: {
|
|
12
|
+
title: string;
|
|
13
|
+
url: string;
|
|
14
|
+
hasSelection: boolean;
|
|
15
|
+
selection: string;
|
|
16
|
+
truncated: boolean;
|
|
17
|
+
maxChars: number;
|
|
18
|
+
};
|
|
19
|
+
evidence: {
|
|
20
|
+
type: string;
|
|
21
|
+
ref: string;
|
|
22
|
+
summary: string;
|
|
23
|
+
createdAt: string;
|
|
24
|
+
}[];
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=safariReadSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safariReadSelection.d.ts","sourceRoot":"","sources":["../../../src/safari/safariReadSelection.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,GAAE;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;GA6EL"}
|