docuvia 1.8.6 → 1.8.7
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/ast-worker.js +1 -1
- package/dist/chunk-4KT3OZ27.js +99 -0
- package/dist/chunk-4KT3OZ27.js.map +1 -0
- package/dist/{chunk-ZROS4Z3Z.js → chunk-CKZSIZVE.js} +2 -2
- package/dist/{chunk-6IZXMRME.js → chunk-NQZ3CJJN.js} +2 -2
- package/dist/{chunk-YKSTASHC.js → chunk-QX3JUZPX.js} +2 -2
- package/dist/cli.js +80 -80
- package/dist/cli.js.map +1 -1
- package/dist/fs-utils-PPNBYT6I.js +3 -0
- package/dist/{init-templates-62WJOWDV.js → init-templates-OIVOWDGN.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-H24ZJ4BD.js +0 -99
- package/dist/chunk-H24ZJ4BD.js.map +0 -1
- package/dist/fs-utils-PBXD64EA.js +0 -3
- /package/dist/{chunk-ZROS4Z3Z.js.map → chunk-CKZSIZVE.js.map} +0 -0
- /package/dist/{chunk-6IZXMRME.js.map → chunk-NQZ3CJJN.js.map} +0 -0
- /package/dist/{chunk-YKSTASHC.js.map → chunk-QX3JUZPX.js.map} +0 -0
- /package/dist/{fs-utils-PBXD64EA.js.map → fs-utils-PPNBYT6I.js.map} +0 -0
- /package/dist/{init-templates-62WJOWDV.js.map → init-templates-OIVOWDGN.js.map} +0 -0
package/dist/ast-worker.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c,d as a,e as y,f as _,h as T}from"./chunk-
|
|
2
|
+
import{c,d as a,e as y,f as _,h as T}from"./chunk-CKZSIZVE.js";import{d as L,ea as P,ha as E}from"./chunk-4KT3OZ27.js";import"./chunk-KVOCOCYJ.js";import{parentPort as N}from"worker_threads";import{Parser as w,Language as U}from"web-tree-sitter";import*as O from"path";import*as D from"fs";import{createHash as H}from"crypto";function h(e){return H(P).update(e.text).digest("hex")}var x=new L(e=>N?.postMessage(e));process.on("uncaughtException",e=>{x.error(a.WORKER_UNCAUGHT_EXCEPTION,{error:e instanceof Error?e.message:String(e)})});process.on("unhandledRejection",e=>{x.error(a.WORKER_UNHANDLED_REJECTION,{error:e instanceof Error?e.message:String(e)})});var S=!1,b=null;function G(){return b??=_(),b}var C=new Map;function K(e){let t=C.get(e);return t||(t=U.load(e),C.set(e,t)),t}function Y(e){let t=[],n=e.matchAll(/import\s+{([^}]+)}\s+from\s+['"]([^'"]+)['"]/g);for(let r of n)t.push({localName:r[1].trim(),originalName:r[1].trim(),modulePath:r[2]});return t}function F(e){return e.childForFieldName("name")?.text||e.descendantsOfType("identifier")[0]?.text||a.ANONYMOUS_NAME}function Q(e){let t=e.childForFieldName("declarator")?.childForFieldName("declarator");if(t)return t.type===c.QUALIFIED_IDENTIFIER?t.childForFieldName("name")?.text??a.ANONYMOUS_NAME:t.text}function V(e){let t=e.childForFieldName("name");if(t)return t.text;let n=Q(e);if(n)return n;let r=new Set([c.VARIABLE_DECLARATOR,c.ASSIGNMENT_EXPRESSION,c.PAIR,c.PUBLIC_FIELD_DEFINITION]),o=e.parent;for(;o&&o.type!==c.ARGUMENTS;){if(r.has(o.type)){let s=o.childForFieldName("name")||o.childForFieldName("key")||o.childForFieldName("left");if(s)return s.text}o=o.parent}return a.ANONYMOUS_NAME}function W(e){return e.childForFieldName("function")||e.childForFieldName("expression")||e.childForFieldName("type")||e.childForFieldName("name")||e.childForFieldName("method")||e}function J(e){let t=W(e),n=t.namedChildren,r=n[n.length-1],o=n.length>=2?n[n.length-2]:void 0;if(!r||!o)return{targetFunction:f(t.text),calleeName:t.text,calleeKind:"bare"};if(!j.has(r.type))return{targetFunction:f(t.text),calleeKind:"computed"};let s=r.text,i=o.text;return i.includes("(")?{targetFunction:f(t.text),calleeName:s,receiverText:i,calleeKind:"arg-chain"}:{targetFunction:f(t.text),calleeName:s,receiverText:i,calleeKind:i==="this"||i==="super"?"this":"member"}}function f(e){return e.replace(/\s+/g,"")}var j=new Set(["identifier","property_identifier","field_identifier","shorthand_property_identifier","attribute"]);function B(e){return((e.childForFieldName("property")||e.childForFieldName("field")||e.childForFieldName("attribute")||e.childForFieldName("name")||e.childForFieldName("method"))??e).startPosition}function g(e,t){let n=e.parent;for(;n;){if(t.has(n.id))return F(n);n=n.parent}return a.ANONYMOUS_NAME}function v(e){return e.type===c.TYPE_IDENTIFIER?e.text:e.descendantsOfType(c.TYPE_IDENTIFIER)[0]?.text}function X(e){let t=e.parent;for(;t;){if(t.type===c.IMPL_ITEM){let n=t.childForFieldName("type");return n?v(n):void 0}t=t.parent}}function z(e){let n=e.childForFieldName("receiver")?.namedChild(0)?.childForFieldName("type");return n?v(n):void 0}function Z(e){let n=e.childForFieldName("declarator")?.childForFieldName("declarator");if(n?.type!==c.QUALIFIED_IDENTIFIER)return;let r=n.childForFieldName("scope");if(r)return r.type===c.QUALIFIED_IDENTIFIER?r.childForFieldName("name")?.text:r.text}function $(e){return X(e)??z(e)??Z(e)}function q(e,t,n){let r=t.extractClasses(e.rootNode);for(let o of r)n.push({name:F(o),startLine:o.startPosition.row,endLine:o.endPosition.row,methods:[],contentHash:h(o)});return r}var ee=new Set(["arrow_function","function_expression"]);function te(e,t,n){let r=t.extractVariables?.(e.rootNode)??[];for(let o of r){let s=o.childForFieldName("value");s&&ee.has(s.type)||n.push({name:F(o),startLine:o.startPosition.row,endLine:o.endPosition.row,contentHash:h(o)})}return r}function ne(e,t,n,r){let o=new Set(r.map(i=>i.id)),s=t.extractFunctions(e.rootNode);for(let i of s){let d=g(i,o),l=d===a.ANONYMOUS_NAME?$(i):d;n.push({name:V(i),startLine:i.startPosition.row,endLine:i.endPosition.row,contentHash:h(i),containerName:l})}return s}function re(e,t,n,r){let o=new Set(n.map(i=>i.id)),s=t.extractCalls(e.rootNode);for(let i of s){if(r.length>=1e3)break;let d=B(i),l=J(i);r.push({sourceFunction:g(i,o),targetFunction:l.targetFunction,startLine:d.row,startColumn:d.column,calleeName:l.calleeName,receiverText:l.receiverText,calleeKind:l.calleeKind})}}function oe(e,t,n,r){if(!t.extractImplements)return;let o=new Set(n.map(s=>s.id));for(let s of t.extractImplements(e.rootNode))r.push({sourceClass:g(s,o),targetInterface:s.text})}function se(e,t,n,r){if(!t.extractExtends)return;let o=new Set(n.map(s=>s.id));for(let s of t.extractExtends(e.rootNode))r.push({sourceClass:g(s,o),targetClass:s.text})}var ie=new Set([E.TYPESCRIPT,E.JAVASCRIPT]),ae="Worker",ce="path",le="resolve",de="join",ue="__dirname";function me(e){if(e.type!=="call_expression")return!1;let t=e.childForFieldName("function");if(!t||t.type!=="member_expression")return!1;let n=t.childForFieldName("object")?.text,r=t.childForFieldName("property")?.text;return n===ce&&(r===le||r===de)}function ge(e){let t=e.childForFieldName("arguments");return!t||!t.namedChildren.some(o=>o?.type==="identifier"&&o.text===ue)?void 0:t.descendantsOfType("string")[0]?.text.replace(/['"]/g,"")}function pe(e,t){for(let n of e.rootNode.descendantsOfType(c.ASSIGNMENT_EXPRESSION)){if(!n)continue;let r=n.childForFieldName("left"),o=n.childForFieldName("right");if(r?.text!==t||!o||!me(o))continue;let s=ge(o);if(s)return s}}function fe(e,t){if(t.type==="string")return t.text.replace(/['"]/g,"");if(t.type==="identifier"||t.type==="member_expression")return pe(e,t.text)}function Ne(e,t,n,r){if(!ie.has(t))return;let o=new Set(n.map(s=>s.id));for(let s of e.rootNode.descendantsOfType("new_expression")){if(!s||s.childForFieldName("constructor")?.text!==ae)continue;let l=s.childForFieldName("arguments")?.namedChildren.find(p=>p!==null);if(!l)continue;let m=fe(e,l);m&&r.push({sourceFunction:g(s,o),targetPath:m})}}function Ee(e,t,n){let r=[],o=[],s=[],i=[],d=[],l=[],m=[],p=[],A=[],I=[];if(e){r.push(a.parsedViaTreeSitter(e.rootNode.childCount));try{let u=q(e,t,d),R=ne(e,t,i,u),M=t.extractImports(e.rootNode);o.push(...y(M)),te(e,t,l),re(e,t,R,m),oe(e,t,u,p),se(e,t,u,A),Ne(e,n,R,I),r.push(a.QUERIED_VIA_LANGUAGE_PROVIDER)}catch(u){r.push(a.providerQueryFailed(u instanceof Error?u.message:String(u)))}}return{imports:o,exports:s,functions:i,classes:d,variables:l,calls:m,implements:p,extends:A,workerSpawns:I,decisions:r}}function he(e,t){for(let n of e.drainQueryCompileFailures?.()??[])x.error(a.QUERY_COMPILE_FAILED,{language:t,kind:n.kind,pattern:n.pattern,message:n.message})}function xe(e,t,n,r){let o=new w;o.setLanguage(n),t.initQueries?.(n),he(t,r);let s=o.parse(e),i=Ee(s,t,r);return s&&s.delete(),o.delete(),i}async function Fe(e){S||(await w.init(),S=!0);let t=await G(),n=O.extname(e.filePath),r=t.getProviderForExtension(n);if(!r)return{taskId:e.taskId,success:!0,data:{imports:[],exports:[],functions:[],classes:[],calls:[],decisions:[a.noLanguageProviderForExtension(n)]}};let{wasmPath:o,attemptedPaths:s}=T(r.wasm_file);if(!D.existsSync(o))return{taskId:e.taskId,success:!0,data:{imports:Y(e.code),exports:[],functions:[],classes:[],calls:[],decisions:[a.wasmNotFound(e.language,s.join(", "))]}};let i=await K(o),d=xe(e.code,r,i,e.language);return{taskId:e.taskId,success:!0,data:d}}N?.on("message",async e=>{try{let t=await Fe(e);N?.postMessage(t)}catch(t){N?.postMessage({taskId:e.taskId,success:!1,error:t.stack||String(t)})}});export{Fe as buildParseResponse,ne as collectFunctionNodes,Ne as collectWorkerSpawns,J as getCalleeEvidence,he as reportQueryCompileFailures,V as resolveCallableName,T as resolveWasmPath};
|
|
3
3
|
//# sourceMappingURL=ast-worker.js.map
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
var a={DEBUG:"debug",INFO:"info",WARN:"warn",ERROR:"error"};var u="ipc-log";function I(t){return typeof t=="object"&&t!==null&&t.type===u}var S=class{constructor(e){this.postMessageFn=e}postMessageFn;debug(e,o){this.send(a.DEBUG,e,o)}info(e,o){this.send(a.INFO,e,o)}warn(e,o){this.send(a.WARN,e,o)}error(e,o){this.send(a.ERROR,e,o)}onLog(){return()=>{}}send(e,o,r){let s=r?{type:u,level:e,message:o,context:r}:{type:u,level:e,message:o};this.postMessageFn(s)}};var _={CONTEXT_INJECTION:"context-injection",COMMIT_L3_WRITE:"commit-l3-write",TIER_B_C_PREPUSH:"tier-b-c-prepush"},$={[_.CONTEXT_INJECTION]:!0,[_.COMMIT_L3_WRITE]:!0,[_.TIER_B_C_PREPUSH]:!0};var A=".docuvia",ee="logs",te="init.log",oe="clean.log",re="status.log",ne="sync.log",se="analyze.log",ie="review.log",ae="impact.log",ce="query.log",le="export-topology.log",pe="snapshot.log",ge="hydrate.log",de="sync-knowledge.log",h="node_modules",ue="local.db",Ee="init.lock",me="tierC.lock",_e="sync-state.json",Te="hooks-config.json",fe="pending-l3-decisions.json";var N="utf8";var ye="sha256";var i={TYPESCRIPT:"typescript",JAVASCRIPT:"javascript",PYTHON:"python",RUST:"rust",GO:"go",JAVA:"java",C:"c",CPP:"cpp",RUBY:"ruby",PHP:"php",CSHARP:"csharp"};var C="EEXIST",Le="ENOENT",T="EPERM",O="EACCES",P="EBUSY";var Re=".claude/hooks",Ie=".cursor/hooks",Se="docuvia-hook.js",Ae="docuvia-hook.cjs";var E=class{listeners=new Set;debug(e,o){this.emit(a.DEBUG,e,o)}info(e,o){this.emit(a.INFO,e,o)}warn(e,o){this.emit(a.WARN,e,o)}error(e,o){this.emit(a.ERROR,e,o)}onLog(e){return this.listeners.add(e),()=>this.listeners.delete(e)}emit(e,o,r){let s=r?{level:e,message:o,context:r}:{level:e,message:o};for(let l of this.listeners)l(s)}};function he(){return new E}var v=class{constructor(e){this.logger=e}logger;handleMessage(e){return I(e)?(this.logger[e.level](e.message,e.context),!0):!1}};var g={GIT_COMMAND_FAILED:"GIT_COMMAND_FAILED",GIT_NETWORK_TIMEOUT:"GIT_NETWORK_TIMEOUT",GIT_NOT_A_REPOSITORY:"GIT_NOT_A_REPOSITORY",GIT_BRANCH_CREATE_FAILED:"GIT_BRANCH_CREATE_FAILED",GIT_HOOK_INSTALL_FAILED:"GIT_HOOK_INSTALL_FAILED",GIT_FAST_IMPORT_FAILED:"GIT_FAST_IMPORT_FAILED",DB_OPEN_FAILED:"DB_OPEN_FAILED",DB_NOT_FOUND:"DB_NOT_FOUND",DB_MIGRATION_FAILED:"DB_MIGRATION_FAILED",DB_QUERY_FAILED:"DB_QUERY_FAILED",DB_LOCKED:"DB_LOCKED",AST_WORKER_CRASHED:"AST_WORKER_CRASHED",AST_PARSE_FAILED:"AST_PARSE_FAILED",FS_READ_FAILED:"FS_READ_FAILED",FS_PATH_TRAVERSAL:"FS_PATH_TRAVERSAL",FACTORY_TOKEN_NOT_REGISTERED:"FACTORY_TOKEN_NOT_REGISTERED",FACTORY_LOCKED:"FACTORY_LOCKED",MEMORY_SCOPE_NOT_FOUND:"MEMORY_SCOPE_NOT_FOUND",SYNC_FETCH_FAILED:"SYNC_FETCH_FAILED",SYNC_PUSH_FAILED:"SYNC_PUSH_FAILED",LLM_NOT_INITIALIZED:"LLM_NOT_INITIALIZED",LLM_CHAT_COMPLETION_FAILED:"LLM_CHAT_COMPLETION_FAILED",LLM_HTTP_FAILED:"LLM_HTTP_FAILED",LLM_RATE_LIMITED:"LLM_RATE_LIMITED",LLM_AUTH_FAILED:"LLM_AUTH_FAILED",LLM_STREAM_FAILED:"LLM_STREAM_FAILED",LLM_INVALID_RESPONSE:"LLM_INVALID_RESPONSE",INIT_WORKFLOW_FAILED:"INIT_WORKFLOW_FAILED",CLEAN_WORKFLOW_FAILED:"CLEAN_WORKFLOW_FAILED",UNINSTALL_WORKFLOW_FAILED:"UNINSTALL_WORKFLOW_FAILED",INVALID_INPUT:"INVALID_INPUT"};var Ne="DocuviaError",c=class t extends Error{code;cause;constructor(e,o,r){super(o),this.name=Ne,this.code=e,this.cause=r}static wrap(e,o,r){if(r instanceof t)return r;let s=r instanceof Error?r.message:String(r);return new t(e,`${o}: ${s}`,r)}};var Ce={WORKSPACE_ROOT:"workspaceRoot",API_URL:"apiUrl",PROJECT_ID:"projectId",COMMIT_SHA:"commitSha",TARGET_PATH:"targetPath",LLM_BASE_URL:"llmBaseUrl",LLM_MODEL:"llmModel",BASE_REF:"baseRef",TARGET:"target",ESCALATE_TO_LSP:"escalateToLsp",TIER_B_FULL_RESYNC:"tierBFullResync",LIMIT:"limit",COLLAPSE:"collapse",KEEP_DB:"keepDb",LSP_BINARY_OVERRIDE:"lspBinaryOverride",LSP_ARGS_OVERRIDE:"lspArgsOverride",LSP_TIMEOUT_MS:"lspTimeoutMs",LSP_MAX_PROCESSES:"lspMaxProcesses",TIER_B_COMMIT_CAP:"tierBCommitCap",TIER_C_DAILY_CALL_CAP:"tierCDailyCallCap",TIER_C_DAILY_TOKEN_CAP:"tierCDailyTokenCap",TIER_C_WALL_CLOCK_MS:"tierCWallClockMs",TIER_C_ITEM_CAP:"tierCItemCap",TIER_C_LOAD_THRESHOLD:"tierCLoadThreshold",GIT_NETWORK_TIMEOUT_MS:"gitNetworkTimeoutMs",FORCE:"force",TIER_C_DRAIN_ALL:"tierCDrainAll",AGENT_AUTHORED_DECISIONS:"agentAuthoredDecisions",HOOK_NAME:"hookName",HOOK_ENABLED:"hookEnabled",FLUSH_STAGED_L3:"flushStagedL3"},Oe={SCOPE_NOT_FOUND:(t,e)=>`Cannot set "${t}": memory scope "${e}" was never created`},f=class{scopes=new Map;createScope(e){this.scopes.has(e)||this.scopes.set(e,new Map)}set(e,o,r){let s=this.scopes.get(e);if(!s)throw new c(g.MEMORY_SCOPE_NOT_FOUND,Oe.SCOPE_NOT_FOUND(o,e));s.set(o,r)}get(e,o){return this.scopes.get(e)?.get(o)}deleteScope(e){this.scopes.delete(e)}hasScope(e){return this.scopes.has(e)}},Pe=new f;var k={REGISTER_LOCKED:t=>`Cannot register "${t}": factory is locked (test isolation)`,PROVIDER_NOT_REGISTERED:t=>`No provider registered for "${t}" \u2014 the implementation library that owns it was never imported for its registration side effect`},y=class{providers=new Map;locked=!1;register(e,o){if(this.locked)throw new c(g.FACTORY_LOCKED,k.REGISTER_LOCKED(String(e.description)));this.providers.set(e,o)}resolve(e,o){let r=this.providers.get(e);if(!r)throw new c(g.FACTORY_TOKEN_NOT_REGISTERED,k.PROVIDER_NOT_REGISTERED(String(e.description)));return r(this,o)}has(e){return this.providers.has(e)}lock(){this.locked=!0}unlock(){this.locked=!1}reset(){this.providers.clear(),this.locked=!1}},F=new y;function n(t){return Symbol(t)}var ve={GitProvider:n("IGitProvider"),LineBlameProvider:n("ILineBlameProvider"),KnowledgeGitService:n("IKnowledgeGitService"),FileDiscovery:n("IFileDiscovery"),ConfigScanner:n("IConfigScanner"),VcsScanner:n("IVcsScanner"),AstProcessor:n("IAstProcessor"),GraphPersister:n("IGraphPersister"),TempFileManager:n("TempFileManager"),GraphStoreOpener:n("GraphStoreOpener"),RemoteSyncClient:n("RemoteSyncClient"),LlmClient:n("LlmClient"),QueryService:n("IQueryService"),TierBCoverageHintProvider:n("ITierBCoverageHintProvider"),ImpactService:n("IImpactService"),ChangeDetectionService:n("IChangeDetectionService"),TopologyBuilder:n("ITopologyBuilder"),SnapshotRenderer:n("ISnapshotRenderer"),HydrationService:n("IHydrationService"),DiagnosticRunnerDb:n("DiagnosticRunnerDb"),DiagnosticRunnerGit:n("DiagnosticRunnerGit"),SemanticDiffAnalyzer:n("ISemanticDiffAnalyzer"),EdgeResolutionProviders:n("EdgeResolutionProviders")};var xe={ADDED:"added",MODIFIED:"modified",DELETED:"deleted",RENAMED:"renamed"};var De={LSP:"lsp",LLM_INFERRED:"llm-inferred"},be={TYPESCRIPT:"typescript",PYTHON:"python",GO:"go",RUST:"rust",JAVA:"java",CPP:"cpp",CSHARP:"csharp",PHP:"php",RUBY:"ruby"};var Me={NO_REMOTE:"no-remote",UP_TO_DATE:"up-to-date",FAST_FORWARDED_LOCAL:"fast-forwarded-local",PUSHED_LOCAL:"pushed-local",MERGED:"merged"};var ke={MODULE:"module",PACKAGE:"package",PCD:"pcd"},Fe={CONTAINS:"contains",CALLS:"calls",IMPLEMENTS:"implements",EXTENDS:"extends",IMPORTS:"imports",DEPENDS_ON:"depends_on",DECISION:"decision"},x={CHANGE:"change",RULE:"rule",DECISION:"decision",CONTEXT:"context"},we={PENDING:"pending",ACTIVE:"active",DRAFT:"draft",GARBAGE:"garbage"},Ge={ANALYZE:"analyze",AGENT_AUTHORED:"agent-authored"};var He=x,Be={AUTO_FULL_INGESTION:"autoFullIngestion",AUTO_DELTA:"autoDelta",AUTO_DELTA_NOOP:"autoDeltaNoop",DECISION_EXTRACTION:"decisionExtraction",TIER_B_BATCH:"tierBBatch",FLUSH_STAGED_L3:"flushStagedL3"};var Ke={CREATE_L3:"CREATE_L3"};var Ue={SYSTEM:"system",USER:"user",ASSISTANT:"assistant",TOOL:"tool"};var je={LOW:"LOW",MEDIUM:"MEDIUM",HIGH:"HIGH",CRITICAL:"CRITICAL",UNKNOWN:"UNKNOWN"},Ye={EXACT:"exact",LOWER_BOUND:"lower-bound"},Ve={LSP_FALLBACK:"lsp-fallback"};var We={L2:"l2",L3:"l3"};var Xe={FILE:"file",SYMBOL:"symbol",DECISION:"decision"},ze={AUTO:"auto",FILE:"file",SYMBOL:"symbol"},Qe={L1_TAG:"l1_tag",DIRECTORY:"directory"};var Je={TYPESCRIPT:"typescript",REACT:"react",EXPRESS:"express",VUE:"vue"},qe={UNKNOWN:"unknown",JAVASCRIPT:"javascript",GENERIC:"generic",RUST:"rust",PYTHON:"python",GO:"go"},Ze="general",$e={FRONTEND:"frontend",BACKEND:"backend",NEXTJS:"nextjs",SSR:"ssr",DRIZZLE:"drizzle",DATABASE:"database",TAILWINDCSS:"tailwindcss",CSS:"css",JEST:"jest",TESTING:"testing",VITEST:"vitest",POSTGRES:"postgres",MONOREPO:"monorepo",TOKIO:"tokio",ASYNC:"async",ACTIX:"actix",SERDE:"serde",TAURI:"tauri",DESKTOP:"desktop",DJANGO:"django",FASTAPI:"fastapi",PANDAS:"pandas",DATA:"data",GIN:"gin",STRICT_TS:"strict-ts",VITE:"vite",BUILD_TOOL:"build-tool"};var w="origin",D={KNOWLEDGE_ROOT:"docuvia-knowledge",KNOWLEDGE_LOG_SCAN_LIMIT:5e3,KNOWLEDGE_DIR_NAME:"knowledge",GRAPH_DIR_NAME:"graph",L3_DIR_NAME:"_l3",NODES_JSONL_NAME:"nodes.jsonl",EDGES_JSONL_NAME:"edges.jsonl",SOURCE_COMMIT_TRAILER_KEY:"Docuvia-Source",POST_COMMIT_HOOK_NAME:"post-commit",POST_COMMIT_HOOK_MARKER:"docuvia analyze",POST_COMMIT_FLUSH_L3_MARKER:"docuvia analyze --flush-staged-l3",POST_COMMIT_NOHUP_MARKER:"nohup npx --no-install docuvia analyze",DOCUVIA_HOOK_HEADER_COMMENT:"# Docuvia Knowledge Graph Evolver Hook",POST_COMMIT_HOOK_CONTENT:`#!/bin/bash
|
|
3
|
+
# Docuvia Knowledge Graph Evolver Hook
|
|
4
|
+
# Non-intrusively extracts AST deltas in the background
|
|
5
|
+
if command -v npx > /dev/null 2>&1; then
|
|
6
|
+
mkdir -p .docuvia/logs
|
|
7
|
+
# Fire and forget (do not block commit) -- nohup keeps the process alive after this hook's
|
|
8
|
+
# shell exits; output goes to a log file (not /dev/null) so failures are visible (issue #58).
|
|
9
|
+
nohup npx --no-install docuvia analyze >> .docuvia/logs/post-commit-hook.log 2>&1 &
|
|
10
|
+
# Flush any staged agent-authored L3 decisions for this commit (roadmap items 32-34, issue #42).
|
|
11
|
+
# Self-gated internally on the commit-l3-write toggle -- see run-flush-staged-l3.ts.
|
|
12
|
+
nohup npx --no-install docuvia analyze --flush-staged-l3 >> .docuvia/logs/post-commit-hook.log 2>&1 &
|
|
13
|
+
fi
|
|
14
|
+
`,PRE_FLUSH_L3_POST_COMMIT_HOOK_CONTENT:`#!/bin/bash
|
|
15
|
+
# Docuvia Knowledge Graph Evolver Hook
|
|
16
|
+
# Non-intrusively extracts AST deltas in the background
|
|
17
|
+
if command -v npx > /dev/null 2>&1; then
|
|
18
|
+
# Fire and forget (do not block commit)
|
|
19
|
+
npx --no-install docuvia analyze > /dev/null 2>&1 &
|
|
20
|
+
fi
|
|
21
|
+
`,PRE_NOHUP_POST_COMMIT_HOOK_CONTENT:`#!/bin/bash
|
|
22
|
+
# Docuvia Knowledge Graph Evolver Hook
|
|
23
|
+
# Non-intrusively extracts AST deltas in the background
|
|
24
|
+
if command -v npx > /dev/null 2>&1; then
|
|
25
|
+
# Fire and forget (do not block commit)
|
|
26
|
+
npx --no-install docuvia analyze > /dev/null 2>&1 &
|
|
27
|
+
# Flush any staged agent-authored L3 decisions for this commit (roadmap items 32-34, issue #42).
|
|
28
|
+
# Self-gated internally on the commit-l3-write toggle -- see run-flush-staged-l3.ts.
|
|
29
|
+
npx --no-install docuvia analyze --flush-staged-l3 > /dev/null 2>&1 &
|
|
30
|
+
fi
|
|
31
|
+
`,LEGACY_POST_COMMIT_HOOK_MARKER:"docuvia snapshot",LEGACY_POST_COMMIT_HOOK_CONTENT:`#!/bin/bash
|
|
32
|
+
# Docuvia Knowledge Graph Evolver Hook
|
|
33
|
+
# Non-intrusively extracts AST deltas in the background
|
|
34
|
+
if command -v npx &> /dev/null; then
|
|
35
|
+
# Fire and forget (do not block commit)
|
|
36
|
+
npx --no-install docuvia snapshot > /dev/null 2>&1 &
|
|
37
|
+
fi
|
|
38
|
+
`,LOCAL_REMOTE_URL_SCHEME:"file://",DEFAULT_REMOTE_NAME:w,REMOTE_REF_PREFIX:"refs/remotes/",HEAD_REF:"HEAD",DEFAULT_LOCAL_PROJECT_ID:1,META_KEY_KNOWLEDGE_TIP_SHA:"hydratedKnowledgeSha",META_KEY_LAST_INGESTED_SOURCE_SHA:"lastIngestedSourceSha",META_KEY_NODE_KEY_FORMAT_VERSION:"nodeKeyFormatVersion",META_KEY_TIER_B_QUEUE:"tierBQueue",EMPTY_KNOWLEDGE_TEMP_DIR_PREFIX:"docuvia-empty-knowledge-",META_KEY_LAST_TIER_B_BATCH_SHA:"lastTierBBatchSha",META_KEY_TIER_B_BATCH_PENDING:"tierBBatchPending",META_KEY_KNOWLEDGE_PACK_PENDING:"knowledgePackPending",META_KEY_TIER_B_CHANGED_BYTES:"tierBChangedBytes",DEFAULT_TIER_B_COMMIT_CAP_BYTES:512e3,DEFAULT_TIER_B_COVERAGE_FAIL_THRESHOLD:.5,DEFAULT_L2_SEMANTIC_COVERAGE_FAIL_THRESHOLD:.1,DEFAULT_STAGED_L3_STRANDED_AFTER_MS:864e5,META_KEY_TIER_B_ZERO_PROGRESS_BATCHES:"tierBZeroProgressBatches",DEFAULT_TIER_B_ZERO_PROGRESS_MAX_BATCHES:3,DEFAULT_POST_COMMIT_INGESTION_GRACE_MS:6e5,META_KEY_CALL_RESOLUTION_STATS:"callResolutionStats",DEFAULT_CALL_RESOLUTION_NOTE_THRESHOLD:.5,DEFAULT_CALL_RESOLUTION_MIN_SAMPLE:5,DEFAULT_CANARY_SAMPLE_SIZE:20,PRE_PUSH_HOOK_NAME:"pre-push",PRE_PUSH_HOOK_MARKER:"docuvia analyze --escalate-to-lsp",PRE_PUSH_SYNC_KNOWLEDGE_MARKER:"docuvia sync-knowledge",PRE_PUSH_ENV_GATE_MARKER:"--fallback-ast",PRE_PUSH_HOOKS_CHECK_MARKER:"docuvia hooks check",PRE_PUSH_FAILURE_HINT_MARKER:"tier-b/sync failed",PRE_PUSH_HOOK_CONTENT:`#!/bin/bash
|
|
39
|
+
# Docuvia Tier B Batch Hook (LSP escalation + snapshot + knowledge sync)
|
|
40
|
+
# Runs synchronously (generous timeout) so pushed code carries corrected knowledge -- see
|
|
41
|
+
# docs/gitbook/analysis/phase1-decision-integration.md \xA78h and
|
|
42
|
+
# docs/gitbook/analysis/phase2-sync-knowledge-scheduling.md.
|
|
43
|
+
if command -v npx > /dev/null 2>&1; then
|
|
44
|
+
npx --no-install docuvia hooks check tier-b-c-prepush && { npx --no-install docuvia analyze --escalate-to-lsp --fallback-ast && npx --no-install docuvia snapshot && npx --no-install docuvia sync-knowledge || echo "docuvia: tier-b/sync failed for this push -- run 'docuvia doctor' for details"; }
|
|
45
|
+
fi
|
|
46
|
+
# Never blocks the push on a Tier B/sync-knowledge failure -- PLAT-007's reliability
|
|
47
|
+
# requirement (failures surface as a one-line push-time hint plus JSONL logs / doctor,
|
|
48
|
+
# never as a blocked push).
|
|
49
|
+
exit 0
|
|
50
|
+
`,HOOKS_CHECK_PRE_PUSH_HOOK_CONTENT:`#!/bin/bash
|
|
51
|
+
# Docuvia Tier B Batch Hook (LSP escalation + snapshot + knowledge sync)
|
|
52
|
+
# Runs synchronously (generous timeout) so pushed code carries corrected knowledge -- see
|
|
53
|
+
# docs/gitbook/analysis/phase1-decision-integration.md \xA78h and
|
|
54
|
+
# docs/gitbook/analysis/phase2-sync-knowledge-scheduling.md.
|
|
55
|
+
if command -v npx > /dev/null 2>&1; then
|
|
56
|
+
npx --no-install docuvia hooks check tier-b-c-prepush && npx --no-install docuvia analyze --escalate-to-lsp --fallback-ast && npx --no-install docuvia snapshot && npx --no-install docuvia sync-knowledge
|
|
57
|
+
fi
|
|
58
|
+
# Never blocks the push on a Tier B/sync-knowledge failure -- PLAT-007's reliability
|
|
59
|
+
# requirement (failures only ever surface via JSONL logs / doctor, never to the pushing
|
|
60
|
+
# developer).
|
|
61
|
+
exit 0
|
|
62
|
+
`,ENV_GATE_PRE_PUSH_HOOK_CONTENT:`#!/bin/bash
|
|
63
|
+
# Docuvia Tier B Batch Hook (LSP escalation + snapshot + knowledge sync)
|
|
64
|
+
# Runs synchronously (generous timeout) so pushed code carries corrected knowledge -- see
|
|
65
|
+
# docs/gitbook/analysis/phase1-decision-integration.md \xA78h and
|
|
66
|
+
# docs/gitbook/analysis/phase2-sync-knowledge-scheduling.md.
|
|
67
|
+
if command -v npx > /dev/null 2>&1; then
|
|
68
|
+
npx --no-install docuvia analyze --escalate-to-lsp --fallback-ast && npx --no-install docuvia snapshot && npx --no-install docuvia sync-knowledge
|
|
69
|
+
fi
|
|
70
|
+
# Never blocks the push on a Tier B/sync-knowledge failure -- PLAT-007's reliability
|
|
71
|
+
# requirement (failures only ever surface via JSONL logs / doctor, never to the pushing
|
|
72
|
+
# developer).
|
|
73
|
+
exit 0
|
|
74
|
+
`,SYNC_KNOWLEDGE_PRE_PUSH_HOOK_CONTENT:`#!/bin/bash
|
|
75
|
+
# Docuvia Tier B Batch Hook (LSP escalation + snapshot + knowledge sync)
|
|
76
|
+
# Runs synchronously (generous timeout) so pushed code carries corrected knowledge -- see
|
|
77
|
+
# docs/gitbook/analysis/phase1-decision-integration.md \xA78h and
|
|
78
|
+
# docs/gitbook/analysis/phase2-sync-knowledge-scheduling.md.
|
|
79
|
+
if command -v npx > /dev/null 2>&1; then
|
|
80
|
+
npx --no-install docuvia analyze --escalate-to-lsp && npx --no-install docuvia snapshot && npx --no-install docuvia sync-knowledge
|
|
81
|
+
fi
|
|
82
|
+
# Never blocks the push on a Tier B/sync-knowledge failure -- PLAT-007's reliability
|
|
83
|
+
# requirement (failures only ever surface via JSONL logs / doctor, never to the pushing
|
|
84
|
+
# developer).
|
|
85
|
+
exit 0
|
|
86
|
+
`,LEGACY_PRE_PUSH_HOOK_CONTENT:`#!/bin/bash
|
|
87
|
+
# Docuvia Tier B Batch Hook (LSP escalation + snapshot)
|
|
88
|
+
# Runs synchronously (generous timeout) so pushed code carries corrected knowledge -- see
|
|
89
|
+
# docs/gitbook/analysis/phase1-decision-integration.md \xA78h.
|
|
90
|
+
if command -v npx &> /dev/null; then
|
|
91
|
+
npx --no-install docuvia analyze --escalate-to-lsp && npx --no-install docuvia snapshot
|
|
92
|
+
# Phase 2: a sync-knowledge step composes here -- must not double-fetch (see \xA77a-5).
|
|
93
|
+
fi
|
|
94
|
+
# Never blocks the push on a Tier B failure -- PLAT-007's reliability requirement (failures
|
|
95
|
+
# only ever surface via JSONL logs / doctor, never to the pushing developer).
|
|
96
|
+
exit 0
|
|
97
|
+
`,META_KEY_TIER_C_QUEUE:"tierCQueue",META_KEY_TIER_C_BUDGET:"tierCBudget",DEFAULT_TIER_C_DAILY_CALL_CAP:50,DEFAULT_TIER_C_DAILY_TOKEN_CAP:1e5,DEFAULT_TIER_C_WALL_CLOCK_MS:12e3,DEFAULT_TIER_C_ITEM_CAP:20,DEFAULT_TIER_C_LOAD_THRESHOLD:.8,DEFAULT_TIER_C_MAX_ITEM_FAILURES:3};import L from"path";var G=[".ts",".tsx",".mts",".cts"],H=[".js",".jsx",".mjs",".cjs"],B=[".py"],K=[".rs"],U=[".go"],j=[".java"],Y=[".c",".h"],V=[".cpp",".cxx",".cc",".hpp",".hxx",".hh",".cu",".cuh"],W=[".rb",".rake",".gemspec"],X=[".php",".phtml",".php3",".php4",".php5",".phps"],z=[".cs"],b=new Set(["Rakefile","Gemfile","Guardfile","Vagrantfile","Brewfile"]),M=(()=>{let t=new Map,e=[[i.TYPESCRIPT,G],[i.JAVASCRIPT,H],[i.PYTHON,B],[i.RUST,K],[i.GO,U],[i.JAVA,j],[i.C,Y],[i.CPP,V],[i.RUBY,W],[i.PHP,X],[i.CSHARP,z]];for(let[o,r]of e)for(let s of r)t.set(s,o);return t})();function et(t){let e=M.get(L.extname(t).toLowerCase());return e||(b.has(L.basename(t))?i.RUBY:void 0)}function Q(t){return M.has(L.extname(t).toLowerCase())?!0:b.has(L.basename(t))}function tt(){return Array.from(M.keys()).map(t=>t.replace(/^\./,""))}function ot(t){return Q(t)&&!t.includes(`${h}/`)&&!t.includes(`${A}/`)}import d from"fs/promises";var rt={TIMED_OUT_WAITING:t=>`Timed out waiting for the lock at ${t} \u2014 another process may be stuck`},R=class extends Error{constructor(e){super(rt.TIMED_OUT_WAITING(e)),this.name="ProcessLockTimeoutError"}},nt={maxWaitMs:1e4,retryIntervalMs:100,heartbeatIntervalMs:1e4,staleAfterMs:3e4};function st(t){return new Promise(e=>setTimeout(e,t))}function it(t){try{return process.kill(t,0),!0}catch(e){return e.code===T}}async function at(t){try{let e=Number.parseInt(await d.readFile(t,N),10);return Number.isFinite(e)?e:void 0}catch{return}}async function ct(t,e){let o=await d.stat(t).catch(()=>{});if(!o||Date.now()-o.mtimeMs<=e)return!1;let r=await at(t);return r!==void 0&&it(r)?!1:(await d.rm(t,{force:!0}).catch(()=>{}),!0)}function lt(t){let e=t.code;return e===C||e===T||e===O||e===P}async function pt(t){try{let e=await d.open(t,"wx");return await e.writeFile(String(process.pid)),await e.close(),!0}catch(e){if(!lt(e))throw e;return!1}}async function gt(t,e={}){let o={...nt,...e},r=Date.now()+o.maxWaitMs,s=!1;for(;!await pt(t);)if(s||(s=!0,e.onWaiting?.()),!await ct(t,o.staleAfterMs)){if(Date.now()>r)throw new R(t);await st(o.retryIntervalMs)}let l=setInterval(()=>{let p=new Date;d.utimes(t,p,p).catch(()=>{})},o.heartbeatIntervalMs);l.unref?.();let m=!1;return{async release(){m||(m=!0,clearInterval(l),await d.rm(t,{force:!0}).catch(()=>{}))}}}var q=`${D.SOURCE_COMMIT_TRAILER_KEY}: `;function dt(t){for(let e of t.split(`
|
|
98
|
+
`)){let o=e.trim();if(o.startsWith(q))return o.slice(q.length).trim()}}function ut(t,e,o,r){if(!o&&!r)return;let l=(e?t.files.getTierBFileStatus(e):void 0)?.lastProcessedAt??null,m=r&&l===null,p=t.files.getTierBCoverage(),Z=o&&p.processedFiles<p.totalFiles;if(!(!m&&!Z))return{ownFileLastProcessedAt:l,workspaceFilesProcessed:p.processedFiles,workspaceFilesTotal:p.totalFiles}}function Et(t){let e={total:0,resolved:0,selfDiscarded:0,unresolved:0,unresolvable:0,external:0,unknownReceiver:0};for(let o of Object.values(t))e.total+=o.total,e.resolved+=o.resolved,e.selfDiscarded+=o.selfDiscarded,e.unresolvable=(e.unresolvable??0)+(o.unresolvable??0),e.external=(e.external??0)+(o.external??0),e.unknownReceiver=(e.unknownReceiver??0)+(o.unknownReceiver??0),e.unresolved+=o.unresolved;return e}function mt(t){return t.total-t.selfDiscarded-(t.unresolvable??0)-(t.external??0)-(t.unknownReceiver??0)}var _t={PASS:"pass",FAIL:"fail"};export{a,E as b,he as c,S as d,v as e,g as f,c as g,Ce as h,Pe as i,F as j,ve as k,xe as l,De as m,be as n,Me as o,ke as p,Fe as q,we as r,Ge as s,He as t,Be as u,Ke as v,Ue as w,je as x,Ye as y,Ve as z,We as A,Xe as B,ze as C,Qe as D,_ as E,$ as F,A as G,ee as H,te as I,oe as J,re as K,ne as L,se as M,ie as N,ae as O,ce as P,le as Q,pe as R,ge as S,de as T,h as U,ue as V,Ee as W,me as X,_e as Y,Te as Z,fe as _,Je as $,qe as aa,Ze as ba,$e as ca,N as da,ye as ea,w as fa,D as ga,i as ha,G as ia,H as ja,B as ka,K as la,U as ma,j as na,Y as oa,V as pa,W as qa,X as ra,z as sa,b as ta,et as ua,Q as va,tt as wa,ot as xa,C as ya,Le as za,T as Aa,O as Ba,P as Ca,R as Da,gt as Ea,dt as Fa,ut as Ga,Et as Ha,mt as Ia,_t as Ja,Re as Ka,Ie as La,Se as Ma,Ae as Na};
|
|
99
|
+
//# sourceMappingURL=chunk-4KT3OZ27.js.map
|