Skip to content

Commit 12f291e

Browse files
authored
Merge pull request #32 from Avivbens/fix/kill-process-improvments
feat(kill-process): support battery sorting
2 parents 074a68f + df1cbba commit 12f291e

34 files changed

+681
-64
lines changed

nx.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"$schema": "./node_modules/nx/schemas/nx-schema.json",
3+
"defaultBase": "master",
34
"namedInputs": {
45
"default": ["{projectRoot}/**/*", "sharedGlobals"],
56
"production": [
@@ -12,8 +13,10 @@
1213
"!{projectRoot}/src/test-setup.[jt]s",
1314
"!{projectRoot}/test-setup.[jt]s"
1415
],
15-
"sharedGlobals": ["{workspaceRoot}/.github/workflows/release-master.yaml"]
16+
"sharedGlobals": ["{workspaceRoot}/.github/workflows/release-master.yaml"],
17+
"plugins": ["{workspaceRoot}/projects/workspace/src/plugins/**"]
1618
},
19+
"plugins": ["@alfredo/workspace"],
1720
"targetDefaults": {
1821
"@nx/esbuild:esbuild": {
1922
"executor": "@nx/esbuild:esbuild",

projects/libs/llm/src/lib/available-models.enum.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { z } from 'zod';
2+
13
export enum AvailableModels {
24
/* Anthropic */
35
CLAUDE_OPUS_4 = 'claude-opus-4-0',
@@ -27,3 +29,5 @@ export enum AvailableModels {
2729
O3 = 'o3',
2830
O3_MINI = 'o3-mini',
2931
}
32+
33+
export const AvailableModelsSchema = z.nativeEnum(AvailableModels);

projects/packages/ai-calendar-assistant/src/main/create-event.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { FastAlfred } from 'fast-alfred';
22
import { runAppleScript } from '@alfredo/run-applescript';
33
import { Variables } from '../common/variables.enum';
44
import { CalendarEvent, GeminiCalendarEventSchema } from '../models/calendar-event.model';
5-
import { OpenEventPlatform } from '../models/open-event-platform.enum';
5+
import { OpenEventPlatform, OpenEventPlatformSchema } from '../models/open-event-platform.enum';
66
import { createInCalendar, eventCreatorAppleScript } from '../services/event-creator.service';
77

88
(async () => {
@@ -19,9 +19,11 @@ import { createInCalendar, eventCreatorAppleScript } from '../services/event-cre
1919
parser: (value) => (value as '0' | '1') === '1',
2020
});
2121

22-
const openEventPlatform: OpenEventPlatform = alfredClient.env.getEnv(Variables.OPEN_NEW_EVENT_PLATFORM, {
23-
defaultValue: OpenEventPlatform.APPLE_CALENDAR,
24-
});
22+
const openEventPlatform = OpenEventPlatformSchema.parse(
23+
alfredClient.env.getEnv(Variables.OPEN_NEW_EVENT_PLATFORM, {
24+
defaultValue: OpenEventPlatform.APPLE_CALENDAR,
25+
}),
26+
);
2527

2628
const event: CalendarEvent = JSON.parse(alfredClient.input);
2729
const parsedEvent = GeminiCalendarEventSchema.parse(event);

projects/packages/ai-calendar-assistant/src/main/extract-event.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { AlfredListItem, FastAlfred } from 'fast-alfred';
22
import { setTimeout } from 'node:timers/promises';
3-
import { AvailableModels } from '@alfredo/llm';
3+
import { AvailableModelsSchema } from '@alfredo/llm';
44
import { registerUpdater } from '@alfredo/updater';
55
import { DEFAULT_DEBOUNCE_TIME } from '../common/defaults.constants';
66
import { Variables } from '../common/variables.enum';
@@ -19,7 +19,8 @@ import { extractEvent } from '../services/event-extractor.service';
1919
});
2020

2121
const token: string | undefined = alfredClient.env.getEnv(Variables.LLM_TOKEN);
22-
const model: AvailableModels | undefined = alfredClient.env.getEnv(Variables.SELECTED_MODEL);
22+
const rawModel = alfredClient.env.getEnv(Variables.SELECTED_MODEL);
23+
const model = rawModel ? AvailableModelsSchema.parse(rawModel) : undefined;
2324

2425
if (!token || !model) {
2526
throw new Error('Token or model is not defined!');
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
import { z } from 'zod';
2+
13
export enum OpenEventPlatform {
24
GOOGLE_CALENDAR = 'google_calendar',
35
APPLE_CALENDAR = 'apple_calendar',
46
}
7+
8+
export const OpenEventPlatformSchema = z.nativeEnum(OpenEventPlatform);

projects/packages/jira-master/src/main/extract-jira-ticket.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { FastAlfred } from 'fast-alfred';
22
import { setTimeout } from 'node:timers/promises';
3-
import type { AvailableModels } from '@alfredo/llm';
3+
import { AvailableModelsSchema } from '@alfredo/llm';
44
import { registerUpdater } from '@alfredo/updater';
55
import { DEFAULT_DEBOUNCE_TIME } from '../common/defaults.constants';
66
import { Variables } from '../common/variables.enum';
@@ -25,7 +25,8 @@ import { extractTicket } from '../services/ticket-extractor.service';
2525
}
2626

2727
const llmToken = alfredClient.env.getEnv<string>(Variables.LLM_TOKEN);
28-
const selectedModel = alfredClient.env.getEnv(Variables.SELECTED_MODEL) as AvailableModels;
28+
const rawModel = alfredClient.env.getEnv(Variables.SELECTED_MODEL);
29+
const selectedModel = rawModel ? AvailableModelsSchema.parse(rawModel) : undefined;
2930

3031
if (!llmToken || !selectedModel) {
3132
throw new Error(

projects/packages/kill-process/.fast-alfred.config.cjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ Search through your operating system's processes by name, port, PID, or path –
2626
2727
#### With resource consumption sorting
2828
29-
\`!m\` - Search for processes, sorted by memory usage.
29+
\`!m\` - Search for processes, sorted by memory usage.
3030
\`!c\` - Search for processes, sorted by CPU usage.
31+
\`!b\` - Search for processes, sorted by battery usage (requires one-time password for setup).
3132
3233
3334
To view the workflow codebase, click here:

projects/packages/kill-process/info.plist

Lines changed: 159 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,19 @@
2121
</array>
2222
<key>14799482-DEFB-419D-8A33-CE6F4B12614B</key>
2323
<array></array>
24+
<key>2082DD8A-72BD-4436-84F1-713DE3744EF7</key>
25+
<array>
26+
<dict>
27+
<key>modifiers</key>
28+
<integer>0</integer>
29+
<key>modifiersubtext</key>
30+
<string></string>
31+
<key>vitoclose</key>
32+
<false></false>
33+
<key>destinationuid</key>
34+
<string>__fast-alfred_managed__v2_conditional_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</string>
35+
</dict>
36+
</array>
2437
<key>5237AB6B-76A7-4B1E-80E4-C3CE1D5F52FE</key>
2538
<array>
2639
<dict>
@@ -184,6 +197,43 @@
184197
<string>__fast-alfred_managed__v2_updater_snooze</string>
185198
</dict>
186199
</array>
200+
<key>__fast-alfred_managed__v2_conditional_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</key>
201+
<array>
202+
<dict>
203+
<key>modifiers</key>
204+
<integer>0</integer>
205+
<key>modifiersubtext</key>
206+
<string></string>
207+
<key>vitoclose</key>
208+
<false></false>
209+
<key>destinationuid</key>
210+
<string>14799482-DEFB-419D-8A33-CE6F4B12614B</string>
211+
</dict>
212+
<dict>
213+
<key>modifiers</key>
214+
<integer>0</integer>
215+
<key>modifiersubtext</key>
216+
<string></string>
217+
<key>vitoclose</key>
218+
<false></false>
219+
<key>sourceoutputuid</key>
220+
<string>__fast-alfred_managed__v2_condition_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</string>
221+
<key>destinationuid</key>
222+
<string>__fast-alfred_managed__v2_updater_workflow-update</string>
223+
</dict>
224+
<dict>
225+
<key>modifiers</key>
226+
<integer>0</integer>
227+
<key>modifiersubtext</key>
228+
<string></string>
229+
<key>vitoclose</key>
230+
<false></false>
231+
<key>sourceoutputuid</key>
232+
<string>__fast-alfred_managed__v2_condition_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</string>
233+
<key>destinationuid</key>
234+
<string>__fast-alfred_managed__v2_updater_snooze</string>
235+
</dict>
236+
</array>
187237
<key>__fast-alfred_managed__v2_conditional_from_8A785DFD-30FA-43E2-BF07-9B1B46F29B63_to_14799482-DEFB-419D-8A33-CE6F4B12614B</key>
188238
<array>
189239
<dict>
@@ -356,7 +406,7 @@
356406
<key>subtext</key>
357407
<string></string>
358408
<key>title</key>
359-
<string>Kill a process</string>
409+
<string>Kill a process - sort by memory</string>
360410
<key>type</key>
361411
<integer>11</integer>
362412
<key>withspace</key>
@@ -429,7 +479,7 @@
429479
<key>subtext</key>
430480
<string></string>
431481
<key>title</key>
432-
<string>Kill a process</string>
482+
<string>Kill a process - sort by CPU</string>
433483
<key>type</key>
434484
<integer>11</integer>
435485
<key>withspace</key>
@@ -442,6 +492,56 @@
442492
<key>version</key>
443493
<integer>3</integer>
444494
</dict>
495+
<dict>
496+
<key>config</key>
497+
<dict>
498+
<key>alfredfiltersresults</key>
499+
<false></false>
500+
<key>alfredfiltersresultsmatchmode</key>
501+
<integer>0</integer>
502+
<key>argumenttreatemptyqueryasnil</key>
503+
<true></true>
504+
<key>argumenttrimmode</key>
505+
<integer>0</integer>
506+
<key>argumenttype</key>
507+
<integer>1</integer>
508+
<key>escaping</key>
509+
<integer>102</integer>
510+
<key>keyword</key>
511+
<string>!b</string>
512+
<key>queuedelaycustom</key>
513+
<integer>3</integer>
514+
<key>queuedelayimmediatelyinitially</key>
515+
<true></true>
516+
<key>queuedelaymode</key>
517+
<integer>0</integer>
518+
<key>queuemode</key>
519+
<integer>2</integer>
520+
<key>runningsubtext</key>
521+
<string>Searching...</string>
522+
<key>script</key>
523+
<string>./esbuild/assets/run-node.sh esbuild/find-process.js "false" "battery" "$1"
524+
</string>
525+
<key>scriptargtype</key>
526+
<integer>1</integer>
527+
<key>scriptfile</key>
528+
<string></string>
529+
<key>subtext</key>
530+
<string></string>
531+
<key>title</key>
532+
<string>Kill a process - sort by battery usage</string>
533+
<key>type</key>
534+
<integer>11</integer>
535+
<key>withspace</key>
536+
<true></true>
537+
</dict>
538+
<key>type</key>
539+
<string>alfred.workflow.input.scriptfilter</string>
540+
<key>uid</key>
541+
<string>2082DD8A-72BD-4436-84F1-713DE3744EF7</string>
542+
<key>version</key>
543+
<integer>3</integer>
544+
</dict>
445545
<dict>
446546
<key>config</key>
447547
<dict>
@@ -684,6 +784,38 @@
684784
<false></false>
685785
</dict>
686786
</dict>
787+
<dict>
788+
<key>type</key>
789+
<string>alfred.workflow.utility.conditional</string>
790+
<key>uid</key>
791+
<string>__fast-alfred_managed__v2_conditional_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</string>
792+
<key>version</key>
793+
<integer>1</integer>
794+
<key>config</key>
795+
<dict>
796+
<key>conditions</key>
797+
<array>
798+
<dict>
799+
<key>inputstring</key>
800+
<string>{query}</string>
801+
<key>matchcasesensitive</key>
802+
<false></false>
803+
<key>matchmode</key>
804+
<integer>4</integer>
805+
<key>matchstring</key>
806+
<string>__fast-alfred_managed__</string>
807+
<key>outputlabel</key>
808+
<string>Managed versions updates</string>
809+
<key>uid</key>
810+
<string>__fast-alfred_managed__v2_condition_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</string>
811+
</dict>
812+
</array>
813+
<key>elselabel</key>
814+
<string>Default Behavior</string>
815+
<key>hideelse</key>
816+
<false></false>
817+
</dict>
818+
</dict>
687819
<dict>
688820
<key>type</key>
689821
<string>alfred.workflow.utility.conditional</string>
@@ -773,8 +905,9 @@ Search through your operating system's processes by name, port, PID, or path –
773905
774906
#### With resource consumption sorting
775907
776-
`!m` - Search for processes, sorted by memory usage.
908+
`!m` - Search for processes, sorted by memory usage.
777909
`!c` - Search for processes, sorted by CPU usage.
910+
`!b` - Search for processes, sorted by battery usage (requires one-time password for setup).
778911
779912
780913
To view the workflow codebase, click here:
@@ -788,7 +921,7 @@ https://github.com/Avivbens/alfredo</string>
788921
<key>xpos</key>
789922
<integer>65</integer>
790923
<key>ypos</key>
791-
<integer>780</integer>
924+
<integer>1015</integer>
792925
</dict>
793926
<key>14799482-DEFB-419D-8A33-CE6F4B12614B</key>
794927
<dict>
@@ -797,6 +930,15 @@ https://github.com/Avivbens/alfredo</string>
797930
<key>ypos</key>
798931
<integer>240</integer>
799932
</dict>
933+
<key>2082DD8A-72BD-4436-84F1-713DE3744EF7</key>
934+
<dict>
935+
<key>note</key>
936+
<string>Kill process (CPU sort)</string>
937+
<key>xpos</key>
938+
<integer>65</integer>
939+
<key>ypos</key>
940+
<integer>585</integer>
941+
</dict>
800942
<key>5237AB6B-76A7-4B1E-80E4-C3CE1D5F52FE</key>
801943
<dict>
802944
<key>note</key>
@@ -822,7 +964,7 @@ https://github.com/Avivbens/alfredo</string>
822964
<key>xpos</key>
823965
<integer>65</integer>
824966
<key>ypos</key>
825-
<integer>600</integer>
967+
<integer>835</integer>
826968
</dict>
827969
<key>CE84ED38-CD11-4B81-9E07-91C9D10EEE3C</key>
828970
<dict>
@@ -878,12 +1020,21 @@ https://github.com/Avivbens/alfredo</string>
8781020
<key>note</key>
8791021
<string>Conditional Updates Helper</string>
8801022
</dict>
1023+
<key>__fast-alfred_managed__v2_conditional_from_2082DD8A-72BD-4436-84F1-713DE3744EF7_to_14799482-DEFB-419D-8A33-CE6F4B12614B</key>
1024+
<dict>
1025+
<key>xpos</key>
1026+
<integer>285</integer>
1027+
<key>ypos</key>
1028+
<integer>585</integer>
1029+
<key>note</key>
1030+
<string>Conditional Updates Helper</string>
1031+
</dict>
8811032
<key>__fast-alfred_managed__v2_conditional_from_8A785DFD-30FA-43E2-BF07-9B1B46F29B63_to_14799482-DEFB-419D-8A33-CE6F4B12614B</key>
8821033
<dict>
8831034
<key>xpos</key>
8841035
<integer>285</integer>
8851036
<key>ypos</key>
886-
<integer>600</integer>
1037+
<integer>835</integer>
8871038
<key>note</key>
8881039
<string>Conditional Updates Helper</string>
8891040
</dict>
@@ -892,7 +1043,7 @@ https://github.com/Avivbens/alfredo</string>
8921043
<key>xpos</key>
8931044
<integer>285</integer>
8941045
<key>ypos</key>
895-
<integer>780</integer>
1046+
<integer>1015</integer>
8961047
<key>note</key>
8971048
<string>Conditional Updates Helper</string>
8981049
</dict>
@@ -1020,7 +1171,7 @@ https://github.com/Avivbens/alfredo</string>
10201171
</dict>
10211172
</array>
10221173
<key>version</key>
1023-
<string>2.3.0</string>
1174+
<string>3.0.0</string>
10241175
<key>webaddress</key>
10251176
<string>https://github.com/Avivbens/alfredo</string>
10261177
<key>category</key>

0 commit comments

Comments
 (0)