@ainyc/canonry 1.19.4 → 1.20.1

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.
package/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  **Open-source AEO monitoring for your domain.** Canonry tracks how AI answer engines (ChatGPT, Gemini, Claude, and others) cite or omit your website for the keywords you care about.
6
6
 
7
+ Canonry is API-first: the REST API is the source of truth, the CLI is the standard operator surface, and the web dashboard is a secondary interface for human analysts. Start with [docs/README.md](docs/README.md) for the architecture, roadmap, active plans, testing, deployment, and ADR index.
8
+
7
9
  AEO (Answer Engine Optimization) is the practice of ensuring your content is accurately represented in AI-generated answers. As search shifts from links to synthesized responses, monitoring your visibility across answer engines is essential.
8
10
 
9
11
  ![Canonry Dashboard](docs/images/dashboard.png)
@@ -16,7 +18,7 @@ canonry init
16
18
  canonry serve
17
19
  ```
18
20
 
19
- Open [http://localhost:4100](http://localhost:4100) to access the web dashboard.
21
+ Open [http://localhost:4100](http://localhost:4100) to access the optional web dashboard.
20
22
 
21
23
  For CI or agent workflows, initialize non-interactively:
22
24
 
@@ -29,7 +31,8 @@ GEMINI_API_KEY=... OPENAI_API_KEY=... canonry init
29
31
  ## Features
30
32
 
31
33
  - **Multi-provider monitoring** -- query Gemini, OpenAI, Claude, and local LLMs (Ollama, LM Studio, or any OpenAI-compatible endpoint) from a single tool.
32
- - **Three equal surfaces** -- CLI, REST API, and web dashboard all backed by the same API. No surface is privileged.
34
+ - **API-first surfaces** -- the REST API is canonical, the CLI is the standard automation surface, and the web dashboard consumes the same core workflows.
35
+ - **Project-scoped location context** -- define named locations per project, set a default, and run explicit or all-location sweeps without making keywords location-owned.
33
36
  - **Config-as-code** -- manage projects with Kubernetes-style YAML files. Version control your monitoring setup.
34
37
  - **Self-hosted** -- runs locally with SQLite. No cloud account, no external dependencies beyond the LLM API keys you choose to configure.
35
38
  - **Scheduled monitoring** -- set up cron-based recurring runs to track citation changes over time.
@@ -61,6 +64,10 @@ canonry project create <name> --domain <domain> --country US --language en
61
64
  canonry project list
62
65
  canonry project show <name>
63
66
  canonry project delete <name>
67
+ canonry project add-location <name> --label <label> --city <city> --region <region> --country <country>
68
+ canonry project locations <name>
69
+ canonry project set-default-location <name> <label>
70
+ canonry project remove-location <name> <label>
64
71
  ```
65
72
 
66
73
  ### Keywords and Competitors
@@ -80,6 +87,9 @@ canonry competitor list <project>
80
87
  ```bash
81
88
  canonry run <project> # Run all configured providers
82
89
  canonry run <project> --provider gemini # Run a single provider
90
+ canonry run <project> --location sf # Run with one configured project location
91
+ canonry run <project> --all-locations # Fan out one run per configured location
92
+ canonry run <project> --no-location # Explicitly skip location context
83
93
  canonry run <project> --wait # Trigger and wait for completion
84
94
  canonry run --all # Trigger runs for all projects
85
95
  canonry run show <id> # Show run details and snapshots
@@ -164,8 +174,22 @@ spec:
164
174
  - openai
165
175
  - claude
166
176
  - local
177
+ locations:
178
+ - label: sf
179
+ city: San Francisco
180
+ region: California
181
+ country: US
182
+ timezone: America/Los_Angeles
183
+ - label: nyc
184
+ city: New York
185
+ region: New York
186
+ country: US
187
+ timezone: America/New_York
188
+ defaultLocation: sf
167
189
  ```
168
190
 
191
+ Locations are project-scoped run context. Keywords remain project-wide; choose the location at run time via the default location or the `canonry run` location flags.
192
+
169
193
  Apply with the CLI or the API. Multiple projects can live in one file separated by `---`, or pass multiple files:
170
194
 
171
195
  ```bash