{
  "name": "job-forge",
  "version": "2.14.48",
  "description": "AI-powered job search pipeline built on opencode",
  "type": "module",
  "bin": {
    "job-forge": "bin/job-forge.mjs",
    "create-job-forge": "bin/create-job-forge.mjs"
  },
  "scripts": {
    "verify": "node verify-pipeline.mjs",
    "build:dashboard": "cd dashboard && go build .",
    "normalize": "node normalize-statuses.mjs",
    "dedup": "node dedup-tracker.mjs",
    "merge": "node merge-tracker.mjs",
    "pdf": "node generate-pdf.mjs",
    "sync-check": "node cv-sync-check.mjs",
    "tokens": "node scripts/token-usage-report.mjs",
    "tokens:today": "node scripts/token-usage-report.mjs --days 1",
    "tokens:log": "node scripts/token-usage-report.mjs --days 1 --append",
    "portal:snapshot": "node bin/job-forge.mjs portal:snapshot",
    "portal:form-schema": "node bin/job-forge.mjs portal:form-schema",
    "portal:explain": "node bin/job-forge.mjs portal:explain",
    "trace:list": "node bin/job-forge.mjs trace:list",
    "trace:stats": "node bin/job-forge.mjs trace:stats",
    "trace:show": "node bin/job-forge.mjs trace:show",
    "telemetry:list": "node bin/job-forge.mjs telemetry:list",
    "telemetry:status": "node bin/job-forge.mjs telemetry:status",
    "telemetry:show": "node bin/job-forge.mjs telemetry:show",
    "telemetry:watch": "node bin/job-forge.mjs telemetry:watch",
    "guard:audit": "node bin/job-forge.mjs guard:audit",
    "guard:explain": "node bin/job-forge.mjs guard:explain",
    "ledger:status": "node bin/job-forge.mjs ledger:status",
    "ledger:rebuild": "node bin/job-forge.mjs ledger:rebuild",
    "ledger:verify": "node bin/job-forge.mjs ledger:verify",
    "ledger:has": "node bin/job-forge.mjs ledger:has",
    "ledger:query": "node bin/job-forge.mjs ledger:query",
    "capabilities:list": "node bin/job-forge.mjs capabilities:list",
    "capabilities:explain": "node bin/job-forge.mjs capabilities:explain",
    "capabilities:check": "node bin/job-forge.mjs capabilities:check",
    "capabilities:render": "node bin/job-forge.mjs capabilities:render",
    "context:list": "node bin/job-forge.mjs context:list",
    "context:explain": "node bin/job-forge.mjs context:explain",
    "context:plan": "node bin/job-forge.mjs context:plan",
    "context:check": "node bin/job-forge.mjs context:check",
    "context:render": "node bin/job-forge.mjs context:render",
    "cache:key": "node bin/job-forge.mjs cache:key",
    "cache:has": "node bin/job-forge.mjs cache:has",
    "cache:get": "node bin/job-forge.mjs cache:get",
    "cache:put": "node bin/job-forge.mjs cache:put",
    "cache:status": "node bin/job-forge.mjs cache:status",
    "cache:list": "node bin/job-forge.mjs cache:list",
    "cache:verify": "node bin/job-forge.mjs cache:verify",
    "cache:prune": "node bin/job-forge.mjs cache:prune",
    "index:build": "node bin/job-forge.mjs index:build",
    "index:status": "node bin/job-forge.mjs index:status",
    "index:query": "node bin/job-forge.mjs index:query",
    "index:has": "node bin/job-forge.mjs index:has",
    "index:verify": "node bin/job-forge.mjs index:verify",
    "index:explain": "node bin/job-forge.mjs index:explain",
    "facts:build": "node bin/job-forge.mjs facts:build",
    "facts:status": "node bin/job-forge.mjs facts:status",
    "facts:verify": "node bin/job-forge.mjs facts:verify",
    "facts:check": "node bin/job-forge.mjs facts:check",
    "facts:has": "node bin/job-forge.mjs facts:has",
    "facts:query": "node bin/job-forge.mjs facts:query",
    "facts:explain": "node bin/job-forge.mjs facts:explain",
    "score:compute": "node bin/job-forge.mjs score:compute",
    "score:verify": "node bin/job-forge.mjs score:verify",
    "score:check": "node bin/job-forge.mjs score:check",
    "score:gate": "node bin/job-forge.mjs score:gate",
    "score:compare": "node bin/job-forge.mjs score:compare",
    "score:explain": "node bin/job-forge.mjs score:explain",
    "canon:normalize": "node bin/job-forge.mjs canon:normalize",
    "canon:key": "node bin/job-forge.mjs canon:key",
    "canon:compare": "node bin/job-forge.mjs canon:compare",
    "canon:explain": "node bin/job-forge.mjs canon:explain",
    "preflight:plan": "node bin/job-forge.mjs preflight:plan",
    "preflight:check": "node bin/job-forge.mjs preflight:check",
    "preflight:explain": "node bin/job-forge.mjs preflight:explain",
    "postflight:status": "node bin/job-forge.mjs postflight:status",
    "postflight:check": "node bin/job-forge.mjs postflight:check",
    "postflight:explain": "node bin/job-forge.mjs postflight:explain",
    "timeline:status": "node bin/job-forge.mjs timeline:status",
    "timeline:build": "node bin/job-forge.mjs timeline:build",
    "timeline:plan": "node bin/job-forge.mjs timeline:plan",
    "timeline:due": "node bin/job-forge.mjs timeline:due",
    "timeline:check": "node bin/job-forge.mjs timeline:check",
    "timeline:verify": "node bin/job-forge.mjs timeline:verify",
    "timeline:explain": "node bin/job-forge.mjs timeline:explain",
    "prioritize:status": "node bin/job-forge.mjs prioritize:status",
    "prioritize:items": "node bin/job-forge.mjs prioritize:items",
    "prioritize:build": "node bin/job-forge.mjs prioritize:build",
    "prioritize:rank": "node bin/job-forge.mjs prioritize:rank",
    "prioritize:select": "node bin/job-forge.mjs prioritize:select",
    "prioritize:check": "node bin/job-forge.mjs prioritize:check",
    "prioritize:verify": "node bin/job-forge.mjs prioritize:verify",
    "prioritize:explain": "node bin/job-forge.mjs prioritize:explain",
    "lineage:status": "node bin/job-forge.mjs lineage:status",
    "lineage:record": "node bin/job-forge.mjs lineage:record",
    "lineage:check": "node bin/job-forge.mjs lineage:check",
    "lineage:stale": "node bin/job-forge.mjs lineage:stale",
    "lineage:verify": "node bin/job-forge.mjs lineage:verify",
    "lineage:explain": "node bin/job-forge.mjs lineage:explain",
    "redact:scan": "node bin/job-forge.mjs redact:scan",
    "redact:verify": "node bin/job-forge.mjs redact:verify",
    "redact:apply": "node bin/job-forge.mjs redact:apply",
    "redact:explain": "node bin/job-forge.mjs redact:explain",
    "receipts:create": "node bin/job-forge.mjs receipts:create",
    "receipts:capture": "node bin/job-forge.mjs receipts:capture",
    "receipts:verify": "node bin/job-forge.mjs receipts:verify",
    "receipts:inspect": "node bin/job-forge.mjs receipts:inspect",
    "receipts:redact": "node bin/job-forge.mjs receipts:redact",
    "receipts:path": "node bin/job-forge.mjs receipts:path",
    "migrate:plan": "node bin/job-forge.mjs migrate:plan",
    "migrate:apply": "node bin/job-forge.mjs migrate:apply",
    "migrate:check": "node bin/job-forge.mjs migrate:check",
    "migrate:explain": "node bin/job-forge.mjs migrate:explain",
    "plan": "iso plan .",
    "lint:agentmd": "agentmd lint iso/instructions.md",
    "lint:modes": "isolint lint modes/",
    "lint:helpers": "node scripts/check-helper-integration.mjs .",
    "test:agentmd": "agentmd test iso/instructions.md --fixtures fixtures/instructions.yml --via claude-code --model claude-haiku-4-5 --concurrency 2",
    "test:agentmd:baseline": "agentmd test iso/instructions.md --fixtures fixtures/instructions.yml --via claude-code --model claude-haiku-4-5 --concurrency 2 --trials 3 --format json --out fixtures/baseline.json",
    "test:agentmd:apply": "agentmd test modes/apply.md --fixtures fixtures/modes/apply.yml --via claude-code --model claude-haiku-4-5 --concurrency 2 --trials 3",
    "lint:agentmd:modes": "agentmd lint modes/apply.md",
    "smoke:iso": "iso plan . && iso build . --dry-run && iso-route verify models.yaml && node scripts/check-iso-smoke.mjs . && node scripts/check-helper-integration.mjs . && JOBFORGE_ROOT=$PWD iso-eval run fixtures/iso-smoke/eval.yml",
    "build:config": "iso build .",
    "prepack": "iso build .",
    "release:check-source": "node ./scripts/release/check-source.mjs",
    "postinstall": "node bin/sync.mjs"
  },
  "files": [
    "bin/",
    "iso/",
    "models.yaml",
    ".claude/settings.json",
    ".claude/iso-route.resolved.json",
    ".claude/agents/",
    ".cursor/mcp.json",
    ".cursor/rules/",
    ".cursor/iso-route.md",
    ".opencode/",
    ".codex/",
    ".mcp.json",
    "CLAUDE.md",
    "AGENTS.md",
    "opencode.json",
    "modes/",
    "templates/",
    "config/profile.example.yml",
    "fonts/",
    "scripts/",
    "batch/batch-prompt.md",
    "batch/batch-runner.sh",
    "batch/README.md",
    "docs/",
    "lib/",
    "tracker-lib.mjs",
    "merge-tracker.mjs",
    "dedup-tracker.mjs",
    "verify-pipeline.mjs",
    "normalize-statuses.mjs",
    "generate-pdf.mjs",
    "cv-sync-check.mjs",
    "README.md",
    "LICENSE"
  ],
  "keywords": [
    "ai",
    "job-search",
    "opencode",
    "career",
    "automation"
  ],
  "author": "Charlie Greenman",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Agent-Pattern-Labs/JobForge.git"
  },
  "license": "MIT",
  "engines": {
    "node": ">=20.6.0"
  },
  "overrides": {
    "fast-uri": "3.1.2"
  },
  "dependencies": {
    "@agent-pattern-labs/iso-cache": "^0.1.1",
    "@agent-pattern-labs/iso-canon": "^0.1.1",
    "@agent-pattern-labs/iso-capabilities": "^0.1.1",
    "@agent-pattern-labs/iso-context": "^0.1.1",
    "@agent-pattern-labs/iso-contract": "^0.1.1",
    "@agent-pattern-labs/iso-facts": "^0.1.1",
    "@agent-pattern-labs/iso-guard": "^0.1.1",
    "@agent-pattern-labs/iso-index": "^0.1.1",
    "@agent-pattern-labs/iso-ledger": "^0.1.1",
    "@agent-pattern-labs/iso-lineage": "^0.1.1",
    "@agent-pattern-labs/iso-migrate": "^0.1.1",
    "@agent-pattern-labs/iso-orchestrator": "^0.2.1",
    "@agent-pattern-labs/iso-postflight": "^0.1.1",
    "@agent-pattern-labs/iso-preflight": "^0.1.1",
    "@agent-pattern-labs/iso-prioritize": "^0.1.1",
    "@agent-pattern-labs/iso-receipts": "^0.1.0",
    "@agent-pattern-labs/iso-redact": "^0.1.1",
    "@agent-pattern-labs/iso-score": "^0.1.1",
    "@agent-pattern-labs/iso-timeline": "^0.1.1",
    "@agent-pattern-labs/iso-trace": "^0.5.1",
    "@geometra/mcp": "1.63.2",
    "playwright": "^1.58.1"
  },
  "devDependencies": {
    "@agent-pattern-labs/agentmd": "^0.3.1",
    "@agent-pattern-labs/iso": "^0.3.2",
    "@agent-pattern-labs/iso-eval": "^0.4.1",
    "@agent-pattern-labs/iso-harness": "^0.8.1",
    "@agent-pattern-labs/iso-route": "^0.6.1"
  }
}
