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
580 lines
14 KiB
JSON
580 lines
14 KiB
JSON
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|