opencode-snippets 2.1.5 → 2.2.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 CHANGED
@@ -202,23 +202,23 @@ You can also use JSON array style: `aliases: ["cp", "pick"]`
202
202
 
203
203
  ### Shell Command Substitution
204
204
 
205
- Snippets support the same ``!`command` `` syntax as [OpenCode slash commands](https://opencode.ai/docs/commands/#shell-output) for injecting live command output:
205
+ The plugin adds shell substitution to regular OpenCode prompts, not just snippet files. Use ``!`command` `` for output-only injection and ``!>`command` `` when you want the executed command shown too:
206
206
 
207
207
  ```markdown
208
208
  Current branch: !`git branch --show-current`
209
209
  Last commit: !`git log -1 --oneline`
210
210
  Working directory: !`pwd`
211
+ Debug listing: !>`ls`
211
212
  ```
212
213
 
213
- > **Note:** By default, snippets show both the command and its output (unlike OpenCode's slash commands which only show output):
214
- > ``!`ls` `` →
214
+ > **Default:** ``!`ls` `` injects only command output, matching OpenCode command templates.
215
+ >
216
+ > **Verbose form:** ``!>`ls` `` →
215
217
  > ```
216
218
  > $ ls
217
219
  > --> <output>
218
220
  > ```
219
- > This tells the LLM which command was actually run and makes failures visible (empty output would otherwise be indistinguishable from success).
220
- >
221
- > To match OpenCode's slash command behavior (output only), set `hideCommandInOutput: true` in your config.
221
+ > LLMs tend to trust the output more when they can see which terminal command just ran. The command gives the output context, which makes it more informative and easier to interpret.
222
222
 
223
223
  ### Recursive Includes
224
224
 
@@ -467,7 +467,7 @@ A default config file is created automatically on first run.
467
467
 
468
468
  ```jsonc
469
469
  {
470
- "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.1.5/schema/config.schema.json",
470
+ "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.2.0/schema/config.schema.json",
471
471
  "logging": {
472
472
  "debug": false // Enable debug logging (logs: ~/.config/opencode/logs/snippets/daily/)
473
473
  },
@@ -476,7 +476,6 @@ A default config file is created automatically on first run.
476
476
  "skillRendering": false, // Enable <skill>name</skill> tag expansion
477
477
  "skillLoading": false // Enable #skill(name) OpenCode-style loading
478
478
  },
479
- "hideCommandInOutput": false, // Show only output for shell commands (hides "$ cmd\n-->")
480
479
  "injectRecencyMessages": 5 // How many messages from the bottom to place injected context
481
480
  }
482
481
  ```
@@ -495,6 +494,7 @@ Logs are written to `~/.config/opencode/logs/snippets/daily/` when enabled.
495
494
  - Snippets are loaded once at plugin startup
496
495
  - Hashtag matching is **case-insensitive** (`#Hello` = `#hello`)
497
496
  - Unknown hashtags are left unchanged
497
+ - ``!`cmd` `` injects output only, while ``!>`cmd` `` injects `$ cmd` plus output
498
498
  - Failed shell commands preserve the original syntax in output
499
499
  - Frontmatter is stripped from expanded content
500
500
  - Only user messages are processed (not assistant responses)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA0DlD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAwe5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA4DlD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAgnB5B,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import { consumeSnippetReloadRequest } from "./src/reload-signal.js";
13
13
  import { executeShellCommands } from "./src/shell.js";
14
14
  import { SkillLoadManager } from "./src/skill-load-manager.js";
15
15
  import { loadSkills } from "./src/skill-loader.js";
16
- import { expandSkillLoads } from "./src/skill-loading.js";
16
+ import { buildSkillPayloadsFromVisibleText, expandSkillLoads } from "./src/skill-loading.js";
17
17
  import { expandSkillTags } from "./src/skill-renderer.js";
18
18
  const __filename = fileURLToPath(import.meta.url);
19
19
  const __dirname = dirname(__filename);
@@ -155,11 +155,9 @@ export const SnippetsPlugin = async (ctx) => {
155
155
  part.skillLoads = skillPayloads;
156
156
  skillTimeTotal += performance.now() - skillStart;
157
157
  }
158
- // 3. Execute shell commands: !`command`
158
+ // 3. Execute shell commands: !`command` or !>`command`
159
159
  const shellStart = performance.now();
160
- part.text = await executeShellCommands(part.text, ctx, {
161
- hideCommandInOutput: config.hideCommandInOutput,
162
- });
160
+ part.text = await executeShellCommands(part.text, ctx);
163
161
  shellTimeTotal += performance.now() - shellStart;
164
162
  processedParts += 1;
165
163
  }
@@ -178,6 +176,7 @@ export const SnippetsPlugin = async (ctx) => {
178
176
  return allInjected;
179
177
  };
180
178
  const isIgnoredMessage = (message) => message.parts.some((part) => part.ignored);
179
+ const isSkillContentMessage = (message) => message.parts.some((part) => part.type === "text" && (part.text || "").includes("<skill_content name="));
181
180
  const countConversationMessages = (messages) => messages.filter((message) => !isIgnoredMessage(message)).length;
182
181
  const insertInjectionsIntoMessages = (messages, injections) => {
183
182
  if (injections.length === 0)
@@ -215,17 +214,83 @@ export const SnippetsPlugin = async (ctx) => {
215
214
  return result;
216
215
  };
217
216
  const getPartSkillLoads = (parts) => parts.flatMap((part) => part.skillLoads || []);
218
- const getMessageSkillLoads = (sessionID, message) => {
217
+ const getMessageSkillLoads = async (sessionID, message) => {
218
+ if (isSkillContentMessage(message)) {
219
+ logger.debug("Skipping skill-content message during load resolution", {
220
+ sessionID,
221
+ messageID: message.info.id,
222
+ });
223
+ return [];
224
+ }
219
225
  const direct = getPartSkillLoads(message.parts);
220
- if (direct.length > 0)
226
+ if (direct.length > 0) {
227
+ logger.debug("Resolved skill loads from direct part metadata", {
228
+ sessionID,
229
+ messageID: message.info.id,
230
+ payloadCount: direct.length,
231
+ });
221
232
  return direct;
222
- if (!message.info.id)
233
+ }
234
+ if (message.info.id) {
235
+ const stored = skillLoadManager.get(sessionID, message.info.id);
236
+ if (stored.length > 0) {
237
+ logger.debug("Resolved skill loads from message-id registry", {
238
+ sessionID,
239
+ messageID: message.info.id,
240
+ payloadCount: stored.length,
241
+ });
242
+ return stored;
243
+ }
244
+ }
245
+ if (!config.experimental.skillLoading || skills.size === 0)
223
246
  return [];
224
- return skillLoadManager.get(sessionID, message.info.id);
247
+ const text = message.parts
248
+ .filter((part) => part.type === "text")
249
+ .map((part) => part.text || "")
250
+ .join("\n\n");
251
+ const recovered = await buildSkillPayloadsFromVisibleText(text, skills, snippets, {
252
+ expandSkillTagsInContent: config.experimental.skillRendering,
253
+ extractInject: config.experimental.injectBlocks,
254
+ });
255
+ if (recovered.length > 0) {
256
+ logger.debug("Recovered hidden skill payloads from visible markers", {
257
+ sessionID,
258
+ messageID: message.info.id,
259
+ payloadCount: recovered.length,
260
+ });
261
+ }
262
+ if (recovered.length === 0 && text.includes("↳ Loaded ")) {
263
+ logger.debug("Visible skill markers found but no hidden payloads recovered", {
264
+ sessionID,
265
+ messageID: message.info.id,
266
+ text,
267
+ });
268
+ }
269
+ return recovered;
225
270
  };
226
271
  const insertSkillLoadsIntoMessages = async (sessionID, messages) => {
227
272
  const pendingRaw = skillLoadManager.drainPending(sessionID);
228
273
  const result = [];
274
+ const resolvedLoads = await Promise.all(messages.map(async (message) => {
275
+ if (message.info.role !== "user" || isIgnoredMessage(message)) {
276
+ return [];
277
+ }
278
+ return getMessageSkillLoads(sessionID, message);
279
+ }));
280
+ logger.debug("Resolved skill loads for transform messages", {
281
+ sessionID,
282
+ messages: messages.map((message, i) => ({
283
+ messageID: message.info.id,
284
+ role: message.info.role,
285
+ synthetic: message.parts.some((part) => part.synthetic),
286
+ snippetsProcessed: message.parts.some((part) => part.snippetsProcessed),
287
+ text: message.parts
288
+ .filter((part) => part.type === "text")
289
+ .map((part) => (part.text || "").slice(0, 120))
290
+ .join(" | "),
291
+ resolvedLoadCount: (resolvedLoads[i] || []).length,
292
+ })),
293
+ });
229
294
  // Dedup requirement: if a queued payload string already exists as a direct
230
295
  // skillLoad on any user message (because chat.message attached it to part.skillLoads),
231
296
  // a synthetic for that message will be pushed via the `direct` path below.
@@ -234,10 +299,10 @@ export const SnippetsPlugin = async (ctx) => {
234
299
  // without messageID) ends up with the skill_content duplicated and stuck onto
235
300
  // an unrelated user message like beads-context.
236
301
  const directPayloadStrings = new Set();
237
- for (const message of messages) {
302
+ for (const [i, message] of messages.entries()) {
238
303
  if (message.info.role !== "user" || isIgnoredMessage(message))
239
304
  continue;
240
- for (const payload of getPartSkillLoads(message.parts)) {
305
+ for (const payload of resolvedLoads[i] || []) {
241
306
  directPayloadStrings.add(payload);
242
307
  }
243
308
  }
@@ -261,7 +326,7 @@ export const SnippetsPlugin = async (ctx) => {
261
326
  const message = messages[i];
262
327
  if (message.info.role !== "user" || isIgnoredMessage(message))
263
328
  continue;
264
- if (getMessageSkillLoads(sessionID, message).length > 0)
329
+ if ((resolvedLoads[i] || []).length > 0)
265
330
  continue;
266
331
  const next = pending.at(-1);
267
332
  if (!next)
@@ -280,7 +345,7 @@ export const SnippetsPlugin = async (ctx) => {
280
345
  const message = messages[i];
281
346
  if (message.info.role !== "user" || isIgnoredMessage(message))
282
347
  continue;
283
- if (getMessageSkillLoads(sessionID, message).length > 0)
348
+ if ((resolvedLoads[i] || []).length > 0)
284
349
  continue;
285
350
  if (fallbackByIndex.has(i))
286
351
  continue;
@@ -290,30 +355,41 @@ export const SnippetsPlugin = async (ctx) => {
290
355
  }
291
356
  }
292
357
  for (const [i, message] of messages.entries()) {
293
- result.push(message);
294
358
  if (message.info.role !== "user" || isIgnoredMessage(message)) {
359
+ result.push(message);
295
360
  continue;
296
361
  }
297
- const direct = getMessageSkillLoads(sessionID, message);
362
+ const direct = resolvedLoads[i] || [];
298
363
  const payloads = direct.length > 0 ? direct : fallbackByIndex.get(i) || [];
299
364
  if (payloads.length === 0) {
365
+ result.push(message);
366
+ continue;
367
+ }
368
+ skillLoadManager.rememberForSession(sessionID, payloads);
369
+ const hiddenText = payloads.join("\n\n");
370
+ if (message.parts.some((part) => part.type === "text" && part.synthetic && (part.text || "") === hiddenText)) {
371
+ logger.debug("Hidden skill payload already attached to user message", {
372
+ sessionID,
373
+ messageID: message.info.id,
374
+ hiddenLength: hiddenText.length,
375
+ });
376
+ result.push(message);
300
377
  continue;
301
378
  }
302
- // User requirement: try placing hidden skill context immediately after the
303
- // visible user message so OpenCode sees the visible marker first.
304
- // Hypothesis: OpenCode core may drop synthetic user messages with no
305
- // info.id during prompt assembly. Give the synthetic a derived id so it
306
- // survives downstream filtering.
307
- const syntheticID = message.info.id
308
- ? `${message.info.id}-skill-content`
309
- : `synthetic-skill-content-${i}`;
379
+ // Regression guard from the PTY repro:
380
+ // 1. skill content must stay hidden from the user,
381
+ // 2. skill content must be injected immediately below the visible user message and reach the LLM,
382
+ // 3. the agent must not call `skill` a second time for an already-loaded skill.
383
+ logger.debug("Appended hidden skill payload to user message", {
384
+ sessionID,
385
+ messageID: message.info.id,
386
+ partCountBefore: message.parts.length,
387
+ partCountAfter: message.parts.length + 1,
388
+ hiddenLength: hiddenText.length,
389
+ });
310
390
  result.push({
311
- info: {
312
- id: syntheticID,
313
- role: "user",
314
- sessionID: message.info.sessionID || sessionID,
315
- },
316
- parts: [{ type: "text", text: payloads.join("\n\n") }],
391
+ ...message,
392
+ parts: [{ type: "text", text: hiddenText, synthetic: true }, ...message.parts],
317
393
  });
318
394
  }
319
395
  return result;
@@ -344,6 +420,16 @@ export const SnippetsPlugin = async (ctx) => {
344
420
  if (output.parts.some((part) => part.ignored))
345
421
  return;
346
422
  const injected = await processTextParts(output.parts);
423
+ logger.debug("chat.message processed user parts", {
424
+ sessionID: input.sessionID,
425
+ messageID: input.messageID,
426
+ texts: output.parts
427
+ .filter((part) => part.type === "text")
428
+ .map((part) => ({
429
+ text: (part.text || "").slice(0, 200),
430
+ skillLoads: part.skillLoads?.length || 0,
431
+ })),
432
+ });
347
433
  output.parts.forEach((part) => {
348
434
  if (part.type === "text") {
349
435
  part.snippetsProcessed = true;
@@ -383,6 +469,8 @@ export const SnippetsPlugin = async (ctx) => {
383
469
  continue;
384
470
  if (message.parts.some((part) => part.ignored))
385
471
  continue;
472
+ if (message.parts.some((part) => part.synthetic))
473
+ continue;
386
474
  const injected = await processTextParts(message.parts);
387
475
  if (injected.length > 0 && sessionID) {
388
476
  const newOnes = injectionManager.registerAndGetNew(sessionID, injected);
@@ -438,6 +526,31 @@ export const SnippetsPlugin = async (ctx) => {
438
526
  }
439
527
  }
440
528
  },
529
+ "experimental.chat.system.transform": async (input, output) => {
530
+ if (!config.experimental.skillLoading)
531
+ return;
532
+ if (!input.sessionID)
533
+ return;
534
+ const payloads = skillLoadManager.getSessionPayloads(input.sessionID);
535
+ if (payloads.length === 0)
536
+ return;
537
+ const hiddenText = payloads.join("\n\n");
538
+ if (output.system.includes(hiddenText)) {
539
+ logger.debug("Hidden skill payloads already present in system prompt", {
540
+ sessionID: input.sessionID,
541
+ payloadCount: payloads.length,
542
+ hiddenLength: hiddenText.length,
543
+ });
544
+ return;
545
+ }
546
+ output.system.push(hiddenText);
547
+ logger.debug("Mirrored hidden skill payloads into system prompt", {
548
+ sessionID: input.sessionID,
549
+ payloadCount: payloads.length,
550
+ hiddenLength: hiddenText.length,
551
+ systemEntryCount: output.system.length,
552
+ });
553
+ },
441
554
  // Process skill tool output to expand snippets and skill tags in skill content
442
555
  "tool.execute.after": async (input, output) => {
443
556
  if (input.tool !== "skill")
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,6 @@ export interface SnippetsConfig {
28
28
  logging: LoggingConfig;
29
29
  /** Experimental features */
30
30
  experimental: ExperimentalConfig;
31
- /** Hide shell command in output, showing only the result */
32
- hideCommandInOutput: boolean;
33
31
  /** How many messages from the bottom of the conversation to place injected context */
34
32
  injectRecencyMessages: number;
35
33
  }
@@ -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,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"}
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,sFAAsF;IACtF,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAiID;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAgC9D;AA6BD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -15,7 +15,6 @@ const DEFAULT_CONFIG = {
15
15
  skillLoading: false,
16
16
  injectBlocks: false,
17
17
  },
18
- hideCommandInOutput: false,
19
18
  injectRecencyMessages: 5,
20
19
  };
21
20
  /**
@@ -23,7 +22,7 @@ const DEFAULT_CONFIG = {
23
22
  */
24
23
  const DEFAULT_CONFIG_CONTENT = `{
25
24
  // JSON Schema for editor autocompletion
26
- "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.1.5/schema/config.schema.json",
25
+ "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.2.0/schema/config.schema.json",
27
26
 
28
27
  // Logging settings
29
28
  "logging": {
@@ -50,13 +49,6 @@ const DEFAULT_CONFIG_CONTENT = `{
50
49
  "skillLoading": false
51
50
  },
52
51
 
53
- // Hide shell command in snippet output
54
- // When false (default), shell commands show as "$ command\\n--> output"
55
- // When true, only the output is shown (matching OpenCode's slash command behavior)
56
- // Values: true, false, "enabled", "disabled"
57
- // Default: false
58
- "hideCommandInOutput": false,
59
-
60
52
  // How many messages from the bottom of the conversation to place injected context
61
53
  // Higher = injection feels "older" to the model, lower = closer to recent context
62
54
  // Default: 5
@@ -156,7 +148,6 @@ export function loadConfig(projectDir) {
156
148
  loggingDebug: config.logging.debug,
157
149
  experimentalSkillRendering: config.experimental.skillRendering,
158
150
  experimentalSkillLoading: config.experimental.skillLoading,
159
- hideCommandInOutput: config.hideCommandInOutput,
160
151
  injectRecencyMessages: config.injectRecencyMessages,
161
152
  });
162
153
  return config;
@@ -169,7 +160,6 @@ function mergeConfig(base, raw) {
169
160
  const skillRenderingValue = normalizeBooleanSetting(raw.experimental?.skillRendering);
170
161
  const skillLoadingValue = normalizeBooleanSetting(raw.experimental?.skillLoading);
171
162
  const injectBlocksValue = normalizeBooleanSetting(raw.experimental?.injectBlocks);
172
- const hideCommandValue = normalizeBooleanSetting(raw.hideCommandInOutput);
173
163
  const injectRecencyValue = normalizePositiveInteger(raw.injectRecencyMessages);
174
164
  return {
175
165
  logging: {
@@ -180,7 +170,6 @@ function mergeConfig(base, raw) {
180
170
  skillLoading: skillLoadingValue !== undefined ? skillLoadingValue : base.experimental.skillLoading,
181
171
  injectBlocks: injectBlocksValue !== undefined ? injectBlocksValue : base.experimental.injectBlocks,
182
172
  },
183
- hideCommandInOutput: hideCommandValue !== undefined ? hideCommandValue : base.hideCommandInOutput,
184
173
  injectRecencyMessages: injectRecencyValue !== undefined ? injectRecencyValue : base.injectRecencyMessages,
185
174
  };
186
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  export declare const PATTERNS: {
5
5
  /** Matches hashtags like #snippet-name */
6
6
  readonly HASHTAG: RegExp;
7
- /** Matches shell commands like !`command` */
7
+ /** Matches shell commands like !`command` or !>`command` */
8
8
  readonly SHELL_COMMAND: RegExp;
9
9
  /** Matches skill loads like #skill(name) or #skill("name") */
10
10
  readonly SKILL_LOAD: RegExp;
@@ -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,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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,0CAA0C;;IAG1C,4DAA4D;;IAG5D,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"}
@@ -6,8 +6,8 @@ import { join } from "node:path";
6
6
  export const PATTERNS = {
7
7
  /** Matches hashtags like #snippet-name */
8
8
  HASHTAG: /#([a-z0-9\-_]+)/gi,
9
- /** Matches shell commands like !`command` */
10
- SHELL_COMMAND: /!`([^`]+)`/g,
9
+ /** Matches shell commands like !`command` or !>`command` */
10
+ SHELL_COMMAND: /(!>?)`([^`]+)`/g,
11
11
  /** Matches skill loads like #skill(name) or #skill("name") */
12
12
  SKILL_LOAD: /#skill\(\s*([^\r\n)]+?)\s*\)/gi,
13
13
  /**
@@ -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,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
+ {"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,4DAA4D;IAC5D,aAAa,EAAE,iBAAiB;IAEhC,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"}
@@ -5,6 +5,7 @@ export interface MessagePart {
5
5
  type: string;
6
6
  text?: string;
7
7
  ignored?: boolean;
8
+ synthetic?: boolean;
8
9
  snippetsProcessed?: boolean;
9
10
  skillLoads?: string[];
10
11
  }
@@ -36,6 +37,13 @@ export interface TransformInput {
36
37
  export interface TransformOutput {
37
38
  messages: TransformMessage[];
38
39
  }
40
+ export interface SystemTransformInput {
41
+ sessionID?: string;
42
+ model?: unknown;
43
+ }
44
+ export interface SystemTransformOutput {
45
+ system: string[];
46
+ }
39
47
  export interface SessionIdleEvent {
40
48
  sessionID: string;
41
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hook-types.d.ts","sourceRoot":"","sources":["../../src/hook-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"hook-types.d.ts","sourceRoot":"","sources":["../../src/hook-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1,9 +1,8 @@
1
1
  /**
2
- * Executes shell commands in text using !`command` syntax
2
+ * Executes shell commands in text using !`command` or !>`command` syntax
3
3
  *
4
4
  * @param text - The text containing shell commands to execute
5
5
  * @param ctx - The plugin context (with Bun shell)
6
- * @param options - Shell execution options
7
6
  * @returns The text with shell commands replaced by their output
8
7
  */
9
8
  export type ShellContext = {
@@ -20,9 +19,5 @@ export type ShellContext = {
20
19
  };
21
20
  };
22
21
  };
23
- export interface ShellOptions {
24
- /** Hide the command prefix in output, showing only the result */
25
- hideCommandInOutput?: boolean;
26
- }
27
- export declare function executeShellCommands(text: string, ctx: ShellContext, options?: ShellOptions): Promise<string>;
22
+ export declare function executeShellCommands(text: string, ctx: ShellContext): Promise<string>;
28
23
  //# sourceMappingURL=shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/shell.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,CACD,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,IAAI,EAAE,OAAO,EAAE,KACf;QACH,KAAK,EAAE,MAAM;YACX,OAAO,EAAE,MAAM,OAAO,CAAC;gBACrB,MAAM,EAAE;oBAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;iBAAE,CAAC;gBACnC,MAAM,EAAE;oBAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;iBAAE,CAAC;aACpC,CAAC,CAAC;SACJ,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,YAAY,EACjB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/shell.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,CACD,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,IAAI,EAAE,OAAO,EAAE,KACf;QACH,KAAK,EAAE,MAAM;YACX,OAAO,EAAE,MAAM,OAAO,CAAC;gBACrB,MAAM,EAAE;oBAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;iBAAE,CAAC;gBACnC,MAAM,EAAE;oBAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;iBAAE,CAAC;aACpC,CAAC,CAAC;SACJ,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC3F"}
package/dist/src/shell.js CHANGED
@@ -1,20 +1,21 @@
1
1
  import { PATTERNS } from "./constants.js";
2
2
  import { logger } from "./logger.js";
3
- export async function executeShellCommands(text, ctx, options = {}) {
3
+ export async function executeShellCommands(text, ctx) {
4
4
  let result = text;
5
- const hideCommand = options.hideCommandInOutput ?? false;
6
5
  // Reset regex state (global flag requires this)
7
6
  PATTERNS.SHELL_COMMAND.lastIndex = 0;
8
7
  // Find all shell command matches
9
8
  const matches = [...text.matchAll(PATTERNS.SHELL_COMMAND)];
10
9
  // Execute each command and replace in text
11
10
  for (const match of matches) {
12
- const cmd = match[1];
11
+ const showCommand = match[1] === "!>";
12
+ const cmd = match[2];
13
13
  const _placeholder = match[0];
14
14
  try {
15
15
  const output = await ctx.$ `${{ raw: cmd }}`.quiet().nothrow();
16
16
  const text = `${output.stdout.toString()}${output.stderr.toString()}`.trim();
17
- const replacement = hideCommand ? text : `$ ${cmd}\n--> ${text}`;
17
+ // `!>` preserves command provenance when the model should see what just ran.
18
+ const replacement = showCommand ? `$ ${cmd}\n--> ${text}` : text;
18
19
  result = result.replace(_placeholder, replacement);
19
20
  }
20
21
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA6BrC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,GAAiB,EACjB,UAAwB,EAAE;IAE1B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAAC;IAEzD,gDAAgD;IAChD,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAErC,iCAAiC;IACjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAE3D,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7E,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC;YACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,mDAAmD;YACnD,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBAC5C,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAuBrC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,GAAiB;IACxE,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,gDAAgD;IAChD,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAErC,iCAAiC;IACjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAE3D,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7E,6EAA6E;YAC7E,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,mDAAmD;YACnD,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBAC5C,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,9 +1,13 @@
1
1
  export declare class SkillLoadManager {
2
2
  private loads;
3
3
  private pending;
4
+ private sessionPayloads;
4
5
  register(sessionID: string, messageID: string, payloads: string[]): void;
5
6
  queue(sessionID: string, payloads: string[], messageID?: string): void;
6
7
  get(sessionID: string, messageID: string): string[];
8
+ rememberForSession(sessionID: string, payloads: string[]): void;
9
+ getSessionPayloads(sessionID: string): string[];
10
+ clearSession(sessionID: string): void;
7
11
  drainPending(sessionID: string): Array<{
8
12
  messageID?: string;
9
13
  payloads: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-load-manager.d.ts","sourceRoot":"","sources":["../../src/skill-load-manager.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,OAAO,CAAwE;IAEvF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKxE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAMtE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IASlF,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"skill-load-manager.d.ts","sourceRoot":"","sources":["../../src/skill-load-manager.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,OAAO,CAAwE;IACvF,OAAO,CAAC,eAAe,CAA+B;IAEtD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKxE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAMtE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAc/D,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAI/C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IASlF,OAAO,CAAC,kBAAkB;CAQ3B"}
@@ -1,6 +1,7 @@
1
1
  export class SkillLoadManager {
2
2
  loads = new Map();
3
3
  pending = new Map();
4
+ sessionPayloads = new Map();
4
5
  register(sessionID, messageID, payloads) {
5
6
  const session = this.getOrCreateSession(sessionID);
6
7
  session.set(messageID, [...payloads]);
@@ -13,6 +14,26 @@ export class SkillLoadManager {
13
14
  get(sessionID, messageID) {
14
15
  return [...(this.loads.get(sessionID)?.get(messageID) || [])];
15
16
  }
17
+ rememberForSession(sessionID, payloads) {
18
+ const existing = this.sessionPayloads.get(sessionID) || [];
19
+ const seen = new Set(existing);
20
+ const merged = [...existing];
21
+ for (const payload of payloads) {
22
+ if (seen.has(payload))
23
+ continue;
24
+ seen.add(payload);
25
+ merged.push(payload);
26
+ }
27
+ this.sessionPayloads.set(sessionID, merged);
28
+ }
29
+ getSessionPayloads(sessionID) {
30
+ return [...(this.sessionPayloads.get(sessionID) || [])];
31
+ }
32
+ clearSession(sessionID) {
33
+ this.loads.delete(sessionID);
34
+ this.pending.delete(sessionID);
35
+ this.sessionPayloads.delete(sessionID);
36
+ }
16
37
  drainPending(sessionID) {
17
38
  const queued = this.pending.get(sessionID) || [];
18
39
  this.pending.delete(sessionID);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-load-manager.js","sourceRoot":"","sources":["../../src/skill-load-manager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IACnB,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACjD,OAAO,GAAG,IAAI,GAAG,EAA6D,CAAC;IAEvF,QAAQ,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAkB;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAiB,EAAE,QAAkB,EAAE,SAAkB;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;SAC9B,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,kBAAkB,CAAC,SAAiB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"skill-load-manager.js","sourceRoot":"","sources":["../../src/skill-load-manager.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export type SkillRegistry = Map<string, SkillInfo>;
22
22
  */
23
23
  export interface LoadSkillsOptions {
24
24
  homeDir?: string;
25
+ bundledSkillDirs?: string[];
25
26
  }
26
27
  /**
27
28
  * Loads all skills from global and project directories
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skill-loader.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+ED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CAmBxB;AA2ED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAErF"}
1
+ {"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skill-loader.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAsFD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AA2ED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAErF"}
@@ -1,9 +1,12 @@
1
1
  import { readdir, stat } from "node:fs/promises";
2
2
  import { homedir } from "node:os";
3
3
  import { dirname, join, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
4
5
  import { importCjs } from "./cjs-interop.js";
5
6
  const matter = await importCjs("gray-matter");
6
7
  import { logger } from "./logger.js";
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
7
10
  /**
8
11
  * OpenCode skill directory patterns.
9
12
  *
@@ -43,6 +46,9 @@ function getProjectSkillDirs(projectDir) {
43
46
  join(projectDir, ".agents", "skills"),
44
47
  ];
45
48
  }
49
+ function getBundledSkillDirs() {
50
+ return [join(__dirname, "..", "..", "skill")];
51
+ }
46
52
  async function exists(path) {
47
53
  try {
48
54
  await stat(path);
@@ -82,6 +88,12 @@ async function getProjectSearchRoots(projectDir) {
82
88
  */
83
89
  export async function loadSkills(projectDir, options = {}) {
84
90
  const skills = new Map();
91
+ // Bundled plugin skills should participate in the same registry used by runtime
92
+ // expansion and TUI autocomplete. Load them first so user/global/project skills can
93
+ // still override shipped defaults with the same name.
94
+ for (const dir of options.bundledSkillDirs || getBundledSkillDirs()) {
95
+ await loadFromDirectory(dir, skills, "global");
96
+ }
85
97
  // Load from global directories first
86
98
  for (const dir of getGlobalSkillDirs(options.homeDir)) {
87
99
  await loadFromDirectory(dir, skills, "global");
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skill-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,GAAG,MAAM,SAAS,CAA+B,aAAa,CAAC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8BrC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE;IAC7C,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,OAAO;QACL,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE9B,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QAED,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAmB,EACnB,UAA6B,EAAE;IAE/B,MAAM,MAAM,GAAkB,IAAI,GAAG,EAAE,CAAC;IAExC,qCAAqC;IACrC,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,4FAA4F;IAC5F,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,MAAM,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,KAAK,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAW,EACX,QAAuB,EACvB,MAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEnC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,4BAA4B,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,SAAS,CACtB,OAAe,EACf,SAAiB,EACjB,MAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAA+C,CAAC;QAE3E,kEAAkE;QAClE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;QAE3C,OAAO;YACL,IAAI;YACJ,OAAO;YACP,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,MAAM;YACN,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAClC,SAAS;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,IAAY;IAC5D,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skill-loader.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,8 @@ export declare function expandSkillLoads(text: string, registry: SkillRegistry,
8
8
  expandSkillTagsInContent: boolean;
9
9
  extractInject: boolean;
10
10
  }): Promise<SkillLoadResult>;
11
+ export declare function buildSkillPayloadsFromVisibleText(text: string, registry: SkillRegistry, snippets: SnippetRegistry, options: {
12
+ expandSkillTagsInContent: boolean;
13
+ extractInject: boolean;
14
+ }): Promise<string[]>;
11
15
  //# sourceMappingURL=skill-loading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loading.d.ts","sourceRoot":"","sources":["../../src/skill-loading.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAUD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE;IACP,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,eAAe,CAAC,CAsC1B"}
1
+ {"version":3,"file":"skill-loading.d.ts","sourceRoot":"","sources":["../../src/skill-loading.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAUD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE;IACP,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,eAAe,CAAC,CAsC1B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE;IACP,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,MAAM,EAAE,CAAC,CAyCnB"}
@@ -2,7 +2,6 @@ import { readdir } from "node:fs/promises";
2
2
  import { dirname, resolve } from "node:path";
3
3
  import { pathToFileURL } from "node:url";
4
4
  import { PATTERNS } from "./constants.js";
5
- import { assembleMessage, expandHashtags } from "./expander.js";
6
5
  import { logger } from "./logger.js";
7
6
  import { getSkill } from "./skill-loader.js";
8
7
  import { expandSkillTags } from "./skill-renderer.js";
@@ -45,6 +44,36 @@ export async function expandSkillLoads(text, registry, snippets, options) {
45
44
  result += text.slice(lastIndex);
46
45
  return { text: result, payloads };
47
46
  }
47
+ export async function buildSkillPayloadsFromVisibleText(text, registry, snippets, options) {
48
+ if (!text.includes("↳ Loaded ")) {
49
+ return [];
50
+ }
51
+ const matches = [];
52
+ const skills = [...registry.values()]
53
+ .map((skill) => ({ skill, marker: visibleSkillLoad(skill) }))
54
+ .toSorted((a, b) => b.marker.length - a.marker.length);
55
+ for (const entry of skills) {
56
+ let from = 0;
57
+ while (from < text.length) {
58
+ const start = text.indexOf(entry.marker, from);
59
+ if (start === -1) {
60
+ break;
61
+ }
62
+ const end = start + entry.marker.length;
63
+ const overlaps = matches.some((match) => start < match.end && end > match.start);
64
+ if (!overlaps) {
65
+ matches.push({ start, end, skill: entry.skill, marker: entry.marker });
66
+ break;
67
+ }
68
+ from = start + 1;
69
+ }
70
+ }
71
+ if (matches.length === 0) {
72
+ return [];
73
+ }
74
+ matches.sort((a, b) => a.start - b.start);
75
+ return Promise.all(matches.map((match) => buildSkillPayload(match.skill, registry, snippets, match.marker, options)));
76
+ }
48
77
  function parseSkillName(input) {
49
78
  if (!input)
50
79
  return null;
@@ -58,11 +87,11 @@ function parseSkillName(input) {
58
87
  }
59
88
  return trimmed;
60
89
  }
61
- async function buildSkillPayload(skill, registry, snippets, marker, options) {
90
+ async function buildSkillPayload(skill, registry, _snippets, marker, options) {
62
91
  const dir = dirname(skill.filePath);
63
92
  const base = pathToFileURL(dir).href;
64
93
  const files = await listSkillFiles(dir, SKILL_FILE_LIMIT);
65
- const content = renderSkillContent(skill.content, registry, snippets, options);
94
+ const content = renderSkillContent(skill.content, registry, options);
66
95
  return [
67
96
  `<skill_content name="${skill.name}">`,
68
97
  // User requirement: repeat the exact visible marker in hidden context so the
@@ -83,15 +112,12 @@ async function buildSkillPayload(skill, registry, snippets, marker, options) {
83
112
  "</skill_content>",
84
113
  ].join("\n");
85
114
  }
86
- function renderSkillContent(content, registry, snippets, options) {
115
+ function renderSkillContent(content, registry, options) {
87
116
  let processed = content;
88
117
  if (options.expandSkillTagsInContent) {
89
118
  processed = expandSkillTags(processed, registry);
90
119
  }
91
- const expandOptions = {
92
- extractInject: options.extractInject,
93
- };
94
- return assembleMessage(expandHashtags(processed, snippets, new Map(), expandOptions));
120
+ return processed;
95
121
  }
96
122
  async function listSkillFiles(dir, limit) {
97
123
  const files = [];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loading.js","sourceRoot":"","sources":["../../src/skill-loading.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-loading.js","sourceRoot":"","sources":["../../src/skill-loading.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tui-search.d.ts","sourceRoot":"","sources":["../../src/tui-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AA+DD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAgBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAgB5E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAK5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CA0B9E"}
1
+ {"version":3,"file":"tui-search.d.ts","sourceRoot":"","sources":["../../src/tui-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AA6ED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAgBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAgB5E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CA0B9E"}
@@ -1,6 +1,19 @@
1
1
  function normalizeSearchText(input) {
2
2
  return input.toLowerCase().replace(/[^a-z0-9]/g, "");
3
3
  }
4
+ function isSubsequence(input, query) {
5
+ if (!query)
6
+ return true;
7
+ let i = 0;
8
+ for (const c of input) {
9
+ if (c !== query[i])
10
+ continue;
11
+ i += 1;
12
+ if (i === query.length)
13
+ return true;
14
+ }
15
+ return false;
16
+ }
4
17
  function scoreText(input, query) {
5
18
  const raw = input.toLowerCase();
6
19
  const needle = query.toLowerCase();
@@ -18,6 +31,8 @@ function scoreText(input, query) {
18
31
  return 4;
19
32
  if (compactNeedle && compact.includes(compactNeedle))
20
33
  return 5;
34
+ if (compactNeedle && isSubsequence(compact, compactNeedle))
35
+ return 6;
21
36
  return Number.POSITIVE_INFINITY;
22
37
  }
23
38
  function scoreSnippet(snippet, query) {
@@ -29,9 +44,9 @@ function scoreSnippet(snippet, query) {
29
44
  return score;
30
45
  const needle = query.toLowerCase();
31
46
  if (description.startsWith(needle))
32
- return 6;
33
- if (description.includes(needle))
34
47
  return 7;
48
+ if (description.includes(needle))
49
+ return 8;
35
50
  return Number.POSITIVE_INFINITY;
36
51
  }
37
52
  function sourceRank(item) {
@@ -49,9 +64,9 @@ function scoreSkill(skill, query) {
49
64
  return score;
50
65
  const needle = query.toLowerCase();
51
66
  if (description.startsWith(needle))
52
- return 6;
53
- if (description.includes(needle))
54
67
  return 7;
68
+ if (description.includes(needle))
69
+ return 8;
55
70
  return Number.POSITIVE_INFINITY;
56
71
  }
57
72
  export function filterSnippets(snippets, query) {
@@ -92,6 +107,9 @@ export function matchedAliases(snippet, query) {
92
107
  const needle = query.trim();
93
108
  if (!needle)
94
109
  return [];
110
+ const exact = snippet.aliases.filter((alias) => alias === needle);
111
+ if (exact.length > 0)
112
+ return exact;
95
113
  return snippet.aliases.filter((alias) => Number.isFinite(scoreText(alias, needle)));
96
114
  }
97
115
  export function snippetDescription(snippet) {
@@ -1 +1 @@
1
- {"version":3,"file":"tui-search.js","sourceRoot":"","sources":["../../src/tui-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-search.js","sourceRoot":"","sources":["../../src/tui-search.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-snippets",
3
- "version": "2.1.5",
3
+ "version": "2.2.0",
4
4
  "description": "Hashtag-based snippet expansion plugin for OpenCode - instant inline text shortcuts",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -39,7 +39,7 @@ Full config example with all options:
39
39
  ```jsonc
40
40
  {
41
41
  // JSON Schema for editor autocompletion
42
- "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.1.5/schema/config.schema.json",
42
+ "$schema": "https://raw.githubusercontent.com/JosXa/opencode-snippets/v2.2.0/schema/config.schema.json",
43
43
 
44
44
  // Logging settings
45
45
  "logging": {
@@ -62,9 +62,9 @@ Full config example with all options:
62
62
  "skillLoading": false
63
63
  },
64
64
 
65
- // Hide shell command in output, showing only the result
66
- // Default: false
67
- "hideCommandInOutput": false
65
+ // How many messages from bottom to place injected context
66
+ // Default: 5
67
+ "injectRecencyMessages": 5
68
68
  }
69
69
  ```
70
70
 
@@ -84,31 +84,58 @@ Frontmatter optional. Filename (minus .md) = primary hashtag.
84
84
 
85
85
  ## Features
86
86
 
87
+ The plugin adds shell substitution to regular OpenCode prompts, not just snippet files.
88
+
87
89
  - `#other` - include another snippet (recursive, max 15 depth)
88
- - `` !`cmd` `` - shell substitution, output injected
90
+ - `` !`cmd` `` - shell substitution, output only
91
+ - `` !>`cmd` `` - shell substitution, show command plus output
92
+
93
+ Use `!>` when the exact command matters. LLMs tend to trust the output more when they can see which terminal command just ran. The command gives the output context, which makes it more informative and easier to interpret.
89
94
 
90
95
  ### Prepend/Append Blocks
91
96
 
92
97
  Move content to message start/end instead of inline. Best for long reference material that breaks writing flow.
93
98
 
99
+ A snippet can include a `<prepend>` or `<append>` block and ordinary body text at the same time. Only the block content moves. Text outside the block still expands inline where `#snippet` was used. Use this to keep snippets flowing inside a sentence: a short visible body like `Jira`, `bead`, or `cherry-pick` stays in the user's prose, while heavy guidance is hidden in the block.
100
+
94
101
  ```md
95
102
  ---
96
103
  aliases: jira
97
104
  ---
98
- Jira MCP
99
105
  <prepend>
100
106
  ## Jira Field Mappings
101
107
 
102
108
  - customfield_16570 => Acceptance Criteria
103
109
  - customfield_11401 => Team
104
110
  </prepend>
111
+
112
+ Jira MCP
105
113
  ```
106
114
 
107
115
  Input: `Create bug in #jira about leak`
108
- Output: Prepended section at top + `Create bug in Jira MCP about leak`.
116
+ Output: The field mappings are prepended at the top, and the visible inline expansion becomes `Create bug in Jira MCP about leak`.
109
117
 
110
118
  Use `<append>` for reference material at end. Content inside blocks should use `##` headings.
111
119
 
120
+ #### Wrap block content in semantic XML tags
121
+
122
+ Inside a `<prepend>` or `<append>` block, wrap content in custom tags that label its role for the LLM:
123
+
124
+ - `<task>...</task>` - the next thing the agent should do
125
+ - `<user_reminder>...</user_reminder>` - persistent reminder of user intent
126
+ - `<guidance>...</guidance>`, `<info>...</info>` - context, rules, reference
127
+ - `<condition="...">...</condition>` - guidance that only applies in a specific case
128
+
129
+ Tags are not magic. They give the model a clear role label for the chunk so it does not blend into the rest of the message.
130
+
131
+ #### When to prepend vs append
132
+
133
+ Prepend puts the block at the very top of the message. The user's typed line lands last, which the LLM tends to follow more closely. Use prepend for **general context and guidance**, especially short blocks. Use it sparingly for many-paragraph blocks: a wall of text dumped on top of a one-word `#tag` is visually jarring for the user reading their own message.
134
+
135
+ Append puts the block at the bottom. The user's line stays at the top, less jarring. Adherence to the user line can soften slightly, but append is ideal when the block contains a `<task>` or instruction that should be the **next thing the agent does**.
136
+
137
+ Rule of thumb: short context => prepend; important next step => append; heavy reference docs => prepend with a tiny inline body so the user's sentence still flows.
138
+
112
139
  ### Inject Blocks (Experimental)
113
140
 
114
141
  Add persistent context that the LLM sees throughout the entire agentic loop, without cluttering the visible message.
@@ -184,6 +211,10 @@ Treat `#skill(...)` as hidden context injection, not inline expansion. User usua
184
211
 
185
212
  `#skill(...)` also works when produced by snippet expansion, not only when the user types it directly.
186
213
 
214
+ ## Escaped Hashtag References
215
+
216
+ When a user writes `#_snippet-name` with a leading underscore after `#`, they are referring to the snippet `#snippet-name` without triggering expansion. This is an escape convention for talking about a snippet in conversation, for example `navigate to #_myapps`. Always interpret `#_foo` as meaning `#foo`. Do not ask for clarification. Silently resolve the underscored form to the real snippet name.
217
+
187
218
  ## Commands
188
219
 
189
220
  - `/snippets add <name> [content]` - create global snippet