@vibgrate/cli 2026.803.1 → 2026.803.4
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-WYBWUBCC.js +26 -0
- package/dist/{agent-HNV2VUCO.js.map → agent-WYBWUBCC.js.map} +1 -1
- package/dist/baseline-3HECX4Q6.js +9 -0
- package/dist/{baseline-6WTULHM5.js.map → baseline-3HECX4Q6.js.map} +1 -1
- package/dist/{chunk-FKFRASAB.js → chunk-23UPIFRU.js} +8 -8
- package/dist/{chunk-FKFRASAB.js.map → chunk-23UPIFRU.js.map} +1 -1
- package/dist/chunk-2A7XCANX.js +375 -0
- package/dist/chunk-2A7XCANX.js.map +1 -0
- package/dist/{chunk-AJ2KE3NT.js → chunk-4LGDQBYK.js} +14 -102
- package/dist/chunk-4LGDQBYK.js.map +1 -0
- package/dist/{chunk-B2KLJPFY.js → chunk-4ZMJKR74.js} +451 -22
- package/dist/chunk-4ZMJKR74.js.map +1 -0
- package/dist/{chunk-DIU3MXB3.js → chunk-537JBQVB.js} +4 -4
- package/dist/{chunk-DIU3MXB3.js.map → chunk-537JBQVB.js.map} +1 -1
- package/dist/{chunk-4HFSUIIN.js → chunk-5TS7N7J2.js} +59 -9
- package/dist/chunk-5TS7N7J2.js.map +1 -0
- package/dist/{chunk-BWMMR5XA.js → chunk-5WMFX7TY.js} +4 -4
- package/dist/{chunk-BWMMR5XA.js.map → chunk-5WMFX7TY.js.map} +1 -1
- package/dist/{chunk-SNKTD23L.js → chunk-66B4ZQA3.js} +9 -8
- package/dist/chunk-66B4ZQA3.js.map +1 -0
- package/dist/{chunk-536J6HUR.js → chunk-7BU7CWXC.js} +39 -12
- package/dist/chunk-7BU7CWXC.js.map +1 -0
- package/dist/{chunk-N4IDP2M2.js → chunk-7TOIESUT.js} +5 -4
- package/dist/chunk-7TOIESUT.js.map +1 -0
- package/dist/{chunk-CE45STY5.js → chunk-BRUMBQV7.js} +4 -4
- package/dist/{chunk-CE45STY5.js.map → chunk-BRUMBQV7.js.map} +1 -1
- package/dist/{chunk-CC6F75GI.js → chunk-BUCNKYTW.js} +5 -5
- package/dist/{chunk-CC6F75GI.js.map → chunk-BUCNKYTW.js.map} +1 -1
- package/dist/{chunk-2TLQDF6C.js → chunk-FAA7RBIG.js} +9 -9
- package/dist/{chunk-2TLQDF6C.js.map → chunk-FAA7RBIG.js.map} +1 -1
- package/dist/chunk-FZ5Y4KEI.js +6 -0
- package/dist/{chunk-QT2PMGN3.js.map → chunk-FZ5Y4KEI.js.map} +1 -1
- package/dist/{chunk-S4NSF5AZ.js → chunk-HBQC4XQJ.js} +6 -6
- package/dist/{chunk-S4NSF5AZ.js.map → chunk-HBQC4XQJ.js.map} +1 -1
- package/dist/{chunk-O7MTBC52.js → chunk-HVHCXM2E.js} +9 -9
- package/dist/{chunk-O7MTBC52.js.map → chunk-HVHCXM2E.js.map} +1 -1
- package/dist/{chunk-NJFQCDGA.js → chunk-INIULQEP.js} +3 -3
- package/dist/{chunk-NJFQCDGA.js.map → chunk-INIULQEP.js.map} +1 -1
- package/dist/{chunk-Y7YKUZ3T.js → chunk-JZGVUH57.js} +30 -10
- package/dist/chunk-JZGVUH57.js.map +1 -0
- package/dist/{chunk-JUSXLCSE.js → chunk-KFK7KCAH.js} +3 -3
- package/dist/{chunk-JUSXLCSE.js.map → chunk-KFK7KCAH.js.map} +1 -1
- package/dist/{chunk-6I4TXAI6.js → chunk-OVDL76LB.js} +3 -3
- package/dist/{chunk-6I4TXAI6.js.map → chunk-OVDL76LB.js.map} +1 -1
- package/dist/{chunk-SJFBXCII.js → chunk-QUI3E3TQ.js} +54 -9
- package/dist/chunk-QUI3E3TQ.js.map +1 -0
- package/dist/chunk-RBMKBYGV.js +102 -0
- package/dist/chunk-RBMKBYGV.js.map +1 -0
- package/dist/{chunk-5VH3Y4QC.js → chunk-TVRM57CE.js} +78 -381
- package/dist/chunk-TVRM57CE.js.map +1 -0
- package/dist/{chunk-BBFQZ7CA.js → chunk-UWVFLVZX.js} +4 -4
- package/dist/{chunk-BBFQZ7CA.js.map → chunk-UWVFLVZX.js.map} +1 -1
- package/dist/{chunk-6JP7HGIF.js → chunk-Y4JO6LYP.js} +3 -3
- package/dist/{chunk-6JP7HGIF.js.map → chunk-Y4JO6LYP.js.map} +1 -1
- package/dist/cli.js +555 -351
- package/dist/cli.js.map +1 -1
- package/dist/embed-worker-main.d.ts +2 -0
- package/dist/embed-worker-main.js +64 -0
- package/dist/embed-worker-main.js.map +1 -0
- package/dist/ensure-map-DZ53QXRT.js +31 -0
- package/dist/{ensure-map-5YEI7R7V.js.map → ensure-map-DZ53QXRT.js.map} +1 -1
- package/dist/graph-backend-3A2M22QN.js +13 -0
- package/dist/{graph-backend-CPHLUKUC.js.map → graph-backend-3A2M22QN.js.map} +1 -1
- package/dist/index.d.ts +27 -2
- package/dist/index.js +16 -14
- package/dist/index.js.map +1 -1
- package/dist/{interactive-TNRE4OEK.js → interactive-DB7IC3BL.js} +35 -29
- package/dist/interactive-DB7IC3BL.js.map +1 -0
- package/dist/load-6KVGUQMU.js +11 -0
- package/dist/{load-MWG6WZTK.js.map → load-6KVGUQMU.js.map} +1 -1
- package/dist/{run-outcome-375HMSQG.js → run-outcome-YOYRC32U.js} +7 -6
- package/dist/run-outcome-YOYRC32U.js.map +1 -0
- package/dist/runtime-session-XEP7IPGP.js +22 -0
- package/dist/{runtime-session-3MPWXNRL.js.map → runtime-session-XEP7IPGP.js.map} +1 -1
- package/dist/session-5WKEACIF.js +17 -0
- package/dist/{session-2NGJLI5Y.js.map → session-5WKEACIF.js.map} +1 -1
- package/dist/{stream-json-AUMU3NLV.js → stream-json-3OJCPBWY.js} +13 -11
- package/dist/stream-json-3OJCPBWY.js.map +1 -0
- package/dist/{vg-mcp-bridge-D463EHQI.js → vg-mcp-bridge-PM3C4FQL.js} +12 -10
- package/dist/vg-mcp-bridge-PM3C4FQL.js.map +1 -0
- package/dist/{vgd-Z23PXSP4.js → vgd-UTLMMPIZ.js} +12 -10
- package/dist/vgd-UTLMMPIZ.js.map +1 -0
- package/package.json +1 -1
- package/scripts/postinstall.mjs +22 -1
- package/dist/agent-HNV2VUCO.js +0 -24
- package/dist/baseline-6WTULHM5.js +0 -9
- package/dist/chunk-4HFSUIIN.js.map +0 -1
- package/dist/chunk-536J6HUR.js.map +0 -1
- package/dist/chunk-5VH3Y4QC.js.map +0 -1
- package/dist/chunk-AJ2KE3NT.js.map +0 -1
- package/dist/chunk-B2KLJPFY.js.map +0 -1
- package/dist/chunk-N4IDP2M2.js.map +0 -1
- package/dist/chunk-QT2PMGN3.js +0 -6
- package/dist/chunk-SJFBXCII.js.map +0 -1
- package/dist/chunk-SNKTD23L.js.map +0 -1
- package/dist/chunk-Y7YKUZ3T.js.map +0 -1
- package/dist/ensure-map-5YEI7R7V.js +0 -29
- package/dist/graph-backend-CPHLUKUC.js +0 -11
- package/dist/interactive-TNRE4OEK.js.map +0 -1
- package/dist/load-MWG6WZTK.js +0 -10
- package/dist/run-outcome-375HMSQG.js.map +0 -1
- package/dist/runtime-session-3MPWXNRL.js +0 -20
- package/dist/session-2NGJLI5Y.js +0 -15
- package/dist/stream-json-AUMU3NLV.js.map +0 -1
- package/dist/vg-mcp-bridge-D463EHQI.js.map +0 -1
- package/dist/vgd-Z23PXSP4.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/engine/concepts.ts"],"names":[],"mappings":"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","file":"chunk-4LGDQBYK.js","sourcesContent":["/**\n * Term roles and deterministic concept expansion for `vg ask` / Task Capsule\n * seed ranking (engine/query.ts).\n *\n * Two failure modes motivated this module (field report, 2026-07):\n *\n * 1. Weak process verbs dominated intent asks. \"what do i need to do to add\n * payments via direct debit?\" seeded every `add*` symbol in the repo\n * (`addTeamMember`, `AddBlogForm`, `submitAdd`, …) because \"add\" scored on\n * equal footing with \"debit\". Verbs that describe the ACTION the caller\n * wants (\"add\", \"create\", \"via\") are not the TOPIC being asked about — they\n * may corroborate a topic match but must never be a seed's sole evidence.\n *\n * 2. No conceptual pull. \"payments\" never reached `StripeGateway` /\n * `InvoiceService` unless a symbol literally contained \"payment\". A small,\n * static, product-domain lexicon (payments → stripe/billing/invoice/…,\n * \"direct debit\" → sepa/bacs/mandate) closes the gap deterministically —\n * no embeddings, no network, stable across runs.\n *\n * Everything here is pure data + pure functions: same question in, same\n * expansion out, so capsule ranking stays benchmarkable and pinnable.\n */\n\n/**\n * Process verbs and feature-request scaffolding: words that describe what the\n * caller wants DONE, not what the code is ABOUT. They still contribute score\n * (down-weighted) to nodes that independently match a content term, but a node\n * matching only weak terms is suppressed — that is exactly the `add*` grab-bag\n * failure. Distinct from STOPWORDS (which are dropped outright): a weak term\n * still corroborates (\"add … to scanDir\" boosts an `addEntry` sibling of a\n * scanDir hit), it just cannot carry a seed alone.\n */\nexport const WEAK_TERMS = new Set([\n 'add', 'adds', 'added', 'adding',\n 'create', 'creates', 'created', 'creating',\n 'make', 'makes', 'making', 'made',\n 'new', 'newly',\n 'remove', 'removes', 'removed', 'removing',\n 'delete', 'deletes', 'deleted', 'deleting',\n 'update', 'updates', 'updated', 'updating',\n 'change', 'changes', 'changed', 'changing',\n 'set', 'sets', 'setting', 'setup',\n 'get', 'gets', 'getting',\n 'use', 'uses', 'used', 'using',\n 'want', 'wants', 'wanted',\n 'do', 'does', 'doing', 'done',\n 'support', 'supports', 'supported', 'supporting',\n 'enable', 'enables', 'enabled', 'enabling',\n 'disable', 'disables', 'disabled', 'disabling',\n 'allow', 'allows', 'allowed',\n 'implement', 'implements', 'implemented', 'implementing',\n 'build', 'builds', 'building', 'built',\n 'via', 'through', 'into', 'onto',\n 'way', 'ways', 'thing', 'things', 'stuff',\n 'feature', 'features', 'functionality',\n 'method', 'methods', 'option', 'options', 'ability',\n 'help', 'start', 'begin', 'work', 'works', 'working',\n 'also', 'currently', 'properly', 'correctly', 'please',\n 'happens', 'happen', 'something', 'somewhere',\n 'step', 'steps', 'flow', 'process',\n 'you', 'can',\n]);\n\n/**\n * Product-domain concept lexicon: question token → identifier vocabulary that\n * OWNS the concept in real codebases. Expansion terms score at a reduced tier\n * (EXPANSION_WEIGHT in query.ts) and count as content evidence, with the\n * provenance kept in the seed's `why` (`payments→stripe`).\n *\n * Keep entries conservative: every value should be a word a maintainer would\n * plausibly put in an identifier or directory name for that concept. Do not\n * add framing words (\"code\", \"logic\") — they are stopwords, not concepts.\n */\nconst CONCEPTS: Record<string, readonly string[]> = {\n // ---- payments / billing ----\n payment: ['stripe', 'billing', 'invoice', 'checkout', 'charge', 'subscription', 'refund', 'payout', 'card', 'debit', 'mandate'],\n pay: ['payment', 'stripe', 'charge', 'billing', 'invoice'],\n paid: ['payment', 'invoice', 'charge'],\n billing: ['invoice', 'payment', 'subscription', 'stripe', 'charge', 'renewal'],\n checkout: ['stripe', 'payment', 'cart', 'session'],\n debit: ['mandate', 'sepa', 'bacs', 'ach', 'bank', 'payment'],\n mandate: ['sepa', 'bacs', 'debit'],\n sepa: ['mandate', 'debit', 'iban', 'bank'],\n bacs: ['mandate', 'debit', 'bank'],\n ach: ['mandate', 'debit', 'bank'],\n stripe: ['payment', 'billing', 'checkout', 'webhook', 'charge', 'card'],\n refund: ['payment', 'invoice', 'stripe', 'charge'],\n invoice: ['billing', 'payment', 'refund', 'subscription'],\n subscription: ['billing', 'renewal', 'invoice', 'plan', 'recurring'],\n recurring: ['subscription', 'renewal', 'mandate', 'debit'],\n renewal: ['subscription', 'billing', 'renew'],\n card: ['payment', 'charge', 'stripe'],\n credit: ['card', 'payment', 'charge'],\n bank: ['debit', 'mandate', 'sepa', 'iban', 'account'],\n charge: ['payment', 'card', 'stripe'],\n webhook: ['event', 'handler', 'callback'],\n price: ['payment', 'billing', 'plan'],\n customer: ['billing', 'account', 'user'],\n // ---- auth ----\n auth: ['login', 'session', 'token', 'oauth', 'password', 'credential'],\n authentication: ['auth', 'login', 'session', 'token', 'password'],\n authenticated: ['auth', 'login', 'session'],\n login: ['auth', 'session', 'password', 'signin', 'oauth'],\n signin: ['login', 'auth', 'session'],\n signup: ['register', 'onboard', 'account'],\n logout: ['session', 'auth', 'signout'],\n password: ['auth', 'login', 'credential', 'hash'],\n session: ['auth', 'login', 'token'],\n token: ['session', 'auth', 'jwt'],\n oauth: ['auth', 'login', 'callback', 'provider'],\n google: ['oauth', 'login', 'auth'],\n github: ['oauth', 'login', 'auth'],\n sso: ['oauth', 'auth', 'saml', 'login'],\n credential: ['auth', 'password', 'token', 'secret'],\n // ---- dependencies / supply chain ----\n dependency: ['package', 'audit', 'vulnerability', 'advisory', 'lockfile', 'version'],\n package: ['dependency', 'audit', 'vulnerability', 'advisory', 'lockfile'],\n vulnerability: ['advisory', 'cve', 'osv', 'audit', 'vulnerable'],\n vulnerable: ['vulnerability', 'advisory', 'audit', 'cve'],\n advisory: ['vulnerability', 'cve', 'osv', 'audit'],\n cve: ['vulnerability', 'advisory', 'osv'],\n risk: ['vulnerability', 'audit', 'advisory'],\n security: ['vulnerability', 'audit', 'advisory'],\n audit: ['dependency', 'vulnerability', 'advisory'],\n scan: ['audit', 'vulnerability', 'scanner'],\n // ---- notifications / messaging ----\n email: ['mail', 'smtp', 'sender', 'template', 'message'],\n mail: ['email', 'smtp', 'sender'],\n notification: ['notify', 'email', 'sms', 'push', 'alert'],\n notify: ['notification', 'email', 'alert'],\n sms: ['notification', 'message', 'twilio'],\n // ---- e-commerce ----\n cart: ['checkout', 'order', 'shop', 'basket', 'discount'],\n basket: ['cart', 'checkout', 'order'],\n order: ['cart', 'shipment', 'fulfillment', 'shop', 'checkout'],\n ship: ['order', 'fulfillment', 'delivery', 'shipment'],\n shipment: ['order', 'fulfillment', 'delivery', 'track'],\n shipping: ['order', 'fulfillment', 'delivery', 'shipment'],\n shipped: ['order', 'fulfillment', 'shipment'],\n inventory: ['stock', 'product', 'catalog', 'restock'],\n stock: ['inventory', 'product', 'restock'],\n product: ['catalog', 'inventory', 'shop'],\n discount: ['coupon', 'promo', 'cart', 'price'],\n coupon: ['discount', 'promo', 'code'],\n // ---- chat / social ----\n chat: ['message', 'room', 'conversation', 'presence'],\n message: ['chat', 'sms', 'notification', 'thread'],\n conversation: ['chat', 'message', 'thread'],\n presence: ['online', 'typing', 'status'],\n online: ['presence', 'status'],\n typing: ['presence', 'indicator', 'broadcast'],\n // ---- media / streaming ----\n video: ['media', 'transcode', 'playback', 'stream', 'thumbnail'],\n stream: ['video', 'playback', 'manifest', 'media'],\n streaming: ['video', 'playback', 'manifest', 'media'],\n playback: ['video', 'stream', 'media', 'watch'],\n transcode: ['video', 'media', 'encode'],\n thumbnail: ['video', 'image', 'media'],\n media: ['video', 'stream', 'playback', 'asset'],\n // ---- analytics ----\n analytics: ['event', 'track', 'metric', 'funnel', 'report'],\n event: ['track', 'analytics', 'webhook'],\n track: ['event', 'analytics'],\n funnel: ['conversion', 'analytics', 'event'],\n conversion: ['funnel', 'analytics'],\n report: ['metrics', 'export', 'analytics'],\n // ---- content / CMS ----\n article: ['publish', 'content', 'post', 'cms'],\n publish: ['article', 'release', 'post', 'content'],\n post: ['article', 'publish', 'message'],\n blog: ['article', 'publish', 'post', 'cms'],\n content: ['cms', 'article', 'markdown'],\n markdown: ['render', 'article', 'content'],\n cms: ['article', 'content', 'publish'],\n // ---- CI / deployment ----\n deploy: ['release', 'rollback', 'pipeline', 'deployment'],\n deployment: ['deploy', 'release', 'rollback', 'pipeline'],\n release: ['deploy', 'version', 'rollback'],\n rollback: ['deploy', 'release', 'deployment'],\n pipeline: ['stage', 'deploy', 'runner', 'ci'],\n canary: ['deploy', 'rollout', 'release'],\n // ---- mobile ----\n push: ['notification', 'device', 'token', 'mobile'],\n device: ['push', 'token', 'mobile', 'register'],\n deeplink: ['link', 'route', 'universal'],\n mobile: ['push', 'device', 'deeplink', 'app'],\n ios: ['mobile', 'universal', 'link', 'app'],\n android: ['mobile', 'push', 'device', 'app'],\n // ---- batch / ETL / mainframe ----\n batch: ['settlement', 'job', 'etl', 'reconcile'],\n settlement: ['batch', 'reconcile', 'ledger', 'clearing'],\n reconcile: ['ledger', 'settlement', 'batch'],\n ledger: ['settlement', 'reconcile', 'balance', 'journal'],\n mainframe: ['batch', 'settlement', 'ebcdic', 'cobol', 'fixed'],\n ebcdic: ['mainframe', 'record', 'convert', 'legacy'],\n cobol: ['mainframe', 'batch', 'ebcdic'],\n etl: ['batch', 'pipeline', 'extract', 'load', 'transform'],\n nightly: ['batch', 'cron', 'schedule', 'job'],\n // ---- geo / maps ----\n geocode: ['address', 'location', 'map', 'geo'],\n address: ['geocode', 'location'],\n map: ['geo', 'route', 'location'],\n route: ['distance', 'path', 'planner', 'geo'],\n distance: ['route', 'haversine', 'geo'],\n location: ['geo', 'geocode', 'map'],\n arrival: ['route', 'eta', 'estimate'],\n // ---- i18n ----\n translation: ['locale', 'i18n', 'language', 'translate'],\n translate: ['translation', 'locale', 'language'],\n locale: ['translation', 'i18n', 'language', 'format'],\n i18n: ['translation', 'locale', 'language'],\n language: ['locale', 'translation', 'i18n'],\n localized: ['locale', 'translation', 'format'],\n // ---- observability ----\n metric: ['counter', 'prometheus', 'telemetry', 'export'],\n prometheus: ['metric', 'exporter', 'monitoring'],\n trace: ['span', 'telemetry', 'observability'],\n span: ['trace', 'telemetry'],\n monitoring: ['metric', 'trace', 'alert', 'observability'],\n telemetry: ['metric', 'trace', 'span'],\n counter: ['metric', 'increment'],\n // ---- feature flags / experimentation ----\n flag: ['feature', 'rollout', 'toggle', 'experiment'],\n rollout: ['flag', 'percentage', 'release', 'experiment'],\n toggle: ['flag', 'feature', 'switch'],\n experiment: ['variant', 'assign', 'flag', 'exposure'],\n variant: ['experiment', 'assign'],\n // ---- generic infrastructure ----\n database: ['schema', 'migration', 'sql', 'query', 'orm'],\n db: ['database', 'schema', 'migration', 'sql'],\n migration: ['database', 'schema', 'migrate', 'sql'],\n cache: ['redis', 'ttl', 'store'],\n queue: ['job', 'worker', 'task', 'batch'],\n job: ['queue', 'worker', 'cron'],\n upload: ['file', 'storage', 'blob', 'asset'],\n storage: ['file', 'upload', 'bucket', 'blob'],\n permission: ['role', 'rbac', 'acl', 'access', 'grant'],\n role: ['permission', 'rbac', 'access'],\n error: ['exception', 'failure', 'handler'],\n config: ['settings', 'env', 'configuration'],\n};\n\n/**\n * Adjacent-word concepts: phrases whose meaning is NOT the sum of their\n * tokens. \"direct debit\" is a payments concept; \"direct\" alone is a URL /\n * filesystem word (`validDirectUrl`, `directoryListing` — real distractors\n * from the field report). Detected over the RAW ordered token stream, before\n * stopword filtering, so \"sign in\" / \"log in\" survive.\n */\nconst BIGRAM_CONCEPTS: Record<string, readonly string[]> = {\n 'direct debit': ['debit', 'mandate', 'sepa', 'bacs', 'bank'],\n 'direct debits': ['debit', 'mandate', 'sepa', 'bacs', 'bank'],\n 'sign in': ['login', 'signin', 'auth', 'session'],\n 'signs in': ['login', 'signin', 'auth', 'session'],\n 'log in': ['login', 'auth', 'session'],\n 'logs in': ['login', 'auth', 'session'],\n 'logged in': ['login', 'auth', 'session'],\n 'sign up': ['signup', 'register', 'account'],\n 'credit card': ['card', 'payment', 'charge', 'stripe'],\n 'credit cards': ['card', 'payment', 'charge', 'stripe'],\n 'bank transfer': ['bank', 'payment', 'sepa', 'transfer'],\n 'rate limit': ['ratelimit', 'throttle', 'quota'],\n 'two factor': ['totp', 'mfa', 'otp', 'auth'],\n 'payment method': ['payment', 'stripe', 'card', 'debit'],\n 'payment methods': ['payment', 'stripe', 'card', 'debit'],\n 'push notification': ['push', 'device', 'token', 'notification'],\n 'push notifications': ['push', 'device', 'token', 'notification'],\n 'deep link': ['deeplink', 'link', 'route'],\n 'deep links': ['deeplink', 'link', 'route'],\n 'universal link': ['deeplink', 'link', 'universal'],\n 'universal links': ['deeplink', 'link', 'universal'],\n 'feature flag': ['flag', 'rollout', 'toggle', 'experiment'],\n 'feature flags': ['flag', 'rollout', 'toggle', 'experiment'],\n 'shopping cart': ['cart', 'checkout', 'order'],\n 'roll back': ['rollback', 'deploy', 'release'],\n 'rolled back': ['rollback', 'deploy', 'release'],\n 'ab test': ['experiment', 'variant'],\n 'sign out': ['logout', 'session', 'auth'],\n 'fixed width': ['record', 'export', 'mainframe', 'batch'],\n};\n\nexport interface ConceptExpansion {\n /** The expansion vocabulary term to score against symbol names. */\n term: string;\n /** The question token (or bigram) that produced it — kept for `why`. */\n from: string;\n}\n\n/** Singularize the trivial English plurals that show up in questions. */\nfunction lexiconKey(token: string): string | null {\n if (token in CONCEPTS) return token;\n if (token.endsWith('ies')) {\n const singular = token.slice(0, -3) + 'y';\n if (singular in CONCEPTS) return singular;\n }\n if (token.endsWith('s')) {\n const singular = token.slice(0, -1);\n if (singular in CONCEPTS) return singular;\n }\n return null;\n}\n\n/**\n * Expand a question's ordered, lowercased token stream (stopwords INCLUDED —\n * bigrams like \"sign in\" need them) into concept vocabulary. Deterministic:\n * output order follows first appearance in the question, then lexicon order.\n * Tokens already present in the question are not re-emitted as expansions.\n */\nexport function expandConcepts(orderedTokens: string[]): ConceptExpansion[] {\n const present = new Set(orderedTokens);\n const out: ConceptExpansion[] = [];\n const emitted = new Set<string>();\n const emit = (term: string, from: string) => {\n if (present.has(term) || emitted.has(term)) return;\n emitted.add(term);\n out.push({ term, from });\n };\n\n for (let i = 0; i + 1 < orderedTokens.length; i++) {\n const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;\n const terms = BIGRAM_CONCEPTS[bigram];\n if (terms) for (const t of terms) emit(t, bigram);\n }\n for (const token of orderedTokens) {\n const key = lexiconKey(token);\n if (key) for (const t of CONCEPTS[key]!) emit(t, token);\n }\n return out;\n}\n\n/**\n * Tokens CONSUMED by a fired bigram concept that carry no standalone domain\n * meaning of their own — \"direct\" in \"direct debit\", \"sign\" in \"sign in\".\n * The bigram's expansion vocabulary re-supplies the topical words (debit,\n * mandate, login, …), so the consumed token must stop acting as independent\n * content evidence: left at full weight it seeds every `directGet`/\n * `redirectUrl`/`directoryListing` in the repo — the exact distractor set the\n * BIGRAM_CONCEPTS comment above documents. A constituent that is itself a\n * lexicon concept (\"debit\", \"card\") keeps its content role.\n */\nexport function bigramConsumedTokens(orderedTokens: string[]): Set<string> {\n const consumed = new Set<string>();\n for (let i = 0; i + 1 < orderedTokens.length; i++) {\n const bigram = `${orderedTokens[i]} ${orderedTokens[i + 1]}`;\n if (!BIGRAM_CONCEPTS[bigram]) continue;\n for (const tok of [orderedTokens[i], orderedTokens[i + 1]]) {\n if (!lexiconKey(tok)) consumed.add(tok);\n }\n }\n return consumed;\n}\n"]}
|