@botbotgo/kit-builtin 0.0.92
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 +82 -0
- package/dist/agent-tool-extension-compat.d.ts +5 -0
- package/dist/agent-tool-extension-compat.d.ts.map +1 -0
- package/dist/agent-tool-extension-compat.js +8 -0
- package/dist/agent-tool-extension-compat.js.map +1 -0
- package/dist/config/tool.yaml +162 -0
- package/dist/core-tools-manifest.json +7081 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/src/analyze/analyzeLog.d.ts +30 -0
- package/dist/src/analyze/analyzeLog.d.ts.map +1 -0
- package/dist/src/analyze/analyzeLog.js +168 -0
- package/dist/src/analyze/analyzeLog.js.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.constants.d.ts +6 -0
- package/dist/src/analyze/analyzeProjectRepo.constants.d.ts.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.constants.js +53 -0
- package/dist/src/analyze/analyzeProjectRepo.constants.js.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.d.ts +35 -0
- package/dist/src/analyze/analyzeProjectRepo.d.ts.map +1 -0
- package/dist/src/analyze/analyzeProjectRepo.js +349 -0
- package/dist/src/analyze/analyzeProjectRepo.js.map +1 -0
- package/dist/src/analyze/askProjectRepo.d.ts +40 -0
- package/dist/src/analyze/askProjectRepo.d.ts.map +1 -0
- package/dist/src/analyze/askProjectRepo.helpers.d.ts +57 -0
- package/dist/src/analyze/askProjectRepo.helpers.d.ts.map +1 -0
- package/dist/src/analyze/askProjectRepo.helpers.js +233 -0
- package/dist/src/analyze/askProjectRepo.helpers.js.map +1 -0
- package/dist/src/analyze/askProjectRepo.js +287 -0
- package/dist/src/analyze/askProjectRepo.js.map +1 -0
- package/dist/src/analyze/defaults.d.ts +17 -0
- package/dist/src/analyze/defaults.d.ts.map +1 -0
- package/dist/src/analyze/defaults.js +17 -0
- package/dist/src/analyze/defaults.js.map +1 -0
- package/dist/src/analyze/embedText.d.ts +27 -0
- package/dist/src/analyze/embedText.d.ts.map +1 -0
- package/dist/src/analyze/embedText.js +132 -0
- package/dist/src/analyze/embedText.js.map +1 -0
- 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/defaults.d.ts +8 -0
- package/dist/src/exec/defaults.d.ts.map +1 -0
- package/dist/src/exec/defaults.js +28 -0
- package/dist/src/exec/defaults.js.map +1 -0
- package/dist/src/exec/runCommand.d.ts +31 -0
- package/dist/src/exec/runCommand.d.ts.map +1 -0
- package/dist/src/exec/runCommand.js +158 -0
- package/dist/src/exec/runCommand.js.map +1 -0
- package/dist/src/fs/defaults.d.ts +16 -0
- package/dist/src/fs/defaults.d.ts.map +1 -0
- package/dist/src/fs/defaults.js +16 -0
- package/dist/src/fs/defaults.js.map +1 -0
- package/dist/src/fs/deletePath.d.ts +23 -0
- package/dist/src/fs/deletePath.d.ts.map +1 -0
- package/dist/src/fs/deletePath.js +70 -0
- package/dist/src/fs/deletePath.js.map +1 -0
- package/dist/src/fs/listDir.d.ts +35 -0
- package/dist/src/fs/listDir.d.ts.map +1 -0
- package/dist/src/fs/listDir.js +115 -0
- package/dist/src/fs/listDir.js.map +1 -0
- package/dist/src/fs/readText.d.ts +22 -0
- package/dist/src/fs/readText.d.ts.map +1 -0
- package/dist/src/fs/readText.js +47 -0
- package/dist/src/fs/readText.js.map +1 -0
- package/dist/src/fs/searchText.d.ts +40 -0
- package/dist/src/fs/searchText.d.ts.map +1 -0
- package/dist/src/fs/searchText.js +162 -0
- package/dist/src/fs/searchText.js.map +1 -0
- package/dist/src/fs/sha256.d.ts +21 -0
- package/dist/src/fs/sha256.d.ts.map +1 -0
- package/dist/src/fs/sha256.js +51 -0
- package/dist/src/fs/sha256.js.map +1 -0
- package/dist/src/fs/writeText.d.ts +28 -0
- package/dist/src/fs/writeText.d.ts.map +1 -0
- package/dist/src/fs/writeText.js +68 -0
- package/dist/src/fs/writeText.js.map +1 -0
- 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 +120 -0
- package/dist/src/git/common.js.map +1 -0
- package/dist/src/git/defaults.d.ts +11 -0
- package/dist/src/git/defaults.d.ts.map +1 -0
- package/dist/src/git/defaults.js +54 -0
- package/dist/src/git/defaults.js.map +1 -0
- 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 +11 -0
- package/dist/src/git/gitTools.d.ts.map +1 -0
- package/dist/src/git/gitTools.js +11 -0
- package/dist/src/git/gitTools.js.map +1 -0
- package/dist/src/http/defaults.d.ts +10 -0
- package/dist/src/http/defaults.d.ts.map +1 -0
- package/dist/src/http/defaults.js +19 -0
- package/dist/src/http/defaults.js.map +1 -0
- package/dist/src/http/downloadFile.d.ts +31 -0
- package/dist/src/http/downloadFile.d.ts.map +1 -0
- package/dist/src/http/downloadFile.js +188 -0
- package/dist/src/http/downloadFile.js.map +1 -0
- package/dist/src/http/duckduckgoSearch.d.ts +31 -0
- package/dist/src/http/duckduckgoSearch.d.ts.map +1 -0
- package/dist/src/http/duckduckgoSearch.js +190 -0
- package/dist/src/http/duckduckgoSearch.js.map +1 -0
- package/dist/src/http/fetchJson.d.ts +28 -0
- package/dist/src/http/fetchJson.d.ts.map +1 -0
- package/dist/src/http/fetchJson.js +139 -0
- package/dist/src/http/fetchJson.js.map +1 -0
- package/dist/src/http/fetchPageMainContent.d.ts +27 -0
- package/dist/src/http/fetchPageMainContent.d.ts.map +1 -0
- package/dist/src/http/fetchPageMainContent.js +164 -0
- package/dist/src/http/fetchPageMainContent.js.map +1 -0
- package/dist/src/http/fetchText.d.ts +29 -0
- package/dist/src/http/fetchText.d.ts.map +1 -0
- package/dist/src/http/fetchText.js +153 -0
- package/dist/src/http/fetchText.js.map +1 -0
- package/dist/src/http/head.d.ts +25 -0
- package/dist/src/http/head.d.ts.map +1 -0
- package/dist/src/http/head.js +80 -0
- package/dist/src/http/head.js.map +1 -0
- package/dist/src/http/yahooFinance.d.ts +39 -0
- package/dist/src/http/yahooFinance.d.ts.map +1 -0
- package/dist/src/http/yahooFinance.js +160 -0
- package/dist/src/http/yahooFinance.js.map +1 -0
- package/dist/src/iterm/common.d.ts +51 -0
- package/dist/src/iterm/common.d.ts.map +1 -0
- package/dist/src/iterm/common.js +214 -0
- package/dist/src/iterm/common.js.map +1 -0
- package/dist/src/iterm/itermCreateTab.d.ts +30 -0
- package/dist/src/iterm/itermCreateTab.d.ts.map +1 -0
- package/dist/src/iterm/itermCreateTab.js +73 -0
- package/dist/src/iterm/itermCreateTab.js.map +1 -0
- package/dist/src/iterm/itermCreateWindow.d.ts +30 -0
- package/dist/src/iterm/itermCreateWindow.d.ts.map +1 -0
- package/dist/src/iterm/itermCreateWindow.js +78 -0
- package/dist/src/iterm/itermCreateWindow.js.map +1 -0
- package/dist/src/iterm/itermGetSessionInfo.d.ts +30 -0
- package/dist/src/iterm/itermGetSessionInfo.d.ts.map +1 -0
- package/dist/src/iterm/itermGetSessionInfo.js +41 -0
- package/dist/src/iterm/itermGetSessionInfo.js.map +1 -0
- package/dist/src/iterm/itermListCurrentWindowSessions.d.ts +22 -0
- package/dist/src/iterm/itermListCurrentWindowSessions.d.ts.map +1 -0
- package/dist/src/iterm/itermListCurrentWindowSessions.js +67 -0
- package/dist/src/iterm/itermListCurrentWindowSessions.js.map +1 -0
- package/dist/src/iterm/itermListWindows.d.ts +31 -0
- package/dist/src/iterm/itermListWindows.d.ts.map +1 -0
- package/dist/src/iterm/itermListWindows.js +73 -0
- package/dist/src/iterm/itermListWindows.js.map +1 -0
- package/dist/src/iterm/itermRename.d.ts +30 -0
- package/dist/src/iterm/itermRename.d.ts.map +1 -0
- package/dist/src/iterm/itermRename.js +49 -0
- package/dist/src/iterm/itermRename.js.map +1 -0
- package/dist/src/iterm/itermResizeWindow.d.ts +29 -0
- package/dist/src/iterm/itermResizeWindow.d.ts.map +1 -0
- package/dist/src/iterm/itermResizeWindow.js +53 -0
- package/dist/src/iterm/itermResizeWindow.js.map +1 -0
- package/dist/src/iterm/itermRunCommandInSession.d.ts +37 -0
- package/dist/src/iterm/itermRunCommandInSession.d.ts.map +1 -0
- package/dist/src/iterm/itermRunCommandInSession.js +175 -0
- package/dist/src/iterm/itermRunCommandInSession.js.map +1 -0
- package/dist/src/iterm/itermSendText.d.ts +31 -0
- package/dist/src/iterm/itermSendText.d.ts.map +1 -0
- package/dist/src/iterm/itermSendText.js +70 -0
- package/dist/src/iterm/itermSendText.js.map +1 -0
- package/dist/src/iterm/itermSetBackgroundColor.d.ts +35 -0
- package/dist/src/iterm/itermSetBackgroundColor.d.ts.map +1 -0
- package/dist/src/iterm/itermSetBackgroundColor.js +41 -0
- package/dist/src/iterm/itermSetBackgroundColor.js.map +1 -0
- 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 +32 -0
- package/dist/src/iterm/itermSplitPane.d.ts.map +1 -0
- package/dist/src/iterm/itermSplitPane.js +76 -0
- package/dist/src/iterm/itermSplitPane.js.map +1 -0
- package/dist/src/iterm/itermTools.d.ts +13 -0
- package/dist/src/iterm/itermTools.d.ts.map +1 -0
- package/dist/src/iterm/itermTools.js +13 -0
- package/dist/src/iterm/itermTools.js.map +1 -0
- 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/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/securityCompat.d.ts +8 -0
- package/dist/src/platform/securityCompat.d.ts.map +1 -0
- package/dist/src/platform/securityCompat.js +3 -0
- package/dist/src/platform/securityCompat.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/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/dist/src/util/hashText.d.ts +19 -0
- package/dist/src/util/hashText.d.ts.map +1 -0
- package/dist/src/util/hashText.js +24 -0
- package/dist/src/util/hashText.js.map +1 -0
- package/dist/src/util/jsonSelect.d.ts +22 -0
- package/dist/src/util/jsonSelect.d.ts.map +1 -0
- package/dist/src/util/jsonSelect.js +41 -0
- package/dist/src/util/jsonSelect.js.map +1 -0
- package/dist/src/util/now.d.ts +22 -0
- package/dist/src/util/now.d.ts.map +1 -0
- package/dist/src/util/now.js +51 -0
- package/dist/src/util/now.js.map +1 -0
- package/dist/src/util/overrideWithConfig.d.ts +2 -0
- package/dist/src/util/overrideWithConfig.d.ts.map +1 -0
- package/dist/src/util/overrideWithConfig.js +2 -0
- package/dist/src/util/overrideWithConfig.js.map +1 -0
- package/dist/src/util/templateRender.d.ts +20 -0
- package/dist/src/util/templateRender.d.ts.map +1 -0
- package/dist/src/util/templateRender.js +40 -0
- package/dist/src/util/templateRender.js.map +1 -0
- package/dist/src/util/truncate.d.ts +23 -0
- package/dist/src/util/truncate.d.ts.map +1 -0
- package/dist/src/util/truncate.js +44 -0
- package/dist/src/util/truncate.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +8 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createReadStream } from "node:fs";
|
|
2
|
+
import { stat } from "node:fs/promises";
|
|
3
|
+
import { createChecksumAccumulator } from "@botbotgo/common/utils";
|
|
4
|
+
import { getExtensionContext } from "../../index.js";
|
|
5
|
+
import { createTaggedError } from "@botbotgo/kit/sdk";
|
|
6
|
+
import { resolveSandboxedPath } from "../platform/securityCompat.js";
|
|
7
|
+
import { DEFAULT_SANDBOX_ROOT } from "./defaults.js";
|
|
8
|
+
import { overrideWithConfig } from "../util/overrideWithConfig.js";
|
|
9
|
+
/**
|
|
10
|
+
* Compute SHA-256 hash of a file in the sandbox.
|
|
11
|
+
* @tool
|
|
12
|
+
* @effect none
|
|
13
|
+
*/
|
|
14
|
+
export async function sha256(args) {
|
|
15
|
+
// Step 1: Defaults, then override with extension config; validate path input.
|
|
16
|
+
const defaults = { sandboxRoot: DEFAULT_SANDBOX_ROOT, enableSandboxValidation: false };
|
|
17
|
+
const ctx = getExtensionContext();
|
|
18
|
+
const cfg = overrideWithConfig(defaults, ctx.config);
|
|
19
|
+
const sandboxRoot = cfg.sandboxRoot ?? "";
|
|
20
|
+
const inputPath = args.path?.trim();
|
|
21
|
+
if (!inputPath) {
|
|
22
|
+
throw createTaggedError("FS_INVALID", "path is required", {});
|
|
23
|
+
}
|
|
24
|
+
// Step 2: Resolve path and stream file to compute SHA-256.
|
|
25
|
+
const resolvedPath = await resolveSandboxedPath(inputPath, sandboxRoot);
|
|
26
|
+
const fileStat = await stat(resolvedPath);
|
|
27
|
+
const hash = await new Promise((resolve, reject) => {
|
|
28
|
+
const hasher = createChecksumAccumulator();
|
|
29
|
+
const stream = createReadStream(resolvedPath);
|
|
30
|
+
stream.on("data", (chunk) => hasher.update(chunk));
|
|
31
|
+
stream.on("end", () => resolve(hasher.digest()));
|
|
32
|
+
stream.on("error", reject);
|
|
33
|
+
});
|
|
34
|
+
// Step 3: Return hash and evidence.
|
|
35
|
+
return {
|
|
36
|
+
result: {
|
|
37
|
+
sha256: hash,
|
|
38
|
+
path: resolvedPath,
|
|
39
|
+
bytes: fileStat.size,
|
|
40
|
+
},
|
|
41
|
+
evidence: [
|
|
42
|
+
{
|
|
43
|
+
type: "file",
|
|
44
|
+
ref: resolvedPath,
|
|
45
|
+
summary: `SHA-256 of ${resolvedPath} (${fileStat.size} bytes): ${hash.slice(0, 16)}...`,
|
|
46
|
+
createdAt: new Date().toISOString(),
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=sha256.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../../src/fs/sha256.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAE5B;IACC,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC;IACvF,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,2DAA2D;IAC3D,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,OAAO;QACL,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,QAAQ,CAAC,IAAI;SACrB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,YAAY;gBACjB,OAAO,EAAE,cAAc,YAAY,KAAK,QAAQ,CAAC,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;gBACvF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create or overwrite a UTF-8 text file in the sandbox, with auto mkdir and overwrite protection.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect local_write
|
|
5
|
+
*/
|
|
6
|
+
export declare function writeText(args: {
|
|
7
|
+
/** Path to write (within sandbox). */
|
|
8
|
+
path?: string;
|
|
9
|
+
/** File body. */
|
|
10
|
+
content?: string;
|
|
11
|
+
/** If true, overwrite existing file. Default false (fails if file exists). */
|
|
12
|
+
overwrite?: boolean;
|
|
13
|
+
/** If true, create parent directories. Default true. */
|
|
14
|
+
mkdirp?: boolean;
|
|
15
|
+
}): Promise<{
|
|
16
|
+
result: {
|
|
17
|
+
path: string;
|
|
18
|
+
bytes: number;
|
|
19
|
+
sha256: string;
|
|
20
|
+
};
|
|
21
|
+
evidence: {
|
|
22
|
+
type: string;
|
|
23
|
+
ref: string;
|
|
24
|
+
summary: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
}[];
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=writeText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeText.d.ts","sourceRoot":"","sources":["../../../src/fs/writeText.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;;;;;;;;;;;;GA4DA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { computeChecksum } from "@botbotgo/common/utils";
|
|
4
|
+
import { getExtensionContext } from "../../index.js";
|
|
5
|
+
import { resolveSandboxedPath } from "../platform/securityCompat.js";
|
|
6
|
+
import { DEFAULT_SANDBOX_ROOT } from "./defaults.js";
|
|
7
|
+
import { overrideWithConfig } from "../util/overrideWithConfig.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create or overwrite a UTF-8 text file in the sandbox, with auto mkdir and overwrite protection.
|
|
10
|
+
* @tool
|
|
11
|
+
* @effect local_write
|
|
12
|
+
*/
|
|
13
|
+
export async function writeText(args) {
|
|
14
|
+
// Step 1: Defaults, then override with extension config; validate path/content input.
|
|
15
|
+
const defaults = { sandboxRoot: DEFAULT_SANDBOX_ROOT, enableSandboxValidation: false };
|
|
16
|
+
const ctx = getExtensionContext();
|
|
17
|
+
const cfg = overrideWithConfig(defaults, ctx.config);
|
|
18
|
+
const sandboxRoot = cfg.sandboxRoot ?? "";
|
|
19
|
+
const inputPath = args.path?.trim();
|
|
20
|
+
if (!inputPath) {
|
|
21
|
+
throw new Error("path is required");
|
|
22
|
+
}
|
|
23
|
+
const text = (args.content ?? "").toString();
|
|
24
|
+
const overwrite = args.overwrite ?? false;
|
|
25
|
+
const mkdirp = args.mkdirp ?? true;
|
|
26
|
+
// Step 2: Resolve path, check overwrite, create parent dirs if needed.
|
|
27
|
+
const resolvedPath = await resolveSandboxedPath(inputPath, sandboxRoot);
|
|
28
|
+
if (!overwrite) {
|
|
29
|
+
const { access } = await import("node:fs/promises");
|
|
30
|
+
try {
|
|
31
|
+
await access(resolvedPath);
|
|
32
|
+
throw new Error(`File already exists: ${resolvedPath}. Set overwrite=true to allow overwriting.`);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
// File not found is expected — proceed
|
|
36
|
+
if (err instanceof Error && !err.message.includes("already exists")) {
|
|
37
|
+
// access threw ENOENT — file doesn't exist, continue
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Create parent directories if needed
|
|
45
|
+
if (mkdirp) {
|
|
46
|
+
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
47
|
+
}
|
|
48
|
+
// Step 3: Write file and return result with evidence.
|
|
49
|
+
await writeFile(resolvedPath, text, "utf-8");
|
|
50
|
+
const bytes = Buffer.byteLength(text, "utf-8");
|
|
51
|
+
const sha256 = computeChecksum(text);
|
|
52
|
+
return {
|
|
53
|
+
result: {
|
|
54
|
+
path: resolvedPath,
|
|
55
|
+
bytes,
|
|
56
|
+
sha256,
|
|
57
|
+
},
|
|
58
|
+
evidence: [
|
|
59
|
+
{
|
|
60
|
+
type: "file",
|
|
61
|
+
ref: resolvedPath,
|
|
62
|
+
summary: `Wrote ${bytes} bytes to ${resolvedPath} (sha256: ${sha256.slice(0, 12)}...)`,
|
|
63
|
+
createdAt: new Date().toISOString(),
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=writeText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeText.js","sourceRoot":"","sources":["../../../src/fs/writeText.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface GitExecResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GitHistoryCommit {
|
|
7
|
+
hash: string;
|
|
8
|
+
authorName: string;
|
|
9
|
+
authorEmail: string;
|
|
10
|
+
date: string;
|
|
11
|
+
subject: string;
|
|
12
|
+
body: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function runProcess(args: {
|
|
15
|
+
bin: string;
|
|
16
|
+
cmdArgs: string[];
|
|
17
|
+
cwd: string;
|
|
18
|
+
timeoutMs: number;
|
|
19
|
+
maxOutputBytes: number;
|
|
20
|
+
}): Promise<GitExecResult>;
|
|
21
|
+
export declare function resolveRepoPath(inputPath: string, sandboxRoot: string): Promise<string>;
|
|
22
|
+
export declare function failOnNonZero(command: string, out: GitExecResult): void;
|
|
23
|
+
export declare function parseGitHistory(stdout: string): GitHistoryCommit[];
|
|
24
|
+
export declare function buildGitConfig(): {
|
|
25
|
+
sandboxRoot: string;
|
|
26
|
+
gitTimeoutMs: number;
|
|
27
|
+
gitMaxOutputBytes: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function ensureGhAvailable(args: {
|
|
30
|
+
cwd: string;
|
|
31
|
+
timeoutMs: number;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
export declare function resolveCwd(repoPath: string): string;
|
|
34
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/git/common.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,aAAa,CAAC,CA0EzB;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAQvE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAiBlE;AAED,wBAAgB,cAAc;;;;EAQ7B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { resolve as pathResolve } from "node:path";
|
|
3
|
+
import { createTaggedError } from "@botbotgo/kit/sdk";
|
|
4
|
+
import { resolveSandboxedPath } from "../platform/securityCompat.js";
|
|
5
|
+
import { getExtensionContext } from "../../index.js";
|
|
6
|
+
import { overrideWithConfig } from "../util/overrideWithConfig.js";
|
|
7
|
+
import { DEFAULT_GIT_MAX_OUTPUT_BYTES, DEFAULT_GIT_TIMEOUT_MS, } from "./defaults.js";
|
|
8
|
+
export async function runProcess(args) {
|
|
9
|
+
return new Promise((resolvePromise, rejectPromise) => {
|
|
10
|
+
const proc = spawn(args.bin, args.cmdArgs, {
|
|
11
|
+
cwd: args.cwd,
|
|
12
|
+
shell: false,
|
|
13
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
14
|
+
env: { ...process.env, GIT_PAGER: "cat" },
|
|
15
|
+
});
|
|
16
|
+
let stdout = "";
|
|
17
|
+
let stderr = "";
|
|
18
|
+
let totalBytes = 0;
|
|
19
|
+
let settled = false;
|
|
20
|
+
const failOnce = (err) => {
|
|
21
|
+
if (settled)
|
|
22
|
+
return;
|
|
23
|
+
settled = true;
|
|
24
|
+
rejectPromise(err);
|
|
25
|
+
};
|
|
26
|
+
const doneOnce = (value) => {
|
|
27
|
+
if (settled)
|
|
28
|
+
return;
|
|
29
|
+
settled = true;
|
|
30
|
+
resolvePromise(value);
|
|
31
|
+
};
|
|
32
|
+
const append = (chunk, dest) => {
|
|
33
|
+
const len = Buffer.byteLength(chunk, "utf-8");
|
|
34
|
+
if (totalBytes + len > args.maxOutputBytes) {
|
|
35
|
+
proc.kill("SIGKILL");
|
|
36
|
+
failOnce(createTaggedError("GIT_OUTPUT_TOO_LARGE", `Git command output exceeded ${args.maxOutputBytes} bytes`, { maxBytes: args.maxOutputBytes }));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
totalBytes += len;
|
|
40
|
+
if (dest === "stdout")
|
|
41
|
+
stdout += chunk;
|
|
42
|
+
else
|
|
43
|
+
stderr += chunk;
|
|
44
|
+
};
|
|
45
|
+
proc.stdout?.setEncoding("utf-8");
|
|
46
|
+
proc.stderr?.setEncoding("utf-8");
|
|
47
|
+
proc.stdout?.on("data", (chunk) => append(chunk, "stdout"));
|
|
48
|
+
proc.stderr?.on("data", (chunk) => append(chunk, "stderr"));
|
|
49
|
+
const timer = setTimeout(() => {
|
|
50
|
+
proc.kill("SIGKILL");
|
|
51
|
+
failOnce(createTaggedError("GIT_TIMEOUT", `${args.bin} ${args.cmdArgs.join(" ")} timed out after ${args.timeoutMs}ms`, { timeoutMs: args.timeoutMs }));
|
|
52
|
+
}, args.timeoutMs);
|
|
53
|
+
proc.on("error", (err) => {
|
|
54
|
+
clearTimeout(timer);
|
|
55
|
+
failOnce(createTaggedError("GIT_SPAWN_ERROR", err.message, { command: args.bin }));
|
|
56
|
+
});
|
|
57
|
+
proc.on("close", (code) => {
|
|
58
|
+
clearTimeout(timer);
|
|
59
|
+
doneOnce({
|
|
60
|
+
stdout,
|
|
61
|
+
stderr,
|
|
62
|
+
exitCode: code ?? 1,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export async function resolveRepoPath(inputPath, sandboxRoot) {
|
|
68
|
+
if (!inputPath.trim()) {
|
|
69
|
+
throw createTaggedError("GIT_INVALID", "path is required", {});
|
|
70
|
+
}
|
|
71
|
+
return resolveSandboxedPath(inputPath, sandboxRoot);
|
|
72
|
+
}
|
|
73
|
+
export function failOnNonZero(command, out) {
|
|
74
|
+
if (out.exitCode !== 0) {
|
|
75
|
+
throw createTaggedError("GIT_COMMAND_FAILED", `git ${command} failed with exit ${out.exitCode}: ${(out.stderr || out.stdout).slice(0, 500)}`, { exitCode: out.exitCode });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export function parseGitHistory(stdout) {
|
|
79
|
+
return stdout
|
|
80
|
+
.split("\x1e")
|
|
81
|
+
.map((s) => s.trim())
|
|
82
|
+
.filter(Boolean)
|
|
83
|
+
.map((row) => {
|
|
84
|
+
const parts = row.split("\x1f");
|
|
85
|
+
return {
|
|
86
|
+
hash: parts[0] ?? "",
|
|
87
|
+
authorName: parts[1] ?? "",
|
|
88
|
+
authorEmail: parts[2] ?? "",
|
|
89
|
+
date: parts[3] ?? "",
|
|
90
|
+
subject: parts[4] ?? "",
|
|
91
|
+
body: parts[5] ?? "",
|
|
92
|
+
};
|
|
93
|
+
})
|
|
94
|
+
.filter((c) => c.hash !== "");
|
|
95
|
+
}
|
|
96
|
+
export function buildGitConfig() {
|
|
97
|
+
const defaults = {
|
|
98
|
+
sandboxRoot: "",
|
|
99
|
+
gitTimeoutMs: DEFAULT_GIT_TIMEOUT_MS,
|
|
100
|
+
gitMaxOutputBytes: DEFAULT_GIT_MAX_OUTPUT_BYTES,
|
|
101
|
+
};
|
|
102
|
+
const ctx = getExtensionContext();
|
|
103
|
+
return overrideWithConfig(defaults, ctx.config);
|
|
104
|
+
}
|
|
105
|
+
export async function ensureGhAvailable(args) {
|
|
106
|
+
const check = await runProcess({
|
|
107
|
+
bin: "gh",
|
|
108
|
+
cmdArgs: ["--version"],
|
|
109
|
+
cwd: pathResolve(args.cwd),
|
|
110
|
+
timeoutMs: args.timeoutMs,
|
|
111
|
+
maxOutputBytes: 1024 * 32,
|
|
112
|
+
}).catch((err) => {
|
|
113
|
+
throw createTaggedError("GIT_TOOL_MISSING", `GitHub CLI (gh) is required: ${err instanceof Error ? err.message : String(err)}`, {});
|
|
114
|
+
});
|
|
115
|
+
failOnNonZero("gh --version", check);
|
|
116
|
+
}
|
|
117
|
+
export function resolveCwd(repoPath) {
|
|
118
|
+
return pathResolve(repoPath);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/git/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git tool defaults. All overridable via extension config.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_GIT_READ_COMMANDS: readonly ["status", "log", "show", "diff", "branch", "rev-parse", "remote", "tag", "reflog", "blame", "ls-files", "grep", "shortlog", "describe", "ls-remote", "cat-file"];
|
|
5
|
+
export declare const DEFAULT_GH_READ_COMMANDS: readonly ["repo view", "pr list", "pr view", "issue list", "issue view", "search prs", "search issues", "release list", "release view", "workflow list", "workflow view", "run list", "run view"];
|
|
6
|
+
export declare const DEFAULT_GIT_TIMEOUT_MS = 30000;
|
|
7
|
+
export declare const DEFAULT_GIT_MAX_OUTPUT_BYTES: number;
|
|
8
|
+
export declare const DEFAULT_GIT_HISTORY_MAX_COUNT = 100;
|
|
9
|
+
export declare const DEFAULT_GIT_HISTORY_PATCH_MAX_COMMITS = 5;
|
|
10
|
+
export declare const DEFAULT_GH_PR_FIELDS: readonly ["number", "title", "state", "author", "baseRefName", "headRefName", "isDraft", "url", "mergeable", "reviewDecision", "body"];
|
|
11
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/git/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,yBAAyB,4KAiB5B,CAAC;AAEX,eAAO,MAAM,wBAAwB,mMAc3B,CAAC;AAEX,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,4BAA4B,QAAkB,CAAC;AAC5D,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,qCAAqC,IAAI,CAAC;AAEvD,eAAO,MAAM,oBAAoB,wIAYvB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git tool defaults. All overridable via extension config.
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_GIT_READ_COMMANDS = [
|
|
5
|
+
"status",
|
|
6
|
+
"log",
|
|
7
|
+
"show",
|
|
8
|
+
"diff",
|
|
9
|
+
"branch",
|
|
10
|
+
"rev-parse",
|
|
11
|
+
"remote",
|
|
12
|
+
"tag",
|
|
13
|
+
"reflog",
|
|
14
|
+
"blame",
|
|
15
|
+
"ls-files",
|
|
16
|
+
"grep",
|
|
17
|
+
"shortlog",
|
|
18
|
+
"describe",
|
|
19
|
+
"ls-remote",
|
|
20
|
+
"cat-file",
|
|
21
|
+
];
|
|
22
|
+
export const DEFAULT_GH_READ_COMMANDS = [
|
|
23
|
+
"repo view",
|
|
24
|
+
"pr list",
|
|
25
|
+
"pr view",
|
|
26
|
+
"issue list",
|
|
27
|
+
"issue view",
|
|
28
|
+
"search prs",
|
|
29
|
+
"search issues",
|
|
30
|
+
"release list",
|
|
31
|
+
"release view",
|
|
32
|
+
"workflow list",
|
|
33
|
+
"workflow view",
|
|
34
|
+
"run list",
|
|
35
|
+
"run view",
|
|
36
|
+
];
|
|
37
|
+
export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
|
|
38
|
+
export const DEFAULT_GIT_MAX_OUTPUT_BYTES = 2 * 1024 * 1024;
|
|
39
|
+
export const DEFAULT_GIT_HISTORY_MAX_COUNT = 100;
|
|
40
|
+
export const DEFAULT_GIT_HISTORY_PATCH_MAX_COMMITS = 5;
|
|
41
|
+
export const DEFAULT_GH_PR_FIELDS = [
|
|
42
|
+
"number",
|
|
43
|
+
"title",
|
|
44
|
+
"state",
|
|
45
|
+
"author",
|
|
46
|
+
"baseRefName",
|
|
47
|
+
"headRefName",
|
|
48
|
+
"isDraft",
|
|
49
|
+
"url",
|
|
50
|
+
"mergeable",
|
|
51
|
+
"reviewDecision",
|
|
52
|
+
"body",
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/git/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,OAAO;IACP,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,SAAS;IACT,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,UAAU;IACV,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,aAAa;IACb,aAAa;IACb,SAAS;IACT,KAAK;IACL,WAAW;IACX,gBAAgB;IAChB,MAAM;CACE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only GitHub CLI execution with allowlisted gh command/subcommand pairs.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect none
|
|
5
|
+
*/
|
|
6
|
+
export declare function ghRead(args: {
|
|
7
|
+
path: string;
|
|
8
|
+
repoPath?: string;
|
|
9
|
+
command: string;
|
|
10
|
+
subcommand?: string;
|
|
11
|
+
args?: string[];
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
result: {
|
|
15
|
+
path: string;
|
|
16
|
+
command: string;
|
|
17
|
+
subcommand: string | null;
|
|
18
|
+
args: string[];
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
exitCode: number;
|
|
22
|
+
};
|
|
23
|
+
evidence: {
|
|
24
|
+
type: string;
|
|
25
|
+
summary: string;
|
|
26
|
+
createdAt: string;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=ghRead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghRead.d.ts","sourceRoot":"","sources":["../../../src/git/ghRead.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;GA6DA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createTaggedError } from "@botbotgo/kit/sdk";
|
|
2
|
+
import { getExtensionContext } from "../../index.js";
|
|
3
|
+
import { overrideWithConfig } from "../util/overrideWithConfig.js";
|
|
4
|
+
import { DEFAULT_GH_READ_COMMANDS, DEFAULT_GIT_MAX_OUTPUT_BYTES, DEFAULT_GIT_TIMEOUT_MS, } from "./defaults.js";
|
|
5
|
+
import { ensureGhAvailable, failOnNonZero, resolveCwd, resolveRepoPath, runProcess } from "./common.js";
|
|
6
|
+
/**
|
|
7
|
+
* Read-only GitHub CLI execution with allowlisted gh command/subcommand pairs.
|
|
8
|
+
* @tool
|
|
9
|
+
* @effect none
|
|
10
|
+
*/
|
|
11
|
+
export async function ghRead(args) {
|
|
12
|
+
const defaults = {
|
|
13
|
+
sandboxRoot: "",
|
|
14
|
+
ghReadCommands: DEFAULT_GH_READ_COMMANDS,
|
|
15
|
+
gitTimeoutMs: DEFAULT_GIT_TIMEOUT_MS,
|
|
16
|
+
gitMaxOutputBytes: DEFAULT_GIT_MAX_OUTPUT_BYTES,
|
|
17
|
+
};
|
|
18
|
+
const ctx = getExtensionContext();
|
|
19
|
+
const cfg = overrideWithConfig(defaults, ctx.config);
|
|
20
|
+
const repoPath = await resolveRepoPath((args.path ?? args.repoPath ?? "").trim(), cfg.sandboxRoot ?? "");
|
|
21
|
+
const command = args.command?.trim();
|
|
22
|
+
const subcommand = args.subcommand?.trim();
|
|
23
|
+
if (!command) {
|
|
24
|
+
throw createTaggedError("GIT_INVALID", "command is required", {});
|
|
25
|
+
}
|
|
26
|
+
const commandKey = subcommand ? `${command} ${subcommand}` : command;
|
|
27
|
+
const allowed = Array.from((cfg.ghReadCommands ?? DEFAULT_GH_READ_COMMANDS));
|
|
28
|
+
if (!allowed.includes(commandKey)) {
|
|
29
|
+
throw createTaggedError("GIT_NOT_ALLOWED", `ghRead only allows read-only commands. \"${commandKey}\" is not allowed`, { command: commandKey, allowed });
|
|
30
|
+
}
|
|
31
|
+
await ensureGhAvailable({
|
|
32
|
+
cwd: repoPath,
|
|
33
|
+
timeoutMs: args.timeoutMs ?? cfg.gitTimeoutMs ?? DEFAULT_GIT_TIMEOUT_MS,
|
|
34
|
+
});
|
|
35
|
+
const cmdArgs = [command, ...(subcommand ? [subcommand] : []), ...(args.args ?? [])];
|
|
36
|
+
const out = await runProcess({
|
|
37
|
+
bin: "gh",
|
|
38
|
+
cmdArgs,
|
|
39
|
+
cwd: resolveCwd(repoPath),
|
|
40
|
+
timeoutMs: args.timeoutMs ?? cfg.gitTimeoutMs ?? DEFAULT_GIT_TIMEOUT_MS,
|
|
41
|
+
maxOutputBytes: cfg.gitMaxOutputBytes ?? DEFAULT_GIT_MAX_OUTPUT_BYTES,
|
|
42
|
+
});
|
|
43
|
+
failOnNonZero(`gh ${commandKey}`, out);
|
|
44
|
+
return {
|
|
45
|
+
result: {
|
|
46
|
+
path: repoPath,
|
|
47
|
+
command,
|
|
48
|
+
subcommand: subcommand ?? null,
|
|
49
|
+
args: args.args ?? [],
|
|
50
|
+
stdout: out.stdout,
|
|
51
|
+
stderr: out.stderr,
|
|
52
|
+
exitCode: out.exitCode,
|
|
53
|
+
},
|
|
54
|
+
evidence: [
|
|
55
|
+
{
|
|
56
|
+
type: "git",
|
|
57
|
+
summary: `ghRead: gh ${commandKey} in ${repoPath}`,
|
|
58
|
+
createdAt: new Date().toISOString(),
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ghRead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghRead.js","sourceRoot":"","sources":["../../../src/git/ghRead.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage files in git index.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect local_write
|
|
5
|
+
*/
|
|
6
|
+
export declare function gitAdd(args: {
|
|
7
|
+
path: string;
|
|
8
|
+
repoPath?: string;
|
|
9
|
+
files?: string[];
|
|
10
|
+
all?: boolean;
|
|
11
|
+
update?: boolean;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
result: {
|
|
15
|
+
path: string;
|
|
16
|
+
files: string[];
|
|
17
|
+
all: boolean;
|
|
18
|
+
update: boolean;
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
exitCode: number;
|
|
22
|
+
};
|
|
23
|
+
evidence: {
|
|
24
|
+
type: string;
|
|
25
|
+
summary: string;
|
|
26
|
+
createdAt: string;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=gitAdd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitAdd.d.ts","sourceRoot":"","sources":["../../../src/git/gitAdd.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;GA8CA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DEFAULT_GIT_MAX_OUTPUT_BYTES, DEFAULT_GIT_TIMEOUT_MS, } from "./defaults.js";
|
|
2
|
+
import { failOnNonZero, resolveCwd, resolveRepoPath, runProcess } from "./common.js";
|
|
3
|
+
import { getExtensionContext } from "../../index.js";
|
|
4
|
+
import { overrideWithConfig } from "../util/overrideWithConfig.js";
|
|
5
|
+
/**
|
|
6
|
+
* Stage files in git index.
|
|
7
|
+
* @tool
|
|
8
|
+
* @effect local_write
|
|
9
|
+
*/
|
|
10
|
+
export async function gitAdd(args) {
|
|
11
|
+
const defaults = {
|
|
12
|
+
sandboxRoot: "",
|
|
13
|
+
gitTimeoutMs: DEFAULT_GIT_TIMEOUT_MS,
|
|
14
|
+
gitMaxOutputBytes: DEFAULT_GIT_MAX_OUTPUT_BYTES,
|
|
15
|
+
};
|
|
16
|
+
const ctx = getExtensionContext();
|
|
17
|
+
const cfg = overrideWithConfig(defaults, ctx.config);
|
|
18
|
+
const repoPath = await resolveRepoPath((args.path ?? args.repoPath ?? "").trim(), cfg.sandboxRoot ?? "");
|
|
19
|
+
const cmdArgs = ["add"];
|
|
20
|
+
if (args.all)
|
|
21
|
+
cmdArgs.push("--all");
|
|
22
|
+
if (args.update)
|
|
23
|
+
cmdArgs.push("--update");
|
|
24
|
+
if (Array.isArray(args.files) && args.files.length > 0) {
|
|
25
|
+
cmdArgs.push("--", ...args.files.map((f) => f.trim()).filter(Boolean));
|
|
26
|
+
}
|
|
27
|
+
else if (!args.all && !args.update) {
|
|
28
|
+
cmdArgs.push("--all");
|
|
29
|
+
}
|
|
30
|
+
const out = await runProcess({
|
|
31
|
+
bin: "git",
|
|
32
|
+
cmdArgs,
|
|
33
|
+
cwd: resolveCwd(repoPath),
|
|
34
|
+
timeoutMs: args.timeoutMs ?? cfg.gitTimeoutMs ?? DEFAULT_GIT_TIMEOUT_MS,
|
|
35
|
+
maxOutputBytes: cfg.gitMaxOutputBytes ?? DEFAULT_GIT_MAX_OUTPUT_BYTES,
|
|
36
|
+
});
|
|
37
|
+
failOnNonZero("add", out);
|
|
38
|
+
return {
|
|
39
|
+
result: {
|
|
40
|
+
path: repoPath,
|
|
41
|
+
files: args.files ?? [],
|
|
42
|
+
all: args.all ?? (!args.files?.length && !args.update),
|
|
43
|
+
update: args.update ?? false,
|
|
44
|
+
stdout: out.stdout,
|
|
45
|
+
stderr: out.stderr,
|
|
46
|
+
exitCode: out.exitCode,
|
|
47
|
+
},
|
|
48
|
+
evidence: [
|
|
49
|
+
{
|
|
50
|
+
type: "git",
|
|
51
|
+
summary: `gitAdd: staged changes in ${repoPath}`,
|
|
52
|
+
createdAt: new Date().toISOString(),
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=gitAdd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitAdd.js","sourceRoot":"","sources":["../../../src/git/gitAdd.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAO5B;IACC,MAAM,QAAQ,GAAG;QACf,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,sBAAsB;QACpC,iBAAiB,EAAE,4BAA4B;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;QAC3B,GAAG,EAAE,KAAK;QACV,OAAO;QACP,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,IAAI,sBAAsB;QACvE,cAAc,EAAE,GAAG,CAAC,iBAAiB,IAAI,4BAA4B;KACtE,CAAC,CAAC;IACH,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE1B,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,6BAA6B,QAAQ,EAAE;gBAChD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a git commit.
|
|
3
|
+
* @tool
|
|
4
|
+
* @effect local_write
|
|
5
|
+
*/
|
|
6
|
+
export declare function gitCommit(args: {
|
|
7
|
+
path: string;
|
|
8
|
+
repoPath?: string;
|
|
9
|
+
message: string;
|
|
10
|
+
all?: boolean;
|
|
11
|
+
noVerify?: boolean;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
result: {
|
|
15
|
+
path: string;
|
|
16
|
+
message: string;
|
|
17
|
+
all: boolean;
|
|
18
|
+
noVerify: boolean;
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
exitCode: number;
|
|
22
|
+
};
|
|
23
|
+
evidence: {
|
|
24
|
+
type: string;
|
|
25
|
+
summary: string;
|
|
26
|
+
createdAt: string;
|
|
27
|
+
}[];
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=gitCommit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitCommit.d.ts","sourceRoot":"","sources":["../../../src/git/gitCommit.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;GA8CA"}
|