@ycodium-ai/plugin-api 0.2.3238 → 0.2.3244

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
@@ -56,7 +56,7 @@ import { definePlugin } from "@ycodium-ai/plugin-api";
56
56
 
57
57
  export default definePlugin({
58
58
  id: "my-plugin",
59
- apiVersion: 25,
59
+ apiVersion: 27,
60
60
  activate: (ctx) => {
61
61
  ctx.log.info("hello");
62
62
 
@@ -247,19 +247,27 @@ shows up there without anyone registering it.
247
247
 
248
248
  ## THERE WILL BE COMPATIBILITY-BREAKING CHANGES
249
249
 
250
- The definition's `apiVersion` is a closed window: the host loads 25, and refuses every other
250
+ The definition's `apiVersion` is a closed window: the host loads 27, and refuses every other
251
251
  value. Declare the version your plugin targets as a literal; do not read the host's
252
- `PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 25. Plugins
252
+ `PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 27. Plugins
253
253
  targeting an older API are refused before activation; the message names the version the plugin
254
254
  declared and the one this Ycodium loads, and the plugin card offers an update. A plugin that
255
- declares a version newer than 25 is refused until Ycodium itself is updated, with no update button.
256
-
257
- API 24 adds the value `"allowExplicitBreakaway"` to `PluginProcessSpawnInput.jobPolicy` (in the
258
- `ctx.process` spawn input, `@ycodium-ai/plugin-api/process-socket`). Windows only: the process still
259
- runs inside the host's Job, but a child that explicitly requests breakaway may leave it; other
260
- children are still collected when the host stops. Meant for a hub that has to leave one program
261
- (such as an emulator) running; the first-party devices plugin uses it. `"strict"` stays the default.
262
- No other public type changes.
255
+ declares a version newer than 27 is refused until Ycodium itself is updated, with no update button.
256
+
257
+ API 27 adds optional fields to the output of `ctx.skills.list`. Each skill may carry `origin`,
258
+ its source layer: a wiki page with its page id and revision, a repository with its root index
259
+ and root folder name, settings, builtin, or a plugin with its entryId. The result may carry
260
+ `shadowed`: skills hidden by a higher-priority skill of the same name, each with its own origin
261
+ and the layer that won. `repoReadByCli` is set true when this CLI reads the
262
+ repository's skills itself, so the host does not list that layer.
263
+ Older machines omit these fields. No other public type changes.
264
+
265
+ API 26 adds an optional `memoryInjection` boolean to the output of `ctx.projects.toolkits.get`;
266
+ older machines omit it. It adds `ctx.projects.memoryInjection.set`, but only a person or the local
267
+ CLI may set it: every plugin call is refused, and there is no `invocation.asPerson` route. The
268
+ executor card's `capabilities` gains an optional `discoversRepoSkills`, set true when the CLI
269
+ discovers the repository's `.agents/skills` itself, so the host does not hand those skills over
270
+ again; absence means false. No other public type changes.
263
271
 
264
272
  API 25 adds the optional primitive `PluginIcon` to the components lent by the plugin UI host. Its
265
273
  props type, `PluginIconProps`, is exported from `@ycodium-ai/plugin-api/ui` and has the shape
@@ -268,6 +276,13 @@ decorative, scales with the font size, and renders nothing for unknown names. Th
268
276
  plugin uses it for platform icons in bot card headers in chat bridge settings. No other public
269
277
  type changes.
270
278
 
279
+ API 24 adds the value `"allowExplicitBreakaway"` to `PluginProcessSpawnInput.jobPolicy` (in the
280
+ `ctx.process` spawn input, `@ycodium-ai/plugin-api/process-socket`). Windows only: the process still
281
+ runs inside the host's Job, but a child that explicitly requests breakaway may leave it; other
282
+ children are still collected when the host stops. Meant for a hub that has to leave one program
283
+ (such as an emulator) running; the first-party devices plugin uses it. `"strict"` stays the default.
284
+ No other public type changes.
285
+
271
286
  API 23 adds two optional fields to each entry of `turnIntents` in the outputs of
272
287
  `ctx.threads.history` and `ctx.threads.execution.get`. `action` is
273
288
  `{ kind: "steer" | "interrupt", turnId, commandId, source?: "automatic" } | null` — what the
@@ -422,7 +437,7 @@ An empty page with a cursor still continues. All failures propagate unchanged, i
422
437
  `ThreadNotFoundError` when the thread is missing; use `isThreadNotFound(error)` to identify it.
423
438
  `ctx.communication.inbox.read` is gone; that port always rejected a plugin, because only the agent
424
439
  in the thread has its own inbox. Plugins targeting these earlier versions are refused on the current host;
425
- the minimum version is 25.
440
+ the minimum version is 27.
426
441
 
427
442
  API 8 changed what the UI gets for a communication record. `ConversationCommunicationRecord`
428
443
  (from the conversation host's `useCommunicationRecord`) and `CommunicationViewExchange` carry `bodyState`, and their