opencode-notification-macos 1.0.2 → 1.0.3
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/cli.js +16 -18
- package/dist/cli.js.map +1 -1
- package/dist/config.js +17 -23
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -15
- package/dist/index.js.map +1 -1
- package/dist/sound.js +13 -20
- package/dist/sound.js.map +1 -1
- package/dist/types.js +2 -5
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const util_1 = require("util");
|
|
9
|
-
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
2
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
|
|
3
|
+
import { join, dirname } from 'path';
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { exec } from 'child_process';
|
|
6
|
+
import { promisify } from 'util';
|
|
7
|
+
const execAsync = promisify(exec);
|
|
10
8
|
const SYSTEM_SOUNDS_PATH = '/System/Library/Sounds';
|
|
11
9
|
const DEFAULT_CONFIG = {
|
|
12
10
|
sound: true,
|
|
@@ -21,7 +19,7 @@ const DEFAULT_CONFIG = {
|
|
|
21
19
|
}
|
|
22
20
|
};
|
|
23
21
|
function getGlobalConfigPath() {
|
|
24
|
-
return
|
|
22
|
+
return join(homedir(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
25
23
|
}
|
|
26
24
|
function listAvailableSounds() {
|
|
27
25
|
return [
|
|
@@ -31,7 +29,7 @@ function listAvailableSounds() {
|
|
|
31
29
|
];
|
|
32
30
|
}
|
|
33
31
|
async function playSound(soundName) {
|
|
34
|
-
const soundPath =
|
|
32
|
+
const soundPath = join(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
35
33
|
try {
|
|
36
34
|
await execAsync(`afplay "${soundPath}"`);
|
|
37
35
|
}
|
|
@@ -66,14 +64,14 @@ async function previewSound(args) {
|
|
|
66
64
|
}
|
|
67
65
|
async function showConfig() {
|
|
68
66
|
const configPath = getGlobalConfigPath();
|
|
69
|
-
if (!
|
|
67
|
+
if (!existsSync(configPath)) {
|
|
70
68
|
console.log('\n⚙️ No configuration found. Using defaults:\n');
|
|
71
69
|
console.log(JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
72
70
|
console.log(`\nConfig path: ${configPath}\n`);
|
|
73
71
|
return;
|
|
74
72
|
}
|
|
75
73
|
try {
|
|
76
|
-
const config = JSON.parse(
|
|
74
|
+
const config = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
77
75
|
console.log('\n📋 Current Configuration:\n');
|
|
78
76
|
console.log(JSON.stringify(config, null, 2));
|
|
79
77
|
console.log(`\nConfig path: ${configPath}\n`);
|
|
@@ -85,8 +83,8 @@ async function showConfig() {
|
|
|
85
83
|
async function resetConfig() {
|
|
86
84
|
const configPath = getGlobalConfigPath();
|
|
87
85
|
try {
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
87
|
+
writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
|
|
90
88
|
console.log('\n✅ Configuration reset to defaults\n');
|
|
91
89
|
console.log(`Config saved to: ${configPath}\n`);
|
|
92
90
|
}
|
|
@@ -117,9 +115,9 @@ async function setSound(args) {
|
|
|
117
115
|
}
|
|
118
116
|
const configPath = getGlobalConfigPath();
|
|
119
117
|
let config = DEFAULT_CONFIG;
|
|
120
|
-
if (
|
|
118
|
+
if (existsSync(configPath)) {
|
|
121
119
|
try {
|
|
122
|
-
config = JSON.parse(
|
|
120
|
+
config = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
123
121
|
}
|
|
124
122
|
catch (e) {
|
|
125
123
|
// Use defaults
|
|
@@ -127,8 +125,8 @@ async function setSound(args) {
|
|
|
127
125
|
}
|
|
128
126
|
config.sounds[event] = soundName;
|
|
129
127
|
try {
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
129
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
132
130
|
console.log(`\n✅ Set ${event} sound to ${soundName}\n`);
|
|
133
131
|
// Preview the sound
|
|
134
132
|
console.log(`🔊 Previewing ${soundName}...`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const os_1 = require("os");
|
|
10
|
-
const types_js_1 = require("./types.js");
|
|
11
|
-
function getGlobalConfigPath() {
|
|
12
|
-
return (0, path_1.join)((0, os_1.homedir)(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
1
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
import { DEFAULT_CONFIG } from './types.js';
|
|
5
|
+
export function getGlobalConfigPath() {
|
|
6
|
+
return join(homedir(), '.config', 'opencode', 'opencode-notification-macos.json');
|
|
13
7
|
}
|
|
14
|
-
function getProjectConfigPath() {
|
|
15
|
-
return
|
|
8
|
+
export function getProjectConfigPath() {
|
|
9
|
+
return join(process.cwd(), '.opencode', 'notification.json');
|
|
16
10
|
}
|
|
17
|
-
function loadConfig() {
|
|
11
|
+
export function loadConfig() {
|
|
18
12
|
const globalPath = getGlobalConfigPath();
|
|
19
13
|
const projectPath = getProjectConfigPath();
|
|
20
|
-
let config = { ...
|
|
14
|
+
let config = { ...DEFAULT_CONFIG };
|
|
21
15
|
// Load global config
|
|
22
|
-
if (
|
|
16
|
+
if (existsSync(globalPath)) {
|
|
23
17
|
try {
|
|
24
|
-
const globalConfig = JSON.parse(
|
|
18
|
+
const globalConfig = JSON.parse(readFileSync(globalPath, 'utf8'));
|
|
25
19
|
config = mergeConfig(config, globalConfig);
|
|
26
20
|
}
|
|
27
21
|
catch (e) {
|
|
@@ -29,9 +23,9 @@ function loadConfig() {
|
|
|
29
23
|
}
|
|
30
24
|
}
|
|
31
25
|
// Load project config (overrides global)
|
|
32
|
-
if (
|
|
26
|
+
if (existsSync(projectPath)) {
|
|
33
27
|
try {
|
|
34
|
-
const projectConfig = JSON.parse(
|
|
28
|
+
const projectConfig = JSON.parse(readFileSync(projectPath, 'utf8'));
|
|
35
29
|
config = mergeConfig(config, projectConfig);
|
|
36
30
|
}
|
|
37
31
|
catch (e) {
|
|
@@ -40,11 +34,11 @@ function loadConfig() {
|
|
|
40
34
|
}
|
|
41
35
|
return config;
|
|
42
36
|
}
|
|
43
|
-
function saveConfig(config, isGlobal = true) {
|
|
37
|
+
export function saveConfig(config, isGlobal = true) {
|
|
44
38
|
const configPath = isGlobal ? getGlobalConfigPath() : getProjectConfigPath();
|
|
45
39
|
try {
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
41
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
48
42
|
}
|
|
49
43
|
catch (e) {
|
|
50
44
|
console.error('[opencode-notification-macos] Failed to save config:', e);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,kCAAkC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAE3C,IAAI,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAEnC,qBAAqB;IACrB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB,EAAE,WAAoB,IAAI;IACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAE7E,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,QAA+B;IACtE,OAAO;QACL,GAAG,IAAI;QACP,GAAG,QAAQ;QACX,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC9C,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE;QACpD,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;KAC/C,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
get: (params: {
|
|
5
|
-
path: {
|
|
6
|
-
id: string;
|
|
7
|
-
};
|
|
8
|
-
}) => Promise<{
|
|
9
|
-
data?: {
|
|
10
|
-
parentID?: string;
|
|
11
|
-
};
|
|
12
|
-
}>;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
directory: string;
|
|
16
|
-
}
|
|
17
|
-
interface Event {
|
|
18
|
-
type: string;
|
|
19
|
-
data?: {
|
|
20
|
-
sessionID?: string;
|
|
21
|
-
id?: string;
|
|
22
|
-
};
|
|
23
|
-
sessionID?: string;
|
|
24
|
-
}
|
|
25
|
-
declare function opencodeNotificationMacOS({ client, directory }: PluginContext): Promise<{
|
|
26
|
-
event: ({ event }: {
|
|
27
|
-
event: Event;
|
|
28
|
-
}) => Promise<void>;
|
|
29
|
-
'permission.ask': () => Promise<void>;
|
|
30
|
-
'tool.execute.before': (input: {
|
|
31
|
-
tool: string;
|
|
32
|
-
}) => Promise<void>;
|
|
33
|
-
}>;
|
|
34
|
-
export = opencodeNotificationMacOS;
|
|
1
|
+
import type { Plugin } from '@opencode-ai/plugin';
|
|
2
|
+
export declare const opencodeNotificationMacOS: Plugin;
|
|
3
|
+
export default opencodeNotificationMacOS;
|
|
35
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2BlD,eAAO,MAAM,yBAAyB,EAAE,MAuCvC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const sound_js_1 = require("./sound.js");
|
|
1
|
+
import { loadConfig } from './config.js';
|
|
2
|
+
import { handleEvent } from './sound.js';
|
|
4
3
|
function getSessionIDFromEvent(event) {
|
|
5
4
|
return event.data?.sessionID || event.sessionID || event.data?.id || null;
|
|
6
5
|
}
|
|
@@ -13,14 +12,14 @@ async function isChildSession(client, sessionID) {
|
|
|
13
12
|
return false;
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
const config =
|
|
15
|
+
export const opencodeNotificationMacOS = async ({ client, directory }) => {
|
|
16
|
+
const config = loadConfig();
|
|
18
17
|
const projectName = directory ? directory.split('/').pop() || null : null;
|
|
19
18
|
return {
|
|
20
19
|
event: async ({ event }) => {
|
|
21
20
|
// Permission events
|
|
22
21
|
if (event.type === 'permission.updated' || event.type === 'permission.asked') {
|
|
23
|
-
await
|
|
22
|
+
await handleEvent('permission', projectName, config);
|
|
24
23
|
}
|
|
25
24
|
// Session completion
|
|
26
25
|
if (event.type === 'session.idle') {
|
|
@@ -28,26 +27,26 @@ async function opencodeNotificationMacOS({ client, directory }) {
|
|
|
28
27
|
if (sessionID) {
|
|
29
28
|
const isChild = await isChildSession(client, sessionID);
|
|
30
29
|
const eventType = isChild ? 'subagent_complete' : 'complete';
|
|
31
|
-
await
|
|
30
|
+
await handleEvent(eventType, projectName, config);
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
|
-
await
|
|
33
|
+
await handleEvent('complete', projectName, config);
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
// Error events
|
|
38
37
|
if (event.type === 'session.error') {
|
|
39
|
-
await
|
|
38
|
+
await handleEvent('error', projectName, config);
|
|
40
39
|
}
|
|
41
40
|
},
|
|
42
|
-
'permission.ask': async () => {
|
|
43
|
-
await
|
|
41
|
+
'permission.ask': async (_input, _output) => {
|
|
42
|
+
await handleEvent('permission', projectName, config);
|
|
44
43
|
},
|
|
45
|
-
'tool.execute.before': async (input) => {
|
|
44
|
+
'tool.execute.before': async (input, _output) => {
|
|
46
45
|
if (input.tool === 'question') {
|
|
47
|
-
await
|
|
46
|
+
await handleEvent('question', projectName, config);
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
};
|
|
51
|
-
}
|
|
52
|
-
|
|
50
|
+
};
|
|
51
|
+
export default opencodeNotificationMacOS;
|
|
53
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYzC,SAAS,qBAAqB,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAW,EAAE,SAAiB;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAW,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAoB,EAAE,EAAE;YAC3C,oBAAoB;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC7E,MAAM,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YAED,qBAAqB;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBACxD,MAAM,SAAS,GAAc,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC;oBACxE,MAAM,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,eAAe;YACf,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,MAAM,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,MAAW,EAAE,OAAY,EAAE,EAAE;YACpD,MAAM,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,qBAAqB,EAAE,KAAK,EAAE,KAAU,EAAE,OAAY,EAAE,EAAE;YACxD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;KACA,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
package/dist/sound.js
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.handleEvent = handleEvent;
|
|
7
|
-
exports.listAvailableSounds = listAvailableSounds;
|
|
8
|
-
const child_process_1 = require("child_process");
|
|
9
|
-
const util_1 = require("util");
|
|
10
|
-
const fs_1 = require("fs");
|
|
11
|
-
const path_1 = require("path");
|
|
12
|
-
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { existsSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
13
6
|
const SYSTEM_SOUNDS_PATH = '/System/Library/Sounds';
|
|
14
|
-
function getSoundPath(soundName) {
|
|
7
|
+
export function getSoundPath(soundName) {
|
|
15
8
|
// Try system sounds
|
|
16
|
-
const systemPath =
|
|
17
|
-
if (
|
|
9
|
+
const systemPath = join(SYSTEM_SOUNDS_PATH, `${soundName}.aiff`);
|
|
10
|
+
if (existsSync(systemPath)) {
|
|
18
11
|
return systemPath;
|
|
19
12
|
}
|
|
20
13
|
// Fallback to Glass
|
|
21
|
-
return
|
|
14
|
+
return join(SYSTEM_SOUNDS_PATH, 'Glass.aiff');
|
|
22
15
|
}
|
|
23
|
-
async function playSound(soundName) {
|
|
16
|
+
export async function playSound(soundName) {
|
|
24
17
|
const soundPath = getSoundPath(soundName);
|
|
25
18
|
try {
|
|
26
19
|
await execAsync(`afplay "${soundPath}"`);
|
|
@@ -29,7 +22,7 @@ async function playSound(soundName) {
|
|
|
29
22
|
// Silently fail - notifications shouldn't break workflow
|
|
30
23
|
}
|
|
31
24
|
}
|
|
32
|
-
async function showNotification(title, message) {
|
|
25
|
+
export async function showNotification(title, message) {
|
|
33
26
|
try {
|
|
34
27
|
const escapedTitle = title.replace(/"/g, '\\"');
|
|
35
28
|
const escapedMessage = message.replace(/"/g, '\\"');
|
|
@@ -39,7 +32,7 @@ async function showNotification(title, message) {
|
|
|
39
32
|
// Silently fail
|
|
40
33
|
}
|
|
41
34
|
}
|
|
42
|
-
async function handleEvent(eventType, projectName, config) {
|
|
35
|
+
export async function handleEvent(eventType, projectName, config) {
|
|
43
36
|
const title = config.showProjectName && projectName
|
|
44
37
|
? `OpenCode (${projectName})`
|
|
45
38
|
: 'OpenCode';
|
|
@@ -54,7 +47,7 @@ async function handleEvent(eventType, projectName, config) {
|
|
|
54
47
|
await playSound(soundName);
|
|
55
48
|
}
|
|
56
49
|
}
|
|
57
|
-
function listAvailableSounds() {
|
|
50
|
+
export function listAvailableSounds() {
|
|
58
51
|
return [
|
|
59
52
|
'Basso', 'Blow', 'Bottle', 'Frog', 'Funk', 'Glass',
|
|
60
53
|
'Hero', 'Morse', 'Ping', 'Pop', 'Purr', 'Sosumi',
|
package/dist/sound.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,OAAO,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAiB;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAe;IACnE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,CAAC,uCAAuC,cAAc,iBAAiB,YAAY,IAAI,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAoB,EACpB,WAA0B,EAC1B,MAAqI;IAErI,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,IAAI,WAAW;QACjD,CAAC,CAAC,aAAa,WAAW,GAAG;QAC7B,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE3C,oBAAoB;IACpB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;IACb,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;QAClD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;QAChD,WAAW,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_CONFIG = exports.SYSTEM_SOUNDS = void 0;
|
|
4
|
-
exports.SYSTEM_SOUNDS = [
|
|
1
|
+
export const SYSTEM_SOUNDS = [
|
|
5
2
|
'Basso',
|
|
6
3
|
'Blow',
|
|
7
4
|
'Bottle',
|
|
@@ -17,7 +14,7 @@ exports.SYSTEM_SOUNDS = [
|
|
|
17
14
|
'Submarine',
|
|
18
15
|
'Tink'
|
|
19
16
|
];
|
|
20
|
-
|
|
17
|
+
export const DEFAULT_CONFIG = {
|
|
21
18
|
sound: true,
|
|
22
19
|
notification: true,
|
|
23
20
|
showProjectName: true,
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,WAAW;IACX,MAAM;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC1C,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC7C,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;QAC/C,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;KACzD;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,6BAA6B;QACvC,UAAU,EAAE,wBAAwB;QACpC,iBAAiB,EAAE,mBAAmB;KACvC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,MAAM;QAClB,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-notification-macos",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Native macOS notifications and sounds for OpenCode - zero dependencies",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "./dist/index.js",
|
|
6
7
|
"types": "./dist/index.d.ts",
|
|
7
8
|
"bin": {
|
|
@@ -10,7 +11,7 @@
|
|
|
10
11
|
"exports": {
|
|
11
12
|
".": {
|
|
12
13
|
"types": "./dist/index.d.ts",
|
|
13
|
-
"
|
|
14
|
+
"import": "./dist/index.js",
|
|
14
15
|
"default": "./dist/index.js"
|
|
15
16
|
}
|
|
16
17
|
},
|