@ycodium-ai/plugin-api 0.2.2488 → 0.2.2510
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/conversation.d.ts +36 -0
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js.map +1 -1
- package/dist/executor.d.ts +9 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js.map +1 -1
- package/dist/index.d.ts +59 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/provider-settings.d.ts +187 -0
- package/dist/provider-settings.d.ts.map +1 -0
- package/dist/provider-settings.js +139 -0
- package/dist/provider-settings.js.map +1 -0
- package/dist/ui.d.ts +2 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +1 -0
- package/dist/ui.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@ycodium-ai/plugin-api/provider-settings` —— 执行器插件在「添加 provider」对话框的设置步骤、
|
|
3
|
+
* 以及 provider 实例详情页里放自己那一段界面的窄契约(ADR-0033 第 4 步 B 段)。
|
|
4
|
+
*
|
|
5
|
+
* ## 声明与挂载
|
|
6
|
+
*
|
|
7
|
+
* manifest 的 `package.json#ycodium.ui.providerSettings` 声明一段区块:
|
|
8
|
+
*
|
|
9
|
+
* ```json
|
|
10
|
+
* { "ui": { "assets": "./assets", "entry": "ui.js",
|
|
11
|
+
* "providerSettings": [{
|
|
12
|
+
* "id": "account", "driverKind": "codex",
|
|
13
|
+
* "ownedFields": { "add": ["homePath", "shadowHomePath"] },
|
|
14
|
+
* "ownedEnvironment": ["YCODIUM_CODEX_API_KEY"],
|
|
15
|
+
* "genericFields": "collapsed" }] } }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* bundle 的 `register(bridge)` 在 `views` 里以同一个 `id` 注册组件,并在 `viewCapabilities` 里声明
|
|
19
|
+
* {@link PROVIDER_SETTINGS_VIEW_CAPABILITY}。宿主按 `driverKind` 找到实例所属的执行器插件,
|
|
20
|
+
* 只认**这个插件自己**声明的区块:区块只能装饰它自己贡献的 driver。
|
|
21
|
+
*
|
|
22
|
+
* ## 数据流
|
|
23
|
+
*
|
|
24
|
+
* - 读:组件收到 {@link ProviderSettingsSectionProps.instance},是宿主草稿(添加)或已存实例(编辑)的快照。
|
|
25
|
+
* - 写:只经 {@link ProviderSettingsSectionProps.onChange} 提出 {@link ProviderSettingsPatch}
|
|
26
|
+
* (`config` 逐键合并、`environment` 按名字合并),由宿主并进最新的草稿,或走设置页自己的保存路径。
|
|
27
|
+
* 补丁是增量的:异步回来的改动不会盖掉用户此间改的别的字段。区块**自己不落盘**,也改不了名字、
|
|
28
|
+
* 启用状态与 driver,环境变量只能写声明里的 `ownedEnvironment`。
|
|
29
|
+
* - 上报:区块用 {@link ProviderSettingsSectionProps.onReport} 告诉宿主几件只有它知道的事
|
|
30
|
+
* ({@link ProviderSettingsSectionStatus}):表单是否填完整、「添加」按钮写什么、添加后要不要
|
|
31
|
+
* 自动登录、保存前要补的改动。
|
|
32
|
+
*
|
|
33
|
+
* ## 字段归属
|
|
34
|
+
*
|
|
35
|
+
* 声明里的 `ownedFields` 是区块自己画的 card 字段,宿主的通用表单不再画它们;`ownedEnvironment` 是区块
|
|
36
|
+
* 自己写的环境变量,宿主的环境变量表不显示也不动它们。归属是静态声明,不随区块状态变化。
|
|
37
|
+
* `genericFields: "collapsed"` 让宿主把剩下的通用字段、环境变量收进一个「高级设置」折叠区。
|
|
38
|
+
*
|
|
39
|
+
* ## 缺席
|
|
40
|
+
*
|
|
41
|
+
* 没有声明区块的执行器只画通用表单。区块 bundle 装载失败时宿主在区块位置画一行说明,通用表单照常。
|
|
42
|
+
* 移动端没有添加与编辑 provider 的界面,这份契约只在 Web / Desktop 生效。
|
|
43
|
+
*
|
|
44
|
+
* @module @ycodium-ai/plugin-api/provider-settings
|
|
45
|
+
*/
|
|
46
|
+
/** 区块视图在 `viewCapabilities` 里声明的能力;宿主据此确认两边读的是同一版 props。 */
|
|
47
|
+
export const PROVIDER_SETTINGS_VIEW_CAPABILITY = "ycodium.provider-settings.v1";
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// 账户目录工具:给「再加一个账号」起目录名。宿主对 grok / claude 用同一份,区块不必各写一遍。
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
/** 名字撞了就往后编号,最多试这么多个;再撞就直接用最后一个让用户自己改。 */
|
|
52
|
+
const MAX_CANDIDATES = 6;
|
|
53
|
+
const SLUG_MAX_LENGTH = 24;
|
|
54
|
+
/** `~/.grok` → `grok`。前缀词用来从显示名里去重,见 {@link accountDirectorySlug}。 */
|
|
55
|
+
const brandWord = (rule) => rule.defaultDirectory.replace(/^~\/\./u, "");
|
|
56
|
+
/**
|
|
57
|
+
* 显示名 → 目录后缀。目录本来就叫 `~/.grok-…`,前缀里的品牌词要去掉,否则会变成
|
|
58
|
+
* `~/.grok-grok-work`;去干净之后 `Grok Work` 得到 `work`。只用小写字母、数字、连字符。
|
|
59
|
+
*/
|
|
60
|
+
export function accountDirectorySlug(displayName, rule) {
|
|
61
|
+
const normalized = displayName
|
|
62
|
+
.toLowerCase()
|
|
63
|
+
.replaceAll(/[^a-z0-9]+/gu, "-")
|
|
64
|
+
.replaceAll(/^-+|-+$/gu, "");
|
|
65
|
+
const prefixes = [...(rule.brandAliases ?? []), brandWord(rule)].sort((a, b) => b.length - a.length);
|
|
66
|
+
const stripped = prefixes.reduce((found, prefix) => found ??
|
|
67
|
+
(normalized === prefix || normalized.startsWith(`${prefix}-`)
|
|
68
|
+
? normalized.slice(prefix.length).replace(/^-/u, "")
|
|
69
|
+
: undefined), undefined) ?? normalized;
|
|
70
|
+
return stripped.slice(0, SLUG_MAX_LENGTH).replaceAll(/-+$/gu, "");
|
|
71
|
+
}
|
|
72
|
+
const normalizeDirectory = (value) => value.trim().replace(/[\\/]+$/u, "");
|
|
73
|
+
const readConfigString = (config, key) => {
|
|
74
|
+
if (config === null || typeof config !== "object")
|
|
75
|
+
return "";
|
|
76
|
+
const value = config[key];
|
|
77
|
+
return typeof value === "string" ? value : "";
|
|
78
|
+
};
|
|
79
|
+
/** 这台机器上同一 driver 的实例各自占着哪个账户目录。留空的那些占的是默认目录。 */
|
|
80
|
+
export function providerInstanceAccountPaths(instances, driver, rule) {
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
for (const instance of instances) {
|
|
83
|
+
if (instance.driver !== driver)
|
|
84
|
+
continue;
|
|
85
|
+
const configured = rule.configKeys
|
|
86
|
+
.map((key) => normalizeDirectory(readConfigString(instance.config, key)))
|
|
87
|
+
.find((value) => value.length > 0);
|
|
88
|
+
// 留空 = 默认目录。写成默认目录本身,候选才比得出它已经被占。
|
|
89
|
+
seen.add(configured ?? rule.defaultDirectory);
|
|
90
|
+
}
|
|
91
|
+
return [...seen];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 候选目录,按优先顺序:第一个是显示名直译,后面的加序号。已被别的实例占掉的直接跳过,
|
|
95
|
+
* 剩下的还要看磁盘上在不在——配置和磁盘是两个事实来源,都得问。默认目录永远不做候选。
|
|
96
|
+
*/
|
|
97
|
+
export function accountDirectoryCandidates(input) {
|
|
98
|
+
const slug = accountDirectorySlug(input.displayName, input.rule);
|
|
99
|
+
const base = slug.length > 0 ? `${input.rule.defaultDirectory}-${slug}` : input.rule.defaultDirectory;
|
|
100
|
+
const taken = new Set(input.taken.map(normalizeDirectory));
|
|
101
|
+
const candidates = [];
|
|
102
|
+
for (let suffix = 1; candidates.length < MAX_CANDIDATES && suffix <= MAX_CANDIDATES * 2;) {
|
|
103
|
+
const candidate = suffix === 1 ? base : `${base}-${suffix}`;
|
|
104
|
+
suffix += 1;
|
|
105
|
+
if (candidate === input.rule.defaultDirectory)
|
|
106
|
+
continue;
|
|
107
|
+
if (taken.has(candidate))
|
|
108
|
+
continue;
|
|
109
|
+
candidates.push(candidate);
|
|
110
|
+
}
|
|
111
|
+
return candidates;
|
|
112
|
+
}
|
|
113
|
+
/** 这次探测说得出「这台机器上已经登了一个账号」吗。过期也算:身份还是那一个。 */
|
|
114
|
+
export function accountProbeHasSignedInAccount(probe) {
|
|
115
|
+
if (probe === null)
|
|
116
|
+
return false;
|
|
117
|
+
return probe.state === "signed-in" || probe.state === "expired";
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* 给一个实例挑一个单独的账户目录:按显示名起名,避开别的实例占着的与磁盘上已经存在的。
|
|
121
|
+
* 一个都挑不出来回 undefined——保存路径上宁可报错,也不给一个会和别人撞的目录。
|
|
122
|
+
*/
|
|
123
|
+
export async function allocateAccountDirectory(input) {
|
|
124
|
+
const taken = providerInstanceAccountPaths(input.instances, input.driver, input.rule);
|
|
125
|
+
const candidates = accountDirectoryCandidates({
|
|
126
|
+
displayName: input.displayName,
|
|
127
|
+
taken,
|
|
128
|
+
rule: input.rule,
|
|
129
|
+
});
|
|
130
|
+
if (candidates.length === 0)
|
|
131
|
+
return undefined;
|
|
132
|
+
const probes = await input.probe([...taken, ...candidates]);
|
|
133
|
+
const takenPaths = new Set(probes.slice(0, taken.length).map((probe) => probe.accountPath));
|
|
134
|
+
return candidates.find((_candidate, index) => {
|
|
135
|
+
const probe = probes[taken.length + index];
|
|
136
|
+
return probe !== undefined && !probe.directoryExists && !takenPaths.has(probe.accountPath);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=provider-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-settings.js","sourceRoot":"","sources":["../src/provider-settings.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.d.ts
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* - `pages` 的组件不收 props;`panels` 的组件收 `{ environmentId, threadId }`。
|
|
30
30
|
* - `views` 是不新增导航入口的嵌入组件;调用方与插件约定 props,组件共用该包的
|
|
31
31
|
* React、翻译和机器作用域。旧宿主忽略它,支持的宿主在缺少组件时显示不可用状态。
|
|
32
|
+
* 执行器插件放进 provider 设置页的区块也是一个 view,见 `@ycodium-ai/plugin-api/provider-settings`。
|
|
32
33
|
* - manifest 声明了、注册结果里没有的槽位,宿主画"加载失败"——声明与实现对不上
|
|
33
34
|
* 是 bug,不是空态。
|
|
34
35
|
* - 抛异常、默认导出不是函数、返回值形状不对,一律按装载失败处理:宿主不炸,
|
|
@@ -360,6 +361,7 @@ export interface PluginUiHostGlobal<Ui = unknown, Layout = unknown, React = unkn
|
|
|
360
361
|
readonly "@ycodium-ai/plugin-api": typeof import("./index.ts");
|
|
361
362
|
readonly "@ycodium-ai/plugin-api/ui": typeof import("./ui.ts");
|
|
362
363
|
readonly "@ycodium-ai/plugin-api/slots"?: typeof import("./slots.ts");
|
|
364
|
+
readonly "@ycodium-ai/plugin-api/provider-settings"?: typeof import("./provider-settings.ts");
|
|
363
365
|
};
|
|
364
366
|
readonly react: React;
|
|
365
367
|
readonly jsxRuntime: PluginUiJsxRuntime;
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* - `pages` 的组件不收 props;`panels` 的组件收 `{ environmentId, threadId }`。
|
|
30
30
|
* - `views` 是不新增导航入口的嵌入组件;调用方与插件约定 props,组件共用该包的
|
|
31
31
|
* React、翻译和机器作用域。旧宿主忽略它,支持的宿主在缺少组件时显示不可用状态。
|
|
32
|
+
* 执行器插件放进 provider 设置页的区块也是一个 view,见 `@ycodium-ai/plugin-api/provider-settings`。
|
|
32
33
|
* - manifest 声明了、注册结果里没有的槽位,宿主画"加载失败"——声明与实现对不上
|
|
33
34
|
* 是 bug,不是空态。
|
|
34
35
|
* - 抛异常、默认导出不是函数、返回值形状不对,一律按装载失败处理:宿主不炸,
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,mCAAmC;AACnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,QAAQ;IACR,gBAAgB;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,8BAA8B,GACzC,qEAAqE,CAAC;AACxE,MAAM,CAAC,MAAM,kDAAkD,GAC7D,wFAAwF,CAAC;AAE3F,MAAM,UAAU,yBAAyB,CACvC,MAQC,EACD,UAAkC;IAElC,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC;QACtD,KAAK,kBAAkB;YACrB,OAAO,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU,CAAC;QAC1D,KAAK,eAAe;YAClB,OAAO,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,CAAC;QACvD,KAAK,eAAe;YAClB,OAAO,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC;QAC7E,KAAK,QAAQ;YACX,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;QAC7C,KAAK,gBAAgB;YACnB,OAAO,OAAO,MAAM,CAAC,kBAAkB,KAAK,UAAU,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycodium-ai/plugin-api",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2510",
|
|
4
4
|
"description": "Types and definePlugin for authoring Ycodium plugins. Zero runtime dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ycodium"
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
"types": "./dist/slots.d.ts",
|
|
45
45
|
"import": "./dist/slots.js"
|
|
46
46
|
},
|
|
47
|
+
"./provider-settings": {
|
|
48
|
+
"types": "./dist/provider-settings.d.ts",
|
|
49
|
+
"import": "./dist/provider-settings.js"
|
|
50
|
+
},
|
|
47
51
|
"./ui.css": "./css/ui.css"
|
|
48
52
|
},
|
|
49
53
|
"publishConfig": {
|