@ycodium-ai/plugin-api 0.2.3250 → 0.2.3254

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: 28,
59
+ apiVersion: 30,
60
60
  activate: (ctx) => {
61
61
  ctx.log.info("hello");
62
62
 
@@ -247,12 +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 28, and refuses every other
250
+ The definition's `apiVersion` is a closed window: the host loads 30, 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 28. Plugins
252
+ `PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 30. 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 28 is refused until Ycodium itself is updated, with no update button.
255
+ declares a version newer than 30 is refused until Ycodium itself is updated, with no update button.
256
+
257
+ API 30 makes `projectCwd` optional in `bootstrap.prepareWorktree` of `ctx.threads.turns.start`:
258
+ a plugin may ask for a worktree on the first turn of a thread it opened directly, without naming a
259
+ folder, and the host resolves the thread's own start folder. The plugin must declare the
260
+ `thread.worktree.prepare` command in `commands.dispatch`; `createThread`, `runSetupScript` and
261
+ `projectCwd` stay unavailable to plugins, and the turn fails instead of falling back when no worktree can be
262
+ made. Each entry of `ctx.memory.experiences.list` and `get` gains an optional `supersededBy` (ids
263
+ of the experiences that replace it). Older machines omit these. No other public type changes.
264
+
265
+ API 29 adds an optional `notice` to `ExecutorProbeResult`: `{ messageKey, params? }`, where
266
+ `messageKey` is a key in the executor plugin's own locale catalog (the same catalog as its card
267
+ form's `titleKey`) and `params` are string values. The host shows it only when the instance is
268
+ enabled and the probe says `ready`, passes it on unchanged as the provider's optional
269
+ `probeNotice`, and never interprets the key. Provider entries read through the data ports gain the
270
+ same optional `probeNotice`. Older machines omit it. No other public type changes.
256
271
 
257
272
  API 28 adds `ctx.threads.artifacts.deliver` (hand a file to the user; the file is copied into the
258
273
  thread's attachments; a plugin may deliver only into a thread it opened directly, and with
@@ -457,7 +472,7 @@ An empty page with a cursor still continues. All failures propagate unchanged, i
457
472
  `ThreadNotFoundError` when the thread is missing; use `isThreadNotFound(error)` to identify it.
458
473
  `ctx.communication.inbox.read` is gone; that port always rejected a plugin, because only the agent
459
474
  in the thread has its own inbox. Plugins targeting these earlier versions are refused on the current host;
460
- the minimum version is 28.
475
+ the minimum version is 30.
461
476
 
462
477
  API 8 changed what the UI gets for a communication record. `ConversationCommunicationRecord`
463
478
  (from the conversation host's `useCommunicationRecord`) and `CommunicationViewExchange` carry `bodyState`, and their
@@ -480,6 +480,7 @@ type Objects_79 = {
480
480
  readonly "principalId": string;
481
481
  };
482
482
  type Arrays_15 = ReadonlyArray<string>;
483
+ type Arrays_16 = ReadonlyArray<string>;
483
484
  type Objects_80 = {
484
485
  readonly "searched": number;
485
486
  readonly "read": number;
@@ -522,8 +523,8 @@ type Objects_90 = {
522
523
  readonly "group": "backlog" | "unstarted" | "started" | "completed" | "cancelled";
523
524
  readonly "name": string;
524
525
  };
525
- type Arrays_18 = ReadonlyArray<string>;
526
526
  type Arrays_19 = ReadonlyArray<string>;
527
+ type Arrays_20 = ReadonlyArray<string>;
527
528
  type Objects_91 = {
528
529
  readonly "total": number;
529
530
  readonly "completed": number;
@@ -922,7 +923,7 @@ type Objects_70 = {
922
923
  readonly "redeemable"?: true;
923
924
  readonly "redeeming"?: true;
924
925
  };
925
- type Arrays_16 = ReadonlyArray<Objects_88>;
926
+ type Arrays_17 = ReadonlyArray<Objects_88>;
926
927
  type Objects_89 = {
927
928
  readonly "changed": boolean;
928
929
  readonly "release": number;
@@ -1141,7 +1142,7 @@ type Objects_85 = {
1141
1142
  };
1142
1143
  type Objects_87 = {
1143
1144
  readonly "release": number;
1144
- readonly "pages": Arrays_16;
1145
+ readonly "pages": Arrays_17;
1145
1146
  readonly "itemCount": number;
1146
1147
  readonly "itemHighWater": number;
1147
1148
  readonly "requiresAck": boolean;
@@ -1150,7 +1151,7 @@ type Objects_87 = {
1150
1151
  readonly "publishedBy": Union_41;
1151
1152
  readonly "publishedAt": string;
1152
1153
  };
1153
- type Arrays_17 = ReadonlyArray<Union_44>;
1154
+ type Arrays_18 = ReadonlyArray<Union_44>;
1154
1155
  type Objects_92 = {
1155
1156
  readonly "commentId": string;
1156
1157
  readonly "workItemId": string;
@@ -2598,6 +2599,12 @@ export type MachineSettingsProvidersGetOutput = {
2598
2599
  readonly "checkedAt": string | null;
2599
2600
  readonly "message": string | null;
2600
2601
  };
2602
+ readonly "probeNotice"?: {
2603
+ readonly "messageKey": string;
2604
+ readonly "params"?: {
2605
+ readonly [x: string]: string;
2606
+ };
2607
+ };
2601
2608
  readonly "installCommand"?: string;
2602
2609
  readonly "installUrl"?: string;
2603
2610
  readonly "signIn"?: ReadonlyArray<{
@@ -3626,6 +3633,7 @@ export type MemoryExperiencesListOutput = {
3626
3633
  readonly "createdAt": string;
3627
3634
  readonly "updatedAt": string;
3628
3635
  readonly "supersedes": Arrays_15;
3636
+ readonly "supersededBy"?: Arrays_16;
3629
3637
  readonly "bodyState": "present" | "erased" | "unavailable";
3630
3638
  readonly "usage"?: Objects_80;
3631
3639
  readonly "excerpt": string | null;
@@ -3648,6 +3656,7 @@ export type MemoryExperiencesGetOutput = {
3648
3656
  readonly "createdAt": string;
3649
3657
  readonly "updatedAt": string;
3650
3658
  readonly "supersedes": Arrays_15;
3659
+ readonly "supersededBy"?: Arrays_16;
3651
3660
  readonly "bodyState": "present" | "erased" | "unavailable";
3652
3661
  readonly "usage"?: Objects_80;
3653
3662
  readonly "body": string | null;
@@ -3935,7 +3944,7 @@ export type MemoryHandbookReleasesGetInput = {
3935
3944
  };
3936
3945
  export type MemoryHandbookReleasesGetOutput = {
3937
3946
  readonly "release": number;
3938
- readonly "pages": Arrays_16;
3947
+ readonly "pages": Arrays_17;
3939
3948
  readonly "itemCount": number;
3940
3949
  readonly "itemHighWater": number;
3941
3950
  readonly "requiresAck": boolean;
@@ -4042,8 +4051,8 @@ export type WorkItemsListOutput = {
4042
4051
  readonly "bodyState": "present" | "erased" | "unavailable";
4043
4052
  readonly "state": Objects_90;
4044
4053
  readonly "priority": "urgent" | "high" | "medium" | "low" | "none";
4045
- readonly "assignees": Arrays_17;
4046
- readonly "labelIds": Arrays_18;
4054
+ readonly "assignees": Arrays_18;
4055
+ readonly "labelIds": Arrays_19;
4047
4056
  readonly "parentId": string | null;
4048
4057
  readonly "startDate": string | null;
4049
4058
  readonly "targetDate": string | null;
@@ -4052,7 +4061,7 @@ export type WorkItemsListOutput = {
4052
4061
  readonly "archivedAt": string | null;
4053
4062
  readonly "version": number;
4054
4063
  readonly "revision": number;
4055
- readonly "blockedBy": Arrays_19;
4064
+ readonly "blockedBy": Arrays_20;
4056
4065
  readonly "blockedByTotal": number;
4057
4066
  readonly "childCounts": Objects_91;
4058
4067
  readonly "createdBy": Union_41;
@@ -4084,8 +4093,8 @@ export type WorkItemsGetOutput = {
4084
4093
  readonly "bodyState": "present" | "erased" | "unavailable";
4085
4094
  readonly "state": Objects_90;
4086
4095
  readonly "priority": "urgent" | "high" | "medium" | "low" | "none";
4087
- readonly "assignees": Arrays_17;
4088
- readonly "labelIds": Arrays_18;
4096
+ readonly "assignees": Arrays_18;
4097
+ readonly "labelIds": Arrays_19;
4089
4098
  readonly "parentId": string | null;
4090
4099
  readonly "startDate": string | null;
4091
4100
  readonly "targetDate": string | null;
@@ -4094,7 +4103,7 @@ export type WorkItemsGetOutput = {
4094
4103
  readonly "archivedAt": string | null;
4095
4104
  readonly "version": number;
4096
4105
  readonly "revision": number;
4097
- readonly "blockedBy": Arrays_19;
4106
+ readonly "blockedBy": Arrays_20;
4098
4107
  readonly "blockedByTotal": number;
4099
4108
  readonly "childCounts": Objects_91;
4100
4109
  readonly "createdBy": Union_41;
@@ -4673,7 +4682,7 @@ export type ThreadsTurnsStartInput = {
4673
4682
  readonly "createdAt": string;
4674
4683
  };
4675
4684
  readonly "prepareWorktree"?: {
4676
- readonly "projectCwd": string;
4685
+ readonly "projectCwd"?: string;
4677
4686
  readonly "baseBranch": string;
4678
4687
  readonly "branch"?: string;
4679
4688
  readonly "startFromOrigin"?: boolean;