@vibgrate/cli 2026.803.5 → 2026.804.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.
- package/dist/{agent-PQEODATY.js → agent-YDRDDKPE.js} +10 -12
- package/dist/{agent-PQEODATY.js.map → agent-YDRDDKPE.js.map} +1 -1
- package/dist/{baseline-SU2PCQV2.js → baseline-IALIGR4A.js} +3 -3
- package/dist/{baseline-SU2PCQV2.js.map → baseline-IALIGR4A.js.map} +1 -1
- package/dist/{chunk-SJC3VKQ2.js → chunk-4TPTVRVI.js} +4 -4
- package/dist/{chunk-SJC3VKQ2.js.map → chunk-4TPTVRVI.js.map} +1 -1
- package/dist/{chunk-VJHNGNCT.js → chunk-A4CGGQJ7.js} +5 -6
- package/dist/chunk-A4CGGQJ7.js.map +1 -0
- package/dist/chunk-B2Y45PCA.js +6 -0
- package/dist/{chunk-USO67ZEE.js.map → chunk-B2Y45PCA.js.map} +1 -1
- package/dist/{chunk-2A7XCANX.js → chunk-B6IBSQHG.js} +218 -24
- package/dist/chunk-B6IBSQHG.js.map +1 -0
- package/dist/{chunk-JZGVUH57.js → chunk-CM6OYYBW.js} +4 -4
- package/dist/{chunk-JZGVUH57.js.map → chunk-CM6OYYBW.js.map} +1 -1
- package/dist/{chunk-UH2WHRKJ.js → chunk-D56WBMAM.js} +7 -8
- package/dist/chunk-D56WBMAM.js.map +1 -0
- package/dist/{chunk-H4XQQ4N2.js → chunk-FJ2ARY3S.js} +6 -7
- package/dist/chunk-FJ2ARY3S.js.map +1 -0
- package/dist/{chunk-OCINHIPN.js → chunk-K5GPEWPI.js} +458 -6
- package/dist/chunk-K5GPEWPI.js.map +1 -0
- package/dist/{chunk-5WMFX7TY.js → chunk-KSFYHT5G.js} +4 -4
- package/dist/{chunk-5WMFX7TY.js.map → chunk-KSFYHT5G.js.map} +1 -1
- package/dist/{chunk-LOV44ROX.js → chunk-L4CYXVW2.js} +4 -4
- package/dist/{chunk-LOV44ROX.js.map → chunk-L4CYXVW2.js.map} +1 -1
- package/dist/{chunk-UXWN5YQW.js → chunk-L7GGEXZG.js} +4 -4
- package/dist/{chunk-UXWN5YQW.js.map → chunk-L7GGEXZG.js.map} +1 -1
- package/dist/{chunk-KFK7KCAH.js → chunk-NAZLPO63.js} +3 -3
- package/dist/{chunk-KFK7KCAH.js.map → chunk-NAZLPO63.js.map} +1 -1
- package/dist/{chunk-TVRM57CE.js → chunk-NGMVIAKI.js} +4 -4
- package/dist/{chunk-TVRM57CE.js.map → chunk-NGMVIAKI.js.map} +1 -1
- package/dist/{chunk-72XI4MTL.js → chunk-P63H3DXY.js} +7 -8
- package/dist/chunk-P63H3DXY.js.map +1 -0
- package/dist/{chunk-COZEHQTK.js → chunk-TASMCKLD.js} +7 -7
- package/dist/{chunk-COZEHQTK.js.map → chunk-TASMCKLD.js.map} +1 -1
- package/dist/{chunk-HE2TEFWY.js → chunk-UHLFD7EO.js} +4 -4
- package/dist/{chunk-HE2TEFWY.js.map → chunk-UHLFD7EO.js.map} +1 -1
- package/dist/{chunk-CPGTEDFD.js → chunk-UZO2T3J2.js} +3 -3
- package/dist/{chunk-CPGTEDFD.js.map → chunk-UZO2T3J2.js.map} +1 -1
- package/dist/{chunk-MKDM2KLO.js → chunk-WGIX4S5A.js} +8 -9
- package/dist/chunk-WGIX4S5A.js.map +1 -0
- package/dist/{chunk-TKV3GAKX.js → chunk-XVZMDDU4.js} +4 -4
- package/dist/{chunk-TKV3GAKX.js.map → chunk-XVZMDDU4.js.map} +1 -1
- package/dist/{chunk-UJGWQ6YA.js → chunk-ZZNNXZYB.js} +3 -4
- package/dist/chunk-ZZNNXZYB.js.map +1 -0
- package/dist/cli.js +91 -45
- package/dist/cli.js.map +1 -1
- package/dist/embed-worker-main.js +5 -2
- package/dist/embed-worker-main.js.map +1 -1
- package/dist/{ensure-map-Z6UXBPI7.js → ensure-map-DNLGAQRQ.js} +12 -14
- package/dist/{ensure-map-Z6UXBPI7.js.map → ensure-map-DNLGAQRQ.js.map} +1 -1
- package/dist/graph-backend-L7PIG7CS.js +13 -0
- package/dist/{graph-backend-3A2M22QN.js.map → graph-backend-L7PIG7CS.js.map} +1 -1
- package/dist/index.d.ts +25 -6
- package/dist/index.js +11 -13
- package/dist/index.js.map +1 -1
- package/dist/{interactive-6TCXGIMA.js → interactive-GQ3O7FKE.js} +21 -23
- package/dist/interactive-GQ3O7FKE.js.map +1 -0
- package/dist/load-VOSNNCOZ.js +9 -0
- package/dist/{load-QHU4WMUN.js.map → load-VOSNNCOZ.js.map} +1 -1
- package/dist/{run-outcome-NHD3NXTL.js → run-outcome-I4T5GDQZ.js} +5 -7
- package/dist/run-outcome-I4T5GDQZ.js.map +1 -0
- package/dist/runtime-session-45HT7NZA.js +20 -0
- package/dist/{runtime-session-W65P4OXR.js.map → runtime-session-45HT7NZA.js.map} +1 -1
- package/dist/session-QUONHFJN.js +15 -0
- package/dist/{session-NZKZXBX4.js.map → session-QUONHFJN.js.map} +1 -1
- package/dist/{stream-json-MLWEIQNK.js → stream-json-WEWVI3DW.js} +10 -12
- package/dist/stream-json-WEWVI3DW.js.map +1 -0
- package/dist/{vg-mcp-bridge-2DEZF3JM.js → vg-mcp-bridge-NOG3D6TL.js} +8 -10
- package/dist/vg-mcp-bridge-NOG3D6TL.js.map +1 -0
- package/dist/{vgd-W7IHKGNU.js → vgd-URRPZ7OD.js} +8 -10
- package/dist/vgd-URRPZ7OD.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-2A7XCANX.js.map +0 -1
- package/dist/chunk-4LGDQBYK.js +0 -358
- package/dist/chunk-4LGDQBYK.js.map +0 -1
- package/dist/chunk-72XI4MTL.js.map +0 -1
- package/dist/chunk-H4XQQ4N2.js.map +0 -1
- package/dist/chunk-MKDM2KLO.js.map +0 -1
- package/dist/chunk-OCINHIPN.js.map +0 -1
- package/dist/chunk-RBMKBYGV.js +0 -102
- package/dist/chunk-RBMKBYGV.js.map +0 -1
- package/dist/chunk-UH2WHRKJ.js.map +0 -1
- package/dist/chunk-UJGWQ6YA.js.map +0 -1
- package/dist/chunk-USO67ZEE.js +0 -6
- package/dist/chunk-VJHNGNCT.js.map +0 -1
- package/dist/graph-backend-3A2M22QN.js +0 -13
- package/dist/interactive-6TCXGIMA.js.map +0 -1
- package/dist/load-QHU4WMUN.js +0 -11
- package/dist/run-outcome-NHD3NXTL.js.map +0 -1
- package/dist/runtime-session-W65P4OXR.js +0 -22
- package/dist/session-NZKZXBX4.js +0 -17
- package/dist/stream-json-MLWEIQNK.js.map +0 -1
- package/dist/vg-mcp-bridge-2DEZF3JM.js.map +0 -1
- package/dist/vgd-W7IHKGNU.js.map +0 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { VERSION } from './chunk-
|
|
2
|
-
import { WEAK_TERMS } from './chunk-4LGDQBYK.js';
|
|
3
|
-
import { parseGraph, stableStringify, serializeGraph } from './chunk-RBMKBYGV.js';
|
|
1
|
+
import { VERSION } from './chunk-B2Y45PCA.js';
|
|
4
2
|
import { globalGraphPathForRef, globalGraphPath, repositoryStoreDir } from './chunk-BWPBB45M.js';
|
|
5
3
|
import { detectGitRef } from './chunk-BPF3YX2U.js';
|
|
6
4
|
import * as fs3 from 'fs';
|
|
@@ -10,6 +8,45 @@ import * as os from 'os';
|
|
|
10
8
|
import * as path2 from 'path';
|
|
11
9
|
import { pathToFileURL } from 'url';
|
|
12
10
|
|
|
11
|
+
// src/engine/serialize.ts
|
|
12
|
+
function serializeGraph(graph, opts) {
|
|
13
|
+
const indent = opts?.compact ? 0 : 2;
|
|
14
|
+
return `${stableStringify(graph, indent)}
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
17
|
+
function slimGraphForExport(graph) {
|
|
18
|
+
return {
|
|
19
|
+
...graph,
|
|
20
|
+
areas: graph.areas.map((a) => ({
|
|
21
|
+
...a,
|
|
22
|
+
members: []
|
|
23
|
+
// member id lists dominate XL exports; area id still on nodes
|
|
24
|
+
})),
|
|
25
|
+
grounding: void 0,
|
|
26
|
+
facts: graph.facts
|
|
27
|
+
// Keep summaries/unknowns — small and useful to agents.
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function stableStringify(value, indent = 2) {
|
|
31
|
+
return JSON.stringify(sortKeys(value), null, indent);
|
|
32
|
+
}
|
|
33
|
+
function sortKeys(value) {
|
|
34
|
+
if (Array.isArray(value)) return value.map(sortKeys);
|
|
35
|
+
if (value && typeof value === "object") {
|
|
36
|
+
const input = value;
|
|
37
|
+
const out = {};
|
|
38
|
+
for (const key of Object.keys(input).sort()) {
|
|
39
|
+
const v = input[key];
|
|
40
|
+
if (v === void 0) continue;
|
|
41
|
+
out[key] = sortKeys(v);
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function parseGraph(json) {
|
|
48
|
+
return JSON.parse(json);
|
|
49
|
+
}
|
|
13
50
|
var MAGIC = Buffer.from("VGSNAP1\0", "latin1");
|
|
14
51
|
var crc322 = zlib.crc32 ?? jsCrc32;
|
|
15
52
|
var crcTable = null;
|
|
@@ -293,6 +330,363 @@ ${embedded}
|
|
|
293
330
|
function esc(s) {
|
|
294
331
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
295
332
|
}
|
|
333
|
+
|
|
334
|
+
// src/engine/concepts.ts
|
|
335
|
+
var WEAK_TERMS = /* @__PURE__ */ new Set([
|
|
336
|
+
"add",
|
|
337
|
+
"adds",
|
|
338
|
+
"added",
|
|
339
|
+
"adding",
|
|
340
|
+
"create",
|
|
341
|
+
"creates",
|
|
342
|
+
"created",
|
|
343
|
+
"creating",
|
|
344
|
+
"make",
|
|
345
|
+
"makes",
|
|
346
|
+
"making",
|
|
347
|
+
"made",
|
|
348
|
+
"new",
|
|
349
|
+
"newly",
|
|
350
|
+
"remove",
|
|
351
|
+
"removes",
|
|
352
|
+
"removed",
|
|
353
|
+
"removing",
|
|
354
|
+
"delete",
|
|
355
|
+
"deletes",
|
|
356
|
+
"deleted",
|
|
357
|
+
"deleting",
|
|
358
|
+
"update",
|
|
359
|
+
"updates",
|
|
360
|
+
"updated",
|
|
361
|
+
"updating",
|
|
362
|
+
"change",
|
|
363
|
+
"changes",
|
|
364
|
+
"changed",
|
|
365
|
+
"changing",
|
|
366
|
+
"set",
|
|
367
|
+
"sets",
|
|
368
|
+
"setting",
|
|
369
|
+
"setup",
|
|
370
|
+
"get",
|
|
371
|
+
"gets",
|
|
372
|
+
"getting",
|
|
373
|
+
"use",
|
|
374
|
+
"uses",
|
|
375
|
+
"used",
|
|
376
|
+
"using",
|
|
377
|
+
"want",
|
|
378
|
+
"wants",
|
|
379
|
+
"wanted",
|
|
380
|
+
"do",
|
|
381
|
+
"does",
|
|
382
|
+
"doing",
|
|
383
|
+
"done",
|
|
384
|
+
"support",
|
|
385
|
+
"supports",
|
|
386
|
+
"supported",
|
|
387
|
+
"supporting",
|
|
388
|
+
"enable",
|
|
389
|
+
"enables",
|
|
390
|
+
"enabled",
|
|
391
|
+
"enabling",
|
|
392
|
+
"disable",
|
|
393
|
+
"disables",
|
|
394
|
+
"disabled",
|
|
395
|
+
"disabling",
|
|
396
|
+
"allow",
|
|
397
|
+
"allows",
|
|
398
|
+
"allowed",
|
|
399
|
+
"implement",
|
|
400
|
+
"implements",
|
|
401
|
+
"implemented",
|
|
402
|
+
"implementing",
|
|
403
|
+
"build",
|
|
404
|
+
"builds",
|
|
405
|
+
"building",
|
|
406
|
+
"built",
|
|
407
|
+
"via",
|
|
408
|
+
"through",
|
|
409
|
+
"into",
|
|
410
|
+
"onto",
|
|
411
|
+
"way",
|
|
412
|
+
"ways",
|
|
413
|
+
"thing",
|
|
414
|
+
"things",
|
|
415
|
+
"stuff",
|
|
416
|
+
"feature",
|
|
417
|
+
"features",
|
|
418
|
+
"functionality",
|
|
419
|
+
"method",
|
|
420
|
+
"methods",
|
|
421
|
+
"option",
|
|
422
|
+
"options",
|
|
423
|
+
"ability",
|
|
424
|
+
"help",
|
|
425
|
+
"start",
|
|
426
|
+
"begin",
|
|
427
|
+
"work",
|
|
428
|
+
"works",
|
|
429
|
+
"working",
|
|
430
|
+
"also",
|
|
431
|
+
"currently",
|
|
432
|
+
"properly",
|
|
433
|
+
"correctly",
|
|
434
|
+
"please",
|
|
435
|
+
"happens",
|
|
436
|
+
"happen",
|
|
437
|
+
"something",
|
|
438
|
+
"somewhere",
|
|
439
|
+
"step",
|
|
440
|
+
"steps",
|
|
441
|
+
"flow",
|
|
442
|
+
"process",
|
|
443
|
+
"you",
|
|
444
|
+
"can"
|
|
445
|
+
]);
|
|
446
|
+
var CONCEPTS = {
|
|
447
|
+
// ---- payments / billing ----
|
|
448
|
+
payment: ["stripe", "billing", "invoice", "checkout", "charge", "subscription", "refund", "payout", "card", "debit", "mandate"],
|
|
449
|
+
pay: ["payment", "stripe", "charge", "billing", "invoice"],
|
|
450
|
+
paid: ["payment", "invoice", "charge"],
|
|
451
|
+
billing: ["invoice", "payment", "subscription", "stripe", "charge", "renewal"],
|
|
452
|
+
checkout: ["stripe", "payment", "cart", "session"],
|
|
453
|
+
debit: ["mandate", "sepa", "bacs", "ach", "bank", "payment"],
|
|
454
|
+
mandate: ["sepa", "bacs", "debit"],
|
|
455
|
+
sepa: ["mandate", "debit", "iban", "bank"],
|
|
456
|
+
bacs: ["mandate", "debit", "bank"],
|
|
457
|
+
ach: ["mandate", "debit", "bank"],
|
|
458
|
+
stripe: ["payment", "billing", "checkout", "webhook", "charge", "card"],
|
|
459
|
+
refund: ["payment", "invoice", "stripe", "charge"],
|
|
460
|
+
invoice: ["billing", "payment", "refund", "subscription"],
|
|
461
|
+
subscription: ["billing", "renewal", "invoice", "plan", "recurring"],
|
|
462
|
+
recurring: ["subscription", "renewal", "mandate", "debit"],
|
|
463
|
+
renewal: ["subscription", "billing", "renew"],
|
|
464
|
+
card: ["payment", "charge", "stripe"],
|
|
465
|
+
credit: ["card", "payment", "charge"],
|
|
466
|
+
bank: ["debit", "mandate", "sepa", "iban", "account"],
|
|
467
|
+
charge: ["payment", "card", "stripe"],
|
|
468
|
+
webhook: ["event", "handler", "callback"],
|
|
469
|
+
price: ["payment", "billing", "plan"],
|
|
470
|
+
customer: ["billing", "account", "user"],
|
|
471
|
+
// ---- auth ----
|
|
472
|
+
auth: ["login", "session", "token", "oauth", "password", "credential"],
|
|
473
|
+
authentication: ["auth", "login", "session", "token", "password"],
|
|
474
|
+
authenticated: ["auth", "login", "session"],
|
|
475
|
+
login: ["auth", "session", "password", "signin", "oauth"],
|
|
476
|
+
signin: ["login", "auth", "session"],
|
|
477
|
+
signup: ["register", "onboard", "account"],
|
|
478
|
+
logout: ["session", "auth", "signout"],
|
|
479
|
+
password: ["auth", "login", "credential", "hash"],
|
|
480
|
+
session: ["auth", "login", "token"],
|
|
481
|
+
token: ["session", "auth", "jwt"],
|
|
482
|
+
oauth: ["auth", "login", "callback", "provider"],
|
|
483
|
+
google: ["oauth", "login", "auth"],
|
|
484
|
+
github: ["oauth", "login", "auth"],
|
|
485
|
+
sso: ["oauth", "auth", "saml", "login"],
|
|
486
|
+
credential: ["auth", "password", "token", "secret"],
|
|
487
|
+
// ---- dependencies / supply chain ----
|
|
488
|
+
dependency: ["package", "audit", "vulnerability", "advisory", "lockfile", "version"],
|
|
489
|
+
package: ["dependency", "audit", "vulnerability", "advisory", "lockfile"],
|
|
490
|
+
vulnerability: ["advisory", "cve", "osv", "audit", "vulnerable"],
|
|
491
|
+
vulnerable: ["vulnerability", "advisory", "audit", "cve"],
|
|
492
|
+
advisory: ["vulnerability", "cve", "osv", "audit"],
|
|
493
|
+
cve: ["vulnerability", "advisory", "osv"],
|
|
494
|
+
risk: ["vulnerability", "audit", "advisory"],
|
|
495
|
+
security: ["vulnerability", "audit", "advisory"],
|
|
496
|
+
audit: ["dependency", "vulnerability", "advisory"],
|
|
497
|
+
scan: ["audit", "vulnerability", "scanner"],
|
|
498
|
+
// ---- notifications / messaging ----
|
|
499
|
+
email: ["mail", "smtp", "sender", "template", "message"],
|
|
500
|
+
mail: ["email", "smtp", "sender"],
|
|
501
|
+
notification: ["notify", "email", "sms", "push", "alert"],
|
|
502
|
+
notify: ["notification", "email", "alert"],
|
|
503
|
+
sms: ["notification", "message", "twilio"],
|
|
504
|
+
// ---- e-commerce ----
|
|
505
|
+
cart: ["checkout", "order", "shop", "basket", "discount"],
|
|
506
|
+
basket: ["cart", "checkout", "order"],
|
|
507
|
+
order: ["cart", "shipment", "fulfillment", "shop", "checkout"],
|
|
508
|
+
ship: ["order", "fulfillment", "delivery", "shipment"],
|
|
509
|
+
shipment: ["order", "fulfillment", "delivery", "track"],
|
|
510
|
+
shipping: ["order", "fulfillment", "delivery", "shipment"],
|
|
511
|
+
shipped: ["order", "fulfillment", "shipment"],
|
|
512
|
+
inventory: ["stock", "product", "catalog", "restock"],
|
|
513
|
+
stock: ["inventory", "product", "restock"],
|
|
514
|
+
product: ["catalog", "inventory", "shop"],
|
|
515
|
+
discount: ["coupon", "promo", "cart", "price"],
|
|
516
|
+
coupon: ["discount", "promo", "code"],
|
|
517
|
+
// ---- chat / social ----
|
|
518
|
+
chat: ["message", "room", "conversation", "presence"],
|
|
519
|
+
message: ["chat", "sms", "notification", "thread"],
|
|
520
|
+
conversation: ["chat", "message", "thread"],
|
|
521
|
+
presence: ["online", "typing", "status"],
|
|
522
|
+
online: ["presence", "status"],
|
|
523
|
+
typing: ["presence", "indicator", "broadcast"],
|
|
524
|
+
// ---- media / streaming ----
|
|
525
|
+
video: ["media", "transcode", "playback", "stream", "thumbnail"],
|
|
526
|
+
stream: ["video", "playback", "manifest", "media"],
|
|
527
|
+
streaming: ["video", "playback", "manifest", "media"],
|
|
528
|
+
playback: ["video", "stream", "media", "watch"],
|
|
529
|
+
transcode: ["video", "media", "encode"],
|
|
530
|
+
thumbnail: ["video", "image", "media"],
|
|
531
|
+
media: ["video", "stream", "playback", "asset"],
|
|
532
|
+
// ---- analytics ----
|
|
533
|
+
analytics: ["event", "track", "metric", "funnel", "report"],
|
|
534
|
+
event: ["track", "analytics", "webhook"],
|
|
535
|
+
track: ["event", "analytics"],
|
|
536
|
+
funnel: ["conversion", "analytics", "event"],
|
|
537
|
+
conversion: ["funnel", "analytics"],
|
|
538
|
+
report: ["metrics", "export", "analytics"],
|
|
539
|
+
// ---- content / CMS ----
|
|
540
|
+
article: ["publish", "content", "post", "cms"],
|
|
541
|
+
publish: ["article", "release", "post", "content"],
|
|
542
|
+
post: ["article", "publish", "message"],
|
|
543
|
+
blog: ["article", "publish", "post", "cms"],
|
|
544
|
+
content: ["cms", "article", "markdown"],
|
|
545
|
+
markdown: ["render", "article", "content"],
|
|
546
|
+
cms: ["article", "content", "publish"],
|
|
547
|
+
// ---- CI / deployment ----
|
|
548
|
+
deploy: ["release", "rollback", "pipeline", "deployment"],
|
|
549
|
+
deployment: ["deploy", "release", "rollback", "pipeline"],
|
|
550
|
+
release: ["deploy", "version", "rollback"],
|
|
551
|
+
rollback: ["deploy", "release", "deployment"],
|
|
552
|
+
pipeline: ["stage", "deploy", "runner", "ci"],
|
|
553
|
+
canary: ["deploy", "rollout", "release"],
|
|
554
|
+
// ---- mobile ----
|
|
555
|
+
push: ["notification", "device", "token", "mobile"],
|
|
556
|
+
device: ["push", "token", "mobile", "register"],
|
|
557
|
+
deeplink: ["link", "route", "universal"],
|
|
558
|
+
mobile: ["push", "device", "deeplink", "app"],
|
|
559
|
+
ios: ["mobile", "universal", "link", "app"],
|
|
560
|
+
android: ["mobile", "push", "device", "app"],
|
|
561
|
+
// ---- batch / ETL / mainframe ----
|
|
562
|
+
batch: ["settlement", "job", "etl", "reconcile"],
|
|
563
|
+
settlement: ["batch", "reconcile", "ledger", "clearing"],
|
|
564
|
+
reconcile: ["ledger", "settlement", "batch"],
|
|
565
|
+
ledger: ["settlement", "reconcile", "balance", "journal"],
|
|
566
|
+
mainframe: ["batch", "settlement", "ebcdic", "cobol", "fixed"],
|
|
567
|
+
ebcdic: ["mainframe", "record", "convert", "legacy"],
|
|
568
|
+
cobol: ["mainframe", "batch", "ebcdic"],
|
|
569
|
+
etl: ["batch", "pipeline", "extract", "load", "transform"],
|
|
570
|
+
nightly: ["batch", "cron", "schedule", "job"],
|
|
571
|
+
// ---- geo / maps ----
|
|
572
|
+
geocode: ["address", "location", "map", "geo"],
|
|
573
|
+
address: ["geocode", "location"],
|
|
574
|
+
map: ["geo", "route", "location"],
|
|
575
|
+
route: ["distance", "path", "planner", "geo"],
|
|
576
|
+
distance: ["route", "haversine", "geo"],
|
|
577
|
+
location: ["geo", "geocode", "map"],
|
|
578
|
+
arrival: ["route", "eta", "estimate"],
|
|
579
|
+
// ---- i18n ----
|
|
580
|
+
translation: ["locale", "i18n", "language", "translate"],
|
|
581
|
+
translate: ["translation", "locale", "language"],
|
|
582
|
+
locale: ["translation", "i18n", "language", "format"],
|
|
583
|
+
i18n: ["translation", "locale", "language"],
|
|
584
|
+
language: ["locale", "translation", "i18n"],
|
|
585
|
+
localized: ["locale", "translation", "format"],
|
|
586
|
+
// ---- observability ----
|
|
587
|
+
metric: ["counter", "prometheus", "telemetry", "export"],
|
|
588
|
+
prometheus: ["metric", "exporter", "monitoring"],
|
|
589
|
+
trace: ["span", "telemetry", "observability"],
|
|
590
|
+
span: ["trace", "telemetry"],
|
|
591
|
+
monitoring: ["metric", "trace", "alert", "observability"],
|
|
592
|
+
telemetry: ["metric", "trace", "span"],
|
|
593
|
+
counter: ["metric", "increment"],
|
|
594
|
+
// ---- feature flags / experimentation ----
|
|
595
|
+
flag: ["feature", "rollout", "toggle", "experiment"],
|
|
596
|
+
rollout: ["flag", "percentage", "release", "experiment"],
|
|
597
|
+
toggle: ["flag", "feature", "switch"],
|
|
598
|
+
experiment: ["variant", "assign", "flag", "exposure"],
|
|
599
|
+
variant: ["experiment", "assign"],
|
|
600
|
+
// ---- generic infrastructure ----
|
|
601
|
+
database: ["schema", "migration", "sql", "query", "orm"],
|
|
602
|
+
db: ["database", "schema", "migration", "sql"],
|
|
603
|
+
migration: ["database", "schema", "migrate", "sql"],
|
|
604
|
+
cache: ["redis", "ttl", "store"],
|
|
605
|
+
queue: ["job", "worker", "task", "batch"],
|
|
606
|
+
job: ["queue", "worker", "cron"],
|
|
607
|
+
upload: ["file", "storage", "blob", "asset"],
|
|
608
|
+
storage: ["file", "upload", "bucket", "blob"],
|
|
609
|
+
permission: ["role", "rbac", "acl", "access", "grant"],
|
|
610
|
+
role: ["permission", "rbac", "access"],
|
|
611
|
+
error: ["exception", "failure", "handler"],
|
|
612
|
+
config: ["settings", "env", "configuration"]
|
|
613
|
+
};
|
|
614
|
+
var BIGRAM_CONCEPTS = {
|
|
615
|
+
"direct debit": ["debit", "mandate", "sepa", "bacs", "bank"],
|
|
616
|
+
"direct debits": ["debit", "mandate", "sepa", "bacs", "bank"],
|
|
617
|
+
"sign in": ["login", "signin", "auth", "session"],
|
|
618
|
+
"signs in": ["login", "signin", "auth", "session"],
|
|
619
|
+
"log in": ["login", "auth", "session"],
|
|
620
|
+
"logs in": ["login", "auth", "session"],
|
|
621
|
+
"logged in": ["login", "auth", "session"],
|
|
622
|
+
"sign up": ["signup", "register", "account"],
|
|
623
|
+
"credit card": ["card", "payment", "charge", "stripe"],
|
|
624
|
+
"credit cards": ["card", "payment", "charge", "stripe"],
|
|
625
|
+
"bank transfer": ["bank", "payment", "sepa", "transfer"],
|
|
626
|
+
"rate limit": ["ratelimit", "throttle", "quota"],
|
|
627
|
+
"two factor": ["totp", "mfa", "otp", "auth"],
|
|
628
|
+
"payment method": ["payment", "stripe", "card", "debit"],
|
|
629
|
+
"payment methods": ["payment", "stripe", "card", "debit"],
|
|
630
|
+
"push notification": ["push", "device", "token", "notification"],
|
|
631
|
+
"push notifications": ["push", "device", "token", "notification"],
|
|
632
|
+
"deep link": ["deeplink", "link", "route"],
|
|
633
|
+
"deep links": ["deeplink", "link", "route"],
|
|
634
|
+
"universal link": ["deeplink", "link", "universal"],
|
|
635
|
+
"universal links": ["deeplink", "link", "universal"],
|
|
636
|
+
"feature flag": ["flag", "rollout", "toggle", "experiment"],
|
|
637
|
+
"feature flags": ["flag", "rollout", "toggle", "experiment"],
|
|
638
|
+
"shopping cart": ["cart", "checkout", "order"],
|
|
639
|
+
"roll back": ["rollback", "deploy", "release"],
|
|
640
|
+
"rolled back": ["rollback", "deploy", "release"],
|
|
641
|
+
"ab test": ["experiment", "variant"],
|
|
642
|
+
"sign out": ["logout", "session", "auth"],
|
|
643
|
+
"fixed width": ["record", "export", "mainframe", "batch"]
|
|
644
|
+
};
|
|
645
|
+
function lexiconKey(token) {
|
|
646
|
+
if (token in CONCEPTS) return token;
|
|
647
|
+
if (token.endsWith("ies")) {
|
|
648
|
+
const singular = token.slice(0, -3) + "y";
|
|
649
|
+
if (singular in CONCEPTS) return singular;
|
|
650
|
+
}
|
|
651
|
+
if (token.endsWith("s")) {
|
|
652
|
+
const singular = token.slice(0, -1);
|
|
653
|
+
if (singular in CONCEPTS) return singular;
|
|
654
|
+
}
|
|
655
|
+
return null;
|
|
656
|
+
}
|
|
657
|
+
function expandConcepts(orderedTokens) {
|
|
658
|
+
const present = new Set(orderedTokens);
|
|
659
|
+
const out = [];
|
|
660
|
+
const emitted = /* @__PURE__ */ new Set();
|
|
661
|
+
const emit = (term, from) => {
|
|
662
|
+
if (present.has(term) || emitted.has(term)) return;
|
|
663
|
+
emitted.add(term);
|
|
664
|
+
out.push({ term, from });
|
|
665
|
+
};
|
|
666
|
+
for (let i = 0; i + 1 < orderedTokens.length; i++) {
|
|
667
|
+
const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;
|
|
668
|
+
const terms = BIGRAM_CONCEPTS[bigram];
|
|
669
|
+
if (terms) for (const t of terms) emit(t, bigram);
|
|
670
|
+
}
|
|
671
|
+
for (const token of orderedTokens) {
|
|
672
|
+
const key = lexiconKey(token);
|
|
673
|
+
if (key) for (const t of CONCEPTS[key]) emit(t, token);
|
|
674
|
+
}
|
|
675
|
+
return out;
|
|
676
|
+
}
|
|
677
|
+
function bigramConsumedTokens(orderedTokens) {
|
|
678
|
+
const consumed = /* @__PURE__ */ new Set();
|
|
679
|
+
for (let i = 0; i + 1 < orderedTokens.length; i++) {
|
|
680
|
+
const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;
|
|
681
|
+
if (!BIGRAM_CONCEPTS[bigram]) continue;
|
|
682
|
+
for (const tok of [orderedTokens[i], orderedTokens[i + 1]]) {
|
|
683
|
+
if (!lexiconKey(tok)) consumed.add(tok);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
return consumed;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
// src/engine/relevance-provider.ts
|
|
296
690
|
var MAX_PROVIDER_EXPANSIONS = 24;
|
|
297
691
|
function disabled() {
|
|
298
692
|
const v = process.env.VIBGRATE_NO_KERNEL;
|
|
@@ -411,6 +805,8 @@ var DEFAULT_GITIGNORE = [
|
|
|
411
805
|
"graph.json",
|
|
412
806
|
"graph.snap",
|
|
413
807
|
"graph.tags.snap",
|
|
808
|
+
// Binary semantic index next to the map (never model-named; never under cache/).
|
|
809
|
+
"embeddings",
|
|
414
810
|
"graph.html",
|
|
415
811
|
"GRAPH_REPORT.md",
|
|
416
812
|
"facts.jsonl",
|
|
@@ -580,7 +976,63 @@ async function loadTopicTags(graph, root, graphPath) {
|
|
|
580
976
|
writeSidecar(file, { provider: providerVersion, corpusHash }, record);
|
|
581
977
|
return tags;
|
|
582
978
|
}
|
|
979
|
+
var CACHE_VERSION = "vg-parse-cache/4";
|
|
980
|
+
function cacheDir(root) {
|
|
981
|
+
return path2.join(root, ".vibgrate", "cache");
|
|
982
|
+
}
|
|
983
|
+
function cachePath(root) {
|
|
984
|
+
return path2.join(cacheDir(root), "parse-cache.json");
|
|
985
|
+
}
|
|
986
|
+
function loadCache(root, opts) {
|
|
987
|
+
const file = cachePath(root);
|
|
988
|
+
let data = {
|
|
989
|
+
version: CACHE_VERSION,
|
|
990
|
+
toolVersion: opts.toolVersion,
|
|
991
|
+
grammars: opts.grammars,
|
|
992
|
+
entries: {}
|
|
993
|
+
};
|
|
994
|
+
if (!opts.disabled && fs3.existsSync(file)) {
|
|
995
|
+
try {
|
|
996
|
+
const loaded = JSON.parse(fs3.readFileSync(file, "utf8"));
|
|
997
|
+
if ((loaded.version === CACHE_VERSION || loaded.version === "vg-parse-cache/3") && loaded.toolVersion === opts.toolVersion && loaded.grammars === opts.grammars && loaded.entries) {
|
|
998
|
+
data = { ...loaded, version: CACHE_VERSION };
|
|
999
|
+
}
|
|
1000
|
+
} catch {
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
return {
|
|
1004
|
+
get(rel, hash) {
|
|
1005
|
+
const entry = data.entries[rel];
|
|
1006
|
+
return entry && entry.hash === hash ? entry.parse : void 0;
|
|
1007
|
+
},
|
|
1008
|
+
getByStat(rel, mtimeMs, size) {
|
|
1009
|
+
const entry = data.entries[rel];
|
|
1010
|
+
if (!entry) return void 0;
|
|
1011
|
+
if (entry.mtimeMs === mtimeMs && entry.size === size && entry.parse) {
|
|
1012
|
+
return { parse: entry.parse, hash: entry.hash };
|
|
1013
|
+
}
|
|
1014
|
+
return void 0;
|
|
1015
|
+
},
|
|
1016
|
+
set(rel, parse, stat) {
|
|
1017
|
+
data.entries[rel] = {
|
|
1018
|
+
hash: parse.hash,
|
|
1019
|
+
parse,
|
|
1020
|
+
mtimeMs: stat?.mtimeMs,
|
|
1021
|
+
size: stat?.size
|
|
1022
|
+
};
|
|
1023
|
+
},
|
|
1024
|
+
prune(currentRels) {
|
|
1025
|
+
for (const rel of Object.keys(data.entries)) {
|
|
1026
|
+
if (!currentRels.has(rel)) delete data.entries[rel];
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
save() {
|
|
1030
|
+
fs3.mkdirSync(cacheDir(root), { recursive: true });
|
|
1031
|
+
fs3.writeFileSync(file, stableStringify(data, 0));
|
|
1032
|
+
}
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
583
1035
|
|
|
584
|
-
export { analyzeQuestion, defaultGraphPath, ensureVibgrateGitignore, legacyGraphPath, loadGraphFileWithSnapshot, loadRelevanceProvider, loadTopicTags, mapFileExists, mapFileStat, preferInRepoGraph, relevanceModuleDir, renderHtml, renderReport, resetRelevanceProviderCache, resolveGraphPath, vibgrateDir, writeArtifacts };
|
|
585
|
-
//# sourceMappingURL=chunk-
|
|
586
|
-
//# sourceMappingURL=chunk-
|
|
1036
|
+
export { WEAK_TERMS, analyzeQuestion, bigramConsumedTokens, cacheDir, defaultGraphPath, ensureVibgrateGitignore, expandConcepts, legacyGraphPath, loadCache, loadGraphFileWithSnapshot, loadRelevanceProvider, loadTopicTags, mapFileExists, mapFileStat, parseGraph, preferInRepoGraph, relevanceModuleDir, renderHtml, renderReport, resetRelevanceProviderCache, resolveGraphPath, serializeGraph, slimGraphForExport, stableStringify, vibgrateDir, writeArtifacts };
|
|
1037
|
+
//# sourceMappingURL=chunk-K5GPEWPI.js.map
|
|
1038
|
+
//# sourceMappingURL=chunk-K5GPEWPI.js.map
|