@volter/twin-world 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1192 @@
1
+ {
2
+ "//": "PACKLESS-VENDOR REGISTRY — every external-service-shaped npm dep / env stem the catalog KNOWS but has no pack for, plus the not-a-service suppressions and the external-shape patterns. ONE home (absorbs covers.ts's inline NOT_AN_EXTERNAL_SERVICE / UNKNOWN_DEP_KNOWN_SERVICES / UNKNOWN_DEP_PATTERNS and the 2026-08-31 census rulings ledger — company-layer notes/census-rulings-2026-08-31.md). disposition 'demanded' = a real coverage gap, stays LOUD (the demand queue); 'acknowledged' = adjudicated acceptable, covers auto-acknowledges with the recorded reason. AN ENTRY DIES THE DAY ITS PACK IS BORN (scripts/packless-claims.test.ts enforces disjointness with pack adoption + SDK_TWINS).",
3
+ "deps": {
4
+ "@1password/sdk": {
5
+ "disposition": "demanded",
6
+ "reason": "vendor 1password, pack demanded by census 2026-08-31 (×1)"
7
+ },
8
+ "@ai-sdk/alibaba": {
9
+ "disposition": "demanded",
10
+ "reason": "vendor alibaba-dashscope, pack demanded by census 2026-08-31 (rulings-draft: new-pack, ×1). NB: an earlier encoding mislabeled this acknowledged by citing the bare `alibaba` env stem's separate ruling — §9 round two H6, 2026-08-31."
11
+ },
12
+ "@ai-sdk/cerebras": {
13
+ "disposition": "demanded",
14
+ "reason": "vendor cerebras, pack demanded by census 2026-08-31 (×1)"
15
+ },
16
+ "@ai-sdk/deepinfra": {
17
+ "disposition": "demanded",
18
+ "reason": "vendor deepinfra, pack demanded by census 2026-08-31 (×2)"
19
+ },
20
+ "@ai-sdk/fireworks": {
21
+ "disposition": "demanded",
22
+ "reason": "vendor fireworks, pack demanded by census 2026-08-31 (×2)"
23
+ },
24
+ "@ai-sdk/minimax": {
25
+ "disposition": "demanded",
26
+ "reason": "vendor minimax, pack demanded by census 2026-08-31 (×1)"
27
+ },
28
+ "@ai-sdk/moonshotai": {
29
+ "disposition": "demanded",
30
+ "reason": "vendor moonshot, pack demanded by census 2026-08-31 (×1)"
31
+ },
32
+ "@ai-sdk/openai-compatible": {
33
+ "disposition": "acknowledged",
34
+ "reason": "acknowledged: config-time OpenAI-compatible adapter, no vendor of its own — coverage is judged per repo by the provider host it is configured against; mapping it to one vendor would be the googleapis-umbrella lie (census 2026-08-31, ×14)"
35
+ },
36
+ "@ai-sdk/togetherai": {
37
+ "disposition": "demanded",
38
+ "reason": "vendor togetherai, pack demanded by census 2026-08-31 (×3)"
39
+ },
40
+ "@azure/communication-email": {
41
+ "disposition": "demanded",
42
+ "reason": "vendor azure (Communication Services area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
43
+ },
44
+ "@azure/communication-sms": {
45
+ "disposition": "demanded",
46
+ "reason": "vendor azure (Communication Services area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
47
+ },
48
+ "@azure/keyvault-secrets": {
49
+ "disposition": "demanded",
50
+ "reason": "vendor azure (Key Vault area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
51
+ },
52
+ "@azure/msal-node": {
53
+ "disposition": "demanded",
54
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×4)"
55
+ },
56
+ "@azure/playwright": {
57
+ "disposition": "demanded",
58
+ "reason": "vendor azure (Playwright Testing area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
59
+ },
60
+ "@azure/search-documents": {
61
+ "disposition": "demanded",
62
+ "reason": "vendor azure (AI Search area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×2)"
63
+ },
64
+ "@base44/sdk": {
65
+ "disposition": "demanded",
66
+ "reason": "vendor base44, pack demanded by census 2026-08-31 (×1)"
67
+ },
68
+ "@botpress/sdk": {
69
+ "disposition": "demanded",
70
+ "reason": "vendor botpress, pack demanded by census 2026-08-31 (×1)"
71
+ },
72
+ "@configcat/sdk": {
73
+ "disposition": "demanded",
74
+ "reason": "vendor configcat, pack demanded by census 2026-08-31 (×1)"
75
+ },
76
+ "@daytona/sdk": {
77
+ "disposition": "demanded",
78
+ "reason": "vendor daytona, pack demanded by census 2026-08-31 (×1)"
79
+ },
80
+ "@directus/sdk": {
81
+ "disposition": "demanded",
82
+ "reason": "vendor directus, pack demanded by census 2026-08-31 (×1)"
83
+ },
84
+ "@getalby/sdk": {
85
+ "disposition": "demanded",
86
+ "reason": "vendor alby, pack demanded by census 2026-08-31 (×1)"
87
+ },
88
+ "@getbrevo/brevo": {
89
+ "disposition": "demanded",
90
+ "reason": "vendor brevo, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
91
+ },
92
+ "@gomomento/sdk": {
93
+ "disposition": "demanded",
94
+ "reason": "vendor momento, pack demanded by census 2026-08-31 (×1)"
95
+ },
96
+ "@infobip-api/sdk": {
97
+ "disposition": "demanded",
98
+ "reason": "vendor infobip, pack demanded by census 2026-08-31 (×1)"
99
+ },
100
+ "@kapaai/react-sdk": {
101
+ "disposition": "demanded",
102
+ "reason": "vendor kapa.ai, pack demanded by census 2026-08-31 (×2)"
103
+ },
104
+ "@larksuiteoapi/node-sdk": {
105
+ "disposition": "demanded",
106
+ "reason": "vendor lark, pack demanded by census 2026-08-31 (×1)"
107
+ },
108
+ "@launchdarkly/node-server-sdk": {
109
+ "disposition": "demanded",
110
+ "reason": "vendor launchdarkly, pack demanded by census 2026-08-31 (×1)"
111
+ },
112
+ "@libsql/client": {
113
+ "disposition": "demanded",
114
+ "reason": "vendor turso, DB data-plane over HTTP; hides behind DATABASE_URL-shaped env that init's infra heuristic claims first, so the dep name is the only escaping signal (twin#255)"
115
+ },
116
+ "@lightdash/sdk": {
117
+ "disposition": "demanded",
118
+ "reason": "vendor lightdash, pack demanded by census 2026-08-31 (×1)"
119
+ },
120
+ "@line/bot-sdk": {
121
+ "disposition": "demanded",
122
+ "reason": "vendor line, pack demanded by census 2026-08-31 (×1)"
123
+ },
124
+ "@mailchain/sdk": {
125
+ "disposition": "demanded",
126
+ "reason": "vendor mailchain, pack demanded by census 2026-08-31 (×1)"
127
+ },
128
+ "@n8n_io/ai-assistant-sdk": {
129
+ "disposition": "acknowledged",
130
+ "reason": "acknowledged: n8n's own hosted AI-assistant service; the CE playground runs without it (census 2026-08-31, ×1)"
131
+ },
132
+ "@n8n_io/license-sdk": {
133
+ "disposition": "acknowledged",
134
+ "reason": "acknowledged: n8n's own hosted license server; the CE playground runs without it (census 2026-08-31, ×1)"
135
+ },
136
+ "@neondatabase/serverless": {
137
+ "disposition": "demanded",
138
+ "reason": "vendor neon, DB data-plane over HTTP; hides behind DATABASE_URL-shaped env that init's infra heuristic claims first, so the dep name is the only escaping signal (twin#255)"
139
+ },
140
+ "@neynar/nodejs-sdk": {
141
+ "disposition": "demanded",
142
+ "reason": "vendor neynar, pack demanded by census 2026-08-31 (×1)"
143
+ },
144
+ "@octopusdeploy/api-client": {
145
+ "disposition": "demanded",
146
+ "reason": "vendor octopus-deploy, pack demanded by census 2026-08-31 (×1)"
147
+ },
148
+ "@openpanel/sdk": {
149
+ "disposition": "demanded",
150
+ "reason": "vendor openpanel, pack demanded by census 2026-08-31 (×2)"
151
+ },
152
+ "@ringcentral/sdk": {
153
+ "disposition": "demanded",
154
+ "reason": "vendor ringcentral, pack demanded by census 2026-08-31 (×1)"
155
+ },
156
+ "@runwayml/sdk": {
157
+ "disposition": "demanded",
158
+ "reason": "vendor runwayml, pack demanded by census 2026-08-31 (×1)"
159
+ },
160
+ "@scrapeless-ai/sdk": {
161
+ "disposition": "demanded",
162
+ "reason": "vendor scrapeless, pack demanded by census 2026-08-31 (×1)"
163
+ },
164
+ "@shopify/shopify-api": {
165
+ "disposition": "demanded",
166
+ "reason": "vendor shopify, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
167
+ },
168
+ "@stigg/node-server-sdk": {
169
+ "disposition": "demanded",
170
+ "reason": "vendor stigg, pack demanded by census 2026-08-31 (×1); needed by ponder"
171
+ },
172
+ "@stigg/react-sdk": {
173
+ "disposition": "demanded",
174
+ "reason": "vendor stigg, pack demanded by census 2026-08-31 (×1); needed by ponder"
175
+ },
176
+ "@trigger.dev/sdk": {
177
+ "disposition": "acknowledged",
178
+ "reason": "acknowledged: self-hostable job orchestration — census-rulings-2026-08-31.md:66 rules acknowledge first; re-rule into a pack if hosted-cloud demand recurs (×4)"
179
+ },
180
+ "@usercentrics/cmp-browser-sdk": {
181
+ "disposition": "demanded",
182
+ "reason": "vendor usercentrics, pack demanded by census 2026-08-31 (×1)"
183
+ },
184
+ "@vapi-ai/server-sdk": {
185
+ "disposition": "demanded",
186
+ "reason": "vendor vapi, pack demanded by census 2026-08-31 (×1)"
187
+ },
188
+ "@vonage/server-sdk": {
189
+ "disposition": "demanded",
190
+ "reason": "vendor vonage, pack demanded by census 2026-08-31 (×2)"
191
+ },
192
+ "@xata.io/client": {
193
+ "disposition": "demanded",
194
+ "reason": "vendor xata, DB data-plane over HTTP; hides behind DATABASE_URL-shaped env that init's infra heuristic claims first, so the dep name is the only escaping signal (twin#255)"
195
+ },
196
+ "discord.js": {
197
+ "disposition": "demanded",
198
+ "reason": "vendor discord, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
199
+ },
200
+ "expo-server-sdk": {
201
+ "disposition": "demanded",
202
+ "reason": "vendor expo, pack demanded by census 2026-08-31 (×2); needed by ponder"
203
+ },
204
+ "facebook-nodejs-business-sdk": {
205
+ "disposition": "demanded",
206
+ "reason": "vendor meta, pack demanded by census 2026-08-31 (×1)"
207
+ },
208
+ "googleapis": {
209
+ "disposition": "demanded",
210
+ "reason": "stays LOUD deliberately, overriding the census ledger's acknowledged ruling: the umbrella client (Drive/Sheets/Calendar/Gmail/YouTube+) must never map to one vendor NOR self-acknowledge — either would report per-repo coverage the world does not have (§9 finding 2026-08-19; reaffirmed §9 round two H6 2026-08-31). Retired from the pack demand queue: never build a `googleapis` pack — the FOCUSED @googleapis/* siblings map via SDK_TWINS."
211
+ },
212
+ "launchdarkly-node-server-sdk": {
213
+ "disposition": "demanded",
214
+ "reason": "vendor launchdarkly, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
215
+ },
216
+ "launchdarkly-react-client-sdk": {
217
+ "disposition": "demanded",
218
+ "reason": "vendor launchdarkly, pack demanded by census 2026-08-31 (×1)"
219
+ },
220
+ "matrix-js-sdk": {
221
+ "disposition": "demanded",
222
+ "reason": "vendor matrix, pack demanded by census 2026-08-31 (×1)"
223
+ },
224
+ "node-telegram-bot-api": {
225
+ "disposition": "demanded",
226
+ "reason": "vendor telegram, pack demanded by census 2026-08-31 (×2); already curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES"
227
+ },
228
+ "npm-registry@npm.jsr.io": {
229
+ "disposition": "acknowledged",
230
+ "reason": "acknowledged: registry destination — the npm-registry twin deliberately owns npmjs + GitHub only (census 2026-08-31, ×2)"
231
+ },
232
+ "pluggy-sdk": {
233
+ "disposition": "demanded",
234
+ "reason": "vendor pluggy, pack demanded by census 2026-08-31 (×1)"
235
+ },
236
+ "retell-client-js-sdk": {
237
+ "disposition": "demanded",
238
+ "reason": "vendor retell, pack demanded by census 2026-08-31 (×1)"
239
+ },
240
+ "retell-sdk": {
241
+ "disposition": "demanded",
242
+ "reason": "vendor retell, pack demanded by census 2026-08-31 (×1)"
243
+ },
244
+ "shopify-api-node": {
245
+ "disposition": "demanded",
246
+ "reason": "vendor shopify, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
247
+ },
248
+ "telegraf": {
249
+ "disposition": "demanded",
250
+ "reason": "vendor telegram, pack demanded by census 2026-08-31 (×1); already curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES"
251
+ },
252
+ "together-ai": {
253
+ "disposition": "demanded",
254
+ "reason": "vendor togetherai, well-known service client with no twin pack (curated in covers.ts UNKNOWN_DEP_KNOWN_SERVICES)"
255
+ },
256
+ "twenty-client-sdk": {
257
+ "disposition": "demanded",
258
+ "reason": "vendor twenty, pack demanded by census 2026-08-31 (×1)"
259
+ },
260
+ "twenty-sdk": {
261
+ "disposition": "demanded",
262
+ "reason": "vendor twenty, pack demanded by census 2026-08-31 (×1)"
263
+ },
264
+ "@lobehub/market-sdk": {
265
+ "disposition": "acknowledged",
266
+ "reason": "acknowledged: LobeHub's own marketplace client — first-party-adjacent surface judged per repo (census-rulings-2026-08-31.md:103-105, the one unadjudicated judgment row, ruled acknowledged)"
267
+ },
268
+ "@vercel/postgres": {
269
+ "disposition": "demanded",
270
+ "reason": "vendor neon, DB data-plane over HTTP — the neon driver in disguise (census-rulings-2026-08-31.md:93-94); joins the @neondatabase/serverless / @libsql/client / @xata.io/client twin#255 class: hides behind DATABASE_URL-shaped env, the dep name is the only escaping signal"
271
+ },
272
+ "@aws-sdk/credential-providers": {
273
+ "disposition": "acknowledged",
274
+ "reason": "acknowledged: credential-resolution glue for the AWS SDKs, not a service surface of its own — ruled acknowledged by census 2026-08-31 (×10); kept out of notExternal because it IS aws-scoped and the pattern would otherwise flag it"
275
+ },
276
+ "@aws-sdk/credential-provider-node": {
277
+ "disposition": "acknowledged",
278
+ "reason": "acknowledged: same class as @aws-sdk/credential-providers (census 2026-08-31, ×2)"
279
+ },
280
+ "@aws-sdk/client-lambda": {
281
+ "disposition": "demanded",
282
+ "reason": "vendor aws (Lambda area), ×3 — ladder classification 2026-09-02"
283
+ },
284
+ "@aws-sdk/client-sns": {
285
+ "disposition": "demanded",
286
+ "reason": "vendor aws (SNS area), ×3 — ladder classification 2026-09-02"
287
+ },
288
+ "@aws-sdk/client-sts": {
289
+ "disposition": "demanded",
290
+ "reason": "vendor aws (STS area — the twin serves no sts.<region>.amazonaws.com surface), ×3 — ladder classification 2026-09-02"
291
+ },
292
+ "@aws-sdk/client-ses": {
293
+ "disposition": "demanded",
294
+ "reason": "vendor aws (SES v1 Query API area — the sesv2 area answers the v1 wire loudly rather than modeling it, per the pack's own ruling), ×2 — ladder classification 2026-09-02"
295
+ },
296
+ "@aws-sdk/client-textract": {
297
+ "disposition": "demanded",
298
+ "reason": "vendor aws (Textract area), ×2 — ladder classification 2026-09-02"
299
+ },
300
+ "@aws-sdk/client-cloudfront": {
301
+ "disposition": "demanded",
302
+ "reason": "vendor aws (CloudFront area), ×1 — ladder classification 2026-09-02"
303
+ },
304
+ "@aws-sdk/client-cloudwatch": {
305
+ "disposition": "demanded",
306
+ "reason": "vendor aws (CloudWatch area), ×1 — ladder classification 2026-09-02"
307
+ },
308
+ "@aws-sdk/client-cognito-identity-provider": {
309
+ "disposition": "demanded",
310
+ "reason": "vendor aws (Cognito area), ×1 — ladder classification 2026-09-02"
311
+ },
312
+ "@aws-sdk/client-eventbridge": {
313
+ "disposition": "demanded",
314
+ "reason": "vendor aws (EventBridge area), ×1 — ladder classification 2026-09-02"
315
+ },
316
+ "@aws-sdk/client-kendra": {
317
+ "disposition": "demanded",
318
+ "reason": "vendor aws (Kendra area), ×1 — ladder classification 2026-09-02"
319
+ },
320
+ "@aws-sdk/client-kinesis": {
321
+ "disposition": "demanded",
322
+ "reason": "vendor aws (Kinesis area), ×1 — ladder classification 2026-09-02"
323
+ },
324
+ "@aws-sdk/client-kms": {
325
+ "disposition": "demanded",
326
+ "reason": "vendor aws (KMS area), ×1 — ladder classification 2026-09-02"
327
+ },
328
+ "@aws-sdk/client-lambda-microvms": {
329
+ "disposition": "demanded",
330
+ "reason": "vendor aws (Lambda MicroVMs area), ×1 — ladder classification 2026-09-02"
331
+ },
332
+ "@aws-sdk/client-polly": {
333
+ "disposition": "demanded",
334
+ "reason": "vendor aws (Polly area), ×1 — ladder classification 2026-09-02"
335
+ },
336
+ "@aws-sdk/client-redshift-data": {
337
+ "disposition": "demanded",
338
+ "reason": "vendor aws (Redshift Data API area), ×1 — ladder classification 2026-09-02"
339
+ },
340
+ "@aws-sdk/client-route-53": {
341
+ "disposition": "demanded",
342
+ "reason": "vendor aws (Route 53 area), ×1 — ladder classification 2026-09-02"
343
+ },
344
+ "@aws-sdk/client-scheduler": {
345
+ "disposition": "demanded",
346
+ "reason": "vendor aws (EventBridge Scheduler area), ×1 — ladder classification 2026-09-02"
347
+ },
348
+ "@aws-sdk/client-sqs": {
349
+ "disposition": "demanded",
350
+ "reason": "vendor aws (SQS area), ×1 — ladder classification 2026-09-02"
351
+ },
352
+ "@aws-sdk/client-sso-oidc": {
353
+ "disposition": "demanded",
354
+ "reason": "vendor aws (IAM Identity Center OIDC area), ×1 — ladder classification 2026-09-02"
355
+ },
356
+ "@azure/msal-browser": {
357
+ "disposition": "demanded",
358
+ "reason": "vendor azure (Entra auth area; same class as @azure/msal-node — the pack deliberately does not claim login.microsoftonline.com), ×1 — ladder classification 2026-09-02"
359
+ },
360
+ "@vercel/analytics": {
361
+ "disposition": "demanded",
362
+ "reason": "vendor vercel (Web Analytics ingestion area — the beacon posts to vitals.vercel-insights.com / _vercel/insights, neither of the two hosts this twin serves), ×4 — ladder classification 2026-09-02"
363
+ },
364
+ "@vercel/speed-insights": {
365
+ "disposition": "demanded",
366
+ "reason": "vendor vercel (Speed Insights ingestion area — same beacon class as @vercel/analytics), ×2 — ladder classification 2026-09-02"
367
+ },
368
+ "@segment/analytics-next": {
369
+ "disposition": "demanded",
370
+ "reason": "vendor segment (Analytics.js browser area — the browser build boots from a cdn.segment.com settings fetch the tracking-API twin does not serve; the pack declines the claim deliberately), ×3 — ladder classification 2026-09-02"
371
+ },
372
+ "@intercom/messenger-js-sdk": {
373
+ "disposition": "demanded",
374
+ "reason": "vendor intercom (Messenger widget area — loads widget.intercom.io and talks to api-iam.intercom.io, neither served by the REST twin), ×1 — ladder classification 2026-09-02"
375
+ },
376
+ "@posthog/mcp-analytics": {
377
+ "disposition": "demanded",
378
+ "reason": "vendor posthog (remote MCP area — an alias of @posthog/mcp, which targets mcp.posthog.com, a host this twin does not serve), ×1 — ladder classification 2026-09-02"
379
+ },
380
+ "@google-cloud/bigtable": {
381
+ "disposition": "demanded",
382
+ "reason": "vendor googlecloud (Bigtable area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
383
+ },
384
+ "@google-cloud/logging-winston": {
385
+ "disposition": "demanded",
386
+ "reason": "vendor googlecloud (Cloud Logging area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
387
+ },
388
+ "@google-cloud/opentelemetry-cloud-trace-exporter": {
389
+ "disposition": "demanded",
390
+ "reason": "vendor googlecloud (Cloud Trace area — the EXPORTER ships spans to cloudtrace.googleapis.com; its sibling @google-cloud/opentelemetry-resource-util is a local helper and stays not-external), ×1 — ladder classification 2026-09-02"
391
+ },
392
+ "@google-cloud/pubsub": {
393
+ "disposition": "demanded",
394
+ "reason": "vendor googlecloud (Pub/Sub area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
395
+ },
396
+ "@google-cloud/resource-manager": {
397
+ "disposition": "demanded",
398
+ "reason": "vendor googlecloud (Resource Manager area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
399
+ },
400
+ "@google-cloud/secret-manager": {
401
+ "disposition": "demanded",
402
+ "reason": "vendor googlecloud (Secret Manager area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
403
+ },
404
+ "@google-cloud/spanner": {
405
+ "disposition": "demanded",
406
+ "reason": "vendor googlecloud (Spanner area; one family pack per the census rulings' convention 1), ×1 — ladder classification 2026-09-02"
407
+ },
408
+ "@googleapis/admin": {
409
+ "disposition": "demanded",
410
+ "reason": "vendor google-workspace-admin (Admin SDK Directory/Reports), ×1 — ladder classification 2026-09-02"
411
+ },
412
+ "@googleapis/androidpublisher": {
413
+ "disposition": "demanded",
414
+ "reason": "vendor google-play (Play Developer API), ×1 — ladder classification 2026-09-02"
415
+ },
416
+ "@googleapis/calendar": {
417
+ "disposition": "demanded",
418
+ "reason": "vendor google-calendar, ×1 (plus the GOOGLE_CALENDAR_API_KEY stem, ×1) — ladder classification 2026-09-02"
419
+ },
420
+ "@googleapis/sheets": {
421
+ "disposition": "demanded",
422
+ "reason": "vendor google-sheets, ×1 — ladder classification 2026-09-02"
423
+ },
424
+ "@grafana/faro-web-sdk": {
425
+ "disposition": "demanded",
426
+ "reason": "vendor grafana-faro (Faro frontend-observability collector); its @grafana/aws-sdk and @grafana/azure-sdk siblings are datasource-plugin helper libraries and stay not-external, ×1 — ladder classification 2026-09-02"
427
+ },
428
+ "@betterbugs/web-sdk": {
429
+ "disposition": "demanded",
430
+ "reason": "vendor betterbugs (betterbugs.io session/bug capture), ×1 — ladder classification 2026-09-02"
431
+ },
432
+ "@prelude.so/js-sdk": {
433
+ "disposition": "demanded",
434
+ "reason": "vendor prelude (prelude.so phone verification), ×1 — ladder classification 2026-09-02"
435
+ },
436
+ "@rss3/sdk": {
437
+ "disposition": "demanded",
438
+ "reason": "vendor rss3 (api.rss3.io), ×1 — ladder classification 2026-09-02"
439
+ },
440
+ "fanfou-sdk": {
441
+ "disposition": "demanded",
442
+ "reason": "vendor fanfou (Fanfou microblog API), ×1 — ladder classification 2026-09-02"
443
+ },
444
+ "stigg": {
445
+ "disposition": "demanded",
446
+ "reason": "vendor stigg, pack demanded by consumer (ponder) — a real vendor this application calls with no twin yet; needed by ponder"
447
+ },
448
+ "bitly": {
449
+ "disposition": "demanded",
450
+ "reason": "vendor bitly, pack demanded by consumer (dub) — a real vendor this application calls with no twin yet; needed by dub"
451
+ },
452
+ "paypal": {
453
+ "disposition": "demanded",
454
+ "reason": "vendor paypal, pack demanded by consumer (dub) — a real vendor this application calls with no twin yet; needed by dub"
455
+ },
456
+ "googleads": {
457
+ "disposition": "demanded",
458
+ "reason": "vendor googleads, pack demanded by consumer (dub) — a real vendor this application calls with no twin yet; needed by dub"
459
+ },
460
+ "tiktok": {
461
+ "disposition": "demanded",
462
+ "reason": "vendor tiktok, pack demanded by consumer (dub) — a real vendor this application calls with no twin yet; needed by dub"
463
+ }
464
+ },
465
+ "envStems": {
466
+ "ai302": {
467
+ "disposition": "demanded",
468
+ "reason": "vendor 302ai, pack demanded by census 2026-08-31 (×1)"
469
+ },
470
+ "alibaba": {
471
+ "disposition": "acknowledged",
472
+ "reason": "acknowledged: ambiguous Alibaba stem (Alibaba Cloud / DashScope / OAuth login) — singleton, re-rule if demand recurs (census 2026-08-31, ×1)"
473
+ },
474
+ "apple": {
475
+ "disposition": "demanded",
476
+ "reason": "vendor apple, pack demanded by census 2026-08-31 (×3)"
477
+ },
478
+ "appleloginweb": {
479
+ "disposition": "demanded",
480
+ "reason": "vendor apple, pack demanded by census 2026-08-31 (×1)"
481
+ },
482
+ "appsumo": {
483
+ "disposition": "demanded",
484
+ "reason": "vendor appsumo, pack demanded by census 2026-08-31 (×1)"
485
+ },
486
+ "auth0": {
487
+ "disposition": "demanded",
488
+ "reason": "vendor auth0, pack demanded by census 2026-08-31 (×1)"
489
+ },
490
+ "authelia": {
491
+ "disposition": "demanded",
492
+ "reason": "vendor authelia, pack demanded by census 2026-08-31 (×1)"
493
+ },
494
+ "authentik": {
495
+ "disposition": "demanded",
496
+ "reason": "vendor authentik, pack demanded by census 2026-08-31 (×1)"
497
+ },
498
+ "authmicrosoft": {
499
+ "disposition": "demanded",
500
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
501
+ },
502
+ "azureadb2c": {
503
+ "disposition": "demanded",
504
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
505
+ },
506
+ "azureaisearch": {
507
+ "disposition": "demanded",
508
+ "reason": "vendor azure (AI Search area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
509
+ },
510
+ "baidu": {
511
+ "disposition": "demanded",
512
+ "reason": "vendor baidu, pack demanded by census 2026-08-31 (×1)"
513
+ },
514
+ "basecamp3": {
515
+ "disposition": "demanded",
516
+ "reason": "vendor basecamp, pack demanded by census 2026-08-31 (×1)"
517
+ },
518
+ "battlenet": {
519
+ "disposition": "demanded",
520
+ "reason": "vendor battlenet, pack demanded by census 2026-08-31 (×1)"
521
+ },
522
+ "beehiive": {
523
+ "disposition": "demanded",
524
+ "reason": "vendor beehiiv, pack demanded by census 2026-08-31 (×1)"
525
+ },
526
+ "bitly": {
527
+ "disposition": "demanded",
528
+ "reason": "vendor bitly, pack demanded by census 2026-08-31 (×1)"
529
+ },
530
+ "box": {
531
+ "disposition": "demanded",
532
+ "reason": "vendor box, pack demanded by census 2026-08-31 (×1)"
533
+ },
534
+ "bungie": {
535
+ "disposition": "demanded",
536
+ "reason": "vendor bungie, pack demanded by census 2026-08-31 (×1)"
537
+ },
538
+ "buttondown": {
539
+ "disposition": "demanded",
540
+ "reason": "vendor buttondown, pack demanded by census 2026-08-31 (×1)"
541
+ },
542
+ "bytedance": {
543
+ "disposition": "acknowledged",
544
+ "reason": "acknowledged: ambiguous ByteDance stem (TikTok / Douyin / Volcengine) — singleton, re-rule if demand recurs (census 2026-08-31, ×1)"
545
+ },
546
+ "chatglm": {
547
+ "disposition": "demanded",
548
+ "reason": "vendor zhipu, pack demanded by census 2026-08-31 (×1)"
549
+ },
550
+ "closecom": {
551
+ "disposition": "demanded",
552
+ "reason": "vendor close, pack demanded by census 2026-08-31 (×1)"
553
+ },
554
+ "cloudinary": {
555
+ "disposition": "demanded",
556
+ "reason": "vendor cloudinary, pack demanded by census 2026-08-31 (×1)"
557
+ },
558
+ "coinbase": {
559
+ "disposition": "demanded",
560
+ "reason": "vendor coinbase, pack demanded by census 2026-08-31 (×1)"
561
+ },
562
+ "crowdin": {
563
+ "disposition": "demanded",
564
+ "reason": "vendor crowdin, pack demanded by census 2026-08-31 (×1)"
565
+ },
566
+ "daily": {
567
+ "disposition": "demanded",
568
+ "reason": "vendor daily.co, pack demanded by census 2026-08-31 (×1)"
569
+ },
570
+ "daytona": {
571
+ "disposition": "demanded",
572
+ "reason": "vendor daytona, pack demanded by census 2026-08-31 (×1)"
573
+ },
574
+ "discord": {
575
+ "disposition": "demanded",
576
+ "reason": "vendor discord, pack demanded by census 2026-08-31 (×4)"
577
+ },
578
+ "dribbble": {
579
+ "disposition": "demanded",
580
+ "reason": "vendor dribbble, pack demanded by census 2026-08-31 (×1)"
581
+ },
582
+ "dropbox": {
583
+ "disposition": "demanded",
584
+ "reason": "vendor dropbox, pack demanded by census 2026-08-31 (×1)"
585
+ },
586
+ "dub": {
587
+ "disposition": "demanded",
588
+ "reason": "vendor dub, pack demanded by census 2026-08-31 (×1)"
589
+ },
590
+ "e2b": {
591
+ "disposition": "demanded",
592
+ "reason": "vendor e2b, pack demanded by census 2026-08-31 (×2)"
593
+ },
594
+ "eveonline": {
595
+ "disposition": "demanded",
596
+ "reason": "vendor eveonline, pack demanded by census 2026-08-31 (×1)"
597
+ },
598
+ "facebook": {
599
+ "disposition": "demanded",
600
+ "reason": "vendor meta, pack demanded by census 2026-08-31 (×2)"
601
+ },
602
+ "faceit": {
603
+ "disposition": "demanded",
604
+ "reason": "vendor faceit, pack demanded by census 2026-08-31 (×1)"
605
+ },
606
+ "firebase": {
607
+ "disposition": "demanded",
608
+ "reason": "vendor firebase, pack demanded by census 2026-08-31 (×1)"
609
+ },
610
+ "foursquare": {
611
+ "disposition": "demanded",
612
+ "reason": "vendor foursquare, pack demanded by census 2026-08-31 (×1)"
613
+ },
614
+ "freshbooks": {
615
+ "disposition": "demanded",
616
+ "reason": "vendor freshbooks, pack demanded by census 2026-08-31 (×1)"
617
+ },
618
+ "fusionauth": {
619
+ "disposition": "demanded",
620
+ "reason": "vendor fusionauth, pack demanded by census 2026-08-31 (×1)"
621
+ },
622
+ "giphy": {
623
+ "disposition": "demanded",
624
+ "reason": "vendor giphy, pack demanded by census 2026-08-31 (×1)"
625
+ },
626
+ "gitlab": {
627
+ "disposition": "demanded",
628
+ "reason": "vendor gitlab, pack demanded by census 2026-08-31 (×2)"
629
+ },
630
+ "hanko": {
631
+ "disposition": "demanded",
632
+ "reason": "vendor hanko, pack demanded by census 2026-08-31 (×1)"
633
+ },
634
+ "huddle01": {
635
+ "disposition": "demanded",
636
+ "reason": "vendor huddle01, pack demanded by census 2026-08-31 (×1)"
637
+ },
638
+ "iffy": {
639
+ "disposition": "acknowledged",
640
+ "reason": "acknowledged: iffy.com content-moderation SaaS — pack on demand (census 2026-08-31, ×1)"
641
+ },
642
+ "iflytek": {
643
+ "disposition": "demanded",
644
+ "reason": "vendor iflytek, pack demanded by census 2026-08-31 (×1)"
645
+ },
646
+ "iframely": {
647
+ "disposition": "demanded",
648
+ "reason": "vendor iframely, pack demanded by census 2026-08-31 (×1)"
649
+ },
650
+ "infappconnectionazureappconfiguration": {
651
+ "disposition": "demanded",
652
+ "reason": "vendor azure (App Configuration area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
653
+ },
654
+ "infappconnectionazureclientsecrets": {
655
+ "disposition": "demanded",
656
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
657
+ },
658
+ "infappconnectionazuredevops": {
659
+ "disposition": "demanded",
660
+ "reason": "vendor azure (DevOps area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
661
+ },
662
+ "infappconnectionazurekeyvault": {
663
+ "disposition": "demanded",
664
+ "reason": "vendor azure (Key Vault area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
665
+ },
666
+ "infappconnectiongitlaboauth": {
667
+ "disposition": "demanded",
668
+ "reason": "vendor gitlab, pack demanded by census 2026-08-31 (×1)"
669
+ },
670
+ "infappconnectionherokuoauth": {
671
+ "disposition": "demanded",
672
+ "reason": "vendor heroku, pack demanded by census 2026-08-31 (×1)"
673
+ },
674
+ "kakao": {
675
+ "disposition": "demanded",
676
+ "reason": "vendor kakao, pack demanded by census 2026-08-31 (×1)"
677
+ },
678
+ "keycloak": {
679
+ "disposition": "demanded",
680
+ "reason": "vendor keycloak, pack demanded by census 2026-08-31 (×1)"
681
+ },
682
+ "lemonsqueezy": {
683
+ "disposition": "demanded",
684
+ "reason": "vendor lemonsqueezy, pack demanded by census 2026-08-31 (×1)"
685
+ },
686
+ "line": {
687
+ "disposition": "demanded",
688
+ "reason": "vendor line, pack demanded by census 2026-08-31 (×1)"
689
+ },
690
+ "lingo": {
691
+ "disposition": "demanded",
692
+ "reason": "vendor lingo.dev, pack demanded by census 2026-08-31 (×1)"
693
+ },
694
+ "lingodotdev": {
695
+ "disposition": "demanded",
696
+ "reason": "vendor lingo.dev, pack demanded by census 2026-08-31 (×1)"
697
+ },
698
+ "linkedin": {
699
+ "disposition": "demanded",
700
+ "reason": "vendor linkedin, pack demanded by census 2026-08-31 (×3)"
701
+ },
702
+ "llamaparse": {
703
+ "disposition": "demanded",
704
+ "reason": "vendor llamacloud, pack demanded by census 2026-08-31 (×1)"
705
+ },
706
+ "loops": {
707
+ "disposition": "demanded",
708
+ "reason": "vendor loops, pack demanded by census 2026-08-31 (×2)"
709
+ },
710
+ "mailchimp": {
711
+ "disposition": "demanded",
712
+ "reason": "vendor mailchimp, pack demanded by census 2026-08-31 (×1)"
713
+ },
714
+ "mailru": {
715
+ "disposition": "demanded",
716
+ "reason": "vendor mailru, pack demanded by census 2026-08-31 (×1)"
717
+ },
718
+ "mandrillingress": {
719
+ "disposition": "demanded",
720
+ "reason": "vendor mailchimp, pack demanded by census 2026-08-31 (×1)"
721
+ },
722
+ "mastodon": {
723
+ "disposition": "demanded",
724
+ "reason": "vendor mastodon, pack demanded by census 2026-08-31 (×1)"
725
+ },
726
+ "microsoft": {
727
+ "disposition": "demanded",
728
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
729
+ },
730
+ "moonshot": {
731
+ "disposition": "demanded",
732
+ "reason": "vendor moonshot, pack demanded by census 2026-08-31 (×1)"
733
+ },
734
+ "msgraph": {
735
+ "disposition": "demanded",
736
+ "reason": "vendor microsoft-graph, pack demanded by census 2026-08-31 (×1)"
737
+ },
738
+ "naver": {
739
+ "disposition": "demanded",
740
+ "reason": "vendor naver, pack demanded by census 2026-08-31 (×1)"
741
+ },
742
+ "netlify": {
743
+ "disposition": "demanded",
744
+ "reason": "vendor netlify, pack demanded by census 2026-08-31 (×1)"
745
+ },
746
+ "nextprivatemailchannels": {
747
+ "disposition": "demanded",
748
+ "reason": "vendor mailchannels, pack demanded by census 2026-08-31 (×1)"
749
+ },
750
+ "nextprivatemicrosoft": {
751
+ "disposition": "demanded",
752
+ "reason": "vendor azure (Entra auth area; one family pack per the census rulings' convention 1), pack demanded by census 2026-08-31 (×1)"
753
+ },
754
+ "okta": {
755
+ "disposition": "demanded",
756
+ "reason": "vendor okta, pack demanded by census 2026-08-31 (×1)"
757
+ },
758
+ "onelogin": {
759
+ "disposition": "demanded",
760
+ "reason": "vendor onelogin, pack demanded by census 2026-08-31 (×1)"
761
+ },
762
+ "openpanel": {
763
+ "disposition": "demanded",
764
+ "reason": "vendor openpanel, pack demanded by census 2026-08-31 (×1)"
765
+ },
766
+ "osu": {
767
+ "disposition": "demanded",
768
+ "reason": "vendor osu, pack demanded by census 2026-08-31 (×1)"
769
+ },
770
+ "patreon": {
771
+ "disposition": "demanded",
772
+ "reason": "vendor patreon, pack demanded by census 2026-08-31 (×1)"
773
+ },
774
+ "paypal": {
775
+ "disposition": "demanded",
776
+ "reason": "vendor paypal, pack demanded by census 2026-08-31 (×1)"
777
+ },
778
+ "pinterest": {
779
+ "disposition": "demanded",
780
+ "reason": "vendor pinterest, pack demanded by census 2026-08-31 (×2)"
781
+ },
782
+ "pipedrive": {
783
+ "disposition": "demanded",
784
+ "reason": "vendor pipedrive, pack demanded by census 2026-08-31 (×1)"
785
+ },
786
+ "playgroundunkey": {
787
+ "disposition": "demanded",
788
+ "reason": "vendor unkey, pack demanded by census 2026-08-31 (×1)"
789
+ },
790
+ "plunk": {
791
+ "disposition": "demanded",
792
+ "reason": "vendor plunk, pack demanded by census 2026-08-31 (×1)"
793
+ },
794
+ "reddit": {
795
+ "disposition": "demanded",
796
+ "reason": "vendor reddit, pack demanded by census 2026-08-31 (×2)"
797
+ },
798
+ "reodev": {
799
+ "disposition": "demanded",
800
+ "reason": "vendor reo.dev, pack demanded by census 2026-08-31 (×1)"
801
+ },
802
+ "salesforce": {
803
+ "disposition": "demanded",
804
+ "reason": "vendor salesforce, pack demanded by census 2026-08-31 (×2)"
805
+ },
806
+ "scrapingbee": {
807
+ "disposition": "demanded",
808
+ "reason": "vendor scrapingbee, pack demanded by census 2026-08-31 (×1)"
809
+ },
810
+ "searchapi": {
811
+ "disposition": "demanded",
812
+ "reason": "vendor searchapi, pack demanded by census 2026-08-31 (×1)"
813
+ },
814
+ "siliconflow": {
815
+ "disposition": "demanded",
816
+ "reason": "vendor siliconflow, pack demanded by census 2026-08-31 (×1)"
817
+ },
818
+ "spotify": {
819
+ "disposition": "demanded",
820
+ "reason": "vendor spotify, pack demanded by census 2026-08-31 (×1)"
821
+ },
822
+ "stability": {
823
+ "disposition": "demanded",
824
+ "reason": "vendor stability-ai, pack demanded by census 2026-08-31 (×1)"
825
+ },
826
+ "strava": {
827
+ "disposition": "demanded",
828
+ "reason": "vendor strava, pack demanded by census 2026-08-31 (×1)"
829
+ },
830
+ "tavily": {
831
+ "disposition": "demanded",
832
+ "reason": "vendor tavily, pack demanded by census 2026-08-31 (×1)"
833
+ },
834
+ "tencent": {
835
+ "disposition": "demanded",
836
+ "reason": "vendor tencent, pack demanded by census 2026-08-31 (×1)"
837
+ },
838
+ "tiktok": {
839
+ "disposition": "demanded",
840
+ "reason": "vendor tiktok, pack demanded by census 2026-08-31 (×2)"
841
+ },
842
+ "tiktokbusiness": {
843
+ "disposition": "demanded",
844
+ "reason": "vendor tiktok, pack demanded by census 2026-08-31 (×1)"
845
+ },
846
+ "todoist": {
847
+ "disposition": "demanded",
848
+ "reason": "vendor todoist, pack demanded by census 2026-08-31 (×1)"
849
+ },
850
+ "traversaal": {
851
+ "disposition": "demanded",
852
+ "reason": "vendor traversaal, pack demanded by census 2026-08-31 (×1)"
853
+ },
854
+ "trigger": {
855
+ "disposition": "acknowledged",
856
+ "reason": "acknowledged: trigger.dev stem — same acknowledge-first ruling as @trigger.dev/sdk (census-rulings-2026-08-31.md:66)"
857
+ },
858
+ "tumblr": {
859
+ "disposition": "demanded",
860
+ "reason": "vendor tumblr, pack demanded by census 2026-08-31 (×1)"
861
+ },
862
+ "turbopuffer": {
863
+ "disposition": "demanded",
864
+ "reason": "vendor turbopuffer, pack demanded by census 2026-08-31 (×1)"
865
+ },
866
+ "twitch": {
867
+ "disposition": "demanded",
868
+ "reason": "vendor twitch, pack demanded by census 2026-08-31 (×1)"
869
+ },
870
+ "unitedeffects": {
871
+ "disposition": "acknowledged",
872
+ "reason": "acknowledged: United Effects OIDC SaaS, low-confidence identity — singleton, re-rule if demand recurs (census 2026-08-31, ×1)"
873
+ },
874
+ "unsplash": {
875
+ "disposition": "demanded",
876
+ "reason": "vendor unsplash, pack demanded by census 2026-08-31 (×1)"
877
+ },
878
+ "vk": {
879
+ "disposition": "demanded",
880
+ "reason": "vendor vk, pack demanded by census 2026-08-31 (×1)"
881
+ },
882
+ "wikimedia": {
883
+ "disposition": "demanded",
884
+ "reason": "vendor wikimedia, pack demanded by census 2026-08-31 (×1)"
885
+ },
886
+ "wordpress": {
887
+ "disposition": "demanded",
888
+ "reason": "vendor wordpress, pack demanded by census 2026-08-31 (×1)"
889
+ },
890
+ "workos": {
891
+ "disposition": "demanded",
892
+ "reason": "vendor workos, pack demanded by census 2026-08-31 (×1)"
893
+ },
894
+ "yandex": {
895
+ "disposition": "demanded",
896
+ "reason": "vendor yandex, pack demanded by census 2026-08-31 (×1)"
897
+ },
898
+ "zapiernla": {
899
+ "disposition": "demanded",
900
+ "reason": "vendor zapier, pack demanded by census 2026-08-31 (×1)"
901
+ },
902
+ "zitadel": {
903
+ "disposition": "demanded",
904
+ "reason": "vendor zitadel, pack demanded by census 2026-08-31 (×1)"
905
+ },
906
+ "zoho": {
907
+ "disposition": "demanded",
908
+ "reason": "vendor zoho, pack demanded by census 2026-08-31 (×1)"
909
+ },
910
+ "zohocrm": {
911
+ "disposition": "demanded",
912
+ "reason": "vendor zoho, pack demanded by census 2026-08-31 (×1)"
913
+ },
914
+ "zoom": {
915
+ "disposition": "demanded",
916
+ "reason": "vendor zoom, pack demanded by census 2026-08-31 (×2)"
917
+ },
918
+ "azuread": {
919
+ "disposition": "demanded",
920
+ "reason": "vendor azure (Entra auth area — DEFERRED: the azure family pack serves the blob and OpenAI areas and deliberately does not claim login.microsoftonline.com, so this stem must stay a LOUD gap until the Entra area is built; §9 round two H6, 2026-08-31; census ×4 via @azure/msal-node)"
921
+ },
922
+ "amplitude": {
923
+ "disposition": "demanded",
924
+ "reason": "vendor amplitude (NEXT_PUBLIC_AMPLITUDE_API_KEY), ×1 — ladder classification 2026-09-02"
925
+ },
926
+ "brave": {
927
+ "disposition": "demanded",
928
+ "reason": "vendor brave-search (Brave Search API), ×1 — ladder classification 2026-09-02"
929
+ },
930
+ "getxapi": {
931
+ "disposition": "demanded",
932
+ "reason": "vendor getxapi (api.getxapi.com — an X/Twitter search proxy), ×1 — ladder classification 2026-09-02"
933
+ },
934
+ "ghostadmin": {
935
+ "disposition": "demanded",
936
+ "reason": "vendor ghost (Ghost Admin API key), ×1 — ladder classification 2026-09-02"
937
+ },
938
+ "ghostcontent": {
939
+ "disposition": "demanded",
940
+ "reason": "vendor ghost (Ghost Content API key), ×1 — ladder classification 2026-09-02"
941
+ },
942
+ "publicghostcontent": {
943
+ "disposition": "demanded",
944
+ "reason": "vendor ghost (VITE_PUBLIC_GHOST_CONTENT_API_KEY — the browser-side Content API key), ×1 — ladder classification 2026-09-02"
945
+ },
946
+ "googlecalendar": {
947
+ "disposition": "demanded",
948
+ "reason": "vendor google-calendar (GOOGLE_CALENDAR_API_KEY; the @googleapis/calendar client is the same demand), ×1 — ladder classification 2026-09-02"
949
+ },
950
+ "googlecloud": {
951
+ "disposition": "demanded",
952
+ "reason": "vendor googlecloud (GOOGLE_CLOUD_API_KEY; the roster's one consumer spends it on the Web Fonts Developer API at www.googleapis.com/webfonts/v1, so the stem is a Google Cloud API key rather than a googleoauth credential), ×1 — ladder classification 2026-09-02"
953
+ },
954
+ "googlesearch": {
955
+ "disposition": "demanded",
956
+ "reason": "vendor google-cse (GOOGLE_SEARCH_API_KEY — the Programmable Search JSON API), ×1 — ladder classification 2026-09-02"
957
+ },
958
+ "groundroute": {
959
+ "disposition": "demanded",
960
+ "reason": "vendor groundroute (api.groundroute.ai), ×1 — ladder classification 2026-09-02"
961
+ },
962
+ "ncbi": {
963
+ "disposition": "demanded",
964
+ "reason": "vendor ncbi (E-utilities / PubMed), ×1 — ladder classification 2026-09-02"
965
+ },
966
+ "novita": {
967
+ "disposition": "demanded",
968
+ "reason": "vendor novita (Novita AI hosted models), ×2 — ladder classification 2026-09-02"
969
+ },
970
+ "openalex": {
971
+ "disposition": "demanded",
972
+ "reason": "vendor openalex (scholarly works API), ×1 — ladder classification 2026-09-02"
973
+ },
974
+ "pdfservices": {
975
+ "disposition": "demanded",
976
+ "reason": "vendor adobe-pdfservices (PDF_SERVICES_CLIENT_ID/_SECRET), ×1 — ladder classification 2026-09-02"
977
+ },
978
+ "retellaitestcal": {
979
+ "disposition": "demanded",
980
+ "reason": "vendor retell (RETELL_AI_TEST_CAL_API_KEY; same demand as retell-sdk / retell-client-js-sdk), ×1 — ladder classification 2026-09-02"
981
+ },
982
+ "reworkdplatformserp": {
983
+ "disposition": "demanded",
984
+ "reason": "vendor serpapi (REWORKD_PLATFORM_SERP_API_KEY), ×1 — ladder classification 2026-09-02"
985
+ },
986
+ "reworkdplatformsid": {
987
+ "disposition": "demanded",
988
+ "reason": "vendor sid (sid.ai OAuth: REWORKD_PLATFORM_SID_CLIENT_ID/_SECRET), ×1 — ladder classification 2026-09-02"
989
+ },
990
+ "skyvernauthbitwarden": {
991
+ "disposition": "demanded",
992
+ "reason": "vendor bitwarden (SKYVERN_AUTH_BITWARDEN_CLIENT_ID/_SECRET), ×1 — ladder classification 2026-09-02"
993
+ },
994
+ "volcengine": {
995
+ "disposition": "demanded",
996
+ "reason": "vendor volcengine (ByteDance Volcengine Ark), ×1 — ladder classification 2026-09-02"
997
+ },
998
+ "voyage": {
999
+ "disposition": "demanded",
1000
+ "reason": "vendor voyageai (VOYAGE_API_KEY embeddings), ×1 — ladder classification 2026-09-02"
1001
+ },
1002
+ "xquik": {
1003
+ "disposition": "demanded",
1004
+ "reason": "vendor xquik (xquik.com — an X/Twitter search proxy), ×1 — ladder classification 2026-09-02"
1005
+ },
1006
+ "yutori": {
1007
+ "disposition": "demanded",
1008
+ "reason": "vendor yutori (YUTORI_API_KEY; the repo also declares the `yutori` PyPI SDK), ×1 — ladder classification 2026-09-02"
1009
+ },
1010
+ "stiggclient": {
1011
+ "disposition": "demanded",
1012
+ "reason": "vendor stigg, pack demanded by consumer (ponder) — a real vendor this application calls with no twin yet; needed by ponder"
1013
+ }
1014
+ },
1015
+ "notExternal": {
1016
+ "@agentclientprotocol/sdk": "Agent Client Protocol library, not a vendor",
1017
+ "@ai-sdk/devtools": "local dev-tools UI for the AI SDK",
1018
+ "@ai-sdk/langchain": "LangChain interop adapter, not a service",
1019
+ "@ai-sdk/mcp": "MCP protocol client library, not a vendor surface",
1020
+ "@ai-sdk/otel": "OpenTelemetry glue for the AI SDK",
1021
+ "@ai-sdk/provider": "AI SDK provider/UI helper library, no service surface of its own",
1022
+ "@ai-sdk/provider-utils": "AI SDK provider/UI helper library, no service surface of its own",
1023
+ "@ai-sdk/react": "AI SDK provider/UI helper library, no service surface of its own",
1024
+ "@ai-sdk/rsc": "AI SDK provider/UI helper library, no service surface of its own",
1025
+ "@ai-sdk/svelte": "AI SDK provider/UI helper library, no service surface of its own",
1026
+ "@ai-sdk/ui-utils": "AI SDK provider/UI helper library, no service surface of its own",
1027
+ "@ai-sdk/vue": "AI SDK provider/UI helper library, no service surface of its own",
1028
+ "@aws-sdk/cloudfront-signer": "local URL signing, no API call",
1029
+ "@aws-sdk/node-http-handler": "HTTP transport plumbing for the SDK, not a service",
1030
+ "@aws-sdk/rds-signer": "local IAM auth-token generation, no API call",
1031
+ "@aws-sdk/s3-presigned-post": "local presign computation, no API call",
1032
+ "@aws-sdk/signature-v4-crt": "local SigV4 signing helper, no API call",
1033
+ "@aws-sdk/types": "type-only package, no runtime call",
1034
+ "@azure/abort-controller": "Azure SDK core/auth plumbing, no service surface of its own",
1035
+ "@azure/core-asynciterator-polyfill": "async-iterator polyfill, no service",
1036
+ "@azure/core-auth": "Azure SDK core/auth plumbing, no service surface of its own",
1037
+ "@azure/core-rest-pipeline": "Azure SDK core/auth plumbing, no service surface of its own",
1038
+ "@azure/identity": "Azure SDK core/auth plumbing, no service surface of its own",
1039
+ "@azure/logger": "Azure SDK core/auth plumbing, no service surface of its own",
1040
+ "@directus/extensions-sdk": "extension authoring/build tooling, not a client",
1041
+ "@google-cloud/opentelemetry-resource-util": "OTel resource-attribute helper, no service call",
1042
+ "@google-cloud/precise-date": "timestamp utility library, no service",
1043
+ "@immich/plugin-sdk": "plugin authoring API for a self-hosted app, not a client",
1044
+ "@immich/sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1045
+ "@karakeep/sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1046
+ "@langchain/langgraph-sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1047
+ "@medusajs/admin-sdk": "Medusa framework internals, not an external API",
1048
+ "@medusajs/js-sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1049
+ "@medusajs/modules-sdk": "Medusa framework internals, not an external API",
1050
+ "@medusajs/workflows-sdk": "Medusa framework internals, not an external API",
1051
+ "@modelcontextprotocol/sdk": "protocol library, no service",
1052
+ "@n8n/ai-node-sdk": "n8n's own monorepo package, not an external service",
1053
+ "@n8n/extension-sdk": "n8n's own monorepo package, not an external service",
1054
+ "@n8n/frontend-module-sdk": "n8n's own monorepo package, not an external service",
1055
+ "@n8n/rest-api-client": "n8n's own monorepo package, not an external service",
1056
+ "@n8n/workflow-sdk": "n8n's own monorepo package, not an external service",
1057
+ "@nocobase/sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1058
+ "@opentelemetry/instrumentation-aws-sdk": "OpenTelemetry instrumentation wrapper, not a service client",
1059
+ "@payloadcms/sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1060
+ "@restatedev/restate-sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1061
+ "@rocket.chat/api-client": "Rocket.Chat monorepo internal package, not an external service",
1062
+ "@rocket.chat/federation-sdk": "Rocket.Chat monorepo internal package, not an external service",
1063
+ "@saintno/comfyui-sdk": "client for a locally-run ComfyUI instance, not a SaaS surface",
1064
+ "@segment/action-destinations": "Segment destination authoring framework, not a client",
1065
+ "@segment/actions-core": "Segment destination authoring framework, not a client",
1066
+ "@teable/sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1067
+ "@types/facebook-nodejs-business-sdk": "type-only package, no runtime call",
1068
+ "@types/snowflake-sdk": "type-only package, no runtime call",
1069
+ "@vercel/config": "Vercel build/dev tooling, no service call",
1070
+ "@vercel/functions": "Vercel function runtime helpers (geo, waitUntil), no external API",
1071
+ "@vercel/git-hooks": "Vercel build/dev tooling, no service call",
1072
+ "@vercel/ncc": "bundler, no service call",
1073
+ "@vercel/node": "Vercel framework adapter, no service call",
1074
+ "@vercel/og": "local image generation at the edge, no API call",
1075
+ "@vercel/otel": "OpenTelemetry setup helper, no service call",
1076
+ "@vercel/react-router": "Vercel framework adapter, no service call",
1077
+ "@vercel/remix": "Vercel framework adapter, no service call",
1078
+ "@vercel/stega": "Vercel build tooling, no service call",
1079
+ "@vercel/toolbar": "Vercel dev tooling, no service call",
1080
+ "@vercel/webpack-asset-relocator-loader": "Vercel build tooling, no service call",
1081
+ "@webstudio-is/react-sdk": "Webstudio's own monorepo package, not an external service",
1082
+ "@webstudio-is/sdk": "Webstudio's own monorepo package, not an external service",
1083
+ "ai": "AI SDK core library, no vendor of its own",
1084
+ "ap": "generic app-internal env stem, names no vendor",
1085
+ "appcache": "generic app-internal env stem, names no vendor",
1086
+ "assistants": "generic app-internal env stem, names no vendor",
1087
+ "backendoidc": "generic OAuth2/OIDC protocol stem, names no vendor",
1088
+ "betterauth": "local auth library (Better Auth), not a service",
1089
+ "bookerembedoauth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1090
+ "cms": "generic app-internal env stem, names no vendor",
1091
+ "cron": "generic app-internal env stem, names no vendor",
1092
+ "ctrl": "generic app-internal env stem, names no vendor",
1093
+ "cubejs": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1094
+ "duendeids6": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1095
+ "ee-embed-sdk": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1096
+ "enterpriseadmin": "generic app-internal env stem, names no vendor",
1097
+ "fortytwo": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1098
+ "google-auth-library": "auth library, no service surface of its own",
1099
+ "hdauthoidcmyoidc": "generic OAuth2/OIDC protocol stem, names no vendor",
1100
+ "hideuser": "generic app-internal env stem, names no vendor",
1101
+ "hub": "generic app-internal env stem, names no vendor",
1102
+ "ids4": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1103
+ "karakeep": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1104
+ "listmonk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1105
+ "llm": "generic app-internal env stem, names no vendor",
1106
+ "nextprivateoidc": "generic OAuth2/OIDC protocol stem, names no vendor",
1107
+ "nextprivatesigningcscoauth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1108
+ "nocodb-sdk": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1109
+ "oauth2": "generic OAuth2/OIDC protocol stem, names no vendor",
1110
+ "openid": "generic OAuth2/OIDC protocol stem, names no vendor",
1111
+ "organizationlicense": "generic app-internal env stem, names no vendor",
1112
+ "osso": "defunct SAML SaaS (Osso), no live vendor surface",
1113
+ "postgrest": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1114
+ "postizoauth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1115
+ "seedoauth2": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1116
+ "seedplatformoauth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1117
+ "sink": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1118
+ "ssogitoauth2": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1119
+ "stt": "generic app-internal env stem, names no vendor",
1120
+ "synology": "self-instance client; targets the app's own self-hosted deployment, which is local in a keyless world",
1121
+ "synth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1122
+ "tandem": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1123
+ "trpcserver": "generic app-internal env stem, names no vendor",
1124
+ "tts": "generic app-internal env stem, names no vendor",
1125
+ "wizardcloudrunoauth": "repo-local stem; env-stem extraction firing on an app-internal name, no vendor exists",
1126
+ "@vercel/edge": "Vercel edge request helpers (geolocation, ipAddress, rewrite), no external API (ladder classification 2026-09-02)",
1127
+ "@vercel/nft": "Node File Trace — build-time dependency tracer, no service call (ladder classification 2026-09-02)",
1128
+ "@grafana/aws-sdk": "Grafana datasource-plugin helper library (credential editors, temporary-credential types), not a service client (ladder classification 2026-09-02)",
1129
+ "@grafana/azure-sdk": "Grafana datasource-plugin helper library (Azure credential editors), not a service client (ladder classification 2026-09-02)",
1130
+ "@openfeature/react-sdk": "vendor-neutral feature-flag spec library; the configured provider, not this SDK, names a service (ladder classification 2026-09-02)",
1131
+ "@openfeature/web-sdk": "vendor-neutral feature-flag spec library; the configured provider, not this SDK, names a service (ladder classification 2026-09-02)",
1132
+ "@posthog/brand": "PostHog's own brand-asset package, not an external service (ladder classification 2026-09-02)",
1133
+ "@posthog/hedgehog-mode": "PostHog's own mascot animation library, no service call (ladder classification 2026-09-02)",
1134
+ "@posthog/icons": "PostHog's own icon library, not an external service (ladder classification 2026-09-02)",
1135
+ "@posthog/lemon-ui": "PostHog's own monorepo UI package, not an external service (ladder classification 2026-09-02)",
1136
+ "@posthog/react-native-plugin": "React Native / Expo build-config plugin for posthog-react-native, no service call (ladder classification 2026-09-02)",
1137
+ "@posthog/rollup-plugin": "bundler plugin, no service call (ladder classification 2026-09-02)",
1138
+ "@posthog/siphash": "SipHash implementation, no service (ladder classification 2026-09-02)",
1139
+ "@sendgrid/eventwebhook": "local ECDSA verification of inbound SendGrid event webhooks, no API call (ladder classification 2026-09-02)",
1140
+ "@stripe/ui-extension-sdk": "Stripe Apps UI-extension authoring API, runs inside the Stripe dashboard; not a client of the Stripe API (ladder classification 2026-09-02)",
1141
+ "@follow-app/client-sdk": "Folo's own first-party client for the app's own backend, not a third-party vendor surface (ladder classification 2026-09-02)",
1142
+ "frappe-react-sdk": "self-instance client; targets the app's own self-hosted Frappe deployment, which is local in a keyless world (ladder classification 2026-09-02)",
1143
+ "calcomadmin": "repo-local stem; CALCOM_ADMIN_API_KEY authenticates against the app's OWN cal.com instance (the credential-sync example calls http://localhost:3002), not api.cal.com (ladder classification 2026-09-02)",
1144
+ "graphrag": "library-named credential; Microsoft GraphRAG runs locally and GRAPHRAG_API_KEY holds the configured model provider's key (the roster consumer's own example says <YOUR_OPENAI_KEY>), which that provider's stem detects (ladder classification 2026-09-02)",
1145
+ "infinity": "self-instance client; Infinity is a locally-run rerank/embedding server and INFINITY_API_BASE is required, so the key names no hosted vendor (ladder classification 2026-09-02)",
1146
+ "langflow": "repo-local stem; the app's own configuration, names no vendor (ladder classification 2026-09-02)",
1147
+ "openaioauth": "repo-local stem; OPENAI_OAUTH_CLIENT_ID is the client id the app's OWN MCP OAuth server accepts from the ChatGPT connector — inbound, no api.openai.com call (ladder classification 2026-09-02)",
1148
+ "skyvern": "repo-local stem; the app's own API key, names no vendor (ladder classification 2026-09-02)",
1149
+ "twentypartners": "repo-local stem; Twenty's own partners-marketplace API (TWENTY_PARTNERS_API_URL is app-configured), no third-party vendor (ladder classification 2026-09-02)",
1150
+ "widget": "generic app-internal env stem, names no vendor (ladder classification 2026-09-02)",
1151
+ "@hubspot/cli": "HubSpot CLI (a dev tool), not a service",
1152
+ "@volter/twin": "our own twin package — the platform, not an external service",
1153
+ "@volter/twin-world": "our own twin package — the platform, not an external service",
1154
+ "@volter/twin-anthropic": "our own twin package — the platform, not an external service",
1155
+ "@volter/twin-assemblyai": "our own twin package — the platform, not an external service",
1156
+ "@volter/twin-deepgram": "our own twin package — the platform, not an external service",
1157
+ "@volter/twin-figma": "our own twin package — the platform, not an external service",
1158
+ "@volter/twin-gcs": "our own twin package — the platform, not an external service",
1159
+ "@volter/twin-gemini": "our own twin package — the platform, not an external service",
1160
+ "@volter/twin-stripe": "our own twin package — the platform, not an external service"
1161
+ },
1162
+ "patterns": [
1163
+ {
1164
+ "pattern": "^@aws-sdk\\/",
1165
+ "reason": "unmapped client from a multi-service cloud scope (AWS)"
1166
+ },
1167
+ {
1168
+ "pattern": "^@azure(-rest)?\\/",
1169
+ "reason": "unmapped client from a multi-service cloud scope (Azure)"
1170
+ },
1171
+ {
1172
+ "pattern": "^@google-cloud\\/",
1173
+ "reason": "unmapped client from a multi-service cloud scope (Google Cloud)"
1174
+ },
1175
+ {
1176
+ "pattern": "^@ai-sdk\\/",
1177
+ "reason": "unmapped AI SDK provider adapter; each names a hosted model vendor"
1178
+ },
1179
+ {
1180
+ "pattern": "(^|[-.])sdk$",
1181
+ "reason": "generic client shape"
1182
+ },
1183
+ {
1184
+ "pattern": "^@[^/]+\\/(sdk|api-client)$",
1185
+ "reason": "generic client shape (scoped sdk/api-client package)"
1186
+ },
1187
+ {
1188
+ "pattern": "-api-client$",
1189
+ "reason": "generic client shape (api-client suffix)"
1190
+ }
1191
+ ]
1192
+ }