Skip to content

型とインターフェース ​

INFO

v0.7.1 の dist/index.d.ts から自動生成しました(インターフェース 13 個・型 6 個・2026-10-10)。手で編集しないでください。再生成は node scripts/generate-reference.mjs です。

関数の引数と戻り値、辞書のエントリの形に使われている型です。型には仕様書が無いので、型定義(dist/index.d.ts)の宣言と説明だけを写しています。

辞書の解決 ​

AbbreviationStats ​

インターフェース ・ v0.1.0 で追加 ・ family では未使用

ts
interface AbbreviationStats {
    total: number;
    byDomain: Record<Domain, number>;
    byCategory: Record<Category, number>;
    bySourceMcpHint: Record<SourceMcpHint, number>;
}

getAbbreviationStats が返す辞書統計。起動時ログ・診断用。

byDomain / byCategory / bySourceMcpHint のキーは、それぞれ DOMAINS / CATEGORIES / SOURCE_MCP_HINTS の全値を定数の順で持ち、辞書に無い値は 0 (v0.7.0 から。v0.6.1 までは 1 件以上ある値だけがキーで、型は Record<string, number>)。

関係する型: Category・Domain・SourceMcpHint

この型を使う関数・値: getAbbreviationStats

ResolveAbbreviationOptions ​

インターフェース ・ v0.3.0 で追加 ・ family では未使用

ts
interface ResolveAbbreviationOptions {
    /**
     * 全角/半角の表記ゆらぎを吸収して照合するかどうか。
     *
     * - `false`(デフォルト): 入力を `.trim()` のみ施して完全一致照合。
     *   v0.2.0 までと同じ挙動で、後方互換性が保たれる。
     * - `true`: 入力を `normalizeJpText` で正規化したうえで、
     *   同様に正規化されたインデックスから照合する。
     *   ダッシュ類/チルダ/数字/全角 ASCII 文字/全角スペースの
     *   揺れを吸収する。**大文字小文字は保持する**ため、`PL法` と `pl法` は
     *   別物として扱われる。全角スペースは半角スペースになるだけで取り除かれない
     *   (前後の空白は取り除く)。
     *
     * @default false
     */
    normalize?: boolean;
}

resolveAbbreviation に渡せるオプション。

この型を使う関数・値: resolveAbbreviation

検索とあいまい一致 ​

FuzzyMatch ​

インターフェース ・ v0.4.0 で追加 ・ family では未使用

ts
interface FuzzyMatch {
    /** マッチしたエントリ */
    entry: AbbreviationEntry;
    /** マッチしたキー (abbr / formal / aliases のいずれか、元の生文字列) */
    matchedKey: string;
    /** 編集距離 (小さいほど近い) */
    distance: number;
}

findSimilar が返す 1 件。マッチしたエントリと、どのキーに何文字差で 一致したかを持つ。

関係する型: AbbreviationEntry

FuzzyOptions ​

インターフェース ・ v0.4.0 で追加 ・ family では未使用

ts
interface FuzzyOptions {
    /** 最大編集距離 (デフォルト 2) */
    maxDistance?: number;
    /**
     * 結果の最大件数。1 以上 500 以下の整数。省くと 5。
     *
     * 規則は `searchByName` の `limit` と同じ。それ以外の値は `RangeError`、
     * 数でない値は `TypeError` を投げ、丸めない(v0.7.0 から)。
     */
    limit?: number;
    /** スコア順 (距離昇順) にソート。default true */
    sortByScore?: boolean;
    /** filter は SearchOptions と同じ */
    filter?: SearchFilter;
    /** 全角/半角の表記ゆらぎを吸収 (デフォルト true) */
    normalize?: boolean;
}

findSimilar のオプション

関係する型: SearchFilter・SearchOptions

SearchFilter ​

インターフェース ・ v0.4.0 で追加 ・ family では未使用

ts
interface SearchFilter {
    domain?: Domain | Domain[];
    category?: Category | Category[];
    source_mcp_hint?: SourceMcpHint | SourceMcpHint[];
}

filter 構造。各キーは単一値・配列のどちらでも OK

関係する型: Category・Domain・SourceMcpHint

SearchMode ​

型 ・ v0.4.0 で追加 ・ family では未使用

ts
type SearchMode = 'prefix' | 'contains' | 'suffix';

部分一致モード

SearchOptions ​

インターフェース ・ v0.4.0 で追加 ・ family では未使用

ts
interface SearchOptions {
    /** 検索モード (デフォルト 'contains') */
    mode?: SearchMode;
    /** 全角/半角の表記ゆらぎを吸収 (デフォルト true) */
    normalize?: boolean;
    /**
     * 結果の最大件数。1 以上 500 以下の整数。省くと 50。
     *
     * それ以外の値(1 未満、小数、500 超、`NaN`、`Infinity`)は `RangeError`、
     * 数でない値は `TypeError` を投げ、丸めない(v0.7.0 から)。
     */
    limit?: number;
    /** 結果を絞り込むフィルター (各キーは単一値 or 配列) */
    filter?: SearchFilter;
}

searchByName のオプション

関係する型: SearchFilter・SearchMode

逆引き ​

GetAllNamesOptions ​

インターフェース ・ v0.7.0 で追加 ・ family では未使用

ts
interface GetAllNamesOptions {
    /**
     * `true` なら、`name` と辞書の名前の両方を `normalizeJpText` に通してから比べる
     * (全角英数字・ダッシュ類・全角チルダ・全角スペースを半角にする)。返す名前は
     * 辞書に書かれた表記のまま。`resolveAbbreviation` の `options.normalize` と同じ意味で、
     * 既定も同じ `false`。MCP サーバーは入口で `true` を渡す。
     *
     * @default false
     */
    normalize?: boolean;
}

getAllNames に渡せるオプション。

この型を使う関数・値: getAllNames

LookupByLawIdOptions ​

インターフェース ・ v0.7.0 で追加 ・ family では未使用

ts
interface LookupByLawIdOptions {
    /**
     * `true` なら、`law_id` を `normalizeJpText` に通してから比べる(全角英数字を半角にする)。
     * 英字の小文字は大文字にしない(`isValidLawId` と同じく、小文字の `law_id` は一致しない)。
     * 辞書の `law_id` は半角の大文字なので、辞書の側は変換しない。既定 `false`。
     *
     * @default false
     */
    normalize?: boolean;
}

lookupByLawId に渡せるオプション。

この型を使う関数・値: lookupByLawId

鮮度の判定 ​

StalenessLevel ​

型 ・ v0.4.1 で追加 ・ houki-egov-mcp / houki-nta-mcp が使用

ts
type StalenessLevel = 'fresh' | 'stale' | 'outdated';

staleness の判定レベル。

各 MCP のレスポンス整形(FreshnessRange / FreshnessSingle 等)の フィールドとして共通的に使われる想定。文字列 union の値は family 全体で 不変として扱う(壊すと既存の MCP すべてに破壊変更が伝播する)。

  • 'fresh': 直近に取得済み(既定: < 7 日)。利用可、警告不要
  • 'stale': やや古い(既定: 7〜29 日)。利用可だが bulk DL を warning として返す
  • 'outdated': 古い(既定: ≧ 30 日)。利用前に再取得を促す

この型を使う関数・値: judgeStaleness

検証 ​

ExtractOptions ​

インターフェース ・ v0.5.0 で追加 ・ family では未使用

シグネチャ(長いので畳んでいます)
ts
interface ExtractOptions {
    /**
     * 最小マッチ長(これより短いキーは無視)。
     *
     * デフォルト 2。「民」「税」のような 1 文字略称はノイズが多いので
     * デフォルトでは抽出対象外。1 文字も含めたい場合は `minLength: 1` を指定。
     *
     * @default 2
     */
    minLength?: number;
    /**
     * 同一エントリへのマッチを 1 件に絞るか。
     *
     * @default false
     */
    dedupe?: boolean;
    /**
     * 範囲が重なるときに長い方を優先するか。
     *
     * `true` なら、ほかの、より長い一致と 1 文字でも範囲が重なる短い一致を返さない。
     * 例: テキスト「民法等の一部を改正する法律」内に `民法` と
     * `民法等の一部を改正する法律` の両方がマッチする場合、長い方(後者)だけを返す。
     * 「消費税法法人税法」の `法法` のように、2 つの長い一致の端にまたがる短い一致も
     * 返さない(v0.7.0 から。v0.6.1 までは、すっぽり含まれる一致だけを除いていた)。
     * 長さが同じ一致どうしは、重なっていても両方返す。
     *
     * @default true
     */
    preferLonger?: boolean;
    /**
     * 全角/半角の表記ゆらぎを吸収して探すか。
     *
     * `true` なら、`text` と辞書のキーの両方を `normalizeJpText` と同じ規則で半角にしてから
     * 探す(全角英数字・ダッシュ類・全角チルダ・全角スペース)。`matchedKey` は辞書の表記の
     * まま、`position` と `length` は元の `text` の位置と長さで返す。
     * `resolveAbbreviation` の `options.normalize` と同じ意味で、既定も同じ `false`。
     * MCP サーバーは入口で `true` を渡す。
     *
     * @since 0.7.0
     * @default false
     */
    normalize?: boolean;
}

extractLawNames のオプション。

LawNameMatch ​

インターフェース ・ v0.5.0 で追加 ・ family では未使用

ts
interface LawNameMatch {
    /** マッチした辞書エントリ */
    entry: AbbreviationEntry;
    /** マッチした文字列(abbr / formal / aliases のいずれかの値) */
    matchedKey: string;
    /** text 内での開始位置(0-based) */
    position: number;
    /** マッチした長さ */
    length: number;
}

テキスト中の法令名抽出結果。

関係する型: AbbreviationEntry

ValidationIssue ​

インターフェース ・ v0.5.0 で追加 ・ family では未使用

ts
interface ValidationIssue {
    /** 機械可読なコード(family 共通の error contract と同じ語彙を使う) */
    code: string;
    /** 人間可読な説明 */
    message: string;
    /** 該当エントリ(特定できる場合のみ) */
    entry?: AbbreviationEntry;
}

静的整合性チェックの error / warning 共通型。

関係する型: AbbreviationEntry

ValidationReport ​

インターフェース ・ v0.5.0 で追加 ・ family では未使用

ts
interface ValidationReport {
    /** `errors.length === 0` のとき `true` */
    valid: boolean;
    /** 重大な不整合(CI を fail させる) */
    errors: ValidationIssue[];
    /** 軽微な不整合(CI は fail させないがログに出す) */
    warnings: ValidationIssue[];
}

辞書全体の検証レポート。

関係する型: ValidationIssue

エントリの構造と取りうる値 ​

AbbreviationEntry ​

インターフェース ・ v0.1.0 で追加 ・ houki-egov-mcp / houki-nta-mcp が使用

シグネチャ(長いので畳んでいます)
ts
interface AbbreviationEntry {
    /** 略称・通称。例: "消法", "民" */
    abbr: string;
    /** 正式名称。例: "消費税法", "民法" */
    formal: string;
    /** e-Gov law_id。verified 済みのもののみ格納。未確認・該当なしは null */
    law_id: string | null;
    /** 法令番号。例: "昭和六十三年法律第百八号" */
    law_num?: string;
    /**
     * e-Gov の法令種別コード。法令系のみ持つ。
     *
     * @deprecated 将来は category の方が表現力が高いため、こちらに集約予定。
     *             v0.1.x では後方互換として残す。
     */
    law_type?: LawTypeCode;
    /** 分野タグ(実務分野での分類) */
    domain: Domain;
    /**
     * 法令カテゴリ。どの種類のテキストか(法律本体・通達・判例 等)。
     *
     * 実エントリがあるのは法令系('constitution' 〜 'rule')と、'kihon-tsutatsu'(8 件)・
     * 'kobetsu-tsutatsu'(1 件)。'kokuji' / 'qa-jirei' / 'tax-answer' / 'hanrei' / 'saiketsu' は
     * 辞書にまだエントリが無い種類として先に定義している。
     */
    category: Category;
    /**
     * 参照すべき MCP のヒント。
     *
     * このエントリを LLM が引いたとき、どの MCP に対してさらに本文取得を
     * 依頼すべきかを示す。各 MCP は自分の hint と一致しないエントリに対して
     * 「管轄外」と判定し、正しい MCP に誘導する。
     */
    source_mcp_hint: SourceMcpHint;
    /**
     * 同義の別表記。略称・通称・英語名など。
     *
     * 自分の `abbr` / `formal` と同じ値は入れない(`validateAllEntries` の
     * `alias_equals_own_name` エラー)。ほかのエントリの名前とも重ならない(`duplicate_name`)。
     */
    aliases?: string[];
    /** 備考(例: "通称: 電子帳簿保存法") */
    note?: string;
}

略称辞書エントリ

1 件 = 1 つの法令/通達/判例 等のメタ情報。 複数の略称・通称・正式名称から逆引きするための共通テーブル。

凍結されている ​

abbreviationEntries の各エントリと aliases の配列は凍結されている(v0.7.0 から)。 名前・ID・一覧・検索で返すエントリは辞書の要素そのもの(同じオブジェクト)なので、 フィールドへの代入は strict mode では TypeError になる。書き換えたいときは structuredClone(entry) や { ...entry } で自分のコピーを作る。

freshness は持たない ​

本エントリは 静的なメタ情報のみ を保持する。「いつ取得したか」という 運用状態(fetched_at 等)は各 MCP のローカル DB / キャッシュ側で管理し、 判定は freshness モジュール(judgeStaleness / computeDaysSince)で 行う。詳細は src/freshness.ts のヘッダ JSDoc を参照。

関係する型: Category・Domain・LawTypeCode・SourceMcpHint

この型を使う関数・値: abbreviationEntries・listByCategory・listByDomain・listBySourceMcpHint・lookupByLawId・lookupByLawNum・resolveAbbreviation・searchByName

Category ​

型 ・ v0.1.0 で追加 ・ houki-nta-mcp が使用

ts
type Category = (typeof CATEGORIES)[number];

CATEGORIES の要素型。

この型を使う関数・値: listByCategory

Domain ​

型 ・ v0.1.0 で追加 ・ houki-egov-mcp / houki-nta-mcp が使用

ts
type Domain = (typeof DOMAINS)[number];

DOMAINS の要素型。

この型を使う関数・値: listByDomain

LawTypeCode ​

型 ・ v0.1.0 で追加 ・ houki-egov-mcp が使用

ts
type LawTypeCode = keyof typeof LAW_TYPE_CODES;

LAW_TYPE_CODES のキー。法令種別の名前を表す。

SourceMcpHint ​

型 ・ v0.1.0 で追加 ・ houki-nta-mcp が使用

ts
type SourceMcpHint = (typeof SOURCE_MCP_HINTS)[number];

SOURCE_MCP_HINTS の要素型。

この型を使う関数・値: listBySourceMcpHint

関連ページ ​

本サイトの内容は調査の出発点であり、法的助言ではありません。個別の事案は資格を持つ専門家に相談してください。免責事項と利用範囲