@planu/cli 0.68.0 → 0.69.0

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,267 @@
1
+ {
2
+ "local-first": {
3
+ "npm": ["crdt", "offline-first", "local-first-database", "realtime-sync"],
4
+ "github_topics": ["crdt", "local-first", "offline-first", "sync-engine"],
5
+ "description": "Local-first data sync and offline capabilities"
6
+ },
7
+ "event-driven": {
8
+ "npm": ["event-sourcing", "cqrs", "message-queue", "event-bus"],
9
+ "github_topics": ["event-sourcing", "message-broker", "event-driven"],
10
+ "description": "Event-driven architecture patterns"
11
+ },
12
+ "realtime": {
13
+ "npm": ["realtime-database", "multiplayer", "collaborative-editing", "websocket-server"],
14
+ "github_topics": ["realtime", "multiplayer", "collaborative", "websocket"],
15
+ "description": "Real-time sync and multiplayer capabilities"
16
+ },
17
+ "ai-native": {
18
+ "npm": ["llm-orchestration", "rag-framework", "vector-database", "ai-agent"],
19
+ "github_topics": ["llm", "rag", "ai-agent", "vector-database"],
20
+ "description": "AI/LLM native application patterns"
21
+ },
22
+ "serverless": {
23
+ "npm": ["serverless-framework", "edge-function", "serverless-database"],
24
+ "github_topics": ["serverless", "edge-computing", "faas"],
25
+ "description": "Serverless and edge computing"
26
+ },
27
+ "microservices": {
28
+ "npm": ["service-mesh", "api-gateway", "service-discovery", "distributed-tracing"],
29
+ "github_topics": ["microservices", "service-mesh", "api-gateway"],
30
+ "description": "Microservices architecture"
31
+ },
32
+ "testing-advanced": {
33
+ "npm": ["property-based-testing", "mutation-testing", "chaos-engineering", "contract-testing"],
34
+ "github_topics": ["property-testing", "mutation-testing", "chaos-engineering"],
35
+ "description": "Advanced testing patterns"
36
+ },
37
+ "observability": {
38
+ "npm": ["opentelemetry", "distributed-tracing", "log-aggregation", "metrics-collection"],
39
+ "github_topics": ["observability", "tracing", "monitoring"],
40
+ "description": "Observability and monitoring stack"
41
+ },
42
+ "mobile-cross-platform": {
43
+ "npm": ["react-native", "flutter", "capacitor", "expo"],
44
+ "github_topics": ["react-native", "flutter", "cross-platform-mobile"],
45
+ "description": "Cross-platform mobile development"
46
+ },
47
+ "security": {
48
+ "npm": ["oauth2-server", "jwt-authentication", "rbac", "rate-limiter"],
49
+ "github_topics": ["authentication", "authorization", "security"],
50
+ "description": "Security and authentication patterns"
51
+ },
52
+ "ci-cd": {
53
+ "npm": ["github-actions", "ci-cd", "deployment-automation"],
54
+ "github_topics": ["ci-cd", "devops", "deployment"],
55
+ "description": "CI/CD and deployment automation"
56
+ },
57
+ "database-modern": {
58
+ "npm": ["edge-database", "serverless-database", "vector-store", "graph-database"],
59
+ "github_topics": ["database", "serverless-database", "vector-database"],
60
+ "description": "Modern database solutions"
61
+ },
62
+ "actor-model": {
63
+ "npm": ["actor-framework", "akka", "nact", "comedy"],
64
+ "github_topics": ["actor-model", "actor-framework", "concurrent-programming"],
65
+ "description": "Actor model concurrency patterns"
66
+ },
67
+ "temporal": {
68
+ "npm": ["temporalio", "workflow-orchestration", "durable-execution"],
69
+ "github_topics": ["temporal", "workflow-engine", "durable-workflow"],
70
+ "description": "Temporal workflow orchestration"
71
+ },
72
+ "cell-based": {
73
+ "npm": ["cell-architecture", "blast-radius", "fault-isolation"],
74
+ "github_topics": ["cell-based-architecture", "availability-zones", "fault-isolation"],
75
+ "description": "Cell-based architecture for fault isolation"
76
+ },
77
+ "data-mesh": {
78
+ "npm": ["data-mesh", "data-product", "data-catalog", "data-contract"],
79
+ "github_topics": ["data-mesh", "data-product", "data-governance"],
80
+ "description": "Data mesh and data product patterns"
81
+ },
82
+ "bff": {
83
+ "npm": ["backend-for-frontend", "api-composition", "graphql-gateway"],
84
+ "github_topics": ["bff", "backend-for-frontend", "api-gateway"],
85
+ "description": "Backend for Frontend pattern"
86
+ },
87
+ "modular-monolith": {
88
+ "npm": ["module-boundaries", "nx-module", "vertical-slice"],
89
+ "github_topics": ["modular-monolith", "vertical-slice-architecture", "clean-architecture"],
90
+ "description": "Modular monolith architecture"
91
+ },
92
+ "composable": {
93
+ "npm": ["composable-architecture", "headless-commerce", "mach-architecture"],
94
+ "github_topics": ["composable-architecture", "headless-cms", "mach"],
95
+ "description": "Composable and MACH architecture"
96
+ },
97
+ "ddd": {
98
+ "npm": ["domain-driven-design", "aggregate-root", "bounded-context", "domain-events"],
99
+ "github_topics": ["ddd", "domain-driven-design", "bounded-context"],
100
+ "description": "Domain-Driven Design patterns"
101
+ },
102
+ "wasm": {
103
+ "npm": ["webassembly", "wasm-pack", "assemblyscript", "emscripten"],
104
+ "github_topics": ["webassembly", "wasm", "assemblyscript"],
105
+ "description": "WebAssembly toolchain and targets"
106
+ },
107
+ "gitops": {
108
+ "npm": ["flux", "argocd", "gitops-operator"],
109
+ "github_topics": ["gitops", "flux", "argocd"],
110
+ "description": "GitOps deployment patterns"
111
+ },
112
+ "micro-frontend": {
113
+ "npm": ["module-federation", "single-spa", "micro-frontend", "webpack-federation"],
114
+ "github_topics": ["micro-frontends", "module-federation", "single-spa"],
115
+ "description": "Micro-frontend architecture"
116
+ },
117
+ "vector-db": {
118
+ "npm": ["pinecone", "weaviate", "qdrant", "chroma", "pgvector"],
119
+ "github_topics": ["vector-database", "embedding-search", "semantic-search"],
120
+ "description": "Vector database and embedding storage"
121
+ },
122
+ "graph-db": {
123
+ "npm": ["neo4j", "tigergraph", "dgraph", "arangodb"],
124
+ "github_topics": ["graph-database", "knowledge-graph", "neo4j"],
125
+ "description": "Graph database patterns"
126
+ },
127
+ "timeseries-db": {
128
+ "npm": ["influxdb", "timescaledb", "questdb", "prometheus"],
129
+ "github_topics": ["time-series-database", "timescaledb", "influxdb"],
130
+ "description": "Time-series data storage and analytics"
131
+ },
132
+ "cache-db": {
133
+ "npm": ["redis", "memcached", "keyv", "cache-manager"],
134
+ "github_topics": ["caching", "redis", "distributed-cache"],
135
+ "description": "Caching and in-memory data stores"
136
+ },
137
+ "newsql": {
138
+ "npm": ["cockroachdb", "yugabyte", "vitess", "tidb"],
139
+ "github_topics": ["newsql", "distributed-sql", "cockroachdb"],
140
+ "description": "NewSQL distributed relational databases"
141
+ },
142
+ "wide-column-db": {
143
+ "npm": ["cassandra", "scylladb", "bigtable", "hbase"],
144
+ "github_topics": ["wide-column-store", "cassandra", "distributed-database"],
145
+ "description": "Wide-column NoSQL databases"
146
+ },
147
+ "monitoring": {
148
+ "npm": ["prometheus", "grafana", "datadog", "newrelic"],
149
+ "github_topics": ["monitoring", "alerting", "metrics"],
150
+ "description": "Application monitoring and alerting"
151
+ },
152
+ "supply-chain": {
153
+ "npm": ["sbom", "dependency-check", "syft", "grype"],
154
+ "github_topics": ["supply-chain-security", "sbom", "dependency-scanning"],
155
+ "description": "Software supply chain security"
156
+ },
157
+ "finops": {
158
+ "npm": ["cloud-cost", "infracost", "opencost"],
159
+ "github_topics": ["finops", "cloud-cost-optimization", "infracost"],
160
+ "description": "Cloud cost optimization and FinOps"
161
+ },
162
+ "hypermedia": {
163
+ "npm": ["htmx", "hyperscript", "hypermedia-api", "hateoas"],
164
+ "github_topics": ["htmx", "hypermedia", "hateoas"],
165
+ "description": "Hypermedia-driven API patterns"
166
+ },
167
+ "search-engine": {
168
+ "npm": ["elasticsearch", "meilisearch", "typesense", "algolia"],
169
+ "github_topics": ["search-engine", "full-text-search", "meilisearch"],
170
+ "description": "Full-text and vector search engines"
171
+ },
172
+ "idp": {
173
+ "npm": ["backstage", "port", "cortex", "internal-developer-portal"],
174
+ "github_topics": ["internal-developer-portal", "backstage", "platform-engineering"],
175
+ "description": "Internal Developer Platform patterns"
176
+ },
177
+ "nomad": {
178
+ "npm": ["nomad", "hashicorp-nomad"],
179
+ "github_topics": ["nomad", "hashicorp-nomad", "workload-orchestration"],
180
+ "description": "HashiCorp Nomad workload orchestration"
181
+ },
182
+ "k3s": {
183
+ "npm": ["k3s", "lightweight-kubernetes"],
184
+ "github_topics": ["k3s", "lightweight-kubernetes", "edge-kubernetes"],
185
+ "description": "Lightweight Kubernetes distributions"
186
+ },
187
+ "agent-framework": {
188
+ "npm": ["langchain-agent", "autogen", "crewai", "langgraph"],
189
+ "github_topics": ["ai-agents", "multi-agent", "autogen"],
190
+ "description": "AI agent frameworks and orchestration"
191
+ },
192
+ "platform-specialty": {
193
+ "npm": ["cloudflare-workers", "aws-lambda", "vercel-edge", "deno-deploy"],
194
+ "github_topics": ["edge-runtime", "cloudflare-workers", "serverless-functions"],
195
+ "description": "Specialty platform and edge runtimes"
196
+ },
197
+ "frontend-perf": {
198
+ "npm": ["web-vitals", "lighthouse", "bundle-analyzer", "lazy-loading"],
199
+ "github_topics": ["core-web-vitals", "performance-optimization", "web-performance"],
200
+ "description": "Frontend performance optimization"
201
+ },
202
+ "template-engine": {
203
+ "npm": ["handlebars", "nunjucks", "pug", "ejs"],
204
+ "github_topics": ["template-engine", "server-side-rendering", "templating"],
205
+ "description": "Server-side template engines"
206
+ },
207
+ "resilience": {
208
+ "npm": ["circuit-breaker", "retry-logic", "bulkhead", "timeout-handler"],
209
+ "github_topics": ["resilience", "circuit-breaker", "fault-tolerance"],
210
+ "description": "Resilience and fault tolerance patterns"
211
+ },
212
+ "mcp-candidate": {
213
+ "npm": ["mcp-server", "model-context-protocol", "claude-mcp"],
214
+ "github_topics": ["model-context-protocol", "mcp-server", "claude-tools"],
215
+ "description": "Model Context Protocol server candidates"
216
+ },
217
+ "multi-tenancy": {
218
+ "npm": ["multi-tenant", "tenant-isolation", "saas-framework"],
219
+ "github_topics": ["multi-tenancy", "saas", "tenant-isolation"],
220
+ "description": "Multi-tenancy SaaS patterns"
221
+ },
222
+ "analytics": {
223
+ "npm": ["segment", "mixpanel", "posthog", "amplitude"],
224
+ "github_topics": ["product-analytics", "event-tracking", "analytics"],
225
+ "description": "Product analytics and event tracking"
226
+ },
227
+ "desktop": {
228
+ "npm": ["electron", "tauri", "neutralino", "nw.js"],
229
+ "github_topics": ["desktop-app", "electron", "tauri"],
230
+ "description": "Desktop application frameworks"
231
+ },
232
+ "pii": {
233
+ "npm": ["pii-detection", "data-masking", "gdpr-compliance"],
234
+ "github_topics": ["pii-detection", "data-privacy", "gdpr"],
235
+ "description": "PII detection and data privacy"
236
+ },
237
+ "eu-ai-act": {
238
+ "npm": ["ai-compliance", "model-card", "fairness-indicators"],
239
+ "github_topics": ["eu-ai-act", "ai-compliance", "responsible-ai"],
240
+ "description": "EU AI Act compliance tooling"
241
+ },
242
+ "otel-ecosystem": {
243
+ "npm": ["opentelemetry-sdk", "otel-exporter", "otel-collector"],
244
+ "github_topics": ["opentelemetry", "otel", "observability"],
245
+ "description": "OpenTelemetry ecosystem integrations"
246
+ },
247
+ "llm-provider": {
248
+ "npm": ["openai", "anthropic", "azure-openai", "google-ai"],
249
+ "github_topics": ["llm", "language-model", "generative-ai"],
250
+ "description": "LLM provider SDKs and integrations"
251
+ },
252
+ "cicd": {
253
+ "npm": ["jest-ci", "semantic-release", "release-it", "changesets"],
254
+ "github_topics": ["continuous-integration", "continuous-deployment", "release-automation"],
255
+ "description": "CI/CD pipeline tooling and release automation"
256
+ },
257
+ "cloud-db": {
258
+ "npm": ["supabase", "firebase", "planetscale", "neon"],
259
+ "github_topics": ["cloud-database", "serverless-postgres", "firebase"],
260
+ "description": "Managed cloud database services"
261
+ },
262
+ "monorepo": {
263
+ "npm": ["nx", "turborepo", "lerna", "pnpm-workspace"],
264
+ "github_topics": ["monorepo", "nx", "turborepo"],
265
+ "description": "Monorepo tooling and management"
266
+ }
267
+ }
@@ -0,0 +1,4 @@
1
+ import type { DiscoveredTool } from './result-ranker.js';
2
+ export declare function searchNpmRegistry(keywords: string[]): Promise<DiscoveredTool[]>;
3
+ export declare function searchGitHubTopics(topics: string[]): Promise<DiscoveredTool[]>;
4
+ //# sourceMappingURL=registry-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-search.d.ts","sourceRoot":"","sources":["../../../src/engine/discovery/registry-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAqCzD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAuCrF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAoCpF"}
@@ -0,0 +1,82 @@
1
+ const NPM_SEARCH_URL = 'https://registry.npmjs.org/-/v1/search';
2
+ const NPM_DOWNLOADS_URL = 'https://api.npmjs.org/downloads/point/last-week';
3
+ const GITHUB_SEARCH_URL = 'https://api.github.com/search/repositories';
4
+ const TIMEOUT_MS = 5000;
5
+ function withTimeout(promise, ms) {
6
+ return Promise.race([
7
+ promise,
8
+ new Promise((_, reject) => setTimeout(() => {
9
+ reject(new Error('timeout'));
10
+ }, ms)),
11
+ ]);
12
+ }
13
+ async function fetchJson(url) {
14
+ const response = await withTimeout(fetch(url), TIMEOUT_MS);
15
+ if (!response.ok) {
16
+ throw new Error(`HTTP ${response.status}`);
17
+ }
18
+ return response.json();
19
+ }
20
+ async function getWeeklyDownloads(name) {
21
+ try {
22
+ const data = (await fetchJson(`${NPM_DOWNLOADS_URL}/${encodeURIComponent(name)}`));
23
+ return data.downloads;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ export async function searchNpmRegistry(keywords) {
30
+ const targets = keywords.slice(0, 3);
31
+ const results = [];
32
+ for (const keyword of targets) {
33
+ try {
34
+ const url = `${NPM_SEARCH_URL}?text=keywords:${encodeURIComponent(keyword)}&size=5`;
35
+ const data = (await fetchJson(url));
36
+ const packages = data.objects ?? [];
37
+ for (const obj of packages) {
38
+ const pkg = obj.package;
39
+ const downloads = await getWeeklyDownloads(pkg.name);
40
+ results.push({
41
+ name: pkg.name,
42
+ description: pkg.description ?? '',
43
+ url: pkg.links?.npm ?? `https://www.npmjs.com/package/${pkg.name}`,
44
+ source: 'npm',
45
+ publishedAt: pkg.date,
46
+ weeklyDownloads: downloads,
47
+ });
48
+ }
49
+ }
50
+ catch {
51
+ // best-effort: skip failed keyword
52
+ }
53
+ }
54
+ return results;
55
+ }
56
+ export async function searchGitHubTopics(topics) {
57
+ const targets = topics.slice(0, 2);
58
+ const results = [];
59
+ for (const topic of targets) {
60
+ try {
61
+ const query = `topic:${encodeURIComponent(topic)}+stars:>500`;
62
+ const url = `${GITHUB_SEARCH_URL}?q=${query}&sort=stars&per_page=5`;
63
+ const data = (await fetchJson(url));
64
+ const items = data.items ?? [];
65
+ for (const item of items) {
66
+ results.push({
67
+ name: item.full_name,
68
+ description: item.description ?? '',
69
+ url: item.html_url,
70
+ source: 'github',
71
+ stars: item.stargazers_count,
72
+ pushedAt: item.pushed_at,
73
+ });
74
+ }
75
+ }
76
+ catch {
77
+ // best-effort: skip failed topic
78
+ }
79
+ }
80
+ return results;
81
+ }
82
+ //# sourceMappingURL=registry-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-search.js","sourceRoot":"","sources":["../../../src/engine/discovery/registry-search.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,wCAAwC,CAAC;AAChE,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;AAC5E,MAAM,iBAAiB,GAAG,4CAA4C,CAAC;AACvE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,SAAS,WAAW,CAAI,OAAmB,EAAE,EAAU;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC3B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC,CACP;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,iBAAiB,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAEhF,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,cAAc,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;YACpF,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CASjC,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAErD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;oBAClC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,iCAAiC,GAAG,CAAC,IAAI,EAAE;oBAClE,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,GAAG,CAAC,IAAI;oBACrB,eAAe,EAAE,SAAS;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAgB;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9D,MAAM,GAAG,GAAG,GAAG,iBAAiB,MAAM,KAAK,wBAAwB,CAAC;YACpE,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAQjC,CAAC;YAEF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;oBACnC,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,IAAI,CAAC,gBAAgB;oBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { DiscoveredTool } from '../../types/index.js';
2
+ export type { DiscoveredTool };
3
+ /**
4
+ * Ranks npm and GitHub discovery results by popularity and stack relevance.
5
+ * Deduplicates by name (case-insensitive), returns top 10 sorted descending by score.
6
+ */
7
+ export declare function rankResults(npmResults: DiscoveredTool[], githubResults: DiscoveredTool[], stackLanguage: string): DiscoveredTool[];
8
+ //# sourceMappingURL=result-ranker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-ranker.d.ts","sourceRoot":"","sources":["../../../src/engine/discovery/result-ranker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,YAAY,EAAE,cAAc,EAAE,CAAC;AAiC/B;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,cAAc,EAAE,EAC5B,aAAa,EAAE,cAAc,EAAE,EAC/B,aAAa,EAAE,MAAM,GACpB,cAAc,EAAE,CAclB"}
@@ -0,0 +1,46 @@
1
+ // engine/discovery/result-ranker.ts — SPEC-181
2
+ // Ranks and deduplicates npm + GitHub discovery results by popularity and stack relevance.
3
+ const MAX_RESULTS = 10;
4
+ const MAX_SCORE = 50;
5
+ function scoreNpm(tool) {
6
+ if (!tool.weeklyDownloads || tool.weeklyDownloads <= 0) {
7
+ return 0;
8
+ }
9
+ return Math.min(Math.log10(tool.weeklyDownloads) * 10, MAX_SCORE);
10
+ }
11
+ function scoreGithub(tool) {
12
+ if (!tool.stars || tool.stars <= 0) {
13
+ return 0;
14
+ }
15
+ return Math.min(Math.log10(tool.stars) * 15, MAX_SCORE);
16
+ }
17
+ function stackBonus(tool, stackLanguage) {
18
+ if (!stackLanguage) {
19
+ return 0;
20
+ }
21
+ const lang = stackLanguage.toLowerCase();
22
+ const text = `${tool.name} ${tool.description}`.toLowerCase();
23
+ return text.includes(lang) ? 10 : 0;
24
+ }
25
+ function computeScore(tool, stackLanguage) {
26
+ const base = tool.source === 'npm' ? scoreNpm(tool) : scoreGithub(tool);
27
+ return base + stackBonus(tool, stackLanguage);
28
+ }
29
+ /**
30
+ * Ranks npm and GitHub discovery results by popularity and stack relevance.
31
+ * Deduplicates by name (case-insensitive), returns top 10 sorted descending by score.
32
+ */
33
+ export function rankResults(npmResults, githubResults, stackLanguage) {
34
+ const seen = new Map();
35
+ for (const tool of [...npmResults, ...githubResults]) {
36
+ const key = tool.name.toLowerCase();
37
+ const computedScore = computeScore(tool, stackLanguage);
38
+ const scored = { ...tool, score: computedScore };
39
+ const existing = seen.get(key);
40
+ if (!existing || computedScore > (existing.score ?? 0)) {
41
+ seen.set(key, scored);
42
+ }
43
+ }
44
+ return [...seen.values()].sort((a, b) => (b.score ?? 0) - (a.score ?? 0)).slice(0, MAX_RESULTS);
45
+ }
46
+ //# sourceMappingURL=result-ranker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-ranker.js","sourceRoot":"","sources":["../../../src/engine/discovery/result-ranker.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,2FAA2F;AAM3F,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,SAAS,QAAQ,CAAC,IAAoB;IACpC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,IAAoB;IACvC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,IAAoB,EAAE,aAAqB;IAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB,EAAE,aAAqB;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,UAA4B,EAC5B,aAA+B,EAC/B,aAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxD,MAAM,MAAM,GAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAClG,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DiscoveredTool } from '../../types/discovery.js';
2
+ export type { DiscoveredTool };
3
+ export declare function discoverTools(patterns: string[], _stackLanguage: string, dataDir: string): Promise<DiscoveredTool[]>;
4
+ //# sourceMappingURL=tech-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-discovery.d.ts","sourceRoot":"","sources":["../../../src/engine/discovery/tech-discovery.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,cAAc,EAAE,CAAC;AAwD/B,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAwC3B"}
@@ -0,0 +1,83 @@
1
+ // tech-discovery.ts — Main orchestrator for tool discovery across npm and GitHub registries
2
+ import { readFileSync } from 'node:fs';
3
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
4
+ import { join, dirname } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { searchNpmRegistry, searchGitHubTopics } from './registry-search.js';
7
+ import { rankResults } from './result-ranker.js';
8
+ // --- config (loaded once at module init) ---
9
+ const CONFIG_PATH = join(dirname(fileURLToPath(import.meta.url)), '../../config/discovery-queries.json');
10
+ let queryMapping = null;
11
+ function loadDiscoveryQueryMapping() {
12
+ if (queryMapping !== null) {
13
+ return queryMapping;
14
+ }
15
+ try {
16
+ queryMapping = JSON.parse(readFileSync(CONFIG_PATH, 'utf-8'));
17
+ }
18
+ catch {
19
+ queryMapping = {};
20
+ }
21
+ return queryMapping;
22
+ }
23
+ // --- cache helpers ---
24
+ const CACHE_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
25
+ function cacheFile(dataDir) {
26
+ return join(dataDir, 'discovery-cache.json');
27
+ }
28
+ async function readCache(dataDir) {
29
+ try {
30
+ const raw = await readFile(cacheFile(dataDir), 'utf-8');
31
+ return JSON.parse(raw);
32
+ }
33
+ catch {
34
+ return {};
35
+ }
36
+ }
37
+ async function writeCache(dataDir, cache) {
38
+ try {
39
+ const path = cacheFile(dataDir);
40
+ await mkdir(dirname(path), { recursive: true });
41
+ await writeFile(path, JSON.stringify(cache, null, 2), 'utf-8');
42
+ }
43
+ catch {
44
+ // best-effort — never fail the caller
45
+ }
46
+ }
47
+ function isFresh(entry) {
48
+ return Date.now() - new Date(entry.cachedAt).getTime() < CACHE_TTL_MS;
49
+ }
50
+ // --- main export ---
51
+ export async function discoverTools(patterns, _stackLanguage, dataDir) {
52
+ const mapping = loadDiscoveryQueryMapping();
53
+ const cache = await readCache(dataDir);
54
+ const cacheUpdated = { ...cache };
55
+ const allResults = await Promise.all(patterns.map(async (pattern) => {
56
+ const cached = cache[pattern];
57
+ if (cached && isFresh(cached)) {
58
+ return cached.results;
59
+ }
60
+ const config = mapping[pattern];
61
+ const keywords = config?.npm_keywords ?? [pattern];
62
+ const topics = config?.github_topics ?? [pattern];
63
+ const [npmResults, ghResults] = await Promise.all([
64
+ searchNpmRegistry(keywords),
65
+ searchGitHubTopics(topics),
66
+ ]);
67
+ const ranked = rankResults(npmResults, ghResults, _stackLanguage);
68
+ cacheUpdated[pattern] = { results: ranked, cachedAt: new Date().toISOString() };
69
+ return ranked;
70
+ }));
71
+ await writeCache(dataDir, cacheUpdated);
72
+ const merged = allResults.flat();
73
+ const seen = new Set();
74
+ const deduped = merged.filter((tool) => {
75
+ if (seen.has(tool.name)) {
76
+ return false;
77
+ }
78
+ seen.add(tool.name);
79
+ return true;
80
+ });
81
+ return rankResults(deduped, [], _stackLanguage);
82
+ }
83
+ //# sourceMappingURL=tech-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-discovery.js","sourceRoot":"","sources":["../../../src/engine/discovery/tech-discovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tools/suggest-tooling/handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EAMnB,UAAU,EACX,MAAM,sBAAsB,CAAC;AA+B9B,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2RzF"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tools/suggest-tooling/handler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,mBAAmB,EAMnB,UAAU,EACX,MAAM,sBAAsB,CAAC;AA+B9B,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwUzF"}
@@ -1,6 +1,7 @@
1
1
  // tools/suggest-tooling/handler.ts — MCP tool handler for suggest_tooling
2
2
  import { t, ti } from '../../i18n/index.js';
3
3
  import { knowledgeStore } from '../../storage/index.js';
4
+ import { discoverTools } from '../../engine/discovery/tech-discovery.js';
4
5
  import { detectCSSFramework } from '../../engine/detectors/css-framework-detector.js';
5
6
  import { fetchRecommendedSkills } from './skills-fetcher.js';
6
7
  import { getPlatformTooling } from './platform-tooling-catalog.js';
@@ -247,11 +248,48 @@ export async function handleSuggestTooling(args) {
247
248
  ]
248
249
  .filter((section) => section.length > 0)
249
250
  .map((section) => ({ type: 'text', text: section.join('\n') }));
251
+ // SPEC-181: Dynamic technology discovery — search live registries
252
+ const detectedPatterns = [];
253
+ if (knowledge.localFirst?.isLocalFirst) {
254
+ detectedPatterns.push('local-first');
255
+ }
256
+ if (knowledge.aiNativeDetection?.inferenceMode) {
257
+ detectedPatterns.push('ai-native');
258
+ }
259
+ if (knowledge.otelDetection?.isInstalled) {
260
+ detectedPatterns.push('observability');
261
+ }
262
+ if (knowledge.externalServices.some((s) => ['vercel', 'netlify', 'lambda', 'cloudflare'].some((p) => s.toLowerCase().includes(p)))) {
263
+ detectedPatterns.push('serverless');
264
+ }
265
+ if (knowledge.architecture.primary === 'microservices') {
266
+ detectedPatterns.push('microservices');
267
+ }
268
+ if (knowledge.architecture.primary === 'event-driven') {
269
+ detectedPatterns.push('event-driven');
270
+ }
271
+ let discoverySection = [];
272
+ if (detectedPatterns.length > 0) {
273
+ try {
274
+ const dataDir = `data/global`;
275
+ const discovered = await discoverTools(detectedPatterns, knowledge.language, dataDir);
276
+ if (discovered.length > 0) {
277
+ const discLines = [
278
+ '\n## 🔍 Discovered (live from npm/GitHub)',
279
+ ...discovered.map((d) => `- **${d.name}** — ${d.description} ([${d.source}](${d.url}))${d.weeklyDownloads ? ` · ${d.weeklyDownloads.toLocaleString()} dl/week` : ''}${d.stars ? ` · ⭐ ${d.stars.toLocaleString()}` : ''}`),
280
+ ];
281
+ discoverySection = [{ type: 'text', text: discLines.join('\n') }];
282
+ }
283
+ }
284
+ catch {
285
+ // best-effort — never fail suggest_tooling because of discovery
286
+ }
287
+ }
250
288
  // SPEC-174: Version verification notice — always appended to tooling output
251
289
  const versionNotice = {
252
290
  type: 'text',
253
291
  text: '\n\n> **⚠️ Version Notice:** The versions shown are defaults from our registry. Always verify against official sources (npm, Maven Central, Docker Hub, pub.dev, crates.io) before adopting.',
254
292
  };
255
- return { content: [...content, ...additionalSections, versionNotice] };
293
+ return { content: [...content, ...additionalSections, ...discoverySection, versionNotice] };
256
294
  }
257
295
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tools/suggest-tooling/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tools/suggest-tooling/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface DiscoveredTool {
2
+ name: string;
3
+ description: string;
4
+ source: 'npm' | 'github';
5
+ score?: number;
6
+ weeklyDownloads?: number;
7
+ stars?: number;
8
+ url: string;
9
+ lastUpdated?: string;
10
+ publishedAt?: string;
11
+ pushedAt?: string;
12
+ }
13
+ export interface DiscoveryCacheEntry {
14
+ results: DiscoveredTool[];
15
+ cachedAt: string;
16
+ }
17
+ export type DiscoveryQueryMapping = Record<string, {
18
+ npm_keywords: string[];
19
+ github_topics: string[];
20
+ }>;
21
+ export type DiscoveryCache = Record<string, DiscoveryCacheEntry>;
22
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/types/discovery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC,MAAM,EACN;IACE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ // types/discovery.ts — SPEC-181: Tool discovery types
2
+ export {};
3
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/types/discovery.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
@@ -103,4 +103,5 @@ export * from './elicitation.js';
103
103
  export * from './well-known.js';
104
104
  export * from './observability.js';
105
105
  export * from './resources.js';
106
+ export * from './discovery.js';
106
107
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -104,4 +104,5 @@ export * from './elicitation.js';
104
104
  export * from './well-known.js';
105
105
  export * from './observability.js';
106
106
  export * from './resources.js';
107
+ export * from './discovery.js';
107
108
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "0.68.0",
3
+ "version": "0.69.0",
4
4
  "description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,267 @@
1
+ {
2
+ "local-first": {
3
+ "npm": ["crdt", "offline-first", "local-first-database", "realtime-sync"],
4
+ "github_topics": ["crdt", "local-first", "offline-first", "sync-engine"],
5
+ "description": "Local-first data sync and offline capabilities"
6
+ },
7
+ "event-driven": {
8
+ "npm": ["event-sourcing", "cqrs", "message-queue", "event-bus"],
9
+ "github_topics": ["event-sourcing", "message-broker", "event-driven"],
10
+ "description": "Event-driven architecture patterns"
11
+ },
12
+ "realtime": {
13
+ "npm": ["realtime-database", "multiplayer", "collaborative-editing", "websocket-server"],
14
+ "github_topics": ["realtime", "multiplayer", "collaborative", "websocket"],
15
+ "description": "Real-time sync and multiplayer capabilities"
16
+ },
17
+ "ai-native": {
18
+ "npm": ["llm-orchestration", "rag-framework", "vector-database", "ai-agent"],
19
+ "github_topics": ["llm", "rag", "ai-agent", "vector-database"],
20
+ "description": "AI/LLM native application patterns"
21
+ },
22
+ "serverless": {
23
+ "npm": ["serverless-framework", "edge-function", "serverless-database"],
24
+ "github_topics": ["serverless", "edge-computing", "faas"],
25
+ "description": "Serverless and edge computing"
26
+ },
27
+ "microservices": {
28
+ "npm": ["service-mesh", "api-gateway", "service-discovery", "distributed-tracing"],
29
+ "github_topics": ["microservices", "service-mesh", "api-gateway"],
30
+ "description": "Microservices architecture"
31
+ },
32
+ "testing-advanced": {
33
+ "npm": ["property-based-testing", "mutation-testing", "chaos-engineering", "contract-testing"],
34
+ "github_topics": ["property-testing", "mutation-testing", "chaos-engineering"],
35
+ "description": "Advanced testing patterns"
36
+ },
37
+ "observability": {
38
+ "npm": ["opentelemetry", "distributed-tracing", "log-aggregation", "metrics-collection"],
39
+ "github_topics": ["observability", "tracing", "monitoring"],
40
+ "description": "Observability and monitoring stack"
41
+ },
42
+ "mobile-cross-platform": {
43
+ "npm": ["react-native", "flutter", "capacitor", "expo"],
44
+ "github_topics": ["react-native", "flutter", "cross-platform-mobile"],
45
+ "description": "Cross-platform mobile development"
46
+ },
47
+ "security": {
48
+ "npm": ["oauth2-server", "jwt-authentication", "rbac", "rate-limiter"],
49
+ "github_topics": ["authentication", "authorization", "security"],
50
+ "description": "Security and authentication patterns"
51
+ },
52
+ "ci-cd": {
53
+ "npm": ["github-actions", "ci-cd", "deployment-automation"],
54
+ "github_topics": ["ci-cd", "devops", "deployment"],
55
+ "description": "CI/CD and deployment automation"
56
+ },
57
+ "database-modern": {
58
+ "npm": ["edge-database", "serverless-database", "vector-store", "graph-database"],
59
+ "github_topics": ["database", "serverless-database", "vector-database"],
60
+ "description": "Modern database solutions"
61
+ },
62
+ "actor-model": {
63
+ "npm": ["actor-framework", "akka", "nact", "comedy"],
64
+ "github_topics": ["actor-model", "actor-framework", "concurrent-programming"],
65
+ "description": "Actor model concurrency patterns"
66
+ },
67
+ "temporal": {
68
+ "npm": ["temporalio", "workflow-orchestration", "durable-execution"],
69
+ "github_topics": ["temporal", "workflow-engine", "durable-workflow"],
70
+ "description": "Temporal workflow orchestration"
71
+ },
72
+ "cell-based": {
73
+ "npm": ["cell-architecture", "blast-radius", "fault-isolation"],
74
+ "github_topics": ["cell-based-architecture", "availability-zones", "fault-isolation"],
75
+ "description": "Cell-based architecture for fault isolation"
76
+ },
77
+ "data-mesh": {
78
+ "npm": ["data-mesh", "data-product", "data-catalog", "data-contract"],
79
+ "github_topics": ["data-mesh", "data-product", "data-governance"],
80
+ "description": "Data mesh and data product patterns"
81
+ },
82
+ "bff": {
83
+ "npm": ["backend-for-frontend", "api-composition", "graphql-gateway"],
84
+ "github_topics": ["bff", "backend-for-frontend", "api-gateway"],
85
+ "description": "Backend for Frontend pattern"
86
+ },
87
+ "modular-monolith": {
88
+ "npm": ["module-boundaries", "nx-module", "vertical-slice"],
89
+ "github_topics": ["modular-monolith", "vertical-slice-architecture", "clean-architecture"],
90
+ "description": "Modular monolith architecture"
91
+ },
92
+ "composable": {
93
+ "npm": ["composable-architecture", "headless-commerce", "mach-architecture"],
94
+ "github_topics": ["composable-architecture", "headless-cms", "mach"],
95
+ "description": "Composable and MACH architecture"
96
+ },
97
+ "ddd": {
98
+ "npm": ["domain-driven-design", "aggregate-root", "bounded-context", "domain-events"],
99
+ "github_topics": ["ddd", "domain-driven-design", "bounded-context"],
100
+ "description": "Domain-Driven Design patterns"
101
+ },
102
+ "wasm": {
103
+ "npm": ["webassembly", "wasm-pack", "assemblyscript", "emscripten"],
104
+ "github_topics": ["webassembly", "wasm", "assemblyscript"],
105
+ "description": "WebAssembly toolchain and targets"
106
+ },
107
+ "gitops": {
108
+ "npm": ["flux", "argocd", "gitops-operator"],
109
+ "github_topics": ["gitops", "flux", "argocd"],
110
+ "description": "GitOps deployment patterns"
111
+ },
112
+ "micro-frontend": {
113
+ "npm": ["module-federation", "single-spa", "micro-frontend", "webpack-federation"],
114
+ "github_topics": ["micro-frontends", "module-federation", "single-spa"],
115
+ "description": "Micro-frontend architecture"
116
+ },
117
+ "vector-db": {
118
+ "npm": ["pinecone", "weaviate", "qdrant", "chroma", "pgvector"],
119
+ "github_topics": ["vector-database", "embedding-search", "semantic-search"],
120
+ "description": "Vector database and embedding storage"
121
+ },
122
+ "graph-db": {
123
+ "npm": ["neo4j", "tigergraph", "dgraph", "arangodb"],
124
+ "github_topics": ["graph-database", "knowledge-graph", "neo4j"],
125
+ "description": "Graph database patterns"
126
+ },
127
+ "timeseries-db": {
128
+ "npm": ["influxdb", "timescaledb", "questdb", "prometheus"],
129
+ "github_topics": ["time-series-database", "timescaledb", "influxdb"],
130
+ "description": "Time-series data storage and analytics"
131
+ },
132
+ "cache-db": {
133
+ "npm": ["redis", "memcached", "keyv", "cache-manager"],
134
+ "github_topics": ["caching", "redis", "distributed-cache"],
135
+ "description": "Caching and in-memory data stores"
136
+ },
137
+ "newsql": {
138
+ "npm": ["cockroachdb", "yugabyte", "vitess", "tidb"],
139
+ "github_topics": ["newsql", "distributed-sql", "cockroachdb"],
140
+ "description": "NewSQL distributed relational databases"
141
+ },
142
+ "wide-column-db": {
143
+ "npm": ["cassandra", "scylladb", "bigtable", "hbase"],
144
+ "github_topics": ["wide-column-store", "cassandra", "distributed-database"],
145
+ "description": "Wide-column NoSQL databases"
146
+ },
147
+ "monitoring": {
148
+ "npm": ["prometheus", "grafana", "datadog", "newrelic"],
149
+ "github_topics": ["monitoring", "alerting", "metrics"],
150
+ "description": "Application monitoring and alerting"
151
+ },
152
+ "supply-chain": {
153
+ "npm": ["sbom", "dependency-check", "syft", "grype"],
154
+ "github_topics": ["supply-chain-security", "sbom", "dependency-scanning"],
155
+ "description": "Software supply chain security"
156
+ },
157
+ "finops": {
158
+ "npm": ["cloud-cost", "infracost", "opencost"],
159
+ "github_topics": ["finops", "cloud-cost-optimization", "infracost"],
160
+ "description": "Cloud cost optimization and FinOps"
161
+ },
162
+ "hypermedia": {
163
+ "npm": ["htmx", "hyperscript", "hypermedia-api", "hateoas"],
164
+ "github_topics": ["htmx", "hypermedia", "hateoas"],
165
+ "description": "Hypermedia-driven API patterns"
166
+ },
167
+ "search-engine": {
168
+ "npm": ["elasticsearch", "meilisearch", "typesense", "algolia"],
169
+ "github_topics": ["search-engine", "full-text-search", "meilisearch"],
170
+ "description": "Full-text and vector search engines"
171
+ },
172
+ "idp": {
173
+ "npm": ["backstage", "port", "cortex", "internal-developer-portal"],
174
+ "github_topics": ["internal-developer-portal", "backstage", "platform-engineering"],
175
+ "description": "Internal Developer Platform patterns"
176
+ },
177
+ "nomad": {
178
+ "npm": ["nomad", "hashicorp-nomad"],
179
+ "github_topics": ["nomad", "hashicorp-nomad", "workload-orchestration"],
180
+ "description": "HashiCorp Nomad workload orchestration"
181
+ },
182
+ "k3s": {
183
+ "npm": ["k3s", "lightweight-kubernetes"],
184
+ "github_topics": ["k3s", "lightweight-kubernetes", "edge-kubernetes"],
185
+ "description": "Lightweight Kubernetes distributions"
186
+ },
187
+ "agent-framework": {
188
+ "npm": ["langchain-agent", "autogen", "crewai", "langgraph"],
189
+ "github_topics": ["ai-agents", "multi-agent", "autogen"],
190
+ "description": "AI agent frameworks and orchestration"
191
+ },
192
+ "platform-specialty": {
193
+ "npm": ["cloudflare-workers", "aws-lambda", "vercel-edge", "deno-deploy"],
194
+ "github_topics": ["edge-runtime", "cloudflare-workers", "serverless-functions"],
195
+ "description": "Specialty platform and edge runtimes"
196
+ },
197
+ "frontend-perf": {
198
+ "npm": ["web-vitals", "lighthouse", "bundle-analyzer", "lazy-loading"],
199
+ "github_topics": ["core-web-vitals", "performance-optimization", "web-performance"],
200
+ "description": "Frontend performance optimization"
201
+ },
202
+ "template-engine": {
203
+ "npm": ["handlebars", "nunjucks", "pug", "ejs"],
204
+ "github_topics": ["template-engine", "server-side-rendering", "templating"],
205
+ "description": "Server-side template engines"
206
+ },
207
+ "resilience": {
208
+ "npm": ["circuit-breaker", "retry-logic", "bulkhead", "timeout-handler"],
209
+ "github_topics": ["resilience", "circuit-breaker", "fault-tolerance"],
210
+ "description": "Resilience and fault tolerance patterns"
211
+ },
212
+ "mcp-candidate": {
213
+ "npm": ["mcp-server", "model-context-protocol", "claude-mcp"],
214
+ "github_topics": ["model-context-protocol", "mcp-server", "claude-tools"],
215
+ "description": "Model Context Protocol server candidates"
216
+ },
217
+ "multi-tenancy": {
218
+ "npm": ["multi-tenant", "tenant-isolation", "saas-framework"],
219
+ "github_topics": ["multi-tenancy", "saas", "tenant-isolation"],
220
+ "description": "Multi-tenancy SaaS patterns"
221
+ },
222
+ "analytics": {
223
+ "npm": ["segment", "mixpanel", "posthog", "amplitude"],
224
+ "github_topics": ["product-analytics", "event-tracking", "analytics"],
225
+ "description": "Product analytics and event tracking"
226
+ },
227
+ "desktop": {
228
+ "npm": ["electron", "tauri", "neutralino", "nw.js"],
229
+ "github_topics": ["desktop-app", "electron", "tauri"],
230
+ "description": "Desktop application frameworks"
231
+ },
232
+ "pii": {
233
+ "npm": ["pii-detection", "data-masking", "gdpr-compliance"],
234
+ "github_topics": ["pii-detection", "data-privacy", "gdpr"],
235
+ "description": "PII detection and data privacy"
236
+ },
237
+ "eu-ai-act": {
238
+ "npm": ["ai-compliance", "model-card", "fairness-indicators"],
239
+ "github_topics": ["eu-ai-act", "ai-compliance", "responsible-ai"],
240
+ "description": "EU AI Act compliance tooling"
241
+ },
242
+ "otel-ecosystem": {
243
+ "npm": ["opentelemetry-sdk", "otel-exporter", "otel-collector"],
244
+ "github_topics": ["opentelemetry", "otel", "observability"],
245
+ "description": "OpenTelemetry ecosystem integrations"
246
+ },
247
+ "llm-provider": {
248
+ "npm": ["openai", "anthropic", "azure-openai", "google-ai"],
249
+ "github_topics": ["llm", "language-model", "generative-ai"],
250
+ "description": "LLM provider SDKs and integrations"
251
+ },
252
+ "cicd": {
253
+ "npm": ["jest-ci", "semantic-release", "release-it", "changesets"],
254
+ "github_topics": ["continuous-integration", "continuous-deployment", "release-automation"],
255
+ "description": "CI/CD pipeline tooling and release automation"
256
+ },
257
+ "cloud-db": {
258
+ "npm": ["supabase", "firebase", "planetscale", "neon"],
259
+ "github_topics": ["cloud-database", "serverless-postgres", "firebase"],
260
+ "description": "Managed cloud database services"
261
+ },
262
+ "monorepo": {
263
+ "npm": ["nx", "turborepo", "lerna", "pnpm-workspace"],
264
+ "github_topics": ["monorepo", "nx", "turborepo"],
265
+ "description": "Monorepo tooling and management"
266
+ }
267
+ }