diff --git a/.growmos/.gitignore b/.growmos/.gitignore index 8439346..ad61d3d 100644 --- a/.growmos/.gitignore +++ b/.growmos/.gitignore @@ -1,2 +1,3 @@ *.tmp cache/ +graph.html diff --git a/.growmos/aliases.jsonl b/.growmos/aliases.jsonl index c6bb5cb..2073519 100644 --- a/.growmos/aliases.jsonl +++ b/.growmos/aliases.jsonl @@ -34,6 +34,7 @@ {"alias": "Anthropic API", "entity": "dependency/anthropic-api", "type": "DEPENDENCY"} {"alias": "OpenAI-compatible API", "entity": "dependency/openai-compatible-api", "type": "DEPENDENCY"} {"alias": "xAI API", "entity": "dependency/xai-api", "type": "DEPENDENCY"} +{"alias": "growmos view (view.html)", "entity": "feature/growmos-view-view-html", "type": "FEATURE"} {"alias": "Headless mode", "entity": "feature/headless-mode", "type": "FEATURE"} {"alias": "Presets", "entity": "feature/presets", "type": "FEATURE"} {"alias": "Codician", "entity": "organization/codician", "type": "ORGANIZATION"} diff --git a/.growmos/entities.jsonl b/.growmos/entities.jsonl index 2fdf43d..2a2eee7 100644 --- a/.growmos/entities.jsonl +++ b/.growmos/entities.jsonl @@ -34,6 +34,7 @@ {"created": "2026-08-17T11:50:35Z", "description": "Provider used with ANTHROPIC_API_KEY; structured outputs via output_config json_schema.", "id": "dependency/anthropic-api", "mentions": 1, "name": "Anthropic API", "provisional": false, "schema_version": 1, "sources": ["src_644a9dc71c36"], "type": "DEPENDENCY", "updated": "2026-08-17T11:50:35Z"} {"created": "2026-08-17T11:50:35Z", "description": "Provider used with OPENAI_API_KEY or GROWMOS_BASE_URL; response_format json_schema.", "id": "dependency/openai-compatible-api", "mentions": 1, "name": "OpenAI-compatible API", "provisional": false, "schema_version": 1, "sources": ["src_644a9dc71c36"], "type": "DEPENDENCY", "updated": "2026-08-17T11:50:35Z"} {"created": "2026-08-17T11:50:35Z", "description": "Grok provider used with XAI_API_KEY.", "id": "dependency/xai-api", "mentions": 1, "name": "xAI API", "provisional": false, "schema_version": 1, "sources": ["src_644a9dc71c36"], "type": "DEPENDENCY", "updated": "2026-08-17T11:50:35Z"} +{"created": "2026-08-17T12:27:04Z", "description": "Self-contained interactive HTML explorer of the graph: force layout, search, type filters, node cards with profile, edges and provenance; growmos view opens it, export --format html writes it.", "id": "feature/growmos-view-view-html", "mentions": 1, "name": "growmos view (view.html)", "provisional": true, "schema_version": 1, "sources": ["src_a384388adcb2"], "type": "FEATURE", "updated": "2026-08-17T12:27:04Z"} {"created": "2026-08-17T11:50:35Z", "description": "growmos ingest calls Anthropic, OpenAI-compatible or xAI APIs directly for cron and CI, following the playbook's fast-vs-reasoning model split.", "id": "feature/headless-mode", "mentions": 2, "name": "Headless mode", "provisional": false, "schema_version": 1, "sources": ["src_b33563055168", "src_644a9dc71c36"], "type": "FEATURE", "updated": "2026-08-17T11:50:35Z"} {"created": "2026-08-17T11:50:35Z", "description": "software, general, research and business entity-type vocabularies sharing the same prompts.", "id": "feature/presets", "mentions": 1, "name": "Presets", "provisional": false, "schema_version": 1, "sources": ["src_b33563055168"], "type": "FEATURE", "updated": "2026-08-17T11:50:35Z"} {"created": "2026-08-17T11:50:35Z", "description": "Company (codician.com) that builds and maintains growmos under the MIT license.", "id": "organization/codician", "mentions": 2, "name": "Codician", "provisional": false, "schema_version": 1, "sources": ["src_b33563055168", "src_eca12c0a30e2"], "type": "ORGANIZATION", "updated": "2026-08-17T11:50:35Z"} diff --git a/.growmos/journal.md b/.growmos/journal.md index 772cff5..79436bf 100644 --- a/.growmos/journal.md +++ b/.growmos/journal.md @@ -6,3 +6,7 @@ Shared memo between humans and agents. Append-only; newest at the bottom. ### 2026-08-17T11:51:11Z · claude Initial build of growmos from the Anthropic Knowledge Graph Playbook PDF: package (store, graph, prompts, schema, evaluate, export, providers, integrate, mcp, cli), Apollo example corpus, 18 tests, docs. Design decisions: agent-native task packets (no API key needed), zero dependencies, JSONL store committed with code, MCP server for any CLI. Verified end-to-end on the Apollo corpus (1 component, density 1.58, precision 1.0). + +### 2026-08-17T12:27:04Z · agent + +Added growmos view: interactive HTML explorer + README demo screenshot; bumped to 0.1.1. diff --git a/.growmos/mentions.jsonl b/.growmos/mentions.jsonl index 1e5a345..4e4f7ac 100644 --- a/.growmos/mentions.jsonl +++ b/.growmos/mentions.jsonl @@ -58,3 +58,4 @@ {"chunk": null, "description": "Python module implementing the .growmos store: load/save JSONL tables, register sources, apply extraction/resolution, merge entities, remember/link/journal.", "name": "GraphStore (store.py)", "schema_version": 1, "source": "src_7a4afa70f300", "ts": "2026-08-17T11:51:11Z", "type": "COMPONENT"} {"chunk": null, "description": "Builds extraction/resolution/profile/query/check task packets from editable prompt templates; chunks long docs at section boundaries with overlap.", "name": "Packet builder (prompts.py)", "schema_version": 1, "source": "src_7a4afa70f300", "ts": "2026-08-17T11:51:11Z", "type": "COMPONENT"} {"chunk": null, "description": "Adjacency, k-hop traversal, triple serialization with provenance, diagnostics, seed finding, deterministic claim checking, sampling.", "name": "Graph engine (graph.py)", "schema_version": 1, "source": "src_7a4afa70f300", "ts": "2026-08-17T11:51:11Z", "type": "COMPONENT"} +{"chunk": null, "description": "Self-contained interactive HTML explorer of the graph: force layout, search, type filters, node cards with profile, edges and provenance; growmos view opens it, export --format html writes it.", "name": "growmos view (view.html)", "schema_version": 1, "source": "src_a384388adcb2", "ts": "2026-08-17T12:27:04Z", "type": "FEATURE"} diff --git a/.growmos/relations.jsonl b/.growmos/relations.jsonl index e96f71e..f29ee2e 100644 --- a/.growmos/relations.jsonl +++ b/.growmos/relations.jsonl @@ -15,6 +15,7 @@ {"confidence": 1, "created": "2026-08-17T11:51:11Z", "id": "r_3b6d37efba09", "predicate": "depends on", "schema_version": 1, "source": "component/graph-engine-graph-py", "sources": ["src_7a4afa70f300"], "target": "component/graphstore-store-py", "updated": "2026-08-17T11:51:11Z"} {"confidence": 1, "created": "2026-08-17T11:51:11Z", "id": "r_3c068163c973", "predicate": "depends on", "schema_version": 1, "source": "component/packet-builder-prompts-py", "sources": ["src_7a4afa70f300"], "target": "component/graphstore-store-py", "updated": "2026-08-17T11:51:11Z"} {"confidence": 1, "created": "2026-08-17T11:50:35Z", "id": "r_3e6b5ce7ae5d", "predicate": "part of", "schema_version": 1, "source": "tool/growmos-sample", "sources": ["src_15e0af4a3dd5"], "target": "component/evaluation-harness", "updated": "2026-08-17T11:50:35Z"} +{"confidence": 1, "created": "2026-08-17T12:27:04Z", "id": "r_455737c6171f", "predicate": "part of", "schema_version": 1, "source": "feature/growmos-view-view-html", "sources": ["src_a384388adcb2"], "target": "tool/growmos", "updated": "2026-08-17T12:27:04Z"} {"confidence": 1, "created": "2026-08-17T11:50:35Z", "id": "r_5160f89fa514", "predicate": "implements", "schema_version": 1, "source": "tool/growmos", "sources": ["src_b33563055168"], "target": "concept/anthropic-knowledge-graph-playbook", "updated": "2026-08-17T11:50:35Z"} {"confidence": 1, "created": "2026-08-17T11:51:11Z", "id": "r_51b0f6496aa6", "predicate": "calls", "schema_version": 1, "source": "component/mcp-server", "sources": ["src_7a4afa70f300"], "target": "tool/growmos", "updated": "2026-08-17T11:51:11Z"} {"confidence": 1, "created": "2026-08-17T11:50:35Z", "id": "r_56711eca826a", "predicate": "uses", "schema_version": 1, "source": "tool/growmos-eval", "sources": ["src_15e0af4a3dd5"], "target": "artifact/scorer-alias-map", "updated": "2026-08-17T11:50:35Z"} diff --git a/.growmos/sources.jsonl b/.growmos/sources.jsonl index edff9cb..22126c4 100644 --- a/.growmos/sources.jsonl +++ b/.growmos/sources.jsonl @@ -1,8 +1,8 @@ -{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_15e0af4a3dd5", "kind": "file", "ref": "docs/evaluation.md", "schema_version": 1, "sha256": "1eb6e959059e66ecdbcc35b93ab524635607f157254f763ef030a58b797cd227", "stats": {"entities": 5, "relations": 5}, "status": "pending", "title": "evaluation.md", "updated": "2026-08-17T11:59:04Z"} +{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_15e0af4a3dd5", "kind": "file", "ref": "docs/evaluation.md", "schema_version": 1, "sha256": "1eb6e959059e66ecdbcc35b93ab524635607f157254f763ef030a58b797cd227", "stats": {"entities": 5, "relations": 5}, "status": "pending", "title": "evaluation.md", "updated": "2026-08-17T12:19:10Z"} {"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_3fd317a2cb2b", "kind": "file", "ref": "docs/file-format.md", "schema_version": 1, "sha256": "9f93981a6778d7a991c735ff0b2e8b1d3a51bd1d11cd1bd908dc3b401ce33c04", "stats": {"entities": 7, "relations": 6}, "status": "extracted", "title": "file-format.md", "updated": "2026-08-17T11:49:36Z"} {"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_5dd15b5b20d6", "kind": "file", "ref": "METHODOLOGY.md", "schema_version": 1, "sha256": "7ad5c4305900d6f954fb124e41692573267f3ccb49e363786c4c136fb7e3ba1e", "stats": {"entities": 13, "relations": 13}, "status": "extracted", "title": "METHODOLOGY.md", "updated": "2026-08-17T11:49:36Z"} {"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_644a9dc71c36", "kind": "file", "ref": "docs/headless.md", "schema_version": 1, "sha256": "5db7953e9111f7722f740e80220d3ad099e667e5d848e6e47c02047f722eb983", "stats": {"entities": 5, "relations": 4}, "status": "extracted", "title": "headless.md", "updated": "2026-08-17T11:49:36Z"} {"added": "2026-08-17T11:51:11Z", "id": "src_7a4afa70f300", "kind": "note", "ref": "session:2026-08-17 build", "sha256": "7a4afa70f3001f4f653daa0f7af9b9219e8ea734ce4e7604c707c1437906efe2", "status": "note", "title": "session:2026-08-17 build", "updated": "2026-08-17T11:51:11Z"} -{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_a384388adcb2", "kind": "file", "ref": "docs/agents.md", "schema_version": 1, "sha256": "1db8b7ef7f859f0d26caa4f2b53b52d581510ea8a02ed5b2fb8beed9fe972ad1", "stats": {"entities": 9, "relations": 8}, "status": "extracted", "title": "agents.md", "updated": "2026-08-17T11:49:36Z"} -{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_b33563055168", "kind": "file", "ref": "README.md", "schema_version": 1, "sha256": "eb3d831021dd979a6f2a888a37d10caefdacf30dd3d3961b73e83c1c6b8a01c7", "stats": {"entities": 14, "relations": 13}, "status": "pending", "title": "README.md", "updated": "2026-08-17T11:59:04Z"} -{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_eca12c0a30e2", "kind": "file", "ref": "CONTRIBUTING.md", "schema_version": 1, "sha256": "ae1583a24ce33b8de5367fed5186e634552c5109ef944d78fafe0fca4fd5b3a6", "stats": {"entities": 4, "relations": 3}, "status": "pending", "title": "CONTRIBUTING.md", "updated": "2026-08-17T11:59:04Z"} +{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_a384388adcb2", "kind": "file", "ref": "docs/agents.md", "schema_version": 1, "sha256": "a384388adcb2ed2bfeb1762af9c9b8b6f59402e1a6c94a7c459f120642085e64", "stats": {"entities": 9, "relations": 8}, "status": "note", "title": "docs/agents.md", "updated": "2026-08-17T12:27:04Z"} +{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_b33563055168", "kind": "file", "ref": "README.md", "schema_version": 1, "sha256": "eb3d831021dd979a6f2a888a37d10caefdacf30dd3d3961b73e83c1c6b8a01c7", "stats": {"entities": 14, "relations": 13}, "status": "pending", "title": "README.md", "updated": "2026-08-17T12:19:10Z"} +{"added": "2026-08-17T11:49:36Z", "extracted_at": "2026-08-17T11:50:35Z", "id": "src_eca12c0a30e2", "kind": "file", "ref": "CONTRIBUTING.md", "schema_version": 1, "sha256": "ae1583a24ce33b8de5367fed5186e634552c5109ef944d78fafe0fca4fd5b3a6", "stats": {"entities": 4, "relations": 3}, "status": "pending", "title": "CONTRIBUTING.md", "updated": "2026-08-17T12:19:10Z"} diff --git a/.growmos/state.json b/.growmos/state.json index 0d672c0..eb714af 100644 --- a/.growmos/state.json +++ b/.growmos/state.json @@ -10,7 +10,7 @@ "docs": 2, "ts": "2026-08-17T11:51:25Z" }, - "last_run": "2026-08-17T11:51:11Z", + "last_run": "2026-08-17T12:27:04Z", "last_sample": "2026-08-17T11:51:11Z", "last_sample_entity": "concept/agent-protocol", "open_packets": {}, @@ -181,6 +181,16 @@ "renamed": 0, "ts": "2026-08-17T11:51:11Z", "type": "COMPONENT" + }, + { + "entity": "feature/growmos-view-view-html", + "kind": "remember", + "ts": "2026-08-17T12:27:04Z" + }, + { + "kind": "link", + "relation": "r_455737c6171f", + "ts": "2026-08-17T12:27:04Z" } ] } diff --git a/README.md b/README.md index 86a366a..5941f9c 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ closing the circle). See [METHODOLOGY.md](METHODOLOGY.md) for the full methodolo evaluation loop: change prompt → growmos eval → watch F1 move ``` +

growmos view — after a few days of development, this is what lays in your graph: hubs sized by degree, colored by type, every edge with provenance, profiles on click.