@aotui/runtime 1.0.0 → 1.0.1

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.
@@ -0,0 +1,41 @@
1
+ import { type CatalogData } from './default-catalog.js';
2
+ import type { CatalogConfig, CatalogTrustKeyConfig } from '../engine/app/config.js';
3
+ export interface CatalogSignature {
4
+ keyId: string;
5
+ algorithm?: 'ed25519';
6
+ value: string;
7
+ }
8
+ export interface RemoteCatalogEnvelope {
9
+ catalog: CatalogData;
10
+ signature?: CatalogSignature;
11
+ }
12
+ export interface TrustedCatalogKey {
13
+ keyId: string;
14
+ algorithm: 'ed25519';
15
+ publicKey: string;
16
+ }
17
+ export interface CatalogResolverOptions {
18
+ remoteUrl?: string;
19
+ cachePath?: string;
20
+ requireSignature?: boolean;
21
+ trustedKeys?: TrustedCatalogKey[];
22
+ fetchImpl?: typeof fetch;
23
+ }
24
+ export interface ResolvedCatalog {
25
+ source: 'remote' | 'cache' | 'builtin';
26
+ catalog: CatalogData;
27
+ remoteUrl?: string;
28
+ cachedAt?: string;
29
+ signatureVerified: boolean;
30
+ warnings: string[];
31
+ }
32
+ export declare function resolveCatalogOptionsFromConfig(config?: CatalogConfig): CatalogResolverOptions;
33
+ export declare function resolveCatalog(options?: CatalogResolverOptions): Promise<ResolvedCatalog>;
34
+ export declare function fetchRemoteCatalog(remoteUrl: string, options?: CatalogResolverOptions): Promise<{
35
+ catalog: CatalogData;
36
+ signature?: CatalogSignature;
37
+ signatureVerified: boolean;
38
+ warnings: string[];
39
+ }>;
40
+ export declare function verifyCatalogSignature(catalog: CatalogData, signature: CatalogSignature, key: TrustedCatalogKey | CatalogTrustKeyConfig): boolean;
41
+ export declare function stableStringify(value: unknown): string;
@@ -0,0 +1,186 @@
1
+ import { createPublicKey, verify } from 'crypto';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ import { promises as fs } from 'fs';
5
+ import { DEFAULT_APP_CATALOG } from './default-catalog.js';
6
+ import { isCatalogData } from './catalog.js';
7
+ export function resolveCatalogOptionsFromConfig(config) {
8
+ return {
9
+ remoteUrl: config?.url ?? process.env.AOTUI_APP_CATALOG_URL,
10
+ cachePath: config?.cachePath,
11
+ requireSignature: config?.requireSignature ?? false,
12
+ trustedKeys: (config?.trustedKeys ?? []).map((key) => ({
13
+ keyId: key.keyId,
14
+ algorithm: key.algorithm ?? 'ed25519',
15
+ publicKey: key.publicKey
16
+ }))
17
+ };
18
+ }
19
+ export async function resolveCatalog(options = {}) {
20
+ const remoteUrl = options.remoteUrl?.trim();
21
+ const cachePath = options.cachePath ?? getDefaultCatalogCachePath();
22
+ const warnings = [];
23
+ if (remoteUrl) {
24
+ try {
25
+ const remote = await fetchRemoteCatalog(remoteUrl, options);
26
+ await writeCatalogCache(cachePath, {
27
+ remoteUrl,
28
+ cachedAt: new Date().toISOString(),
29
+ signatureVerified: remote.signatureVerified,
30
+ catalog: remote.catalog,
31
+ signature: remote.signature
32
+ });
33
+ return {
34
+ source: 'remote',
35
+ catalog: remote.catalog,
36
+ remoteUrl,
37
+ cachedAt: new Date().toISOString(),
38
+ signatureVerified: remote.signatureVerified,
39
+ warnings: remote.warnings
40
+ };
41
+ }
42
+ catch (error) {
43
+ const message = error instanceof Error ? error.message : String(error);
44
+ warnings.push(`Remote catalog unavailable: ${message}`);
45
+ const cached = await readCatalogCache(cachePath);
46
+ if (cached) {
47
+ return {
48
+ source: 'cache',
49
+ catalog: cached.catalog,
50
+ remoteUrl: cached.remoteUrl,
51
+ cachedAt: cached.cachedAt,
52
+ signatureVerified: cached.signatureVerified,
53
+ warnings
54
+ };
55
+ }
56
+ }
57
+ }
58
+ return {
59
+ source: 'builtin',
60
+ catalog: DEFAULT_APP_CATALOG,
61
+ signatureVerified: false,
62
+ warnings
63
+ };
64
+ }
65
+ export async function fetchRemoteCatalog(remoteUrl, options = {}) {
66
+ const fetchImpl = options.fetchImpl ?? globalThis.fetch;
67
+ if (!fetchImpl) {
68
+ throw new Error('Fetch API is not available in this runtime');
69
+ }
70
+ const response = await fetchImpl(remoteUrl, {
71
+ headers: {
72
+ accept: 'application/json'
73
+ }
74
+ });
75
+ if (!response.ok) {
76
+ throw new Error(`HTTP ${response.status} ${response.statusText}`.trim());
77
+ }
78
+ const json = await response.json();
79
+ const envelope = normalizeEnvelope(json);
80
+ const trustedKeys = options.trustedKeys ?? [];
81
+ const requireSignature = options.requireSignature ?? false;
82
+ const warnings = [];
83
+ let signatureVerified = false;
84
+ if (envelope.signature) {
85
+ if (envelope.signature.algorithm && envelope.signature.algorithm !== 'ed25519') {
86
+ throw new Error(`Unsupported catalog signature algorithm: ${envelope.signature.algorithm}`);
87
+ }
88
+ const key = trustedKeys.find((item) => item.keyId === envelope.signature?.keyId);
89
+ if (!key) {
90
+ if (requireSignature || trustedKeys.length > 0) {
91
+ throw new Error(`Missing trusted key for catalog signature: ${envelope.signature.keyId}`);
92
+ }
93
+ warnings.push(`Catalog signature present but key "${envelope.signature.keyId}" is not configured as trusted.`);
94
+ }
95
+ else {
96
+ const verified = verifyCatalogSignature(envelope.catalog, envelope.signature, key);
97
+ if (!verified) {
98
+ throw new Error(`Catalog signature verification failed for key "${envelope.signature.keyId}"`);
99
+ }
100
+ signatureVerified = true;
101
+ }
102
+ }
103
+ else if (requireSignature || trustedKeys.length > 0) {
104
+ throw new Error('Remote catalog is unsigned, but signature verification is required');
105
+ }
106
+ return {
107
+ catalog: envelope.catalog,
108
+ signature: envelope.signature,
109
+ signatureVerified,
110
+ warnings
111
+ };
112
+ }
113
+ export function verifyCatalogSignature(catalog, signature, key) {
114
+ const normalizedAlgorithm = key.algorithm ?? 'ed25519';
115
+ if (normalizedAlgorithm !== 'ed25519') {
116
+ throw new Error(`Unsupported trusted key algorithm: ${normalizedAlgorithm}`);
117
+ }
118
+ const publicKey = createPublicKey(key.publicKey);
119
+ const payload = Buffer.from(stableStringify(catalog), 'utf-8');
120
+ const signatureBytes = Buffer.from(signature.value, 'base64');
121
+ return verify(null, payload, publicKey, signatureBytes);
122
+ }
123
+ export function stableStringify(value) {
124
+ if (Array.isArray(value)) {
125
+ return `[${value.map((item) => stableStringify(item)).join(',')}]`;
126
+ }
127
+ if (value && typeof value === 'object') {
128
+ const entries = Object.entries(value)
129
+ .filter(([, entryValue]) => entryValue !== undefined)
130
+ .sort(([left], [right]) => left.localeCompare(right));
131
+ return `{${entries.map(([key, entryValue]) => `${JSON.stringify(key)}:${stableStringify(entryValue)}`).join(',')}}`;
132
+ }
133
+ return JSON.stringify(value);
134
+ }
135
+ function normalizeEnvelope(value) {
136
+ if (isCatalogData(value)) {
137
+ return { catalog: value };
138
+ }
139
+ if (typeof value !== 'object' || value === null) {
140
+ throw new Error('Catalog response is not a valid JSON object');
141
+ }
142
+ const envelope = value;
143
+ if (!isCatalogData(envelope.catalog)) {
144
+ throw new Error('Catalog response does not include a valid "catalog" payload');
145
+ }
146
+ if (envelope.signature !== undefined) {
147
+ if (typeof envelope.signature !== 'object' || envelope.signature === null) {
148
+ throw new Error('Catalog signature must be an object');
149
+ }
150
+ const signature = envelope.signature;
151
+ if (typeof signature.keyId !== 'string' || typeof signature.value !== 'string') {
152
+ throw new Error('Catalog signature is missing keyId or value');
153
+ }
154
+ if (signature.algorithm !== undefined && signature.algorithm !== 'ed25519') {
155
+ throw new Error(`Unsupported catalog signature algorithm: ${signature.algorithm}`);
156
+ }
157
+ }
158
+ return envelope;
159
+ }
160
+ function getDefaultCatalogCachePath() {
161
+ return path.join(os.homedir(), '.agentina', 'cache', 'app-catalog.json');
162
+ }
163
+ async function readCatalogCache(cachePath) {
164
+ try {
165
+ const content = await fs.readFile(cachePath, 'utf-8');
166
+ const cached = JSON.parse(content);
167
+ if (!isCatalogData(cached.catalog)) {
168
+ return null;
169
+ }
170
+ if (typeof cached.remoteUrl !== 'string' || typeof cached.cachedAt !== 'string' || typeof cached.signatureVerified !== 'boolean') {
171
+ return null;
172
+ }
173
+ return cached;
174
+ }
175
+ catch (error) {
176
+ if (error?.code === 'ENOENT') {
177
+ return null;
178
+ }
179
+ throw error;
180
+ }
181
+ }
182
+ async function writeCatalogCache(cachePath, record) {
183
+ await fs.mkdir(path.dirname(cachePath), { recursive: true });
184
+ await fs.writeFile(cachePath, JSON.stringify(record, null, 2), 'utf-8');
185
+ }
186
+ //# sourceMappingURL=catalog-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-resolver.js","sourceRoot":"","sources":["../../src/cli/catalog-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type CatalogAppEntry, type CatalogData } from './default-catalog.js';
2
+ export interface CatalogSearchResult extends CatalogAppEntry {
3
+ score: number;
4
+ }
5
+ export declare function isCatalogData(value: unknown): value is CatalogData;
6
+ export declare function searchCatalog(query: string | undefined, catalog?: CatalogData): CatalogSearchResult[];
@@ -0,0 +1,55 @@
1
+ import { DEFAULT_APP_CATALOG } from './default-catalog.js';
2
+ export function isCatalogData(value) {
3
+ if (typeof value !== 'object' || value === null) {
4
+ return false;
5
+ }
6
+ const candidate = value;
7
+ if (typeof candidate.version !== 'number' || typeof candidate.updatedAt !== 'string' || !Array.isArray(candidate.apps)) {
8
+ return false;
9
+ }
10
+ return candidate.apps.every((app) => (typeof app === 'object'
11
+ && app !== null
12
+ && typeof app.id === 'string'
13
+ && typeof app.name === 'string'
14
+ && typeof app.packageName === 'string'
15
+ && typeof app.description === 'string'
16
+ && typeof app.latestVersion === 'string'
17
+ && (app.keywords === undefined || Array.isArray(app.keywords))
18
+ && (app.homepage === undefined || typeof app.homepage === 'string')));
19
+ }
20
+ export function searchCatalog(query, catalog = DEFAULT_APP_CATALOG) {
21
+ const normalized = (query ?? '').trim().toLowerCase();
22
+ if (!normalized) {
23
+ return catalog.apps.map((app) => ({ ...app, score: 1 }));
24
+ }
25
+ const matches = catalog.apps
26
+ .map((app) => {
27
+ const haystacks = [
28
+ app.id,
29
+ app.name,
30
+ app.packageName,
31
+ app.description,
32
+ ...(app.keywords ?? [])
33
+ ].map((item) => item.toLowerCase());
34
+ const contains = haystacks.some((item) => item.includes(normalized));
35
+ if (!contains) {
36
+ return null;
37
+ }
38
+ let score = 10;
39
+ if (app.packageName.toLowerCase() === normalized)
40
+ score += 30;
41
+ if (app.id.toLowerCase() === normalized)
42
+ score += 20;
43
+ if (app.name.toLowerCase() === normalized)
44
+ score += 15;
45
+ if (app.packageName.toLowerCase().includes(normalized))
46
+ score += 8;
47
+ if ((app.keywords ?? []).some((k) => k.toLowerCase() === normalized))
48
+ score += 5;
49
+ return { ...app, score };
50
+ })
51
+ .filter((app) => app !== null)
52
+ .sort((a, b) => b.score - a.score || a.packageName.localeCompare(b.packageName));
53
+ return matches;
54
+ }
55
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/cli/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA0C,MAAM,sBAAsB,CAAC;AAMnG,MAAM,UAAU,aAAa,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,KAA6B,CAAC;IAChD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACrH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjC,OAAO,GAAG,KAAK,QAAQ;WACpB,GAAG,KAAK,IAAI;WACZ,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;WAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;WAC5B,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;WACnC,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;WACnC,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;WACrC,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;WAC3D,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACtE,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAyB,EAAE,UAAuB,mBAAmB;IAC/F,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI;SACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACT,MAAM,SAAS,GAAG;YACd,GAAG,CAAC,EAAE;YACN,GAAG,CAAC,IAAI;YACR,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC1B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,UAAU;YAAE,KAAK,IAAI,EAAE,CAAC;QAC9D,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU;YAAE,KAAK,IAAI,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;YAAE,KAAK,IAAI,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAEjF,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAA8B,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;SACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAErF,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface CatalogAppEntry {
2
+ id: string;
3
+ name: string;
4
+ packageName: string;
5
+ description: string;
6
+ latestVersion: string;
7
+ keywords?: string[];
8
+ homepage?: string;
9
+ }
10
+ export interface CatalogData {
11
+ version: number;
12
+ updatedAt: string;
13
+ apps: CatalogAppEntry[];
14
+ }
15
+ export declare const DEFAULT_APP_CATALOG: CatalogData;
@@ -0,0 +1,39 @@
1
+ export const DEFAULT_APP_CATALOG = {
2
+ version: 1,
3
+ updatedAt: '2026-03-06T00:00:00.000Z',
4
+ apps: [
5
+ {
6
+ id: 'system-terminal',
7
+ name: 'Terminal',
8
+ packageName: '@aotui/system-terminal',
9
+ description: 'Multi-terminal command execution app for agent workflows.',
10
+ latestVersion: '0.1.0',
11
+ keywords: ['terminal', 'shell', 'command', 'tools']
12
+ },
13
+ {
14
+ id: 'system-planning',
15
+ name: 'Planning App',
16
+ packageName: '@aotui/system-planning',
17
+ description: 'Create plans, phases, and todos for long-running tasks.',
18
+ latestVersion: '0.1.0',
19
+ keywords: ['planning', 'todo', 'project', 'task']
20
+ },
21
+ {
22
+ id: 'system-lite-browser',
23
+ name: 'Lite Browser',
24
+ packageName: '@aotui/system-lite-browser',
25
+ description: 'Lightweight browser with page extraction for agents.',
26
+ latestVersion: '0.1.0',
27
+ keywords: ['browser', 'web', 'search', 'crawl']
28
+ },
29
+ {
30
+ id: 'system-token-monitor',
31
+ name: 'Token Monitor',
32
+ packageName: '@aotui/system-token-monitor',
33
+ description: 'Observe token usage and budget in AOTUI sessions.',
34
+ latestVersion: '0.1.0',
35
+ keywords: ['token', 'monitor', 'budget', 'usage']
36
+ }
37
+ ]
38
+ };
39
+ //# sourceMappingURL=default-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-catalog.js","sourceRoot":"","sources":["../../src/cli/default-catalog.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC5C,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,0BAA0B;IACrC,IAAI,EAAE;QACF;YACI,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE,2DAA2D;YACxE,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;SACtD;QACD;YACI,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE,yDAAyD;YACtE,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;SACpD;QACD;YACI,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,4BAA4B;YACzC,WAAW,EAAE,sDAAsD;YACnE,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;SAClD;QACD;YACI,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,mDAAmD;YAChE,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;SACpD;KACJ;CACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface NpmInstallOptions {
2
+ cacheRoot?: string;
3
+ forceReinstall?: boolean;
4
+ npmBinary?: string;
5
+ commandRunner?: (command: string, args: string[], cwd: string) => Promise<void>;
6
+ }
7
+ export interface NpmInstallResult {
8
+ packageName: string;
9
+ packageSpec: string;
10
+ requestedVersion: string | null;
11
+ resolvedVersion: string | null;
12
+ installRoot: string;
13
+ installedPath: string;
14
+ localSource: string;
15
+ }
16
+ export declare function installNpmPackage(packageInput: string, options?: NpmInstallOptions): Promise<NpmInstallResult>;
@@ -0,0 +1,88 @@
1
+ import path from 'path';
2
+ import os from 'os';
3
+ import fs from 'fs';
4
+ import fsp from 'fs/promises';
5
+ import { execFile as nodeExecFile } from 'child_process';
6
+ import { promisify } from 'util';
7
+ import { parseNpmSpecifier } from './sources.js';
8
+ const execFile = promisify(nodeExecFile);
9
+ export async function installNpmPackage(packageInput, options) {
10
+ const parsed = parseNpmSpecifier(packageInput);
11
+ const cacheRoot = options?.cacheRoot ?? getDefaultAppCacheRoot();
12
+ const npmBinary = options?.npmBinary ?? 'npm';
13
+ const requestedVersion = parsed.version;
14
+ const versionSegment = sanitizeSegment(parsed.version ?? 'latest');
15
+ const packageSegment = sanitizePackageName(parsed.packageName);
16
+ const installRoot = path.join(cacheRoot, packageSegment, versionSegment);
17
+ await fsp.mkdir(installRoot, { recursive: true });
18
+ await ensureInstallWorkspace(installRoot);
19
+ const installedPath = path.join(installRoot, 'node_modules', parsed.packageName);
20
+ const alreadyInstalled = fs.existsSync(installedPath);
21
+ if (!alreadyInstalled || options?.forceReinstall) {
22
+ await runInstallCommand(npmBinary, ['install', '--no-save', '--omit=dev', '--ignore-scripts', parsed.packageSpec], installRoot, options?.commandRunner);
23
+ }
24
+ if (!fs.existsSync(installedPath)) {
25
+ throw new Error(`Package install succeeded but app path was not found: ${installedPath}`);
26
+ }
27
+ const resolvedVersion = await readPackageVersion(installedPath);
28
+ return {
29
+ packageName: parsed.packageName,
30
+ packageSpec: parsed.packageSpec,
31
+ requestedVersion,
32
+ resolvedVersion,
33
+ installRoot,
34
+ installedPath,
35
+ localSource: `local:${installedPath}`
36
+ };
37
+ }
38
+ function getDefaultAppCacheRoot() {
39
+ return path.join(os.homedir(), '.agentina', 'apps', 'npm');
40
+ }
41
+ async function ensureInstallWorkspace(workspaceRoot) {
42
+ const packageJsonPath = path.join(workspaceRoot, 'package.json');
43
+ if (fs.existsSync(packageJsonPath)) {
44
+ return;
45
+ }
46
+ await fsp.writeFile(packageJsonPath, JSON.stringify({
47
+ name: 'agentina-app-cache',
48
+ private: true
49
+ }, null, 2), 'utf-8');
50
+ }
51
+ async function runInstallCommand(command, args, cwd, commandRunner) {
52
+ if (commandRunner) {
53
+ await commandRunner(command, args, cwd);
54
+ return;
55
+ }
56
+ try {
57
+ await execFile(command, args, { cwd });
58
+ }
59
+ catch (error) {
60
+ const stderr = error?.stderr ? String(error.stderr).trim() : '';
61
+ const reason = stderr ? `: ${stderr}` : '';
62
+ throw new Error(`Failed to install npm package with "${command} ${args.join(' ')}"${reason}`);
63
+ }
64
+ }
65
+ async function readPackageVersion(installedPath) {
66
+ const packageJsonPath = path.join(installedPath, 'package.json');
67
+ if (!fs.existsSync(packageJsonPath)) {
68
+ return null;
69
+ }
70
+ try {
71
+ const raw = await fsp.readFile(packageJsonPath, 'utf-8');
72
+ const json = JSON.parse(raw);
73
+ return typeof json.version === 'string' ? json.version : null;
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ function sanitizePackageName(value) {
80
+ return value
81
+ .replace(/^@/, 'scope-')
82
+ .replace(/[\\/]/g, '__')
83
+ .replace(/[^a-zA-Z0-9._-]/g, '_');
84
+ }
85
+ function sanitizeSegment(value) {
86
+ return value.replace(/[^a-zA-Z0-9._-]/g, '_');
87
+ }
88
+ //# sourceMappingURL=npm-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-installer.js","sourceRoot":"","sources":["../../src/cli/npm-installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface NpmSpecifier {
2
+ packageName: string;
3
+ version: string | null;
4
+ packageSpec: string;
5
+ }
6
+ export type ParsedInstallSource = ParsedLocalSource | ParsedNpmSource;
7
+ export interface ParsedLocalSource {
8
+ kind: 'local';
9
+ source: string;
10
+ absolutePath: string;
11
+ }
12
+ export interface ParsedNpmSource {
13
+ kind: 'npm';
14
+ source: string;
15
+ packageName: string;
16
+ version: string | null;
17
+ packageSpec: string;
18
+ }
19
+ export declare function parseInstallSource(input: string, cwd?: string): ParsedInstallSource;
20
+ export declare function parseNpmSpecifier(raw: string): NpmSpecifier;
21
+ export declare function looksLikeLocalPath(value: string): boolean;
@@ -0,0 +1,131 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ import { fileURLToPath } from 'url';
5
+ export function parseInstallSource(input, cwd = process.cwd()) {
6
+ const value = input.trim();
7
+ if (!value) {
8
+ throw new Error('Install source is required');
9
+ }
10
+ if (value.startsWith('git:')) {
11
+ throw new Error('git source is not supported yet. Use npm package or local path');
12
+ }
13
+ if (value.startsWith('local:')) {
14
+ const localPath = value.slice('local:'.length);
15
+ return parseLocalSource(localPath, cwd);
16
+ }
17
+ if (value.startsWith('file://')) {
18
+ const absolutePath = fileURLToPath(value);
19
+ return {
20
+ kind: 'local',
21
+ source: `local:${absolutePath}`,
22
+ absolutePath
23
+ };
24
+ }
25
+ if (value.startsWith('npm:')) {
26
+ const npm = parseNpmSpecifier(value.slice('npm:'.length));
27
+ return {
28
+ kind: 'npm',
29
+ source: `npm:${npm.packageSpec}`,
30
+ packageName: npm.packageName,
31
+ version: npm.version,
32
+ packageSpec: npm.packageSpec
33
+ };
34
+ }
35
+ if (looksLikeLocalPath(value)) {
36
+ return parseLocalSource(value, cwd);
37
+ }
38
+ const npm = parseNpmSpecifier(value);
39
+ return {
40
+ kind: 'npm',
41
+ source: `npm:${npm.packageSpec}`,
42
+ packageName: npm.packageName,
43
+ version: npm.version,
44
+ packageSpec: npm.packageSpec
45
+ };
46
+ }
47
+ function parseLocalSource(localPathInput, cwd) {
48
+ const expanded = expandHomePath(localPathInput.trim());
49
+ const absolutePath = path.isAbsolute(expanded)
50
+ ? expanded
51
+ : path.resolve(cwd, expanded);
52
+ return {
53
+ kind: 'local',
54
+ source: `local:${absolutePath}`,
55
+ absolutePath
56
+ };
57
+ }
58
+ export function parseNpmSpecifier(raw) {
59
+ const spec = raw.trim();
60
+ if (!spec) {
61
+ throw new Error('npm package spec cannot be empty');
62
+ }
63
+ if (spec.startsWith('@')) {
64
+ const slashIndex = spec.indexOf('/');
65
+ if (slashIndex <= 1) {
66
+ throw new Error(`Invalid scoped npm package spec: ${raw}`);
67
+ }
68
+ const atAfterScope = spec.lastIndexOf('@');
69
+ if (atAfterScope > slashIndex) {
70
+ const packageName = spec.slice(0, atAfterScope);
71
+ const version = spec.slice(atAfterScope + 1);
72
+ validatePackageName(packageName, raw);
73
+ return {
74
+ packageName,
75
+ version: version || null,
76
+ packageSpec: version ? `${packageName}@${version}` : packageName
77
+ };
78
+ }
79
+ validatePackageName(spec, raw);
80
+ return {
81
+ packageName: spec,
82
+ version: null,
83
+ packageSpec: spec
84
+ };
85
+ }
86
+ const atIndex = spec.lastIndexOf('@');
87
+ if (atIndex > 0) {
88
+ const packageName = spec.slice(0, atIndex);
89
+ const version = spec.slice(atIndex + 1);
90
+ validatePackageName(packageName, raw);
91
+ return {
92
+ packageName,
93
+ version: version || null,
94
+ packageSpec: version ? `${packageName}@${version}` : packageName
95
+ };
96
+ }
97
+ validatePackageName(spec, raw);
98
+ return {
99
+ packageName: spec,
100
+ version: null,
101
+ packageSpec: spec
102
+ };
103
+ }
104
+ export function looksLikeLocalPath(value) {
105
+ if (!value)
106
+ return false;
107
+ if (value.startsWith('.') || value.startsWith('/') || value.startsWith('~'))
108
+ return true;
109
+ if (/^[a-zA-Z]:[\\/]/.test(value))
110
+ return true;
111
+ if (value.startsWith('file://'))
112
+ return true;
113
+ if (value.startsWith('@'))
114
+ return false;
115
+ if (fs.existsSync(value))
116
+ return true;
117
+ return false;
118
+ }
119
+ function expandHomePath(input) {
120
+ if (!input.startsWith('~')) {
121
+ return input;
122
+ }
123
+ return path.join(os.homedir(), input.slice(1));
124
+ }
125
+ function validatePackageName(name, raw) {
126
+ const npmNamePattern = /^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
127
+ if (!npmNamePattern.test(name)) {
128
+ throw new Error(`Invalid npm package name in spec "${raw}"`);
129
+ }
130
+ }
131
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/cli/sources.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -3,13 +3,14 @@
3
3
  * agentina CLI - Third-Party App Management
4
4
  *
5
5
  * 命令:
6
- * agentina add <source> 安装 App
6
+ * agentina install <source> 安装 App (local/npm)
7
+ * agentina search [query] 搜索可安装 App
7
8
  * agentina remove <name> 卸载 App
8
9
  * agentina list 列出已安装
9
10
  * agentina enable <name> 启用 App
10
11
  * agentina disable <name> 禁用 App
11
12
  * agentina autostart <name> <on|off> 设置自动启动
12
- * agentina link <path> 链接本地开发目录
13
+ * agentina link <path> 链接本地开发目录 (install alias)
13
14
  * agentina run [name] Run installed apps (or specific app)
14
15
  *
15
16
  * @module @aotui/cli
package/dist/cli.js CHANGED
@@ -3,13 +3,14 @@
3
3
  * agentina CLI - Third-Party App Management
4
4
  *
5
5
  * 命令:
6
- * agentina add <source> 安装 App
6
+ * agentina install <source> 安装 App (local/npm)
7
+ * agentina search [query] 搜索可安装 App
7
8
  * agentina remove <name> 卸载 App
8
9
  * agentina list 列出已安装
9
10
  * agentina enable <name> 启用 App
10
11
  * agentina disable <name> 禁用 App
11
12
  * agentina autostart <name> <on|off> 设置自动启动
12
- * agentina link <path> 链接本地开发目录
13
+ * agentina link <path> 链接本地开发目录 (install alias)
13
14
  * agentina run [name] Run installed apps (or specific app)
14
15
  *
15
16
  * @module @aotui/cli
@@ -17,13 +18,20 @@
17
18
  import { AppRegistry } from './engine/app/index.js';
18
19
  import { createRuntime } from './facades/index.js';
19
20
  import * as readline from 'readline';
21
+ import fs from 'fs';
22
+ import { installNpmPackage } from './cli/npm-installer.js';
23
+ import { searchCatalog } from './cli/catalog.js';
24
+ import { parseInstallSource } from './cli/sources.js';
25
+ import { resolveCatalog, resolveCatalogOptionsFromConfig } from './cli/catalog-resolver.js';
20
26
  const HELP = `
21
27
  Agentina App Manager
22
28
 
23
29
  Usage: agentina <command> [options]
24
30
 
25
31
  Commands:
26
- link <path> Link a local app directory
32
+ install <source> Install app from local path or npm package
33
+ search [query] Search installable apps from catalog
34
+ link <path> Link a local app directory (alias of install local)
27
35
  remove <name> Uninstall an app
28
36
  list List installed apps
29
37
  enable <name> Enable an app
@@ -32,16 +40,18 @@ Commands:
32
40
  run [name] Run installed apps (or specific app)
33
41
 
34
42
  Options:
35
- --force Force link (overwrite existing)
36
- --as <alias> Link with a different name
37
- --no-autostart Link without auto-start
43
+ --force Force install (overwrite existing, reinstall when needed)
44
+ --as <alias> Install with a different app key
45
+ --no-autostart Install without auto-start
38
46
  --help Show help
39
47
 
40
48
  Examples:
41
- agentina link . # Link current directory as an app
42
- agentina link ./my-app # Link a local app directory
43
- agentina list # Show all installed apps
44
- agentina run my-app # Run a specific app
49
+ agentina install . # Install from local directory
50
+ agentina install @scope/aotui-weather # Install from npm
51
+ agentina search weather # Search catalog
52
+ agentina link ./my-app # Dev shortcut for local install
53
+ agentina list # Show all installed apps
54
+ agentina run my-app # Run a specific app
45
55
  `;
46
56
  async function main() {
47
57
  const args = process.argv.slice(2);
@@ -54,6 +64,13 @@ async function main() {
54
64
  await registry.loadFromConfig();
55
65
  try {
56
66
  switch (command) {
67
+ case 'install':
68
+ case 'add':
69
+ await handleInstall(registry, args.slice(1));
70
+ break;
71
+ case 'search':
72
+ await handleSearch(registry, args.slice(1));
73
+ break;
57
74
  case 'remove':
58
75
  await handleRemove(registry, args.slice(1));
59
76
  break;
@@ -86,9 +103,120 @@ async function main() {
86
103
  process.exit(1);
87
104
  }
88
105
  }
89
- // ════════════════════════════════════════════════════════════════
90
- // Command Handlers
91
- // ════════════════════════════════════════════════════════════════
106
+ function parseInstallArgs(args, commandName) {
107
+ let force = false;
108
+ let alias;
109
+ let autoStart = true;
110
+ const positional = [];
111
+ for (let i = 0; i < args.length; i++) {
112
+ const token = args[i];
113
+ if (token === '--force') {
114
+ force = true;
115
+ continue;
116
+ }
117
+ if (token === '--no-autostart') {
118
+ autoStart = false;
119
+ continue;
120
+ }
121
+ if (token === '--as') {
122
+ const next = args[i + 1];
123
+ if (!next || next.startsWith('--')) {
124
+ throw new Error('Missing alias value after --as');
125
+ }
126
+ alias = next;
127
+ i += 1;
128
+ continue;
129
+ }
130
+ if (token.startsWith('--')) {
131
+ throw new Error(`Unknown option: ${token}`);
132
+ }
133
+ positional.push(token);
134
+ }
135
+ if (positional.length === 0) {
136
+ throw new Error(`Usage: agentina ${commandName} <${commandName === 'link' ? 'path' : 'source'}> [--force] [--as <alias>] [--no-autostart]`);
137
+ }
138
+ return {
139
+ source: positional[0],
140
+ force,
141
+ alias,
142
+ autoStart
143
+ };
144
+ }
145
+ async function handleSearch(registry, args) {
146
+ const query = args[0];
147
+ const resolvedCatalog = await resolveCatalog(resolveCatalogOptionsFromConfig(registry.getConfig().catalog));
148
+ const results = searchCatalog(query, resolvedCatalog.catalog);
149
+ if (results.length === 0) {
150
+ console.log(query ? `No app found for "${query}".` : 'No app found in catalog.');
151
+ return;
152
+ }
153
+ console.log(query ? `Catalog search results for "${query}":` : 'Catalog apps:');
154
+ console.log(`Source: ${resolvedCatalog.source}${resolvedCatalog.remoteUrl ? ` (${resolvedCatalog.remoteUrl})` : ''}`);
155
+ if (resolvedCatalog.signatureVerified) {
156
+ console.log('Trust: signed catalog verified');
157
+ }
158
+ for (const warning of resolvedCatalog.warnings) {
159
+ console.log(`Warning: ${warning}`);
160
+ }
161
+ console.log('');
162
+ for (const app of results) {
163
+ console.log(`- ${app.name} (${app.id})`);
164
+ console.log(` Package: ${app.packageName}@${app.latestVersion}`);
165
+ console.log(` Description: ${app.description}`);
166
+ console.log(` Install: agentina install ${app.packageName}`);
167
+ console.log('');
168
+ }
169
+ }
170
+ async function handleInstall(registry, args, forceLocalOnly = false) {
171
+ const parsed = parseInstallArgs(args, forceLocalOnly ? 'link' : 'install');
172
+ const resolvedSource = parseInstallSource(parsed.source);
173
+ if (forceLocalOnly && resolvedSource.kind !== 'local') {
174
+ throw new Error('agentina link only accepts local path');
175
+ }
176
+ const name = await installAppFromSource(registry, resolvedSource, parsed);
177
+ if (resolvedSource.kind === 'local') {
178
+ console.log(`✅ Successfully linked local app: ${name}`);
179
+ return;
180
+ }
181
+ console.log(`✅ Successfully installed npm app: ${name}`);
182
+ }
183
+ async function installAppFromSource(registry, source, options) {
184
+ if (source.kind === 'local') {
185
+ if (!fs.existsSync(source.absolutePath)) {
186
+ throw new Error(`Local path does not exist: ${source.absolutePath}`);
187
+ }
188
+ console.log(`Linking ${source.absolutePath}...`);
189
+ return registry.add(source.source, {
190
+ force: options.force,
191
+ alias: options.alias,
192
+ autoStart: options.autoStart,
193
+ originalSource: source.source,
194
+ distribution: {
195
+ type: 'local',
196
+ installedPath: source.absolutePath,
197
+ installedAt: new Date().toISOString()
198
+ }
199
+ });
200
+ }
201
+ console.log(`Installing ${source.packageSpec} from npm...`);
202
+ const result = await installNpmPackage(source.packageSpec, {
203
+ forceReinstall: options.force
204
+ });
205
+ return registry.add(result.localSource, {
206
+ force: options.force,
207
+ alias: options.alias,
208
+ autoStart: options.autoStart,
209
+ originalSource: source.source,
210
+ distribution: {
211
+ type: 'npm',
212
+ packageName: result.packageName,
213
+ requested: result.packageSpec,
214
+ resolvedVersion: result.resolvedVersion ?? undefined,
215
+ installedPath: result.installedPath,
216
+ installedAt: new Date().toISOString()
217
+ }
218
+ });
219
+ }
92
220
  async function handleRemove(registry, args) {
93
221
  if (args.length === 0) {
94
222
  console.error('Usage: agentina remove <name>');
@@ -104,7 +232,7 @@ function handleList(registry) {
104
232
  if (appNames.length === 0) {
105
233
  console.log('No apps installed.');
106
234
  console.log('');
107
- console.log('Install an app with: tui add <package>');
235
+ console.log('Install an app with: agentina install <source>');
108
236
  return;
109
237
  }
110
238
  console.log('Installed apps:');
@@ -127,7 +255,13 @@ function handleList(registry) {
127
255
  else {
128
256
  console.log(` ${enabledStatus}${autoStartStatus} ${name} (disabled)`);
129
257
  }
130
- console.log(` Source: ${entry.source}`);
258
+ if (entry.originalSource && entry.originalSource !== entry.source) {
259
+ console.log(` Source: ${entry.originalSource}`);
260
+ console.log(` Resolved: ${entry.source}`);
261
+ }
262
+ else {
263
+ console.log(` Source: ${entry.source}`);
264
+ }
131
265
  console.log('');
132
266
  }
133
267
  // [RFC-014] Legend
@@ -160,16 +294,7 @@ async function handleAutoStart(registry, args) {
160
294
  console.log(`✅ Auto-start ${value === 'on' ? 'enabled' : 'disabled'}: ${name}`);
161
295
  }
162
296
  async function handleLink(registry, args) {
163
- if (args.length === 0) {
164
- console.error('Usage: agentina link <path>');
165
- process.exit(1);
166
- }
167
- const localPath = args[0];
168
- const path = await import('path');
169
- const absolutePath = path.resolve(localPath);
170
- console.log(`Linking ${absolutePath}...`);
171
- const name = await registry.add(`local:${absolutePath}`);
172
- console.log(`✅ Successfully linked: ${name}`);
297
+ await handleInstall(registry, args, true);
173
298
  }
174
299
  async function handleRun(registry, args) {
175
300
  const targetApp = args[0]; // Optional: run specific app
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5F,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEhC,IAAI,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,KAAK;gBACN,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM;YAEV,KAAK,QAAQ;gBACT,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM;YAEV,KAAK,QAAQ;gBACT,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM;YAEV,KAAK,MAAM;gBACP,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrB,MAAM;YAEV,KAAK,QAAQ;gBACT,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAClD,MAAM;YAEV,KAAK,SAAS;gBACV,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM;YAEV,KAAK,MAAM;gBACP,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM;YAEV,KAAK,WAAW;gBACZ,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM;YAEV,KAAK,KAAK;gBACN,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM;YAEV;gBACI,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAaD,SAAS,gBAAgB,CAAC,IAAc,EAAE,WAA+B;IACrE,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAyB,CAAC;IAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACb,CAAC;QACD,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;YAC7B,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS;QACb,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,GAAG,IAAI,CAAC;YACb,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,KAAK,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,6CAA6C,CAAC,CAAC;IAChJ,CAAC;IAED,OAAO;QACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QACrB,KAAK;QACL,KAAK;QACL,SAAS;KACZ,CAAC;AACN,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAqB,EAAE,IAAc;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,+BAA+B,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5G,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;QACjF,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,+BAA+B,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,WAAW,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtH,IAAI,eAAe,CAAC,iBAAiB,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAqB,EAAE,IAAc,EAAE,cAAc,GAAG,KAAK;IACtF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC1E,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,oBAAoB,CAC/B,QAAqB,EACrB,MAA2B,EAC3B,OAA0B;IAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,YAAY,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACxC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,WAAW,cAAc,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE;QACvD,cAAc,EAAE,OAAO,CAAC,KAAK;KAChC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,MAAM,CAAC,MAAM;QAC7B,YAAY,EAAE;YACV,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,WAAW;YAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,SAAS;YACpD,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAqB,EAAE,IAAc;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,QAAqB;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,sDAAsD;IACtD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,kDAAkD;QAClD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,8DAA8D;QAC9D,IAAI,SAAS,EAAE,CAAC;YACZ,kDAAkD;YAClD,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;YAC7F,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,GAAG,eAAe,IAAI,WAAW,KAAK,IAAI,GAAG,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,GAAG,eAAe,IAAI,IAAI,aAAa,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAqB,EAAE,IAAc,EAAE,MAAe;IAC9E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,QAAqB,EAAE,IAAc;IAChE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAqB,EAAE,IAAc;IAC3D,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,QAAqB,EAAE,IAAc;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;IAExD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,OAAO,GAAI,OAAe,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;IAEnD,2EAA2E;IAC3E,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,iCAAiC;IACjC,IAAK,OAAe,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAe,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAW,EAAE,EAAE;YAC5D,0BAA0B;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC1G,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACjD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,qCAAqC;gBACrC,IAAI,aAAa,EAAE,CAAC;oBAChB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAErE,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,0BAA0B,CAAC,CAAC;YACtD,SAAS;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,2DAA2D,CAAC,CAAC;YACvF,SAAS;QACd,CAAC;QAED,kDAAkD;QAClD,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,0BAA0B;YAC1B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YACjD,iCAAiC;YACjC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACpD,CAAC;YACA,sBAAsB;YACvB,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,QAAQ,KAAK,CAAC,CAAC;QAE5D,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,QAAQ,EAAE;gBAC1D,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE,CAAC,iCAAiC;aAC/C,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC;YAEvD,YAAY;YACZ,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;IAEpG,aAAa,GAAG,IAAI,CAAC;IACrB,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAClC,2BAA2B;oBAC3B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;wBAChC,MAAM,aAAa,GAAI,OAAO,CAAC,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACrE,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;4BAC3C,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;gCACzC,IAAI,EAAE,gBAAgB;gCACtB,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;gCAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ;gCAChC,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;6BAClB,CAAC,CAAC;4BACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;wBACjD,CAAC;oBACL,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;aAAM,CAAC;YACH,wBAAwB;YACxB,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACjD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACP,CAAC;QACN,CAAC;QACD,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM;AACN,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -49,6 +49,48 @@ export interface AppConfigEntry {
49
49
  autoStart?: boolean;
50
50
  /** [Fix] App 角色 */
51
51
  promptRole?: 'user' | 'assistant';
52
+ /**
53
+ * 原始安装来源(用于分发场景),例如:
54
+ * - npm:@scope/my-app@1.2.3
55
+ */
56
+ originalSource?: string;
57
+ /**
58
+ * 分发元数据(用于展示与排障)
59
+ */
60
+ distribution?: {
61
+ type: 'local' | 'npm' | 'git' | 'catalog';
62
+ packageName?: string;
63
+ requested?: string;
64
+ resolvedVersion?: string;
65
+ installedPath?: string;
66
+ installedAt?: string;
67
+ catalogId?: string;
68
+ [key: string]: unknown;
69
+ };
70
+ }
71
+ export interface CatalogTrustKeyConfig {
72
+ keyId: string;
73
+ algorithm?: 'ed25519';
74
+ publicKey: string;
75
+ }
76
+ export interface CatalogConfig {
77
+ /**
78
+ * 远端应用目录地址(静态 JSON / API)
79
+ */
80
+ url?: string;
81
+ /**
82
+ * 目录缓存文件路径
83
+ * 为空时使用 ~/.agentina/cache/app-catalog.json
84
+ */
85
+ cachePath?: string;
86
+ /**
87
+ * 是否强制要求远端目录签名有效
88
+ */
89
+ requireSignature?: boolean;
90
+ /**
91
+ * 受信任的签名公钥集合
92
+ */
93
+ trustedKeys?: CatalogTrustKeyConfig[];
52
94
  }
53
95
  /**
54
96
  * [Option D] Runtime 配置
@@ -71,6 +113,8 @@ export interface TUIConfig {
71
113
  version: number;
72
114
  /** [Option D] Runtime 配置 */
73
115
  runtime?: RuntimeConfig;
116
+ /** 远端目录配置 */
117
+ catalog?: CatalogConfig;
74
118
  /** 已安装的 App */
75
119
  apps: Record<string, AppConfigEntry>;
76
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/engine/app/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoFH;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAC/B,OAAO;QACH,OAAO,EAAE,CAAC;QACV,OAAO,EAAE;YACL,YAAY,EAAE,EAAE,CAAC,wBAAwB;SAC5C;QACD,IAAI,EAAE,EAAE;KACX,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAe;IAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhE,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhE,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/engine/app/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwIH;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAC/B,OAAO;QACH,OAAO,EAAE,CAAC;QACV,OAAO,EAAE;YACL,YAAY,EAAE,EAAE,CAAC,wBAAwB;SAC5C;QACD,IAAI,EAAE,EAAE;KACX,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAe;IAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhE,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhE,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -11,7 +11,7 @@
11
11
  * @module @aotui/runtime/engine/app-registry
12
12
  */
13
13
  import type { IDesktop, AppID, TUIAppFactory, AOAppManifest } from '../../spi/index.js';
14
- import type { TUIConfig } from './config.js';
14
+ import type { TUIConfig, AppConfigEntry } from './config.js';
15
15
  import type { AppLaunchConfig } from '../../spi/app/app-config.interface.js';
16
16
  export type { TUIConfig, AppConfigEntry } from './config.js';
17
17
  /**
@@ -68,6 +68,10 @@ export declare class AppRegistry {
68
68
  add(source: string, options?: {
69
69
  force?: boolean;
70
70
  alias?: string;
71
+ enabled?: boolean;
72
+ autoStart?: boolean;
73
+ originalSource?: string;
74
+ distribution?: AppConfigEntry['distribution'];
71
75
  }): Promise<string>;
72
76
  /**
73
77
  * 注册临时 App (不保存到配置文件)
@@ -95,8 +95,11 @@ export class AppRegistry {
95
95
  // 注册到配置
96
96
  this.config.apps[name] = {
97
97
  source,
98
- enabled: true,
99
- installedAt: new Date().toISOString()
98
+ enabled: options?.enabled ?? true,
99
+ autoStart: options?.autoStart,
100
+ installedAt: new Date().toISOString(),
101
+ originalSource: options?.originalSource,
102
+ distribution: options?.distribution
100
103
  };
101
104
  // 添加到内存
102
105
  this.apps.set(name, {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/engine/app/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/engine/app/registry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -33,3 +33,8 @@ export * from './adapters/bridge/index.js';
33
33
  export { AppRegistry } from './engine/app/index.js';
34
34
  export type { LoadedApp, AppRegistryOptions, TUIConfig, AppConfigEntry } from './engine/app/index.js';
35
35
  export { createSystemOperationRegistry } from './engine/system/operations/index.js';
36
+ export { DEFAULT_APP_CATALOG, type CatalogAppEntry, type CatalogData } from './cli/default-catalog.js';
37
+ export { searchCatalog, isCatalogData, type CatalogSearchResult } from './cli/catalog.js';
38
+ export { resolveCatalog, resolveCatalogOptionsFromConfig, fetchRemoteCatalog, verifyCatalogSignature, stableStringify, type CatalogSignature, type CatalogResolverOptions, type ResolvedCatalog, type TrustedCatalogKey, type RemoteCatalogEnvelope } from './cli/catalog-resolver.js';
39
+ export { parseInstallSource, parseNpmSpecifier, type ParsedInstallSource, type ParsedLocalSource, type ParsedNpmSource, type NpmSpecifier } from './cli/sources.js';
40
+ export { installNpmPackage, type NpmInstallOptions, type NpmInstallResult } from './cli/npm-installer.js';
package/dist/index.js CHANGED
@@ -54,6 +54,15 @@ export { AppRegistry } from './engine/app/index.js';
54
54
  // ============================================================================
55
55
  export { createSystemOperationRegistry } from './engine/system/operations/index.js';
56
56
  // ============================================================================
57
+ // 🟢 Public: App Distribution Helpers
58
+ // Used by Product Layer / CLI for discovery and installation workflows
59
+ // ============================================================================
60
+ export { DEFAULT_APP_CATALOG } from './cli/default-catalog.js';
61
+ export { searchCatalog, isCatalogData } from './cli/catalog.js';
62
+ export { resolveCatalog, resolveCatalogOptionsFromConfig, fetchRemoteCatalog, verifyCatalogSignature, stableStringify } from './cli/catalog-resolver.js';
63
+ export { parseInstallSource, parseNpmSpecifier } from './cli/sources.js';
64
+ export { installNpmPackage } from './cli/npm-installer.js';
65
+ // ============================================================================
57
66
  // 🔴 REMOVED: Engine Layer Exports
58
67
  //
59
68
  // [方案 B] Engine internals are no longer exported to external consumers.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAC/E,sFAAsF;AACtF,yFAAyF;AACzF,cAAc,oBAAoB,CAAC;AAEnC,+EAA+E;AAC/E,8DAA8D;AAC9D,+EAA+E;AAC/E,cAAc,gBAAgB,CAAC;AAE/B,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAC/E,cAAc,mBAAmB,CAAC;AAElC,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAC/E,cAAc,4BAA4B,CAAC;AAG3C,+EAA+E;AAC/E,uDAAuD;AACvD,gEAAgE;AAChE,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,+EAA+E;AAC/E,mCAAmC;AACnC,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,sDAAsD;AACtD,EAAE;AACF,oEAAoE;AACpE,uDAAuD;AACvD,iEAAiE;AACjE,+EAA+E"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAC/E,sFAAsF;AACtF,yFAAyF;AACzF,cAAc,oBAAoB,CAAC;AAEnC,+EAA+E;AAC/E,8DAA8D;AAC9D,+EAA+E;AAC/E,cAAc,gBAAgB,CAAC;AAE/B,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAC/E,cAAc,mBAAmB,CAAC;AAElC,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAC/E,cAAc,4BAA4B,CAAC;AAG3C,+EAA+E;AAC/E,uDAAuD;AACvD,gEAAgE;AAChE,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,+EAA+E;AAC/E,sCAAsC;AACtC,uEAAuE;AACvE,+EAA+E;AAC/E,OAAO,EACH,mBAAmB,EAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,aAAa,EACb,aAAa,EAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,cAAc,EACd,+BAA+B,EAC/B,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAMlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,kBAAkB,EAClB,iBAAiB,EAKpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,iBAAiB,EAGpB,MAAM,wBAAwB,CAAC;AAEhC,+EAA+E;AAC/E,mCAAmC;AACnC,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,sDAAsD;AACtD,EAAE;AACF,oEAAoE;AACpE,uDAAuD;AACvD,iEAAiE;AACjE,+EAA+E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aotui/runtime",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,13 @@
29
29
  "build:browser": "esbuild src/browser.ts --bundle --format=esm --outfile=../dev-tools/lib/aotui-runtime.browser.js --external:happy-dom",
30
30
  "prepublishOnly": "npm run build"
31
31
  },
32
- "keywords": ["aotui", "tui", "agent", "llm", "runtime"],
32
+ "keywords": [
33
+ "aotui",
34
+ "tui",
35
+ "agent",
36
+ "llm",
37
+ "runtime"
38
+ ],
33
39
  "author": "AOTUI",
34
40
  "license": "Apache-2.0",
35
41
  "description": "AOTUI Core Runtime - Worker isolation, TUI snapshot engine, and operation dispatch",
@@ -56,7 +62,7 @@
56
62
  "vitest": "^3.2.4"
57
63
  },
58
64
  "dependencies": {
59
- "@aotui/agent-driver-v2": "^0.2.0",
65
+ "@aotui/agent-driver-v2": "^0.2.1",
60
66
  "ai": "^6.0.77",
61
67
  "happy-dom": "^20.1.0",
62
68
  "linkedom": "^0.18.12",