@ycodium-ai/plugin-api 0.2.3935 → 0.2.3976

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/dist/index.js CHANGED
@@ -13,243 +13,7 @@ export * from "./threads.js";
13
13
  export * from "./settings-card-shape.js";
14
14
  export * from "./teamView.js";
15
15
  export { parseRetryAfterMs } from "./usage.js";
16
- export const PLUGIN_API_VERSION = 69;
17
- /**
18
- * 宿主只装载版本 69;ConversationComposerApi.imageCompression 必须使用 prepareFileForAttachment,
19
- * 不能再调用 isHeicFile 或 prepareForAttachment;大小超限失败带 maxBytes,unreadable 不带。
20
- * 成功结果须按 kind 区分 image / file / file-fallback;失败提示须翻译 attachmentPreparationError 的 key 与插值。
21
- * plugins.installed.setEnabled 的 force 可选;只有 human / client 调用方能传 force: true;
22
- * MachineSettingsConfigGetOutput 加了可选 runtimeMaintenanceRoot;
23
- * threads.history / threads.execution.get 的 turnIntents 项加了可选 action 与 deliveredTurnId;
24
- * process-socket 的 jobPolicy 加了取值 allowExplicitBreakaway(只影响 Windows);
25
- * ui 借出的组件加了 PluginIcon(PluginIconProps,宿主白名单图标);
26
- * projects.toolkits.get 输出加了可选 memoryInjection(老机器缺席);
27
- * 新增 projects.memoryInjection.set,只有人或本机 CLI 能设,插件调用一律被拒(没有 asPerson 途径);
28
- * 执行器名片 capabilities 加了可选 discoversRepoSkills(缺席即 false);
29
- * skills.list 输出加了可选 origin(技能来源)、shadowed(被同名遮住的)、repoReadByCli;
30
- * threads.artifacts 交付与列表端口、会话壳交付计数、对话附件交付来源、经验 usage / order;
31
- * 轮次总结与改动读取、分叉钩子、ViewMode 去掉 map;
32
- * 执行器探测结果可选 notice(provider 的 probeNotice);
33
- * 插件起轮可请求建工作树(prepareWorktree.projectCwd 可选)、经验可选 supersededBy;
34
- * threads.time / usage.time、轮次 runSegments / waitingForYouStartedAt、会话 askRoute;
35
- * 执行器可选 readCliVersion / refreshModelCatalog 与模型目录状态;spawn.signal 及取消错误原样传播;
36
- * 子会话通知可选 resolution,供客户端翻译结论并保留理由或回答原文;
37
- * ui 桥可选 useThreadDisplayTitle;对话派生加了宿主实现的 workingClock;@会话引用可选 useMachineLabel;
38
- * executor 导出 EXECUTOR_RUNTIME_MODES 与 isLooserRuntimeMode;执行器会话输入可选 contextAfterCompaction;
39
- * 插件样式 ui.css 多了 --radius-composer;
40
- * 第一条插件数据流 threads.subscribeList(逐帧 emit,受 AbortSignal 与插件挂载寿命约束);
41
- * 39:invocation.asPerson 多了 members(成员的建、改、移除、恢复,作者是人);指派位多了 member 一支(WorkAssignee,
42
- * 只在指派位:建 / 改入参、读出的 assignees、assignee 筛选、work.assign 的 added、历史里指派的变化,提及与领取者不含);
43
- * work.start 守卫入参多了 assigneesAfter(提交之后的指派,必填);
44
- * 导出 MEMBER_NAME_MAX、MEMBER_TITLE_MAX、MEMBER_RESPONSIBILITY_MAX、MEMBER_INSTRUCTIONS_MAX_BYTES(成员字段上限,由契约生成);
45
- * 44:破坏性删除——项目记录(projects.get / list、threads.archived.list 里的项目)去掉 defaultThreadEnvMode,
46
- * projects.update 不再收它;machineSettings.get 去掉 defaultThreadEnvMode 与 newWorktreesStartFromOrigin,
47
- * machineSettings.update 的 patch 不再收这两项;机器能力去掉 worktreeSetupProgress。
48
- * 44(同一未发布窗口并入):人开的团队、通用会话工作区与进程名额——ThreadOrigin.requestedBy 多了 "person"(团队成员会话;
49
- * ThreadsCreateInput.origin 与读出的会话来历都可能带它,按 requestedBy 穷举的插件要补这一支)。插件起这种会话时,父会话必须是
50
- * 同项目某条未归档工作线上的会话,运行档不受「不得比父会话松」限制,否则被拒,理由 person-requires-team-thread;
51
- * NotPermittedReason 因此多了 person-requires-team-thread 与 person-only-ask(团队成员会话里的批准、回答、关掉异步提问、用它的
52
- * 计划起轮只认人,其余调用者含插件普通端口一律被拒;这类会话里要人处理的请求也不再交给父会话,一律直接问人)。
53
- * invocation.asPerson 多了 approvals.respond、threads.userInput.respond、threads.userInput.dismiss(commands.dispatch 里分别声明
54
- * thread.approval.respond、thread.user-input.respond、thread.user-input.dismiss),这是插件在界面里就地替人处理的途径。
55
- * 项目记录(projects.get / list、threads.archived.list 里的项目)多了可选 purpose("conversation" | "project",缺席按普通项目);
56
- * 新增 projects.conversation.ensure(commands.dispatch 里声明,返回 projectId / workspaceRoot / created,幂等,确保通用会话
57
- * 工作区存在);ProviderSettingsSection.genericFields 的 "collapsed" 成了历史开关(宿主一律把剩下的字段收进「高级选项」)。
58
- * 宿主不再给 agent 设默认进程上限:名片 maxConcurrentProcesses 省略 = 不限;providers.list 的 concurrency、
59
- * machine.settings.providers.get 的 maxProcesses、队列项的 waitingForCapacity 只在名片声明了上限的 agent 上出现,
60
- * ExecutorSpawnRefusedError 也只在声明了上限的实例上抛。
61
- * 69:threads 读出的消息多了可选 origin(取值同轮次意图的 origin);session 来源与 thread 通信参与者多了可选 turnId,
62
- * 是发送方当时在跑的那一轮;ConversationDeriveApi 加了 messageSpeaker,ConversationHostData 加了可选 useSentMessagesReader。都是新增。
63
- * 68:ADR-0041 同账号机器端口:projects.machines.policy.get / set(sameAccount 为 all | listed,带 allowedEnvironmentIds 与
64
- * excludedEnvironmentIds)、projects.machines.registration.resolve(确认或拒绝待主人处理的登记)、projects.machines.account.remove /
65
- * restore;projects.machines.list 的机器行多了可选 admittedBy(join-code | client-broker | account)与可选 accountMachines 目录;
66
- * 机器任务记录多了可选只读的 accountOriginEnvironmentId。都是新增。
67
- * 67:工具结果里的媒体归工具调用:工具调用详情多了可选 media(附件列表),工具数据里不再带字节;
68
- * 交付文件夹时附件来源多了可选 fileCount。都是新增。
69
- * 66:机器任务失败多了可选 reasonCode(git-missing | project-folder-missing | git-probe-failed),有码客户端翻译、无码显示
70
- * 英文 reason;Git 检出的机器都列出内置 project.sync(文件定义的 sync 优先),动作目录上限 64 + 33。都是新增。
71
- * 65:ui.threadAnnotations 的行多了可选 placement("tab")与 icon("monitor"):标在会话 tab 上,画 tone 的淡底加图标,
72
- * labelKey 是它的名字,不进侧栏和会话头的文字徽标。都是新增。
73
- * 64:机器任务多了「命令」动作。MachineActionKind 多了 command;声明了能力的机器列出 runtime.command,
74
- * work.machineTasks.create 接受它(command,可选 args、cwd(限项目文件夹内)、timeoutSeconds);命令以执行机器登录用户的
75
- * 环境运行,派给别的机器的任务在 ADR-0041 上线前仍要那台机器的主人确认;没声明的机器不列出。都是新增。
76
- * 63:机器任务的确认由执行机器核验。agent 只对自己所在的机器免确认;派给别的机器的任务由那台机器的主人确认,
77
- * 人才能调的 machineSettings.machineTasks.approve 签发绑定任务的一次性票据,work.machineTasks.respond 多了可选 approval 与
78
- * rememberProject,「以后不问」存在执行机器的可选 machineTaskConfirmation.remoteProjectTrust(绑定家机器与项目)。
79
- * 跨机器同账号推断留给 ADR-0041。都是新增。
80
- * 62:新端口 ctx.schedules.list(schedules.list)、ctx.schedules.runs.list(schedules.runs.list)读项目定时任务,写不开放给
81
- * 插件;定时唤醒的读多了可选 repeat。都是新增。
82
- * 61:客户端连着的机器在项目打开时后台自动接入,不依赖设置区块。projects.machines.list 的输出多了可选
83
- * removedEnvironmentIds(人移出的机器,自动接入跳过);projects.machines.joinCode.create 的输入多了可选
84
- * automaticEnvironmentId(后台经纪签的码绑定那台机器,不能解除人的移除决定)。都是新增。
85
- * 60:机器级读写进了登记表(提案 0089 D2),新端口 machineSettings.runtimeHealth.get、machineSettings.runtimeInventory.get、
86
- * machineSettings.proxies.test、providers.binaries.detect、providers.instances.refresh(都不用声明),
87
- * providers.accounts.probe、providers.instances.diagnose(要 providers.homes);providers.instances.install / update / signIn /
88
- * cancelSignIn、machineSettings.runtime.control、machineSettings.runtimeVersions.remove、machineSettings.runtimeBackups.remove、
89
- * machineSettings.runtime.upgrade 端口在、对插件恒拒 operator-only(要让机器装、升级、重启,派机器任务)。机器动作多了
90
- * runtime.restart 与 runtime.upgrade(MachineActionKind 多了 restart、upgrade),动作输入多了可选 targetVersion;名片与目录里
91
- * 认不出的动作在解码时丢掉。都是新增。
92
-
93
- * 60:技能目录的端口 ctx.plugins.skillDirectory.search(搜 skills.sh)、.get(从 GitHub 公开仓库读 SKILL.md 与
94
- * 技能文件夹里其他文件的个数)、.install(存成这台机器上的技能条目,声明 machineSettings.update,同名拒绝)。
95
- * 都是新增。
96
- * 59:项目任务(机器任务的第三种动作)。动作号多了 project.<任务名>、动作种类多了 project-task;动作目录
97
- * (projects.machines.actions.list)的项多了可选 description 与 variants,上限放到机器自己的动作加任务表;机器任务输入多了可选
98
- * variant,结果多了可选 exitCode(非零退出时与 failure 同在),件上的 machineTask 多了可选 logCommentId(日志那条评论);
99
- * MachineTaskError 多了 variant-not-available;projects.machines.list 的行多了可选 projectTasks。按动作种类或恢复动作穷举的
100
- * 插件要补 project-task 一支。新端口 work.machineTasks.run(commands.dispatch 声明 work.machine-task.create,与建任务同一条):
101
- * 在一台机器上建项目任务并有上限地等它做完,交回 finished 与 machineTask。ExecutorMcpServer 多了可选 toolTimeoutSeconds
102
- * (宿主自己的 server 上一次工具调用最长可能等多久),手能按 server 设工具超时的应设成不小于它。都是新增。
103
- * 58:输入卡的待答提问多了 goToUserInputQuestion(index):跳到当前提问的某一题(越界夹到首尾),只换题、不提交。
104
- * 是新增。
105
- * 57:新端口 ctx.plugins.skills.list(plugins.skills.list)列出这台机器上不来自设置条目的技能:随 Ycodium 提供的与
106
- * 插件带来的(含停用插件的,source 带所属条目),每条有写给 agent 的 description 与可选的、按语言给人看的 summary;
107
- * 设置里的技能条目多了可选 enabled(缺席即开),关掉的条目不进新会话。都是新增。
108
- * 56:轮次意图(threads.history 等返回的 turn intent)多了可选 noticesFolded(只会是 true):排着的定时唤醒被别的
109
- * 系统通知并进来之后锁住,只能取消,management 随之缺席。是新增。
110
- * 56:插件名字与说明跟着界面语言走。manifest 的 ycodium 多了可选 displayNameKey / descriptionKey(插件自己
111
- * locales 里的键),ycodium.description 优先于 npm description;plugins.installed.list 的 presentation 多了可选
112
- * translations(按界面语言给的名字与说明,宿主解析,停用的插件也有);settings-card 子路径加了 localeKeyText
113
- * (扁平或嵌套键对应的文字,与 hasLocaleKey 同一种取法)。都是新增。
114
- * 55:设置表单画留空字段的实际值。设置卡与执行器名片加了可选 effectiveCommand(本插件一条 read 的 ctx.command,
115
- * 返回 PluginSettingsEffectiveValues),注册时查它存在、不是流、scope 为 read;executor 子路径加了
116
- * ExecutorEffectiveConfigInput、EXECUTOR_EFFECTIVE_PAYLOAD_SCHEMA、readExecutorEffectiveRequest、
117
- * executorEnvironmentValue 与 executorHomeEffectiveValue;端口加了 machineSettings.npmRegistry.get。都是新增。
118
- * 55(机器接入):machineSettings.endpoints.list 返回可达地址;projects.machines.join 的 homeEnvironmentId 与
119
- * projectId 可选,分别约束交码前的家机器核对与已有席位复用,插件仍不得调用。环境能力 machineAdmissionIdentityCheck
120
- * 声明身份核对与地址读取;客户端自动接入及读取家机器地址前必须检查它。UI 桥 useAdmitMachine 可选,使用前必须检查
121
- * machineAdmission 能力;移动端不提供该桥。
122
- * 54:机器浏览器去掉接手。threads.browser.control.take 与 threads.browser.control.release 删掉,
123
- * 看着页面的人发的页面输入直接送到页面,threads.browser.annotation.start 不再要求先接手;页面状态不再带
124
- * controllerClientId,control 为 human 表示有人刚操作过,agent 的页面动作在人停手片刻之前被拒绝;拒绝原因
125
- * not-controller 删掉。调用过这两个端口的插件要删掉调用,没有替代。标签快照多了可选 recording(startedAt、
126
- * requestedBy):机器页面录屏期间带着,没人看这一页时客户端也知道在录。
127
- * 54(同一版并入,排队框分类型):ConversationQueueEntry 多了可选 source(服务器入队时记下的来源:user / scheduled-wake / record / session / reply / child-report /
128
- * plugin-wake / person / board-dispatch / plugin-notice / home-machine / restart-resume;缺席是旧条目;只有 user 与 scheduled-wake 有 management);ConversationCommunicationRecord 多了可选 from、to(两端:会话带标题,人或插件带显示名)与 replyRecordId;threads.turns.start 多了可选 forwardedFrom(插件转发某个人的话时带那人的 displayName,排队框照它标人名)。
129
- * 54(同一版并入,机器任务):派给一台机器 runtime 的工作项。执行器贡献多了可选 lifecycle(ExecutorLifecycleAction:kind 为
130
- * install / detect / sign-in / update / uninstall,带 reversible),宿主照名片执行,声明了的才进这台机器的动作目录;
131
- * 新端口 projects.machines.actions.list(一台机器上可用的动作,要 members.read)、work.machineTasks.create(commands.dispatch
132
- * 声明 work.machine-task.create;插件发起的任务先等人确认)与 work.machineTasks.get(要 work.read);确认
133
- * work.machineTasks.respond 只给人,插件禁止。工作项读出与原始事件 work.item-created 多了可选 machineTask,原始事件多了
134
- * work.machine-task-updated;projects.machines.list 的行多了可选 actions 与 autoApproved;machineSettings.get 多了
135
- * machineTaskConfirmation(插件与 agent 改不了它);work.remoteAgentPending.get 多了可选 machineTasks。全是新增。
136
- * 53:看板通用语义进宿主。work.dispatch 守卫成了派发门槛:入参多了 reason(item / comment / group)、宿主挑好的
137
- * threadId(要新开是 null)与 commentId / recordId,群消息的 workItemId 是 null;allowed: false 改为「现在不能派」
138
- * (下一次触发或补扫再问),不再是「插件自己派」;allowed: true 可带 threadId,宿主改把话与叫醒交到那条会话。新增 operations.supplement 与 PluginWakeSupplementInput(叫醒补充,
139
- * 抛错或超时这次不叫醒);原始事件多了 work.item-dispatched,看板投递的 communication.record-sent 与记录视图多了
140
- * 可选 workItem;历史多了动词 paused / resumed / trial-passed / trial-failed / trial-skipped、对象种类 member、
141
- * 变化 member 与 note,历史一页跳过读不懂的条目与变化;能容下更新元素的数组在编码侧按元素给类型,不再是 unknown。
142
- * 52:看板第二批。工作项建 / 改入参与读出多了 priority、labelIds,摘要多了 archivedAt;work.items.list 多了
143
- * priorities、labelIds、archived 筛选与 priority 排序;新端口 work.items.archive / unarchive、work.labels.*(list / create /
144
- * update / remove / restore)、work.states.create / update / remove / restore(commands.dispatch 声明对应的 work.item.*、
145
- * work.label.*、work.state.*);work.states.list 多了 includeRemoved,状态视图多了 removedAt;work.comments.list(按件)与 work.history.list 多了
146
- * order(newest 从最近的读起);历史变化多了 priority、labels;
147
- * 原始事件多了 work.item-archived / unarchived、work.label-*、work.state-*。
148
- * 52(同一窗口并入):成员模型合一,MemberIdentity 收窄为只剩人(远端 agent 身份退场)。成员视图与成员命令的 identity 只剩人(kind "human"):agent 成员在哪台机器只看
149
- * agent.environmentId,agent 成员必须带 agent 段;新端口 projects.machines.list(项目里加进来的别的机器:机器号、名字、
150
- * 在线、最后在线、它报的 provider 清单);projects.machines.joinCode.create / remove / join / leave 只给人,插件只在
151
- * operator 调用里能用。projects.machines.list 多了可选 includeModels(缺省不列型号);work.remoteAgentPending.get 多了可选 memberId 入参;远端待处理项与叫醒多了可选 memberId,远端参与者(通信记录里的 remote-agent 一支)多了可选 memberId。
152
- * 52(同一窗口并入,机器浏览器部分):机器浏览器的人工输入 threads.browser.input 多了 setViewport 与 setZoom;页面状态多了可选 viewportSetting
153
- * (视口设置)与 zoomFactor(页面缩放)。人工输入再多了 clearCookies 与 clearCache(清这份资料的 Cookie 或 HTTP 缓存,
154
- * 人和 agent 共用)。machineSettings.config.get 的机器能力多了可选 browserZoomOperations、browserSiteDataOperations
155
- * 与 browserDevtoolsOperations(openDevTools)。
156
- * 人工多了 threads.browser.context(读选区、链接和图片,供本机剪贴板),按键输入多了可选 editingCommand
157
- * (Cut、Copy、SelectAll),人工多了 threads.browser.downloadUrl(为机器页面里已经下完的文件签一张五分钟内有效的地址,
158
- * 文件留在那台机器上;页面关闭或该资料收回 agent 许可后地址立即失效)。新端口 threads.browser.downloadCancel
159
- * 取消进行中的下载,或清除已结束的并删掉机器上的文件,插件要声明 commands.dispatch 的 thread.browser.download.cancel,
160
- * 页面所在资料关了 agent 许可时以 agent-access-denied 拒绝;页面状态里的下载条目多了可选 stalled(进行中的下载太久
161
- * 没有进度,只是提示)。人、agent,以及声明了 machineSettings.browser.cookies.import 的插件可以调用
162
- * machineSettings.browser.cookies.firefoxProfiles、machineSettings.browser.cookies.chromiumProfiles
163
- * 与 machineSettings.browser.cookies.import
164
- * (结果只有计数,不返回 Cookie 的名字、值或域名;Firefox 在那台机器上按不透明 id 读取;
165
- * chromiumProfiles 按浏览器键、资料目录名与显示名列出那台机器上 Chrome、Edge、Brave 等 Chromium 系浏览器的资料,
166
- * 导入来源 chromium 带这个浏览器键与目录名,Cookie 在那台机器上用系统密钥库解密,
167
- * 拒绝原因 unsupported 表示在那台机器上解不开;
168
- * 该个人资料的 agent 开关关掉时,agent 与插件被拒绝,关掉开关会中断进行中的导入;资料必须存在,否则 profile-not-found)。标签快照多了可选 favicon(PNG data URL、来源、抓取时间)。
169
- * browser.reportStatus 的 favicon 可以缺省、为 null 或为图标:缺省保留,null 清掉。
170
- * 页面状态里可选的 downloads 列出这张页面的每条下载(id、fileName、state、receivedBytes、fetchable,可选 totalBytes、stalled 与 leftover;leftover 是已关闭页面留下、文件还没从机器上删掉的下载,同一资料的每张页面都列出它,带它的 id 调 threads.browser.downloadCancel 就是重试),
171
- * 条数没有上限;浏览器没确认停下时 threads.browser.downloadCancel 以 cancel-unconfirmed 拒绝,文件没能在机器上删掉时以 cleanup-failed 拒绝,这条下载仍留在列表里,再调一次就重试。机器设置的读写多了可选的
172
- * machineBrowserDefaultViewport、machineBrowserDefaultZoomFactor 与 machineBrowserDefaultAppearance(新机器页面的起始值)。
173
- * BrowserAutomationOperation 多了 setZoom、clearCookies、clearCache 与 openDevTools;图标的 capturedAt 是整数毫秒。机器浏览器的这些全是新增。
174
- * 52(同一窗口并入):成员运行时状态。新端口 members.runtime.list(每个有状态的成员一行:status、lastAction?、threadId、
175
- * environmentId、online、stale?、since、seenAt;stale 是机器连着却三个心跳周期没收到这个成员的状态,按状态过期显示)与流端口
176
- * members.runtime.subscribe,都要 members.read;projects.machines.list 的行多了
177
- * 可选的机器名片 platform、serverVersion、wireProtocolVersion,provider 多了可选 readiness、installed、auth、modelCatalog,
178
- * 清单里也会有没就绪的实例(readiness 不是 ready 的不能接活)。
179
- * 52(同一窗口并入):isReasoningEffortOptionId / findReasoningEffortDescriptor,「哪个模型选项算思考强度」只此一处,
180
- * 宿主、客户端、IM、准入都调它(effort、reasoningEffort、reasoning、variant 算;fastMode、agent、serviceTier 不算)。
181
- * 晚于 turn.started 才读到实际型号的执行器(CLI 的 init 消息、会话内切型号的回包),用该轮的 thread.metadata.updated
182
- * 补报,载荷多了可选 model 与 modelSource(reported / echo,缺席按 echo);宿主按 turn.started.model 同一规则记。全是新增。
183
- * 51:看板上的团队状态与看板调度。工作线视图(work.lines.list / get)多了可选 pause 与 memberPauses,成员视图
184
- * (members.list / get)多了可选 trial;新端口 work.lines.pause / resume(commands.dispatch 声明 work.line.pause /
185
- * work.line.resume,也在 invocation.asPerson.work.lines 上)与 members.trial.record(声明 member.trial.record);
186
- * 原始事件多了 work.line-paused、work.line-resumed、member.trial-recorded;PluginOperationName 多了 work.dispatch
187
- * (引擎按看板叫醒本机 agent 成员之前问,回答 allowed: false 是插件自己派)。
188
- * 51(同一窗口并入):providers.selection.resolve 多了可选 purpose 入参与可选 hints 出参,点名的型号不在已确认非空目录里
189
- * 报 model-not-in-catalog,点名的正是已存的型号按沿用;providers.models.list 多了可选 includeHidden,行可带 hidden;
190
- * modelCatalogNoticeOf / ModelCatalogNotice(快照的 modelCatalog → 选择器那一行说明);会话视图类型新增
191
- * ConversationModelChoice、ConversationThreadActualModel,ConversationAppModelOption 多了可选 isUnlisted / isHidden,
192
- * 模型上下文多了可选 activeThreadActualModel,draft.useEffectiveModelState 多了 purpose / actualModel 入参并返回 choice,
193
- * 输入区接口多了 model.useModelCatalogRetry;破坏性删除输入区接口的 model.getModelCapabilities(改读 choice),其余全是新增。
194
- * 50:机器浏览器的人工输入 threads.browser.input 多了拖动与悬停用的 pointerDown、pointerMove、pointerUp;
195
- * 页面状态多了可选 agentActivity(agent 动作中与它最近的指针落点)与 recording(这一页正在机器上录屏)。
196
- * 新端口 threads.browser.capture(截图存进机器产物库)与 threads.browser.recording.start / stop(在机器上录屏)
197
- * 要声明 commands.dispatch 的 thread.browser.capture / recording.start / recording.stop,会话范围同其它会话命令,
198
- * 页面所在资料关了 agent 许可时以 agent-access-denied 拒绝;threads.browser.annotation.start / cancel / theme
199
- * (在机器页面上批注)与 control / input 一样只给用户操作;
200
- * 纯函数 resolveModelChoice / resolveModelOptions / nearestEffortLevel 与 ModelChoice* 类型(输入区型号与档位的唯一规则);
201
- * provider 快照(machine.settings.providers.get、ConversationServerProvider)多了可选 modelCatalog(目录状态,与 readiness 分开)
202
- * 与 modelCatalogAuthoritative,型号可带 origin(probe / custom / card);名片可声明 modelCatalogAuthoritative;
203
- * 执行器会话可声明 modelSource(reported / echo,缺席按 echo);threads.get 读出的会话多了可选 actualModel;
204
- * 删掉 provider 快照的 modelCatalogStale(改读 modelCatalog.state);
205
- * 探测报的 ExecutorProbeModel.capabilities 缺席 / null 是「说不出」(沿用上一次的档位),
206
- * 明确的 { optionDescriptors: [] } 是「没有档位」(清掉旧档位),其余全是新增。
207
- * 50:破坏性删除两个已无消费者的字段——ConversationComposerApi.snapShot(宿主早已不提供)与
208
- * ConversationTimelineProps.hideEmptyPlaceholder(宿主恒传 false);读它们的插件须删掉对应代码。
209
- * 49:执行器的 task.updated 多了可选的 outcomeUnknown(这只手拿不到该 agent 的结局,idle 只表示这一轮结束了);
210
- * 机器浏览器的页面状态(threads.browser.state.get)多了可选 colorScheme 与 fillsPanel,
211
- * 人工输入 threads.browser.input 多了 back、forward、setColorScheme 与 reload 的可选 ignoreCache,
212
- * machineSettings.config.get 的机器能力多了可选 browserPageOperations;全是新增。
213
- * 48:会话输入框的成员 @:ConversationHostData 多了可选 memberMentions(ConversationMemberMentionApi)——
214
- * 候选、序列化、最终正文 collect 与发送侧 useMatches 由宿主实现,旧宿主缺席时插件的 @ 菜单只列文件与会话;
215
- * ConversationComposerStatus 多了可选 groupSendDisabledReason,群记录不起 provider 轮,只保留机器、会话与项目禁发原因;
216
- * threads.create 的入参与 threads.get / list / archived.list / history 读出的会话多了可选 memberId
217
- * (创建时记下的成员归属,老机器缺席;threads.list 只在顶层行给,summary 不重复);全是新增。
218
- * 47:会话运行态多了可选的 backgroundMonitorCount(还活着的后台监视循环数,读取时刻的值,缺席与 0 都表示没有);全是新增。
219
- * 46:团队页上插件能看到的部分,全是新增。work.history.list 多了可选 workLineId——线自己的事件,加上此刻在这条线上的件的全部活动;
220
- * 与 workItemId 同给取交集;旧机器会静默忽略这个字段,须先看机器能力 workLines。
221
- * 团队页视角:新座位 team.view(ui.seats 可声明)。bundle 在 register 返回的 slots 里登记 { name: "team.view", key,
222
- * component }(defineTeamView 造这一项),manifest 的 ui.teamViews 逐个声明同一个 key、scopes("team" 一个团队的页、
223
- * "project" 项目下所有团队的总页)、titleKey 与可选 order(视角的先后只在这里定);声明了 teamViews 必须有 entry 且 ui.seats 含 team.view,否则拒载。组件的 props 是
224
- * PluginUiTeamViewProps(按 scope 区分,active 为 false 时视角在后台保活,应停掉订阅)。PluginUiSlotRegistration 由此成了
225
- * 按 name 区分的联合:team.view 必须带 key,别的座位不带。导出 TEAM_VIEW_KEY_PATTERN、isTeamViewKey、
226
- * HOST_TEAM_VIEW_PREFIX("host/" 开头的视角 id 留给宿主)。手机上 PluginSurfaceConfig 多了可选 seatKey,指明 team.view 表面画哪一个视角
227
- * (只装选中的那一个,seatOwner 是同一份 props,active 恒为 true);ycodium_plugin_define 的 ui 收 teamViews。
228
- * 会话插件多了嵌入视图 conversation.pendingRequests(CONVERSATION_PENDING_REQUESTS_VIEW_ID、
229
- * ConversationPendingRequestsViewProps):画一条会话开着的批准 / 提问 / 决定卡,团队页的「等你处理」坞用;
230
- * ConversationComposerPending 多了 pendingApprovals、pendingDecisions(全部开着的,不止排第一的),
231
- * ConversationComposerProps 多了可选 teamDock(输入卡上方、横幅之下的宿主节点)。
232
- * 团队插件自己的命令随视角变了:board 多了可选 workLineId、项目层按线分泳道,archivePreview 删除。
233
- * 43:工作线——新增 work.lines(list / get / create / update / archive / restore;asPerson 带四个写,commands.dispatch
234
- * 声明 work.line.create / update / archive / restore);WorkItemsCreateInput / UpdateInput 的可选 workLineId、
235
- * WorkItemsListInput 的可选 workLineIds,读出的件带 workLineId,历史多了 work-line 类别与 workLine 字段变化;
236
- * work.start 守卫入参多了 workLineId 与 workLineIdAfter(必填);机器能力 workLines(缺席即旧机器);
237
- * 进程名额排队:providers.list 每个实例多了可选 concurrency { live, max },machine.settings.providers.get 的 provider 多了可选
238
- * maxProcesses;threads.execution.summary 的队列项多了可选 waitingForCapacity(排队等名额的队首,continuation 报 queued
239
- * 不报 blocked);ConversationQueueEntry 与 ConversationQueueState 多了可选 waitingForCapacity;
240
- * 42:破坏性删除——ThreadsTurnsStartInput.bootstrap.prepareWorktree 不再收 projectCwd(宿主按会话起步文件夹建树);
241
- * useCreateThread 的选项去掉 envMode(进已有工作树传 worktreePath);ConversationComposerStatus 去掉 isPreparingWorktree
242
- * 与 worktreeSetup,ConversationWorktreeSetupStep / ConversationWorktreeSetupProgress 删除。
243
- * 45:机器端协作浏览器公开准备、资料与状态接口;浏览器领域、UI 桥与标注统一 browser,人工控制只由人触发;
244
- * 破坏性删除每轮模型总结——执行器去掉 summarizeTurn,ConversationTurnSummary 去掉 modelSummary,机器设置去掉 autoTurnSummaries。
245
- * 41:执行器辅助操作传递取消并等待资源收尾;process-operation 提供完整命令与协议作用域,
246
- * 清理未完成须保留 OperationCleanupError;readCliVersion 与 refreshModelCatalog 接受 signal。
247
- * 40:一个项目在一台机器上可以挂多个文件夹——新增 projects.folders.relocate(换路径,文件夹 id 不变;commands.dispatch
248
- * 声明 project.folder.relocate);ThreadsUpdateInput.folderIds、ProjectsUpdateInput.defaultFolderId、
249
- * ProjectsFoldersAttachInput.threadId 三个可选入参;机器能力 projectMultiFolder(缺席即旧机器);
250
- * 执行器会话输入多了可选 additionalDirectories,名片能力多了可选 acceptsAdditionalDirectories;
251
- * 会话宿主数据接口升到 18:ConversationThreadFolder 与可选 useThreadFolders,composer 的 pathSearch 多了
252
- * useComposerPathSearchAcross(ConversationComposerPathSearchAcrossState),导出 CONVERSATION_COMPOSER_PATH_SEARCH_LIMIT。
253
- */
254
- export const PLUGIN_API_MIN_VERSION = 69;
16
+ // 版本窗口住在 ./version.ts:插件把那个子路径打进自己的 bundle,这里的再导出只给宿主与测试用。
17
+ // 从这里(运行时解析到宿主的那份)读版本号写进插件声明,会让版本门对任何宿主都放行。
18
+ export { PLUGIN_API_MIN_VERSION, PLUGIN_API_VERSION } from "./version.js";
255
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,cAAc,sBAAsB,CAAC;AAIrC,cAAc,oBAAoB,CAAC;AAQnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAcxC,cAAc,eAAe,CAAC;AAE9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8E/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4OG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,sBAAsB,CAAC;AAIrC,cAAc,oBAAoB,CAAC;AAQnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAcxC,cAAc,eAAe,CAAC;AAE9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8E/C,2DAA2D;AAC3D,4CAA4C;AAC5C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAyB,MAAM,cAAc,CAAC"}
@@ -75,6 +75,11 @@ export interface PluginProviderInstance {
75
75
  * 别再往这张表上加 driver 专属字段。
76
76
  */
77
77
  readonly launchArgs: string;
78
+ /**
79
+ * 「会话结束后保留它的后台程序」此刻生效的值:实例设置,没设就跟执行器名片的 `keepsBackgroundServices`,
80
+ * 都没有是 false。旧宿主不带这个字段。
81
+ */
82
+ readonly keepBackgroundServices?: boolean;
78
83
  /** 实例配置里的自定义 API endpoint(cursor 的 `-e`);没配是 null。见 `launchArgs`。 */
79
84
  readonly apiEndpoint: string | null;
80
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pluginContextProviders.d.ts","sourceRoot":"","sources":["../src/pluginContextProviders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginContextProviders.d.ts","sourceRoot":"","sources":["../src/pluginContextProviders.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * ## bundle 契约
12
12
  *
13
13
  * `package.json#ycodium.ui` 里 `assetsPath` 指向资产目录、`entry` 指向目录内的
14
- * ESM 入口,宿主从 `/plugin-assets/<pluginId>/<entry>` 动态 import 它。入口
14
+ * ESM 入口,宿主从 `/plugin-assets/<票据>/<pluginId>/<entry>` 动态 import 它。入口
15
15
  * **默认导出一个注册函数**(只认这一种形状;导出对象、导出具名 `register` 都不算):
16
16
  *
17
17
  * ```js
package/dist/ui.js CHANGED
@@ -11,7 +11,7 @@
11
11
  * ## bundle 契约
12
12
  *
13
13
  * `package.json#ycodium.ui` 里 `assetsPath` 指向资产目录、`entry` 指向目录内的
14
- * ESM 入口,宿主从 `/plugin-assets/<pluginId>/<entry>` 动态 import 它。入口
14
+ * ESM 入口,宿主从 `/plugin-assets/<票据>/<pluginId>/<entry>` 动态 import 它。入口
15
15
  * **默认导出一个注册函数**(只认这一种形状;导出对象、导出具名 `register` 都不算):
16
16
  *
17
17
  * ```js
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 插件 API 的版本窗口。宿主装载声明在 `PLUGIN_API_MIN_VERSION` 到 `PLUGIN_API_VERSION`(含两端)之间的插件。
3
+ *
4
+ * 这个子路径是插件 Node bundle 里唯一不 external 的 plugin-api 模块:插件源码写 `apiVersion: PLUGIN_API_VERSION`,
5
+ * 构建把当时的号内联进 dist,发到 npm 的产物因此带着它针对的版本。不能让它在运行时解析到宿主:旧宿主给的只会是
6
+ * 它自己的号,版本门对任何包都放行,装进旧宿主的新包要到调用新端口时才炸(同 `ui-bridge-version` 的理由)。
7
+ *
8
+ * @module @ycodium-ai/plugin-api/version
9
+ */
10
+ export declare const PLUGIN_API_VERSION = 75;
11
+ export declare const PLUGIN_API_MIN_VERSION = 73;
12
+ /** 插件可以声明的版本:窗口内的每一个。 */
13
+ export type PluginApiVersion = 73 | 74 | 75;
14
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,yBAAyB;AACzB,MAAM,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ // 由 scripts/gen-plugin-api-version.ts 从 packages/plugin-api/version-history.json 生成,不要手改。
2
+ // 版本号 = 历史条目数;下限 = 最新一条 breaking 条目的版本,不低于 minVersionFloor。升号 = 往历史末尾追加一条再重跑脚本。
3
+ /**
4
+ * 插件 API 的版本窗口。宿主装载声明在 `PLUGIN_API_MIN_VERSION` 到 `PLUGIN_API_VERSION`(含两端)之间的插件。
5
+ *
6
+ * 这个子路径是插件 Node bundle 里唯一不 external 的 plugin-api 模块:插件源码写 `apiVersion: PLUGIN_API_VERSION`,
7
+ * 构建把当时的号内联进 dist,发到 npm 的产物因此带着它针对的版本。不能让它在运行时解析到宿主:旧宿主给的只会是
8
+ * 它自己的号,版本门对任何包都放行,装进旧宿主的新包要到调用新端口时才炸(同 `ui-bridge-version` 的理由)。
9
+ *
10
+ * @module @ycodium-ai/plugin-api/version
11
+ */
12
+ export const PLUGIN_API_VERSION = 75;
13
+ export const PLUGIN_API_MIN_VERSION = 73;
14
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,gFAAgF;AAChF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ycodium-ai/plugin-api",
3
- "version": "0.2.3935",
3
+ "version": "0.2.3976",
4
4
  "description": "Types and definePlugin for authoring Ycodium plugins. Zero runtime dependencies.",
5
5
  "keywords": [
6
6
  "ycodium"
@@ -24,6 +24,10 @@
24
24
  "types": "./dist/ui-bridge-version.d.ts",
25
25
  "import": "./dist/ui-bridge-version.js"
26
26
  },
27
+ "./version": {
28
+ "types": "./dist/version.d.ts",
29
+ "import": "./dist/version.js"
30
+ },
27
31
  "./conversation": {
28
32
  "types": "./dist/conversation.d.ts",
29
33
  "import": "./dist/conversation.js"