Code reference detail
config.test.ts
packages/language/test/config.test.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| base | A base is a container for ideas, ideasets, and files. It forms the boundary of one ideas graph and is consumed by the CLI and the extension. Marker: a directory is a base only when it owns a `.reqlan` folder ( [app_memory_doc.application_memory] ). No bare workspace folder is treated as a base until the user creates `.reqlan` there ( [create_base_onboarding] ). Aligns with [ontology_base]. Discovery and registry: [base_discovery], [base_registry]. Marker path helpers: [application_memory_impl]. | 0.322 | ||
| base_configuration | Base configuration is distinct from, but related to, [extension_configuration]. Optional settings live at `<base>/.reqlan/config.json` ( one config per base ). For an `.rq` file, the applying base is the nearest ancestor that owns `.reqlan`; that base's config applies when present. See [extension_configuration.configuration_location]; resolved by [path_resolve]. | 0.087 | ||
| click | done | The [click_ontology] function returns compact local context for one target. Input: an idea name, a `path#idea` ref, a `.rq` file path, or an indexed code file ( [click_input], [click_code_file] ). Resolution uses [click_ambiguity]: no match uses search; more than one match is ranked; one match uses [click_output]. Optional [click_max_detail] flags cap how many names and bodies are listed. Optional `sessionKey` continues a [click_session]. A second click on a centre already clicked in that session returns the connected content ( [click_session] ). Surfaces: CLI `reqlan click` ( [click_cli] ), MCP `click` ( [mcp_server] ), and [native_analysis_api] `click`. MCP search and retrieval use this tool only ( ["../extension/agent/skills-and-mcp.rq".mcp_click_retrieval] ). Engine: [click_rust] on ["./cli_package.rq".architecture] / ["../core_analysis/rust_port.rq".analytical_rust_port]. Related: [function_parity], [commands], [agent_advisory], [click_session], [click_input], [click_max_detail], [click_output]. | 0.200 | |
| click_max_detail | done | Flags that cap how many names and bodies click lists. Invalid or missing values use the default. Values less than 1 use 1. Defaults live in `.reqlan/config.json` under `click` ( [configuration_location], [configuration_schema_file] ). CLI and MCP flags override config. - `maxBacklinks` / `--max-backlinks` / `click.maxBacklinks` — first n backlink names in [click_output], then " + m more ". - `maxSiblings` / `--max-siblings` / `click.maxSiblings` — first n sibling names, then " + m more ". - `maxOutbound` / `--max-outbound` / `click.maxOutbound` — first n outbound names or paths, then " + m more ". - `maxCandidates` / `--max-candidates` / `click.maxCandidates` — search hits and ranked ambiguous matches. The default for each list is `click.listLimit` in ["../../packages/analytical/src/core/defaults.json"]. `maxDetail` / `--max-detail` is the old hop-depth for a neighbourhood dump. Unique [click_output] does not use hop depth. The flag is still accepted and ignored on the unique path. | 0.122 | |
| click_session_limit | done | Maximum stored click sessions per base is `click.maxSessions` in ["../../packages/analytical/src/core/defaults.json"]. Configure with `click.maxSessions` in `.reqlan/config.json` ( [configuration_location], [configuration_schema_file] ). Invalid or missing values use that default. Values below `click.minimum` use `click.minimum`. Eviction is by session count and last-touched time ( [click_session] ). Count caps for one click result are [click_max_detail], not this limit. | 0.070 | |
| configuration_import_roots | `importRoots` is an optional array of alias-to-directory mappings in `.reqlan/config.json`. Each mapping has: - `alias` ( required non-empty string ): prefix before `/` in aliased import paths. - `root` ( optional non-empty string ): directory for that alias. A relative `root` resolves against the base root ( the parent of `.reqlan` ), not against the `.reqlan` directory. An absolute path or `file://` URI is used as that alias' import-root directory directly. When `root` is omitted for a mapping, that alias uses the workspace folder that contains the `.rq` file. When `importRoots` is omitted, empty, or has no valid entries, the default is one mapping with alias `importRootAlias` from ["../../../packages/analytical/src/core/defaults.json"] and no explicit root. When several aliases could match a path, the longest alias wins. Invalid or unreadable JSON, and a non-array `importRoots` value, fall back to defaults ( or no loaded config for discovery, then defaults at resolve time ). Language path forms and `@/` shorthand: ["../../language/imports.rq".import_paths] and ["../../language/imports.rq".configuration_import_root_alias]. Comment references in source files use the same mappings: ["../language/comment-references/functional-code-comment-references.rq".comment_reference_import_root_alias]. Schema: [configuration_schema_file]. Applying file discovery: [configuration_location]. Editor completion of aliased import paths: ["../language/syntax/features-syntax.rq".code_completion]. | 0.167 | ||
| configuration_location | An optional `.reqlan/config.json` may appear under a base's `.reqlan` directory. For a given `.rq` file, the applying base is the nearest ancestor directory that owns a `.reqlan` folder. The applying config is that base's `.reqlan/config.json` when present. If the owning base has no `config.json`, or no owning base is found, defaults from [configuration_import_roots] apply. A child base does not inherit a parent base's config. | 0.190 | ||
| configuration_schema_file | done | The machine-readable JSON Schema for `.reqlan/config.json` is ["../../../packages/extension/schemas/config.schema.json"]. That file is the single authoring source. Its `$id` is the public URL `https://reqlan.com/schemas/v1/config.schema.json`. Path segment `v1` is schema compatibility version: additive keys stay on `v1`; breaking shape changes introduce `v2` and a new seed URL. The site hosts a synced copy under `/schemas/v1/` ( ["../../site/site.rq".sync_config_schema] ). The extension contributes the local schema for `**/.reqlan/config.json` via `jsonValidation` in ["../../../packages/extension/package.json"] ( offline editor path ). New bases seed `$schema` to the public `$id` ( ["./installation.rq".base_config_seed] ). `.reqlan/config.json` is a JSON object. Unknown properties are not part of the schema and are ignored when loading. `$schema` is an allowed property. | 0.105 | |
| base_config_seed | done | New bases write `.reqlan/config.json` with `$schema` pointing at the public v1 schema URL via [create_base_impl]. Seed shape: `{"$schema":"https://reqlan.com/schemas/v1/config.schema.json"}`. Semantics and discovery of applying config: [configuration.configuration_location], [configuration.configuration_import_roots], [bases.base_configuration]. Schema / editor validation: [configuration.configuration_schema_file]. A child base does not inherit a parent base's config file. Existing bases are not rewritten ( idempotent create leaves them alone ). | 0.076 | |
| installation | reqlan installation has **two sequenced layers** that must not be conflated: 1. [extension_installation] — host product ( VS Code / Cursor extension ) install and first activation. 2. [base_installation] — marking a filesystem directory as a reqlan [bases.base] and seeding its `.reqlan` application memory. Extension install alone does **not** create a base. Base install alone does **not** open the welcome webview or install host agent skills. CLI `init` shares the base path with the editor ( [cli.init] / [bases.create_base_onboarding] ). | 0.046 | ||
| configuration_import_root_alias | An import path may start with an alias string, then `/`, then a relative path under that alias's import-root directory. Default alias string: `@`, written as `@/` plus a path relative to the import root. Default import-root directory: the workspace folder that contains the `.rq` file ( not the document directory ). The path after `/` is joined to that alias's import-root directory; the alias itself must be followed by `/` ( e. g. `@reqs` is not aliased ). Alias strings and import-root directories are configured as [configuration.configuration_import_roots] in the applying `.reqlan/config.json` from [configuration.configuration_location]. A configured relative `root` resolves against the base root ( parent of `.reqlan` ); an omitted `root` keeps the workspace-folder default. When several configured aliases could match a path, the longest alias wins. Related path forms: [import_paths], ["../extension/language/comment-references/functional-code-comment-references.rq".comment_reference_import_root_alias]. Completion: ["../extension/language/syntax/features-syntax.rq".code_completion]. File references and the language server use the same locate rule as ["../core_analysis/check.rq".check]: load `importRoots` from the applying `.reqlan/config.json` for the source file ( [configuration.configuration_location] ), then `resolve_rq_path` and join the workspace when the result is relative — including paths with spaces such as `["@/my file.ts"]`. | 0.296 | ||
| import_keywords | The keywords import, from, and as are reserved for import statements. Import keywords may also appear as ordinary words in idea body text when not at statement start. | 0.047 | ||
| configuration | done | There are multiple scopes for configuration: at the [base] level and at the [extension] level. Base config: ["./extension/host/configuration.rq".configuration_location] ( `<base>/.reqlan/config.json` ). Base vs extension split: ["./bases/base.rq".base_configuration]. | 0.040 | |
| idea | done | A reqlan core unit is an idea. Syntax: ["./language/syntax.rq".simple_idea], ["./language/syntax.rq".block_idea]. Grammar: [reqlan_grammar] `Idea` / `OneLinerIdea`; index records: [analytical_types] `IdeaRecord`. Extract: [idea_extractor], [rust_extract]; AST: [rust_ast]. Product surface: [ideas_summary_tabs] Ideas tab per ["./extension/workspace-summary/ideas_summary/webview.rq".ontology_aligned_tabs]. | 0.110 | |
| site | the / site folder contains a static Next. js App Router landing page for reqlan. should align with [brand] Copy modules: [copy] Document head: [meta_tags] | 0.040 | ||
| sync_config_schema | done | `scripts/sync-config-schema.mts` copies the canonical base config JSON Schema from ["../../packages/extension/schemas/config.schema.json"] into `public/schemas/v1/config.schema.json`. Public URL: `https://reqlan.com/schemas/v1/config.schema.json` ( path `v1` is schema compatibility; not site package semver ). Canonical authoring and `$id`: ["../extension/host/configuration.rq".configuration_schema_file]. Init seed `$schema`: ["../extension/host/installation.rq".base_config_seed]. Wired into site `predev` and `build-static` ( same pattern as [sync_presentations] ). Deployed with existing `site/v*` pipeline. Synced artifact is not a second authoring source; do not edit under `public/schemas/`. | 0.054 |
Reference labels
"../../../packages/language/test/config.test.ts:Windows drive-letter root is used as a file URI not scheme c:", "../../../packages/language/test/config.test.ts:absolute filesystem root is used directly", "../../../packages/language/test/config.test.ts:aliased path uses relative root from applying config", "../../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted", "../../../packages/language/test/config.test.ts:empty importRoots array uses default alias mapping", "../../../packages/language/test/config.test.ts:empty object uses default alias mapping", "../../../packages/language/test/config.test.ts:empty string alias entries are skipped", "../../../packages/language/test/config.test.ts:empty string root is ignored on a mapping", "../../../packages/language/test/config.test.ts:file URI root is used directly", "../../../packages/language/test/config.test.ts:importRoots alias only overrides the alias", "../../../packages/language/test/config.test.ts:invalid JSON falls back to undefined load", "../../../packages/language/test/config.test.ts:invalid importRoots entries are skipped", "../../../packages/language/test/config.test.ts:loads config from an ancestor base", "../../../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../../../packages/language/test/config.test.ts:longest alias wins when mappings overlap", "../../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots", "../../../packages/language/test/config.test.ts:nearest base config wins over farther ones", "../../../packages/language/test/config.test.ts:non-array importRoots falls back to undefined load", "../../../packages/language/test/config.test.ts:non-object JSON falls back to undefined load", "../../../packages/language/test/config.test.ts:owning base without config does not inherit parent", "../../../packages/language/test/config.test.ts:relative root resolves against the base root", "../../../packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid", "../../../packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists", "../../../packages/language/test/config.test.ts:returns undefined when no config exists", "../../../packages/language/test/config.test.ts:schema $id matches public v1 host path", "../../../packages/language/test/config.test.ts:schema file documents importRoots mappings", "../../../packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply", "../../packages/language/test/config.test.ts:aliased path uses relative root from applying config", "../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted", "../../packages/language/test/config.test.ts:loads click list caps from applying config", "../../packages/language/test/config.test.ts:loads click.maxSessions from applying config", "../../packages/language/test/config.test.ts:loads config from an ancestor base", "../../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../../packages/language/test/config.test.ts:longest alias wins when mappings overlap", "../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots", "../../packages/language/test/config.test.ts:nearest base config wins over farther ones", "../../packages/language/test/config.test.ts:owning base without config does not inherit parent", "../../packages/language/test/config.test.ts:returns undefined when no config exists", "../../packages/language/test/config.test.ts:schema $id matches public v1 host path", "../../packages/language/test/config.test.ts:schema file documents click maxSessions", "../../packages/language/test/config.test.ts:schema file documents importRoots mappings", "../packages/language/test/config.test.ts:loads config from the owning base .reqlan", "../packages/language/test/config.test.ts:returns undefined when no config exists", ../../../packages/language/test/config.test.ts:Windows drive-letter root is used as a file URI not scheme c:, ../../../packages/language/test/config.test.ts:absolute filesystem root is used directly, ../../../packages/language/test/config.test.ts:aliased path uses relative root from applying config, ../../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted, ../../../packages/language/test/config.test.ts:empty importRoots array uses default alias mapping, ../../../packages/language/test/config.test.ts:empty object uses default alias mapping, ../../../packages/language/test/config.test.ts:empty string alias entries are skipped, ../../../packages/language/test/config.test.ts:empty string root is ignored on a mapping, ../../../packages/language/test/config.test.ts:file URI root is used directly, ../../../packages/language/test/config.test.ts:importRoots alias only overrides the alias, ../../../packages/language/test/config.test.ts:invalid JSON falls back to undefined load, ../../../packages/language/test/config.test.ts:invalid importRoots entries are skipped, ../../../packages/language/test/config.test.ts:loads config from an ancestor base, ../../../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../../../packages/language/test/config.test.ts:longest alias wins when mappings overlap, ../../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots, ../../../packages/language/test/config.test.ts:nearest base config wins over farther ones, ../../../packages/language/test/config.test.ts:non-array importRoots falls back to undefined load, ../../../packages/language/test/config.test.ts:non-object JSON falls back to undefined load, ../../../packages/language/test/config.test.ts:owning base without config does not inherit parent, ../../../packages/language/test/config.test.ts:relative root resolves against the base root, ../../../packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid, ../../../packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists, ../../../packages/language/test/config.test.ts:returns undefined when no config exists, ../../../packages/language/test/config.test.ts:schema $id matches public v1 host path, ../../../packages/language/test/config.test.ts:schema file documents importRoots mappings, ../../../packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply, ../../packages/language/test/config.test.ts:aliased path uses relative root from applying config, ../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted, ../../packages/language/test/config.test.ts:loads click list caps from applying config, ../../packages/language/test/config.test.ts:loads click.maxSessions from applying config, ../../packages/language/test/config.test.ts:loads config from an ancestor base, ../../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../../packages/language/test/config.test.ts:longest alias wins when mappings overlap, ../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots, ../../packages/language/test/config.test.ts:nearest base config wins over farther ones, ../../packages/language/test/config.test.ts:owning base without config does not inherit parent, ../../packages/language/test/config.test.ts:returns undefined when no config exists, ../../packages/language/test/config.test.ts:schema $id matches public v1 host path, ../../packages/language/test/config.test.ts:schema file documents click maxSessions, ../../packages/language/test/config.test.ts:schema file documents importRoots mappings, ../packages/language/test/config.test.ts:loads config from the owning base .reqlan, ../packages/language/test/config.test.ts:returns undefined when no config exists