@ycodium-ai/plugin-api 0.2.3252 → 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: 29,
59
+ apiVersion: 30,
60
60
  activate: (ctx) => {
61
61
  ctx.log.info("hello");
62
62
 
@@ -247,12 +247,20 @@ 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 29, 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 29. 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 29 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.
256
264
 
257
265
  API 29 adds an optional `notice` to `ExecutorProbeResult`: `{ messageKey, params? }`, where
258
266
  `messageKey` is a key in the executor plugin's own locale catalog (the same catalog as its card
@@ -464,7 +472,7 @@ An empty page with a cursor still continues. All failures propagate unchanged, i
464
472
  `ThreadNotFoundError` when the thread is missing; use `isThreadNotFound(error)` to identify it.
465
473
  `ctx.communication.inbox.read` is gone; that port always rejected a plugin, because only the agent
466
474
  in the thread has its own inbox. Plugins targeting these earlier versions are refused on the current host;
467
- the minimum version is 29.
475
+ the minimum version is 30.
468
476
 
469
477
  API 8 changed what the UI gets for a communication record. `ConversationCommunicationRecord`
470
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;
@@ -3632,6 +3633,7 @@ export type MemoryExperiencesListOutput = {
3632
3633
  readonly "createdAt": string;
3633
3634
  readonly "updatedAt": string;
3634
3635
  readonly "supersedes": Arrays_15;
3636
+ readonly "supersededBy"?: Arrays_16;
3635
3637
  readonly "bodyState": "present" | "erased" | "unavailable";
3636
3638
  readonly "usage"?: Objects_80;
3637
3639
  readonly "excerpt": string | null;
@@ -3654,6 +3656,7 @@ export type MemoryExperiencesGetOutput = {
3654
3656
  readonly "createdAt": string;
3655
3657
  readonly "updatedAt": string;
3656
3658
  readonly "supersedes": Arrays_15;
3659
+ readonly "supersededBy"?: Arrays_16;
3657
3660
  readonly "bodyState": "present" | "erased" | "unavailable";
3658
3661
  readonly "usage"?: Objects_80;
3659
3662
  readonly "body": string | null;
@@ -3941,7 +3944,7 @@ export type MemoryHandbookReleasesGetInput = {
3941
3944
  };
3942
3945
  export type MemoryHandbookReleasesGetOutput = {
3943
3946
  readonly "release": number;
3944
- readonly "pages": Arrays_16;
3947
+ readonly "pages": Arrays_17;
3945
3948
  readonly "itemCount": number;
3946
3949
  readonly "itemHighWater": number;
3947
3950
  readonly "requiresAck": boolean;
@@ -4048,8 +4051,8 @@ export type WorkItemsListOutput = {
4048
4051
  readonly "bodyState": "present" | "erased" | "unavailable";
4049
4052
  readonly "state": Objects_90;
4050
4053
  readonly "priority": "urgent" | "high" | "medium" | "low" | "none";
4051
- readonly "assignees": Arrays_17;
4052
- readonly "labelIds": Arrays_18;
4054
+ readonly "assignees": Arrays_18;
4055
+ readonly "labelIds": Arrays_19;
4053
4056
  readonly "parentId": string | null;
4054
4057
  readonly "startDate": string | null;
4055
4058
  readonly "targetDate": string | null;
@@ -4058,7 +4061,7 @@ export type WorkItemsListOutput = {
4058
4061
  readonly "archivedAt": string | null;
4059
4062
  readonly "version": number;
4060
4063
  readonly "revision": number;
4061
- readonly "blockedBy": Arrays_19;
4064
+ readonly "blockedBy": Arrays_20;
4062
4065
  readonly "blockedByTotal": number;
4063
4066
  readonly "childCounts": Objects_91;
4064
4067
  readonly "createdBy": Union_41;
@@ -4090,8 +4093,8 @@ export type WorkItemsGetOutput = {
4090
4093
  readonly "bodyState": "present" | "erased" | "unavailable";
4091
4094
  readonly "state": Objects_90;
4092
4095
  readonly "priority": "urgent" | "high" | "medium" | "low" | "none";
4093
- readonly "assignees": Arrays_17;
4094
- readonly "labelIds": Arrays_18;
4096
+ readonly "assignees": Arrays_18;
4097
+ readonly "labelIds": Arrays_19;
4095
4098
  readonly "parentId": string | null;
4096
4099
  readonly "startDate": string | null;
4097
4100
  readonly "targetDate": string | null;
@@ -4100,7 +4103,7 @@ export type WorkItemsGetOutput = {
4100
4103
  readonly "archivedAt": string | null;
4101
4104
  readonly "version": number;
4102
4105
  readonly "revision": number;
4103
- readonly "blockedBy": Arrays_19;
4106
+ readonly "blockedBy": Arrays_20;
4104
4107
  readonly "blockedByTotal": number;
4105
4108
  readonly "childCounts": Objects_91;
4106
4109
  readonly "createdBy": Union_41;
@@ -4679,7 +4682,7 @@ export type ThreadsTurnsStartInput = {
4679
4682
  readonly "createdAt": string;
4680
4683
  };
4681
4684
  readonly "prepareWorktree"?: {
4682
- readonly "projectCwd": string;
4685
+ readonly "projectCwd"?: string;
4683
4686
  readonly "baseBranch": string;
4684
4687
  readonly "branch"?: string;
4685
4688
  readonly "startFromOrigin"?: boolean;