@pi-harness/pi-harness 0.1.76 → 0.1.78
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/apps/web/dist/assets/{index-C2SMi81q.js → index-B0Lgl-Gu.js} +14 -14
- package/apps/web/dist/index.html +1 -1
- package/apps/web/package.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/index.js +11 -5
- package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-locales/en.json +206 -0
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +3 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +82 -7
- package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -1
- package/node_modules/@pi-harness/api-gateway/package.json +1 -1
- package/node_modules/@pi-harness/cli/package.json +1 -1
- package/node_modules/@pi-harness/host-webserver/package.json +1 -1
- package/node_modules/@pi-harness/web-app/package.json +1 -1
- package/package.json +6 -6
- package/packages/api-gateway/dist/index.d.ts.map +1 -1
- package/packages/api-gateway/dist/index.js +11 -5
- package/packages/api-gateway/dist/index.js.map +1 -1
- package/packages/api-gateway/dist/marketplace-locales/en.json +206 -0
- package/packages/api-gateway/dist/marketplace.d.ts +3 -1
- package/packages/api-gateway/dist/marketplace.d.ts.map +1 -1
- package/packages/api-gateway/dist/marketplace.js +82 -7
- package/packages/api-gateway/dist/marketplace.js.map +1 -1
- package/packages/api-gateway/package.json +1 -1
- package/packages/api-gateway/scripts/copy-marketplace-entries.mjs +5 -0
- package/packages/api-gateway/src/index.ts +10 -6
- package/packages/api-gateway/src/marketplace-locales/en.json +206 -0
- package/packages/api-gateway/src/marketplace.ts +96 -11
- package/packages/api-gateway/test/index.test.ts +46 -0
- package/packages/api-gateway/test/marketplace.test.ts +13 -0
- package/packages/bundle-web-app/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/host-webserver/package.json +1 -1
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
{
|
|
2
|
+
"categories": {
|
|
3
|
+
"context": "Context management",
|
|
4
|
+
"discovery": "Discovery and ecosystem",
|
|
5
|
+
"observability": "Observability",
|
|
6
|
+
"security": "Security",
|
|
7
|
+
"workflow": "Workflow",
|
|
8
|
+
"developer": "Developer tools",
|
|
9
|
+
"interface": "Interface enhancements",
|
|
10
|
+
"multimodal": "Visual and multimodal",
|
|
11
|
+
"web": "Web and research"
|
|
12
|
+
},
|
|
13
|
+
"capabilities": {
|
|
14
|
+
"read-only": "Read-only operation",
|
|
15
|
+
"session-data": "Read session content",
|
|
16
|
+
"reads-files": "Read local files",
|
|
17
|
+
"writes-files": "Write local files",
|
|
18
|
+
"runs-commands": "Run local commands",
|
|
19
|
+
"local-server": "Listen on a local port",
|
|
20
|
+
"network-access": "Access the network",
|
|
21
|
+
"model-calls": "Make additional model calls"
|
|
22
|
+
},
|
|
23
|
+
"hooks": {
|
|
24
|
+
"会话生命周期": "Session lifecycle",
|
|
25
|
+
"插件面板": "Plugin panel",
|
|
26
|
+
"会话事件": "Session events",
|
|
27
|
+
"工作区文件": "Workspace files",
|
|
28
|
+
"依赖清单": "Dependency manifests",
|
|
29
|
+
"文件上下文工具": "File context tool",
|
|
30
|
+
"工作区文件读取": "Workspace file reads",
|
|
31
|
+
"argv 执行": "argv execution",
|
|
32
|
+
"工作区扫描": "Workspace scan",
|
|
33
|
+
"只读 Git": "Read-only Git",
|
|
34
|
+
"会话管理器": "Session manager",
|
|
35
|
+
"网络请求": "Network requests",
|
|
36
|
+
"浏览器会话工具": "Browser session tool",
|
|
37
|
+
"Chrome DevTools 协议": "Chrome DevTools Protocol",
|
|
38
|
+
"项目脚本": "Project scripts",
|
|
39
|
+
"Git 变更": "Git changes",
|
|
40
|
+
"胶囊清理工具": "Capsule cleanup tool",
|
|
41
|
+
"agent 胶囊目录": "Agent capsule directory",
|
|
42
|
+
"运行结束": "Run completion",
|
|
43
|
+
"压缩失败": "Compaction failures",
|
|
44
|
+
"会话存储": "Session storage",
|
|
45
|
+
"上下文体检工具": "Context diagnostics tool",
|
|
46
|
+
"会话消息与用量": "Session messages and usage",
|
|
47
|
+
"Pi 会话生命周期": "Pi session lifecycle",
|
|
48
|
+
"手动压缩": "Manual compaction",
|
|
49
|
+
"上下文检查工具": "Context inspection tool",
|
|
50
|
+
"当前运行会话": "Active run session",
|
|
51
|
+
"加载器条目树": "Loader entry tree",
|
|
52
|
+
"Cordis 日志导出": "Cordis log export",
|
|
53
|
+
"Cordis 定时服务": "Cordis timer service",
|
|
54
|
+
"费用报告工具": "Cost reporting tool",
|
|
55
|
+
"依赖检查工具": "Dependency inspection tool",
|
|
56
|
+
"工作区清单读取": "Workspace manifest reads",
|
|
57
|
+
"沙箱执行工具": "Sandbox execution tool",
|
|
58
|
+
"Docker CLI": "Docker CLI",
|
|
59
|
+
"插件错误": "Plugin errors",
|
|
60
|
+
"压缩结束": "Compaction completion",
|
|
61
|
+
"GenUI 渲染工具": "GenUI rendering tool",
|
|
62
|
+
"Git 快照工具": "Git snapshot tool",
|
|
63
|
+
"Git 还原工具": "Git restore tool",
|
|
64
|
+
"图记忆工具": "Graph memory tool",
|
|
65
|
+
"本地图文件": "Local graph file",
|
|
66
|
+
"上下文用量": "Context usage",
|
|
67
|
+
"工具调用": "Tool calls",
|
|
68
|
+
"i18n 检查工具": "i18n inspection tool",
|
|
69
|
+
"工作区语言文件": "Workspace locale files",
|
|
70
|
+
"模型运行时": "Model runtime",
|
|
71
|
+
"结构化结论": "Structured verdict",
|
|
72
|
+
"MCP stdio 工具": "MCP stdio tools",
|
|
73
|
+
"托管服务进程": "Managed service processes",
|
|
74
|
+
"MCP 运行时": "MCP runtime",
|
|
75
|
+
"Mirage CLI": "Mirage CLI",
|
|
76
|
+
"本地 HTTP 服务": "Local HTTP service",
|
|
77
|
+
"源码扫描": "Source scan",
|
|
78
|
+
"库路径": "Library paths",
|
|
79
|
+
"宠物反应工具": "Companion reaction tool",
|
|
80
|
+
"会话状态": "Session state",
|
|
81
|
+
"插件加载器": "Plugin loader",
|
|
82
|
+
"会话资源重载工具": "Session resource reload tool",
|
|
83
|
+
"npm registry": "npm registry",
|
|
84
|
+
"GitHub Topic 搜索": "GitHub Topic search",
|
|
85
|
+
"榜单搜索工具": "Leaderboard search tool",
|
|
86
|
+
"GitHub 原始快照": "GitHub raw snapshot",
|
|
87
|
+
"受限输入": "Bounded input",
|
|
88
|
+
"README 报告与写入工具": "README reporting and write tool",
|
|
89
|
+
"工作区清单与文件": "Workspace manifests and files",
|
|
90
|
+
"Cordis 加载器清单": "Cordis loader inventory",
|
|
91
|
+
"未读回溯工具": "Unanswered-session recall tool",
|
|
92
|
+
"原生会话存储": "Native session storage",
|
|
93
|
+
"当前会话管理器": "Current session manager",
|
|
94
|
+
"skill 守卫": "Skill guard",
|
|
95
|
+
"受限内容": "Bounded content",
|
|
96
|
+
"工作区 Git": "Workspace Git",
|
|
97
|
+
"文件系统检查": "File-system inspection",
|
|
98
|
+
"运行时服务": "Runtime services",
|
|
99
|
+
"agent 工具": "Agent tools",
|
|
100
|
+
"原生标签条目": "Native tag entries",
|
|
101
|
+
"会话桥接工具": "Session bridge tool",
|
|
102
|
+
"自定义上下文消息": "Custom context messages",
|
|
103
|
+
"JSONL 会话文件": "JSONL session files",
|
|
104
|
+
"Pi 会话": "Pi sessions",
|
|
105
|
+
"会话报告工具": "Session reporting tool",
|
|
106
|
+
"资源加载器": "Resource loader",
|
|
107
|
+
"skill 扫描工具": "Skill scanning tool",
|
|
108
|
+
"SQL 只读工具": "Read-only SQL tool",
|
|
109
|
+
"工作区 SQLite 文件": "Workspace SQLite files",
|
|
110
|
+
"会话注册表": "Session registry",
|
|
111
|
+
"本地遥测服务": "Local telemetry service",
|
|
112
|
+
"事件总线观察": "Event bus observation",
|
|
113
|
+
"项目验证工具": "Project verification tool",
|
|
114
|
+
"工作区 npm 脚本": "Workspace npm scripts",
|
|
115
|
+
"React 根变量": "React root variables",
|
|
116
|
+
"当前运行中止": "Active run abort",
|
|
117
|
+
"会话用量与统计": "Session usage and statistics",
|
|
118
|
+
"会话回退工具": "Session rewind tool",
|
|
119
|
+
"当前会话树": "Current session tree",
|
|
120
|
+
"agent 空闲生命周期": "Agent idle lifecycle",
|
|
121
|
+
"图像元数据工具": "Image metadata tool",
|
|
122
|
+
"工作区访问": "Workspace access",
|
|
123
|
+
"受限扫描": "Bounded scan",
|
|
124
|
+
"YAML 校验工具": "YAML validation tool"
|
|
125
|
+
},
|
|
126
|
+
"plugins": {
|
|
127
|
+
"agent-teams": "Maintain a bounded, session-local collaboration ledger of named roles, dependency-aware tasks, and mailbox notes without spawning agents or sending external messages.",
|
|
128
|
+
"anchored-standard": "Audit agent trajectories against an explicit tool-call allowlist and flag activity outside the anchored run.",
|
|
129
|
+
"annotation": "Capture bounded selections and notes from the conversation for later agent context.",
|
|
130
|
+
"archify": "Build a bounded, read-only architecture map from workspace components and package dependencies.",
|
|
131
|
+
"at-file": "Attach a bounded 256 KiB strict UTF-8 workspace file using canonical workspace path confinement and no-follow regular-file reads, framing it as offline, read-only, untrusted model context with closing-tag neutralization and cancellable sequential execution.",
|
|
132
|
+
"auto-mode": "Execute argv commands under a safe policy that blocks shell wrappers and requires confirmation for risky operations.",
|
|
133
|
+
"better-sidebar": "Show a compact workspace, Git, and session overview beside the conversation without modifying files.",
|
|
134
|
+
"browser-fetch": "Fetch public HTTP and HTTPS pages as bounded text with descriptor-safe inputs, DNS pinning, per-redirect private-network validation, textual MIME enforcement, cancellation, a whole-request timeout, and validated fail-closed panel reporting.",
|
|
135
|
+
"browser-session": "Control a loopback-only Chrome DevTools session with descriptor-safe commands, bounded discovery, cancellable operations, screenshot metadata protection, and validated fail-closed panel previews.",
|
|
136
|
+
"canvas-draw": "Generate validated, bounded Mermaid flowchart source from structured nodes and edges in the workspace UI.",
|
|
137
|
+
"change-verifier": "Combine project tests and Git change review into one explicit verification gate before handoff.",
|
|
138
|
+
"cleaner": "Strict descriptor-safe configuration and parameters, display-safe bounded Pi Harness Git capsule inventory, removal with explicit confirmation and retention controls, symlink and replacement defenses, cancellable serialization, and a fail-closed normalized panel.",
|
|
139
|
+
"cli-notifier": "Send local desktop notifications when an agent turn completes, fails, or is aborted, and when context compaction fails.",
|
|
140
|
+
"code2skill": "Package selected workspace source files into a bounded local Pi skill with a generated SKILL.md manifest and preserved references.",
|
|
141
|
+
"colleague-skill": "Create durable, structured handoff packets for another role without hidden agents or external message delivery.",
|
|
142
|
+
"context-doctor": "Descriptor-safe bounded context audits detect pressure, oversized or uninspectable messages, and tool errors. Compaction requests are queued until the agent has settled; confirmed model-backed compaction may incur cost and provides cancellable waits with dedicated cancellation.",
|
|
143
|
+
"context-insights": "Inspect context usage and descriptor-safe bounded message composition with cached active-session lifecycle counters and a fixed-limit normalized browser panel.",
|
|
144
|
+
"cordis-group": "Organize plugins into nested trees with explicit ownership and rollback.",
|
|
145
|
+
"cordis-logger-console": "Write Cordis diagnostic logs to the host console by severity and expose a recent-log panel.",
|
|
146
|
+
"cordis-timer": "Provide lifecycle-managed asynchronous timers, throttling, and debouncing.",
|
|
147
|
+
"cost-meter": "Track runtime-reported costs as UTC daily increments in a bounded local ledger, with session snapshots and optional daily budget monitoring; no model prices are guessed.",
|
|
148
|
+
"dependency-checker": "Run a bounded, offline, read-only check of workspace package.json and requirements*.txt manifests for local package presence, duplicate declaration consistency, unresolved constraints, and unsupported Python directives.",
|
|
149
|
+
"docker-sandbox": "Run descriptor-safe argv commands with local-only Docker images, no container network, a read-only workspace by default, fixed CPU, memory, and PID limits, sanitized output, strict panel reporting, and cancellation cleanup.",
|
|
150
|
+
"fail-logger": "Aggregate bounded extension, Agent, and non-aborted compaction failures through descriptor-safe event inspection, safe diagnostic summaries, and occurrence counts without retaining full payloads.",
|
|
151
|
+
"genui": "Render bounded structured cards with text, badge, and decimal progress blocks while displaying HTML and scripts as plain text.",
|
|
152
|
+
"git-time-capsule": "Capture the current unstaged tracked Git diff as a byte-exact, validated undo capsule without external diff or textconv helpers, then reverse-apply it only after explicit confirmation.",
|
|
153
|
+
"graph-memory": "Store bounded typed task, skill, and event nodes with validated directed relations, atomic locked persistence, and inspectable cross-session search.",
|
|
154
|
+
"history-compressor": "Compact the current Pi session automatically when context usage approaches a configured threshold.",
|
|
155
|
+
"hol-guard": "Audit tool arguments and preflight text for destructive commands, sensitive paths, credentials, and remote exfiltration. Advisory only: reports risk, does not block execution.",
|
|
156
|
+
"i18n-pair": "Strict read-only comparison of bounded JSON locale files from no-follow workspace paths, with collision-safe missing and extra keys, stable failures, cancellation, and validated panel status.",
|
|
157
|
+
"image-compressor": "Create bounded image copies for model context while preserving the original file and reporting saved bytes.",
|
|
158
|
+
"llm-verifier": "Ask a configured verifier model to judge a claim against bounded, untrusted evidence.",
|
|
159
|
+
"mcp-client": "Connect to direct-argv MCP stdio servers with bounded pagination and protocol validation, tool, resource, and prompt bridging, cancellable queued requests, and lifecycle-owned process cleanup.",
|
|
160
|
+
"mcp-panel": "Inspect MCP server health and tools, preview profile patches, and apply changes only with an explicit confirmation and backup.",
|
|
161
|
+
"memory": "Persist bounded cross-session notes with explicit recall and update operations.",
|
|
162
|
+
"mirage-bridge": "Connect Pi Harness to the official Mirage virtual-terminal CLI without adding a second host shell.",
|
|
163
|
+
"mock-server": "Start a local, bounded HTTP mock server from explicit routes for integration testing without external services.",
|
|
164
|
+
"modlens": "Send bounded workspace images to native vision models or return schema-validated evidence from the bundled ModLens engine for text-only models.",
|
|
165
|
+
"module-search": "Find imports, exports, and declared symbols in bounded workspace source files without modifying them.",
|
|
166
|
+
"obsidian-sync": "Write explicitly requested session notes to a bounded Obsidian vault path without reading unrelated vault files.",
|
|
167
|
+
"openpets": "Keep a bounded durable companion state from validated recent session entries without retaining message contents, with descriptor-safe actions and explicit persistence health.",
|
|
168
|
+
"plan-execute": "Track an explicit multi-step execution plan with progress, dependencies, and completion state in the current session.",
|
|
169
|
+
"plugin-check": "Inspect installed plugin manifests and report unsafe, malformed, or incompatible extension metadata before loading it.",
|
|
170
|
+
"plugin-dev": "Defer Pi session resource reloads until the agent is settled, enforce a single active reload with bounded status, and expose the operation only for trusted local development.",
|
|
171
|
+
"plugin-finder": "Search a configured npm-compatible registry for Pi plugins with bounded queries and explicit installation handoff.",
|
|
172
|
+
"plugin-radar": "Discover public Pi Harness repositories on GitHub, sorted by stars.",
|
|
173
|
+
"plugin-stars": "Search a curated raw.githubusercontent.com plugin snapshot through descriptor-safe inputs, strict bounded validation, a cancellable lifecycle, and fail-closed panel reporting.",
|
|
174
|
+
"prompt-guard": "Detect prompt override, secret exfiltration, remote payloads, and hidden-instruction indicators without retaining input text.",
|
|
175
|
+
"prompt-library": "Save, search, update, and delete reusable prompt templates in the current Pi session.",
|
|
176
|
+
"readme-gen": "Generate README reports from strictly bounded manifest metadata and a descriptor-safe loader inventory with Markdown-safe rendering, plus confirmed no-clobber atomic writes, explicit overwrite confirmation, and cancellable sequential execution.",
|
|
177
|
+
"recall-unread": "Read-only bounded discovery with strict UTF-8 session reads finds current workspace conversations ending in an unanswered user message, uses cached startup inventory, and rescans only on explicit tool calls.",
|
|
178
|
+
"reverse-skill": "Inspect untrusted Skill text and inject it only through an explicit bounded data boundary.",
|
|
179
|
+
"reviewer-bot": "Review tracked Git changes against HEAD for whitespace, likely credentials, and TODO/FIXME markers without executing diff helpers.",
|
|
180
|
+
"runtime-doctor": "Audit workspace, agent directory, model, runtime, MCP servers, and extension errors in one read-only report.",
|
|
181
|
+
"secure-audit": "Read-only workspace scan for exposed credentials and dangerous shell commands with value-redacted findings.",
|
|
182
|
+
"session-bookmarks": "Persist labels for important native Pi session entries without changing the underlying transcript.",
|
|
183
|
+
"session-bridge": "Preview and export handoffs, then require confirmed import of a strictly validated, bounded package into the active LLM context with duplicate protection.",
|
|
184
|
+
"session-compare": "Compare two persisted Pi sessions by message role and text without modifying either session file.",
|
|
185
|
+
"session-export": "Export the current Pi conversation to a bounded Markdown file inside the workspace without changing session history.",
|
|
186
|
+
"session-insights": "Publish descriptor-safe validated cached session statistics and run only confirmed settled-session compaction with explicit model usage and cost guidance plus cancellable lifecycle handling.",
|
|
187
|
+
"session-search": "Search persisted Pi JSONL sessions for matching user or assistant text without modifying session files.",
|
|
188
|
+
"skill-catalog": "List loaded Agent Skills and safely inspect one through a bounded untrusted-data boundary, plus managed MCP status.",
|
|
189
|
+
"skill-guard": "Audit each loaded Skill entry Markdown file with bounded heuristics for instruction override, secret exfiltration, destructive commands, and obfuscation; it reports risk labels and does not disable loaded Skills.",
|
|
190
|
+
"sql-lens": "Inspect workspace-contained SQLite databases with strict descriptor-safe inputs, a single read-only statement, bounded results, symlink and replacement checks, timed worker execution, cancellation, and fail-closed panel reporting.",
|
|
191
|
+
"synapse": "Visualize session relationships and linked work items without changing the transcript.",
|
|
192
|
+
"tab-manager": "Organize active Pi sessions into named tabs and switch between them without losing session identity.",
|
|
193
|
+
"taskboard": "Track agent tasks, statuses, and dependencies in a durable project board.",
|
|
194
|
+
"telemetry-blocker": "Block configured outbound telemetry destinations and report blocked attempts without collecting payload contents.",
|
|
195
|
+
"test-harness": "Run five fixed npm script names from a trusted workspace, reporting real status with a sanitized 12 KiB UTF-8-safe untrusted output tail, a bounded configurable timeout, and cancellable process-tree cleanup.",
|
|
196
|
+
"theme-studio": "Apply bounded Light, Midnight, Paper, and High Contrast presets to the Pi Harness web surface.",
|
|
197
|
+
"token-guard": "Use descriptor-safe monitoring to issue at most one abort request per run when a context percentage or SDK-reported run-token budget is reached, with bounded errors and a cached normalized panel.",
|
|
198
|
+
"turn-rewind": "Scans a bounded current branch for user turns, supports queued serialized cancellable rewinds after the agent settles, and navigates the native session tree while preserving abandoned branches.",
|
|
199
|
+
"undo-savepoint": "Create inspectable savepoints before agent changes so the workspace can be restored safely.",
|
|
200
|
+
"vision-toolkit": "Catalog signature-verified PNG, JPEG, GIF, and WebP metadata with bounded header reads, cancellable workspace traversal, explicit partial results, and a local-only normalized panel.",
|
|
201
|
+
"web-research": "Search the public web through a configurable provider and return bounded, cited source evidence.",
|
|
202
|
+
"workspace-navigator": "Show a bounded workspace tree and read-only Git status for a high-signal coding sidebar.",
|
|
203
|
+
"workspace-search": "Search bounded text files in the active workspace with ignored directories and binary content excluded.",
|
|
204
|
+
"yaml-validator": "Validate workspace-contained UTF-8 multi-document YAML through bounded, cancellable reads and line-aware diagnostics."
|
|
205
|
+
}
|
|
206
|
+
}
|
|
@@ -68,8 +68,10 @@ export declare function marketplaceNpmPackageName(packageName: string): string;
|
|
|
68
68
|
export declare function createMarketplaceStatisticsLoader(options?: MarketplaceStatisticsLoaderOptions): MarketplaceStatisticsLoader;
|
|
69
69
|
export declare function attachMarketplaceStatistics(plugins: readonly MarketplacePlugin[], statistics: ReadonlyMap<string, MarketplaceStatistics>): readonly MarketplacePlugin[];
|
|
70
70
|
export declare function sortMarketplaceByRecommendation(plugins: readonly MarketplacePlugin[], now?: number): readonly MarketplacePlugin[];
|
|
71
|
-
export declare function searchMarketplace(query?: string, capability?: string, category?: string): readonly MarketplacePlugin[];
|
|
71
|
+
export declare function searchMarketplace(query?: string, capability?: string, category?: string, locale?: string): readonly MarketplacePlugin[];
|
|
72
72
|
export declare function paginateMarketplace(items: readonly MarketplacePlugin[], page?: number, pageSize?: number): MarketplacePage;
|
|
73
73
|
export declare const MARKETPLACE_CAPABILITIES: readonly MarketplaceCapability[];
|
|
74
74
|
export declare const MARKETPLACE_CATEGORIES: readonly MarketplaceCategory[];
|
|
75
|
+
export declare function marketplaceCapabilities(locale?: string): readonly MarketplaceCapability[];
|
|
76
|
+
export declare function marketplaceCategories(locale?: string): readonly MarketplaceCategory[];
|
|
75
77
|
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,6 +110,49 @@ function loadMarketplacePlugins() {
|
|
|
110
110
|
return plugins;
|
|
111
111
|
}
|
|
112
112
|
export const MARKETPLACE_PLUGINS = loadMarketplacePlugins();
|
|
113
|
+
function requiredStringMap(value, label) {
|
|
114
|
+
if (!isRecord(value) || Object.values(value).some((entry) => typeof entry !== "string" || entry.trim() === ""))
|
|
115
|
+
throw new Error(`Invalid marketplace locale ${label}`);
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
118
|
+
function requireExactLocaleKeys(actual, expected, label) {
|
|
119
|
+
const actualKeys = new Set(Object.keys(actual));
|
|
120
|
+
if (actualKeys.size !== expected.size || [...expected].some((key) => !actualKeys.has(key)))
|
|
121
|
+
throw new Error(`Incomplete marketplace locale ${label}`);
|
|
122
|
+
}
|
|
123
|
+
function loadMarketplaceLocale(locale) {
|
|
124
|
+
const path = join(dirname(fileURLToPath(import.meta.url)), "marketplace-locales", `${locale}.json`);
|
|
125
|
+
let value;
|
|
126
|
+
try {
|
|
127
|
+
value = JSON.parse(readFileSync(path, "utf8"));
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
throw new Error(`Invalid marketplace locale ${path}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
131
|
+
}
|
|
132
|
+
if (!isRecord(value))
|
|
133
|
+
throw new Error(`Invalid marketplace locale: ${path}`);
|
|
134
|
+
const categories = requiredStringMap(value.categories, `${locale} categories`);
|
|
135
|
+
const capabilities = requiredStringMap(value.capabilities, `${locale} capabilities`);
|
|
136
|
+
const hooks = requiredStringMap(value.hooks, `${locale} hooks`);
|
|
137
|
+
const plugins = requiredStringMap(value.plugins, `${locale} plugins`);
|
|
138
|
+
requireExactLocaleKeys(categories, new Set(MARKETPLACE_PLUGINS.map((plugin) => plugin.category.id)), `${locale} categories`);
|
|
139
|
+
requireExactLocaleKeys(capabilities, new Set(MARKETPLACE_CAPABILITY_VOCABULARY.map((capability) => capability.id)), `${locale} capabilities`);
|
|
140
|
+
requireExactLocaleKeys(hooks, new Set(MARKETPLACE_PLUGINS.flatMap((plugin) => plugin.hooks)), `${locale} hooks`);
|
|
141
|
+
requireExactLocaleKeys(plugins, new Set(MARKETPLACE_PLUGINS.map((plugin) => plugin.id)), `${locale} plugins`);
|
|
142
|
+
return { categories, capabilities, hooks, plugins };
|
|
143
|
+
}
|
|
144
|
+
const MARKETPLACE_LOCALES = new Map([["en", loadMarketplaceLocale("en")]]);
|
|
145
|
+
function localizeMarketplacePlugin(plugin, locale = "") {
|
|
146
|
+
const catalog = MARKETPLACE_LOCALES.get(locale);
|
|
147
|
+
if (catalog === undefined)
|
|
148
|
+
return plugin;
|
|
149
|
+
return {
|
|
150
|
+
...plugin,
|
|
151
|
+
description: catalog.plugins[plugin.id] ?? plugin.description,
|
|
152
|
+
category: { ...plugin.category, label: catalog.categories[plugin.category.id] ?? plugin.category.label },
|
|
153
|
+
hooks: plugin.hooks.map((hook) => catalog.hooks[hook] ?? hook),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
113
156
|
export function marketplaceNpmPackageName(packageName) {
|
|
114
157
|
const segments = packageName.split("/");
|
|
115
158
|
return packageName.startsWith("@") ? segments.slice(0, 2).join("/") : (segments[0] ?? packageName);
|
|
@@ -277,18 +320,38 @@ function marketplaceRecommendationScore(plugin, now) {
|
|
|
277
320
|
export function sortMarketplaceByRecommendation(plugins, now = Date.now()) {
|
|
278
321
|
return [...plugins].sort((left, right) => marketplaceRecommendationScore(right, now) - marketplaceRecommendationScore(left, now));
|
|
279
322
|
}
|
|
280
|
-
export function searchMarketplace(query = "", capability = "", category = "") {
|
|
323
|
+
export function searchMarketplace(query = "", capability = "", category = "", locale = "") {
|
|
281
324
|
const normalizedQuery = query.trim().toLowerCase();
|
|
282
325
|
const normalizedCapability = capability.trim().toLowerCase();
|
|
283
326
|
const normalizedCategory = category.trim().toLowerCase();
|
|
284
|
-
return MARKETPLACE_PLUGINS.
|
|
327
|
+
return MARKETPLACE_PLUGINS.map((plugin) => ({ source: plugin, localized: localizeMarketplacePlugin(plugin, locale) }))
|
|
328
|
+
.filter(({ source, localized }) => {
|
|
285
329
|
// The capability labels are searched alongside their ids: the ids are what the filter and the URL carry, and the labels are what the reader sees on the card.
|
|
286
|
-
const
|
|
287
|
-
const
|
|
330
|
+
const localeCatalog = MARKETPLACE_LOCALES.get(locale);
|
|
331
|
+
const capabilities = source.capabilities.flatMap((item) => [
|
|
332
|
+
item,
|
|
333
|
+
marketplaceCapabilityLabels.get(item) ?? item,
|
|
334
|
+
localeCatalog?.capabilities[item] ?? item,
|
|
335
|
+
]);
|
|
336
|
+
const searchable = [
|
|
337
|
+
source.name,
|
|
338
|
+
source.packageName,
|
|
339
|
+
source.description,
|
|
340
|
+
localized.description,
|
|
341
|
+
source.author,
|
|
342
|
+
source.category.id,
|
|
343
|
+
localized.category.label,
|
|
344
|
+
...capabilities,
|
|
345
|
+
...source.hooks,
|
|
346
|
+
...localized.hooks,
|
|
347
|
+
]
|
|
348
|
+
.join(" ")
|
|
349
|
+
.toLowerCase();
|
|
288
350
|
return ((normalizedQuery === "" || searchable.includes(normalizedQuery)) &&
|
|
289
|
-
(normalizedCapability === "" ||
|
|
290
|
-
(normalizedCategory === "" ||
|
|
291
|
-
})
|
|
351
|
+
(normalizedCapability === "" || source.capabilities.some((item) => item.toLowerCase() === normalizedCapability)) &&
|
|
352
|
+
(normalizedCategory === "" || source.category.id.toLowerCase() === normalizedCategory));
|
|
353
|
+
})
|
|
354
|
+
.map(({ localized }) => localized);
|
|
292
355
|
}
|
|
293
356
|
export function paginateMarketplace(items, page = 0, pageSize = 24) {
|
|
294
357
|
const normalizedPageSize = Math.min(Math.max(Math.trunc(pageSize) || 24, 1), 100);
|
|
@@ -312,4 +375,16 @@ export const MARKETPLACE_CATEGORIES = [
|
|
|
312
375
|
]
|
|
313
376
|
.map((category) => ({ ...category, count: MARKETPLACE_PLUGINS.filter((plugin) => plugin.category.id === category.id).length }))
|
|
314
377
|
.sort((a, b) => a.label.localeCompare(b.label));
|
|
378
|
+
export function marketplaceCapabilities(locale = "") {
|
|
379
|
+
const catalog = MARKETPLACE_LOCALES.get(locale);
|
|
380
|
+
if (catalog === undefined)
|
|
381
|
+
return MARKETPLACE_CAPABILITIES;
|
|
382
|
+
return MARKETPLACE_CAPABILITIES.map((capability) => ({ ...capability, label: catalog.capabilities[capability.id] ?? capability.label }));
|
|
383
|
+
}
|
|
384
|
+
export function marketplaceCategories(locale = "") {
|
|
385
|
+
const catalog = MARKETPLACE_LOCALES.get(locale);
|
|
386
|
+
if (catalog === undefined)
|
|
387
|
+
return MARKETPLACE_CATEGORIES;
|
|
388
|
+
return MARKETPLACE_CATEGORIES.map((category) => ({ ...category, label: catalog.categories[category.id] ?? category.label })).sort((left, right) => left.label.localeCompare(right.label, locale));
|
|
389
|
+
}
|
|
315
390
|
//# sourceMappingURL=marketplace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkFzC,8dAA8d;AAC9d,MAAM,iCAAiC,GAA+D;IACpG,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;IACvC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;IACvC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IACxC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;IACvC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;CACvC,CAAC;AAEF,mJAAmJ;AACnJ,MAAM,+BAA+B,GAAsB,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAE9I,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEtI,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACnI,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7G,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,+BAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/H,CAAC;AAED,MAAM,iBAAiB,GAAG,0DAA0D,CAAC;AACrF,MAAM,cAAc,GAAG,4BAA4B,CAAC;AACpD,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAEvD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,OAAO,CACL,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;QAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QACpC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QACvC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAC3B,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;QAC7D,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,CAAC;QAChE,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ;QAC/B,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAClC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAC5B,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC;QAC/C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC9E,QAAQ,CAAC,OAAO,CAAC;QACjB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW;QAClC,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACpF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;SAClC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACL,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,qKAAqK;IACrK,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK;YACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,aAAa,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACrI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAiC,sBAAsB,EAAE,CAAC;AAE1F,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACzD,OAAO,KAAyC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAwC,EAAE,QAA6B,EAAE,KAAa;IACpH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;AACxJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IACpG,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrI,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC;IACtE,sBAAsB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,aAAa,CAAC,CAAC;IAC7H,sBAAsB,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,eAAe,CAAC,CAAC;IAC9I,sBAAsB,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;IACjH,sBAAsB,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC;IAC9G,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAA4B,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtG,SAAS,yBAAyB,CAAC,MAAyB,EAAE,MAAM,GAAG,EAAE;IACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW;QAC7D,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;QACxG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,OAAqC,EAAE,SAAiB;IACpH,IAAI,cAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,cAAc,GAAG,MAAM,OAAO,CAAC,0CAA0C,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,aAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,aAAa,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAY,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAc,aAAa,CAAC,OAAO,CAAC;IACjD,MAAM,KAAK,GAAY,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC7H,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,MAAM,UAAU,GAAoE,EAAE,CAAC;IACvF,IAAI,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClF,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7E,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,oDAAoD,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE;YAC5H,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAY,CAAC;YACnE,IACE,QAAQ,CAAC,eAAe,CAAC;gBACzB,OAAO,eAAe,CAAC,SAAS,KAAK,QAAQ;gBAC7C,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC;gBAC/C,eAAe,CAAC,SAAS,IAAI,CAAC;gBAE9B,UAAU,CAAC,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC;;gBACjD,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;;YAAM,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,UAA8C,EAAE;IAChG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAW,EAAE,IAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACtG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC;IACpD,uPAAuP;IACvP,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,GAAG,MAAM,CAAC;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACnD,8JAA8J;IAC9J,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkH,CAAC;IACxI,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+C,CAAC;IACxE,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;QAC5C,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,CAAC;;YAC/B,IAAI,EAAE,CAAC;IACd,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3H,MAAM,WAAW,GAAG,KAAK,EAAE,WAAmB,EAAuC,EAAE;QACrF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,SAAS;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAC1C,iJAAiJ;QACjJ,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,MAAM,yBAAyB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC;oBAAS,CAAC;gBACT,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAChH,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,OAAO;gBAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,OAAqC,EAAqB,EAAE,CAChF,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,MAAM,IAAI,GAAG,KAAK,EAAE,OAAqC,EAAuD,EAAE;QAChH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,WAAW,CAAC,WAAW,CAAC,CAAU,CAAC,CAAC,CAAC;QAC5I,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACnJ,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,OAAqC,EAA+B,EAAE;QACxF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC5D,yMAAyM;QACzM,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS;gBAAE,KAAK,GAAG,KAAK,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;gBACzD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;oBAAE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAClG,SAAS;YACX,CAAC;YACD,kJAAkJ;YAClJ,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAqC,EACrC,UAAsD;IAEtD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5E,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAyB,EAAE,GAAW;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/F,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnH,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC;IAC9I,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACpD,OAAO,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAqC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACrG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,8BAA8B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACpI,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAK,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE;IACvF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;SACnH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAChC,8JAA8J;QAC9J,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,IAAI;YACJ,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YAC7C,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI;SAC1C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG;YACjB,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,WAAW;YAClB,SAAS,CAAC,WAAW;YACrB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,QAAQ,CAAC,EAAE;YAClB,SAAS,CAAC,QAAQ,CAAC,KAAK;YACxB,GAAG,YAAY;YACf,GAAG,MAAM,CAAC,KAAK;YACf,GAAG,SAAS,CAAC,KAAK;SACnB;aACE,IAAI,CAAC,GAAG,CAAC;aACT,WAAW,EAAE,CAAC;QACjB,OAAO,CACL,CAAC,eAAe,KAAK,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAChE,CAAC,oBAAoB,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,oBAAoB,CAAC,CAAC;YAChH,CAAC,kBAAkB,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC,CACvF,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAmC,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE;IAC9F,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,cAAc,GAAG,kBAAkB,CAAC;IAClD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB,CAAC;QACrD,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,KAAK,GAAG,kBAAkB,GAAG,KAAK,CAAC,MAAM;KACnD,CAAC;AACJ,CAAC;AAED,wMAAwM;AACxM,MAAM,CAAC,MAAM,wBAAwB,GAAqC,iCAAiC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/H,GAAG,UAAU;IACb,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;CAClG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;CACnJ;KACE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KAC9H,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAElD,MAAM,UAAU,uBAAuB,CAAC,MAAM,GAAG,EAAE;IACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC;IAC3D,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3I,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAM,GAAG,EAAE;IAC/C,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,sBAAsB,CAAC;IACzD,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChJ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -5,9 +5,14 @@ import { fileURLToPath } from "node:url";
|
|
|
5
5
|
const packageDirectory = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
6
6
|
const source = resolve(packageDirectory, "src/marketplace-entries");
|
|
7
7
|
const destination = resolve(packageDirectory, "dist/marketplace-entries");
|
|
8
|
+
const localeSource = resolve(packageDirectory, "src/marketplace-locales");
|
|
9
|
+
const localeDestination = resolve(packageDirectory, "dist/marketplace-locales");
|
|
8
10
|
const legacyRegistry = resolve(packageDirectory, "dist/marketplace-registry.json");
|
|
9
11
|
|
|
10
12
|
await rm(destination, { recursive: true, force: true });
|
|
13
|
+
await rm(localeDestination, { recursive: true, force: true });
|
|
11
14
|
await rm(legacyRegistry, { force: true });
|
|
12
15
|
await mkdir(destination, { recursive: true });
|
|
13
16
|
await cp(source, destination, { recursive: true });
|
|
17
|
+
await mkdir(localeDestination, { recursive: true });
|
|
18
|
+
await cp(localeSource, localeDestination, { recursive: true });
|
|
@@ -10,14 +10,14 @@ import { atomicWriteFile, isPiToolRegistryLeasedError } from "@pi-harness/core";
|
|
|
10
10
|
import type { PiPluginUiRegistry, PiRuntimeService, PiModelsService, PiHarnessLaunch } from "@pi-harness/core";
|
|
11
11
|
import type { WebServer } from "@pi-harness/host-webserver";
|
|
12
12
|
import {
|
|
13
|
-
MARKETPLACE_CAPABILITIES,
|
|
14
|
-
MARKETPLACE_CATEGORIES,
|
|
15
13
|
MARKETPLACE_PLUGINS,
|
|
16
14
|
attachMarketplaceStatistics,
|
|
17
15
|
createMarketplaceStatisticsLoader,
|
|
18
16
|
paginateMarketplace,
|
|
19
17
|
searchMarketplace,
|
|
20
18
|
marketplaceNpmPackageName,
|
|
19
|
+
marketplaceCapabilities,
|
|
20
|
+
marketplaceCategories,
|
|
21
21
|
sortMarketplaceByRecommendation,
|
|
22
22
|
type MarketplacePlugin,
|
|
23
23
|
} from "./marketplace.js";
|
|
@@ -1233,6 +1233,7 @@ export default {
|
|
|
1233
1233
|
const query = url.searchParams.get("q") ?? "";
|
|
1234
1234
|
const capability = url.searchParams.get("capability") ?? "";
|
|
1235
1235
|
const category = url.searchParams.get("category") ?? "";
|
|
1236
|
+
const locale = url.searchParams.get("locale") ?? "";
|
|
1236
1237
|
const page = Number(url.searchParams.get("page") ?? "0");
|
|
1237
1238
|
const pageSize = Number(url.searchParams.get("pageSize") ?? "24");
|
|
1238
1239
|
const sort = url.searchParams.get("sort") ?? "";
|
|
@@ -1240,6 +1241,7 @@ export default {
|
|
|
1240
1241
|
query.length > 120 ||
|
|
1241
1242
|
capability.length > 80 ||
|
|
1242
1243
|
category.length > 80 ||
|
|
1244
|
+
locale.length > 20 ||
|
|
1243
1245
|
!Number.isInteger(page) ||
|
|
1244
1246
|
page < 0 ||
|
|
1245
1247
|
!Number.isInteger(pageSize) ||
|
|
@@ -1250,15 +1252,15 @@ export default {
|
|
|
1250
1252
|
sendJson(response, 400, { error: "Invalid marketplace query" });
|
|
1251
1253
|
return;
|
|
1252
1254
|
}
|
|
1253
|
-
const filtered = searchMarketplace(query, capability, category);
|
|
1255
|
+
const filtered = searchMarketplace(query, capability, category, locale);
|
|
1254
1256
|
const cached = readCachedMarketplaceStatistics(MARKETPLACE_PLUGINS);
|
|
1255
1257
|
// Recommendation is only applied once the whole catalogue has been looked up. Scoring a half-warm cache would reorder the grid under the reader's cursor on every poll as the background lookups land, which costs more than the few seconds the first sort is delayed.
|
|
1256
1258
|
const items =
|
|
1257
1259
|
sort === "recommended" && cached.ready ? sortMarketplaceByRecommendation(attachMarketplaceStatistics(filtered, cached.statistics)) : filtered;
|
|
1258
1260
|
sendJson(response, 200, {
|
|
1259
1261
|
...paginateMarketplace(items, page, pageSize),
|
|
1260
|
-
capabilities:
|
|
1261
|
-
categories:
|
|
1262
|
+
capabilities: marketplaceCapabilities(locale),
|
|
1263
|
+
categories: marketplaceCategories(locale),
|
|
1262
1264
|
});
|
|
1263
1265
|
},
|
|
1264
1266
|
});
|
|
@@ -1795,6 +1797,7 @@ export default {
|
|
|
1795
1797
|
jsonSafe({
|
|
1796
1798
|
sessionId: session.sessionId,
|
|
1797
1799
|
sessionFile: session.sessionFile,
|
|
1800
|
+
name: typeof sessionManager?.getSessionName === "function" ? (sessionManager.getSessionName() ?? undefined) : undefined,
|
|
1798
1801
|
messages: session.messages,
|
|
1799
1802
|
entries: typeof sessionManager?.getEntries === "function" ? sessionManager.getEntries() : [],
|
|
1800
1803
|
events,
|
|
@@ -1945,7 +1948,8 @@ export default {
|
|
|
1945
1948
|
sendJson(response, 400, { error: "Session name must be at most 120 characters" });
|
|
1946
1949
|
return;
|
|
1947
1950
|
}
|
|
1948
|
-
|
|
1951
|
+
if (path === services.runtime.session.sessionFile && typeof manager.appendSessionInfo === "function") manager.appendSessionInfo(name);
|
|
1952
|
+
else SessionManager.open(path, manager.getSessionDir()).appendSessionInfo(name);
|
|
1949
1953
|
sendJson(response, 200, { path, name: name || undefined });
|
|
1950
1954
|
} catch (error) {
|
|
1951
1955
|
sendJson(response, 400, { error: errorText(error) });
|