{
  "name": "tokencap",
  "displayName": "TokenCap",
  "description": "Self-Loading Universal Context Layer for AI Coding Agents. Stop teaching every AI your codebase. TokenCap makes project intelligence self-discoverable.",
  "version": "1.2.0",
  "private": false,
  "publisher": "VanshArora21",
  "license": "MIT",
  "type": "commonjs",
  "main": "./src/extension.js",
  "files": [
    "bin",
    "src",
    "README.md",
    "LICENSE"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/vansharora21/TOKENCAP.git"
  },
  "keywords": [
    "vscode",
    "extension",
    "context",
    "capsule",
    "context",
    "retrieval",
    "ai",
    "tokencap"
  ],
  "categories": [
    "Other"
  ],
  "bin": {
    "tokencap": "bin/tokencap.js"
  },
  "scripts": {
    "capsule": "node ./bin/tokencap.js make",
    "watch": "node ./bin/tokencap.js watch",
    "check": "node --check ./src/brain/types.js && node --check ./src/brain/buildTimeline.js && node --check ./src/brain/buildBrain.js && node --check ./src/brain/queryBrain.js && node --check ./src/brain/renderBrain.js && node --check ./src/capsule.js && node --check ./src/extension.js && node --check ./bin/tokencap.js && node --check ./src/graph/types.js && node --check ./src/graph/scanFiles.js && node --check ./src/graph/parseImports.js && node --check ./src/graph/resolveImport.js && node --check ./src/graph/buildGraph.js && node --check ./src/graph/renderGraphMarkdown.js && node --check ./src/graph/enrichGraph.js && node --check ./src/graph/renderGraphHtml.js && node --check ./src/graph/buildGraphAiSummary.js && node --check ./src/graph/buildGraphDiff.js && node --check ./src/memory/types.js && node --check ./src/memory/ensureNotesFile.js && node --check ./src/memory/parseNotes.js && node --check ./src/memory/buildMemory.js && node --check ./src/memory/renderMemoryMarkdown.js && node --check ./src/debug/types.js && node --check ./src/debug/ensureDebugNotesFile.js && node --check ./src/debug/parseDebugNotes.js && node --check ./src/debug/extractStackTraceFiles.js && node --check ./src/debug/buildInvestigationOrder.js && node --check ./src/debug/buildDebugReport.js && node --check ./src/debug/renderDebugMarkdown.js && node --check ./src/debug/startSession.js && node --check ./src/debug/endSession.js && node --check ./src/debug/captureCommand.js && node --check ./src/debug/addTimelineEvent.js && node --check ./src/diff/types.js && node --check ./src/diff/gatherDiffData.js && node --check ./src/diff/classifyFiles.js && node --check ./src/diff/classifyRisk.js && node --check ./src/diff/detectBreakingChanges.js && node --check ./src/diff/analyzeDependencies.js && node --check ./src/diff/analyzeDatabase.js && node --check ./src/diff/analyzeEndpoints.js && node --check ./src/diff/inferFeatures.js && node --check ./src/diff/generateTestSuggestions.js && node --check ./src/diff/buildDiffReport.js && node --check ./src/diff/renderDiffMarkdown.js && node --check ./src/diff/renderDiffJson.js && node --check ./src/pack/types.js && node --check ./src/pack/collectFiles.js && node --check ./src/pack/scoreFiles.js && node --check ./src/pack/astSummarize.js && node --check ./src/pack/budgetEngine.js && node --check ./src/pack/generateSections.js && node --check ./src/pack/renderPack.js && node --check ./src/pack/buildPack.js && node --check ./src/context/types.js && node --check ./src/context/parseQuery.js && node --check ./src/context/retrieveFiles.js && node --check ./src/context/buildContext.js && node --check ./src/context/renderContext.js && node --check ./test/capsule.test.js && node --check ./test/config.test.js && node --check ./test/watcher.test.js && node --check ./test/diff.test.js && node --check ./test/brain.test.js && node --check ./src/agent/buildStartHere.js && node --check ./src/agent/buildAllowedContext.js && node --check ./src/agent/buildModelInstructions.js && node --check ./src/agent/buildContextManifest.js && node --check ./test/agent.test.js && node --check ./src/agent/execution-contract/types.js && node --check ./src/agent/execution-contract/buildExecutionState.js && node --check ./src/agent/execution-contract/buildEngineeringPrinciples.js && node --check ./src/agent/execution-contract/buildDecisionFramework.js && node --check ./src/agent/execution-contract/buildExecutionLadder.js && node --check ./src/agent/execution-contract/buildExecutionScope.js && node --check ./src/agent/execution-contract/buildVerificationRules.js && node --check ./src/agent/execution-contract/buildChangeClassification.js && node --check ./src/agent/execution-contract/buildRecoveryMode.js && node --check ./src/agent/buildExecutionContract.js && node --check ./test/execution.test.js",
    "test": "node ./test/capsule.test.js && node ./test/config.test.js && node ./test/watcher.test.js && node ./test/diff.test.js && node ./test/brain.test.js && node ./test/agent.test.js && node ./test/execution.test.js",
    "prepublishOnly": "npm run check && npm run test",
    "vsce:package": "npx @vscode/vsce package --allow-unused-files-pattern",
    "vsce:publish": "npx @vscode/vsce publish --allow-unused-files-pattern --pat $VSCE_TOKEN"
  },
  "engines": {
    "vscode": "^1.88.0",
    "node": ">=18"
  },
  "activationEvents": [
    "onStartupFinished"
  ],
  "contributes": {
    "commands": [
      {
        "command": "tokencap.make",
        "title": "TokenCap: Make Now"
      },
      {
        "command": "tokencap.open",
        "title": "TokenCap: Open"
      },
      {
        "command": "tokencap.initConfig",
        "title": "TokenCap: Create Config"
      },
      {
        "command": "tokencap.toggleAuto",
        "title": "TokenCap: Toggle Auto Capture"
      },
      {
        "command": "tokencap.showMenu",
        "title": "TokenCap: Show Menu"
      },
      {
        "command": "tokencap.diff",
        "title": "TokenCap: Diff Intelligence"
      }
    ],
    "configuration": {
      "title": "TokenCap",
      "properties": {
        "tokencap.autoCapture": {
          "type": "boolean",
          "default": true,
          "description": "Automatically refresh the tokencap snapshot after file saves."
        },
        "tokencap.debounceMs": {
          "type": "number",
          "default": 30000,
          "description": "Minimum wait time after a save before regenerating the snapshot."
        },
        "tokencap.outputPath": {
          "type": "string",
          "default": "TOKENCAP.md",
          "description": "Workspace-relative output file for the tokencap snapshot."
        },
        "tokencap.profile": {
          "type": "string",
          "enum": [
            "compact",
            "balanced",
            "deep",
            "gpt-4o",
            "claude-3-5-sonnet",
            "gemini-1.5-flash",
            "gemini-1.5-pro",
            "llama-3-8b"
          ],
          "default": "balanced",
          "description": "Snapshot detail level/profile."
        },
        "tokencap.maxFiles": {
          "type": "number",
          "default": 90,
          "description": "Maximum files included in the snapshot."
        },
        "tokencap.maxSourceBytes": {
          "type": "number",
          "default": 220000,
          "description": "Approximate source byte budget for selected files."
        },
        "tokencap.maxFileBytes": {
          "type": "number",
          "default": 14000,
          "description": "Maximum bytes of content copied from one file."
        },
        "tokencap.maxDiffBytes": {
          "type": "number",
          "default": 50000,
          "description": "Maximum bytes of Git diff snippets included."
        },
        "tokencap.includeGitDiff": {
          "type": "boolean",
          "default": true,
          "description": "Include Git diff snippets in the snapshot."
        },
        "tokencap.includeFileContents": {
          "type": "boolean",
          "default": true,
          "description": "Include selected file contents in the snapshot."
        }
      }
    }
  },
  "devDependencies": {
    "@types/node": "^20.11.30",
    "@types/vscode": "^1.88.0",
    "@vscode/vsce": "^2.0.0"
  },
  "dependencies": {
    "chokidar": "^3.6.0"
  }
}
