Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,7 @@ mini-a "Refactor the parser and keep iterating until validation passes" \
| `wikiuseversion1` | Use S3 signature v1/path-style compatibility for wiki access | `false` |
| `wikiignorecertcheck` | Disable TLS certificate checks for wiki S3 access | `false` |
| `wikiindexdir` | Override local index/cache root for non-filesystem wiki indexes | - |
| `wikilexical` | SLON/JSON lexical configuration for Lucene (`language` defaults to `english`; explicit `synonyms` and opt-in enhanced features supported) | `{ language: "english" }` |
| `wikis3artifactprefix` | Optional S3 prefix containing a published `.mini-a-wiki-lucene/` cache and, for `mcp-wiki`, `.mini-a-wiki-graph/graph.json`; downloaded into `wikiindexdir` on startup | - |
| `wikirestrictprofile` | `mcp-wiki-safe` restricted retrieval defaults profile (`tight`, `moderate`, or `relaxed`); `tight` preserves legacy defaults and individual `wikirestrict*` settings override profile values | `tight` |
| `wikimetacache` | Enable sharded wiki page metadata cache | `true` |
Expand Down
2 changes: 2 additions & 0 deletions USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -884,6 +884,8 @@ The `start()` method accepts various configuration options:
- **`wikiuseversion1`** (boolean, default: `false`): Use S3 path-style/signature-v1 compatibility for `s3`/`s3fs`.
- **`wikiignorecertcheck`** (boolean, default: `false`): Disable TLS certificate checks for the S3 endpoint.
- **`wikiindexdir`** (string, optional): Override the local index/cache directory used for non-filesystem wiki indexes.
- **`wikilexical`** (SLON/JSON, optional): Lucene lexical configuration. It defaults to `{ language: "english" }`; choose another supported Lucene language and add explicit synonym rules (for example `{ language: "portuguese", synonyms: [["carro", "automovel"]] }`). `shingles`, `ngrams`, `queryExpansion`, and `pseudoRelevanceFeedback` are disabled unless explicitly enabled. The matching configuration is recorded in `.mini-a-wiki-lucene/mini-a-lexical.json`; run writable `/wiki reindex` after changing it. Read-only or hydrated legacy indexes continue ordinary Lucene retrieval and log one publisher-reindex warning.
- **`OAF_MINI_A_WIKI_LEXICAL`** (environment variable, optional): Environment equivalent of `wikilexical`; an explicit runtime `wikilexical` value takes precedence.
- **`wikis3artifactprefix`** (string, optional): For an `s3` wiki, download a separately published artifact tree into `wikiindexdir` at startup. Place Lucene files below `.mini-a-wiki-lucene/`; `mcp-wiki` can also consume `.mini-a-wiki-graph/graph.json` when `usewikigraph=true`. The MCP servers remain read-only and never publish artifacts back to S3.
- **`wikirestrictprofile`** (string, default: `tight`): For `mcp-wiki-safe`, selects restricted retrieval defaults: `tight`, `moderate`, or `relaxed` (case-insensitive). `tight` preserves the previous defaults; individual `wikirestrict*` settings override profile values; hard disclosure ceilings remain enforced and the safe server stays read-only with only `search` and `read`.
- **`wikimetacache`** (boolean, default: `true`): Enable the sharded metadata cache used by wiki search/list/read helpers.
Expand Down
5 changes: 5 additions & 0 deletions mcps/mcp-wiki-ops.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ help:
desc : If true, disable write operations in this MCP server.
example : "false"
mandatory: false
- name : wikilexical
desc : "SLON/JSON Lucene lexical configuration. Defaults to {language: 'english'}; supports explicit synonym rules."
example : "{ language: 'english', synonyms: [['js', 'javascript']] }"
mandatory: false
- name : wikimounts
desc : "SLON/JSON array of read-only wiki mounts: [{name, backend, root|bucket|prefix|url|...}]"
example : "[{name: 'team', backend: 'fs', root: './team-wiki'}]"
Expand Down Expand Up @@ -295,6 +299,7 @@ jobs:
label : isString.default("wiki")
wikiaccess : isString.default("rw")
wikiopsreadonly : toBoolean.isBoolean.default(false)
wikilexical : isString.default(__)
wikimounts : isString.default(__)
exec : | #js
loadLib("mini-a-mcp-wiki.js")
Expand Down
5 changes: 5 additions & 0 deletions mcps/mcp-wiki-safe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ help:
desc : Local cache directory used for downloaded S3 Lucene artifacts
example : "/var/cache/mini-a/wiki"
mandatory: false
- name : wikilexical
desc : "SLON/JSON Lucene lexical configuration. Defaults to {language: 'english'}; supports explicit synonym rules."
example : "{ language: 'english', synonyms: [['js', 'javascript']] }"
mandatory: false
- name : toolPrefix
desc : Optional prefix prepended to all tool names (e.g. "docs-" -> docs-search, docs-read)
example : "wiki-"
Expand Down Expand Up @@ -213,6 +217,7 @@ jobs:
wikiignorecertcheck : toBoolean.isBoolean.default(false)
wikis3artifactprefix : isString.default(__)
wikiindexdir : isString.default(__)
wikilexical : isString.default(__)
usewikigraph : toBoolean.isBoolean.default(false)
wikirestrictprofile : isString.default("tight")
wikirestrictsearchlimit : toNumber.isNumber.default(__)
Expand Down
5 changes: 5 additions & 0 deletions mcps/mcp-wiki.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ help:
desc : Local cache directory used for downloaded S3 search and graph artifacts
example : "/var/cache/mini-a/wiki"
mandatory: false
- name : wikilexical
desc : "SLON/JSON Lucene lexical configuration. Defaults to {language: 'english'}; supports explicit synonym rules."
example : "{ language: 'english', synonyms: [['js', 'javascript']] }"
mandatory: false
- name : toolPrefix
desc : Optional prefix prepended to all tool names (e.g. "docs-" -> docs-list, docs-read, ...)
example : "wiki-"
Expand Down Expand Up @@ -318,6 +322,7 @@ jobs:
wikiignorecertcheck : toBoolean.isBoolean.default(false)
wikis3artifactprefix: isString.default(__)
wikiindexdir : isString.default(__)
wikilexical : isString.default(__)
usewikigraph : toBoolean.isBoolean.default(false)
wikigraphfalkorhost : isString.default(__)
wikigraphfalkorport : toNumber.isNumber.default(__)
Expand Down
3 changes: 3 additions & 0 deletions mini-a-con.js
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,7 @@ try {
wikiignorecertcheck: { type: "boolean", default: false, description: "Disable TLS certificate checks for the wiki S3 backend." },
wikilintstaleddays: { type: "number", default: 90, description: "Default stale-page threshold in days for wiki lint." },
wikimounts : { type: "string", description: "SLON/JSON array of read-only wiki mounts; fs roots may be directories or local .zip/.okt archives." },
wikilexical : { type: "string", description: "SLON/JSON Lucene lexical configuration; defaults to {language:'english'}." },
usewikigraph : { type: "boolean", default: false, description: "Enable the wiki knowledge graph for structural and semantic page relationships." },
wikigraphsemantic: { type: "boolean", default: false, description: "Build semantic (embedding-based) edges in addition to structural links when running /graph build." },
wikigraphcommunity: { type: "string", description: "Community detection algorithm for the wiki graph (louvain|leiden)." },
Expand Down Expand Up @@ -1417,6 +1418,8 @@ try {
var wikiCfg = {
access : sessionOptions.wikiaccess,
backend: sessionOptions.wikibackend,
indexdir: sessionOptions.wikiindexdir,
wikilexical: sessionOptions.wikilexical,
usegraph: toBoolean(sessionOptions.usewikigraph) === true,
wikigraphsemantic: toBoolean(sessionOptions.wikigraphsemantic) === true,
wikigraphcommunity: sessionOptions.wikigraphcommunity,
Expand Down
1 change: 1 addition & 0 deletions mini-a-mcp-wiki.js
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,7 @@ function __miniAMcpWikiBuildConfig(args, options) {
access : access,
backend : backend,
indexdir : isString(args.wikiindexdir) && args.wikiindexdir.trim().length > 0 ? args.wikiindexdir.trim() : __,
wikilexical : isDef(args.wikilexical) ? args.wikilexical : __,
s3artifactprefix : isString(args.wikis3artifactprefix) && args.wikis3artifactprefix.trim().length > 0 ? args.wikis3artifactprefix.trim() : __,
wikimetacache : isDef(args.wikimetacache) ? toBoolean(args.wikimetacache) : true,
usegraph : (isDef(args.usewikigraph) ? toBoolean(args.usewikigraph) : false) || isString(wikiGraphFalkorHost),
Expand Down
5 changes: 5 additions & 0 deletions mini-a-web.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,10 @@ help:
example : "false"
mandatory: false
options : ["true", "false"]
- name : wikilexical
desc : SLON/JSON Lucene lexical configuration (default `{language: 'english'}`)
example : "{ language: 'english', synonyms: [['js', 'javascript']] }"
mandatory: false
- name : wikilintstaleddays
desc : Default stale-page threshold in days for wiki lint
example : "90"
Expand Down Expand Up @@ -1879,6 +1883,7 @@ jobs:
wikiregion : isString().default(__)
wikiuseversion1: toBoolean().isBoolean().default(false)
wikiignorecertcheck: toBoolean().isBoolean().default(false)
wikilexical : isString().default(__)
wikilintstaleddays: toNumber().isNumber().default(__)
wikimounts : isString().default(__)
promptprofile : isString().default(__)
Expand Down
Loading