@ycodium-ai/plugin-api 0.2.3851 → 0.2.3904

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
@@ -61,7 +61,7 @@ import { definePlugin } from "@ycodium-ai/plugin-api";
61
61
 
62
62
  export default definePlugin({
63
63
  id: "my-plugin",
64
- apiVersion: 63,
64
+ apiVersion: 66,
65
65
  activate: (ctx) => {
66
66
  ctx.log.info("hello");
67
67
 
@@ -290,12 +290,34 @@ sessions continue using the streaming process interface.
290
290
 
291
291
  ## THERE WILL BE COMPATIBILITY-BREAKING CHANGES
292
292
 
293
- The definition's `apiVersion` is a closed window: the host loads 63, and refuses every other
293
+ The definition's `apiVersion` is a closed window: the host loads 66, and refuses every other
294
294
  value. Declare the version your plugin targets as a literal; do not read the host's
295
- `PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 63. Plugins
295
+ `PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 66. Plugins
296
296
  targeting an older API are refused before activation; the message names the version the plugin
297
297
  declared and the one this Ycodium loads, and the plugin card offers an update. A plugin that
298
- declares a version newer than 63 is refused until Ycodium itself is updated, with no update button.
298
+ declares a version newer than 66 is refused until Ycodium itself is updated, with no update button.
299
+
300
+ API 66 adds an optional `reasonCode` to machine task failures. Every change is additive.
301
+
302
+ - `MachineTaskFailure.reasonCode` is one of `git-missing`, `project-folder-missing` or `git-probe-failed`
303
+ when the built-in `project.sync` could not inspect the project folder; clients translate a coded reason
304
+ and show the English `reason` otherwise.
305
+ - Every machine whose project folder is a Git checkout lists `project.sync` even without a tasks table; a
306
+ `sync` entry in `ycodium.json` replaces it. The action catalog allows 64 machine actions plus 33 project
307
+ entries.
308
+
309
+ API 65 lets a thread annotation mark a conversation's tab: set `placement: "tab"` and `icon: "monitor"` on a
310
+ `ui.threadAnnotations.command` row, and the tab gets the `tone` as a tinted background plus the icon, with `labelKey` as
311
+ its name. Such a row stays out of the text badges in the sidebar and conversation header. Every change is additive.
312
+
313
+ API 64 adds the command action for machine tasks. Every change is additive.
314
+
315
+ - `MachineActionKind` gains `command`. A machine that declares the capability lists the action
316
+ `runtime.command`; machines that do not declare it do not list it.
317
+ - `ctx.work.machineTasks.create` accepts `runtime.command` with `command`, optional `args`, optional `cwd`
318
+ (a path inside the project folder) and optional `timeoutSeconds`. The command runs with the executing
319
+ user's environment. A task for another machine still needs that machine's owner until same-account
320
+ trust (ADR-0041) lands.
299
321
 
300
322
  API 63 adds execution-machine consent for machine tasks. A local agent can run on its own machine
301
323
  without approval. Cross-machine tasks require the executing owner's explicit policy or a task-bound,
@@ -304,6 +326,10 @@ the executing machine; work.machineTasks.respond carries optional approval and r
304
326
  Project trust is optional machineTaskConfirmation.remoteProjectTrust, bound to both the home machine
305
327
  and project. Cross-machine same-account inference awaits ADR-0041.
306
328
 
329
+ Machine-task failures may include optional `reasonCode` (`git-missing`, `project-folder-missing` or
330
+ `git-probe-failed`) for localized UI text. `reason` remains the English fallback when no code is present;
331
+ raw Git diagnostics stay in the log comment.
332
+
307
333
  API 62 adds `ctx.schedules.list` and `ctx.schedules.runs.list`, reads of a project's schedules, and an optional `repeat`
308
334
  on scheduled wake-up reads. Plugins cannot create or change schedules.
309
335
 
@@ -1142,7 +1168,7 @@ An empty page with a cursor still continues. All failures propagate unchanged, i
1142
1168
  `ThreadNotFoundError` when the thread is missing; use `isThreadNotFound(error)` to identify it.
1143
1169
  `ctx.communication.inbox.read` is gone; that port always rejected a plugin, because only the agent
1144
1170
  in the thread has its own inbox. Plugins targeting these earlier versions are refused on the current host;
1145
- the minimum version is 63.
1171
+ the minimum version is 66.
1146
1172
 
1147
1173
  API 8 changed what the UI gets for a communication record. `ConversationCommunicationRecord`
1148
1174
  (from the conversation host's `useCommunicationRecord`) and `CommunicationViewExchange` carry `bodyState`, and their