Dev Intel Pipeline v2 — multi-language semantic graph extractor

Phase 1: extract.js — tree-sitter AST parser (TS/JS/Python/Go/Java/Bash) + config parsers (YAML/HCL)
Phase 2: graph.js — in-memory directed graph store with build/query/diff CLI
Phase 3: namespace.js — cross-repo namespace registry with 3-tier resolution
Phase 4: semantic-diff.js — categorized diffs with impact scoring (0-100)
Phase 5: pipeline.js — batch extraction, incremental diffing, benchmarking

Benchmark: 4,325 files, 21,646 nodes, 133,979 edges in 67s (15ms/file)
BMad SPA reviews: all phases GO
This commit is contained in:
Jarvis Prime
2026-03-09 05:29:29 +00:00
commit efb12d003b
19 changed files with 4106 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
{
"file": "/tmp/deploy.sh",
"language": "bash",
"entities": [
{
"id": "deploy.sh",
"type": "Module",
"name": "deploy.sh",
"kind": "module",
"visibility": "public",
"line_range": [
1,
17
]
},
{
"id": "dep:./utils.sh",
"type": "Dependency",
"name": "./utils.sh",
"kind": "import",
"visibility": "internal",
"line_range": [
2,
2
]
},
{
"id": "deploy.sh:build_image",
"type": "Function",
"name": "build_image",
"kind": "function",
"visibility": "public",
"line_range": [
4,
8
]
},
{
"id": "deploy.sh:deploy_k8s",
"type": "Function",
"name": "deploy_k8s",
"kind": "function",
"visibility": "public",
"line_range": [
10,
12
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "deploy.sh",
"target": "dep:./utils.sh"
},
{
"type": "CONTAINS",
"source": "deploy.sh",
"target": "deploy.sh:build_image"
},
{
"type": "CALLS",
"source": "deploy.sh:build_image",
"target": "docker"
},
{
"type": "CONTAINS",
"source": "deploy.sh",
"target": "deploy.sh:deploy_k8s"
},
{
"type": "CALLS",
"source": "deploy.sh:deploy_k8s",
"target": "kubectl"
},
{
"type": "CALLS",
"source": "deploy.sh",
"target": "echo"
},
{
"type": "CALLS",
"source": "deploy.sh",
"target": "build_image"
},
{
"type": "CALLS",
"source": "deploy.sh",
"target": "deploy_k8s"
}
]
}

View File

@@ -0,0 +1,98 @@
{
"file": "/tmp/test_go.go",
"language": "go",
"entities": [
{
"id": "test_go.go",
"type": "Module",
"name": "test_go.go",
"kind": "module",
"visibility": "public",
"line_range": [
1,
21
]
},
{
"id": "dep:fmt",
"type": "Dependency",
"name": "fmt",
"kind": "import",
"visibility": "internal",
"line_range": [
4,
4
]
},
{
"id": "dep:net/http",
"type": "Dependency",
"name": "net/http",
"kind": "import",
"visibility": "internal",
"line_range": [
5,
5
]
},
{
"id": "test_go.go:Start",
"type": "Function",
"name": "Start",
"kind": "method",
"visibility": "public",
"line_range": [
12,
15
]
},
{
"id": "test_go.go:main",
"type": "Function",
"name": "main",
"kind": "function",
"visibility": "internal",
"line_range": [
17,
20
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "test_go.go",
"target": "dep:fmt"
},
{
"type": "IMPORTS",
"source": "test_go.go",
"target": "dep:net/http"
},
{
"type": "CONTAINS",
"source": "test_go.go",
"target": "test_go.go:Start"
},
{
"type": "CALLS",
"source": "test_go.go:Start",
"target": "fmt.Println"
},
{
"type": "CALLS",
"source": "test_go.go:Start",
"target": "http.ListenAndServe"
},
{
"type": "CONTAINS",
"source": "test_go.go",
"target": "test_go.go:main"
},
{
"type": "CALLS",
"source": "test_go.go:main",
"target": "s.Start"
}
]
}

View File

@@ -0,0 +1,130 @@
{
"file": "/tmp/TestJava.java",
"language": "java",
"entities": [
{
"id": "TestJava.java",
"type": "Module",
"name": "TestJava.java",
"kind": "module",
"visibility": "public",
"line_range": [
1,
22
]
},
{
"id": "dep:java.util.List",
"type": "Dependency",
"name": "java.util.List",
"kind": "import",
"visibility": "internal",
"line_range": [
3,
3
]
},
{
"id": "dep:org.springframework.stereotype.Service",
"type": "Dependency",
"name": "org.springframework.stereotype.Service",
"kind": "import",
"visibility": "internal",
"line_range": [
4,
4
]
},
{
"id": "TestJava.java:TenantService",
"type": "Class",
"name": "TenantService",
"kind": "class",
"visibility": "public",
"line_range": [
6,
21
]
},
{
"id": "TestJava.java:TenantService:TenantService",
"type": "Function",
"name": "TenantService",
"kind": "method",
"visibility": "public",
"line_range": [
10,
12
]
},
{
"id": "TestJava.java:TenantService:getTenants",
"type": "Function",
"name": "getTenants",
"kind": "method",
"visibility": "public",
"line_range": [
14,
16
]
},
{
"id": "TestJava.java:TenantService:audit",
"type": "Function",
"name": "audit",
"kind": "method",
"visibility": "private",
"line_range": [
18,
20
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "TestJava.java",
"target": "dep:java.util.List"
},
{
"type": "IMPORTS",
"source": "TestJava.java",
"target": "dep:org.springframework.stereotype.Service"
},
{
"type": "CONTAINS",
"source": "TestJava.java",
"target": "TestJava.java:TenantService"
},
{
"type": "IMPLEMENTS",
"source": "TestJava.java:TenantService",
"target": "BaseService"
},
{
"type": "CONTAINS",
"source": "TestJava.java:TenantService",
"target": "TestJava.java:TenantService:TenantService"
},
{
"type": "CONTAINS",
"source": "TestJava.java:TenantService",
"target": "TestJava.java:TenantService:getTenants"
},
{
"type": "CALLS",
"source": "TestJava.java:TenantService:getTenants",
"target": "this.db.query"
},
{
"type": "CONTAINS",
"source": "TestJava.java:TenantService",
"target": "TestJava.java:TenantService:audit"
},
{
"type": "CALLS",
"source": "TestJava.java:TenantService:audit",
"target": "Logger.log"
}
]
}

View File

@@ -0,0 +1,45 @@
{
"file": "/app/src/utils/mask-api-key.ts",
"language": "typescript",
"entities": [
{
"id": "utils/mask-api-key.ts",
"type": "Module",
"name": "utils/mask-api-key.ts",
"kind": "module",
"visibility": "public",
"line_range": [
1,
14
]
},
{
"id": "utils/mask-api-key.ts:maskApiKey",
"type": "Function",
"name": "maskApiKey",
"kind": "function",
"visibility": "public",
"line_range": [
1,
13
]
}
],
"relationships": [
{
"type": "CONTAINS",
"source": "utils/mask-api-key.ts",
"target": "utils/mask-api-key.ts:maskApiKey"
},
{
"type": "CALLS",
"source": "utils/mask-api-key.ts:maskApiKey",
"target": "value.trim"
},
{
"type": "CALLS",
"source": "utils/mask-api-key.ts:maskApiKey",
"target": "trimmed.slice"
}
]
}

View File

@@ -0,0 +1,241 @@
{
"file": "/tmp/test_service.py",
"language": "python",
"entities": [
{
"id": "test_service.py",
"type": "Module",
"name": "test_service.py",
"kind": "module",
"visibility": "public",
"line_range": [
1,
34
]
},
{
"id": "dep:os",
"type": "Dependency",
"name": "os",
"kind": "import",
"visibility": "internal",
"line_range": [
1,
1
]
},
{
"id": "dep:typing",
"type": "Dependency",
"name": "typing",
"kind": "import",
"visibility": "internal",
"line_range": [
2,
2
]
},
{
"id": "dep:dataclasses",
"type": "Dependency",
"name": "dataclasses",
"kind": "import",
"visibility": "internal",
"line_range": [
3,
3
]
},
{
"id": "dep:.config",
"type": "Dependency",
"name": ".config",
"kind": "import",
"visibility": "internal",
"line_range": [
4,
4
]
},
{
"id": "dep:.database",
"type": "Dependency",
"name": ".database",
"kind": "import",
"visibility": "internal",
"line_range": [
5,
5
]
},
{
"id": "test_service.py:TenantConfig",
"type": "Class",
"name": "TenantConfig",
"kind": "class",
"visibility": "public",
"line_range": [
8,
11
]
},
{
"id": "test_service.py:TenantService",
"type": "Class",
"name": "TenantService",
"kind": "class",
"visibility": "public",
"line_range": [
13,
30
]
},
{
"id": "test_service.py:TenantService:__init__",
"type": "Function",
"name": "__init__",
"kind": "method",
"visibility": "private",
"line_range": [
14,
16
]
},
{
"id": "test_service.py:TenantService:get_tenant",
"type": "Function",
"name": "get_tenant",
"kind": "method",
"visibility": "public",
"line_range": [
18,
22
]
},
{
"id": "test_service.py:TenantService:_enrich",
"type": "Function",
"name": "_enrich",
"kind": "method",
"visibility": "protected",
"line_range": [
24,
26
]
},
{
"id": "test_service.py:TenantService:create_tenant",
"type": "Function",
"name": "create_tenant",
"kind": "method",
"visibility": "public",
"line_range": [
28,
30
]
},
{
"id": "test_service.py:health_check",
"type": "Function",
"name": "health_check",
"kind": "function",
"visibility": "public",
"line_range": [
32,
33
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "test_service.py",
"target": "dep:os"
},
{
"type": "IMPORTS",
"source": "test_service.py",
"target": "dep:typing"
},
{
"type": "IMPORTS",
"source": "test_service.py",
"target": "dep:dataclasses"
},
{
"type": "IMPORTS",
"source": "test_service.py",
"target": "dep:.config"
},
{
"type": "IMPORTS",
"source": "test_service.py",
"target": "dep:.database"
},
{
"type": "CONTAINS",
"source": "test_service.py",
"target": "test_service.py:TenantConfig"
},
{
"type": "CONTAINS",
"source": "test_service.py",
"target": "test_service.py:TenantService"
},
{
"type": "CONTAINS",
"source": "test_service.py:TenantService",
"target": "test_service.py:TenantService:__init__"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:__init__",
"target": "load_config"
},
{
"type": "CONTAINS",
"source": "test_service.py:TenantService",
"target": "test_service.py:TenantService:get_tenant"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:get_tenant",
"target": "self.db.query"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:get_tenant",
"target": "self._enrich"
},
{
"type": "CONTAINS",
"source": "test_service.py:TenantService",
"target": "test_service.py:TenantService:_enrich"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:_enrich",
"target": "self.config.get"
},
{
"type": "CONTAINS",
"source": "test_service.py:TenantService",
"target": "test_service.py:TenantService:create_tenant"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:create_tenant",
"target": "TenantConfig"
},
{
"type": "CALLS",
"source": "test_service.py:TenantService:create_tenant",
"target": "self.db.insert"
},
{
"type": "CONTAINS",
"source": "test_service.py",
"target": "test_service.py:health_check"
}
]
}

View File

@@ -0,0 +1,234 @@
{
"file": "/app/src/cli/route.ts",
"language": "typescript",
"entities": [
{
"id": "cli/route.ts",
"type": "Module",
"name": "cli/route.ts",
"kind": "module",
"visibility": "public",
"line_range": [
1,
48
]
},
{
"id": "dep:infra/env.js",
"type": "Dependency",
"name": "infra/env.js",
"kind": "import",
"visibility": "internal",
"line_range": [
1,
1
]
},
{
"id": "dep:runtime.js",
"type": "Dependency",
"name": "runtime.js",
"kind": "import",
"visibility": "internal",
"line_range": [
2,
2
]
},
{
"id": "dep:version.js",
"type": "Dependency",
"name": "version.js",
"kind": "import",
"visibility": "internal",
"line_range": [
3,
3
]
},
{
"id": "dep:cli/argv.js",
"type": "Dependency",
"name": "cli/argv.js",
"kind": "import",
"visibility": "internal",
"line_range": [
4,
4
]
},
{
"id": "dep:cli/banner.js",
"type": "Dependency",
"name": "cli/banner.js",
"kind": "import",
"visibility": "internal",
"line_range": [
5,
5
]
},
{
"id": "dep:cli/plugin-registry.js",
"type": "Dependency",
"name": "cli/plugin-registry.js",
"kind": "import",
"visibility": "internal",
"line_range": [
6,
6
]
},
{
"id": "dep:cli/program/config-guard.js",
"type": "Dependency",
"name": "cli/program/config-guard.js",
"kind": "import",
"visibility": "internal",
"line_range": [
7,
7
]
},
{
"id": "dep:cli/program/routes.js",
"type": "Dependency",
"name": "cli/program/routes.js",
"kind": "import",
"visibility": "internal",
"line_range": [
8,
8
]
},
{
"id": "cli/route.ts:prepareRoutedCommand",
"type": "Function",
"name": "prepareRoutedCommand",
"kind": "function",
"visibility": "internal",
"line_range": [
10,
27
]
},
{
"id": "cli/route.ts:tryRouteCli",
"type": "Function",
"name": "tryRouteCli",
"kind": "function",
"visibility": "public",
"line_range": [
29,
47
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:infra/env.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:runtime.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:version.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:cli/argv.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:cli/banner.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:cli/plugin-registry.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:cli/program/config-guard.js"
},
{
"type": "IMPORTS",
"source": "cli/route.ts",
"target": "dep:cli/program/routes.js"
},
{
"type": "CONTAINS",
"source": "cli/route.ts",
"target": "cli/route.ts:prepareRoutedCommand"
},
{
"type": "CALLS",
"source": "cli/route.ts:prepareRoutedCommand",
"target": "hasFlag"
},
{
"type": "CALLS",
"source": "cli/route.ts:prepareRoutedCommand",
"target": "emitCliBanner"
},
{
"type": "CALLS",
"source": "cli/route.ts:prepareRoutedCommand",
"target": "ensureConfigReady"
},
{
"type": "CALLS",
"source": "cli/route.ts:prepareRoutedCommand",
"target": "params.loadPlugins"
},
{
"type": "CALLS",
"source": "cli/route.ts:prepareRoutedCommand",
"target": "ensurePluginRegistryLoaded"
},
{
"type": "CONTAINS",
"source": "cli/route.ts",
"target": "cli/route.ts:tryRouteCli"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "isTruthyEnvValue"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "hasHelpOrVersion"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "getCommandPathWithRootOptions"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "findRoutedCommand"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "prepareRoutedCommand"
},
{
"type": "CALLS",
"source": "cli/route.ts:tryRouteCli",
"target": "route.run"
}
]
}

View File

@@ -0,0 +1,579 @@
{
"file": "/app/src/wizard/session.ts",
"language": "typescript",
"entities": [
{
"id": "wizard/session.ts",
"type": "Module",
"name": "wizard/session.ts",
"kind": "module",
"visibility": "public",
"line_range": [
1,
265
]
},
{
"id": "dep:node:crypto",
"type": "Dependency",
"name": "node:crypto",
"kind": "import",
"visibility": "internal",
"line_range": [
1,
1
]
},
{
"id": "dep:wizard/prompts.js",
"type": "Dependency",
"name": "wizard/prompts.js",
"kind": "import",
"visibility": "internal",
"line_range": [
2,
2
]
},
{
"id": "wizard/session.ts:createDeferred",
"type": "Function",
"name": "createDeferred",
"kind": "function",
"visibility": "internal",
"line_range": [
37,
45
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter",
"type": "Class",
"name": "WizardSessionPrompter",
"kind": "class",
"visibility": "internal",
"line_range": [
47,
161
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:constructor",
"type": "Function",
"name": "constructor",
"kind": "method",
"visibility": "public",
"line_range": [
48,
48
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:intro",
"type": "Function",
"name": "intro",
"kind": "method",
"visibility": "public",
"line_range": [
50,
57
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:outro",
"type": "Function",
"name": "outro",
"kind": "method",
"visibility": "public",
"line_range": [
59,
66
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:note",
"type": "Function",
"name": "note",
"kind": "method",
"visibility": "public",
"line_range": [
68,
70
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:select",
"type": "Function",
"name": "select",
"kind": "method",
"visibility": "public",
"line_range": [
72,
89
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:multiselect",
"type": "Function",
"name": "multiselect",
"kind": "method",
"visibility": "public",
"line_range": [
91,
108
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:text",
"type": "Function",
"name": "text",
"kind": "method",
"visibility": "public",
"line_range": [
110,
136
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:confirm",
"type": "Function",
"name": "confirm",
"kind": "method",
"visibility": "public",
"line_range": [
138,
146
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:progress",
"type": "Function",
"name": "progress",
"kind": "method",
"visibility": "public",
"line_range": [
148,
153
]
},
{
"id": "wizard/session.ts:WizardSessionPrompter:prompt",
"type": "Function",
"name": "prompt",
"kind": "method",
"visibility": "private",
"line_range": [
155,
160
]
},
{
"id": "wizard/session.ts:WizardSession",
"type": "Class",
"name": "WizardSession",
"kind": "class",
"visibility": "public",
"line_range": [
163,
264
]
},
{
"id": "wizard/session.ts:WizardSession:constructor",
"type": "Function",
"name": "constructor",
"kind": "method",
"visibility": "public",
"line_range": [
170,
173
]
},
{
"id": "wizard/session.ts:WizardSession:next",
"type": "Function",
"name": "next",
"kind": "method",
"visibility": "public",
"line_range": [
175,
190
]
},
{
"id": "wizard/session.ts:WizardSession:answer",
"type": "Function",
"name": "answer",
"kind": "method",
"visibility": "public",
"line_range": [
192,
200
]
},
{
"id": "wizard/session.ts:WizardSession:cancel",
"type": "Function",
"name": "cancel",
"kind": "method",
"visibility": "public",
"line_range": [
202,
214
]
},
{
"id": "wizard/session.ts:WizardSession:pushStep",
"type": "Function",
"name": "pushStep",
"kind": "method",
"visibility": "public",
"line_range": [
216,
219
]
},
{
"id": "wizard/session.ts:WizardSession:run",
"type": "Function",
"name": "run",
"kind": "method",
"visibility": "private",
"line_range": [
221,
236
]
},
{
"id": "wizard/session.ts:WizardSession:awaitAnswer",
"type": "Function",
"name": "awaitAnswer",
"kind": "method",
"visibility": "public",
"line_range": [
238,
246
]
},
{
"id": "wizard/session.ts:WizardSession:resolveStep",
"type": "Function",
"name": "resolveStep",
"kind": "method",
"visibility": "private",
"line_range": [
248,
255
]
},
{
"id": "wizard/session.ts:WizardSession:getStatus",
"type": "Function",
"name": "getStatus",
"kind": "method",
"visibility": "public",
"line_range": [
257,
259
]
},
{
"id": "wizard/session.ts:WizardSession:getError",
"type": "Function",
"name": "getError",
"kind": "method",
"visibility": "public",
"line_range": [
261,
263
]
}
],
"relationships": [
{
"type": "IMPORTS",
"source": "wizard/session.ts",
"target": "dep:node:crypto"
},
{
"type": "IMPORTS",
"source": "wizard/session.ts",
"target": "dep:wizard/prompts.js"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts",
"target": "wizard/session.ts:createDeferred"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts",
"target": "wizard/session.ts:WizardSessionPrompter"
},
{
"type": "IMPLEMENTS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "WizardPrompter"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:constructor"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:intro"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:intro",
"target": "this.prompt"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:outro"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:outro",
"target": "this.prompt"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:note"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:note",
"target": "this.prompt"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:select"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:select",
"target": "this.prompt"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:select",
"target": "params.options.map"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:multiselect"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:multiselect",
"target": "this.prompt"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:multiselect",
"target": "params.options.map"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:multiselect",
"target": "Array.isArray"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:text"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:text",
"target": "this.prompt"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:text",
"target": "String"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:text",
"target": "params.validate"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:confirm"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:confirm",
"target": "this.prompt"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:confirm",
"target": "Boolean"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:progress"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSessionPrompter",
"target": "wizard/session.ts:WizardSessionPrompter:prompt"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:prompt",
"target": "this.session.awaitAnswer"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSessionPrompter:prompt",
"target": "randomUUID"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts",
"target": "wizard/session.ts:WizardSession"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:constructor"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:constructor",
"target": "this.run"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:next"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:next",
"target": "createDeferred"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:answer"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:answer",
"target": "this.answerDeferred.get"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:answer",
"target": "this.answerDeferred.delete"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:answer",
"target": "deferred.resolve"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:cancel"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:cancel",
"target": "deferred.reject"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:cancel",
"target": "this.answerDeferred.clear"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:cancel",
"target": "this.resolveStep"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:pushStep"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:pushStep",
"target": "this.resolveStep"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:run"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:run",
"target": "this.runner"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:run",
"target": "String"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:run",
"target": "this.resolveStep"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:awaitAnswer"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:awaitAnswer",
"target": "this.pushStep"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:awaitAnswer",
"target": "createDeferred"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:awaitAnswer",
"target": "this.answerDeferred.set"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:resolveStep"
},
{
"type": "CALLS",
"source": "wizard/session.ts:WizardSession:resolveStep",
"target": "deferred.resolve"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:getStatus"
},
{
"type": "CONTAINS",
"source": "wizard/session.ts:WizardSession",
"target": "wizard/session.ts:WizardSession:getError"
}
]
}

View File

@@ -0,0 +1,83 @@
{
"file": "/tmp/main.tf",
"language": "hcl",
"entities": [
{
"id": "main.tf",
"type": "Config",
"name": "main.tf",
"kind": "terraform",
"visibility": "public",
"line_range": [
1,
18
]
},
{
"id": "main.tf:provider.aws",
"type": "Config",
"name": "provider.aws",
"kind": "hcl-block",
"visibility": "public",
"line_range": [
1,
1
]
},
{
"id": "main.tf:resource.aws_s3_bucket.b",
"type": "Config",
"name": "resource.aws_s3_bucket.b",
"kind": "hcl-block",
"visibility": "public",
"line_range": [
5,
5
]
},
{
"id": "main.tf:module.vpc",
"type": "Config",
"name": "module.vpc",
"kind": "hcl-block",
"visibility": "public",
"line_range": [
9,
9
]
},
{
"id": "main.tf:data.aws_iam_policy_document.assume_role",
"type": "Config",
"name": "data.aws_iam_policy_document.assume_role",
"kind": "hcl-block",
"visibility": "public",
"line_range": [
13,
13
]
}
],
"relationships": [
{
"type": "CONTAINS",
"source": "main.tf",
"target": "main.tf:provider.aws"
},
{
"type": "CONTAINS",
"source": "main.tf",
"target": "main.tf:resource.aws_s3_bucket.b"
},
{
"type": "CONTAINS",
"source": "main.tf",
"target": "main.tf:module.vpc"
},
{
"type": "CONTAINS",
"source": "main.tf",
"target": "main.tf:data.aws_iam_policy_document.assume_role"
}
]
}

View File

@@ -0,0 +1,83 @@
{
"file": "/tmp/test_deployment.yaml",
"language": "yaml",
"entities": [
{
"id": "test_deployment.yaml",
"type": "Config",
"name": "test_deployment.yaml",
"kind": "yaml-config",
"visibility": "public",
"line_range": [
1,
12
]
},
{
"id": "test_deployment.yaml:apiVersion",
"type": "Config",
"name": "apiVersion",
"kind": "yaml-key",
"visibility": "public",
"line_range": [
1,
1
]
},
{
"id": "test_deployment.yaml:kind",
"type": "Config",
"name": "kind",
"kind": "yaml-key",
"visibility": "public",
"line_range": [
1,
1
]
},
{
"id": "test_deployment.yaml:metadata",
"type": "Config",
"name": "metadata",
"kind": "yaml-key",
"visibility": "public",
"line_range": [
1,
1
]
},
{
"id": "test_deployment.yaml:spec",
"type": "Config",
"name": "spec",
"kind": "yaml-key",
"visibility": "public",
"line_range": [
1,
1
]
}
],
"relationships": [
{
"type": "CONTAINS",
"source": "test_deployment.yaml",
"target": "test_deployment.yaml:apiVersion"
},
{
"type": "CONTAINS",
"source": "test_deployment.yaml",
"target": "test_deployment.yaml:kind"
},
{
"type": "CONTAINS",
"source": "test_deployment.yaml",
"target": "test_deployment.yaml:metadata"
},
{
"type": "CONTAINS",
"source": "test_deployment.yaml",
"target": "test_deployment.yaml:spec"
}
]
}