Post-initial polish: voicemail SQL fix, README, .env in local ignore

- route_plan.py: drop `NULL AS context` from voicemail_pilot_css query.
  Informix rejected it as a syntax error; the column wasn't carrying any
  signal anyway, so the simpler SELECT works and matches the other
  reference-point queries.
- README.md: tool table now covers all 16 tools (route_device_pool_route_groups,
  route_devices_using_css, route_filters were missing).
- .gitignore: explicitly ignore .env. Already covered by ~/.gitignore_global,
  but worth being self-contained — anyone cloning without the global ignore
  shouldn't be one stray `git add` away from leaking AXL credentials.
This commit is contained in:
Ryan Malloy 2026-04-25 20:34:57 -06:00
parent 8b3da9d729
commit 9340e7385a
3 changed files with 10 additions and 6 deletions

1
.gitignore vendored
View File

@ -8,6 +8,7 @@ dist/
build/
*.sqlite
*.sqlite-journal
.env
.env.local
# Cisco AXL Toolkit — vendor-licensed, do not redistribute

View File

@ -96,13 +96,16 @@ opens this directory.
| Tool | Purpose |
|---|---|
| `route_partitions()` | All partitions with member counts |
| `route_partitions()` | All partitions with pattern + CSS-member counts |
| `route_calling_search_spaces(name=None)` | CSS list with ordered partitions |
| `route_patterns(kind=None, partition=None, filter=None)` | Route Plan Report |
| `route_inspect_pattern(pattern, partition=None)` | One-pattern deep dive + reverse CSS lookup |
| `route_lists_and_groups(name=None)` | Route list → route group → device chain |
| `route_translation_chain(number, css_name=None)` | "What patterns might match this number?" (literal/prefix only) |
| `route_patterns(kind=None, partition=None, filter=None)` | Route Plan Report — patterns + transformations |
| `route_inspect_pattern(pattern, partition=None)` | Deep dive: transforms, route filter, reachable-from CSS, full destination chain (route list → groups → gateways) |
| `route_lists_and_groups(name=None)` | Route list → route group → gateway chain (annotates Local Route Group placeholders) |
| `route_translation_chain(number, css_name=None)` | Wildcard-aware pattern matcher: evaluates X / ! / [0-9] / @ / \\+ against the number and returns matches sorted by specificity |
| `route_digit_discard_instructions()` | DDI catalog |
| `route_device_pool_route_groups(device_pool_name=None)` | How each device pool resolves Local Route Group placeholders to actual gateway-bearing groups |
| `route_devices_using_css(css_name)` | Impact analysis: every reference to a CSS across line CFA/CFB/CFNA/CFUR/translation/MWI/shared, device-level CSSs, voicemail pilots, route lists |
| `route_filters(name=None)` | Route filter clauses + member rules (composed with @-pattern routes) |
## Prompts

View File

@ -502,7 +502,7 @@ _CSS_REFERENCE_QUERIES: dict[str, dict] = {
"voicemail_pilot_css": {
"table": "voicemessagingpilot", "column": "fkcallingsearchspace",
"sql": """
SELECT directorynumber AS name, NULL AS context, description
SELECT directorynumber AS name, description
FROM voicemessagingpilot
WHERE fkcallingsearchspace = '{pkid}'
""",