@vibgrate/cli 2026.819.2 → 2026.824.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-ZJRWCMR6.js → agent-6SJVWFPV.js} +12 -12
- package/dist/{agent-ZJRWCMR6.js.map → agent-6SJVWFPV.js.map} +1 -1
- package/dist/{approvals-YTUXBZWQ.js → approvals-5UBLBNJF.js} +5 -5
- package/dist/{approvals-YTUXBZWQ.js.map → approvals-5UBLBNJF.js.map} +1 -1
- package/dist/{attach-WOA25VNH.js → attach-PSGCCJMA.js} +3 -3
- package/dist/{attach-WOA25VNH.js.map → attach-PSGCCJMA.js.map} +1 -1
- package/dist/baseline-HPXACNFU.js +9 -0
- package/dist/{baseline-TVRRUZGA.js.map → baseline-HPXACNFU.js.map} +1 -1
- package/dist/{chunk-24HKTTFV.js → chunk-2IY24TTR.js} +3 -3
- package/dist/{chunk-24HKTTFV.js.map → chunk-2IY24TTR.js.map} +1 -1
- package/dist/{chunk-7BSUPHX6.js → chunk-3PNAQUZM.js} +3 -3
- package/dist/{chunk-7BSUPHX6.js.map → chunk-3PNAQUZM.js.map} +1 -1
- package/dist/{chunk-W6ASIMG5.js → chunk-4PDWV4AE.js} +10 -12
- package/dist/chunk-4PDWV4AE.js.map +1 -0
- package/dist/{chunk-2ZBLZ2S3.js → chunk-5QO2GFAE.js} +27 -23
- package/dist/chunk-5QO2GFAE.js.map +1 -0
- package/dist/{chunk-GBXOAO5V.js → chunk-5UG4UHKU.js} +40 -10
- package/dist/chunk-5UG4UHKU.js.map +1 -0
- package/dist/chunk-AGOKTI77.js +6 -0
- package/dist/{chunk-ZUZHYAJK.js.map → chunk-AGOKTI77.js.map} +1 -1
- package/dist/{chunk-C2EZIAA3.js → chunk-B5GOCQFB.js} +9 -9
- package/dist/{chunk-C2EZIAA3.js.map → chunk-B5GOCQFB.js.map} +1 -1
- package/dist/{chunk-MMJFHEZ4.js → chunk-CJ2R3LVX.js} +4 -4
- package/dist/{chunk-MMJFHEZ4.js.map → chunk-CJ2R3LVX.js.map} +1 -1
- package/dist/{chunk-2C4QT5D7.js → chunk-III7S75O.js} +53 -463
- package/dist/chunk-III7S75O.js.map +1 -0
- package/dist/{chunk-IMI2VHHZ.js → chunk-IKB5U3AH.js} +3 -3
- package/dist/{chunk-IMI2VHHZ.js.map → chunk-IKB5U3AH.js.map} +1 -1
- package/dist/{chunk-AP3JN33O.js → chunk-JL66EPZ4.js} +221 -10
- package/dist/chunk-JL66EPZ4.js.map +1 -0
- package/dist/{chunk-QE6F62FR.js → chunk-KBLKNR3V.js} +3 -3
- package/dist/{chunk-QE6F62FR.js.map → chunk-KBLKNR3V.js.map} +1 -1
- package/dist/{chunk-JPOYXG7Z.js → chunk-KRE7SXSA.js} +12 -13
- package/dist/chunk-KRE7SXSA.js.map +1 -0
- package/dist/{chunk-XW2XQM3C.js → chunk-LA4CETXN.js} +3 -3
- package/dist/{chunk-XW2XQM3C.js.map → chunk-LA4CETXN.js.map} +1 -1
- package/dist/{chunk-OGFOJG4H.js → chunk-LMHKIQA5.js} +3 -3
- package/dist/{chunk-OGFOJG4H.js.map → chunk-LMHKIQA5.js.map} +1 -1
- package/dist/{chunk-FCMWHSQ6.js → chunk-M5QSBXA6.js} +17 -4
- package/dist/chunk-M5QSBXA6.js.map +1 -0
- package/dist/{chunk-R5TQBIR6.js → chunk-QLNJ3VWO.js} +3 -3
- package/dist/{chunk-R5TQBIR6.js.map → chunk-QLNJ3VWO.js.map} +1 -1
- package/dist/{chunk-XLQ4YHS3.js → chunk-QP3P4V4I.js} +10 -8
- package/dist/chunk-QP3P4V4I.js.map +1 -0
- package/dist/{chunk-BQ6NTRRK.js → chunk-RAEHWCN6.js} +6 -6
- package/dist/{chunk-BQ6NTRRK.js.map → chunk-RAEHWCN6.js.map} +1 -1
- package/dist/{chunk-USPMMVNH.js → chunk-SGIFJIII.js} +3 -3
- package/dist/{chunk-USPMMVNH.js.map → chunk-SGIFJIII.js.map} +1 -1
- package/dist/{chunk-CBL3VY7J.js → chunk-TWWVTKA7.js} +35 -14
- package/dist/chunk-TWWVTKA7.js.map +1 -0
- package/dist/chunk-USW5WHUG.js +605 -0
- package/dist/chunk-USW5WHUG.js.map +1 -0
- package/dist/{chunk-NKKOGJ63.js → chunk-UUNEUEPQ.js} +71 -9
- package/dist/chunk-UUNEUEPQ.js.map +1 -0
- package/dist/{chunk-WPLOEFZU.js → chunk-WATYIYWP.js} +3 -3
- package/dist/{chunk-WPLOEFZU.js.map → chunk-WATYIYWP.js.map} +1 -1
- package/dist/{chunk-PJRPSYFQ.js → chunk-XHIWQGRE.js} +5 -5
- package/dist/{chunk-PJRPSYFQ.js.map → chunk-XHIWQGRE.js.map} +1 -1
- package/dist/{chunk-AQZYDFEK.js → chunk-YJ23GGAJ.js} +3 -3
- package/dist/{chunk-AQZYDFEK.js.map → chunk-YJ23GGAJ.js.map} +1 -1
- package/dist/cli.js +379 -544
- package/dist/cli.js.map +1 -1
- package/dist/{daemon-YKOEP3XA.js → daemon-AEL5N4SJ.js} +9 -9
- package/dist/{daemon-YKOEP3XA.js.map → daemon-AEL5N4SJ.js.map} +1 -1
- package/dist/embed-worker-main.js +3 -3
- package/dist/{ensure-map-BLRJDO2Y.js → ensure-map-YL5NR6UH.js} +15 -15
- package/dist/{ensure-map-BLRJDO2Y.js.map → ensure-map-YL5NR6UH.js.map} +1 -1
- package/dist/{graph-backend-NTYONTWW.js → graph-backend-LEPXFPXQ.js} +7 -7
- package/dist/{graph-backend-NTYONTWW.js.map → graph-backend-LEPXFPXQ.js.map} +1 -1
- package/dist/index.d.ts +72 -130
- package/dist/index.js +15 -15
- package/dist/{interactive-B3WTC7LB.js → interactive-YJ37ZWTA.js} +27 -26
- package/dist/interactive-YJ37ZWTA.js.map +1 -0
- package/dist/load-LT6R73IZ.js +11 -0
- package/dist/{load-AJROS77R.js.map → load-LT6R73IZ.js.map} +1 -1
- package/dist/parse-worker.js +3 -2
- package/dist/parse-worker.js.map +1 -1
- package/dist/{run-outcome-SBBSTSH3.js → run-outcome-YQBPYNEY.js} +5 -5
- package/dist/{run-outcome-SBBSTSH3.js.map → run-outcome-YQBPYNEY.js.map} +1 -1
- package/dist/{runtime-session-JYYKQVDX.js → runtime-session-JSH5UL7Z.js} +9 -9
- package/dist/{runtime-session-JYYKQVDX.js.map → runtime-session-JSH5UL7Z.js.map} +1 -1
- package/dist/{session-2ZMHZ2O6.js → session-3FLVZRMM.js} +8 -8
- package/dist/{session-2ZMHZ2O6.js.map → session-3FLVZRMM.js.map} +1 -1
- package/dist/{stream-json-ZWGB4C47.js → stream-json-VJ2O52CR.js} +12 -12
- package/dist/{stream-json-ZWGB4C47.js.map → stream-json-VJ2O52CR.js.map} +1 -1
- package/dist/version-VUTM46C5.js +4 -0
- package/dist/{version-5QIEUXU6.js.map → version-VUTM46C5.js.map} +1 -1
- package/dist/{vg-mcp-bridge-4FETMJ6M.js → vg-mcp-bridge-UUMEOJSO.js} +9 -9
- package/dist/{vg-mcp-bridge-4FETMJ6M.js.map → vg-mcp-bridge-UUMEOJSO.js.map} +1 -1
- package/dist/{vgd-R524P5BJ.js → vgd-XFT574U6.js} +8 -8
- package/dist/vgd-XFT574U6.js.map +1 -0
- package/package.json +2 -1
- package/dist/baseline-TVRRUZGA.js +0 -9
- package/dist/chunk-2C4QT5D7.js.map +0 -1
- package/dist/chunk-2ZBLZ2S3.js.map +0 -1
- package/dist/chunk-AP3JN33O.js.map +0 -1
- package/dist/chunk-CA4YQBA7.js +0 -699
- package/dist/chunk-CA4YQBA7.js.map +0 -1
- package/dist/chunk-CBL3VY7J.js.map +0 -1
- package/dist/chunk-FCMWHSQ6.js.map +0 -1
- package/dist/chunk-GBXOAO5V.js.map +0 -1
- package/dist/chunk-JPOYXG7Z.js.map +0 -1
- package/dist/chunk-NKKOGJ63.js.map +0 -1
- package/dist/chunk-W6ASIMG5.js.map +0 -1
- package/dist/chunk-XLQ4YHS3.js.map +0 -1
- package/dist/chunk-ZUZHYAJK.js +0 -6
- package/dist/interactive-B3WTC7LB.js.map +0 -1
- package/dist/load-AJROS77R.js +0 -11
- package/dist/version-5QIEUXU6.js +0 -4
- package/dist/vgd-R524P5BJ.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseGraph, stableStringify, serializeGraph } from './chunk-O3LABX6I.js';
|
|
2
|
-
import { VERSION } from './chunk-
|
|
2
|
+
import { VERSION } from './chunk-AGOKTI77.js';
|
|
3
3
|
import { globalGraphPathForRef, globalGraphPath, repositoryStoreDir } from './chunk-XP6UUCZZ.js';
|
|
4
4
|
import { detectGitRef } from './chunk-XQNKCA2J.js';
|
|
5
5
|
import * as fs3 from 'fs';
|
|
@@ -292,375 +292,6 @@ ${embedded}
|
|
|
292
292
|
function esc(s) {
|
|
293
293
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
294
294
|
}
|
|
295
|
-
|
|
296
|
-
// src/engine/concepts.ts
|
|
297
|
-
var WEAK_TERMS = /* @__PURE__ */ new Set([
|
|
298
|
-
"add",
|
|
299
|
-
"adds",
|
|
300
|
-
"added",
|
|
301
|
-
"adding",
|
|
302
|
-
"create",
|
|
303
|
-
"creates",
|
|
304
|
-
"created",
|
|
305
|
-
"creating",
|
|
306
|
-
"make",
|
|
307
|
-
"makes",
|
|
308
|
-
"making",
|
|
309
|
-
"made",
|
|
310
|
-
"new",
|
|
311
|
-
"newly",
|
|
312
|
-
"remove",
|
|
313
|
-
"removes",
|
|
314
|
-
"removed",
|
|
315
|
-
"removing",
|
|
316
|
-
"delete",
|
|
317
|
-
"deletes",
|
|
318
|
-
"deleted",
|
|
319
|
-
"deleting",
|
|
320
|
-
"update",
|
|
321
|
-
"updates",
|
|
322
|
-
"updated",
|
|
323
|
-
"updating",
|
|
324
|
-
"change",
|
|
325
|
-
"changes",
|
|
326
|
-
"changed",
|
|
327
|
-
"changing",
|
|
328
|
-
"set",
|
|
329
|
-
"sets",
|
|
330
|
-
"setting",
|
|
331
|
-
"setup",
|
|
332
|
-
"get",
|
|
333
|
-
"gets",
|
|
334
|
-
"getting",
|
|
335
|
-
"use",
|
|
336
|
-
"uses",
|
|
337
|
-
"used",
|
|
338
|
-
"using",
|
|
339
|
-
"want",
|
|
340
|
-
"wants",
|
|
341
|
-
"wanted",
|
|
342
|
-
"do",
|
|
343
|
-
"does",
|
|
344
|
-
"doing",
|
|
345
|
-
"done",
|
|
346
|
-
"support",
|
|
347
|
-
"supports",
|
|
348
|
-
"supported",
|
|
349
|
-
"supporting",
|
|
350
|
-
"enable",
|
|
351
|
-
"enables",
|
|
352
|
-
"enabled",
|
|
353
|
-
"enabling",
|
|
354
|
-
"disable",
|
|
355
|
-
"disables",
|
|
356
|
-
"disabled",
|
|
357
|
-
"disabling",
|
|
358
|
-
"allow",
|
|
359
|
-
"allows",
|
|
360
|
-
"allowed",
|
|
361
|
-
"implement",
|
|
362
|
-
"implements",
|
|
363
|
-
"implemented",
|
|
364
|
-
"implementing",
|
|
365
|
-
"build",
|
|
366
|
-
"builds",
|
|
367
|
-
"building",
|
|
368
|
-
"built",
|
|
369
|
-
"via",
|
|
370
|
-
"through",
|
|
371
|
-
"into",
|
|
372
|
-
"onto",
|
|
373
|
-
"way",
|
|
374
|
-
"ways",
|
|
375
|
-
"thing",
|
|
376
|
-
"things",
|
|
377
|
-
"stuff",
|
|
378
|
-
"feature",
|
|
379
|
-
"features",
|
|
380
|
-
"functionality",
|
|
381
|
-
"method",
|
|
382
|
-
"methods",
|
|
383
|
-
"option",
|
|
384
|
-
"options",
|
|
385
|
-
"ability",
|
|
386
|
-
"help",
|
|
387
|
-
"start",
|
|
388
|
-
"begin",
|
|
389
|
-
"work",
|
|
390
|
-
"works",
|
|
391
|
-
"working",
|
|
392
|
-
"also",
|
|
393
|
-
"currently",
|
|
394
|
-
"properly",
|
|
395
|
-
"correctly",
|
|
396
|
-
"please",
|
|
397
|
-
"happens",
|
|
398
|
-
"happen",
|
|
399
|
-
"something",
|
|
400
|
-
"somewhere",
|
|
401
|
-
"step",
|
|
402
|
-
"steps",
|
|
403
|
-
"flow",
|
|
404
|
-
"process",
|
|
405
|
-
"you",
|
|
406
|
-
"can"
|
|
407
|
-
]);
|
|
408
|
-
var CONCEPTS = {
|
|
409
|
-
// ---- payments / billing ----
|
|
410
|
-
payment: ["stripe", "billing", "invoice", "checkout", "charge", "subscription", "refund", "payout", "card", "debit", "mandate"],
|
|
411
|
-
pay: ["payment", "stripe", "charge", "billing", "invoice"],
|
|
412
|
-
paid: ["payment", "invoice", "charge"],
|
|
413
|
-
billing: ["invoice", "payment", "subscription", "stripe", "charge", "renewal"],
|
|
414
|
-
checkout: ["stripe", "payment", "cart", "session"],
|
|
415
|
-
debit: ["mandate", "sepa", "bacs", "ach", "bank", "payment"],
|
|
416
|
-
mandate: ["sepa", "bacs", "debit"],
|
|
417
|
-
sepa: ["mandate", "debit", "iban", "bank"],
|
|
418
|
-
bacs: ["mandate", "debit", "bank"],
|
|
419
|
-
ach: ["mandate", "debit", "bank"],
|
|
420
|
-
stripe: ["payment", "billing", "checkout", "webhook", "charge", "card"],
|
|
421
|
-
refund: ["payment", "invoice", "stripe", "charge"],
|
|
422
|
-
invoice: ["billing", "payment", "refund", "subscription"],
|
|
423
|
-
subscription: ["billing", "renewal", "invoice", "plan", "recurring"],
|
|
424
|
-
recurring: ["subscription", "renewal", "mandate", "debit"],
|
|
425
|
-
renewal: ["subscription", "billing", "renew"],
|
|
426
|
-
card: ["payment", "charge", "stripe"],
|
|
427
|
-
credit: ["card", "payment", "charge"],
|
|
428
|
-
bank: ["debit", "mandate", "sepa", "iban", "account"],
|
|
429
|
-
charge: ["payment", "card", "stripe"],
|
|
430
|
-
webhook: ["event", "handler", "callback"],
|
|
431
|
-
price: ["payment", "billing", "plan"],
|
|
432
|
-
customer: ["billing", "account", "user"],
|
|
433
|
-
// ---- auth ----
|
|
434
|
-
auth: ["login", "session", "token", "oauth", "password", "credential"],
|
|
435
|
-
authentication: ["auth", "login", "session", "token", "password"],
|
|
436
|
-
authenticated: ["auth", "login", "session"],
|
|
437
|
-
login: ["auth", "session", "password", "signin", "oauth"],
|
|
438
|
-
signin: ["login", "auth", "session"],
|
|
439
|
-
signup: ["register", "onboard", "account"],
|
|
440
|
-
logout: ["session", "auth", "signout"],
|
|
441
|
-
password: ["auth", "login", "credential", "hash"],
|
|
442
|
-
session: ["auth", "login", "token"],
|
|
443
|
-
token: ["session", "auth", "jwt"],
|
|
444
|
-
oauth: ["auth", "login", "callback", "provider"],
|
|
445
|
-
google: ["oauth", "login", "auth"],
|
|
446
|
-
github: ["oauth", "login", "auth"],
|
|
447
|
-
sso: ["oauth", "auth", "saml", "login"],
|
|
448
|
-
credential: ["auth", "password", "token", "secret"],
|
|
449
|
-
// ---- dependencies / supply chain ----
|
|
450
|
-
dependency: ["package", "audit", "vulnerability", "advisory", "lockfile", "version"],
|
|
451
|
-
package: ["dependency", "audit", "vulnerability", "advisory", "lockfile"],
|
|
452
|
-
vulnerability: ["advisory", "cve", "osv", "audit", "vulnerable"],
|
|
453
|
-
vulnerable: ["vulnerability", "advisory", "audit", "cve"],
|
|
454
|
-
advisory: ["vulnerability", "cve", "osv", "audit"],
|
|
455
|
-
cve: ["vulnerability", "advisory", "osv"],
|
|
456
|
-
risk: ["vulnerability", "audit", "advisory"],
|
|
457
|
-
security: ["vulnerability", "audit", "advisory"],
|
|
458
|
-
audit: ["dependency", "vulnerability", "advisory"],
|
|
459
|
-
scan: ["audit", "vulnerability", "scanner"],
|
|
460
|
-
// ---- notifications / messaging ----
|
|
461
|
-
email: ["mail", "smtp", "sender", "template", "message"],
|
|
462
|
-
mail: ["email", "smtp", "sender"],
|
|
463
|
-
notification: ["notify", "email", "sms", "push", "alert"],
|
|
464
|
-
notify: ["notification", "email", "alert"],
|
|
465
|
-
sms: ["notification", "message", "twilio"],
|
|
466
|
-
// ---- e-commerce ----
|
|
467
|
-
cart: ["checkout", "order", "shop", "basket", "discount"],
|
|
468
|
-
basket: ["cart", "checkout", "order"],
|
|
469
|
-
order: ["cart", "shipment", "fulfillment", "shop", "checkout"],
|
|
470
|
-
ship: ["order", "fulfillment", "delivery", "shipment"],
|
|
471
|
-
shipment: ["order", "fulfillment", "delivery", "track"],
|
|
472
|
-
shipping: ["order", "fulfillment", "delivery", "shipment"],
|
|
473
|
-
shipped: ["order", "fulfillment", "shipment"],
|
|
474
|
-
inventory: ["stock", "product", "catalog", "restock"],
|
|
475
|
-
stock: ["inventory", "product", "restock"],
|
|
476
|
-
product: ["catalog", "inventory", "shop"],
|
|
477
|
-
discount: ["coupon", "promo", "cart", "price"],
|
|
478
|
-
coupon: ["discount", "promo", "code"],
|
|
479
|
-
// ---- chat / social ----
|
|
480
|
-
chat: ["message", "room", "conversation", "presence"],
|
|
481
|
-
message: ["chat", "sms", "notification", "thread"],
|
|
482
|
-
conversation: ["chat", "message", "thread"],
|
|
483
|
-
presence: ["online", "typing", "status"],
|
|
484
|
-
online: ["presence", "status"],
|
|
485
|
-
typing: ["presence", "indicator", "broadcast"],
|
|
486
|
-
// ---- media / streaming ----
|
|
487
|
-
video: ["media", "transcode", "playback", "stream", "thumbnail"],
|
|
488
|
-
stream: ["video", "playback", "manifest", "media"],
|
|
489
|
-
streaming: ["video", "playback", "manifest", "media"],
|
|
490
|
-
playback: ["video", "stream", "media", "watch"],
|
|
491
|
-
transcode: ["video", "media", "encode"],
|
|
492
|
-
thumbnail: ["video", "image", "media"],
|
|
493
|
-
media: ["video", "stream", "playback", "asset"],
|
|
494
|
-
// ---- analytics ----
|
|
495
|
-
analytics: ["event", "track", "metric", "funnel", "report"],
|
|
496
|
-
event: ["track", "analytics", "webhook"],
|
|
497
|
-
track: ["event", "analytics"],
|
|
498
|
-
funnel: ["conversion", "analytics", "event"],
|
|
499
|
-
conversion: ["funnel", "analytics"],
|
|
500
|
-
report: ["metrics", "export", "analytics"],
|
|
501
|
-
// ---- content / CMS ----
|
|
502
|
-
article: ["publish", "content", "post", "cms"],
|
|
503
|
-
publish: ["article", "release", "post", "content"],
|
|
504
|
-
post: ["article", "publish", "message"],
|
|
505
|
-
blog: ["article", "publish", "post", "cms"],
|
|
506
|
-
content: ["cms", "article", "markdown"],
|
|
507
|
-
markdown: ["render", "article", "content"],
|
|
508
|
-
cms: ["article", "content", "publish"],
|
|
509
|
-
// ---- CI / deployment ----
|
|
510
|
-
deploy: ["release", "rollback", "pipeline", "deployment"],
|
|
511
|
-
deployment: ["deploy", "release", "rollback", "pipeline"],
|
|
512
|
-
release: ["deploy", "version", "rollback"],
|
|
513
|
-
rollback: ["deploy", "release", "deployment"],
|
|
514
|
-
pipeline: ["stage", "deploy", "runner", "ci"],
|
|
515
|
-
canary: ["deploy", "rollout", "release"],
|
|
516
|
-
// ---- mobile ----
|
|
517
|
-
push: ["notification", "device", "token", "mobile"],
|
|
518
|
-
device: ["push", "token", "mobile", "register"],
|
|
519
|
-
deeplink: ["link", "route", "universal"],
|
|
520
|
-
mobile: ["push", "device", "deeplink", "app"],
|
|
521
|
-
ios: ["mobile", "universal", "link", "app"],
|
|
522
|
-
android: ["mobile", "push", "device", "app"],
|
|
523
|
-
// ---- batch / ETL / mainframe ----
|
|
524
|
-
batch: ["settlement", "job", "etl", "reconcile"],
|
|
525
|
-
settlement: ["batch", "reconcile", "ledger", "clearing"],
|
|
526
|
-
reconcile: ["ledger", "settlement", "batch"],
|
|
527
|
-
ledger: ["settlement", "reconcile", "balance", "journal"],
|
|
528
|
-
mainframe: ["batch", "settlement", "ebcdic", "cobol", "fixed"],
|
|
529
|
-
ebcdic: ["mainframe", "record", "convert", "legacy"],
|
|
530
|
-
cobol: ["mainframe", "batch", "ebcdic"],
|
|
531
|
-
etl: ["batch", "pipeline", "extract", "load", "transform"],
|
|
532
|
-
nightly: ["batch", "cron", "schedule", "job"],
|
|
533
|
-
// ---- geo / maps ----
|
|
534
|
-
geocode: ["address", "location", "map", "geo"],
|
|
535
|
-
address: ["geocode", "location"],
|
|
536
|
-
map: ["geo", "route", "location"],
|
|
537
|
-
route: ["distance", "path", "planner", "geo"],
|
|
538
|
-
distance: ["route", "haversine", "geo"],
|
|
539
|
-
location: ["geo", "geocode", "map"],
|
|
540
|
-
arrival: ["route", "eta", "estimate"],
|
|
541
|
-
// ---- i18n ----
|
|
542
|
-
translation: ["locale", "i18n", "language", "translate"],
|
|
543
|
-
translate: ["translation", "locale", "language"],
|
|
544
|
-
locale: ["translation", "i18n", "language", "format"],
|
|
545
|
-
i18n: ["translation", "locale", "language"],
|
|
546
|
-
language: ["locale", "translation", "i18n"],
|
|
547
|
-
localized: ["locale", "translation", "format"],
|
|
548
|
-
// ---- observability ----
|
|
549
|
-
metric: ["counter", "prometheus", "telemetry", "export"],
|
|
550
|
-
prometheus: ["metric", "exporter", "monitoring"],
|
|
551
|
-
trace: ["span", "telemetry", "observability"],
|
|
552
|
-
span: ["trace", "telemetry"],
|
|
553
|
-
monitoring: ["metric", "trace", "alert", "observability"],
|
|
554
|
-
telemetry: ["metric", "trace", "span"],
|
|
555
|
-
counter: ["metric", "increment"],
|
|
556
|
-
// ---- feature flags / experimentation ----
|
|
557
|
-
flag: ["feature", "rollout", "toggle", "experiment"],
|
|
558
|
-
rollout: ["flag", "percentage", "release", "experiment"],
|
|
559
|
-
toggle: ["flag", "feature", "switch"],
|
|
560
|
-
experiment: ["variant", "assign", "flag", "exposure"],
|
|
561
|
-
variant: ["experiment", "assign"],
|
|
562
|
-
// ---- generic infrastructure ----
|
|
563
|
-
database: ["schema", "migration", "sql", "query", "orm"],
|
|
564
|
-
db: ["database", "schema", "migration", "sql"],
|
|
565
|
-
migration: ["database", "schema", "migrate", "sql"],
|
|
566
|
-
cache: ["redis", "ttl", "store"],
|
|
567
|
-
queue: ["job", "worker", "task", "batch"],
|
|
568
|
-
job: ["queue", "worker", "cron"],
|
|
569
|
-
upload: ["file", "storage", "blob", "asset"],
|
|
570
|
-
storage: ["file", "upload", "bucket", "blob"],
|
|
571
|
-
permission: ["role", "rbac", "acl", "access", "grant"],
|
|
572
|
-
role: ["permission", "rbac", "access"],
|
|
573
|
-
error: ["exception", "failure", "handler"],
|
|
574
|
-
config: ["settings", "env", "configuration"]
|
|
575
|
-
};
|
|
576
|
-
var BIGRAM_CONCEPTS = {
|
|
577
|
-
"direct debit": ["debit", "mandate", "sepa", "bacs", "bank"],
|
|
578
|
-
"direct debits": ["debit", "mandate", "sepa", "bacs", "bank"],
|
|
579
|
-
"sign in": ["login", "signin", "auth", "session"],
|
|
580
|
-
"signs in": ["login", "signin", "auth", "session"],
|
|
581
|
-
"log in": ["login", "auth", "session"],
|
|
582
|
-
"logs in": ["login", "auth", "session"],
|
|
583
|
-
"logged in": ["login", "auth", "session"],
|
|
584
|
-
"sign up": ["signup", "register", "account"],
|
|
585
|
-
"credit card": ["card", "payment", "charge", "stripe"],
|
|
586
|
-
"credit cards": ["card", "payment", "charge", "stripe"],
|
|
587
|
-
"bank transfer": ["bank", "payment", "sepa", "transfer"],
|
|
588
|
-
"rate limit": ["ratelimit", "throttle", "quota"],
|
|
589
|
-
"two factor": ["totp", "mfa", "otp", "auth"],
|
|
590
|
-
"payment method": ["payment", "stripe", "card", "debit"],
|
|
591
|
-
"payment methods": ["payment", "stripe", "card", "debit"],
|
|
592
|
-
"push notification": ["push", "device", "token", "notification"],
|
|
593
|
-
"push notifications": ["push", "device", "token", "notification"],
|
|
594
|
-
"deep link": ["deeplink", "link", "route"],
|
|
595
|
-
"deep links": ["deeplink", "link", "route"],
|
|
596
|
-
"universal link": ["deeplink", "link", "universal"],
|
|
597
|
-
"universal links": ["deeplink", "link", "universal"],
|
|
598
|
-
"feature flag": ["flag", "rollout", "toggle", "experiment"],
|
|
599
|
-
"feature flags": ["flag", "rollout", "toggle", "experiment"],
|
|
600
|
-
"shopping cart": ["cart", "checkout", "order"],
|
|
601
|
-
"roll back": ["rollback", "deploy", "release"],
|
|
602
|
-
"rolled back": ["rollback", "deploy", "release"],
|
|
603
|
-
"ab test": ["experiment", "variant"],
|
|
604
|
-
"sign out": ["logout", "session", "auth"],
|
|
605
|
-
"fixed width": ["record", "export", "mainframe", "batch"]
|
|
606
|
-
};
|
|
607
|
-
function lexiconKey(token) {
|
|
608
|
-
if (token in CONCEPTS) return token;
|
|
609
|
-
if (token.endsWith("ies")) {
|
|
610
|
-
const singular = token.slice(0, -3) + "y";
|
|
611
|
-
if (singular in CONCEPTS) return singular;
|
|
612
|
-
}
|
|
613
|
-
if (token.endsWith("s")) {
|
|
614
|
-
const singular = token.slice(0, -1);
|
|
615
|
-
if (singular in CONCEPTS) return singular;
|
|
616
|
-
}
|
|
617
|
-
return null;
|
|
618
|
-
}
|
|
619
|
-
function expandConcepts(orderedTokens) {
|
|
620
|
-
const present = new Set(orderedTokens);
|
|
621
|
-
const out = [];
|
|
622
|
-
const emitted = /* @__PURE__ */ new Set();
|
|
623
|
-
const emit = (term, from) => {
|
|
624
|
-
if (present.has(term) || emitted.has(term)) return;
|
|
625
|
-
emitted.add(term);
|
|
626
|
-
out.push({ term, from });
|
|
627
|
-
};
|
|
628
|
-
for (let i = 0; i + 1 < orderedTokens.length; i++) {
|
|
629
|
-
const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;
|
|
630
|
-
const terms = BIGRAM_CONCEPTS[bigram];
|
|
631
|
-
if (terms) for (const t of terms) emit(t, bigram);
|
|
632
|
-
}
|
|
633
|
-
for (const token of orderedTokens) {
|
|
634
|
-
const key = lexiconKey(token);
|
|
635
|
-
if (key) for (const t of CONCEPTS[key]) emit(t, token);
|
|
636
|
-
}
|
|
637
|
-
return out;
|
|
638
|
-
}
|
|
639
|
-
function bigramConsumedTokens(orderedTokens) {
|
|
640
|
-
const consumed = /* @__PURE__ */ new Set();
|
|
641
|
-
for (let i = 0; i + 1 < orderedTokens.length; i++) {
|
|
642
|
-
const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;
|
|
643
|
-
if (!BIGRAM_CONCEPTS[bigram]) continue;
|
|
644
|
-
for (const tok of [orderedTokens[i], orderedTokens[i + 1]]) {
|
|
645
|
-
if (!lexiconKey(tok)) consumed.add(tok);
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
return consumed;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
// src/engine/relevance-provider.ts
|
|
652
|
-
var MAX_PROVIDER_EXPANSIONS = 24;
|
|
653
|
-
var MAX_PROVIDER_PATHS = 6;
|
|
654
|
-
var MAX_PROVIDER_LEVELS = 8;
|
|
655
|
-
var MAX_PROVIDER_TERMS = 10;
|
|
656
|
-
var MAX_PROVIDER_VENDORS = 8;
|
|
657
|
-
var MAX_PROVIDER_CORRECTIONS = 8;
|
|
658
|
-
var MAX_PROVIDER_FILES = 8;
|
|
659
|
-
var MAX_PROVIDER_STANDARDS = 4;
|
|
660
|
-
var MAX_PROVIDER_CATEGORIES = 10;
|
|
661
|
-
var CATEGORY_SLUG = /^[a-z0-9][a-z0-9-]{1,40}$/;
|
|
662
|
-
var FILE_HINT = /^(?!\/|~|\.\.)[A-Za-z0-9._*/-]{1,48}$/;
|
|
663
|
-
var PATH_SEGMENT = /^[a-z0-9][a-z0-9-]*$/;
|
|
664
295
|
function disabled() {
|
|
665
296
|
const v = process.env.VIBGRATE_NO_KERNEL;
|
|
666
297
|
return v === "1" || v === "true";
|
|
@@ -706,101 +337,60 @@ async function loadRelevanceProvider() {
|
|
|
706
337
|
}
|
|
707
338
|
return cached;
|
|
708
339
|
}
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
return null;
|
|
716
|
-
}
|
|
340
|
+
var MAX_RANK_SEEDS = 64;
|
|
341
|
+
var MAX_CONCEPT_LINES = 24;
|
|
342
|
+
var MAX_WHY_LEN = 240;
|
|
343
|
+
var MAX_LINE_LEN = 400;
|
|
344
|
+
function cleanLine(raw, cap) {
|
|
345
|
+
return String(raw ?? "").replace(/[\u0000-\u001F\u007F]+/g, " ").replace(/\s+/g, " ").trim().slice(0, cap);
|
|
717
346
|
}
|
|
718
|
-
function
|
|
719
|
-
if (!raw || typeof raw.version !== "string") return null;
|
|
347
|
+
function sanitizeRank(raw, validIds) {
|
|
348
|
+
if (!raw || typeof raw.version !== "string" || typeof raw.hasContent !== "boolean") return null;
|
|
349
|
+
if (!Array.isArray(raw.seeds) || !Array.isArray(raw.conceptMap)) return null;
|
|
720
350
|
const seen = /* @__PURE__ */ new Set();
|
|
721
|
-
const
|
|
722
|
-
for (const
|
|
723
|
-
const
|
|
724
|
-
const
|
|
725
|
-
|
|
726
|
-
if (!
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
if (
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
const
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
categories: cleanCategories(st.categories, MAX_PROVIDER_CATEGORIES)
|
|
745
|
-
})).slice(0, cap);
|
|
746
|
-
const cleanCategories = (raw2, cap) => {
|
|
747
|
-
const out = [];
|
|
748
|
-
for (const c of Array.isArray(raw2) ? raw2 : []) {
|
|
749
|
-
const slug = String(c ?? "").toLowerCase().trim();
|
|
750
|
-
if (!CATEGORY_SLUG.test(slug) || out.includes(slug)) continue;
|
|
751
|
-
out.push(slug);
|
|
752
|
-
if (out.length >= cap) break;
|
|
753
|
-
}
|
|
754
|
-
return out;
|
|
755
|
-
};
|
|
756
|
-
const cleanTerms = (raw2, cap) => (Array.isArray(raw2) ? raw2 : []).filter((t) => typeof t === "string" && t.length > 0 && t.length <= 40).map((t) => t.toLowerCase()).slice(0, cap);
|
|
757
|
-
const validPath = (p) => typeof p === "string" && p.length > 0 && p.length <= 120 && p.split("/").every((seg) => PATH_SEGMENT.test(seg));
|
|
758
|
-
const taxonomy = [];
|
|
759
|
-
for (const m of raw.taxonomy ?? []) {
|
|
760
|
-
if (!m || !validPath(m.path)) continue;
|
|
761
|
-
const levels = (m.levels ?? []).filter((l) => l && validPath(l.path) && typeof l.id === "string").slice(0, MAX_PROVIDER_LEVELS).map((l) => ({ id: l.id, path: l.path, score: clamp01(l.score), terms: cleanTerms(l.terms, MAX_PROVIDER_TERMS) }));
|
|
762
|
-
if (!levels.length || levels[levels.length - 1].path !== m.path) continue;
|
|
763
|
-
taxonomy.push({
|
|
764
|
-
path: m.path,
|
|
765
|
-
levels,
|
|
766
|
-
score: clamp01(m.score),
|
|
767
|
-
evidence: Number.isFinite(Number(m.evidence)) ? Math.max(0, Number(m.evidence)) : 0,
|
|
768
|
-
via: (m.via ?? []).filter((v) => typeof v === "string" && v.length <= 80).slice(0, 8),
|
|
769
|
-
terms: cleanTerms(m.terms, MAX_PROVIDER_TERMS),
|
|
770
|
-
files: cleanFiles(m.files, MAX_PROVIDER_FILES),
|
|
771
|
-
standards: cleanStandards(m.standards, MAX_PROVIDER_STANDARDS)
|
|
772
|
-
});
|
|
773
|
-
if (taxonomy.length >= MAX_PROVIDER_PATHS) break;
|
|
351
|
+
const seeds = [];
|
|
352
|
+
for (const s of raw.seeds) {
|
|
353
|
+
const id = typeof s?.id === "string" ? s.id : "";
|
|
354
|
+
const score = Number(s?.score);
|
|
355
|
+
if (!id || !validIds.has(id) || seen.has(id)) continue;
|
|
356
|
+
if (!Number.isFinite(score) || score <= 0) continue;
|
|
357
|
+
seen.add(id);
|
|
358
|
+
seeds.push({ id, score, why: cleanLine(s.why, MAX_WHY_LEN) });
|
|
359
|
+
if (seeds.length >= MAX_RANK_SEEDS) break;
|
|
360
|
+
}
|
|
361
|
+
const conceptMap = raw.conceptMap.map((l) => cleanLine(l, MAX_LINE_LEN)).filter((l) => l.length > 0).slice(0, MAX_CONCEPT_LINES);
|
|
362
|
+
return { version: raw.version.slice(0, 120), hasContent: raw.hasContent, seeds, conceptMap };
|
|
363
|
+
}
|
|
364
|
+
var symbolViewCache = /* @__PURE__ */ new WeakMap();
|
|
365
|
+
function symbolViewOf(graph) {
|
|
366
|
+
const hit = symbolViewCache.get(graph);
|
|
367
|
+
if (hit) return hit;
|
|
368
|
+
const symbols = [];
|
|
369
|
+
const ids = /* @__PURE__ */ new Set();
|
|
370
|
+
for (const n of graph.nodes) {
|
|
371
|
+
if (n.kind === "file" || n.kind === "external") continue;
|
|
372
|
+
symbols.push({ id: n.id, name: n.name, qualifiedName: n.qualifiedName, file: n.file, importance: n.importance });
|
|
373
|
+
ids.add(n.id);
|
|
774
374
|
}
|
|
775
|
-
const
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
375
|
+
const view = { symbols, ids };
|
|
376
|
+
symbolViewCache.set(graph, view);
|
|
377
|
+
return view;
|
|
378
|
+
}
|
|
379
|
+
async function rankQuestion(graph, question, opts = {}) {
|
|
380
|
+
const provider = await loadRelevanceProvider();
|
|
381
|
+
if (!provider || typeof provider.rankSymbols !== "function") return null;
|
|
382
|
+
try {
|
|
383
|
+
const { symbols, ids } = symbolViewOf(graph);
|
|
384
|
+
const topicTags = opts.topicTags ? Object.fromEntries(opts.topicTags) : null;
|
|
385
|
+
const raw = provider.rankSymbols(question, symbols, {
|
|
386
|
+
limit: opts.limit,
|
|
387
|
+
priorQuestion: opts.priorQuestion ?? null,
|
|
388
|
+
topicTags
|
|
787
389
|
});
|
|
788
|
-
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
for (const c of raw.corrections ?? []) {
|
|
792
|
-
const from = String(c?.from ?? "").toLowerCase().trim();
|
|
793
|
-
const to = String(c?.to ?? "").toLowerCase().trim();
|
|
794
|
-
const distance = Number(c?.distance);
|
|
795
|
-
if (!from || !to || from === to || from.length > 60 || to.length > 60) continue;
|
|
796
|
-
if (!Number.isInteger(distance) || distance < 1 || distance > 3) continue;
|
|
797
|
-
corrections.push({ from, to, distance });
|
|
798
|
-
if (corrections.length >= MAX_PROVIDER_CORRECTIONS) break;
|
|
390
|
+
return sanitizeRank(raw, ids);
|
|
391
|
+
} catch {
|
|
392
|
+
return null;
|
|
799
393
|
}
|
|
800
|
-
const files = cleanFiles(raw.files, MAX_PROVIDER_FILES);
|
|
801
|
-
const standards = cleanStandards(raw.standards, MAX_PROVIDER_STANDARDS);
|
|
802
|
-
const categories = cleanCategories(raw.categories, MAX_PROVIDER_CATEGORIES);
|
|
803
|
-
return { version: raw.version, topics, expansions, taxonomy, vendors, corrections, files, standards, categories };
|
|
804
394
|
}
|
|
805
395
|
function vibgrateDir(root) {
|
|
806
396
|
return path2.join(root, ".vibgrate");
|
|
@@ -1042,6 +632,6 @@ async function loadTopicTags(graph, root, graphPath) {
|
|
|
1042
632
|
return tags;
|
|
1043
633
|
}
|
|
1044
634
|
|
|
1045
|
-
export {
|
|
1046
|
-
//# sourceMappingURL=chunk-
|
|
1047
|
-
//# sourceMappingURL=chunk-
|
|
635
|
+
export { defaultGraphPath, ensureVibgrateGitignore, legacyGraphPath, loadGraphFileWithSnapshot, loadRelevanceProvider, loadTopicTags, mapFileExists, mapFileStat, preferInRepoGraph, rankQuestion, relevanceModuleDir, renderHtml, renderReport, resetRelevanceProviderCache, resolveGraphPath, vibgrateDir, writeArtifacts };
|
|
636
|
+
//# sourceMappingURL=chunk-III7S75O.js.map
|
|
637
|
+
//# sourceMappingURL=chunk-III7S75O.js.map
|