@lesliechan721/aw 0.1.0-beta.34 → 0.1.0-beta.36
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/scripts/test-plugin-scripts.js +1 -1
- package/dist/src/commands/aw-capabilities.d.ts +1 -1
- package/dist/src/commands/aw-capabilities.js +1 -0
- package/dist/src/commands/aw-capabilities.js.map +1 -1
- package/dist/src/commands/operation-plan.d.ts +19 -0
- package/dist/src/commands/operation-plan.js.map +1 -1
- package/dist/src/commands/rebuild-command.d.ts +1 -0
- package/dist/src/commands/rebuild-command.js +890 -8
- package/dist/src/commands/rebuild-command.js.map +1 -1
- package/dist/src/commands/rebuild-integration.d.ts +12 -0
- package/dist/src/commands/rebuild-integration.js +88 -2
- package/dist/src/commands/rebuild-integration.js.map +1 -1
- package/dist/src/commands/status-v6.js +109 -19
- package/dist/src/commands/status-v6.js.map +1 -1
- package/dist/src/commands/wizard.d.ts +5 -1
- package/dist/src/commands/wizard.js +4 -2
- package/dist/src/commands/wizard.js.map +1 -1
- package/dist/src/commands/write-commands.js +3 -0
- package/dist/src/commands/write-commands.js.map +1 -1
- package/dist/src/index.js +57 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/portable/materializer.js +19 -3
- package/dist/src/portable/materializer.js.map +1 -1
- package/dist/src/review/review-profile.js +19 -2
- package/dist/src/review/review-profile.js.map +1 -1
- package/dist/src/tui/components.d.ts +39 -0
- package/dist/src/tui/components.js +51 -18
- package/dist/src/tui/components.js.map +1 -1
- package/dist/src/tui/config-array-draft.d.ts +29 -0
- package/dist/src/tui/config-array-draft.js +48 -0
- package/dist/src/tui/config-array-draft.js.map +1 -0
- package/dist/src/tui/config-value-presentation.d.ts +1 -0
- package/dist/src/tui/config-value-presentation.js +17 -1
- package/dist/src/tui/config-value-presentation.js.map +1 -1
- package/dist/src/tui/console-app-v4.js +1742 -1368
- package/dist/src/tui/console-app-v4.js.map +1 -1
- package/dist/src/tui/content-item-card.d.ts +13 -0
- package/dist/src/tui/content-item-card.js +51 -0
- package/dist/src/tui/content-item-card.js.map +1 -0
- package/dist/src/tui/controller-runtime.js +45 -4
- package/dist/src/tui/controller-runtime.js.map +1 -1
- package/dist/src/tui/controller.d.ts +18 -0
- package/dist/src/tui/controller.js +168 -12
- package/dist/src/tui/controller.js.map +1 -1
- package/dist/src/tui/dependency-graph-view.d.ts +39 -0
- package/dist/src/tui/dependency-graph-view.js +121 -0
- package/dist/src/tui/dependency-graph-view.js.map +1 -0
- package/dist/src/tui/dependency-graph.js +16 -19
- package/dist/src/tui/dependency-graph.js.map +1 -1
- package/dist/src/tui/entity-cards.d.ts +55 -0
- package/dist/src/tui/entity-cards.js +220 -0
- package/dist/src/tui/entity-cards.js.map +1 -0
- package/dist/src/tui/input-display.js +10 -1
- package/dist/src/tui/input-display.js.map +1 -1
- package/dist/src/tui/model.d.ts +11 -0
- package/dist/src/tui/model.js +20 -4
- package/dist/src/tui/model.js.map +1 -1
- package/dist/src/tui/operation-diagnostic-screens.d.ts +2 -18
- package/dist/src/tui/operation-diagnostic-screens.js +16 -69
- package/dist/src/tui/operation-diagnostic-screens.js.map +1 -1
- package/dist/src/tui/operation-review-planner.js +44 -3
- package/dist/src/tui/operation-review-planner.js.map +1 -1
- package/dist/src/tui/plugin-content.d.ts +8 -0
- package/dist/src/tui/plugin-content.js +409 -65
- package/dist/src/tui/plugin-content.js.map +1 -1
- package/dist/src/tui/plugin-detail.d.ts +52 -0
- package/dist/src/tui/plugin-detail.js +165 -0
- package/dist/src/tui/plugin-detail.js.map +1 -0
- package/dist/src/tui/project-inventory.d.ts +68 -0
- package/dist/src/tui/project-inventory.js +203 -0
- package/dist/src/tui/project-inventory.js.map +1 -0
- package/dist/src/tui/query-header.d.ts +30 -0
- package/dist/src/tui/query-header.js +40 -0
- package/dist/src/tui/query-header.js.map +1 -0
- package/dist/src/tui/reader.d.ts +37 -0
- package/dist/src/tui/reader.js +47 -0
- package/dist/src/tui/reader.js.map +1 -0
- package/dist/src/tui/router.d.ts +26 -3
- package/dist/src/tui/router.js.map +1 -1
- package/dist/src/tui/screen-registry.d.ts +9 -1
- package/dist/src/tui/screen-registry.js +1 -1
- package/dist/src/tui/screen-registry.js.map +1 -1
- package/dist/src/tui/source-detail-card.d.ts +29 -0
- package/dist/src/tui/source-detail-card.js +45 -0
- package/dist/src/tui/source-detail-card.js.map +1 -0
- package/dist/src/tui/theme.d.ts +12 -0
- package/dist/src/tui/theme.js +12 -0
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/wizard.js +26 -4
- package/dist/src/tui/wizard.js.map +1 -1
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/catalog-source-references.js +2 -2
- package/dist/src/utils/local-marketplace.d.ts +1 -0
- package/dist/src/utils/local-marketplace.js +22 -0
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/plugin-config-write.js +3 -1
- package/dist/src/utils/plugin-config-write.js.map +1 -1
- package/dist/src/utils/plugin-config.d.ts +5 -5
- package/dist/src/utils/plugin-config.js +47 -23
- package/dist/src/utils/plugin-config.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PluginContentItem, PluginContentType } from './plugin-content.js';
|
|
2
|
+
import { type EntityCardLayout, entityCardWindowHeight } from './entity-cards.js';
|
|
3
|
+
export declare const contentTypeLabels: Record<PluginContentType, string>;
|
|
4
|
+
export declare function contentItemHasReader(item: PluginContentItem, width: number): boolean;
|
|
5
|
+
export declare function contentItemCardLayout(item: PluginContentItem, width: number): EntityCardLayout;
|
|
6
|
+
export declare function ContentItemCard(props: {
|
|
7
|
+
item: PluginContentItem;
|
|
8
|
+
width: number;
|
|
9
|
+
focused?: boolean;
|
|
10
|
+
lineOffset?: number;
|
|
11
|
+
lineLimit?: number;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
export { entityCardWindowHeight as contentItemCardWindowHeight };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import stringWidth from 'string-width';
|
|
4
|
+
import { ObjectCardFrame } from './components.js';
|
|
5
|
+
import { entityCardWindowHeight } from './entity-cards.js';
|
|
6
|
+
import { tuiTheme } from './theme.js';
|
|
7
|
+
import { wrapDisplayText } from './viewport.js';
|
|
8
|
+
export const contentTypeLabels = {
|
|
9
|
+
skill: 'Skill', agent: 'Agent', role: '角色', instruction: '指令', permission: '权限',
|
|
10
|
+
hook: 'Hook', command: '命令', mcpServer: 'MCP Server', app: 'App',
|
|
11
|
+
};
|
|
12
|
+
export function contentItemHasReader(item, width) {
|
|
13
|
+
const titleWidth = Math.max(1, width - 11 - stringWidth(contentTypeLabels[item.type]));
|
|
14
|
+
return Boolean(item.issue) || stringWidth(item.name) > titleWidth
|
|
15
|
+
|| Boolean(item.description && wrapDisplayText(item.description, Math.max(1, width - 4)).length > 1);
|
|
16
|
+
}
|
|
17
|
+
function contentLines(item, width) {
|
|
18
|
+
const columns = Math.max(1, width - 4);
|
|
19
|
+
const lines = [];
|
|
20
|
+
const add = (text, kind) => {
|
|
21
|
+
for (const part of wrapDisplayText(text, columns))
|
|
22
|
+
lines.push({ text: part, kind });
|
|
23
|
+
};
|
|
24
|
+
if (item.descriptionState !== 'issue' && item.description) {
|
|
25
|
+
const wrapped = wrapDisplayText(item.description, columns);
|
|
26
|
+
add(wrapped.length > 1
|
|
27
|
+
? `${wrapDisplayText(item.description, Math.max(1, columns - 1))[0]}…`
|
|
28
|
+
: wrapped[0], 'description');
|
|
29
|
+
}
|
|
30
|
+
add(item.tools.length ? item.tools.map((tool) => `[${tool}]`).join(' ') : '[工具未确认]', 'fact');
|
|
31
|
+
if (item.issue) {
|
|
32
|
+
add('! 简介读取问题 · Enter 查看原因', 'issue');
|
|
33
|
+
}
|
|
34
|
+
return lines;
|
|
35
|
+
}
|
|
36
|
+
export function contentItemCardLayout(item, width) {
|
|
37
|
+
const factRows = contentLines(item, width).length;
|
|
38
|
+
return { headerHeight: 1, factRows, fullHeight: factRows + 2,
|
|
39
|
+
sections: [{ key: item.id, offset: 0, height: factRows }] };
|
|
40
|
+
}
|
|
41
|
+
export function ContentItemCard(props) {
|
|
42
|
+
const lines = contentLines(props.item, props.width);
|
|
43
|
+
const offset = Math.min(Math.max(0, props.lineOffset ?? 0), Math.max(0, lines.length - 1));
|
|
44
|
+
const visible = lines.slice(offset, props.lineLimit === undefined
|
|
45
|
+
? undefined : offset + Math.max(1, props.lineLimit));
|
|
46
|
+
return _jsxs(ObjectCardFrame, { width: props.width, title: props.item.name, headerMeta: contentTypeLabels[props.item.type], focused: props.focused, children: [offset > 0 ? _jsx(Text, { color: tuiTheme.colors.muted, children: "\u2191 \u524D\u9762\u8FD8\u6709\u4FE1\u606F" }) : null, visible.map((line, index) => _jsx(Box, { children: _jsx(Text, { color: line.kind === 'issue' ? tuiTheme.statusColors.warning
|
|
47
|
+
: line.kind === 'description' ? tuiTheme.colors.muted : tuiTheme.colors.text, children: line.text }) }, `${offset}:${index}`)), offset + visible.length < lines.length
|
|
48
|
+
? _jsx(Text, { color: tuiTheme.colors.muted, children: "\u2193 \u540E\u9762\u8FD8\u6709\u4FE1\u606F" }) : null] });
|
|
49
|
+
}
|
|
50
|
+
export { entityCardWindowHeight as contentItemCardWindowHeight };
|
|
51
|
+
//# sourceMappingURL=content-item-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-item-card.js","sourceRoot":"","sources":["../../../src/tui/content-item-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAyB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;IAC/E,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK;CACjE,CAAC;AAIF,MAAM,UAAU,oBAAoB,CAAC,IAAuB,EAAE,KAAa;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU;WAC5D,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB,EAAE,KAAa;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAyB,EAAQ,EAAE;QAC5D,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;IACF,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;YACtE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,aAAa,CAAC,CAAC;IAClC,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7F,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAuB,EAAE,KAAa;IAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,GAAG,CAAC;QAC1D,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAM/B;IACC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS;QAC/D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,OAAO,MAAC,eAAe,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAChE,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,aACrE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,4DAAiB,CAAC,CAAC,CAAC,IAAI,EACvE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAC,GAAG,cAChC,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO;wBAChE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAC3E,IAAI,CAAC,IAAI,GACL,IAJ+B,GAAG,MAAM,IAAI,KAAK,EAAE,CAKtD,CAAC,EACN,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;gBACrC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,4DAAiB,CAAC,CAAC,CAAC,IAAI,IAC9C,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,sBAAsB,IAAI,2BAA2B,EAAE,CAAC"}
|
|
@@ -916,6 +916,11 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
916
916
|
evidence: 'unavailable',
|
|
917
917
|
items: [],
|
|
918
918
|
notices: ['当前无法安全读取这个插件的目录内容。请检查来源状态后重试。'],
|
|
919
|
+
coverage: 'unavailable',
|
|
920
|
+
coverageIssue: {
|
|
921
|
+
code: 'unreadable',
|
|
922
|
+
message: '当前无法安全读取这个插件的目录内容。请检查来源状态后重试。',
|
|
923
|
+
},
|
|
919
924
|
};
|
|
920
925
|
}
|
|
921
926
|
};
|
|
@@ -945,6 +950,23 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
945
950
|
|| JSON.stringify(batchBase.source) !== JSON.stringify(current.source))) {
|
|
946
951
|
throw operationReviewStale('准备设置批次期间 Catalog 或来源发生变化。');
|
|
947
952
|
}
|
|
953
|
+
for (const expected of Object.values(group.editEvidence ?? {})) {
|
|
954
|
+
if (expected.sourceIdentity !== current.source.sourceIdentity
|
|
955
|
+
|| expected.schemaIdentity !== current.config.schemaIdentity) {
|
|
956
|
+
throw operationReviewStale('编辑期间插件来源或设置定义已变化,请重新打开列表。');
|
|
957
|
+
}
|
|
958
|
+
for (const scope of ['user', 'project']) {
|
|
959
|
+
if (expected.storeDigests[scope] === undefined)
|
|
960
|
+
continue;
|
|
961
|
+
const currentDigest = await configLayerStoreDigest({
|
|
962
|
+
source: current.source, pluginName: parsePluginId(intent.pluginId).pluginName,
|
|
963
|
+
scope, cwd: context.cwd, env: context.env,
|
|
964
|
+
});
|
|
965
|
+
if (expected.storeDigests[scope] !== currentDigest) {
|
|
966
|
+
throw operationReviewStale('编辑期间设置已被外部修改,请重新打开列表。');
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
948
970
|
batchBase ??= current;
|
|
949
971
|
batchCatalogOperation ??= catalogOperationByEvidence.get(current);
|
|
950
972
|
groupEvidence.push({
|
|
@@ -1846,11 +1868,15 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
1846
1868
|
signal?.throwIfAborted();
|
|
1847
1869
|
if (intent.action === 'cleanup') {
|
|
1848
1870
|
const groups = [];
|
|
1871
|
+
const reviewedRemovedPlugins = new Set();
|
|
1849
1872
|
for (const group of selection.groups) {
|
|
1850
1873
|
signal?.throwIfAborted();
|
|
1874
|
+
const requestedPluginIds = group.requestedPluginIds.filter((pluginId) => !reviewedRemovedPlugins.has(pluginId));
|
|
1875
|
+
if (requestedPluginIds.length === 0)
|
|
1876
|
+
continue;
|
|
1851
1877
|
const preview = await runBatchWriteGroup({
|
|
1852
1878
|
intent,
|
|
1853
|
-
group,
|
|
1879
|
+
group: { ...group, requestedPluginIds },
|
|
1854
1880
|
cwd: context.cwd,
|
|
1855
1881
|
runtime: {
|
|
1856
1882
|
...context,
|
|
@@ -1862,7 +1888,11 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
1862
1888
|
} : {}),
|
|
1863
1889
|
},
|
|
1864
1890
|
});
|
|
1865
|
-
|
|
1891
|
+
for (const pluginId of preview.removedPluginCleanupIds ?? []) {
|
|
1892
|
+
reviewedRemovedPlugins.add(pluginId);
|
|
1893
|
+
}
|
|
1894
|
+
groups.push({ ...group, requestedPluginIds, preview,
|
|
1895
|
+
executable: preview.operationPlan !== undefined });
|
|
1866
1896
|
}
|
|
1867
1897
|
await preparation?.reporter.emit('evidence');
|
|
1868
1898
|
signal?.throwIfAborted();
|
|
@@ -2025,6 +2055,9 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
2025
2055
|
},
|
|
2026
2056
|
operationPlan: preview.operationPlan,
|
|
2027
2057
|
offlineCleanupPlans,
|
|
2058
|
+
...(preview.removedPluginCleanupIds
|
|
2059
|
+
? { removedPluginCleanupIds: preview.removedPluginCleanupIds }
|
|
2060
|
+
: {}),
|
|
2028
2061
|
...(offlineCleanupPlans.length === 1
|
|
2029
2062
|
? { offlineCleanup: offlineCleanupPlans[0] }
|
|
2030
2063
|
: {}),
|
|
@@ -2740,7 +2773,7 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
2740
2773
|
...(sessionContextForPlugin(pluginId)
|
|
2741
2774
|
? { operationContext: sessionContextForPlugin(pluginId) }
|
|
2742
2775
|
: {}),
|
|
2743
|
-
consume: async ({ plugin }) => {
|
|
2776
|
+
consume: async ({ plugin, source }) => {
|
|
2744
2777
|
if (!plugin.manifest.config) {
|
|
2745
2778
|
throw new TuiOperationBlockedError('configSchemaUnavailable', '这个插件没有设置 schema。');
|
|
2746
2779
|
}
|
|
@@ -2792,7 +2825,7 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
2792
2825
|
const layerStore = layer.scope === 'effective'
|
|
2793
2826
|
? undefined
|
|
2794
2827
|
: layer.scope === 'user' ? userStore : projectStore;
|
|
2795
|
-
|
|
2828
|
+
const page = buildConfigPage({
|
|
2796
2829
|
pluginId,
|
|
2797
2830
|
schema: plugin.manifest.config,
|
|
2798
2831
|
read,
|
|
@@ -2808,6 +2841,14 @@ export function createTuiControllerDependencies(context, progressFeed, options =
|
|
|
2808
2841
|
? target.refreshKeys
|
|
2809
2842
|
: [])),
|
|
2810
2843
|
});
|
|
2844
|
+
return { ...page, editEvidence: {
|
|
2845
|
+
sourceIdentity: source.sourceIdentity,
|
|
2846
|
+
schemaIdentity: source.manifestDigest,
|
|
2847
|
+
storeDigests: {
|
|
2848
|
+
user: digest({ exists: userStore.exists, rawDigest: userStore.rawDigest }),
|
|
2849
|
+
...(projectStore ? { project: digest({ exists: projectStore.exists, rawDigest: projectStore.rawDigest }) } : {}),
|
|
2850
|
+
},
|
|
2851
|
+
} };
|
|
2811
2852
|
},
|
|
2812
2853
|
});
|
|
2813
2854
|
},
|