{"version":"v143","entries":{"f0c26c790ef561db7792a3712aca65338a941d9d7c47bdbc3d749a2f0f3b0ef6":[{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/autonomy.ts","line":1,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/autonomy.ts","line":2,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.OperationClass","file":"extensions/pi-brain/autonomy.ts","line":4,"props":{"exported":true,"language":"typescript","symbol_kind":"type"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AutonomyOperation","file":"extensions/pi-brain/autonomy.ts","line":6,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.sessionSummaries","file":"extensions/pi-brain/autonomy.ts","line":12,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getTrustLevel","file":"extensions/pi-brain/autonomy.ts","line":14,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readAutonomyTrust"}]},{"kind":"symbol","name":"extensions/pi-brain.recordOperation","file":"extensions/pi-brain/autonomy.ts","line":22,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getSessionSummary","file":"extensions/pi-brain/autonomy.ts","line":28,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.clearSessionSummary","file":"extensions/pi-brain/autonomy.ts","line":32,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.formatSummary","file":"extensions/pi-brain/autonomy.ts","line":36,"props":{"cyclomatic":3,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.shouldProceed","file":"extensions/pi-brain/autonomy.ts","line":45,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.shouldNotify","file":"extensions/pi-brain/autonomy.ts","line":49,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"file_ref","name":"extensions/pi-brain/autonomy.ts","file":"extensions/pi-brain/autonomy.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.TrustLevel"},{"kind":"calls","target":"extensions/pi-brain.readAutonomyTrust"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.sessionFile"},{"kind":"calls","target":"extensions/pi-brain.op"},{"kind":"calls","target":"extensions/pi-brain.list"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/brain-home.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/brain-home.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/brain-home.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/brain-home.ts","line":16,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.findBrainHome","file":"extensions/pi-brain/brain-home.ts","line":18,"props":{"cyclomatic":8,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"symbol","name":"extensions/pi-brain.readOrg","file":"extensions/pi-brain/brain-home.ts","line":45,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.readAutoConnect","file":"extensions/pi-brain/brain-home.ts","line":54,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.readHarvestCompaction","file":"extensions/pi-brain/brain-home.ts","line":64,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readHarvestConfig"}]},{"kind":"symbol","name":"extensions/pi-brain.readHarvestConfig","file":"extensions/pi-brain/brain-home.ts","line":69,"props":{"cyclomatic":5,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.parseInt"}]},{"kind":"symbol","name":"extensions/pi-brain.readContextInjectionConfig","file":"extensions/pi-brain/brain-home.ts","line":86,"props":{"cyclomatic":4,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.parseInt"}]},{"kind":"symbol","name":"extensions/pi-brain.readToolResultEnrichmentConfig","file":"extensions/pi-brain/brain-home.ts","line":103,"props":{"cyclomatic":5,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.parseInt"}]},{"kind":"symbol","name":"extensions/pi-brain.readShortcutsConfig","file":"extensions/pi-brain/brain-home.ts","line":120,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.readEventBusConfig","file":"extensions/pi-brain/brain-home.ts","line":130,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.readSessionShutdownConfig","file":"extensions/pi-brain/brain-home.ts","line":140,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.parseBoolean","file":"extensions/pi-brain/brain-home.ts","line":150,"props":{"cyclomatic":5,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.parseArgs","file":"extensions/pi-brain/brain-home.ts","line":155,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.readEnolaConfig","file":"extensions/pi-brain/brain-home.ts","line":165,"props":{"cyclomatic":12,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.parseArgs"},{"kind":"calls","target":"extensions/pi-brain.parseBoolean"}]},{"kind":"symbol","name":"extensions/pi-brain.readAutonomy","file":"extensions/pi-brain/brain-home.ts","line":196,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.writeAutonomy","file":"extensions/pi-brain/brain-home.ts","line":205,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.DEFAULT_TRUST","file":"extensions/pi-brain/brain-home.ts","line":210,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TRUST_LEVELS","file":"extensions/pi-brain/brain-home.ts","line":221,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.parseTrustLevel","file":"extensions/pi-brain/brain-home.ts","line":223,"props":{"cyclomatic":3,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.readAutonomyTrust","file":"extensions/pi-brain/brain-home.ts","line":228,"props":{"calls_in_loop":["extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.parseTrustLevel"],"calls_in_scaling_loop":["extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.parseTrustLevel"],"cyclomatic":3,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.parseTrustLevel"}]},{"kind":"symbol","name":"extensions/pi-brain.countPages","file":"extensions/pi-brain/brain-home.ts","line":242,"props":{"cyclomatic":2,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.countSources","file":"extensions/pi-brain/brain-home.ts","line":247,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.countPagesByKind","file":"extensions/pi-brain/brain-home.ts","line":252,"props":{"calls_in_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue"],"calls_in_scaling_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue"],"cyclomatic":6,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.readInbox","file":"extensions/pi-brain/brain-home.ts","line":266,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.findRecentSources","file":"extensions/pi-brain/brain-home.ts","line":274,"props":{"calls_in_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.stat"],"calls_in_scaling_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.stat"],"cyclomatic":9,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.stat"}]},{"kind":"file_ref","name":"extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/brain-home.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.envHome"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.resolved"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.projectHint"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.hinted"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.config"},{"kind":"calls","target":"extensions/pi-brain.readHarvestConfig"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.CompactionHarvestConfig"},{"kind":"calls","target":"extensions/pi-brain.parseInt"},{"kind":"calls","target":"extensions/pi-brain.maxItems"},{"kind":"calls","target":"extensions/pi-brain.minScore"},{"kind":"calls","target":"extensions/pi-brain.ContextInjectionConfig"},{"kind":"calls","target":"extensions/pi-brain.maxRecords"},{"kind":"calls","target":"extensions/pi-brain.ToolResultEnrichmentConfig"},{"kind":"calls","target":"extensions/pi-brain.maxRelated"},{"kind":"calls","target":"extensions/pi-brain.threshold"},{"kind":"calls","target":"extensions/pi-brain.BrainShortcutsConfig"},{"kind":"calls","target":"extensions/pi-brain.BrainEventBusConfig"},{"kind":"calls","target":"extensions/pi-brain.SessionShutdownConfig"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.EnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.parseArgs"},{"kind":"calls","target":"extensions/pi-brain.checkArgs"},{"kind":"calls","target":"extensions/pi-brain.baselineArgs"},{"kind":"calls","target":"extensions/pi-brain.queryArgs"},{"kind":"calls","target":"extensions/pi-brain.impactArgs"},{"kind":"calls","target":"extensions/pi-brain.parseBoolean"},{"kind":"calls","target":"extensions/pi-brain.gateBuild"},{"kind":"calls","target":"extensions/pi-brain.gateSyncCode"},{"kind":"calls","target":"extensions/pi-brain.autoBaseline"},{"kind":"calls","target":"extensions/pi-brain.AutonomyState"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.state"},{"kind":"calls","target":"extensions/pi-brain.AutonomyTrustConfig"},{"kind":"calls","target":"extensions/pi-brain.TrustLevel"},{"kind":"calls","target":"extensions/pi-brain.DEFAULT_TRUST"},{"kind":"calls","target":"extensions/pi-brain.parseTrustLevel"},{"kind":"calls","target":"extensions/pi-brain.value"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.frontmatter"},{"kind":"calls","target":"extensions/pi-brain.kind"},{"kind":"calls","target":"extensions/pi-brain.sourcesDir"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.full"},{"kind":"calls","target":"extensions/pi-brain.stat"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/intent-blocks.ts","file":"extensions/pi-brain/build-renderers.ts","line":1,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/intent-blocks.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModelField","file":"extensions/pi-brain/build-renderers.ts","line":3,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModel","file":"extensions/pi-brain/build-renderers.ts","line":10,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.mapType","file":"extensions/pi-brain/build-renderers.ts","line":15,"props":{"cyclomatic":7,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.renderDataModel","file":"extensions/pi-brain/build-renderers.ts","line":27,"props":{"calls_in_loop":["extensions/pi-brain.mapType"],"calls_in_scaling_loop":["extensions/pi-brain.mapType"],"cyclomatic":6,"exported":false,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.mapType"}]},{"kind":"symbol","name":"extensions/pi-brain.renderTypescriptTypes","file":"extensions/pi-brain/build-renderers.ts","line":41,"props":{"calls_in_loop":["extensions/pi-brain.renderDataModel"],"calls_in_scaling_loop":["extensions/pi-brain.renderDataModel"],"cyclomatic":4,"exported":true,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.renderDataModel"}]},{"kind":"symbol","name":"extensions/pi-brain.renderTarget","file":"extensions/pi-brain/build-renderers.ts","line":57,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.renderTypescriptTypes"}]},{"kind":"file_ref","name":"extensions/pi-brain/build-renderers.ts","file":"extensions/pi-brain/build-renderers.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.IntentBlock"},{"kind":"calls","target":"extensions/pi-brain.mapType"},{"kind":"calls","target":"extensions/pi-brain.renderDataModel"},{"kind":"calls","target":"extensions/pi-brain.block"},{"kind":"calls","target":"extensions/pi-brain.renderTypescriptTypes"},{"kind":"calls","target":"extensions/pi-brain.blocks"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/build.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/build.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/build.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/build.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/intent-blocks.ts","file":"extensions/pi-brain/build.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/intent-blocks.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/build-renderers.ts","file":"extensions/pi-brain/build.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/build-renderers.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/build.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/build.ts","line":8,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/enola.ts","file":"extensions/pi-brain/build.ts","line":9,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/enola.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.registerBuild","file":"extensions/pi-brain/build.ts","line":11,"props":{"cyclomatic":14,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.enolaGateCheck"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.renderTarget"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"}]},{"kind":"file_ref","name":"extensions/pi-brain/build.ts","file":"extensions/pi-brain/build.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.target"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.enolaGateCheck"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.renderTarget"},{"kind":"calls","target":"extensions/pi-brain.blocks"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.outputDir"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.outputPath"},{"kind":"calls","target":"extensions/pi-brain.output"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:child_process","file":"extensions/pi-brain/collaboration.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:child_process"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs","file":"extensions/pi-brain/collaboration.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:os","file":"extensions/pi-brain/collaboration.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:os"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/collaboration.ts","line":4,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/collaboration.ts","line":5,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/resources.ts","file":"extensions/pi-brain/collaboration.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/resources.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/collaboration.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.MAX_PARALLEL","file":"extensions/pi-brain/collaboration.ts","line":9,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.MAX_OUTPUT","file":"extensions/pi-brain/collaboration.ts","line":10,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AgentConfig","file":"extensions/pi-brain/collaboration.ts","line":12,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AgentResult","file":"extensions/pi-brain/collaboration.ts","line":20,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getPiInvocation","file":"extensions/pi-brain/collaboration.ts","line":28,"props":{"cyclomatic":5,"exported":false,"io_direct":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.writeTempPrompt","file":"extensions/pi-brain/collaboration.ts","line":42,"props":{"cyclomatic":1,"exported":false,"io_direct":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.runAgent","file":"extensions/pi-brain/collaboration.ts","line":50,"props":{"calls_in_loop":["extensions/pi-brain.processLine","Buffer.byteLength"],"calls_in_scaling_loop":["extensions/pi-brain.processLine","Buffer.byteLength"],"cyclomatic":23,"exported":true,"io_direct":true,"language":"typescript","loop_count":3,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.writeTempPrompt"},{"kind":"calls","target":"extensions/pi-brain.getPiInvocation"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.processLine"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.setTimeout"},{"kind":"calls","target":"extensions/pi-brain.kill"}]},{"kind":"symbol","name":"extensions/pi-brain.mapWithConcurrency","file":"extensions/pi-brain/collaboration.ts","line":151,"props":{"calls_in_loop":["extensions/pi-brain.fn"],"calls_in_scaling_loop":["extensions/pi-brain.fn"],"cyclomatic":5,"exported":false,"language":"typescript","loop_count":2,"loop_depth":2,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.fn"}]},{"kind":"symbol","name":"extensions/pi-brain.loadBrainAgent","file":"extensions/pi-brain/collaboration.ts","line":173,"props":{"cyclomatic":8,"exported":true,"io_direct":true,"language":"typescript","loop_count":1,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.runParallel","file":"extensions/pi-brain/collaboration.ts","line":197,"props":{"cyclomatic":1,"exported":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.mapWithConcurrency"},{"kind":"calls","target":"extensions/pi-brain.runAgent"}]},{"kind":"symbol","name":"extensions/pi-brain.runChain","file":"extensions/pi-brain/collaboration.ts","line":206,"props":{"calls_in_loop":["extensions/pi-brain.runAgent"],"calls_in_scaling_loop":["extensions/pi-brain.runAgent"],"cyclomatic":3,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.runAgent"}]},{"kind":"symbol","name":"extensions/pi-brain.formatResults","file":"extensions/pi-brain/collaboration.ts","line":224,"props":{"cyclomatic":5,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.DEFAULT_AGENTS","file":"extensions/pi-brain/collaboration.ts","line":235,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.registerCollaboration","file":"extensions/pi-brain/collaboration.ts","line":237,"props":{"calls_in_loop":["extensions/pi-brain.loadBrainAgent"],"calls_in_scaling_loop":["extensions/pi-brain.loadBrainAgent"],"cyclomatic":7,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.loadBrainAgent"},{"kind":"calls","target":"extensions/pi-brain.runParallel"},{"kind":"calls","target":"extensions/pi-brain.formatResults"}]},{"kind":"file_ref","name":"extensions/pi-brain/collaboration.ts","file":"extensions/pi-brain/collaboration.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.currentScript"},{"kind":"calls","target":"extensions/pi-brain.execName"},{"kind":"calls","target":"extensions/pi-brain.tmpDir"},{"kind":"calls","target":"extensions/pi-brain.filePath"},{"kind":"calls","target":"extensions/pi-brain.prompt"},{"kind":"calls","target":"extensions/pi-brain.writeTempPrompt"},{"kind":"calls","target":"extensions/pi-brain.tmpPromptPath"},{"kind":"calls","target":"extensions/pi-brain.getPiInvocation"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.line"},{"kind":"calls","target":"extensions/pi-brain.processLine"},{"kind":"calls","target":"extensions/pi-brain.buffer"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.setTimeout"},{"kind":"calls","target":"extensions/pi-brain.kill"},{"kind":"calls","target":"extensions/pi-brain.MAX_OUTPUT"},{"kind":"calls","target":"extensions/pi-brain.truncated"},{"kind":"calls","target":"extensions/pi-brain.concurrency"},{"kind":"calls","target":"extensions/pi-brain.fn"},{"kind":"calls","target":"extensions/pi-brain.current"},{"kind":"calls","target":"extensions/pi-brain.workers"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.pkgRoot"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.content"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.frontmatter"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.mapWithConcurrency"},{"kind":"calls","target":"extensions/pi-brain.agents"},{"kind":"calls","target":"extensions/pi-brain.MAX_PARALLEL"},{"kind":"calls","target":"extensions/pi-brain.runAgent"},{"kind":"calls","target":"extensions/pi-brain.agent"},{"kind":"calls","target":"extensions/pi-brain.task"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.signal"},{"kind":"calls","target":"extensions/pi-brain.previousOutput"},{"kind":"calls","target":"extensions/pi-brain.taskWithContext"},{"kind":"calls","target":"extensions/pi-brain.result"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.loadBrainAgent"},{"kind":"calls","target":"extensions/pi-brain.name"},{"kind":"calls","target":"extensions/pi-brain.runParallel"},{"kind":"calls","target":"extensions/pi-brain.formatResults"},{"kind":"calls","target":"extensions/pi-brain.results"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/commands.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/commands.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/commands.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/commands.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/commands.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/commands.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/resources.ts","file":"extensions/pi-brain/commands.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/resources.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/search.ts","file":"extensions/pi-brain/commands.ts","line":8,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/search.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/views.ts","file":"extensions/pi-brain/commands.ts","line":9,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/views.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/commands.ts","line":10,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/collaboration.ts","file":"extensions/pi-brain/commands.ts","line":11,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/collaboration.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/build.ts","file":"extensions/pi-brain/commands.ts","line":12,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/build.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/diff.ts","file":"extensions/pi-brain/commands.ts","line":13,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/diff.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/revise.ts","file":"extensions/pi-brain/commands.ts","line":14,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/revise.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/tasks.ts","file":"extensions/pi-brain/commands.ts","line":15,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/tasks.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/enola.ts","file":"extensions/pi-brain/commands.ts","line":16,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/enola.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/sync-code.ts","file":"extensions/pi-brain/commands.ts","line":17,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/sync-code.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/rfc-contribute.ts","file":"extensions/pi-brain/commands.ts","line":18,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/rfc-contribute.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.registerCommands","file":"extensions/pi-brain/commands.ts","line":20,"props":{"cyclomatic":92,"exported":true,"language":"typescript","loop_count":9,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.registerCollaboration"},{"kind":"calls","target":"extensions/pi-brain.registerBuild"},{"kind":"calls","target":"extensions/pi-brain.registerDiff"},{"kind":"calls","target":"extensions/pi-brain.registerRevise"},{"kind":"calls","target":"extensions/pi-brain.registerTasks"},{"kind":"calls","target":"extensions/pi-brain.registerEnolaCommands"},{"kind":"calls","target":"extensions/pi-brain.registerSyncCode"},{"kind":"calls","target":"extensions/pi-brain.registerRfcContribute"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"},{"kind":"calls","target":"extensions/pi-brain.validateMarkdown"},{"kind":"calls","target":"extensions/pi-brain.regenerateViews"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.copyFile"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.writeAutonomy"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"}]},{"kind":"file_ref","name":"extensions/pi-brain/commands.ts","file":"extensions/pi-brain/commands.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.registerCollaboration"},{"kind":"calls","target":"extensions/pi-brain.pi"},{"kind":"calls","target":"extensions/pi-brain.registerBuild"},{"kind":"calls","target":"extensions/pi-brain.registerDiff"},{"kind":"calls","target":"extensions/pi-brain.registerRevise"},{"kind":"calls","target":"extensions/pi-brain.registerTasks"},{"kind":"calls","target":"extensions/pi-brain.registerEnolaCommands"},{"kind":"calls","target":"extensions/pi-brain.registerSyncCode"},{"kind":"calls","target":"extensions/pi-brain.registerRfcContribute"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.ctx"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.inbox"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.inboxPath"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.validateMarkdown"},{"kind":"calls","target":"extensions/pi-brain.regenerateViews"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.message"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.defaultOrg"},{"kind":"calls","target":"extensions/pi-brain.defaultRepos"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.indexPath"},{"kind":"calls","target":"extensions/pi-brain.sourcesReadmePath"},{"kind":"calls","target":"extensions/pi-brain.logPath"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.gitDir"},{"kind":"calls","target":"extensions/pi-brain.hookTarget"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.copyFile"},{"kind":"calls","target":"extensions/pi-brain.hookSource"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.script"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.writeAutonomy"},{"kind":"calls","target":"extensions/pi-brain.state"},{"kind":"calls","target":"extensions/pi-brain.cmdArgs"},{"kind":"calls","target":"extensions/pi-brain.fixturesDir"},{"kind":"calls","target":"extensions/pi-brain.fileName"},{"kind":"calls","target":"extensions/pi-brain.outPath"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.subdir"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/compaction-harvest.ts","line":1,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/inbox.ts","file":"extensions/pi-brain/compaction-harvest.ts","line":2,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/inbox.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.SIGNAL_PATTERNS","file":"extensions/pi-brain/compaction-harvest.ts","line":4,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.NOISE_PATTERNS","file":"extensions/pi-brain/compaction-harvest.ts","line":9,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.scoreSnippet","file":"extensions/pi-brain/compaction-harvest.ts","line":13,"props":{"calls_in_loop":["text.match"],"calls_in_scaling_loop":["text.match"],"cyclomatic":5,"exported":false,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.extractSnippets","file":"extensions/pi-brain/compaction-harvest.ts","line":26,"props":{"cyclomatic":4,"exported":false,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.normalizeKey","file":"extensions/pi-brain/compaction-harvest.ts","line":33,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.runCompactionHarvest","file":"extensions/pi-brain/compaction-harvest.ts","line":37,"props":{"calls_in_loop":["extensions/pi-brain.extractSnippets","extensions/pi-brain.scoreSnippet","extensions/pi-brain.normalizeKey","extensions/pi-brain.buildInboxEntry","extensions/pi-brain.replaceInboxItem"],"calls_in_scaling_loop":["extensions/pi-brain.extractSnippets","extensions/pi-brain.scoreSnippet","extensions/pi-brain.normalizeKey","extensions/pi-brain.buildInboxEntry","extensions/pi-brain.replaceInboxItem"],"cyclomatic":15,"exported":true,"language":"typescript","loop_count":4,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.extractSnippets"},{"kind":"calls","target":"extensions/pi-brain.scoreSnippet"},{"kind":"calls","target":"extensions/pi-brain.normalizeKey"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.replaceInboxItem"},{"kind":"calls","target":"extensions/pi-brain.appendLog"}]},{"kind":"file_ref","name":"extensions/pi-brain/compaction-harvest.ts","file":"extensions/pi-brain/compaction-harvest.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.pattern"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.CompactionHarvestConfig"},{"kind":"calls","target":"extensions/pi-brain.extractSnippets"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.scoreSnippet"},{"kind":"calls","target":"extensions/pi-brain.snippet"},{"kind":"calls","target":"extensions/pi-brain.normalizeKey"},{"kind":"calls","target":"extensions/pi-brain.key"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.id"},{"kind":"calls","target":"extensions/pi-brain.date"},{"kind":"calls","target":"extensions/pi-brain.summary"},{"kind":"calls","target":"extensions/pi-brain.replaceInboxItem"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.entry"},{"kind":"calls","target":"extensions/pi-brain.appendLog"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/context-injection.ts","line":1,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/search.ts","file":"extensions/pi-brain/context-injection.ts","line":2,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/search.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.buildInjectedMessages","file":"extensions/pi-brain/context-injection.ts","line":4,"props":{"cyclomatic":11,"exported":true,"language":"typescript","loop_count":4,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"}]},{"kind":"file_ref","name":"extensions/pi-brain/context-injection.ts","file":"extensions/pi-brain/context-injection.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.ContextInjectionConfig"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.query"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/context.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/context.ts","line":2,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/context.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/context.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.requireBrain","file":"extensions/pi-brain/context.ts","line":6,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.findBrainHome"}]},{"kind":"symbol","name":"extensions/pi-brain.setupHint","file":"extensions/pi-brain/context.ts","line":14,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.loadBriefing","file":"extensions/pi-brain/context.ts","line":23,"props":{"cyclomatic":9,"exported":true,"language":"typescript","loop_count":3,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.setupHint"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"}]},{"kind":"file_ref","name":"extensions/pi-brain/context.ts","file":"extensions/pi-brain/context.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.findBrainHome"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.ctx"},{"kind":"calls","target":"extensions/pi-brain.setupHint"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.inbox"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"},{"kind":"calls","target":"extensions/pi-brain.lines"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/diff.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs","file":"extensions/pi-brain/diff.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/diff.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/diff.ts","line":4,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/diff.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/intent-blocks.ts","file":"extensions/pi-brain/diff.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/intent-blocks.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/diff.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.TsInterface","file":"extensions/pi-brain/diff.ts","line":9,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.parseTypeScriptInterfaces","file":"extensions/pi-brain/diff.ts","line":14,"props":{"calls_in_loop":["interfaceRe.exec","line.match"],"calls_in_scaling_loop":["interfaceRe.exec","line.match"],"cyclomatic":5,"exported":true,"language":"typescript","loop_count":2,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModelField","file":"extensions/pi-brain/diff.ts","line":41,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModel","file":"extensions/pi-brain/diff.ts","line":47,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.normalizeType","file":"extensions/pi-brain/diff.ts","line":52,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.intentToInterface","file":"extensions/pi-brain/diff.ts","line":64,"props":{"calls_in_loop":["extensions/pi-brain.normalizeType"],"calls_in_scaling_loop":["extensions/pi-brain.normalizeType"],"cyclomatic":4,"exported":false,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.normalizeType"}]},{"kind":"symbol","name":"extensions/pi-brain.DriftItem","file":"extensions/pi-brain/diff.ts","line":76,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.diffInterfaces","file":"extensions/pi-brain/diff.ts","line":85,"props":{"cyclomatic":15,"exported":true,"language":"typescript","loop_count":8,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.formatDriftReport","file":"extensions/pi-brain/diff.ts","line":129,"props":{"cyclomatic":12,"exported":true,"language":"typescript","loop_count":7,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.registerDiff","file":"extensions/pi-brain/diff.ts","line":171,"props":{"cyclomatic":8,"exported":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseTypeScriptInterfaces"},{"kind":"calls","target":"extensions/pi-brain.diffInterfaces"},{"kind":"calls","target":"extensions/pi-brain.formatDriftReport"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/diff.ts","file":"extensions/pi-brain/diff.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.IntentBlock"},{"kind":"calls","target":"extensions/pi-brain.normalizeType"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.target"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.intentToInterface"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.generatedPath"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseTypeScriptInterfaces"},{"kind":"calls","target":"extensions/pi-brain.codeText"},{"kind":"calls","target":"extensions/pi-brain.diffInterfaces"},{"kind":"calls","target":"extensions/pi-brain.intentInterfaces"},{"kind":"calls","target":"extensions/pi-brain.codeInterfaces"},{"kind":"calls","target":"extensions/pi-brain.formatDriftReport"},{"kind":"calls","target":"extensions/pi-brain.items"},{"kind":"calls","target":"extensions/pi-brain.outputDir"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.outputPath"},{"kind":"calls","target":"extensions/pi-brain.report"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:child_process","file":"extensions/pi-brain/enola.ts","line":11,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:child_process"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/enola.ts","line":12,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/enola.ts","line":13,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/enola.ts","line":14,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/enola.ts","line":15,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/enola.ts","line":16,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/enola.ts","line":17,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/enola.ts","line":18,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:crypto","file":"extensions/pi-brain/enola.ts","line":332,"props":{"dynamic":true,"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:crypto"}]},{"kind":"symbol","name":"extensions/pi-brain.EnolaResult","file":"extensions/pi-brain/enola.ts","line":20,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.findEnolaBinary","file":"extensions/pi-brain/enola.ts","line":28,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getCheckArgs","file":"extensions/pi-brain/enola.ts","line":32,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getBaselineArgs","file":"extensions/pi-brain/enola.ts","line":36,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getQueryArgs","file":"extensions/pi-brain/enola.ts","line":40,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getImpactArgs","file":"extensions/pi-brain/enola.ts","line":44,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.resolveTargetRepo","file":"extensions/pi-brain/enola.ts","line":48,"props":{"cyclomatic":4,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.stat"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnola","file":"extensions/pi-brain/enola.ts","line":60,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.resolve"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaCheck","file":"extensions/pi-brain/enola.ts","line":84,"props":{"cyclomatic":4,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getCheckArgs"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaBaseline","file":"extensions/pi-brain/enola.ts","line":111,"props":{"cyclomatic":4,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getBaselineArgs"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaQuery","file":"extensions/pi-brain/enola.ts","line":133,"props":{"cyclomatic":5,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getQueryArgs"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaImpact","file":"extensions/pi-brain/enola.ts","line":159,"props":{"calls_in_loop":["Math.max","Math.min","Array.from"],"calls_in_scaling_loop":["Math.max","Math.min","Array.from"],"cyclomatic":10,"exported":true,"language":"typescript","loop_count":4,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getImpactArgs"}]},{"kind":"symbol","name":"extensions/pi-brain.formatEnolaResult","file":"extensions/pi-brain/enola.ts","line":203,"props":{"cyclomatic":4,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.enolaGateCheck","file":"extensions/pi-brain/enola.ts","line":210,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.formatEnolaResult"}]},{"kind":"symbol","name":"extensions/pi-brain.slugify","file":"extensions/pi-brain/enola.ts","line":227,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.captureEnolaRegressions","file":"extensions/pi-brain/enola.ts","line":235,"props":{"cyclomatic":5,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.EnolaReceipt","file":"extensions/pi-brain/enola.ts","line":283,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.EnolaReceipts","file":"extensions/pi-brain/enola.ts","line":295,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getEnolaStateDir","file":"extensions/pi-brain/enola.ts","line":299,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.getEnolaReceiptsPath","file":"extensions/pi-brain/enola.ts","line":303,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getEnolaStateDir"}]},{"kind":"symbol","name":"extensions/pi-brain.getEnolaOutputDir","file":"extensions/pi-brain/enola.ts","line":307,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.getEnolaReceiptPath","file":"extensions/pi-brain/enola.ts","line":311,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getEnolaOutputDir"}]},{"kind":"symbol","name":"extensions/pi-brain.repoNameFromPath","file":"extensions/pi-brain/enola.ts","line":315,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.computeFactsDigest","file":"extensions/pi-brain/enola.ts","line":319,"props":{"calls_in_loop":["JSON.stringify","JSON.parse"],"calls_in_scaling_loop":["JSON.stringify","JSON.parse"],"cyclomatic":5,"exported":false,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaGenerate","file":"extensions/pi-brain/enola.ts","line":339,"props":{"cyclomatic":10,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptPath"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getEnolaOutputDir"},{"kind":"calls","target":"extensions/pi-brain.computeFactsDigest"},{"kind":"calls","target":"extensions/pi-brain.repoNameFromPath"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptsPath"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.getEnolaStateDir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.readEnolaReceipts","file":"extensions/pi-brain/enola.ts","line":392,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptsPath"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaDiff","file":"extensions/pi-brain/enola.ts","line":400,"props":{"cyclomatic":20,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.readEnolaReceipts"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptPath"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getEnolaOutputDir"},{"kind":"calls","target":"extensions/pi-brain.computeFactsDigest"},{"kind":"calls","target":"extensions/pi-brain.repoNameFromPath"}]},{"kind":"symbol","name":"extensions/pi-brain.ENOLA_CITATION_RX","file":"extensions/pi-brain/enola.ts","line":469,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.EnolaCitation","file":"extensions/pi-brain/enola.ts","line":471,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.runEnolaCitations","file":"extensions/pi-brain/enola.ts","line":480,"props":{"calls_in_loop":["extensions/pi-brain.readFile","ENOLA_CITATION_RX.exec"],"calls_in_scaling_loop":["extensions/pi-brain.readFile","ENOLA_CITATION_RX.exec"],"cyclomatic":12,"exported":true,"language":"typescript","loop_count":3,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaReceipts"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"symbol","name":"extensions/pi-brain.registerEnolaCommands","file":"extensions/pi-brain/enola.ts","line":517,"props":{"cyclomatic":22,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.captureEnolaRegressions"},{"kind":"calls","target":"extensions/pi-brain.runEnolaGenerate"},{"kind":"calls","target":"extensions/pi-brain.formatEnolaResult"},{"kind":"calls","target":"extensions/pi-brain.runEnolaDiff"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCitations"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"},{"kind":"calls","target":"extensions/pi-brain.runEnolaQuery"},{"kind":"calls","target":"extensions/pi-brain.runEnolaImpact"}]},{"kind":"file_ref","name":"extensions/pi-brain/enola.ts","file":"extensions/pi-brain/enola.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.EnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.target"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.binary"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.resolveTargetRepo"},{"kind":"calls","target":"extensions/pi-brain.config"},{"kind":"calls","target":"extensions/pi-brain.findEnolaBinary"},{"kind":"calls","target":"extensions/pi-brain.runEnola"},{"kind":"calls","target":"extensions/pi-brain.getCheckArgs"},{"kind":"calls","target":"extensions/pi-brain.getBaselineArgs"},{"kind":"calls","target":"extensions/pi-brain.getQueryArgs"},{"kind":"calls","target":"extensions/pi-brain.getImpactArgs"},{"kind":"calls","target":"extensions/pi-brain.queryLower"},{"kind":"calls","target":"extensions/pi-brain.j"},{"kind":"calls","target":"extensions/pi-brain.matchedIndices"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.formatEnolaResult"},{"kind":"calls","target":"extensions/pi-brain.result"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.filePath"},{"kind":"calls","target":"extensions/pi-brain.body"},{"kind":"calls","target":"extensions/pi-brain.getEnolaStateDir"},{"kind":"calls","target":"extensions/pi-brain.getEnolaOutputDir"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.factsPath"},{"kind":"calls","target":"extensions/pi-brain.l"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptPath"},{"kind":"calls","target":"extensions/pi-brain.receiptPath"},{"kind":"calls","target":"extensions/pi-brain.computeFactsDigest"},{"kind":"calls","target":"extensions/pi-brain.repoNameFromPath"},{"kind":"calls","target":"extensions/pi-brain.receipts"},{"kind":"calls","target":"extensions/pi-brain.getEnolaReceiptsPath"},{"kind":"calls","target":"extensions/pi-brain.readEnolaReceipts"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.digest"},{"kind":"calls","target":"extensions/pi-brain.commit"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.captureEnolaRegressions"},{"kind":"calls","target":"extensions/pi-brain.runEnolaGenerate"},{"kind":"calls","target":"extensions/pi-brain.runEnolaDiff"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCitations"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"},{"kind":"calls","target":"extensions/pi-brain.runEnolaQuery"},{"kind":"calls","target":"extensions/pi-brain.query"},{"kind":"calls","target":"extensions/pi-brain.runEnolaImpact"},{"kind":"calls","target":"extensions/pi-brain.symbol"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/entry-renderers.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-tui","file":"extensions/pi-brain/entry-renderers.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-tui"}]},{"kind":"symbol","name":"extensions/pi-brain.registerBrainEntryRenderers","file":"extensions/pi-brain/entry-renderers.ts","line":4,"props":{"cyclomatic":6,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"file_ref","name":"extensions/pi-brain/entry-renderers.ts","file":"extensions/pi-brain/entry-renderers.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.s"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.box"},{"kind":"calls","target":"extensions/pi-brain.summary"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/events.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"symbol","name":"extensions/pi-brain.BrainEvent","file":"extensions/pi-brain/events.ts","line":3,"props":{"exported":true,"language":"typescript","symbol_kind":"type"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.emitBrainEvent","file":"extensions/pi-brain/events.ts","line":7,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/hooks.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/hooks.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/hooks.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/hooks.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/resources.ts","file":"extensions/pi-brain/hooks.ts","line":15,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/resources.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/inbox.ts","file":"extensions/pi-brain/hooks.ts","line":16,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/inbox.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/compaction-harvest.ts","file":"extensions/pi-brain/hooks.ts","line":17,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/compaction-harvest.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context-injection.ts","file":"extensions/pi-brain/hooks.ts","line":18,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context-injection.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/tool-result-enrichment.ts","file":"extensions/pi-brain/hooks.ts","line":19,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/tool-result-enrichment.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/entry-renderers.ts","file":"extensions/pi-brain/hooks.ts","line":20,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/entry-renderers.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/shortcuts.ts","file":"extensions/pi-brain/hooks.ts","line":21,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/shortcuts.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/session-shutdown.ts","file":"extensions/pi-brain/hooks.ts","line":22,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/session-shutdown.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/refinement.ts","file":"extensions/pi-brain/hooks.ts","line":23,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/refinement.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/autonomy.ts","file":"extensions/pi-brain/hooks.ts","line":24,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/autonomy.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/events.ts","file":"extensions/pi-brain/hooks.ts","line":25,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/events.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/prompts.ts","file":"extensions/pi-brain/hooks.ts","line":26,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/prompts.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/state.ts","file":"extensions/pi-brain/hooks.ts","line":27,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/state.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/hooks.ts","line":28,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/hooks.ts","line":29,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.STATE_CHANGING_BRAIN_TOOLS","file":"extensions/pi-brain/hooks.ts","line":31,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.renderBrainBriefing","file":"extensions/pi-brain/hooks.ts","line":46,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"}]},{"kind":"symbol","name":"extensions/pi-brain.registerHooks","file":"extensions/pi-brain/hooks.ts","line":58,"props":{"calls_in_loop":["constraint.globs.some","extensions/pi-brain.matchGlob"],"calls_in_scaling_loop":["constraint.globs.some","extensions/pi-brain.matchGlob"],"cyclomatic":57,"exported":true,"language":"typescript","loop_count":7,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.registerBrainEntryRenderers"},{"kind":"calls","target":"extensions/pi-brain.registerBrainShortcuts"},{"kind":"calls","target":"extensions/pi-brain.registerBrainShutdown"},{"kind":"calls","target":"extensions/pi-brain.registerRefinement"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.getSessionSummary"},{"kind":"calls","target":"extensions/pi-brain.formatSummary"},{"kind":"calls","target":"extensions/pi-brain.clearSessionSummary"},{"kind":"calls","target":"extensions/pi-brain.loadBriefing"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.autoGroom"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.hasAgentsMd"},{"kind":"calls","target":"extensions/pi-brain.loadPrompt"},{"kind":"calls","target":"extensions/pi-brain.readAutoConnect"},{"kind":"calls","target":"extensions/pi-brain.renderBrainBriefing"},{"kind":"calls","target":"extensions/pi-brain.readContextInjectionConfig"},{"kind":"calls","target":"extensions/pi-brain.buildInjectedMessages"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.loadActiveConstraints"},{"kind":"calls","target":"extensions/pi-brain.matchGlob"},{"kind":"calls","target":"extensions/pi-brain.readHarvestConfig"},{"kind":"calls","target":"extensions/pi-brain.runCompactionHarvest"},{"kind":"calls","target":"extensions/pi-brain.readToolResultEnrichmentConfig"},{"kind":"calls","target":"extensions/pi-brain.enrichToolResult"},{"kind":"calls","target":"extensions/pi-brain.readEventBusConfig"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.emitBrainEvent"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"}]},{"kind":"file_ref","name":"extensions/pi-brain/hooks.ts","file":"extensions/pi-brain/hooks.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.inbox"},{"kind":"calls","target":"extensions/pi-brain.registerBrainEntryRenderers"},{"kind":"calls","target":"extensions/pi-brain.pi"},{"kind":"calls","target":"extensions/pi-brain.registerBrainShortcuts"},{"kind":"calls","target":"extensions/pi-brain.registerBrainShutdown"},{"kind":"calls","target":"extensions/pi-brain.briefedSessions"},{"kind":"calls","target":"extensions/pi-brain.lastSystemPrompt"},{"kind":"calls","target":"extensions/pi-brain.registerRefinement"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.getSessionSummary"},{"kind":"calls","target":"extensions/pi-brain.sessionFile"},{"kind":"calls","target":"extensions/pi-brain.formatSummary"},{"kind":"calls","target":"extensions/pi-brain.summary"},{"kind":"calls","target":"extensions/pi-brain.clearSessionSummary"},{"kind":"calls","target":"extensions/pi-brain.loadBriefing"},{"kind":"calls","target":"extensions/pi-brain.ctx"},{"kind":"calls","target":"extensions/pi-brain.name"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.autoGroom"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.overrideSkills"},{"kind":"calls","target":"extensions/pi-brain.overridePrompts"},{"kind":"calls","target":"extensions/pi-brain.overrideThemes"},{"kind":"calls","target":"extensions/pi-brain.pkgRoot"},{"kind":"calls","target":"extensions/pi-brain.hasAgentsMd"},{"kind":"calls","target":"extensions/pi-brain.loadPrompt"},{"kind":"calls","target":"extensions/pi-brain.autonomy"},{"kind":"calls","target":"extensions/pi-brain.readAutoConnect"},{"kind":"calls","target":"extensions/pi-brain.renderBrainBriefing"},{"kind":"calls","target":"extensions/pi-brain.readContextInjectionConfig"},{"kind":"calls","target":"extensions/pi-brain.buildInjectedMessages"},{"kind":"calls","target":"extensions/pi-brain.messages"},{"kind":"calls","target":"extensions/pi-brain.config"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.targetPath"},{"kind":"calls","target":"extensions/pi-brain.loadActiveConstraints"},{"kind":"calls","target":"extensions/pi-brain.matchGlob"},{"kind":"calls","target":"extensions/pi-brain.relPath"},{"kind":"calls","target":"extensions/pi-brain.g"},{"kind":"calls","target":"extensions/pi-brain.readHarvestConfig"},{"kind":"calls","target":"extensions/pi-brain.runCompactionHarvest"},{"kind":"calls","target":"extensions/pi-brain.entries"},{"kind":"calls","target":"extensions/pi-brain.toolName"},{"kind":"calls","target":"extensions/pi-brain.readToolResultEnrichmentConfig"},{"kind":"calls","target":"extensions/pi-brain.enrichToolResult"},{"kind":"calls","target":"extensions/pi-brain.event"},{"kind":"calls","target":"extensions/pi-brain.enrichmentConfig"},{"kind":"calls","target":"extensions/pi-brain.message"},{"kind":"calls","target":"extensions/pi-brain.readEventBusConfig"},{"kind":"calls","target":"extensions/pi-brain.emitBrainEvent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/inbox.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/inbox.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/inbox.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/inbox.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/inbox.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.buildInboxEntry","file":"extensions/pi-brain/inbox.ts","line":7,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.appendInboxItem","file":"extensions/pi-brain/inbox.ts","line":19,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.replaceInboxItem","file":"extensions/pi-brain/inbox.ts","line":28,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.AUTO_INGEST_BATCH_PATH","file":"extensions/pi-brain/inbox.ts","line":42,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.readAutoIngestBatch","file":"extensions/pi-brain/inbox.ts","line":44,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.writeAutoIngestBatch","file":"extensions/pi-brain/inbox.ts","line":53,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.appendAutoIngestBatch","file":"extensions/pi-brain/inbox.ts","line":58,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.writeAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.flushAutoIngestInboxItem"}]},{"kind":"symbol","name":"extensions/pi-brain.flushAutoIngestInboxItem","file":"extensions/pi-brain/inbox.ts","line":65,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.replaceInboxItem"}]},{"kind":"symbol","name":"extensions/pi-brain.clearAutoIngestBatch","file":"extensions/pi-brain/inbox.ts","line":73,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.AUTO_INGEST_TTL_DAYS","file":"extensions/pi-brain/inbox.ts","line":81,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.daysAgo","file":"extensions/pi-brain/inbox.ts","line":83,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.appendLog","file":"extensions/pi-brain/inbox.ts","line":89,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.autoGroom","file":"extensions/pi-brain/inbox.ts","line":96,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.daysAgo"},{"kind":"calls","target":"extensions/pi-brain.replaceInboxItem"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.clearAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.appendLog"}]},{"kind":"symbol","name":"extensions/pi-brain.ingestFile","file":"extensions/pi-brain/inbox.ts","line":105,"props":{"cyclomatic":4,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":0,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.ingestDirectory","file":"extensions/pi-brain/inbox.ts","line":140,"props":{"calls_in_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.isTextFile","extensions/pi-brain.readFile","extensions/pi-brain.relative"],"calls_in_scaling_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.isTextFile","extensions/pi-brain.readFile","extensions/pi-brain.relative"],"cyclomatic":17,"exported":true,"language":"typescript","loop_count":3,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.isTextFile"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.ingestUrl","file":"extensions/pi-brain/inbox.ts","line":210,"props":{"cyclomatic":7,"exported":true,"io_direct":true,"language":"typescript","loop_count":1,"loop_depth":1,"performs_io":true,"scaling_loop_depth":0,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.fetch"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/inbox.ts","file":"extensions/pi-brain/inbox.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.slugify"},{"kind":"calls","target":"extensions/pi-brain.title"},{"kind":"calls","target":"extensions/pi-brain.buildInboxEntry"},{"kind":"calls","target":"extensions/pi-brain.id"},{"kind":"calls","target":"extensions/pi-brain.date"},{"kind":"calls","target":"extensions/pi-brain.note"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.inboxPath"},{"kind":"calls","target":"extensions/pi-brain.current"},{"kind":"calls","target":"extensions/pi-brain.pattern"},{"kind":"calls","target":"extensions/pi-brain.updated"},{"kind":"calls","target":"extensions/pi-brain.AutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.batch"},{"kind":"calls","target":"extensions/pi-brain.readAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.targetPath"},{"kind":"calls","target":"extensions/pi-brain.writeAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.flushAutoIngestInboxItem"},{"kind":"calls","target":"extensions/pi-brain.summary"},{"kind":"calls","target":"extensions/pi-brain.replaceInboxItem"},{"kind":"calls","target":"extensions/pi-brain.entry"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.logPath"},{"kind":"calls","target":"extensions/pi-brain.daysAgo"},{"kind":"calls","target":"extensions/pi-brain.clearAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.appendLog"},{"kind":"calls","target":"extensions/pi-brain.sourcePath"},{"kind":"calls","target":"extensions/pi-brain.fileName"},{"kind":"calls","target":"extensions/pi-brain.kind"},{"kind":"calls","target":"extensions/pi-brain.targetDir"},{"kind":"calls","target":"extensions/pi-brain.dirName"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.full"},{"kind":"calls","target":"extensions/pi-brain.isTextFile"},{"kind":"calls","target":"extensions/pi-brain.fetch"},{"kind":"calls","target":"extensions/pi-brain.url"},{"kind":"calls","target":"extensions/pi-brain.fetchedContent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/index.ts","line":10,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/tools.ts","file":"extensions/pi-brain/index.ts","line":11,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/tools.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/commands.ts","file":"extensions/pi-brain/index.ts","line":12,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/commands.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/hooks.ts","file":"extensions/pi-brain/index.ts","line":13,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/hooks.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.lastSystemPrompt","file":"extensions/pi-brain/index.ts","line":16,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.briefedSessions","file":"extensions/pi-brain/index.ts","line":19,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.ALWAYS_ACTIVE_TOOLS","file":"extensions/pi-brain/index.ts","line":21,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BRAIN_HOME_TOOLS","file":"extensions/pi-brain/index.ts","line":22,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BOOTSTRAP_TOOLS","file":"extensions/pi-brain/index.ts","line":37,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.piBrainExtension","file":"extensions/pi-brain/index.ts","line":39,"props":{"cyclomatic":1,"exported":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.registerTools"},{"kind":"calls","target":"extensions/pi-brain.registerCommands"},{"kind":"calls","target":"extensions/pi-brain.registerHooks"}]},{"kind":"file_ref","name":"extensions/pi-brain/index.ts","file":"extensions/pi-brain/index.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.registerTools"},{"kind":"calls","target":"extensions/pi-brain.pi"},{"kind":"calls","target":"extensions/pi-brain.registerCommands"},{"kind":"calls","target":"extensions/pi-brain.lastSystemPrompt"},{"kind":"calls","target":"extensions/pi-brain.registerHooks"},{"kind":"calls","target":"extensions/pi-brain.briefedSessions"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs","file":"extensions/pi-brain/intent-blocks.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/intent-blocks.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/intent-blocks.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/intent-blocks.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.IntentBlockType","file":"extensions/pi-brain/intent-blocks.ts","line":6,"props":{"exported":true,"language":"typescript","symbol_kind":"type"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.IntentBlock","file":"extensions/pi-brain/intent-blocks.ts","line":8,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BLOCK_FENCE_RE","file":"extensions/pi-brain/intent-blocks.ts","line":15,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BLOCK_END_RE","file":"extensions/pi-brain/intent-blocks.ts","line":16,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.parseYamlLike","file":"extensions/pi-brain/intent-blocks.ts","line":18,"props":{"calls_in_loop":["extensions/pi-brain.leadingSpaces","extensions/pi-brain.parseScalarOrCollection","extensions/pi-brain.parseValue","extensions/pi-brain.parseObject","Object.assign"],"calls_in_scaling_loop":["extensions/pi-brain.leadingSpaces","extensions/pi-brain.parseScalarOrCollection","extensions/pi-brain.parseValue","extensions/pi-brain.parseObject","Object.assign"],"cyclomatic":39,"exported":false,"language":"typescript","loop_count":5,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.parseInt"},{"kind":"calls","target":"extensions/pi-brain.parseFloat"},{"kind":"calls","target":"extensions/pi-brain.peekNonBlank"},{"kind":"calls","target":"extensions/pi-brain.leadingSpaces"},{"kind":"calls","target":"extensions/pi-brain.parseList"},{"kind":"calls","target":"extensions/pi-brain.parseObject"},{"kind":"calls","target":"extensions/pi-brain.parseScalarOrCollection"},{"kind":"calls","target":"extensions/pi-brain.parseValue"}]},{"kind":"symbol","name":"extensions/pi-brain.extractBlocks","file":"extensions/pi-brain/intent-blocks.ts","line":146,"props":{"calls_in_loop":["BLOCK_FENCE_RE.exec","BLOCK_END_RE.test","extensions/pi-brain.parseYamlLike"],"calls_in_scaling_loop":["BLOCK_FENCE_RE.exec","BLOCK_END_RE.test","extensions/pi-brain.parseYamlLike"],"cyclomatic":6,"exported":true,"language":"typescript","loop_count":2,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.parseYamlLike"}]},{"kind":"symbol","name":"extensions/pi-brain.collectBlocks","file":"extensions/pi-brain/intent-blocks.ts","line":173,"props":{"calls_in_loop":["path.relative","/\\/(prds|adrs|bets|records)\\//.test","fs.promises.readFile","extensions/pi-brain.extractBlocks"],"calls_in_scaling_loop":["path.relative","/\\/(prds|adrs|bets|records)\\//.test","fs.promises.readFile","extensions/pi-brain.extractBlocks"],"cyclomatic":7,"exported":true,"io_direct":true,"language":"typescript","loop_count":2,"loop_depth":2,"performs_io":true,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.extractBlocks"}]},{"kind":"file_ref","name":"extensions/pi-brain/intent-blocks.ts","file":"extensions/pi-brain/intent-blocks.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.trimmed"},{"kind":"calls","target":"extensions/pi-brain.parseInt"},{"kind":"calls","target":"extensions/pi-brain.parseFloat"},{"kind":"calls","target":"extensions/pi-brain.peekNonBlank"},{"kind":"calls","target":"extensions/pi-brain.i"},{"kind":"calls","target":"extensions/pi-brain.leadingSpaces"},{"kind":"calls","target":"extensions/pi-brain.childIndent"},{"kind":"calls","target":"extensions/pi-brain.parseList"},{"kind":"calls","target":"extensions/pi-brain.parseObject"},{"kind":"calls","target":"extensions/pi-brain.line"},{"kind":"calls","target":"extensions/pi-brain.indent"},{"kind":"calls","target":"extensions/pi-brain.colonIndex"},{"kind":"calls","target":"extensions/pi-brain.parseScalarOrCollection"},{"kind":"calls","target":"extensions/pi-brain.parseValue"},{"kind":"calls","target":"extensions/pi-brain.rest"},{"kind":"calls","target":"extensions/pi-brain.next"},{"kind":"calls","target":"extensions/pi-brain.obj"},{"kind":"calls","target":"extensions/pi-brain.nested"},{"kind":"calls","target":"extensions/pi-brain.item"},{"kind":"calls","target":"extensions/pi-brain.firstIndent"},{"kind":"calls","target":"extensions/pi-brain.start"},{"kind":"calls","target":"extensions/pi-brain.parseYamlLike"},{"kind":"calls","target":"extensions/pi-brain.blockText"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.scopeDir"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.rel"},{"kind":"calls","target":"extensions/pi-brain.extractBlocks"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.block"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/prompts.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/prompts.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/prompts.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/resources.ts","file":"extensions/pi-brain/prompts.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/resources.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.loadPrompt","file":"extensions/pi-brain/prompts.ts","line":6,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"symbol","name":"extensions/pi-brain.hasAgentsMd","file":"extensions/pi-brain/prompts.ts","line":15,"props":{"cyclomatic":3,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"file_ref","name":"extensions/pi-brain/prompts.ts","file":"extensions/pi-brain/prompts.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.brainHome"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.name"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/refinement.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/refinement.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/refinement.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/refinement.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/refinement.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/autonomy.ts","file":"extensions/pi-brain/refinement.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/autonomy.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.pendingRefinement","file":"extensions/pi-brain/refinement.ts","line":8,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.MAX_SUGGESTIONS","file":"extensions/pi-brain/refinement.ts","line":9,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.countRefinementSuggestions","file":"extensions/pi-brain/refinement.ts","line":11,"props":{"cyclomatic":3,"exported":false,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.getSessionFile","file":"extensions/pi-brain/refinement.ts","line":20,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.lastEntryIsRefinementTrigger","file":"extensions/pi-brain/refinement.ts","line":24,"props":{"cyclomatic":4,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.registerRefinement","file":"extensions/pi-brain/refinement.ts","line":34,"props":{"cyclomatic":13,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getSessionFile"},{"kind":"calls","target":"extensions/pi-brain.lastEntryIsRefinementTrigger"},{"kind":"calls","target":"extensions/pi-brain.getHome"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.getTrustLevel"},{"kind":"calls","target":"extensions/pi-brain.countRefinementSuggestions"},{"kind":"calls","target":"extensions/pi-brain.shouldNotify"},{"kind":"calls","target":"extensions/pi-brain.recordOperation"},{"kind":"calls","target":"extensions/pi-brain.shouldProceed"}]},{"kind":"file_ref","name":"extensions/pi-brain/refinement.ts","file":"extensions/pi-brain/refinement.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getSessionFile"},{"kind":"calls","target":"extensions/pi-brain.ctx"},{"kind":"calls","target":"extensions/pi-brain.sessionFile"},{"kind":"calls","target":"extensions/pi-brain.lastEntryIsRefinementTrigger"},{"kind":"calls","target":"extensions/pi-brain.getHome"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.getTrustLevel"},{"kind":"calls","target":"extensions/pi-brain.countRefinementSuggestions"},{"kind":"calls","target":"extensions/pi-brain.shouldNotify"},{"kind":"calls","target":"extensions/pi-brain.trust"},{"kind":"calls","target":"extensions/pi-brain.recordOperation"},{"kind":"calls","target":"extensions/pi-brain.shouldProceed"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/resources.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/resources.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:url","file":"extensions/pi-brain/resources.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:url"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/resources.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/resources.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.getPackageRoot","file":"extensions/pi-brain/resources.ts","line":7,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.dirname"},{"kind":"calls","target":"extensions/pi-brain.fileURLToPath"}]},{"kind":"symbol","name":"extensions/pi-brain.resolveResource","file":"extensions/pi-brain/resources.ts","line":13,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"}]},{"kind":"symbol","name":"extensions/pi-brain.readPackageVersion","file":"extensions/pi-brain/resources.ts","line":21,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"}]},{"kind":"file_ref","name":"extensions/pi-brain/resources.ts","file":"extensions/pi-brain/resources.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.dirname"},{"kind":"calls","target":"extensions/pi-brain.fileURLToPath"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.name"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.override"},{"kind":"calls","target":"extensions/pi-brain.getPackageRoot"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.pkg"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/revise.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/revise.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/revise.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/revise.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/revise.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.ALLOWED_KINDS","file":"extensions/pi-brain/revise.ts","line":7,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.registerRevise","file":"extensions/pi-brain/revise.ts","line":9,"props":{"cyclomatic":9,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/revise.ts","file":"extensions/pi-brain/revise.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.kind"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.slug"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.targetPath"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.prompt"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/rfc-contribute.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/rfc-contribute.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/rfc-contribute.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/rfc-contribute.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/rfc-contribute.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/collaboration.ts","file":"extensions/pi-brain/rfc-contribute.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/collaboration.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.formatContribution","file":"extensions/pi-brain/rfc-contribute.ts","line":8,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.appendContribution","file":"extensions/pi-brain/rfc-contribute.ts","line":22,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.registerRfcContribute","file":"extensions/pi-brain/rfc-contribute.ts","line":30,"props":{"cyclomatic":12,"exported":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.loadBrainAgent"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.runAgent"},{"kind":"calls","target":"extensions/pi-brain.formatContribution"},{"kind":"calls","target":"extensions/pi-brain.appendContribution"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/rfc-contribute.ts","file":"extensions/pi-brain/rfc-contribute.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.marker"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.slug"},{"kind":"calls","target":"extensions/pi-brain.author"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.rfcPath"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.loadBrainAgent"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.runAgent"},{"kind":"calls","target":"extensions/pi-brain.agent"},{"kind":"calls","target":"extensions/pi-brain.agentTask"},{"kind":"calls","target":"extensions/pi-brain.formatContribution"},{"kind":"calls","target":"extensions/pi-brain.task"},{"kind":"calls","target":"extensions/pi-brain.contributionText"},{"kind":"calls","target":"extensions/pi-brain.appendContribution"},{"kind":"calls","target":"extensions/pi-brain.rfcText"},{"kind":"calls","target":"extensions/pi-brain.contribution"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.updated"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/search.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/search.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/search.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/search.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.searchFiles","file":"extensions/pi-brain/search.ts","line":6,"props":{"calls_in_loop":["extensions/pi-brain.pathExists","extensions/pi-brain.getMarkdownFiles","extensions/pi-brain.readFile","extensions/pi-brain.relative","extensions/pi-brain.tokenize","Math.log","queryTerms.some"],"calls_in_scaling_loop":["extensions/pi-brain.pathExists","extensions/pi-brain.getMarkdownFiles","extensions/pi-brain.readFile","extensions/pi-brain.relative","extensions/pi-brain.tokenize","Math.log","queryTerms.some"],"cyclomatic":22,"exported":true,"language":"typescript","loop_count":11,"loop_depth":3,"scaling_loop_depth":3,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.tokenize"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.relative"}]},{"kind":"file_ref","name":"extensions/pi-brain/search.ts","file":"extensions/pi-brain/search.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.tokenize"},{"kind":"calls","target":"extensions/pi-brain.query"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.term"},{"kind":"calls","target":"extensions/pi-brain.t"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/session-shutdown.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/session-shutdown.ts","line":2,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/inbox.ts","file":"extensions/pi-brain/session-shutdown.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/inbox.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.registerBrainShutdown","file":"extensions/pi-brain/session-shutdown.ts","line":5,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.logSessionShutdown","file":"extensions/pi-brain/session-shutdown.ts","line":22,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.appendLog"}]},{"kind":"file_ref","name":"extensions/pi-brain/session-shutdown.ts","file":"extensions/pi-brain/session-shutdown.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.appendLog"},{"kind":"calls","target":"extensions/pi-brain.home"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/shortcuts.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"symbol","name":"extensions/pi-brain.registerBrainShortcuts","file":"extensions/pi-brain/shortcuts.ts","line":3,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/state.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/state.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/state.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/state.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.ActiveConstraint","file":"extensions/pi-brain/state.ts","line":6,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.loadActiveConstraints","file":"extensions/pi-brain/state.ts","line":11,"props":{"calls_in_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","line.match"],"calls_in_scaling_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","line.match"],"cyclomatic":13,"exported":true,"language":"typescript","loop_count":2,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.matchGlob","file":"extensions/pi-brain/state.ts","line":46,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"file_ref","name":"extensions/pi-brain/state.ts","file":"extensions/pi-brain/state.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.constraintsDir"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.frontmatter"},{"kind":"calls","target":"extensions/pi-brain.path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/sync-code.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs","file":"extensions/pi-brain/sync-code.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/sync-code.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/sync-code.ts","line":4,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/sync-code.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/intent-blocks.ts","file":"extensions/pi-brain/sync-code.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/intent-blocks.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/diff.ts","file":"extensions/pi-brain/sync-code.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/diff.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/sync-code.ts","line":8,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:crypto","file":"extensions/pi-brain/sync-code.ts","line":9,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:crypto"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/sync-code.ts","line":10,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/enola.ts","file":"extensions/pi-brain/sync-code.ts","line":11,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/enola.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModelField","file":"extensions/pi-brain/sync-code.ts","line":13,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.DataModel","file":"extensions/pi-brain/sync-code.ts","line":19,"props":{"exported":false,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.normalizeType","file":"extensions/pi-brain/sync-code.ts","line":24,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.getGeneratedPath","file":"extensions/pi-brain/sync-code.ts","line":36,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.getProposalsDir","file":"extensions/pi-brain/sync-code.ts","line":40,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"}]},{"kind":"symbol","name":"extensions/pi-brain.generateProposalMarkdown","file":"extensions/pi-brain/sync-code.ts","line":44,"props":{"cyclomatic":7,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.generateSyncProposals","file":"extensions/pi-brain/sync-code.ts","line":106,"props":{"calls_in_loop":["extensions/pi-brain.normalizeType","extensions/pi-brain.randomUUID","extensions/pi-brain.join","extensions/pi-brain.writeFile","extensions/pi-brain.generateProposalMarkdown"],"calls_in_scaling_loop":["extensions/pi-brain.normalizeType","extensions/pi-brain.randomUUID","extensions/pi-brain.join","extensions/pi-brain.writeFile","extensions/pi-brain.generateProposalMarkdown"],"cyclomatic":7,"exported":true,"language":"typescript","loop_count":3,"loop_depth":2,"performs_io":true,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.normalizeType"},{"kind":"calls","target":"extensions/pi-brain.getGeneratedPath"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseTypeScriptInterfaces"},{"kind":"calls","target":"extensions/pi-brain.diffInterfaces"},{"kind":"calls","target":"extensions/pi-brain.getProposalsDir"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.randomUUID"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.generateProposalMarkdown"}]},{"kind":"symbol","name":"extensions/pi-brain.applyCodeChange","file":"extensions/pi-brain/sync-code.ts","line":146,"props":{"calls_in_loop":["trimmed.match"],"calls_in_scaling_loop":["trimmed.match"],"cyclomatic":22,"exported":true,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.registerSyncCode","file":"extensions/pi-brain/sync-code.ts","line":220,"props":{"calls_in_loop":["extensions/pi-brain.applyCodeChange"],"calls_in_scaling_loop":["extensions/pi-brain.applyCodeChange"],"cyclomatic":19,"exported":true,"language":"typescript","loop_count":2,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.enolaGateCheck"},{"kind":"calls","target":"extensions/pi-brain.generateSyncProposals"},{"kind":"calls","target":"extensions/pi-brain.getGeneratedPath"},{"kind":"calls","target":"extensions/pi-brain.applyCodeChange"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"}]},{"kind":"file_ref","name":"extensions/pi-brain/sync-code.ts","file":"extensions/pi-brain/sync-code.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.target"},{"kind":"calls","target":"extensions/pi-brain.DriftItem"},{"kind":"calls","target":"extensions/pi-brain.collectBlocks"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.normalizeType"},{"kind":"calls","target":"extensions/pi-brain.TsInterface"},{"kind":"calls","target":"extensions/pi-brain.getGeneratedPath"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.generatedPath"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseTypeScriptInterfaces"},{"kind":"calls","target":"extensions/pi-brain.codeText"},{"kind":"calls","target":"extensions/pi-brain.diffInterfaces"},{"kind":"calls","target":"extensions/pi-brain.intentInterfaces"},{"kind":"calls","target":"extensions/pi-brain.codeInterfaces"},{"kind":"calls","target":"extensions/pi-brain.getProposalsDir"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.proposalsDir"},{"kind":"calls","target":"extensions/pi-brain.randomUUID"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.filePath"},{"kind":"calls","target":"extensions/pi-brain.generateProposalMarkdown"},{"kind":"calls","target":"extensions/pi-brain.item"},{"kind":"calls","target":"extensions/pi-brain.re"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.interfaceRe"},{"kind":"calls","target":"extensions/pi-brain.line"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.readEnolaConfig"},{"kind":"calls","target":"extensions/pi-brain.enolaGateCheck"},{"kind":"calls","target":"extensions/pi-brain.generateSyncProposals"},{"kind":"calls","target":"extensions/pi-brain.applyCodeChange"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:child_process","file":"extensions/pi-brain/tasks.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:child_process"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/tasks.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs","file":"extensions/pi-brain/tasks.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/tasks.ts","line":4,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:crypto","file":"extensions/pi-brain/tasks.ts","line":5,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:crypto"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/tasks.ts","line":6,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/tasks.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/tasks.ts","line":8,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/autonomy.ts","file":"extensions/pi-brain/tasks.ts","line":9,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/autonomy.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/tasks.ts","line":10,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.ALLOWED_BG_OPERATIONS","file":"extensions/pi-brain/tasks.ts","line":12,"props":{"exported":false,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TaskStatus","file":"extensions/pi-brain/tasks.ts","line":14,"props":{"exported":false,"language":"typescript","symbol_kind":"type"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BrainTask","file":"extensions/pi-brain/tasks.ts","line":16,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.taskDir","file":"extensions/pi-brain/tasks.ts","line":29,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.ensureTaskDirs","file":"extensions/pi-brain/tasks.ts","line":33,"props":{"calls_in_loop":["extensions/pi-brain.mkdir","extensions/pi-brain.taskDir"],"calls_in_scaling_loop":["extensions/pi-brain.mkdir","extensions/pi-brain.taskDir"],"cyclomatic":2,"exported":false,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.taskDir"}]},{"kind":"symbol","name":"extensions/pi-brain.loadTask","file":"extensions/pi-brain/tasks.ts","line":39,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"}]},{"kind":"symbol","name":"extensions/pi-brain.saveTask","file":"extensions/pi-brain/tasks.ts","line":48,"props":{"cyclomatic":1,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.taskDir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.moveTask","file":"extensions/pi-brain/tasks.ts","line":54,"props":{"cyclomatic":2,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.taskDir"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.saveTask"}]},{"kind":"symbol","name":"extensions/pi-brain.getPiInvocation","file":"extensions/pi-brain/tasks.ts","line":62,"props":{"cyclomatic":13,"exported":false,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.existsSync"}]},{"kind":"symbol","name":"extensions/pi-brain.executeTaskSubprocess","file":"extensions/pi-brain/tasks.ts","line":92,"props":{"calls_in_loop":["extensions/pi-brain.processLine"],"calls_in_scaling_loop":["extensions/pi-brain.processLine"],"cyclomatic":14,"exported":true,"language":"typescript","loop_count":2,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getPiInvocation"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.processLine"},{"kind":"calls","target":"extensions/pi-brain.resolve"}]},{"kind":"symbol","name":"extensions/pi-brain.enqueueTask","file":"extensions/pi-brain/tasks.ts","line":157,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.randomUUID"},{"kind":"calls","target":"extensions/pi-brain.saveTask"}]},{"kind":"symbol","name":"extensions/pi-brain.listTasks","file":"extensions/pi-brain/tasks.ts","line":179,"props":{"calls_in_loop":["extensions/pi-brain.taskDir","extensions/pi-brain.readdir","extensions/pi-brain.loadTask"],"calls_in_scaling_loop":["extensions/pi-brain.taskDir","extensions/pi-brain.readdir","extensions/pi-brain.loadTask"],"cyclomatic":6,"exported":true,"language":"typescript","loop_count":4,"loop_depth":3,"scaling_loop_depth":3,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.taskDir"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.loadTask"}]},{"kind":"symbol","name":"extensions/pi-brain.RunTasksOptions","file":"extensions/pi-brain/tasks.ts","line":194,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.claimNextPendingTask","file":"extensions/pi-brain/tasks.ts","line":198,"props":{"calls_in_loop":["extensions/pi-brain.taskDir","extensions/pi-brain.rename","extensions/pi-brain.loadTask","extensions/pi-brain.saveTask"],"calls_in_scaling_loop":["extensions/pi-brain.taskDir","extensions/pi-brain.rename","extensions/pi-brain.loadTask","extensions/pi-brain.saveTask"],"cyclomatic":5,"exported":false,"language":"typescript","loop_count":2,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.taskDir"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.rename"},{"kind":"calls","target":"extensions/pi-brain.loadTask"},{"kind":"calls","target":"extensions/pi-brain.saveTask"}]},{"kind":"symbol","name":"extensions/pi-brain.executeOneTask","file":"extensions/pi-brain/tasks.ts","line":221,"props":{"cyclomatic":4,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getTrustLevel"},{"kind":"calls","target":"extensions/pi-brain.shouldProceed"},{"kind":"calls","target":"extensions/pi-brain.moveTask"},{"kind":"calls","target":"extensions/pi-brain.executor"}]},{"kind":"symbol","name":"extensions/pi-brain.runTasks","file":"extensions/pi-brain/tasks.ts","line":251,"props":{"calls_in_loop":["extensions/pi-brain.moveTask","extensions/pi-brain.claimNextPendingTask","extensions/pi-brain.executeOneTask","extensions/pi-brain.listTasks","status.completed.some","status.failed.some"],"calls_in_scaling_loop":["extensions/pi-brain.moveTask","extensions/pi-brain.claimNextPendingTask","extensions/pi-brain.executeOneTask","extensions/pi-brain.listTasks","status.completed.some","status.failed.some"],"cyclomatic":13,"exported":true,"language":"typescript","loop_count":5,"loop_depth":2,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.listTasks"},{"kind":"calls","target":"extensions/pi-brain.moveTask"},{"kind":"calls","target":"extensions/pi-brain.executeOneTask"},{"kind":"calls","target":"extensions/pi-brain.claimNextPendingTask"}]},{"kind":"symbol","name":"extensions/pi-brain.RunTasksDetachedOptions","file":"extensions/pi-brain/tasks.ts","line":298,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.runTasksDetached","file":"extensions/pi-brain/tasks.ts","line":302,"props":{"calls_in_loop":["extensions/pi-brain.spawn","proc.unref"],"calls_in_scaling_loop":["extensions/pi-brain.spawn","proc.unref"],"cyclomatic":8,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.listTasks"},{"kind":"calls","target":"extensions/pi-brain.spawn"}]},{"kind":"symbol","name":"extensions/pi-brain.registerTasks","file":"extensions/pi-brain/tasks.ts","line":360,"props":{"cyclomatic":20,"exported":true,"language":"typescript","loop_count":2,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.enqueueTask"},{"kind":"calls","target":"extensions/pi-brain.runTasksDetached"},{"kind":"calls","target":"extensions/pi-brain.runTasks"},{"kind":"calls","target":"extensions/pi-brain.listTasks"}]},{"kind":"file_ref","name":"extensions/pi-brain/tasks.ts","file":"extensions/pi-brain/tasks.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.AutonomyTrustConfig"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.status"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.taskDir"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.filePath"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.ensureTaskDirs"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.task"},{"kind":"calls","target":"extensions/pi-brain.from"},{"kind":"calls","target":"extensions/pi-brain.existsSync"},{"kind":"calls","target":"extensions/pi-brain.fromPath"},{"kind":"calls","target":"extensions/pi-brain.unlink"},{"kind":"calls","target":"extensions/pi-brain.saveTask"},{"kind":"calls","target":"extensions/pi-brain.to"},{"kind":"calls","target":"extensions/pi-brain.currentScript"},{"kind":"calls","target":"extensions/pi-brain.execName"},{"kind":"calls","target":"extensions/pi-brain.getPiInvocation"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.spawn"},{"kind":"calls","target":"extensions/pi-brain.line"},{"kind":"calls","target":"extensions/pi-brain.processLine"},{"kind":"calls","target":"extensions/pi-brain.buffer"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.operation"},{"kind":"calls","target":"extensions/pi-brain.randomUUID"},{"kind":"calls","target":"extensions/pi-brain.result"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.loadTask"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.rename"},{"kind":"calls","target":"extensions/pi-brain.pendingPath"},{"kind":"calls","target":"extensions/pi-brain.runningPath"},{"kind":"calls","target":"extensions/pi-brain.getTrustLevel"},{"kind":"calls","target":"extensions/pi-brain.shouldProceed"},{"kind":"calls","target":"extensions/pi-brain.trust"},{"kind":"calls","target":"extensions/pi-brain.moveTask"},{"kind":"calls","target":"extensions/pi-brain.executor"},{"kind":"calls","target":"extensions/pi-brain.cwd"},{"kind":"calls","target":"extensions/pi-brain.listTasks"},{"kind":"calls","target":"extensions/pi-brain.executeOneTask"},{"kind":"calls","target":"extensions/pi-brain.claimNextPendingTask"},{"kind":"calls","target":"extensions/pi-brain.runnerPath"},{"kind":"calls","target":"extensions/pi-brain.command"},{"kind":"calls","target":"extensions/pi-brain.baseArgs"},{"kind":"calls","target":"extensions/pi-brain.isValidIdentifier"},{"kind":"calls","target":"extensions/pi-brain.scope"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.enqueueTask"},{"kind":"calls","target":"extensions/pi-brain.description"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.runTasksDetached"},{"kind":"calls","target":"extensions/pi-brain.runTasks"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/template-update.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/template-update.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/template-update.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/template-update.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.TEMPLATE_OWNER","file":"extensions/pi-brain/template-update.ts","line":6,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TEMPLATE_REPO","file":"extensions/pi-brain/template-update.ts","line":7,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TEMPLATE_OWNED_PATHS","file":"extensions/pi-brain/template-update.ts","line":9,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TemplateChange","file":"extensions/pi-brain/template-update.ts","line":31,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.fetchJson","file":"extensions/pi-brain/template-update.ts","line":36,"props":{"cyclomatic":2,"exported":false,"io_direct":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.fetch"}]},{"kind":"symbol","name":"extensions/pi-brain.getLatestTemplateVersion","file":"extensions/pi-brain/template-update.ts","line":46,"props":{"cyclomatic":1,"exported":true,"language":"typescript","performs_io":true,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.fetchJson"}]},{"kind":"symbol","name":"extensions/pi-brain.cloneUpstreamTemplate","file":"extensions/pi-brain/template-update.ts","line":51,"props":{"cyclomatic":4,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"}]},{"kind":"symbol","name":"extensions/pi-brain.readTemplateVersion","file":"extensions/pi-brain/template-update.ts","line":72,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"}]},{"kind":"symbol","name":"extensions/pi-brain.updateTemplateVersion","file":"extensions/pi-brain/template-update.ts","line":81,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"symbol","name":"extensions/pi-brain.diffTemplatePaths","file":"extensions/pi-brain/template-update.ts","line":91,"props":{"calls_in_loop":["extensions/pi-brain.join","extensions/pi-brain.pathExists","extensions/pi-brain.execFilePromise"],"calls_in_scaling_loop":["extensions/pi-brain.join","extensions/pi-brain.pathExists","extensions/pi-brain.execFilePromise"],"cyclomatic":9,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"}]},{"kind":"symbol","name":"extensions/pi-brain.applyTemplateChange","file":"extensions/pi-brain/template-update.ts","line":112,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.dirname"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.copyFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/template-update.ts","file":"extensions/pi-brain/template-update.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.fetch"},{"kind":"calls","target":"extensions/pi-brain.url"},{"kind":"calls","target":"extensions/pi-brain.fetchJson"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.mkdir"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.config"},{"kind":"calls","target":"extensions/pi-brain.configPath"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.rel"},{"kind":"calls","target":"extensions/pi-brain.upstreamDir"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.localPath"},{"kind":"calls","target":"extensions/pi-brain.upstreamPath"},{"kind":"calls","target":"extensions/pi-brain.dirname"},{"kind":"calls","target":"extensions/pi-brain.parent"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.copyFile"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/tool-result-enrichment.ts","line":1,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/tool-result-enrichment.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/search.ts","file":"extensions/pi-brain/tool-result-enrichment.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/search.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/state.ts","file":"extensions/pi-brain/tool-result-enrichment.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/state.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.isInsideBrain","file":"extensions/pi-brain/tool-result-enrichment.ts","line":6,"props":{"cyclomatic":3,"exported":false,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.relative"}]},{"kind":"symbol","name":"extensions/pi-brain.getTextContent","file":"extensions/pi-brain/tool-result-enrichment.ts","line":12,"props":{"cyclomatic":7,"exported":false,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.enrichToolResult","file":"extensions/pi-brain/tool-result-enrichment.ts","line":21,"props":{"calls_in_loop":["c.globs.some","extensions/pi-brain.matchGlob"],"calls_in_scaling_loop":["c.globs.some","extensions/pi-brain.matchGlob"],"cyclomatic":17,"exported":true,"language":"typescript","loop_count":5,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getTextContent"},{"kind":"calls","target":"extensions/pi-brain.isInsideBrain"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.loadActiveConstraints"},{"kind":"calls","target":"extensions/pi-brain.matchGlob"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"}]},{"kind":"file_ref","name":"extensions/pi-brain/tool-result-enrichment.ts","file":"extensions/pi-brain/tool-result-enrichment.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.targetPath"},{"kind":"calls","target":"extensions/pi-brain.content"},{"kind":"calls","target":"extensions/pi-brain.ToolResultEnrichmentConfig"},{"kind":"calls","target":"extensions/pi-brain.getTextContent"},{"kind":"calls","target":"extensions/pi-brain.isInsideBrain"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.loadActiveConstraints"},{"kind":"calls","target":"extensions/pi-brain.matchGlob"},{"kind":"calls","target":"extensions/pi-brain.relPath"},{"kind":"calls","target":"extensions/pi-brain.g"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"}]},{"kind":"symbol","name":"extensions/pi-brain.ToolWrapperOptions","file":"extensions/pi-brain/tool-wrapper.ts","line":12,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.wrapTool","file":"extensions/pi-brain/tool-wrapper.ts","line":29,"props":{"cyclomatic":9,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.baseTool"}]},{"kind":"file_ref","name":"extensions/pi-brain/tool-wrapper.ts","file":"extensions/pi-brain/tool-wrapper.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.hookError"},{"kind":"calls","target":"extensions/pi-brain.baseTool"},{"kind":"calls","target":"extensions/pi-brain.error"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.result"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e @earendil-works/pi-coding-agent","file":"extensions/pi-brain/tools.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"@earendil-works/pi-coding-agent"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e typebox","file":"extensions/pi-brain/tools.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"typebox"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/tools.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/tools.ts","line":4,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/tools.ts","line":5,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/brain-home.ts","file":"extensions/pi-brain/tools.ts","line":6,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/brain-home.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/resources.ts","file":"extensions/pi-brain/tools.ts","line":7,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/resources.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/enola.ts","file":"extensions/pi-brain/tools.ts","line":8,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/enola.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/search.ts","file":"extensions/pi-brain/tools.ts","line":9,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/search.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/views.ts","file":"extensions/pi-brain/tools.ts","line":10,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/views.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/inbox.ts","file":"extensions/pi-brain/tools.ts","line":11,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/inbox.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/context.ts","file":"extensions/pi-brain/tools.ts","line":12,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/context.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/tool-wrapper.ts","file":"extensions/pi-brain/tools.ts","line":13,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/tool-wrapper.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/template-update.ts","file":"extensions/pi-brain/tools.ts","line":14,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/template-update.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.findRecentSources","file":"extensions/pi-brain/tools.ts","line":23,"props":{"calls_in_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.stat","extensions/pi-brain.relative"],"calls_in_scaling_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile","extensions/pi-brain.stat","extensions/pi-brain.relative"],"cyclomatic":7,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.relative"}]},{"kind":"symbol","name":"extensions/pi-brain.registerTools","file":"extensions/pi-brain/tools.ts","line":46,"props":{"calls_in_loop":["extensions/pi-brain.applyTemplateChange","extensions/pi-brain.appendAutoIngestBatch","extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","extensions/pi-brain.readFile"],"calls_in_scaling_loop":["extensions/pi-brain.applyTemplateChange","extensions/pi-brain.appendAutoIngestBatch","extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","extensions/pi-brain.readFile"],"cyclomatic":116,"exported":true,"language":"typescript","loop_count":15,"loop_depth":1,"performs_io":true,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.setupHint"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.wrapTool"},{"kind":"calls","target":"extensions/pi-brain.appendLog"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"},{"kind":"calls","target":"extensions/pi-brain.validateMarkdown"},{"kind":"calls","target":"extensions/pi-brain.regenerateViews"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.updateTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.readPackageVersion"},{"kind":"calls","target":"extensions/pi-brain.readTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.getLatestTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.cloneUpstreamTemplate"},{"kind":"calls","target":"extensions/pi-brain.diffTemplatePaths"},{"kind":"calls","target":"extensions/pi-brain.applyTemplateChange"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.findRecentSources"},{"kind":"calls","target":"extensions/pi-brain.appendAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.writeAutonomy"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.ingestUrl"},{"kind":"calls","target":"extensions/pi-brain.ingestDirectory"},{"kind":"calls","target":"extensions/pi-brain.ingestFile"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.appendInboxItem"},{"kind":"calls","target":"extensions/pi-brain.captureEnolaRegressions"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCitations"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"},{"kind":"calls","target":"extensions/pi-brain.runEnolaGenerate"},{"kind":"calls","target":"extensions/pi-brain.runEnolaDiff"},{"kind":"calls","target":"extensions/pi-brain.runEnolaQuery"},{"kind":"calls","target":"extensions/pi-brain.runEnolaImpact"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.formatEnolaResult"}]},{"kind":"file_ref","name":"extensions/pi-brain/tools.ts","file":"extensions/pi-brain/tools.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.pathExists"},{"kind":"calls","target":"extensions/pi-brain.sourcesDir"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.fullPath"},{"kind":"calls","target":"extensions/pi-brain.stat"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.requireBrain"},{"kind":"calls","target":"extensions/pi-brain.setupHint"},{"kind":"calls","target":"extensions/pi-brain.readOrg"},{"kind":"calls","target":"extensions/pi-brain.home"},{"kind":"calls","target":"extensions/pi-brain.countPages"},{"kind":"calls","target":"extensions/pi-brain.countSources"},{"kind":"calls","target":"extensions/pi-brain.readInbox"},{"kind":"calls","target":"extensions/pi-brain.countInboxItems"},{"kind":"calls","target":"extensions/pi-brain.inbox"},{"kind":"calls","target":"extensions/pi-brain.countPagesByKind"},{"kind":"calls","target":"extensions/pi-brain.listInboxItems"},{"kind":"calls","target":"extensions/pi-brain.writeFile"},{"kind":"calls","target":"extensions/pi-brain.inboxPath"},{"kind":"calls","target":"extensions/pi-brain.wrapTool"},{"kind":"calls","target":"extensions/pi-brain.appendLog"},{"kind":"calls","target":"extensions/pi-brain.brainCaptureTool"},{"kind":"calls","target":"extensions/pi-brain.searchFiles"},{"kind":"calls","target":"extensions/pi-brain.validateMarkdown"},{"kind":"calls","target":"extensions/pi-brain.regenerateViews"},{"kind":"calls","target":"extensions/pi-brain.execFilePromise"},{"kind":"calls","target":"extensions/pi-brain.updateTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.readPackageVersion"},{"kind":"calls","target":"extensions/pi-brain.readTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.getLatestTemplateVersion"},{"kind":"calls","target":"extensions/pi-brain.cloneUpstreamTemplate"},{"kind":"calls","target":"extensions/pi-brain.ghTargetVersion"},{"kind":"calls","target":"extensions/pi-brain.diffTemplatePaths"},{"kind":"calls","target":"extensions/pi-brain.upstreamDir"},{"kind":"calls","target":"extensions/pi-brain.applyTemplateChange"},{"kind":"calls","target":"extensions/pi-brain.change"},{"kind":"calls","target":"extensions/pi-brain.resolveResource"},{"kind":"calls","target":"extensions/pi-brain.script"},{"kind":"calls","target":"extensions/pi-brain.readAutonomy"},{"kind":"calls","target":"extensions/pi-brain.Boolean"},{"kind":"calls","target":"extensions/pi-brain.findRecentSources"},{"kind":"calls","target":"extensions/pi-brain.startTime"},{"kind":"calls","target":"extensions/pi-brain.appendAutoIngestBatch"},{"kind":"calls","target":"extensions/pi-brain.path"},{"kind":"calls","target":"extensions/pi-brain.writeAutonomy"},{"kind":"calls","target":"extensions/pi-brain.state"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.target"},{"kind":"calls","target":"extensions/pi-brain.full"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.f"},{"kind":"calls","target":"extensions/pi-brain.recordFile"},{"kind":"calls","target":"extensions/pi-brain.sourcePath"},{"kind":"calls","target":"extensions/pi-brain.ingestUrl"},{"kind":"calls","target":"extensions/pi-brain.detectedKind"},{"kind":"calls","target":"extensions/pi-brain.ingestDirectory"},{"kind":"calls","target":"extensions/pi-brain.ingestFile"},{"kind":"calls","target":"extensions/pi-brain.targetPath"},{"kind":"calls","target":"extensions/pi-brain.appendInboxItem"},{"kind":"calls","target":"extensions/pi-brain.note"},{"kind":"calls","target":"extensions/pi-brain.captureEnolaRegressions"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCitations"},{"kind":"calls","target":"extensions/pi-brain.runEnolaBaseline"},{"kind":"calls","target":"extensions/pi-brain.runEnolaGenerate"},{"kind":"calls","target":"extensions/pi-brain.runEnolaDiff"},{"kind":"calls","target":"extensions/pi-brain.runEnolaQuery"},{"kind":"calls","target":"extensions/pi-brain.runEnolaImpact"},{"kind":"calls","target":"extensions/pi-brain.runEnolaCheck"},{"kind":"calls","target":"extensions/pi-brain.formatEnolaResult"},{"kind":"calls","target":"extensions/pi-brain.result"}]},{"kind":"symbol","name":"extensions/pi-brain.BrainHome","file":"extensions/pi-brain/types.ts","line":1,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AutoIngestBatchEntry","file":"extensions/pi-brain/types.ts","line":5,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AutoIngestBatch","file":"extensions/pi-brain/types.ts","line":11,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AutonomyState","file":"extensions/pi-brain/types.ts","line":16,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TrustLevel","file":"extensions/pi-brain/types.ts","line":20,"props":{"exported":true,"language":"typescript","symbol_kind":"type"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.AutonomyTrustConfig","file":"extensions/pi-brain/types.ts","line":22,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.CompactionHarvestConfig","file":"extensions/pi-brain/types.ts","line":33,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.ContextInjectionConfig","file":"extensions/pi-brain/types.ts","line":39,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.ToolResultEnrichmentConfig","file":"extensions/pi-brain/types.ts","line":45,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BrainShortcutsConfig","file":"extensions/pi-brain/types.ts","line":51,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.BrainEventBusConfig","file":"extensions/pi-brain/types.ts","line":55,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.SessionShutdownConfig","file":"extensions/pi-brain/types.ts","line":59,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.EnolaConfig","file":"extensions/pi-brain/types.ts","line":63,"props":{"exported":true,"language":"typescript","symbol_kind":"interface"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/utils.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/utils.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:child_process","file":"extensions/pi-brain/utils.ts","line":3,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:child_process"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/utils.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.execFilePromise","file":"extensions/pi-brain/utils.ts","line":6,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.execFile"},{"kind":"calls","target":"extensions/pi-brain.String"},{"kind":"calls","target":"extensions/pi-brain.resolve"}]},{"kind":"symbol","name":"extensions/pi-brain.pathExists","file":"extensions/pi-brain/utils.ts","line":31,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.access"}]},{"kind":"symbol","name":"extensions/pi-brain.getMarkdownFiles","file":"extensions/pi-brain/utils.ts","line":40,"props":{"calls_in_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile"],"calls_in_scaling_loop":["extensions/pi-brain.join","entry.isDirectory","extensions/pi-brain.walk","entry.isFile"],"cyclomatic":7,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.walk"}]},{"kind":"symbol","name":"extensions/pi-brain.parseFrontmatter","file":"extensions/pi-brain/utils.ts","line":62,"props":{"cyclomatic":3,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.extractSimpleYamlValue","file":"extensions/pi-brain/utils.ts","line":78,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.STOP_WORDS","file":"extensions/pi-brain/utils.ts","line":83,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.tokenize","file":"extensions/pi-brain/utils.ts","line":87,"props":{"cyclomatic":3,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.countInboxItems","file":"extensions/pi-brain/utils.ts","line":95,"props":{"cyclomatic":2,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.listInboxItems","file":"extensions/pi-brain/utils.ts","line":99,"props":{"calls_in_loop":["line.match"],"calls_in_scaling_loop":["line.match"],"cyclomatic":7,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.TEXT_EXTENSIONS","file":"extensions/pi-brain/utils.ts","line":116,"props":{"exported":true,"language":"typescript","symbol_kind":"variable"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.isTextFile","file":"extensions/pi-brain/utils.ts","line":122,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.slugify","file":"extensions/pi-brain/utils.ts","line":127,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"symbol","name":"extensions/pi-brain.relativeToHome","file":"extensions/pi-brain/utils.ts","line":135,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.relative"}]},{"kind":"symbol","name":"extensions/pi-brain.isValidIdentifier","file":"extensions/pi-brain/utils.ts","line":139,"props":{"cyclomatic":1,"exported":true,"language":"typescript","symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"}]},{"kind":"file_ref","name":"extensions/pi-brain/utils.ts","file":"extensions/pi-brain/utils.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.execFile"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.args"},{"kind":"calls","target":"extensions/pi-brain.String"},{"kind":"calls","target":"extensions/pi-brain.d"},{"kind":"calls","target":"extensions/pi-brain.reject"},{"kind":"calls","target":"extensions/pi-brain.resolve"},{"kind":"calls","target":"extensions/pi-brain.access"},{"kind":"calls","target":"extensions/pi-brain.p"},{"kind":"calls","target":"extensions/pi-brain.readdir"},{"kind":"calls","target":"extensions/pi-brain.current"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.walk"},{"kind":"calls","target":"extensions/pi-brain.full"},{"kind":"calls","target":"extensions/pi-brain.dir"},{"kind":"calls","target":"extensions/pi-brain.end"},{"kind":"calls","target":"extensions/pi-brain.t"},{"kind":"calls","target":"extensions/pi-brain.ext"},{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.value"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:fs/promises","file":"extensions/pi-brain/views.ts","line":1,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:fs/promises"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e node:path","file":"extensions/pi-brain/views.ts","line":2,"props":{"language":"typescript","source":"external"},"relations":[{"kind":"imports","target":"node:path"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/types.ts","file":"extensions/pi-brain/views.ts","line":3,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/types.ts"}]},{"kind":"dependency","name":"extensions/pi-brain -\u003e extensions/pi-brain/utils.ts","file":"extensions/pi-brain/views.ts","line":4,"props":{"language":"typescript","source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/utils.ts"}]},{"kind":"symbol","name":"extensions/pi-brain.validateMarkdown","file":"extensions/pi-brain/views.ts","line":6,"props":{"calls_in_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.relative"],"calls_in_scaling_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.relative"],"cyclomatic":8,"exported":true,"language":"typescript","loop_count":1,"loop_depth":1,"scaling_loop_depth":1,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.relative"}]},{"kind":"symbol","name":"extensions/pi-brain.regenerateViews","file":"extensions/pi-brain/views.ts","line":27,"props":{"calls_in_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.relative"],"calls_in_scaling_loop":["extensions/pi-brain.readFile","extensions/pi-brain.parseFrontmatter","extensions/pi-brain.extractSimpleYamlValue","extensions/pi-brain.relative"],"cyclomatic":9,"exported":true,"language":"typescript","loop_count":4,"loop_depth":2,"scaling_loop_depth":2,"symbol_kind":"function"},"relations":[{"kind":"declares","target":"extensions/pi-brain"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"file_ref","name":"extensions/pi-brain/views.ts","file":"extensions/pi-brain/views.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.BrainHome"},{"kind":"calls","target":"extensions/pi-brain.getMarkdownFiles"},{"kind":"calls","target":"extensions/pi-brain.join"},{"kind":"calls","target":"extensions/pi-brain.readFile"},{"kind":"calls","target":"extensions/pi-brain.file"},{"kind":"calls","target":"extensions/pi-brain.parseFrontmatter"},{"kind":"calls","target":"extensions/pi-brain.text"},{"kind":"calls","target":"extensions/pi-brain.extractSimpleYamlValue"},{"kind":"calls","target":"extensions/pi-brain.frontmatter"},{"kind":"calls","target":"extensions/pi-brain.relative"},{"kind":"calls","target":"extensions/pi-brain.wikiDir"},{"kind":"calls","target":"extensions/pi-brain.writeFile"}]},{"kind":"dependency","name":"extensions -\u003e extensions/pi-brain/index.ts","file":"extensions/pi-brain.ts","line":2,"props":{"language":"typescript","reexport":true,"source":"internal"},"relations":[{"kind":"imports","target":"extensions/pi-brain/index.ts"}]},{"kind":"file_ref","name":"extensions/pi-brain.ts","file":"extensions/pi-brain.ts","line":1,"props":{"language":"typescript"},"relations":[{"kind":"calls","target":"extensions/pi-brain.default"}]},{"kind":"module","name":"extensions/pi-brain","file":"extensions/pi-brain","props":{"language":"typescript","package_name":"@misabegovic/pi-brain"}},{"kind":"module","name":"extensions","file":"extensions","props":{"language":"typescript","package_name":"@misabegovic/pi-brain"}}]}}