@lesliechan721/aw 0.1.0-beta.25 → 0.1.0-beta.27

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.
Files changed (54) hide show
  1. package/dist/src/portable/commands.d.ts +39 -5
  2. package/dist/src/portable/commands.js +249 -30
  3. package/dist/src/portable/commands.js.map +1 -1
  4. package/dist/src/portable/skills-cli.d.ts +15 -7
  5. package/dist/src/portable/skills-cli.js +35 -19
  6. package/dist/src/portable/skills-cli.js.map +1 -1
  7. package/dist/src/tui/catalog-sources/session.js +9 -0
  8. package/dist/src/tui/catalog-sources/session.js.map +1 -1
  9. package/dist/src/tui/catalog-store-task.d.ts +16 -0
  10. package/dist/src/tui/catalog-store-task.js +19 -0
  11. package/dist/src/tui/catalog-store-task.js.map +1 -0
  12. package/dist/src/tui/components.d.ts +15 -0
  13. package/dist/src/tui/components.js +24 -3
  14. package/dist/src/tui/components.js.map +1 -1
  15. package/dist/src/tui/console-app-v4.d.ts +2 -1
  16. package/dist/src/tui/console-app-v4.js +2147 -1476
  17. package/dist/src/tui/console-app-v4.js.map +1 -1
  18. package/dist/src/tui/controller-runtime.js +396 -16
  19. package/dist/src/tui/controller-runtime.js.map +1 -1
  20. package/dist/src/tui/controller.d.ts +131 -41
  21. package/dist/src/tui/controller.js +493 -33
  22. package/dist/src/tui/controller.js.map +1 -1
  23. package/dist/src/tui/dependency-graph.d.ts +11 -0
  24. package/dist/src/tui/dependency-graph.js +19 -0
  25. package/dist/src/tui/dependency-graph.js.map +1 -1
  26. package/dist/src/tui/diagnostic-projection.js +83 -0
  27. package/dist/src/tui/diagnostic-projection.js.map +1 -1
  28. package/dist/src/tui/model.d.ts +4 -1
  29. package/dist/src/tui/model.js +18 -13
  30. package/dist/src/tui/model.js.map +1 -1
  31. package/dist/src/tui/operation-diagnostic-screens.js +3 -2
  32. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -1
  33. package/dist/src/tui/operation-review-planner.js +95 -8
  34. package/dist/src/tui/operation-review-planner.js.map +1 -1
  35. package/dist/src/tui/plugin-content.d.ts +23 -0
  36. package/dist/src/tui/plugin-content.js +336 -0
  37. package/dist/src/tui/plugin-content.js.map +1 -0
  38. package/dist/src/tui/router.d.ts +27 -9
  39. package/dist/src/tui/router.js +13 -9
  40. package/dist/src/tui/router.js.map +1 -1
  41. package/dist/src/tui/screen-registry.d.ts +81 -14
  42. package/dist/src/tui/screen-registry.js +46 -17
  43. package/dist/src/tui/screen-registry.js.map +1 -1
  44. package/dist/src/tui/session-console-app.js +1 -1
  45. package/dist/src/tui/session-console-app.js.map +1 -1
  46. package/dist/src/tui/session-host.d.ts +1 -0
  47. package/dist/src/tui/session-host.js +13 -1
  48. package/dist/src/tui/session-host.js.map +1 -1
  49. package/dist/src/utils/codex-reconciler.js +5 -1
  50. package/dist/src/utils/codex-reconciler.js.map +1 -1
  51. package/dist/src/utils/codex-surface-analysis.d.ts +1 -0
  52. package/dist/src/utils/codex-surface-analysis.js +2 -0
  53. package/dist/src/utils/codex-surface-analysis.js.map +1 -1
  54. package/package.json +3 -3
@@ -0,0 +1,336 @@
1
+ import path from 'node:path';
2
+ import { open } from 'node:fs/promises';
3
+ import fs from 'fs-extra';
4
+ import { parseSkillFrontmatter } from '../utils/skill-validation.js';
5
+ const MAX_FRONTMATTER_BYTES = 16 * 1024;
6
+ const TOOL_ORDER = ['Codex', 'Claude Code', 'Agent Skills'];
7
+ function sortTools(tools) {
8
+ return [...new Set(tools)].sort((left, right) => TOOL_ORDER.indexOf(left) - TOOL_ORDER.indexOf(right));
9
+ }
10
+ function within(root, candidate) {
11
+ const relative = path.relative(root, candidate);
12
+ return relative === '' || (!path.isAbsolute(relative)
13
+ && relative !== '..'
14
+ && !relative.startsWith(`..${path.sep}`));
15
+ }
16
+ function isRecord(value) {
17
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18
+ }
19
+ async function regularPathWithin(root, candidate, kind) {
20
+ const lexical = path.resolve(candidate);
21
+ if (!within(root, lexical))
22
+ return null;
23
+ const relative = path.relative(root, lexical);
24
+ let current = root;
25
+ let stats;
26
+ for (const segment of relative.split(path.sep).filter(Boolean)) {
27
+ current = path.join(current, segment);
28
+ stats = await fs.lstat(current).catch(() => undefined);
29
+ if (!stats || stats.isSymbolicLink())
30
+ return null;
31
+ }
32
+ stats ??= await fs.lstat(lexical).catch(() => undefined);
33
+ if (!stats || stats.isSymbolicLink())
34
+ return null;
35
+ if (kind === 'file' ? !stats.isFile() : !stats.isDirectory())
36
+ return null;
37
+ const real = await fs.realpath(lexical).catch(() => undefined);
38
+ return real && within(root, real) ? real : null;
39
+ }
40
+ async function readFrontmatterDescription(root, skillFile) {
41
+ const safeFile = await regularPathWithin(root, skillFile, 'file');
42
+ if (!safeFile)
43
+ return { exists: false, description: null };
44
+ const handle = await open(safeFile, 'r');
45
+ try {
46
+ const chunks = [];
47
+ let total = 0;
48
+ let frontmatterEnd = -1;
49
+ while (total < MAX_FRONTMATTER_BYTES && frontmatterEnd === -1) {
50
+ const buffer = Buffer.alloc(Math.min(512, MAX_FRONTMATTER_BYTES - total));
51
+ const { bytesRead } = await handle.read(buffer, 0, buffer.length, total);
52
+ if (bytesRead === 0)
53
+ break;
54
+ chunks.push(buffer.subarray(0, bytesRead));
55
+ total += bytesRead;
56
+ frontmatterEnd = Buffer.concat(chunks).toString('utf8').replace(/\r\n/gu, '\n').indexOf('\n---\n', 4);
57
+ }
58
+ if (frontmatterEnd === -1)
59
+ return { exists: true, description: null };
60
+ const normalized = Buffer.concat(chunks).toString('utf8').replace(/\r\n/gu, '\n');
61
+ const header = normalized.slice(0, frontmatterEnd + '\n---\n'.length);
62
+ const parsed = parseSkillFrontmatter(header, 'SKILL.md');
63
+ const description = parsed.frontmatter?.description;
64
+ return {
65
+ exists: true,
66
+ description: typeof description === 'string' && description.trim() ? description.trim() : null,
67
+ };
68
+ }
69
+ finally {
70
+ await handle.close();
71
+ }
72
+ }
73
+ function addItem(items, item) {
74
+ const key = `${item.type}:${item.name}`;
75
+ const current = items.get(key);
76
+ if (!current) {
77
+ items.set(key, item);
78
+ return;
79
+ }
80
+ current.tools = sortTools([...current.tools, ...item.tools]);
81
+ if (current.description === null && item.description !== null)
82
+ current.description = item.description;
83
+ }
84
+ async function addSkillDirectory(options) {
85
+ const directory = await regularPathWithin(options.root, path.join(options.root, options.relativePath), 'directory');
86
+ if (!directory) {
87
+ options.notices.push(`${options.tool} Skill 清单不可安全读取。`);
88
+ return;
89
+ }
90
+ const entries = await fs.readdir(directory, { withFileTypes: true });
91
+ for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
92
+ if (!entry.isDirectory() || entry.isSymbolicLink())
93
+ continue;
94
+ const skillRoot = await regularPathWithin(options.root, path.join(directory, entry.name), 'directory');
95
+ if (!skillRoot)
96
+ continue;
97
+ const skill = await readFrontmatterDescription(options.root, path.join(skillRoot, 'SKILL.md'));
98
+ if (!skill.exists)
99
+ continue;
100
+ addItem(options.items, {
101
+ id: `skill:${entry.name}`,
102
+ name: entry.name,
103
+ type: 'skill',
104
+ description: skill.description,
105
+ tools: [options.tool],
106
+ });
107
+ if (skill.description === null)
108
+ options.notices.push(`Skill ${entry.name} 没有安全可读的简短用途。`);
109
+ }
110
+ }
111
+ async function addJsonComponents(options) {
112
+ const file = await regularPathWithin(options.root, path.join(options.root, options.relativePath), 'file');
113
+ if (!file) {
114
+ options.notices.push(`${options.tool} ${options.type} 清单不可安全读取。`);
115
+ return;
116
+ }
117
+ let value;
118
+ try {
119
+ value = await fs.readJson(file);
120
+ }
121
+ catch {
122
+ options.notices.push(`${options.tool} ${options.type} 清单不可安全读取。`);
123
+ return;
124
+ }
125
+ const collection = isRecord(value) ? value[options.property] : undefined;
126
+ const entries = isRecord(collection) ? Object.keys(collection).sort() : [];
127
+ if (entries.length === 0) {
128
+ options.notices.push(`${options.tool} ${options.type} 清单没有可确认的组件名称。`);
129
+ }
130
+ for (const name of entries) {
131
+ addItem(options.items, {
132
+ id: `${options.type}:${name}`,
133
+ name,
134
+ type: options.type,
135
+ description: null,
136
+ tools: [options.tool],
137
+ });
138
+ }
139
+ }
140
+ async function addSlashCommands(options) {
141
+ const directory = await regularPathWithin(options.root, path.join(options.root, 'claude', 'commands'), 'directory');
142
+ if (!directory) {
143
+ options.notices.push('Slash command 清单没有可安全确认的组件名称。');
144
+ return;
145
+ }
146
+ const entries = await fs.readdir(directory, { withFileTypes: true });
147
+ for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
148
+ if (!entry.isFile() || entry.isSymbolicLink() || path.extname(entry.name) !== '.md')
149
+ continue;
150
+ const name = path.basename(entry.name, '.md');
151
+ const tools = ['Claude Code'];
152
+ const codexSkillFile = path.join(options.root, 'codex', 'skills', name, 'SKILL.md');
153
+ const codexCommand = options.hasCodex
154
+ && await regularPathWithin(options.root, codexSkillFile, 'file');
155
+ if (codexCommand)
156
+ tools.unshift('Codex');
157
+ options.items.delete(`skill:${name}`);
158
+ addItem(options.items, {
159
+ id: `command:${name}`,
160
+ name,
161
+ type: 'command',
162
+ description: codexCommand
163
+ ? (await readFrontmatterDescription(options.root, codexSkillFile)).description
164
+ : null,
165
+ tools,
166
+ });
167
+ }
168
+ }
169
+ function targetTool(target) {
170
+ if (target.startsWith('codex.'))
171
+ return 'Codex';
172
+ if (target.startsWith('claude.'))
173
+ return 'Claude Code';
174
+ if (target.startsWith('agent-skills.'))
175
+ return 'Agent Skills';
176
+ return null;
177
+ }
178
+ function targetType(target) {
179
+ if (target.endsWith('.skill'))
180
+ return 'skill';
181
+ if (target === 'codex.agentRole')
182
+ return 'role';
183
+ if (target === 'codex.developerInstructionsBlock')
184
+ return 'instruction';
185
+ return null;
186
+ }
187
+ function toolsForOverrides(tools, overrides) {
188
+ return tools.filter((tool) => {
189
+ if (tool === 'Codex')
190
+ return overrides?.codex !== null;
191
+ if (tool === 'Claude Code')
192
+ return overrides?.claude !== null;
193
+ return true;
194
+ });
195
+ }
196
+ async function projectedPlatforms(root) {
197
+ const tools = [];
198
+ if (await regularPathWithin(root, path.join(root, '.codex-plugin', 'plugin.json'), 'file'))
199
+ tools.push('Codex');
200
+ if (await regularPathWithin(root, path.join(root, '.claude-plugin', 'plugin.json'), 'file'))
201
+ tools.push('Claude Code');
202
+ return tools;
203
+ }
204
+ export async function projectPluginContentOverview(options) {
205
+ const root = await fs.realpath(options.plugin.rootDir);
206
+ const items = new Map();
207
+ const notices = [];
208
+ const platforms = await projectedPlatforms(root);
209
+ if (options.plugin.manifest.skills) {
210
+ await Promise.all([
211
+ ...(platforms.includes('Codex') ? [addSkillDirectory({
212
+ root, relativePath: 'codex/skills', tool: 'Codex', items, notices,
213
+ })] : []),
214
+ ...(platforms.includes('Claude Code') ? [addSkillDirectory({
215
+ root, relativePath: 'claude/skills', tool: 'Claude Code', items, notices,
216
+ })] : []),
217
+ ]);
218
+ }
219
+ if (options.plugin.manifest.distributions?.agentSkills?.skills) {
220
+ await addSkillDirectory({
221
+ root, relativePath: 'agent-skills/skills', tool: 'Agent Skills', items, notices,
222
+ });
223
+ }
224
+ if (options.plugin.manifest.mcpServers) {
225
+ await Promise.all(platforms.map((tool) => addJsonComponents({
226
+ root,
227
+ relativePath: `${tool === 'Codex' ? 'codex' : 'claude'}/${options.plugin.manifest.mcpServers.replace(/^\.\//u, '')}`,
228
+ property: 'mcpServers',
229
+ type: 'mcpServer',
230
+ tool,
231
+ items,
232
+ notices,
233
+ })));
234
+ }
235
+ if (options.plugin.manifest.apps && platforms.includes('Codex')) {
236
+ await addJsonComponents({
237
+ root,
238
+ relativePath: `codex/${options.plugin.manifest.apps.replace(/^\.\//u, '')}`,
239
+ property: 'apps',
240
+ type: 'app',
241
+ tool: 'Codex',
242
+ items,
243
+ notices,
244
+ });
245
+ }
246
+ if (options.plugin.manifest.slashCommands) {
247
+ await addSlashCommands({
248
+ root,
249
+ hasCodex: platforms.includes('Codex'),
250
+ items,
251
+ notices,
252
+ });
253
+ }
254
+ for (const agent of options.plugin.manifest.extensions?.agents ?? []) {
255
+ addItem(items, {
256
+ id: `agent:${agent.name}`,
257
+ name: agent.name,
258
+ type: 'agent',
259
+ description: agent.description.trim() || null,
260
+ tools: toolsForOverrides(platforms, agent.agentOverrides),
261
+ });
262
+ }
263
+ for (const instruction of options.plugin.manifest.extensions?.instructions ?? []) {
264
+ addItem(items, {
265
+ id: `instruction:${instruction.name}`,
266
+ name: instruction.title,
267
+ type: 'instruction',
268
+ description: null,
269
+ tools: toolsForOverrides(platforms, instruction.agentOverrides),
270
+ });
271
+ }
272
+ for (const permission of options.plugin.manifest.extensions?.permissions ?? []) {
273
+ addItem(items, {
274
+ id: `permission:${permission.name}`,
275
+ name: permission.name,
276
+ type: 'permission',
277
+ description: null,
278
+ tools: toolsForOverrides(platforms, permission.agentOverrides),
279
+ });
280
+ }
281
+ for (const hook of options.plugin.manifest.extensions?.hooks ?? []) {
282
+ const name = hook.matcher ? `${hook.event} · ${hook.matcher}` : hook.event;
283
+ addItem(items, {
284
+ id: `hook:${hook.event}:${hook.matcher ?? ''}`,
285
+ name,
286
+ type: 'hook',
287
+ description: null,
288
+ tools: toolsForOverrides(platforms, hook.agentOverrides),
289
+ });
290
+ }
291
+ for (const [platform, hooks] of Object.entries(options.plugin.manifest.extensions?.nativeHooks ?? {})) {
292
+ const tool = platform === 'codex' ? 'Codex' : 'Claude Code';
293
+ for (const hook of hooks ?? []) {
294
+ const name = hook.matcher ? `${hook.event} · ${hook.matcher}` : hook.event;
295
+ addItem(items, {
296
+ id: `hook:${platform}:${hook.event}:${hook.matcher ?? ''}`,
297
+ name,
298
+ type: 'hook',
299
+ description: null,
300
+ tools: [tool],
301
+ });
302
+ }
303
+ }
304
+ for (const target of options.plugin.manifest.artifacts?.targets ?? []) {
305
+ const tool = targetTool(target.target);
306
+ const type = targetType(target.target);
307
+ if (!tool || !type)
308
+ continue;
309
+ const name = target.skillKey ?? target.roleKey ?? target.id;
310
+ let description = null;
311
+ if (type === 'skill' && target.platform) {
312
+ description = (await readFrontmatterDescription(root, path.join(root, '.agents-plugin', 'artifact-sources', target.platform, target.id, '0', 'SKILL.md'))).description;
313
+ }
314
+ addItem(items, {
315
+ id: `artifact:${target.id}`,
316
+ name,
317
+ type,
318
+ description,
319
+ tools: [tool],
320
+ });
321
+ if (description === null)
322
+ notices.push(`${type} ${name} 没有安全可读的简短用途。`);
323
+ }
324
+ const result = [...items.values()].sort((left, right) => left.type.localeCompare(right.type) || left.name.localeCompare(right.name));
325
+ if (result.length === 0)
326
+ notices.push('此目录版本没有可安全确认的内容清单。');
327
+ return {
328
+ pluginId: options.pluginId,
329
+ pluginVersion: options.plugin.manifest.version,
330
+ catalogVersion: options.catalogVersion,
331
+ evidence: 'catalogBundle',
332
+ items: result,
333
+ notices: [...new Set(notices)],
334
+ };
335
+ }
336
+ //# sourceMappingURL=plugin-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-content.js","sourceRoot":"","sources":["../../../src/tui/plugin-content.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { PlatformName, Scope } from '../types.js';
2
2
  export type PortableBlockerCode = 'requiredConfigMissing' | 'portableSkillsCliMissing' | 'portableSkillsCliIncompatible' | 'portableScopeUnavailable' | 'portableValidationFailed';
3
- export type PluginInstallFilter = 'all' | 'uninstalled' | 'updateAvailable';
3
+ export type PluginInstallFilter = 'all' | 'installed' | 'uninstalled' | 'updateAvailable' | 'attention';
4
4
  export interface ConfigInvalidStoreEvidence {
5
5
  scope: Scope;
6
6
  code: 'invalidJson' | 'schemaVersionUnsupported' | 'identityMismatch' | 'invalidValues';
@@ -16,7 +16,7 @@ export type ConfigResumeRoute = {
16
16
  name: 'configFieldEditor';
17
17
  pluginId: string;
18
18
  layer: {
19
- scope: Scope;
19
+ scope: Scope | 'effective';
20
20
  };
21
21
  fieldKey: string;
22
22
  editor: 'boolean' | 'number' | 'string' | 'object';
@@ -25,7 +25,7 @@ export type ConfigResumeRoute = {
25
25
  name: 'configObjectPropertyEditor';
26
26
  pluginId: string;
27
27
  layer: {
28
- scope: Scope;
28
+ scope: Scope | 'effective';
29
29
  };
30
30
  fieldKey: string;
31
31
  propertyKey?: string;
@@ -35,7 +35,7 @@ export type ConfigResumeRoute = {
35
35
  name: 'configFieldAction';
36
36
  pluginId: string;
37
37
  layer: {
38
- scope: Scope;
38
+ scope: Scope | 'effective';
39
39
  };
40
40
  fieldKey: string;
41
41
  };
@@ -58,6 +58,10 @@ export type TuiRoute = {
58
58
  };
59
59
  } | {
60
60
  name: 'batchSelection';
61
+ } | {
62
+ name: 'batchInstallPlatforms';
63
+ } | {
64
+ name: 'batchInstallScope';
61
65
  } | {
62
66
  name: 'batchPlacement';
63
67
  } | {
@@ -66,6 +70,10 @@ export type TuiRoute = {
66
70
  } | {
67
71
  name: 'portableSkillSelect';
68
72
  pluginId: string;
73
+ } | {
74
+ name: 'portableSkillSummary';
75
+ pluginId: string;
76
+ skillName: string;
69
77
  } | {
70
78
  name: 'portableDependencies';
71
79
  pluginId: string;
@@ -104,6 +112,9 @@ export type TuiRoute = {
104
112
  name: 'installTargets';
105
113
  pluginId: string;
106
114
  view?: 'selection' | 'blocked';
115
+ } | {
116
+ name: 'uninstallTargets';
117
+ pluginId: string;
107
118
  } | {
108
119
  name: 'dependencyPlacement';
109
120
  pluginId: string;
@@ -115,6 +126,9 @@ export type TuiRoute = {
115
126
  } | {
116
127
  name: 'pluginDetail';
117
128
  pluginId: string;
129
+ } | {
130
+ name: 'pluginContent';
131
+ pluginId: string;
118
132
  } | {
119
133
  name: 'pluginMore';
120
134
  pluginId: string;
@@ -144,7 +158,7 @@ export type TuiRoute = {
144
158
  name: 'configFieldEditor';
145
159
  pluginId: string;
146
160
  layer: {
147
- scope: Scope;
161
+ scope: Scope | 'effective';
148
162
  };
149
163
  fieldKey: string;
150
164
  editor: 'boolean' | 'number' | 'string' | 'object';
@@ -153,7 +167,7 @@ export type TuiRoute = {
153
167
  name: 'configObjectPropertyEditor';
154
168
  pluginId: string;
155
169
  layer: {
156
- scope: Scope;
170
+ scope: Scope | 'effective';
157
171
  };
158
172
  fieldKey: string;
159
173
  propertyKey?: string;
@@ -163,7 +177,7 @@ export type TuiRoute = {
163
177
  name: 'configFieldAction';
164
178
  pluginId: string;
165
179
  layer: {
166
- scope: Scope;
180
+ scope: Scope | 'effective';
167
181
  };
168
182
  fieldKey: string;
169
183
  } | {
@@ -206,7 +220,7 @@ export type TuiRoute = {
206
220
  name: 'configSave';
207
221
  pluginId: string;
208
222
  layer: {
209
- scope: Scope;
223
+ scope: Scope | 'effective';
210
224
  };
211
225
  view?: 'summary' | 'changes';
212
226
  } | {
@@ -215,6 +229,10 @@ export type TuiRoute = {
215
229
  } | {
216
230
  name: 'sourceRemoveBlocked';
217
231
  sourceId: string;
232
+ } | {
233
+ name: 'catalogStoreOverview';
234
+ } | {
235
+ name: 'catalogStoreRules';
218
236
  } | {
219
237
  name: 'issueList';
220
238
  } | {
@@ -262,7 +280,7 @@ export interface TuiRouterSnapshot {
262
280
  currentFlowId?: string;
263
281
  depth: number;
264
282
  }
265
- export type TuiFlowKind = 'pluginInstall' | 'pluginMaintenance' | 'configEdit' | 'sourceEdit' | 'sourceRecovery' | 'portableInstall' | 'batchWrite' | 'pluginWriteTask';
283
+ export type TuiFlowKind = 'pluginInstall' | 'pluginMaintenance' | 'configEdit' | 'sourceEdit' | 'sourceRecovery' | 'catalogStore' | 'portableInstall' | 'batchWrite' | 'pluginWriteTask';
266
284
  export interface TuiFlowScope {
267
285
  id: string;
268
286
  kind: TuiFlowKind;
@@ -106,7 +106,7 @@ export class TuiRouter {
106
106
  if (origin.route.name !== 'pluginList') {
107
107
  throw new Error('Batch flow must start from a plugin list.');
108
108
  }
109
- return this.beginFlow('batchWrite', { name: 'pluginList', mode: 'installed' }, origin.id);
109
+ return this.beginFlow('batchWrite', origin.route, origin.id, origin.context);
110
110
  }
111
111
  activeFlow() {
112
112
  const flow = this.#activeFlowId ? this.#flows.get(this.#activeFlowId) : undefined;
@@ -255,7 +255,8 @@ export class TuiRouter {
255
255
  }
256
256
  beginPortableFlow(pluginId) {
257
257
  const currentFrame = this.#stack.at(-1);
258
- if ((currentFrame.route.name === 'pluginPreview' || currentFrame.route.name === 'pluginDetail')
258
+ if ((currentFrame.route.name === 'pluginPreview' || currentFrame.route.name === 'pluginDetail'
259
+ || currentFrame.route.name === 'installTargets')
259
260
  && currentFrame.route.pluginId === pluginId) {
260
261
  const active = this.activeFlow();
261
262
  if (active?.kind !== 'portableInstall')
@@ -265,7 +266,8 @@ export class TuiRouter {
265
266
  const active = this.activeFlow();
266
267
  if (active?.kind === 'portableInstall') {
267
268
  const frame = this.#stack.find((candidate) => candidate.id === active.originFrameId);
268
- if (frame && (frame.route.name === 'pluginPreview' || frame.route.name === 'pluginDetail')
269
+ if (frame && (frame.route.name === 'pluginPreview' || frame.route.name === 'pluginDetail'
270
+ || frame.route.name === 'installTargets')
269
271
  && frame.route.pluginId === pluginId) {
270
272
  return copyFrame(frame).route;
271
273
  }
@@ -273,7 +275,8 @@ export class TuiRouter {
273
275
  let existingOrigin = -1;
274
276
  for (let candidate = this.#stack.length - 1; candidate >= 0; candidate -= 1) {
275
277
  const frame = this.#stack[candidate];
276
- if ((frame.route.name === 'pluginPreview' || frame.route.name === 'pluginDetail')
278
+ if ((frame.route.name === 'pluginPreview' || frame.route.name === 'pluginDetail'
279
+ || frame.route.name === 'installTargets')
277
280
  && frame.route.pluginId === pluginId) {
278
281
  existingOrigin = candidate;
279
282
  break;
@@ -281,9 +284,9 @@ export class TuiRouter {
281
284
  }
282
285
  const index = existingOrigin >= 0 ? existingOrigin : this.#stack.length - 1;
283
286
  let route = this.#stack[index].route;
284
- if ((route.name !== 'pluginPreview' && route.name !== 'pluginDetail')
287
+ if ((route.name !== 'pluginPreview' && route.name !== 'pluginDetail' && route.name !== 'installTargets')
285
288
  || route.pluginId !== pluginId) {
286
- this.replace({ name: 'pluginPreview', pluginId });
289
+ this.replace({ name: 'pluginDetail', pluginId });
287
290
  route = this.#stack[index].route;
288
291
  }
289
292
  this.beginFlow('portableInstall', route, this.#stack[index].id);
@@ -297,7 +300,7 @@ export class TuiRouter {
297
300
  return copyFrame(frame).route;
298
301
  }
299
302
  }
300
- return { name: 'pluginPreview', pluginId };
303
+ return { name: 'pluginDetail', pluginId };
301
304
  }
302
305
  discardSourceFlow(owner, returnRoute) {
303
306
  const start = this.#stack.findIndex((frame) => (frame.route.name === 'sourceAdd' || frame.route.name === 'sourceEdit')
@@ -324,12 +327,13 @@ export class TuiRouter {
324
327
  const origin = flow?.kind === 'portableInstall'
325
328
  ? this.#stack.find((frame) => frame.id === flow.originFrameId)
326
329
  : undefined;
327
- if (origin && (origin.route.name === 'pluginPreview' || origin.route.name === 'pluginDetail')
330
+ if (origin && (origin.route.name === 'pluginPreview' || origin.route.name === 'pluginDetail'
331
+ || origin.route.name === 'installTargets')
328
332
  && origin.route.pluginId === pluginId) {
329
333
  this.finishFlow();
330
334
  }
331
335
  else {
332
- this.replace({ name: 'pluginPreview', pluginId });
336
+ this.replace({ name: 'pluginDetail', pluginId });
333
337
  }
334
338
  return this.snapshot;
335
339
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/tui/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/tui/router.ts"],"names":[],"mappings":"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"}