@bastiangx/opencode-unmoji 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -5
- package/dist/core/emoji-data-generated.d.ts.map +1 -1
- package/dist/core/emoji-data-generated.js +7645 -5370
- package/dist/core/emoji-data-generated.js.map +1 -1
- package/dist/core/emoji-data.d.ts +3 -0
- package/dist/core/emoji-data.d.ts.map +1 -1
- package/dist/core/emoji-data.js +46 -2
- package/dist/core/emoji-data.js.map +1 -1
- package/dist/core/processor.d.ts +12 -1
- package/dist/core/processor.d.ts.map +1 -1
- package/dist/core/processor.js +67 -12
- package/dist/core/processor.js.map +1 -1
- package/dist/data/emoji-data-gen.d.ts +6 -0
- package/dist/data/emoji-data-gen.d.ts.map +1 -0
- package/dist/data/emoji-data-gen.js +30638 -0
- package/dist/data/emoji-data-gen.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +135 -4
- package/dist/index.js.map +1 -1
- package/dist/plugin.bundled.js +7949 -5445
- package/dist/src/core/config.d.ts +22 -0
- package/dist/src/core/config.d.ts.map +1 -0
- package/dist/src/core/config.js +82 -0
- package/dist/src/core/config.js.map +1 -0
- package/dist/src/core/emoji-data.d.ts +11 -0
- package/dist/src/core/emoji-data.d.ts.map +1 -0
- package/dist/src/core/emoji-data.js +105 -0
- package/dist/src/core/emoji-data.js.map +1 -0
- package/dist/src/core/processor.d.ts +16 -0
- package/dist/src/core/processor.d.ts.map +1 -0
- package/dist/src/core/processor.js +115 -0
- package/dist/src/core/processor.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +153 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/types/config.d.ts +55 -0
- package/dist/src/types/config.d.ts.map +1 -0
- package/dist/src/types/config.js +36 -0
- package/dist/src/types/config.js.map +1 -0
- package/dist/src/types/errors.d.ts +59 -0
- package/dist/src/types/errors.d.ts.map +1 -0
- package/dist/src/types/errors.js +6 -0
- package/dist/src/types/errors.js.map +1 -0
- package/dist/src/utils/code-detector.d.ts +17 -0
- package/dist/src/utils/code-detector.d.ts.map +1 -0
- package/dist/src/utils/code-detector.js +288 -0
- package/dist/src/utils/code-detector.js.map +1 -0
- package/dist/src/utils/grapheme.d.ts +20 -0
- package/dist/src/utils/grapheme.d.ts.map +1 -0
- package/dist/src/utils/grapheme.js +82 -0
- package/dist/src/utils/grapheme.js.map +1 -0
- package/dist/streaming/hooks.d.ts +12 -0
- package/dist/streaming/hooks.d.ts.map +1 -0
- package/dist/streaming/hooks.js +8 -0
- package/dist/streaming/hooks.js.map +1 -0
- package/dist/streaming/sanitizer.d.ts +66 -0
- package/dist/streaming/sanitizer.d.ts.map +1 -0
- package/dist/streaming/sanitizer.js +118 -0
- package/dist/streaming/sanitizer.js.map +1 -0
- package/dist/streaming/state.d.ts +10 -0
- package/dist/streaming/state.d.ts.map +1 -0
- package/dist/streaming/state.js +33 -0
- package/dist/streaming/state.js.map +1 -0
- package/dist/types/config.d.ts +21 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +14 -0
- package/dist/types/config.js.map +1 -1
- package/dist/utils/code-detector.d.ts.map +1 -1
- package/dist/utils/code-detector.js +46 -10
- package/dist/utils/code-detector.js.map +1 -1
- package/dist/utils/grapheme.d.ts.map +1 -1
- package/dist/utils/grapheme.js +20 -2
- package/dist/utils/grapheme.js.map +1 -1
- package/package.json +19 -6
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;AAsHzD,eAAO,MAAM,MAAM,EAAE,MAyGpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,74 @@
|
|
|
1
1
|
import { loadConfig } from "./core/config.js";
|
|
2
2
|
import { processText } from "./core/processor.js";
|
|
3
|
-
|
|
3
|
+
const hasMarkdownExtension = (filePath, extensions) => {
|
|
4
|
+
const lowerPath = filePath.toLowerCase();
|
|
5
|
+
for (const ext of extensions) {
|
|
6
|
+
if (lowerPath.endsWith(ext.toLowerCase())) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
};
|
|
12
|
+
const getStringArg = (args, keys) => {
|
|
13
|
+
for (const key of keys) {
|
|
14
|
+
const value = args[key];
|
|
15
|
+
if (typeof value === "string") {
|
|
16
|
+
return { key, value };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
const sendNotification = async (client, sessionID, config, stats) => {
|
|
22
|
+
if (!config.showNotification || stats.removed === 0) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!sessionID || typeof sessionID !== "string") {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (!client || typeof client !== "object") {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const emojiWord = stats.removed === 1 ? "emoji" : "emojis";
|
|
32
|
+
let message = `UNMOJI | removed ${stats.removed} ${emojiWord}`;
|
|
33
|
+
if (stats.keptInlineCode > 0) {
|
|
34
|
+
const keptWord = stats.keptInlineCode === 1 ? "emoji" : "emojis";
|
|
35
|
+
message += ` | Kept ${stats.keptInlineCode} inline code ${keptWord}`;
|
|
36
|
+
}
|
|
37
|
+
if (stats.keptQuote > 0) {
|
|
38
|
+
const keptWord = stats.keptQuote === 1 ? "emoji" : "emojis";
|
|
39
|
+
message += ` | Kept ${stats.keptQuote} ${keptWord} in quotes`;
|
|
40
|
+
}
|
|
41
|
+
if (stats.keptCodeBlock > 0) {
|
|
42
|
+
const keptWord = stats.keptCodeBlock === 1 ? "emoji" : "emojis";
|
|
43
|
+
message += ` | Kept ${stats.keptCodeBlock} ${keptWord} in code blocks`;
|
|
44
|
+
}
|
|
45
|
+
if (config.notificationStyle === "thread-verbose") {
|
|
46
|
+
message += `\nLines: ${stats.lines.join(", ")}`;
|
|
47
|
+
}
|
|
48
|
+
const clientObj = client;
|
|
49
|
+
try {
|
|
50
|
+
if (config.notificationStyle === "toast" && clientObj.tui?.showToast) {
|
|
51
|
+
await clientObj.tui.showToast({
|
|
52
|
+
title: "UNMOJI",
|
|
53
|
+
message,
|
|
54
|
+
variant: "info",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else if (clientObj.session?.prompt) {
|
|
58
|
+
await clientObj.session.prompt({
|
|
59
|
+
path: { id: sessionID },
|
|
60
|
+
body: {
|
|
61
|
+
noReply: true,
|
|
62
|
+
parts: [{ type: "text", text: message, ignored: true }],
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Silent no-op - never fail the hook due to notification errors
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
export const Unmoji = async ({ client }) => {
|
|
4
72
|
const configResult = loadConfig(process.cwd());
|
|
5
73
|
if (configResult.isErr()) {
|
|
6
74
|
return {};
|
|
@@ -11,11 +79,74 @@ export const Unmoji = async () => {
|
|
|
11
79
|
}
|
|
12
80
|
return {
|
|
13
81
|
"experimental.text.complete": async (_input, output) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
82
|
+
try {
|
|
83
|
+
const result = processText(output.text, config);
|
|
84
|
+
if (result.isOk()) {
|
|
85
|
+
output.text = result.value.text;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"tool.execute.before": async (input, output) => {
|
|
93
|
+
try {
|
|
94
|
+
if (!config.processMarkdown) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const toolName = input.tool;
|
|
98
|
+
const args = output.args;
|
|
99
|
+
if (!args || typeof args !== "object") {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const argsRecord = args;
|
|
103
|
+
const filePathArg = getStringArg(argsRecord, ["filePath", "file_path"]);
|
|
104
|
+
if (!filePathArg) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!hasMarkdownExtension(filePathArg.value, config.markdownExtensions)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (toolName === "write") {
|
|
111
|
+
const contentArg = getStringArg(argsRecord, ["content"]);
|
|
112
|
+
if (!contentArg) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (contentArg.value.length > config.maxMarkdownChars) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const result = processText(contentArg.value, config);
|
|
119
|
+
if (result.isOk()) {
|
|
120
|
+
const processResult = result.value;
|
|
121
|
+
argsRecord[contentArg.key] = processResult.text;
|
|
122
|
+
await sendNotification(client, input.sessionID, config, processResult.stats);
|
|
123
|
+
}
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (toolName === "edit") {
|
|
127
|
+
const newStringArg = getStringArg(argsRecord, [
|
|
128
|
+
"newString",
|
|
129
|
+
"new_string",
|
|
130
|
+
]);
|
|
131
|
+
if (!newStringArg) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (newStringArg.value.length > config.maxMarkdownChars) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const result = processText(newStringArg.value, config);
|
|
138
|
+
if (result.isOk()) {
|
|
139
|
+
const processResult = result.value;
|
|
140
|
+
argsRecord[newStringArg.key] = processResult.text;
|
|
141
|
+
await sendNotification(client, input.sessionID, config, processResult.stats);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return;
|
|
17
147
|
}
|
|
18
148
|
},
|
|
19
149
|
};
|
|
20
150
|
};
|
|
151
|
+
export default Unmoji;
|
|
21
152
|
//# 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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|