@ycodium-ai/plugin-api 0.2.3236 → 0.2.3240
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 +18 -11
- package/dist/dataPorts.gen.d.ts +18 -0
- package/dist/dataPorts.gen.d.ts.map +1 -1
- package/dist/dataPorts.gen.js.map +1 -1
- package/dist/executorCapabilities.d.ts +2 -0
- package/dist/executorCapabilities.d.ts.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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:
|
|
59
|
+
apiVersion: 26,
|
|
60
60
|
activate: (ctx) => {
|
|
61
61
|
ctx.log.info("hello");
|
|
62
62
|
|
|
@@ -247,19 +247,19 @@ 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
|
|
250
|
+
The definition's `apiVersion` is a closed window: the host loads 26, 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
|
|
252
|
+
`PLUGIN_API_VERSION` to make the declaration automatically match. The current API is 26. 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
|
|
255
|
+
declares a version newer than 26 is refused until Ycodium itself is updated, with no update button.
|
|
256
256
|
|
|
257
|
-
API
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
No other public type changes.
|
|
257
|
+
API 26 adds an optional `memoryInjection` boolean to the output of `ctx.projects.toolkits.get`;
|
|
258
|
+
older machines omit it. It adds `ctx.projects.memoryInjection.set`, but only a person or the local
|
|
259
|
+
CLI may set it: every plugin call is refused, and there is no `invocation.asPerson` route. The
|
|
260
|
+
executor card's `capabilities` gains an optional `discoversRepoSkills`, set true when the CLI
|
|
261
|
+
discovers the repository's `.agents/skills` itself, so the host does not hand those skills over
|
|
262
|
+
again; absence means false. No other public type changes.
|
|
263
263
|
|
|
264
264
|
API 25 adds the optional primitive `PluginIcon` to the components lent by the plugin UI host. Its
|
|
265
265
|
props type, `PluginIconProps`, is exported from `@ycodium-ai/plugin-api/ui` and has the shape
|
|
@@ -268,6 +268,13 @@ decorative, scales with the font size, and renders nothing for unknown names. Th
|
|
|
268
268
|
plugin uses it for platform icons in bot card headers in chat bridge settings. No other public
|
|
269
269
|
type changes.
|
|
270
270
|
|
|
271
|
+
API 24 adds the value `"allowExplicitBreakaway"` to `PluginProcessSpawnInput.jobPolicy` (in the
|
|
272
|
+
`ctx.process` spawn input, `@ycodium-ai/plugin-api/process-socket`). Windows only: the process still
|
|
273
|
+
runs inside the host's Job, but a child that explicitly requests breakaway may leave it; other
|
|
274
|
+
children are still collected when the host stops. Meant for a hub that has to leave one program
|
|
275
|
+
(such as an emulator) running; the first-party devices plugin uses it. `"strict"` stays the default.
|
|
276
|
+
No other public type changes.
|
|
277
|
+
|
|
271
278
|
API 23 adds two optional fields to each entry of `turnIntents` in the outputs of
|
|
272
279
|
`ctx.threads.history` and `ctx.threads.execution.get`. `action` is
|
|
273
280
|
`{ kind: "steer" | "interrupt", turnId, commandId, source?: "automatic" } | null` — what the
|
|
@@ -422,7 +429,7 @@ An empty page with a cursor still continues. All failures propagate unchanged, i
|
|
|
422
429
|
`ThreadNotFoundError` when the thread is missing; use `isThreadNotFound(error)` to identify it.
|
|
423
430
|
`ctx.communication.inbox.read` is gone; that port always rejected a plugin, because only the agent
|
|
424
431
|
in the thread has its own inbox. Plugins targeting these earlier versions are refused on the current host;
|
|
425
|
-
the minimum version is
|
|
432
|
+
the minimum version is 26.
|
|
426
433
|
|
|
427
434
|
API 8 changed what the UI gets for a communication record. `ConversationCommunicationRecord`
|
|
428
435
|
(from the conversation host's `useCommunicationRecord`) and `CommunicationViewExchange` carry `bodyState`, and their
|
package/dist/dataPorts.gen.d.ts
CHANGED
|
@@ -2264,6 +2264,7 @@ export type ProjectsToolkitsGetInput = {
|
|
|
2264
2264
|
};
|
|
2265
2265
|
export type ProjectsToolkitsGetOutput = {
|
|
2266
2266
|
readonly "projectId": string;
|
|
2267
|
+
readonly "memoryInjection"?: boolean;
|
|
2267
2268
|
readonly "toolkits": ReadonlyArray<{
|
|
2268
2269
|
readonly "toolkit": "board" | "memory" | "messages";
|
|
2269
2270
|
readonly "enabled": boolean;
|
|
@@ -2983,6 +2984,7 @@ export type ProvidersExecutorsListOutput = {
|
|
|
2983
2984
|
readonly "turnSteering"?: boolean | undefined;
|
|
2984
2985
|
readonly "reportsSpawnedAgents"?: boolean | undefined;
|
|
2985
2986
|
readonly "handlesSkillInvocations"?: boolean | undefined;
|
|
2987
|
+
readonly "discoversRepoSkills"?: boolean | undefined;
|
|
2986
2988
|
readonly "confirmsToolTermination"?: boolean | undefined;
|
|
2987
2989
|
readonly "inlineImages"?: {
|
|
2988
2990
|
readonly "maxBytes": number;
|
|
@@ -4701,6 +4703,19 @@ export type ProjectsToolkitsSetOutput = {
|
|
|
4701
4703
|
};
|
|
4702
4704
|
readonly "replayed"?: boolean;
|
|
4703
4705
|
};
|
|
4706
|
+
export type ProjectsMemoryInjectionSetInput = {
|
|
4707
|
+
readonly "projectId": string;
|
|
4708
|
+
readonly "enabled": boolean;
|
|
4709
|
+
readonly "requestId"?: string;
|
|
4710
|
+
};
|
|
4711
|
+
export type ProjectsMemoryInjectionSetOutput = {
|
|
4712
|
+
readonly "sequence": number;
|
|
4713
|
+
readonly "result": {
|
|
4714
|
+
readonly "enabled": boolean;
|
|
4715
|
+
readonly "changed": boolean;
|
|
4716
|
+
};
|
|
4717
|
+
readonly "replayed"?: boolean;
|
|
4718
|
+
};
|
|
4704
4719
|
export type ProjectsCloneStartInput = {
|
|
4705
4720
|
readonly "destinationPath": string;
|
|
4706
4721
|
readonly "remoteUrl": string;
|
|
@@ -5623,6 +5638,9 @@ export interface PluginDataPorts {
|
|
|
5623
5638
|
readonly detach: (input: ProjectsFoldersDetachInput) => Promise<ProjectsFoldersDetachOutput>;
|
|
5624
5639
|
readonly attach: (input: ProjectsFoldersAttachInput) => Promise<ProjectsFoldersAttachOutput>;
|
|
5625
5640
|
};
|
|
5641
|
+
readonly memoryInjection: {
|
|
5642
|
+
readonly set: (input: ProjectsMemoryInjectionSetInput) => Promise<ProjectsMemoryInjectionSetOutput>;
|
|
5643
|
+
};
|
|
5626
5644
|
readonly clone: {
|
|
5627
5645
|
readonly start: (input: ProjectsCloneStartInput) => Promise<ProjectsCloneStartOutput>;
|
|
5628
5646
|
readonly retry: (input: ProjectsCloneRetryInput) => Promise<ProjectsCloneRetryOutput>;
|