project-athena 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/dist/cli.js +8614 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/web/assets/Editor-DmFaONG7.js +39 -0
  6. package/dist/web/assets/_basePickBy-QJXUw_pr.js +1 -0
  7. package/dist/web/assets/_baseUniq-DR4vVjyC.js +1 -0
  8. package/dist/web/assets/abnfDiagram-O67JEVCF-BEaDGLKl.js +1 -0
  9. package/dist/web/assets/arc-DgcGdgmL.js +1 -0
  10. package/dist/web/assets/architecture-7GRP2DOG-CHNxu4zI.js +1 -0
  11. package/dist/web/assets/architectureDiagram-NJMV4G6O-Cr_YqU4C.js +36 -0
  12. package/dist/web/assets/array-BifhSqXX.js +1 -0
  13. package/dist/web/assets/blockDiagram-BEXU5L5S-NA64lNxM.js +140 -0
  14. package/dist/web/assets/c4Diagram-YGBWAQC7-C9OZTI8T.js +38 -0
  15. package/dist/web/assets/channel-D_T5GGJX.js +1 -0
  16. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  17. package/dist/web/assets/chunk-3FUC2YCW-PivwegVV.js +2 -0
  18. package/dist/web/assets/chunk-5DYCD2WN-DH_dVKgx.js +1 -0
  19. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  20. package/dist/web/assets/chunk-742MDFTN-DTR6iTOw.js +1 -0
  21. package/dist/web/assets/chunk-7INBJB4K-XeJOzIDQ.js +62 -0
  22. package/dist/web/assets/chunk-7M6MHVWA-Bn-cXg0l.js +213 -0
  23. package/dist/web/assets/chunk-7PRAP22T-CPe5zfLc.js +1 -0
  24. package/dist/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  25. package/dist/web/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
  26. package/dist/web/assets/chunk-GTNCS2PH-DSn-mpqy.js +88 -0
  27. package/dist/web/assets/chunk-GWA4HPMP-DE4DJkth.js +1 -0
  28. package/dist/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  29. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  30. package/dist/web/assets/chunk-MBY4JIJT-9uaOqseW.js +72 -0
  31. package/dist/web/assets/chunk-NETBCI7D-bxqe7jPe.js +1 -0
  32. package/dist/web/assets/chunk-O7XYJQB3-CjZQSnt8.js +126 -0
  33. package/dist/web/assets/chunk-UA2S7LBM-BfYbPxwY.js +1 -0
  34. package/dist/web/assets/chunk-WEXAMYUT-CT8bG5L7.js +1 -0
  35. package/dist/web/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
  36. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  37. package/dist/web/assets/chunk-Z7XXMR3K-CHWuLoFG.js +10 -0
  38. package/dist/web/assets/chunk-ZIGJFQKS-C6SOqBs6.js +2 -0
  39. package/dist/web/assets/classDiagram-v2-NBCMYWYE-CrSxkUNF.js +217 -0
  40. package/dist/web/assets/cose-bilkent-JH36ORCC-COXSdE6a.js +1 -0
  41. package/dist/web/assets/cynefin-OW5HDTMX-CMbTYwga.js +1 -0
  42. package/dist/web/assets/cynefinDiagram-VND7K2PF-B8wb03CF.js +62 -0
  43. package/dist/web/assets/cytoscape.esm-Yq6u8L66.js +321 -0
  44. package/dist/web/assets/dagre-6A5THRUB-Bz-BHtjW.js +4 -0
  45. package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
  46. package/dist/web/assets/diagram-22UHCM2B-C9M-mcex.js +200 -0
  47. package/dist/web/assets/diagram-3UASUU5V-q18RgATq.js +24 -0
  48. package/dist/web/assets/diagram-ATOU4E4O-zywdDXPc.js +3 -0
  49. package/dist/web/assets/diagram-CDSNMT55-BGMdofKO.js +30 -0
  50. package/dist/web/assets/diagram-MLGK6HIB-BdT0J6Xl.js +24 -0
  51. package/dist/web/assets/diagram-MPIPVDR6-BXdFmdOp.js +41 -0
  52. package/dist/web/assets/dist-B_J_HbC0.js +1 -0
  53. package/dist/web/assets/ebnfDiagram-ZINNZB2B-B7Mz8zd0.js +1 -0
  54. package/dist/web/assets/elk-276RUBZZ-CQ4lVw-r.js +27 -0
  55. package/dist/web/assets/erDiagram-OPXOYQCR-DmmZBLvC.js +99 -0
  56. package/dist/web/assets/eventmodeling-NTZA5JFV-BgPhBkRf.js +1 -0
  57. package/dist/web/assets/flowDiagram-KWPJA3E3-C3wNriu7.js +1 -0
  58. package/dist/web/assets/ganttDiagram-FUAMR5RP-B0egPzgH.js +292 -0
  59. package/dist/web/assets/gitGraph-4MIJSDKK-BdShI4JY.js +1 -0
  60. package/dist/web/assets/gitGraphDiagram-X574FWY7-jwG6nUmP.js +106 -0
  61. package/dist/web/assets/graphlib-C9Tl7QrK.js +1 -0
  62. package/dist/web/assets/index-BSiW3yI1.js +45 -0
  63. package/dist/web/assets/index-DKE3ojTe.css +1 -0
  64. package/dist/web/assets/info-A6RAGUB7-Hm3KO-lX.js +1 -0
  65. package/dist/web/assets/infoDiagram-VRGFBTTK-CdcggvNW.js +2 -0
  66. package/dist/web/assets/init-C-OQMol4.js +1 -0
  67. package/dist/web/assets/ishikawaDiagram-OU5B5YK6-C8x3tV6X.js +70 -0
  68. package/dist/web/assets/journeyDiagram-ZHPQQLJL-CLXIkiwl.js +139 -0
  69. package/dist/web/assets/kanban-definition-PNTS6WVX-P94klDAy.js +89 -0
  70. package/dist/web/assets/katex-ZlcWpGUi.js +257 -0
  71. package/dist/web/assets/line-DtGZCXZs.js +1 -0
  72. package/dist/web/assets/linear-BUnzfXgk.js +1 -0
  73. package/dist/web/assets/mermaid-parser.core-Du2mcMMx.js +7 -0
  74. package/dist/web/assets/mermaid.core-B4zgSyXF.js +44 -0
  75. package/dist/web/assets/mindmap-definition-NLK3R4M7-C0EF7lWr.js +96 -0
  76. package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
  77. package/dist/web/assets/packet-AYTQ26CC-SJ1tKR5t.js +1 -0
  78. package/dist/web/assets/path-fybaL0A-.js +1 -0
  79. package/dist/web/assets/pegDiagram-GJSIUBJH-Dek_S7Z0.js +1 -0
  80. package/dist/web/assets/pie-WAS4IAKB-C0wgWLu4.js +1 -0
  81. package/dist/web/assets/pieDiagram-5QR66LMP-Dy1jV_P-.js +39 -0
  82. package/dist/web/assets/quadrantDiagram-O4NWA36T-Df6Jl4OG.js +7 -0
  83. package/dist/web/assets/radar-RG4KPBEZ-BCtk017a.js +1 -0
  84. package/dist/web/assets/railroad-74A4TZTK-_ZAooQok.js +1 -0
  85. package/dist/web/assets/railroad-abnf-HS5TGJTU-Bacbbg7g.js +1 -0
  86. package/dist/web/assets/railroad-ebnf-LZEXJU2U-Cb23oOsU.js +1 -0
  87. package/dist/web/assets/railroad-peg-WCYAUIDC-EPh5LyCw.js +1 -0
  88. package/dist/web/assets/railroadDiagram-XR7U4H2S-DNraioKj.js +1 -0
  89. package/dist/web/assets/requirementDiagram-PLB6GJNP-C09s8xl6.js +84 -0
  90. package/dist/web/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  91. package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
  92. package/dist/web/assets/sankeyDiagram-IPEJSGJF-cwVwdash.js +40 -0
  93. package/dist/web/assets/sequenceDiagram-PO4LG4MO-Uz6m2m-d.js +169 -0
  94. package/dist/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  95. package/dist/web/assets/src-oBChb5qS.js +1 -0
  96. package/dist/web/assets/stateDiagram-v2-GCMORJYK-DASY_MN7.js +291 -0
  97. package/dist/web/assets/swimlanes-2SLR337P-DjbxDj0Z.js +1 -0
  98. package/dist/web/assets/swimlanesDiagram-TC7HE7FX-Bv90z5my.js +8 -0
  99. package/dist/web/assets/timeline-definition-EJHVYXUP-Dffxj5AG.js +120 -0
  100. package/dist/web/assets/treeView-Q6P3EWNA-CXAvuG6A.js +1 -0
  101. package/dist/web/assets/treemap-WGGIJYW6-D_BSE2GX.js +1 -0
  102. package/dist/web/assets/usecaseDiagram-POWQR4AR-CKcfbpDB.js +328 -0
  103. package/dist/web/assets/vennDiagram-UO4OBE2U-DkJknm_I.js +34 -0
  104. package/dist/web/assets/wardley-WFR3VGLG-Drx6WB-t.js +1 -0
  105. package/dist/web/assets/wardleyDiagram-VNRHLVJA-fdjd5am3.js +78 -0
  106. package/dist/web/assets/xychartDiagram-PMCCYNJV-DCWTWMv0.js +7 -0
  107. package/dist/web/favicon.svg +1 -0
  108. package/dist/web/index.html +17 -0
  109. package/package.json +77 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Athena contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,247 @@
1
+ # Athena
2
+
3
+ **Project intelligence for AI coding agents.**
4
+
5
+ Athena analyzes your repository and maintains a structured, human-readable understanding of it in `.athena/`: architecture, database, API, auth, security, testing, deployment, and your own project rules. It then points Claude Code, Cursor, Antigravity and other agents at that knowledge, so they plan and change code with real project context.
6
+
7
+ Athena doesn't replace your coding agent, and it doesn't claim to make code bug-free or secure. It makes agents more **project-aware**, and it is honest about what it knows.
8
+
9
+ ```bash
10
+ npm install -g project-athena # requires Node.js >= 22.12
11
+ cd my-project
12
+ athena init
13
+ ```
14
+
15
+ ## What you get
16
+
17
+ ```text
18
+ .athena/
19
+ ├── project.md technologies, structure, entry points, commands
20
+ ├── architecture.md layers, workspace modules, service topology (Mermaid)
21
+ ├── database.md engines, entities, relations, indexes, migrations
22
+ ├── api.md detected endpoints and API specs
23
+ ├── auth.md auth libraries/providers, tokens, roles
24
+ ├── security.md attack surface, controls, potential secrets (no values)
25
+ ├── testing.md frameworks, commands, structural gaps
26
+ ├── debugging.md commands, logging, change hotspots
27
+ ├── performance.md caching, queues, database notes
28
+ ├── code-review.md project-specific review checklist
29
+ ├── deployment.md containers, CI/CD, hosting, env var names
30
+ ├── rules.md your rules — agents are told to follow them
31
+ └── state.json local analysis cache
32
+ ```
33
+
34
+ Every statement is labeled:
35
+
36
+ | Label | Meaning |
37
+ |---|---|
38
+ | `FACT` | Declared (e.g. manifest) or asserted by a developer |
39
+ | `DETECTED` | Found by analysis, with file/line evidence |
40
+ | `INFERRED` | Heuristic. Verify before relying on it |
41
+ | `UNKNOWN` | Athena looked and could not tell |
42
+
43
+ Example: *"Redis — DETECTED (package.json)"* followed by *"Cache strategy and invalidation rules: UNKNOWN"*. It never says *"sessions are stored in Redis"* unless the code shows it.
44
+
45
+ ## Your edits are safe
46
+
47
+ Generated content sits between `athena:generated` markers. Anything outside the markers, including each document's **Developer Notes**, is never touched. If you edit inside a marker, Athena keeps your version and tells you. `athena analyze --force` regenerates it. `rules.md` is yours alone after creation.
48
+
49
+ ## Commands
50
+
51
+ | Command | |
52
+ |---|---|
53
+ | `athena init` | Analyze and create `.athena/`. Configures detected agents plus `AGENTS.md` (`--agents all`, `--no-agents`, `--dry-run`) |
54
+ | `athena analyze` | Refresh knowledge; preserves your edits (`--force` to regenerate) |
55
+ | `athena status` | Knowledge health, file changes since the last analysis, potentially affected documents |
56
+ | `athena sync` | Show which documents would change and why (with diffs), then apply after confirmation (`--yes`, `--dry-run`, `--diff`, `--check` for CI) |
57
+ | `athena watch` | Watch the project and propose updates as files change (`--auto-apply` to write automatically) |
58
+ | `athena doctor` | Check the installation, project, knowledge files and agent integrations |
59
+ | `athena rules` | `list`, `add "<rule>" --section <name>`, `edit`, `enable`, `disable`, `remove` |
60
+ | `athena agents` | `list`, `add <claude-code\|cursor\|antigravity\|agents-md\|all>`, `remove` |
61
+ | `athena activity` | Show AI agent activity observed through hooks (`-n`, `--agent`) |
62
+ | `athena security` | Audit dependencies with the tools installed for this project, and report secret findings (`--fail-on`, `--last`, `--no-audit`) |
63
+ | `athena review` | Check the current diff for facts worth reviewing, and list your rules and checklist (`--base`, `--no-fail`) |
64
+ | `athena context <task>` | Show which knowledge an agent should read for a task (`--full`, `--json`) |
65
+ | `athena graph` | Inspect the project graph (`--build`, `--search`, `--node`, `--kind`) |
66
+ | `athena mcp` | Serve project intelligence to agents over MCP (stdio; `--allow-write`) |
67
+ | `athena ai` | `status`, `enrich` — optional AI suggestions (`--consent`, `--dry-run`) |
68
+ | `athena open` | Start (or reuse) the local web UI on `127.0.0.1`, watch for changes, and open it (`--port`, `--no-open`, `--no-watch`) |
69
+ | `athena clean` | Remove `.athena/` and Athena integration blocks |
70
+
71
+ Global flags: `--json`, `--quiet`, `--cwd <dir>`, `--no-color`.
72
+
73
+ They print *Not available yet* and exit with code 2. See [docs/ROADMAP.md](docs/ROADMAP.md).
74
+
75
+ ## Keeping knowledge in sync
76
+
77
+ ```text
78
+ $ athena sync
79
+
80
+ Changes since last analysis
81
+ 2 files (1 modified · 1 added)
82
+ Git: 1 new commit
83
+
84
+ Detected project changes
85
+ • API routes: 1 route added (POST /refunds)
86
+ • Database schema: 2 entities added (Book, Chapter)
87
+
88
+ Knowledge to update
89
+ ~ api.md +4 −3 endpoints
90
+ → API routes: 1 route added (POST /refunds)
91
+ ~ database.md +25 −4 technology, schema
92
+ → Database schema: 2 entities added (Book, Chapter)
93
+ Checked and unchanged: deployment.md
94
+
95
+ Apply updates to 2 documents? [y/N]
96
+ ```
97
+
98
+ - **Only documents whose content would actually change are proposed.** Athena re-analyzes (reusing hashes of unchanged files), compares the structured project model with the previous one, renders documents in memory, and diffs them against disk.
99
+ - **Reasons come from evidence:** which parts of the model changed (routes, schema, dependencies, env vars, CI…), plus which kinds of files changed. Renames are detected by content, and Git commits and branch switches since the last analysis are shown.
100
+ - **Nothing is written without review.** `athena watch` and the web UI only propose updates. You can apply or ignore a proposal (an ignored proposal stays quiet until the files change again), or opt in to `--auto-apply`.
101
+ - **Your edits are still safe.** Developer-edited sections are preserved and listed. Applying is refused if a document changed after the proposal was made.
102
+ - When files change but no knowledge is affected, only the local index is refreshed.
103
+ - `athena sync --check` exits with 1 when knowledge is out of date, which is useful in CI or a pre-commit hook.
104
+ - Ignore rules: defaults, root and nested `.gitignore` files, `.git/info/exclude`, and `.athena/config.json`.
105
+
106
+ ## Watching what agents do
107
+
108
+ Athena configures hooks for agents that support them, so it can show what they actually did:
109
+
110
+ | Agent | Mechanism |
111
+ |---|---|
112
+ | Claude Code | Hooks in `.claude/settings.json` running `athena event` (async, so the agent is never blocked) |
113
+ | Cursor | Hooks in `.cursor/hooks.json` plus a small forwarding script |
114
+ | Antigravity | No documented hook mechanism — activity is reported as unavailable |
115
+
116
+ Hooks append events to `.athena/.agent-events.jsonl` (gitignored, rotated, no network). The UI tails that file, so activity shows up live and history survives with the UI closed.
117
+
118
+ ```text
119
+ $ athena activity
120
+ 20:03:58 ● claude-code · Editing src/components/Pricing.tsx
121
+ 20:04:07 ● claude-code · Running tests: npm test -- billing
122
+ 20:04:31 ● claude-code · Finished responding
123
+ ```
124
+
125
+ **What Athena can and cannot see.** It records which tool ran, on which files, and when. It never records the agent's reasoning, and prompt text is not stored. Secrets in commands are redacted, and paths are stored project-relative. When no hook has fired, Athena says nothing about whether an agent is running.
126
+
127
+ ## Security and review
128
+
129
+ ```bash
130
+ athena security # audit dependencies + report secret findings
131
+ athena security --fail-on high # exit 1 in CI
132
+ athena review # check the current diff before you commit
133
+ ```
134
+
135
+ **`athena security`** runs the audit tools your project's ecosystems provide (`npm audit`, `pnpm audit`, `pip-audit`, `govulncheck`, `cargo audit`, `composer audit`) and reports what they find, attributed to the tool. Athena has no vulnerability database of its own: a tool that isn't installed is reported as **unknown**, never as "no problems". Results are stored in `.athena/security-scan.json` and recorded in `security.md` on the next `athena sync`.
136
+
137
+ **`athena review`** checks facts about your current diff: secrets in added lines (a blocker, exit 1), committed env files, new dependencies, source changed without tests, API/schema/auth touchpoints, large files, debug leftovers, and whether Athena knowledge is stale. It then lists your enabled rules and the project's review checklist for you or your agent to apply — Athena does not claim to judge whether they are met, and it runs no AI.
138
+
139
+ ## Context engine, graph and MCP
140
+
141
+ Reading twelve documents for every task wastes an agent's context. Athena picks what matters:
142
+
143
+ ```text
144
+ $ athena context "add refunds to the payments API"
145
+
146
+ Documents to read
147
+ • api — task mentions "API"
148
+ • database — task mentions "payments" via entity Payment
149
+ • security — security implications of data/API changes
150
+ • testing — tests for changed behavior
151
+ ```
152
+
153
+ - **Deterministic.** The same task and project state always produce the same selection, with a stated reason for each document. No AI is involved.
154
+ - **Sections, not whole files.** Only the relevant sections are returned, under a character budget, with your rules always included.
155
+ - **Project graph.** `athena graph --build` writes `.athena/graph.json`: packages, files, routes, entities, frameworks and commands, connected by `contains`, `imports`, `handles`, `defines` and `depends_on`. It comes from the analysis, so it never asserts more than DETECTED evidence.
156
+
157
+ **MCP.** `athena mcp` serves this to any MCP-capable agent over stdio, and `athena agents add` registers it (`.mcp.json` for Claude Code, `.cursor/mcp.json` for Cursor). Tools: `get_relevant_context`, `get_project_context`, `get_architecture`, `get_database_schema`, `get_api_context`, `get_security_context`, `get_project_rules`, `get_knowledge_document`, `get_project_changes`, `get_project_graph`, `get_athena_status`, `update_knowledge`.
158
+
159
+ The server is **read-only by default**: `update_knowledge` reports what would change and refuses to write unless you start it with `--allow-write`.
160
+
161
+ ## Optional AI
162
+
163
+ Athena needs no AI: analysis, sync, context and MCP are all deterministic. AI is opt-in for suggestions only.
164
+
165
+ ```bash
166
+ athena ai status # which providers are configured and reachable
167
+ athena ai enrich --dry-run # show exactly what would be sent
168
+ athena ai enrich --consent # ask for suggestions
169
+ ```
170
+
171
+ - **Providers:** Anthropic, OpenAI, Google, and Ollama for a fully local setup. Configure in `.athena/config.json` under `"ai"`; API keys come from environment variables only and are never written to disk by Athena.
172
+ - **Consent first.** Nothing leaves your machine without `--consent` (or `"consent": true`). `--dry-run` prints the provider, endpoint, documents and exact size first.
173
+ - **Knowledge only, redacted.** Athena sends your `.athena` documents — never source code — after the secret redactor, and refuses to send anything that still looks like a secret.
174
+ - **Output is INFERRED.** Suggestions land in `.athena/ai-suggestions.md` (gitignored), clearly labeled and attributed to the model. Nothing is added to your knowledge base automatically.
175
+
176
+ ## Web UI
177
+
178
+ ```bash
179
+ athena open
180
+ ```
181
+
182
+ ```text
183
+ Athena is running
184
+
185
+ Local: http://127.0.0.1:7432/#token=…
186
+ ```
187
+
188
+ The local web UI lets you:
189
+
190
+ - browse every knowledge document, with Mermaid diagrams and labels showing which sections are generated, developer-edited or developer-owned
191
+ - edit documents in a Markdown editor. Saves go straight to `.athena/*.md`. Saving is refused if the file changed on disk meanwhile, or if the content looks like it contains a secret.
192
+ - review proposed knowledge updates on the **Sync** page (reasons, file changes, Git commits, line-by-line diffs), then **Update** or **Ignore**
193
+ - see sync status per document, and re-analyze with one click
194
+ - browse history (from Git commits touching each file)
195
+ - search all knowledge (⌘K)
196
+ - manage rules: add, edit, enable/disable, delete. `rules.md` stays the source of truth.
197
+ - configure or remove agent integrations
198
+ - follow an activity timeline of what Athena actually observed: agent tool use (via hooks), analyses, UI edits, and knowledge files changed on disk
199
+ - run dependency audits from the **Security** page and review findings by severity
200
+ - explore the **Context** page: type a task and see which knowledge an agent would read, and why
201
+
202
+ The robot indicator reflects real work: Athena's own analyses, and — for agents with hooks installed — the agent's current tool use (reading, coding, testing). With no hook events it stays idle and says so, rather than simulating activity.
203
+
204
+ Security: the server binds to `127.0.0.1` only, on the first free port from 7432. Every API call needs the random per-session token from the link, which travels in the URL fragment and is never sent in requests or referrers. Host and Origin headers are checked, a strict Content-Security-Policy applies, and only the fixed set of `.athena` documents can be read or written.
205
+
206
+ ## Agent integrations
207
+
208
+ | Agent | What Athena writes |
209
+ |---|---|
210
+ | Claude Code | A marked block in `CLAUDE.md` that imports `.athena/rules.md` |
211
+ | Cursor | `.cursor/rules/athena.mdc` (always applied) |
212
+ | Antigravity | `.agents/rules/athena.md` (set to *Always On* in Antigravity if needed) |
213
+ | Others | A marked block in `AGENTS.md` |
214
+
215
+ The instructions include a **relevance map**. A database task reads `database.md`, `architecture.md`, `api.md`, `security.md`, `testing.md` and `rules.md`, while a styling tweak reads only `project.md`, `architecture.md` and `rules.md`. Agents don't load everything for every task.
216
+
217
+ ## Privacy and security
218
+
219
+ - Runs entirely locally, with no network calls and no AI required.
220
+ - Records env var **names** only. `.env` contents are never read.
221
+ - Potential secrets are reported by type and location only, and all output is redacted.
222
+ - See [SECURITY.md](SECURITY.md).
223
+
224
+ ## Configuration
225
+
226
+ Optional `.athena/config.json`:
227
+
228
+ ```json
229
+ { "ignore": ["generated/"], "include": [], "maxFileBytes": 1000000, "maxFiles": 200000 }
230
+ ```
231
+
232
+ Defaults already ignore `node_modules`, `dist`, `build`, `.venv`, `target`, `coverage` and similar directories, plus your `.gitignore`.
233
+
234
+ ## Development
235
+
236
+ ```bash
237
+ npm install
238
+ npm run build
239
+ npm test
240
+ node dist/cli.js --help
241
+ ```
242
+
243
+ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [CONTRIBUTING.md](CONTRIBUTING.md).
244
+
245
+ ## License
246
+
247
+ MIT