opencode-snippets 2.0.1 → 2.1.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 +49 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +102 -2
- package/dist/index.js.map +1 -1
- package/dist/src/commands.js +15 -8
- package/dist/src/commands.js.map +1 -1
- package/dist/src/config.d.ts +2 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +12 -2
- package/dist/src/config.js.map +1 -1
- package/dist/src/constants.d.ts +6 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +6 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/expander.d.ts.map +1 -1
- package/dist/src/expander.js +4 -1
- package/dist/src/expander.js.map +1 -1
- package/dist/src/hook-types.d.ts +3 -0
- package/dist/src/hook-types.d.ts.map +1 -1
- package/dist/src/loader.d.ts.map +1 -1
- package/dist/src/loader.js +61 -25
- package/dist/src/loader.js.map +1 -1
- package/dist/src/skill-load-manager.d.ts +10 -0
- package/dist/src/skill-load-manager.d.ts.map +1 -0
- package/dist/src/skill-load-manager.js +30 -0
- package/dist/src/skill-load-manager.js.map +1 -0
- package/dist/src/skill-loader.d.ts +8 -1
- package/dist/src/skill-loader.d.ts.map +1 -1
- package/dist/src/skill-loader.js +66 -17
- package/dist/src/skill-loader.js.map +1 -1
- package/dist/src/skill-loading.d.ts +11 -0
- package/dist/src/skill-loading.d.ts.map +1 -0
- package/dist/src/skill-loading.js +122 -0
- package/dist/src/skill-loading.js.map +1 -0
- package/dist/src/tui-search.d.ts +2 -0
- package/dist/src/tui-search.d.ts.map +1 -1
- package/dist/src/tui-search.js +61 -16
- package/dist/src/tui-search.js.map +1 -1
- package/dist/src/tui-trigger.d.ts +4 -0
- package/dist/src/tui-trigger.d.ts.map +1 -1
- package/dist/src/tui-trigger.js +28 -0
- package/dist/src/tui-trigger.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.jsx +85 -30
- package/dist/tui.jsx.map +1 -1
- package/package.json +1 -1
- package/skill/snippets/SKILL.md +38 -6
package/README.md
CHANGED
|
@@ -151,6 +151,8 @@ Using the directory lets OpenCode read the package manifest and discover both ta
|
|
|
151
151
|
mkdir -p ~/.config/opencode/snippet
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
+
The plugin also loads `~/.config/opencode/snippets/` if you already use the plural form.
|
|
155
|
+
|
|
154
156
|
**2. Add your first snippet:**
|
|
155
157
|
|
|
156
158
|
`~/.config/opencode/snippet/careful.md`:
|
|
@@ -168,7 +170,7 @@ https://github.com/user-attachments/assets/ebb303b5-d41b-4d87-8f08-eb1d730db5c8
|
|
|
168
170
|
|
|
169
171
|
## Where to Store Snippets
|
|
170
172
|
|
|
171
|
-
Snippets can be global (`~/.config/opencode/snippet/*.md`) or project-specific (`.opencode/snippet/*.md`). Both
|
|
173
|
+
Snippets can be global (`~/.config/opencode/snippet/*.md` or `~/.config/opencode/snippets/*.md`) or project-specific (`.opencode/snippet/*.md` or `.opencode/snippets/*.md`). Both singular and plural directory names are loaded automatically. Project snippets override global ones with the same name, and `snippet/` wins over `snippets/` within the same scope.
|
|
172
174
|
|
|
173
175
|
## Features
|
|
174
176
|
|
|
@@ -355,6 +357,46 @@ Skills are loaded from OpenCode's standard skill directories:
|
|
|
355
357
|
|
|
356
358
|
When a skill tag is found, it's replaced with the skill's content body (frontmatter stripped). Unknown skills leave the tag unchanged.
|
|
357
359
|
|
|
360
|
+
### Skill Loading (Experimental)
|
|
361
|
+
|
|
362
|
+
Load a skill with OpenCode-style wrapper content without showing the full skill body inline:
|
|
363
|
+
|
|
364
|
+
```markdown
|
|
365
|
+
Write this in caveman mode. #skill(caveman)
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Quoted names are also supported:
|
|
369
|
+
|
|
370
|
+
```markdown
|
|
371
|
+
#skill("opencode-config")
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**Enable in config:**
|
|
375
|
+
|
|
376
|
+
```jsonc
|
|
377
|
+
{
|
|
378
|
+
"experimental": {
|
|
379
|
+
"skillLoading": true
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
When enabled, the user-visible message shows `↳ Loaded name`, while the model receives an injected OpenCode-style `<skill_content>` payload immediately above that message. Multiple `#skill(...)` calls in one message are injected in source order.
|
|
385
|
+
|
|
386
|
+
Quick project-local demo in this repo:
|
|
387
|
+
|
|
388
|
+
```markdown
|
|
389
|
+
Explain closures in two lines. #skill(demo-voice)
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Or use the included snippet that expands into `#skill(...)`:
|
|
393
|
+
|
|
394
|
+
```markdown
|
|
395
|
+
#demo-skill Explain closures in two lines.
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Demo files live at `.opencode/skill/demo-voice/SKILL.md` and `.opencode/snippet/demo-skill.md`.
|
|
399
|
+
|
|
358
400
|
## Example Snippets
|
|
359
401
|
|
|
360
402
|
### `~/.config/opencode/snippet/context.md`
|
|
@@ -409,19 +451,22 @@ The plugin can be configured via `config.jsonc` files:
|
|
|
409
451
|
- **Global**: `~/.config/opencode/snippet/config.jsonc`
|
|
410
452
|
- **Project**: `.opencode/snippet/config.jsonc` (overrides global settings)
|
|
411
453
|
|
|
454
|
+
Snippet markdown files are loaded from both `snippet/` and `snippets/`, but config files stay in `snippet/config.jsonc`.
|
|
455
|
+
|
|
412
456
|
A default config file is created automatically on first run.
|
|
413
457
|
|
|
414
458
|
### Full Configuration Example
|
|
415
459
|
|
|
416
460
|
```jsonc
|
|
417
461
|
{
|
|
418
|
-
"$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.
|
|
462
|
+
"$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.1.0/schema/config.schema.json",
|
|
419
463
|
"logging": {
|
|
420
464
|
"debug": false // Enable debug logging (logs: ~/.config/opencode/logs/snippets/daily/)
|
|
421
465
|
},
|
|
422
466
|
"experimental": {
|
|
423
467
|
"injectBlocks": false, // Enable <inject>...</inject> blocks for persistent context
|
|
424
|
-
"skillRendering": false // Enable <skill>name</skill> tag expansion
|
|
468
|
+
"skillRendering": false, // Enable <skill>name</skill> tag expansion
|
|
469
|
+
"skillLoading": false // Enable #skill(name) OpenCode-style loading
|
|
425
470
|
},
|
|
426
471
|
"hideCommandInOutput": false, // Show only output for shell commands (hides "$ cmd\n-->")
|
|
427
472
|
"injectRecencyMessages": 5 // How many messages from the bottom to place injected context
|
|
@@ -438,6 +483,7 @@ Logs are written to `~/.config/opencode/logs/snippets/daily/` when enabled.
|
|
|
438
483
|
|
|
439
484
|
- Snippets expand everywhere: regular chat, question responses, skills, and slash commands
|
|
440
485
|
- Injected snippet context is placed N messages from the bottom (configured by `injectRecencyMessages`) and shows a `↳ Injected #name` indicator when first registered
|
|
486
|
+
- `#skill(name)` inserts OpenCode-style skill payload text above the visible user message while keeping the transcript inline placeholder compact
|
|
441
487
|
- Snippets are loaded once at plugin startup
|
|
442
488
|
- Hashtag matching is **case-insensitive** (`#Hello` = `#hello`)
|
|
443
489
|
- Unknown hashtags are left unchanged
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAwDlD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAkZ5B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,9 @@ import { loadSnippets } from "./src/loader.js";
|
|
|
9
9
|
import { logger } from "./src/logger.js";
|
|
10
10
|
import { sendIgnoredMessage } from "./src/notification.js";
|
|
11
11
|
import { executeShellCommands } from "./src/shell.js";
|
|
12
|
+
import { SkillLoadManager } from "./src/skill-load-manager.js";
|
|
12
13
|
import { loadSkills } from "./src/skill-loader.js";
|
|
14
|
+
import { expandSkillLoads } from "./src/skill-loading.js";
|
|
13
15
|
import { expandSkillTags } from "./src/skill-renderer.js";
|
|
14
16
|
const __filename = fileURLToPath(import.meta.url);
|
|
15
17
|
const __dirname = dirname(__filename);
|
|
@@ -61,9 +63,9 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
61
63
|
// Load all snippets at startup (global + project directory)
|
|
62
64
|
const startupStart = performance.now();
|
|
63
65
|
const snippets = await loadSnippets(ctx.directory);
|
|
64
|
-
// Load skills if skill
|
|
66
|
+
// Load skills if either skill feature is enabled
|
|
65
67
|
let skills = new Map();
|
|
66
|
-
if (config.experimental.skillRendering) {
|
|
68
|
+
if (config.experimental.skillRendering || config.experimental.skillLoading) {
|
|
67
69
|
skills = await loadSkills(ctx.directory);
|
|
68
70
|
}
|
|
69
71
|
const startupTime = performance.now() - startupStart;
|
|
@@ -72,12 +74,14 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
72
74
|
snippetCount: snippets.size,
|
|
73
75
|
skillCount: skills.size,
|
|
74
76
|
skillRenderingEnabled: config.experimental.skillRendering,
|
|
77
|
+
skillLoadingEnabled: config.experimental.skillLoading,
|
|
75
78
|
injectBlocksEnabled: config.experimental.injectBlocks,
|
|
76
79
|
debugLogging: config.logging.debug,
|
|
77
80
|
});
|
|
78
81
|
// Create command handler
|
|
79
82
|
const commandHandler = createCommandExecuteHandler(ctx.client, snippets, ctx.directory);
|
|
80
83
|
const injectionManager = new InjectionManager();
|
|
84
|
+
const skillLoadManager = new SkillLoadManager();
|
|
81
85
|
/**
|
|
82
86
|
* Processes text parts for snippet expansion, skill rendering, and shell command execution.
|
|
83
87
|
* Returns collected inject blocks from expanded snippets with snippet names.
|
|
@@ -103,11 +107,37 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
103
107
|
part.text = expandSkillTags(part.text, skills);
|
|
104
108
|
skillTimeTotal += performance.now() - skillStart;
|
|
105
109
|
}
|
|
110
|
+
const skillPayloads = [];
|
|
111
|
+
const loadSkills = async () => {
|
|
112
|
+
if (!config.experimental.skillLoading || skills.size === 0)
|
|
113
|
+
return;
|
|
114
|
+
const skillLoadResult = await expandSkillLoads(part.text || "", skills, snippets, {
|
|
115
|
+
expandSkillTagsInContent: config.experimental.skillRendering,
|
|
116
|
+
extractInject: config.experimental.injectBlocks,
|
|
117
|
+
});
|
|
118
|
+
part.text = skillLoadResult.text;
|
|
119
|
+
skillPayloads.push(...skillLoadResult.payloads);
|
|
120
|
+
};
|
|
121
|
+
if (config.experimental.skillLoading && skills.size > 0) {
|
|
122
|
+
const skillStart = performance.now();
|
|
123
|
+
// User requirement: reserve explicit #skill(...) syntax even if a plain
|
|
124
|
+
// #skill snippet also exists.
|
|
125
|
+
await loadSkills();
|
|
126
|
+
skillTimeTotal += performance.now() - skillStart;
|
|
127
|
+
}
|
|
106
128
|
// 2. Expand hashtags recursively with loop detection
|
|
107
129
|
const expandStart = performance.now();
|
|
108
130
|
const expansionResult = expandHashtags(part.text, snippets, new Map(), expandOptions);
|
|
109
131
|
part.text = assembleMessage(expansionResult);
|
|
110
132
|
expandTimeTotal += performance.now() - expandStart;
|
|
133
|
+
// User requirement: snippet-expanded text can also contain #skill(...),
|
|
134
|
+
// so run skill loading again after hashtag expansion.
|
|
135
|
+
if (config.experimental.skillLoading && skills.size > 0) {
|
|
136
|
+
const skillStart = performance.now();
|
|
137
|
+
await loadSkills();
|
|
138
|
+
part.skillLoads = skillPayloads;
|
|
139
|
+
skillTimeTotal += performance.now() - skillStart;
|
|
140
|
+
}
|
|
111
141
|
// 3. Execute shell commands: !`command`
|
|
112
142
|
const shellStart = performance.now();
|
|
113
143
|
part.text = await executeShellCommands(part.text, ctx, {
|
|
@@ -167,6 +197,47 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
167
197
|
});
|
|
168
198
|
return result;
|
|
169
199
|
};
|
|
200
|
+
const getPartSkillLoads = (parts) => parts.flatMap((part) => part.skillLoads || []);
|
|
201
|
+
const getMessageSkillLoads = (sessionID, message) => {
|
|
202
|
+
const direct = getPartSkillLoads(message.parts);
|
|
203
|
+
if (direct.length > 0)
|
|
204
|
+
return direct;
|
|
205
|
+
if (!message.info.id)
|
|
206
|
+
return [];
|
|
207
|
+
return skillLoadManager.get(sessionID, message.info.id);
|
|
208
|
+
};
|
|
209
|
+
const insertSkillLoadsIntoMessages = (sessionID, messages) => {
|
|
210
|
+
const pending = skillLoadManager.drainPending(sessionID);
|
|
211
|
+
const result = [];
|
|
212
|
+
const fallbackByIndex = new Map();
|
|
213
|
+
if (pending.length > 0) {
|
|
214
|
+
for (let i = messages.length - 1; i >= 0; i -= 1) {
|
|
215
|
+
const message = messages[i];
|
|
216
|
+
if (message.info.role !== "user" || isIgnoredMessage(message))
|
|
217
|
+
continue;
|
|
218
|
+
if (getMessageSkillLoads(sessionID, message).length > 0)
|
|
219
|
+
continue;
|
|
220
|
+
const payloads = pending.pop();
|
|
221
|
+
if (!payloads)
|
|
222
|
+
break;
|
|
223
|
+
fallbackByIndex.set(i, payloads);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
for (const [i, message] of messages.entries()) {
|
|
227
|
+
if (message.info.role === "user" && !isIgnoredMessage(message)) {
|
|
228
|
+
const direct = getMessageSkillLoads(sessionID, message);
|
|
229
|
+
const payloads = direct.length > 0 ? direct : fallbackByIndex.get(i) || [];
|
|
230
|
+
if (payloads.length > 0) {
|
|
231
|
+
result.push({
|
|
232
|
+
info: { role: "user", sessionID: message.info.sessionID || sessionID },
|
|
233
|
+
parts: [{ type: "text", text: payloads.join("\n\n") }],
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
result.push(message);
|
|
238
|
+
}
|
|
239
|
+
return result;
|
|
240
|
+
};
|
|
170
241
|
return {
|
|
171
242
|
// Register /snippet command and skill path
|
|
172
243
|
config: async (opencodeConfig) => {
|
|
@@ -194,6 +265,18 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
194
265
|
part.snippetsProcessed = true;
|
|
195
266
|
}
|
|
196
267
|
});
|
|
268
|
+
if (input.messageID) {
|
|
269
|
+
const payloads = getPartSkillLoads(output.parts);
|
|
270
|
+
if (payloads.length > 0) {
|
|
271
|
+
skillLoadManager.register(input.sessionID, input.messageID, payloads);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
const payloads = getPartSkillLoads(output.parts);
|
|
276
|
+
if (payloads.length > 0) {
|
|
277
|
+
skillLoadManager.queue(input.sessionID, payloads);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
197
280
|
if (injected.length > 0) {
|
|
198
281
|
const newOnes = injectionManager.registerAndGetNew(input.sessionID, injected);
|
|
199
282
|
if (newOnes.length > 0) {
|
|
@@ -224,6 +307,12 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
224
307
|
await sendIgnoredMessage(ctx.client, sessionID, snippetNames.map((name) => `↳ Injected #${name}`).join("\n"));
|
|
225
308
|
}
|
|
226
309
|
}
|
|
310
|
+
if (sessionID && message.info.id) {
|
|
311
|
+
const payloads = getPartSkillLoads(message.parts);
|
|
312
|
+
if (payloads.length > 0) {
|
|
313
|
+
skillLoadManager.register(sessionID, message.info.id, payloads);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
227
316
|
}
|
|
228
317
|
}
|
|
229
318
|
if (sessionID) {
|
|
@@ -252,6 +341,17 @@ export const SnippetsPlugin = async (ctx) => {
|
|
|
252
341
|
messagesAfter: output.messages.length,
|
|
253
342
|
});
|
|
254
343
|
}
|
|
344
|
+
if (config.experimental.skillLoading) {
|
|
345
|
+
const beforeSkillLoads = output.messages.length;
|
|
346
|
+
output.messages = insertSkillLoadsIntoMessages(sessionID, output.messages);
|
|
347
|
+
if (output.messages.length > beforeSkillLoads) {
|
|
348
|
+
logger.debug("Injected skill load context messages", {
|
|
349
|
+
sessionID,
|
|
350
|
+
messagesBefore: beforeSkillLoads,
|
|
351
|
+
messagesAfter: output.messages.length,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
255
355
|
}
|
|
256
356
|
},
|
|
257
357
|
// Process skill tool output to expand snippets and skill tags in skill content
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAsB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,KAAK,UAAU,yBAAyB;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YAExE,wCAAwC;YACxC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrC,qDAAqD;YACvD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAW,KAAK,EAAE,GAAG,EAAE,EAAE;IAClD,uDAAuD;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzC,wBAAwB;IACxB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3C,kDAAkD;IAClD,yBAAyB,EAAE,CAAC;IAE5B,4DAA4D;IAC5D,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,IAAI,MAAM,GAAkB,IAAI,GAAG,EAAE,CAAC;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IAErD,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;QACtC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,qBAAqB,EAAE,MAAM,CAAC,YAAY,CAAC,cAAc;QACzD,mBAAmB,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY;QACrD,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;KACnC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,cAAc,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAExF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEhD;;;OAGG;IACH,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAA6C,EACa,EAAE;QAC5D,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,WAAW,GAAoD,EAAE,CAAC;QAExE,MAAM,aAAa,GAAkB;YACnC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY;YAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtC,qDAAqD;gBACrD,IAAI,MAAM,CAAC,YAAY,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC/C,cAAc,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;gBACnD,CAAC;gBAED,qDAAqD;gBACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACtC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;gBACtF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;gBAC7C,eAAe,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;gBAEnD,wCAAwC;gBACxC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAA8B,EAAE;oBAChF,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;iBAChD,CAAC,CAAC;gBACH,cAAc,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;gBACjD,cAAc,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBAC7C,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjC,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtC,mBAAmB,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/C,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtC,cAAc;gBACd,aAAa,EAAE,WAAW,CAAC,MAAM;aAClC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,OAA4C,EAAW,EAAE,CACjF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,yBAAyB,GAAG,CAAC,QAAqC,EAAU,EAAE,CAClF,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAElE,MAAM,4BAA4B,GAAG,CACnC,QAAqC,EACrC,UAA8D,EACjC,EAAE;QAC/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE7C,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAgC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACtB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,gBAAgB,CAAC,OAAO,CAAC;gBAAE,OAAO;YACtC,gBAAgB,IAAI,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACzD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,2CAA2C;QAC3C,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC/B,qDAAqD;YACrD,MAAM,GAAG,GAAG,cAEX,CAAC;YACF,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjC,4BAA4B;YAC5B,cAAc,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9B,cAAc,CAAC,OAAO,CAAC,OAAO,GAAG;gBAC/B,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,gDAAgD;aAC9D,CAAC;QACJ,CAAC;QAED,wBAAwB,EAAE,cAAc;QAExC,cAAc,EAAE,KAAK,EAAE,KAAuB,EAAE,MAAyB,EAAE,EAAE;YAC3E,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO;YAC3C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO;YAEtD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACrE,MAAM,kBAAkB,CACtB,GAAG,CAAC,MAAM,EACV,KAAK,CAAC,SAAS,EACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC,EAAE,KAAK,EAC3C,KAAqB,EACrB,MAAuB,EACvB,EAAE;YACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;YAE9F,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE;gBACpC,cAAc,EAAE,KAAK,CAAC,SAAS;gBAC/B,kBAAkB,EAAE,SAAS;gBAC7B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;gBACpC,YAAY,EAAE,CAAC,CAAC,SAAS;aAC1B,CAAC,CAAC;YAEH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAAE,SAAS;oBACnE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;wBAAE,SAAS;oBAEzD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAEvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;wBACrC,MAAM,OAAO,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BACrE,MAAM,kBAAkB,CACtB,GAAG,CAAC,MAAM,EACV,SAAS,EACT,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,uBAAuB,CAC7D,SAAS,EACT,YAAY,EACZ,MAAM,CAAC,qBAAqB,CAC7B,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE;oBACvD,SAAS;oBACT,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;oBACpC,cAAc,EAAE,UAAU,CAAC,MAAM;oBACjC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;wBACjB,IAAI,EAAE,CAAC,CAAC,KAAK;6BACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;6BACvC,IAAI,CAAC,KAAK,CAAC;wBACd,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;qBAC5D,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC3C,MAAM,CAAC,QAAQ,GAAG,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC5E,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;wBAC/C,SAAS;wBACT,cAAc,EAAE,UAAU,CAAC,MAAM;wBACjC,cAAc,EAAE,WAAW;wBAC3B,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO;YAEnC,wDAAwD;YACxD,sDAAsD;YACtD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAE9B,qCAAqC;gBACrC,IAAI,MAAM,CAAC,YAAY,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC1D,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACjD,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,aAAa,GAAkB;oBACnC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY;iBAChD,CAAC;gBACF,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;gBACtF,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEjD,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/commands.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseCommandArgs } from "./arg-parser.js";
|
|
2
|
-
import { PATHS } from "./constants.js";
|
|
2
|
+
import { getProjectPaths, PATHS } from "./constants.js";
|
|
3
3
|
import { createSnippet, deleteSnippet, listSnippets, reloadSnippets } from "./loader.js";
|
|
4
4
|
import { logger } from "./logger.js";
|
|
5
5
|
import { sendIgnoredMessage } from "./notification.js";
|
|
@@ -235,6 +235,13 @@ function formatAliases(aliases) {
|
|
|
235
235
|
const truncated = truncate(joined, MAX_ALIASES_LENGTH - 10);
|
|
236
236
|
return ` (aliases: ${truncated} +${aliases.length})`;
|
|
237
237
|
}
|
|
238
|
+
function globalSnippetLocations() {
|
|
239
|
+
return `${PATHS.SNIPPETS_DIR}/ or ${PATHS.SNIPPETS_DIR_ALT}/`;
|
|
240
|
+
}
|
|
241
|
+
function projectSnippetLocations(projectDir) {
|
|
242
|
+
const paths = getProjectPaths(projectDir);
|
|
243
|
+
return `${paths.SNIPPETS_DIR}/ or ${paths.SNIPPETS_DIR_ALT}/`;
|
|
244
|
+
}
|
|
238
245
|
/**
|
|
239
246
|
* Format a single snippet for display
|
|
240
247
|
*/
|
|
@@ -251,9 +258,9 @@ async function handleListCommand(ctx) {
|
|
|
251
258
|
const snippetList = listSnippets(snippets);
|
|
252
259
|
if (snippetList.length === 0) {
|
|
253
260
|
await sendIgnoredMessage(client, sessionId, "No snippets found.\n\n" +
|
|
254
|
-
`Global snippets: ${
|
|
261
|
+
`Global snippets: ${globalSnippetLocations()}\n` +
|
|
255
262
|
(projectDir
|
|
256
|
-
? `Project snippets: ${projectDir}
|
|
263
|
+
? `Project snippets: ${projectSnippetLocations(projectDir)}`
|
|
257
264
|
: "No project directory detected.") +
|
|
258
265
|
"\n\nUse /snippet add <name> to add a new snippet.");
|
|
259
266
|
return;
|
|
@@ -263,13 +270,13 @@ async function handleListCommand(ctx) {
|
|
|
263
270
|
const globalSnippets = snippetList.filter((s) => s.source === "global");
|
|
264
271
|
const projectSnippets = snippetList.filter((s) => s.source === "project");
|
|
265
272
|
if (globalSnippets.length > 0) {
|
|
266
|
-
lines.push(`── Global (${
|
|
273
|
+
lines.push(`── Global (${globalSnippetLocations()}) ──`, "");
|
|
267
274
|
for (const s of globalSnippets) {
|
|
268
275
|
lines.push(formatSnippetEntry(s), "");
|
|
269
276
|
}
|
|
270
277
|
}
|
|
271
|
-
if (projectSnippets.length > 0) {
|
|
272
|
-
lines.push(`── Project (${projectDir}
|
|
278
|
+
if (projectSnippets.length > 0 && projectDir) {
|
|
279
|
+
lines.push(`── Project (${projectSnippetLocations(projectDir)}) ──`, "");
|
|
273
280
|
for (const s of projectSnippets) {
|
|
274
281
|
lines.push(formatSnippetEntry(s), "");
|
|
275
282
|
}
|
|
@@ -296,8 +303,8 @@ Commands:
|
|
|
296
303
|
help Show this help message
|
|
297
304
|
|
|
298
305
|
Snippet Locations:
|
|
299
|
-
Global: ~/.config/opencode/snippet/
|
|
300
|
-
Project: <project>/.opencode/snippet/
|
|
306
|
+
Global: ~/.config/opencode/snippet/ or ~/.config/opencode/snippets/
|
|
307
|
+
Project: <project>/.opencode/snippet/ or <project>/.opencode/snippets/
|
|
301
308
|
|
|
302
309
|
Usage in messages:
|
|
303
310
|
Type #snippet-name to expand a snippet inline.
|
package/dist/src/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface LoggingConfig {
|
|
|
15
15
|
export interface ExperimentalConfig {
|
|
16
16
|
/** Enable skill rendering with <skill>name</skill> or <skill name="name" /> syntax */
|
|
17
17
|
skillRendering: boolean;
|
|
18
|
+
/** Enable #skill(name) syntax that injects OpenCode-style skill payloads above the message */
|
|
19
|
+
skillLoading: boolean;
|
|
18
20
|
/** Enable <inject>...</inject> blocks for persistent context messages */
|
|
19
21
|
injectBlocks: boolean;
|
|
20
22
|
}
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,OAAO,EAAE,aAAa,CAAC;IAEvB,4BAA4B;IAC5B,YAAY,EAAE,kBAAkB,CAAC;IAEjC,4DAA4D;IAC5D,mBAAmB,EAAE,OAAO,CAAC;IAE7B,sFAAsF;IACtF,qBAAqB,EAAE,MAAM,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,cAAc,EAAE,OAAO,CAAC;IACxB,8FAA8F;IAC9F,YAAY,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,OAAO,EAAE,aAAa,CAAC;IAEvB,4BAA4B;IAC5B,YAAY,EAAE,kBAAkB,CAAC;IAEjC,4DAA4D;IAC5D,mBAAmB,EAAE,OAAO,CAAC;IAE7B,sFAAsF;IACtF,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AA0ID;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAiC9D;AAgCD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
package/dist/src/config.js
CHANGED
|
@@ -12,6 +12,7 @@ const DEFAULT_CONFIG = {
|
|
|
12
12
|
},
|
|
13
13
|
experimental: {
|
|
14
14
|
skillRendering: false,
|
|
15
|
+
skillLoading: false,
|
|
15
16
|
injectBlocks: false,
|
|
16
17
|
},
|
|
17
18
|
hideCommandInOutput: false,
|
|
@@ -22,7 +23,7 @@ const DEFAULT_CONFIG = {
|
|
|
22
23
|
*/
|
|
23
24
|
const DEFAULT_CONFIG_CONTENT = `{
|
|
24
25
|
// JSON Schema for editor autocompletion
|
|
25
|
-
"$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.0
|
|
26
|
+
"$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.1.0/schema/config.schema.json",
|
|
26
27
|
|
|
27
28
|
// Logging settings
|
|
28
29
|
"logging": {
|
|
@@ -40,7 +41,13 @@ const DEFAULT_CONFIG_CONTENT = `{
|
|
|
40
41
|
// Skills are loaded from OpenCode's standard skill directories
|
|
41
42
|
// Values: true, false, "enabled", "disabled"
|
|
42
43
|
// Default: false
|
|
43
|
-
"skillRendering": false
|
|
44
|
+
"skillRendering": false,
|
|
45
|
+
|
|
46
|
+
// Enable #skill(name) syntax that shows a placeholder inline while injecting
|
|
47
|
+
// the OpenCode-style <skill_content> payload to the model above the message
|
|
48
|
+
// Values: true, false, "enabled", "disabled"
|
|
49
|
+
// Default: false
|
|
50
|
+
"skillLoading": false
|
|
44
51
|
},
|
|
45
52
|
|
|
46
53
|
// Hide shell command in snippet output
|
|
@@ -148,6 +155,7 @@ export function loadConfig(projectDir) {
|
|
|
148
155
|
logger.debug("Final config", {
|
|
149
156
|
loggingDebug: config.logging.debug,
|
|
150
157
|
experimentalSkillRendering: config.experimental.skillRendering,
|
|
158
|
+
experimentalSkillLoading: config.experimental.skillLoading,
|
|
151
159
|
hideCommandInOutput: config.hideCommandInOutput,
|
|
152
160
|
injectRecencyMessages: config.injectRecencyMessages,
|
|
153
161
|
});
|
|
@@ -159,6 +167,7 @@ export function loadConfig(projectDir) {
|
|
|
159
167
|
function mergeConfig(base, raw) {
|
|
160
168
|
const debugValue = normalizeBooleanSetting(raw.logging?.debug);
|
|
161
169
|
const skillRenderingValue = normalizeBooleanSetting(raw.experimental?.skillRendering);
|
|
170
|
+
const skillLoadingValue = normalizeBooleanSetting(raw.experimental?.skillLoading);
|
|
162
171
|
const injectBlocksValue = normalizeBooleanSetting(raw.experimental?.injectBlocks);
|
|
163
172
|
const hideCommandValue = normalizeBooleanSetting(raw.hideCommandInOutput);
|
|
164
173
|
const injectRecencyValue = normalizePositiveInteger(raw.injectRecencyMessages);
|
|
@@ -168,6 +177,7 @@ function mergeConfig(base, raw) {
|
|
|
168
177
|
},
|
|
169
178
|
experimental: {
|
|
170
179
|
skillRendering: skillRenderingValue !== undefined ? skillRenderingValue : base.experimental.skillRendering,
|
|
180
|
+
skillLoading: skillLoadingValue !== undefined ? skillLoadingValue : base.experimental.skillLoading,
|
|
171
181
|
injectBlocks: injectBlocksValue !== undefined ? injectBlocksValue : base.experimental.injectBlocks,
|
|
172
182
|
},
|
|
173
183
|
hideCommandInOutput: hideCommandValue !== undefined ? hideCommandValue : base.hideCommandInOutput,
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAAgC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export declare const PATTERNS: {
|
|
|
6
6
|
readonly HASHTAG: RegExp;
|
|
7
7
|
/** Matches shell commands like !`command` */
|
|
8
8
|
readonly SHELL_COMMAND: RegExp;
|
|
9
|
+
/** Matches skill loads like #skill(name) or #skill("name") */
|
|
10
|
+
readonly SKILL_LOAD: RegExp;
|
|
9
11
|
/**
|
|
10
12
|
* Matches skill tags in two formats:
|
|
11
13
|
* 1. Self-closing: <skill name="skill-name" /> or <skill name='skill-name'/>
|
|
@@ -20,8 +22,10 @@ export declare const PATTERNS: {
|
|
|
20
22
|
export declare const PATHS: {
|
|
21
23
|
/** OpenCode configuration directory */
|
|
22
24
|
readonly CONFIG_DIR: string;
|
|
23
|
-
/**
|
|
25
|
+
/** Preferred global snippets directory */
|
|
24
26
|
readonly SNIPPETS_DIR: string;
|
|
27
|
+
/** Alternate global snippets directory */
|
|
28
|
+
readonly SNIPPETS_DIR_ALT: string;
|
|
25
29
|
/** Global config file */
|
|
26
30
|
readonly CONFIG_FILE_GLOBAL: string;
|
|
27
31
|
};
|
|
@@ -30,6 +34,7 @@ export declare const PATHS: {
|
|
|
30
34
|
*/
|
|
31
35
|
export declare function getProjectPaths(projectDir: string): {
|
|
32
36
|
SNIPPETS_DIR: string;
|
|
37
|
+
SNIPPETS_DIR_ALT: string;
|
|
33
38
|
CONFIG_FILE: string;
|
|
34
39
|
};
|
|
35
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,0CAA0C;;IAG1C,6CAA6C;;IAG7C;;;;OAIG;;;CAGK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB,uCAAuC;;IAGvC,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,0CAA0C;;IAG1C,6CAA6C;;IAG7C,8DAA8D;;IAG9D;;;;OAIG;;;CAGK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,KAAK;IAChB,uCAAuC;;IAGvC,0CAA0C;;IAG1C,0CAA0C;;IAG1C,yBAAyB;;CAEjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM;;;;EAOjD;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,uCAAuC;;CAE/B,CAAC"}
|
package/dist/src/constants.js
CHANGED
|
@@ -8,6 +8,8 @@ export const PATTERNS = {
|
|
|
8
8
|
HASHTAG: /#([a-z0-9\-_]+)/gi,
|
|
9
9
|
/** Matches shell commands like !`command` */
|
|
10
10
|
SHELL_COMMAND: /!`([^`]+)`/g,
|
|
11
|
+
/** Matches skill loads like #skill(name) or #skill("name") */
|
|
12
|
+
SKILL_LOAD: /#skill\(\s*([^\r\n)]+?)\s*\)/gi,
|
|
11
13
|
/**
|
|
12
14
|
* Matches skill tags in two formats:
|
|
13
15
|
* 1. Self-closing: <skill name="skill-name" /> or <skill name='skill-name'/>
|
|
@@ -22,8 +24,10 @@ export const PATTERNS = {
|
|
|
22
24
|
export const PATHS = {
|
|
23
25
|
/** OpenCode configuration directory */
|
|
24
26
|
CONFIG_DIR: join(homedir(), ".config", "opencode"),
|
|
25
|
-
/**
|
|
27
|
+
/** Preferred global snippets directory */
|
|
26
28
|
SNIPPETS_DIR: join(homedir(), ".config", "opencode", "snippet"),
|
|
29
|
+
/** Alternate global snippets directory */
|
|
30
|
+
SNIPPETS_DIR_ALT: join(homedir(), ".config", "opencode", "snippets"),
|
|
27
31
|
/** Global config file */
|
|
28
32
|
CONFIG_FILE_GLOBAL: join(homedir(), ".config", "opencode", "snippet", "config.jsonc"),
|
|
29
33
|
};
|
|
@@ -34,6 +38,7 @@ export function getProjectPaths(projectDir) {
|
|
|
34
38
|
const snippetDir = join(projectDir, ".opencode", "snippet");
|
|
35
39
|
return {
|
|
36
40
|
SNIPPETS_DIR: snippetDir,
|
|
41
|
+
SNIPPETS_DIR_ALT: join(projectDir, ".opencode", "snippets"),
|
|
37
42
|
CONFIG_FILE: join(snippetDir, "config.jsonc"),
|
|
38
43
|
};
|
|
39
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,0CAA0C;IAC1C,OAAO,EAAE,mBAAmB;IAE5B,6CAA6C;IAC7C,aAAa,EAAE,aAAa;IAE5B;;;;OAIG;IACH,sBAAsB,EAAE,wCAAwC;IAChE,eAAe,EAAE,2BAA2B;CACpC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,uCAAuC;IACvC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,0CAA0C;IAC1C,OAAO,EAAE,mBAAmB;IAE5B,6CAA6C;IAC7C,aAAa,EAAE,aAAa;IAE5B,8DAA8D;IAC9D,UAAU,EAAE,gCAAgC;IAE5C;;;;OAIG;IACH,sBAAsB,EAAE,wCAAwC;IAChE,eAAe,EAAE,2BAA2B;CACpC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,uCAAuC;IACvC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,0CAA0C;IAC1C,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;IAE/D,0CAA0C;IAC1C,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;IAEpE,yBAAyB;IACzB,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC;CAC7E,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5D,OAAO;QACL,YAAY,EAAE,UAAU;QACxB,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;QAC3D,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,uCAAuC;IACvC,iBAAiB,EAAE,KAAK;CAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expander.d.ts","sourceRoot":"","sources":["../../src/expander.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYzF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAClD;
|
|
1
|
+
{"version":3,"file":"expander.d.ts","sourceRoot":"","sources":["../../src/expander.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYzF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAClD;AAmHD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,oBAAoB,GAAG,IAAI,CAoF7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EACzB,eAAe,sBAA4B,EAC3C,OAAO,GAAE,aAAkB,GAC1B,eAAe,CAgBjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAmB/D"}
|
package/dist/src/expander.js
CHANGED
|
@@ -24,7 +24,10 @@ function expandText(text, registry, expansionCounts, collector, options) {
|
|
|
24
24
|
const previous = expanded;
|
|
25
25
|
let loopDetected = false;
|
|
26
26
|
PATTERNS.HASHTAG.lastIndex = 0;
|
|
27
|
-
expanded = expanded.replace(PATTERNS.HASHTAG, (match, name) => {
|
|
27
|
+
expanded = expanded.replace(PATTERNS.HASHTAG, (match, name, offset, input) => {
|
|
28
|
+
if (name.toLowerCase() === "skill" && input[offset + match.length] === "(") {
|
|
29
|
+
return match;
|
|
30
|
+
}
|
|
28
31
|
const snippet = registry.get(name.toLowerCase());
|
|
29
32
|
if (snippet === undefined) {
|
|
30
33
|
return match;
|