chishiki-mcp 0.0.0-stage → 0.2.0
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/LICENSE +21 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/src/adapter.d.ts +20 -0
- package/dist/src/adapter.d.ts.map +1 -0
- package/dist/src/adapter.js +87 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +6 -0
- package/dist/src/schema.d.ts +3 -0
- package/dist/src/schema.d.ts.map +1 -0
- package/dist/src/schema.js +68 -0
- package/dist/src/server.d.ts +4 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +52 -0
- package/dist/src/study.d.ts +40 -0
- package/dist/src/study.d.ts.map +1 -0
- package/dist/src/study.js +80 -0
- package/dist/src/study.test.d.ts +2 -0
- package/dist/src/study.test.d.ts.map +1 -0
- package/dist/src/study.test.js +25 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +37 -3
- package/README.md +0 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Seo Jong Hak
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ChishikiCore, type StorageAdapter } from 'chishiki-core';
|
|
2
|
+
/** Mirrors the `directories` crate's data_dir for ProjectDirs("app","chishiki","Chishiki"). */
|
|
3
|
+
export declare const defaultDbPath: () => string;
|
|
4
|
+
export declare class NodeSqliteAdapter implements StorageAdapter {
|
|
5
|
+
private readonly path;
|
|
6
|
+
private db;
|
|
7
|
+
constructor(path?: string);
|
|
8
|
+
private get conn();
|
|
9
|
+
initialize(): Promise<void>;
|
|
10
|
+
query<T = unknown>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
11
|
+
execute(sql: string, params?: unknown[]): Promise<void>;
|
|
12
|
+
transaction<T>(fn: () => Promise<T>): Promise<T>;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
/** Whole-file backup via VACUUM INTO (WAL-safe). */
|
|
15
|
+
export(): Promise<Uint8Array>;
|
|
16
|
+
import(data: Uint8Array): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/** Convenience: core backed by the local node:sqlite file. Hosted deployments build their own core with another StorageAdapter and call createServer(core). */
|
|
19
|
+
export declare const createCore: (dbPath?: string) => Promise<ChishikiCore>;
|
|
20
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAavF,+FAA+F;AAC/F,eAAO,MAAM,aAAa,QAAO,MAiBhC,CAAC;AAEF,qBAAa,iBAAkB,YAAW,cAAc;IAG1C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,EAAE,CAA6B;gBAEV,IAAI,GAAE,MAAwB;IAE3D,OAAO,KAAK,IAAI,GAGf;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIjE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,oDAAoD;IAC9C,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAM7B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C;AAED,+JAA+J;AAC/J,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,YAAY,CAItE,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node StorageAdapter backed by node:sqlite (stdlib, Node >= 22.13).
|
|
3
|
+
*
|
|
4
|
+
* Defaults to the same chishiki.db the Tauri desktop app uses, so the AI
|
|
5
|
+
* assistant and the desktop app share one learning record store.
|
|
6
|
+
*/
|
|
7
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
10
|
+
import { homedir } from 'node:os';
|
|
11
|
+
import { createChishiki } from 'chishiki-core';
|
|
12
|
+
import { SCHEMA } from './schema.js';
|
|
13
|
+
const toParams = (params) => (params ?? []).map(p => {
|
|
14
|
+
if (p === undefined || p === null)
|
|
15
|
+
return null;
|
|
16
|
+
if (typeof p === 'boolean')
|
|
17
|
+
return p ? 1 : 0;
|
|
18
|
+
if (typeof p === 'number' || typeof p === 'bigint' || typeof p === 'string' || p instanceof Uint8Array)
|
|
19
|
+
return p;
|
|
20
|
+
return JSON.stringify(p);
|
|
21
|
+
});
|
|
22
|
+
/** Mirrors the `directories` crate's data_dir for ProjectDirs("app","chishiki","Chishiki"). */
|
|
23
|
+
export const defaultDbPath = () => {
|
|
24
|
+
if (process.env.CHISHIKI_DB)
|
|
25
|
+
return process.env.CHISHIKI_DB;
|
|
26
|
+
const home = homedir();
|
|
27
|
+
switch (process.platform) {
|
|
28
|
+
case 'win32':
|
|
29
|
+
return join(process.env.APPDATA ?? join(home, 'AppData', 'Roaming'), 'chishiki', 'Chishiki', 'data', 'chishiki.db');
|
|
30
|
+
case 'darwin':
|
|
31
|
+
return join(home, 'Library', 'Application Support', 'app.chishiki.Chishiki', 'chishiki.db');
|
|
32
|
+
default:
|
|
33
|
+
return join(process.env.XDG_DATA_HOME ?? join(home, '.local', 'share'), 'chishiki', 'chishiki.db');
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export class NodeSqliteAdapter {
|
|
37
|
+
path;
|
|
38
|
+
db = null;
|
|
39
|
+
constructor(path = defaultDbPath()) {
|
|
40
|
+
this.path = path;
|
|
41
|
+
}
|
|
42
|
+
get conn() {
|
|
43
|
+
if (!this.db)
|
|
44
|
+
throw new Error('NodeSqliteAdapter not initialized');
|
|
45
|
+
return this.db;
|
|
46
|
+
}
|
|
47
|
+
async initialize() {
|
|
48
|
+
if (this.db)
|
|
49
|
+
return;
|
|
50
|
+
this.db = new DatabaseSync(this.path);
|
|
51
|
+
this.db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;');
|
|
52
|
+
this.db.exec(SCHEMA);
|
|
53
|
+
}
|
|
54
|
+
async query(sql, params) {
|
|
55
|
+
return this.conn.prepare(sql).all(...toParams(params));
|
|
56
|
+
}
|
|
57
|
+
async execute(sql, params) {
|
|
58
|
+
this.conn.prepare(sql).run(...toParams(params));
|
|
59
|
+
}
|
|
60
|
+
// ponytail: core's callers await inside fn, so a real BEGIN/COMMIT around async
|
|
61
|
+
// work would interleave with other calls; node:sqlite is single-connection and
|
|
62
|
+
// synchronous per statement, so just run fn. Add SAVEPOINT if atomicity matters.
|
|
63
|
+
async transaction(fn) {
|
|
64
|
+
return fn();
|
|
65
|
+
}
|
|
66
|
+
async close() {
|
|
67
|
+
this.db?.close();
|
|
68
|
+
this.db = null;
|
|
69
|
+
}
|
|
70
|
+
/** Whole-file backup via VACUUM INTO (WAL-safe). */
|
|
71
|
+
async export() {
|
|
72
|
+
const out = `${this.path}.export-${Date.now()}`;
|
|
73
|
+
this.conn.exec(`VACUUM INTO '${out.replace(/'/g, "''")}'`);
|
|
74
|
+
return new Uint8Array(await readFile(out));
|
|
75
|
+
}
|
|
76
|
+
async import(data) {
|
|
77
|
+
await this.close();
|
|
78
|
+
await writeFile(this.path, data);
|
|
79
|
+
await this.initialize();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Convenience: core backed by the local node:sqlite file. Hosted deployments build their own core with another StorageAdapter and call createServer(core). */
|
|
83
|
+
export const createCore = async (dbPath) => {
|
|
84
|
+
const core = createChishiki({ storage: new NodeSqliteAdapter(dbPath) });
|
|
85
|
+
await core.initialize();
|
|
86
|
+
return core;
|
|
87
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/src/cli.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { createCore } from './adapter.js';
|
|
4
|
+
import { createServer } from './server.js';
|
|
5
|
+
const core = await createCore(process.argv[2]);
|
|
6
|
+
await createServer(core).connect(new StdioServerTransport());
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Chishiki DB schema. Any StorageAdapter (node:sqlite, libSQL/Turso, ...) runs this in initialize(). */
|
|
2
|
+
export declare const SCHEMA = "\nCREATE TABLE IF NOT EXISTS actors (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n mbox TEXT NOT NULL UNIQUE,\n name TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\nCREATE TABLE IF NOT EXISTS learning_content (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n content_type TEXT NOT NULL,\n raw_content TEXT NOT NULL,\n metadata TEXT NOT NULL DEFAULT '{}',\n title TEXT NOT NULL,\n source_url TEXT,\n language TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\nCREATE TABLE IF NOT EXISTS activities (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n activity_iri TEXT NOT NULL UNIQUE,\n name TEXT NOT NULL,\n description TEXT,\n activity_type TEXT NOT NULL,\n content_id INTEGER,\n created_at TEXT NOT NULL,\n FOREIGN KEY (content_id) REFERENCES learning_content(id) ON DELETE SET NULL\n);\nCREATE TABLE IF NOT EXISTS statements (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n statement_id TEXT NOT NULL UNIQUE,\n actor_id INTEGER NOT NULL,\n verb_id TEXT NOT NULL,\n activity_id INTEGER NOT NULL,\n result TEXT,\n context TEXT,\n timestamp TEXT NOT NULL,\n stored TEXT NOT NULL,\n FOREIGN KEY (actor_id) REFERENCES actors(id),\n FOREIGN KEY (activity_id) REFERENCES activities(id)\n);\nCREATE TABLE IF NOT EXISTS generated_activities (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n content_id INTEGER NOT NULL,\n activity_type TEXT NOT NULL,\n activity_data TEXT NOT NULL,\n generation_prompt TEXT,\n created_at TEXT NOT NULL,\n FOREIGN KEY (content_id) REFERENCES learning_content(id) ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS scheduling_items (\n item_id TEXT PRIMARY KEY,\n activity_id TEXT NOT NULL,\n content_id TEXT NOT NULL,\n ease_factor REAL NOT NULL DEFAULT 2.5,\n interval INTEGER NOT NULL DEFAULT 0,\n repetitions INTEGER NOT NULL DEFAULT 0,\n next_review TEXT NOT NULL,\n last_review TEXT,\n difficulty TEXT NOT NULL DEFAULT 'new',\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\nCREATE INDEX IF NOT EXISTS idx_scheduling_next_review ON scheduling_items(next_review);\nCREATE INDEX IF NOT EXISTS idx_activities_content ON activities(content_id);\n";
|
|
3
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,yGAAyG;AAEzG,eAAO,MAAM,MAAM,0qEAiElB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** Chishiki DB schema. Any StorageAdapter (node:sqlite, libSQL/Turso, ...) runs this in initialize(). */
|
|
2
|
+
// Same DDL as apps/tauri-app/src-tauri/src/db/schema.rs plus core's scheduling_items.
|
|
3
|
+
export const SCHEMA = `
|
|
4
|
+
CREATE TABLE IF NOT EXISTS actors (
|
|
5
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
6
|
+
mbox TEXT NOT NULL UNIQUE,
|
|
7
|
+
name TEXT NOT NULL,
|
|
8
|
+
created_at TEXT NOT NULL
|
|
9
|
+
);
|
|
10
|
+
CREATE TABLE IF NOT EXISTS learning_content (
|
|
11
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
12
|
+
content_type TEXT NOT NULL,
|
|
13
|
+
raw_content TEXT NOT NULL,
|
|
14
|
+
metadata TEXT NOT NULL DEFAULT '{}',
|
|
15
|
+
title TEXT NOT NULL,
|
|
16
|
+
source_url TEXT,
|
|
17
|
+
language TEXT,
|
|
18
|
+
created_at TEXT NOT NULL,
|
|
19
|
+
updated_at TEXT NOT NULL
|
|
20
|
+
);
|
|
21
|
+
CREATE TABLE IF NOT EXISTS activities (
|
|
22
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
23
|
+
activity_iri TEXT NOT NULL UNIQUE,
|
|
24
|
+
name TEXT NOT NULL,
|
|
25
|
+
description TEXT,
|
|
26
|
+
activity_type TEXT NOT NULL,
|
|
27
|
+
content_id INTEGER,
|
|
28
|
+
created_at TEXT NOT NULL,
|
|
29
|
+
FOREIGN KEY (content_id) REFERENCES learning_content(id) ON DELETE SET NULL
|
|
30
|
+
);
|
|
31
|
+
CREATE TABLE IF NOT EXISTS statements (
|
|
32
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
33
|
+
statement_id TEXT NOT NULL UNIQUE,
|
|
34
|
+
actor_id INTEGER NOT NULL,
|
|
35
|
+
verb_id TEXT NOT NULL,
|
|
36
|
+
activity_id INTEGER NOT NULL,
|
|
37
|
+
result TEXT,
|
|
38
|
+
context TEXT,
|
|
39
|
+
timestamp TEXT NOT NULL,
|
|
40
|
+
stored TEXT NOT NULL,
|
|
41
|
+
FOREIGN KEY (actor_id) REFERENCES actors(id),
|
|
42
|
+
FOREIGN KEY (activity_id) REFERENCES activities(id)
|
|
43
|
+
);
|
|
44
|
+
CREATE TABLE IF NOT EXISTS generated_activities (
|
|
45
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
46
|
+
content_id INTEGER NOT NULL,
|
|
47
|
+
activity_type TEXT NOT NULL,
|
|
48
|
+
activity_data TEXT NOT NULL,
|
|
49
|
+
generation_prompt TEXT,
|
|
50
|
+
created_at TEXT NOT NULL,
|
|
51
|
+
FOREIGN KEY (content_id) REFERENCES learning_content(id) ON DELETE CASCADE
|
|
52
|
+
);
|
|
53
|
+
CREATE TABLE IF NOT EXISTS scheduling_items (
|
|
54
|
+
item_id TEXT PRIMARY KEY,
|
|
55
|
+
activity_id TEXT NOT NULL,
|
|
56
|
+
content_id TEXT NOT NULL,
|
|
57
|
+
ease_factor REAL NOT NULL DEFAULT 2.5,
|
|
58
|
+
interval INTEGER NOT NULL DEFAULT 0,
|
|
59
|
+
repetitions INTEGER NOT NULL DEFAULT 0,
|
|
60
|
+
next_review TEXT NOT NULL,
|
|
61
|
+
last_review TEXT,
|
|
62
|
+
difficulty TEXT NOT NULL DEFAULT 'new',
|
|
63
|
+
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
64
|
+
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
|
|
65
|
+
);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_scheduling_next_review ON scheduling_items(next_review);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_activities_content ON activities(content_id);
|
|
68
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD,eAAO,MAAM,YAAY,GAAI,MAAM,YAAY,KAAG,SAsFjD,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { addCards, addContent, getDueCards, importWordList, recordReview } from './study.js';
|
|
4
|
+
const json = (data) => ({ content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] });
|
|
5
|
+
export const createServer = (core) => {
|
|
6
|
+
const server = new McpServer({ name: 'chishiki', version: '0.1.0' });
|
|
7
|
+
server.registerTool('list_content', {
|
|
8
|
+
description: 'List learning content (texts, vocabulary sets) stored in Chishiki.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
language: z.string().optional().describe('BCP 47 filter, e.g. "ko"'),
|
|
11
|
+
limit: z.number().int().optional(),
|
|
12
|
+
},
|
|
13
|
+
}, async ({ language, limit }) => json(await core.content.list({ language, limit: limit ?? 50 })));
|
|
14
|
+
server.registerTool('add_content', {
|
|
15
|
+
description: 'Store a text (lesson, dialogue, article) as learning content. Returns its id.',
|
|
16
|
+
inputSchema: {
|
|
17
|
+
title: z.string(),
|
|
18
|
+
text: z.string(),
|
|
19
|
+
language: z.string().optional().describe('BCP 47, e.g. "ko"'),
|
|
20
|
+
sourceUrl: z.string().optional(),
|
|
21
|
+
},
|
|
22
|
+
}, async (input) => json({ id: await addContent(core, input) }));
|
|
23
|
+
server.registerTool('add_cards', {
|
|
24
|
+
description: 'Add flashcards (front/back) optionally linked to a content id. Returns created card ids.',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
contentId: z.string().optional(),
|
|
27
|
+
cards: z.array(z.object({ front: z.string(), back: z.string() })).min(1),
|
|
28
|
+
},
|
|
29
|
+
}, async ({ contentId, cards }) => json(await addCards(core, contentId ?? null, cards)));
|
|
30
|
+
server.registerTool('import_word_list', {
|
|
31
|
+
description: 'Import a polyglot-bundles word-list JSON file (e.g. D:/glotblocks/polyglot-bundles/packages/ko/word-lists/src/json/a1/a1-vocabulary-01.json) as content + one flashcard per word.',
|
|
32
|
+
inputSchema: { path: z.string(), language: z.string().default('ko') },
|
|
33
|
+
}, async ({ path, language }) => json(await importWordList(core, path, language)));
|
|
34
|
+
server.registerTool('get_due_cards', {
|
|
35
|
+
description: 'Cards to study now: `review` = due per SM-2 schedule, `fresh` = never seen. Quiz the learner with the front, then call record_review.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
limit: z.number().int().optional().describe('max due reviews (default 20)'),
|
|
38
|
+
newLimit: z.number().int().optional().describe('max new cards (default 10)'),
|
|
39
|
+
contentId: z.string().optional(),
|
|
40
|
+
},
|
|
41
|
+
}, async (opts) => json(await getDueCards(core, opts)));
|
|
42
|
+
server.registerTool('record_review', {
|
|
43
|
+
description: "Record the learner's answer for a card. quality: 0=blank, 1=wrong but recognised, 2=wrong, easy recall, 3=correct with effort, 4=correct after hesitation, 5=perfect. Updates SM-2 schedule and writes an xAPI statement.",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
cardId: z.string(),
|
|
46
|
+
quality: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5)]),
|
|
47
|
+
response: z.string().optional().describe("learner's actual answer"),
|
|
48
|
+
},
|
|
49
|
+
}, async ({ cardId, quality, response }) => json(await recordReview(core, cardId, quality, response)));
|
|
50
|
+
server.registerTool('get_stats', { description: 'Scheduler statistics: total cards tracked, due now/today/week, ease, retention.', inputSchema: {} }, async () => json(await core.scheduler.getStats()));
|
|
51
|
+
return server;
|
|
52
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ChishikiCore } from 'chishiki-core';
|
|
2
|
+
export declare const FLASHCARD_TYPE = "flashcard";
|
|
3
|
+
export interface Card {
|
|
4
|
+
id: string;
|
|
5
|
+
front: string;
|
|
6
|
+
back: string;
|
|
7
|
+
contentId: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare const addContent: (core: ChishikiCore, input: {
|
|
10
|
+
title: string;
|
|
11
|
+
text: string;
|
|
12
|
+
language?: string;
|
|
13
|
+
sourceUrl?: string;
|
|
14
|
+
}) => Promise<string>;
|
|
15
|
+
export declare const addCards: (core: ChishikiCore, contentId: string | null, cards: {
|
|
16
|
+
front: string;
|
|
17
|
+
back: string;
|
|
18
|
+
}[]) => Promise<Card[]>;
|
|
19
|
+
export declare const getCard: (core: ChishikiCore, id: string) => Promise<(Card & {
|
|
20
|
+
iri: string;
|
|
21
|
+
}) | null>;
|
|
22
|
+
/** Due reviews first (SM-2 schedule), then never-seen cards up to newLimit. */
|
|
23
|
+
export declare const getDueCards: (core: ChishikiCore, opts?: {
|
|
24
|
+
limit?: number;
|
|
25
|
+
newLimit?: number;
|
|
26
|
+
contentId?: string;
|
|
27
|
+
}) => Promise<{
|
|
28
|
+
review: Card[];
|
|
29
|
+
fresh: Card[];
|
|
30
|
+
}>;
|
|
31
|
+
export declare const recordReview: (core: ChishikiCore, cardId: string, quality: 0 | 1 | 2 | 3 | 4 | 5, response?: string) => Promise<{
|
|
32
|
+
nextReview: string;
|
|
33
|
+
interval: number;
|
|
34
|
+
}>;
|
|
35
|
+
/** polyglot-bundles word-list JSON: { name, description, source, sourceUrl, words:[{word, translation, ...}] } */
|
|
36
|
+
export declare const importWordList: (core: ChishikiCore, path: string, language: string) => Promise<{
|
|
37
|
+
contentId: string;
|
|
38
|
+
cards: number;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=study.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"study.d.ts","sourceRoot":"","sources":["../../src/study.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,cAAc,cAAc,CAAC;AAG1C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAiBD,eAAO,MAAM,UAAU,GACrB,MAAM,YAAY,EAClB,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5E,OAAO,CAAC,MAAM,CAIhB,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,MAAM,YAAY,EAClB,WAAW,MAAM,GAAG,IAAI,EACxB,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KACvC,OAAO,CAAC,IAAI,EAAE,CAahB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,CAAC,IAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAMrG,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,WAAW,GACtB,MAAM,YAAY,EAClB,OAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,KACnE,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAmB3C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,MAAM,YAAY,EAClB,QAAQ,MAAM,EACd,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAC9B,WAAW,MAAM,KAChB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAWlD,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,cAAc,GACzB,MAAM,YAAY,EAClB,MAAM,MAAM,EACZ,UAAU,MAAM,KACf,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsB9C,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flashcard study operations on top of ChishikiCore.
|
|
3
|
+
* A card is an `activities` row of type `flashcard`: name = front, description = back.
|
|
4
|
+
*/
|
|
5
|
+
import { readFile } from 'node:fs/promises';
|
|
6
|
+
import { randomUUID } from 'node:crypto';
|
|
7
|
+
export const FLASHCARD_TYPE = 'flashcard';
|
|
8
|
+
const ANSWERED = 'http://adlnet.gov/expapi/verbs/answered';
|
|
9
|
+
const toCard = (r) => ({
|
|
10
|
+
id: String(r.id),
|
|
11
|
+
front: r.name,
|
|
12
|
+
back: r.description ?? '',
|
|
13
|
+
contentId: r.content_id === null ? null : String(r.content_id),
|
|
14
|
+
});
|
|
15
|
+
export const addContent = async (core, input) => {
|
|
16
|
+
const id = await core.content.import({ type: 'text', text: input.text, format: 'text/plain' });
|
|
17
|
+
await core.content.update(id, { title: input.title, language: input.language, sourceUrl: input.sourceUrl });
|
|
18
|
+
return id;
|
|
19
|
+
};
|
|
20
|
+
export const addCards = async (core, contentId, cards) => {
|
|
21
|
+
const now = new Date().toISOString();
|
|
22
|
+
const out = [];
|
|
23
|
+
for (const c of cards) {
|
|
24
|
+
const iri = `https://chishiki.app/activities/${FLASHCARD_TYPE}/${randomUUID()}`;
|
|
25
|
+
await core.storage.execute('INSERT INTO activities (activity_iri, name, description, activity_type, content_id, created_at) VALUES (?, ?, ?, ?, ?, ?)', [iri, c.front, c.back, FLASHCARD_TYPE, contentId === null ? null : Number(contentId), now]);
|
|
26
|
+
const [{ id }] = await core.storage.query('SELECT last_insert_rowid() AS id');
|
|
27
|
+
out.push({ id: String(id), front: c.front, back: c.back, contentId });
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
30
|
+
};
|
|
31
|
+
export const getCard = async (core, id) => {
|
|
32
|
+
const rows = await core.storage.query('SELECT * FROM activities WHERE id = ? AND activity_type = ?', [
|
|
33
|
+
Number(id),
|
|
34
|
+
FLASHCARD_TYPE,
|
|
35
|
+
]);
|
|
36
|
+
return rows[0] ? { ...toCard(rows[0]), iri: rows[0].activity_iri } : null;
|
|
37
|
+
};
|
|
38
|
+
/** Due reviews first (SM-2 schedule), then never-seen cards up to newLimit. */
|
|
39
|
+
export const getDueCards = async (core, opts = {}) => {
|
|
40
|
+
const limit = opts.limit ?? 20;
|
|
41
|
+
const due = await core.scheduler.getDue({ limit: 1000 });
|
|
42
|
+
const ids = due.map(d => Number(d.id)).filter(n => Number.isFinite(n));
|
|
43
|
+
const contentClause = opts.contentId ? ' AND content_id = ?' : '';
|
|
44
|
+
const contentParam = opts.contentId ? [Number(opts.contentId)] : [];
|
|
45
|
+
const review = ids.length
|
|
46
|
+
? await core.storage.query(`SELECT * FROM activities WHERE activity_type = ? AND id IN (${ids.map(() => '?').join(',')})${contentClause} LIMIT ?`, [FLASHCARD_TYPE, ...ids, ...contentParam, limit])
|
|
47
|
+
: [];
|
|
48
|
+
const fresh = await core.storage.query(`SELECT * FROM activities WHERE activity_type = ?
|
|
49
|
+
AND id NOT IN (SELECT CAST(item_id AS INTEGER) FROM scheduling_items)${contentClause}
|
|
50
|
+
ORDER BY id LIMIT ?`, [FLASHCARD_TYPE, ...contentParam, opts.newLimit ?? 10]);
|
|
51
|
+
return { review: review.map(toCard), fresh: fresh.map(toCard) };
|
|
52
|
+
};
|
|
53
|
+
export const recordReview = async (core, cardId, quality, response) => {
|
|
54
|
+
const card = await getCard(core, cardId);
|
|
55
|
+
if (!card)
|
|
56
|
+
throw new Error(`Card ${cardId} not found`);
|
|
57
|
+
await core.scheduler.recordReview(cardId, { quality });
|
|
58
|
+
await core.lrs.record({
|
|
59
|
+
verb: { id: ANSWERED, display: { 'en-US': 'answered' } },
|
|
60
|
+
object: { objectType: 'Activity', id: card.iri, definition: { name: { 'en-US': card.front } } },
|
|
61
|
+
result: { score: { scaled: quality / 5, raw: quality, min: 0, max: 5 }, success: quality >= 3, response },
|
|
62
|
+
});
|
|
63
|
+
const item = await core.scheduler.getItem(cardId);
|
|
64
|
+
return { nextReview: item?.nextReview ?? '', interval: item?.interval ?? 0 };
|
|
65
|
+
};
|
|
66
|
+
/** polyglot-bundles word-list JSON: { name, description, source, sourceUrl, words:[{word, translation, ...}] } */
|
|
67
|
+
export const importWordList = async (core, path, language) => {
|
|
68
|
+
const list = JSON.parse(await readFile(path, 'utf8'));
|
|
69
|
+
const contentId = await addContent(core, {
|
|
70
|
+
title: list.name,
|
|
71
|
+
text: list.words.map(w => `${w.word}\t${w.translation}`).join('\n'),
|
|
72
|
+
language,
|
|
73
|
+
sourceUrl: list.sourceUrl,
|
|
74
|
+
});
|
|
75
|
+
const cards = await addCards(core, contentId, list.words.map(w => ({
|
|
76
|
+
front: w.word,
|
|
77
|
+
back: w.partOfSpeech ? `${w.translation} (${w.partOfSpeech})` : w.translation,
|
|
78
|
+
})));
|
|
79
|
+
return { contentId, cards: cards.length };
|
|
80
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"study.test.d.ts","sourceRoot":"","sources":["../../src/study.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { mkdtempSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { test } from 'node:test';
|
|
6
|
+
import { createCore } from './adapter.js';
|
|
7
|
+
import { addCards, addContent, getDueCards, recordReview } from './study.js';
|
|
8
|
+
test('add cards, study, review, schedule', async () => {
|
|
9
|
+
const core = await createCore(join(mkdtempSync(join(tmpdir(), 'chishiki-')), 'test.db'));
|
|
10
|
+
const contentId = await addContent(core, { title: 'Greetings', text: '안녕하세요', language: 'ko' });
|
|
11
|
+
const [card] = await addCards(core, contentId, [{ front: '안녕하세요', back: 'hello' }]);
|
|
12
|
+
let due = await getDueCards(core);
|
|
13
|
+
assert.equal(due.fresh.length, 1);
|
|
14
|
+
assert.equal(due.review.length, 0);
|
|
15
|
+
const r = await recordReview(core, card.id, 5, 'hello');
|
|
16
|
+
assert.ok(r.interval >= 1);
|
|
17
|
+
due = await getDueCards(core);
|
|
18
|
+
assert.equal(due.fresh.length, 0);
|
|
19
|
+
assert.equal(due.review.length, 0);
|
|
20
|
+
const stats = await core.scheduler.getStats();
|
|
21
|
+
assert.equal(stats.totalItems, 1);
|
|
22
|
+
const stmts = await core.lrs.query({ limit: 10 });
|
|
23
|
+
assert.equal(stmts.statements.length, 1);
|
|
24
|
+
await core.close();
|
|
25
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@types+react@19.1.12/node_modules/@types/react/global.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.pnpm/@types+react@19.1.12/node_modules/@types/react/index.d.ts","../../../node_modules/.pnpm/@types+react@19.1.12/node_modules/@types/react/jsx-runtime.d.ts","../../core/dist/src/activities.d.ts","../../core/dist/src/content.d.ts","../../core/dist/src/lrs.d.ts","../../core/dist/src/plugins.d.ts","../../core/dist/src/scheduler.d.ts","../../core/dist/src/storage.d.ts","../../core/dist/src/sync.d.ts","../../core/dist/src/chishiki.d.ts","../../core/dist/src/index.d.ts","../../core/dist/index.d.mts","../src/schema.ts","../src/adapter.ts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typealiases.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/zoderror.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/errors.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseutil.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/enumutil.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorutil.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/partialutil.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/external.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/index.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr-ca.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-cn.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-tw.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/index.d.cts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/index.d.cts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/responsemessage.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","../../../node_modules/.pnpm/json-schema-typed@8.0.2/node_modules/json-schema-typed/draft_2020_12.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/types.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uritemplate.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.d.ts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts","../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/index.d.cts","../src/study.ts","../src/server.ts","../index.mts","../../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.2_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts","../src/cli.ts","../src/study.test.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.18.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[176,189,191,194,214,263],[176,189,192,201,214,263],[176,189,193,194,198,214,263],[189,214,263],[214,263],[176,189,194,196,197,214,263],[176,189,190,192,194,198,199,200,214,263],[189,190,214,263,294],[108,175,214,263],[176,188,189,190,192,193,214,263],[187,188,214,263],[195,214,263],[214,260,263],[214,262,263],[263],[214,263,268,297],[214,263,264,269,274,282,294,305],[214,263,264,265,274,282],[209,210,211,214,263],[214,263,266,306],[214,263,267,268,275,283],[214,263,268,294,302],[214,263,269,271,274,282],[214,262,263,270],[214,263,271,272],[214,263,273,274],[214,262,263,274],[214,263,274,275,276,294,305],[214,263,274,275,276,289,294,297],[214,256,263,271,274,277,282,294,305],[214,263,274,275,277,278,282,294,302,305],[214,263,277,279,294,302,305],[212,213,214,215,216,217,218,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311],[214,263,274,280],[214,263,281,305],[214,263,271,274,282,294],[214,263,283],[214,263,284],[214,262,263,285],[214,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311],[214,263,287],[214,263,288],[214,263,274,289,290],[214,263,289,291,306,308],[214,263,274,294,295,297],[214,263,296,297],[214,263,294,295],[214,263,297],[214,263,298],[214,260,263,294,299],[214,263,274,300,301],[214,263,300,301],[214,263,268,282,294,302],[214,263,303],[214,263,282,304],[214,263,277,288,305],[214,263,268,306],[214,263,294,307],[214,263,281,308],[214,263,309],[214,256,263],[214,263,274,276,285,294,297,305,307,308,310],[214,263,294,311],[80,81,214,263],[82,214,263],[214,228,232,263,305],[214,228,263,294,305],[214,223,263],[214,225,228,263,302,305],[214,263,282,302],[214,263,312],[214,223,263,312],[214,225,228,263,282,305],[214,220,221,224,227,263,274,294,305],[214,228,235,263],[214,220,226,263],[214,228,249,250,263],[214,224,228,263,297,305,312],[214,249,263,312],[214,222,223,263,312],[214,228,263],[214,222,223,224,225,226,227,228,229,230,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,250,251,252,253,254,255,263],[214,228,243,263],[214,228,235,236,263],[214,226,228,236,237,263],[214,227,263],[214,220,223,228,263],[214,228,232,236,237,263],[214,232,263],[214,226,228,231,263,305],[214,220,225,228,235,263],[214,263,294],[214,223,228,249,263,310,312],[185,214,263],[98,99,214,263],[96,97,98,100,101,106,214,263],[97,98,214,263],[106,214,263],[107,214,263],[98,214,263],[96,97,98,101,102,103,104,105,214,263],[96,97,108,214,263],[175,214,263],[175,179,214,263],[170,173,175,177,178,179,180,181,182,183,184,214,263],[109,111,179,214,263],[175,177,214,263],[110,175,178,214,263],[111,113,115,116,117,118,214,263],[113,115,117,118,214,263],[113,115,117,214,263],[110,113,115,116,118,214,263],[109,111,112,113,114,115,116,117,118,119,120,170,171,172,173,174,214,263],[109,111,112,115,214,263],[111,112,115,214,263],[115,118,214,263],[109,110,112,113,114,116,117,118,214,263],[109,110,111,115,175,214,263],[115,116,117,118,214,263],[186,214,263],[117,214,263],[121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,214,263],[92,214,263],[84,85,86,87,88,89,90,214,263],[84,85,86,87,88,89,90,91,214,263],[83,94,95,204,214,263],[83,93,94,214,263,276,283,284,293],[83,95,204,206,214,263],[83,214,263],[83,93,201,202,203,214,263],[83,95,203,214,261,263,275,283,284,299],[83,93,214,263,268,276]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"bea6c0f5b819cf8cba6608bf3530089119294f949640714011d46ec8013b61c2","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"ba30b3cd464f6d5a7e52a7e9febeadf8ae089762f51117fffab957d59d8dbd86","impliedFormat":99},{"version":"9bd96c58d969d7f8b0c5667ebff872243bb4ac2fecc6237021fd4ee1d0742c2b","impliedFormat":99},{"version":"22ddee935d15c79a12d28c5b06272a3c919389b49c07682de8124f127284c10d","impliedFormat":99},{"version":"da0b77eb7864c125c602c7e53b89121e4236bc2c18f654738ff2807675dceeb1","impliedFormat":99},{"version":"b7b5fe8371922595d39c2b7a91ce4ca9d122514bf4857d04c5cfe3dd16e7e25b","impliedFormat":99},{"version":"90c43e8e3debeb7b366bd3a3ad7c6ef473800d1c262922e6f6c4bd49945f8b33","impliedFormat":99},{"version":"7f665faceb46279346adcd23681c412086f520e923c1aa940828f727e0538ad9","impliedFormat":99},{"version":"52780dd1f29a54717ac94f3938861329a238b644522e37553121ce7ad9129fba","impliedFormat":99},{"version":"a33cea0cb586469840caf45930e52811cfa1ac8fc4fc3102d3892b33b508c3d4","impliedFormat":99},{"version":"31d05deea3ee1778f4feaed2d07e432a9599ec37d2abeea0e4d1a248199f45c0","impliedFormat":99},{"version":"87fa5b9a623f92819b5aed6f0661a6e77ffa2bc4cbf847f8118393aa569be5d8","signature":"243f206309b9f8da122d14ee6f499c1b71e77949994de5b7ed9a4f9c1e2a122d","impliedFormat":99},{"version":"97c6d94209f6097f55aae33a7daca31847b54f0ba662f48b1fed9e1543a1bae9","signature":"2999b61295ae43b6cb5493522bfa5221c0fc3ca02beb27bb3733ea820ea801d2","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"36eb5babc665b890786550d4a8cb20ef7105673a6d5551fbdd7012877bb26942","impliedFormat":1},{"version":"fec412ded391a7239ef58f455278154b62939370309c1fed322293d98c8796a6","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"93c3e73824ad57f98fd23b39335dbdae2db0bd98199b0dc0b9ccc60bf3c5134a","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"82919acbb38870fcf5786ec1292f0f5afe490f9b3060123e48675831bd947192","impliedFormat":1},{"version":"e222701788ec77bd57c28facbbd142eadf5c749a74d586bc2f317db7e33544b1","impliedFormat":1},{"version":"09154713fae0ed7befacdad783e5bd1970c06fc41a5f866f7f933b96312ce764","impliedFormat":1},{"version":"8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652","impliedFormat":1},{"version":"a91c8d28d10fee7fe717ddf3743f287b68770c813c98f796b6e38d5d164bd459","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"f6f827cd43e92685f194002d6b52a9408309cda1cec46fb7ca8489a95cbd2fd4","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"a270a1a893d1aee5a3c1c8c276cd2778aa970a2741ee2ccf29cc3210d7da80f5","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8926594ee895917e90701d8cbb5fdf77fc238b266ac540f929c7253f8ad6233d","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"0648a8c200b5544e30677f7f7059b1e384d6cab716c82659716457e3f317ebae","impliedFormat":99},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"ed8763205f02fb65e84eff7432155258df7f93b7d938f01785cb447d043d53f3","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"d4a5b1d2ff02c37643e18db302488cd64c342b00e2786e65caac4e12bda9219b","impliedFormat":1},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"f17ed72d1b1882ab6dc66d45e699f757d15bba0807af2fc9c3ec98fe367611c1","impliedFormat":99},{"version":"b1067ccb56b38af060dc3299ea7c4c6362cad4f07d0d454325a74808204fc801","impliedFormat":99},{"version":"3315dbac8f60921dd2939d872097f94e8b9a94c5a4856b0cf2a1c62a807b2302","impliedFormat":99},{"version":"ba678532514244768286bdfdc82b33f072d5de4e9d281a75bcccdba9970788d7","impliedFormat":99},{"version":"46a1409698484e8e79c99cf8c6dccf24243bfc6c42e739473ce80e9335e4c1a4","impliedFormat":99},{"version":"5993793a23b298afd20c2e1cd2bf8468cc7e9415d314d0771e93dd8b2e389d28","impliedFormat":99},{"version":"43bba4583a338a796b93309b1ef48edd67850349f942de43ca7d380ba45ed950","impliedFormat":99},{"version":"104fae9b53b5eaa040d9ce626e1bf0b3e6e27d269a899a98a4a28358cdcbc155","impliedFormat":99},{"version":"50a6aa665f3a2e769a4d683f9f74cd15164d0947fb957d8016331b170ab8b643","impliedFormat":99},{"version":"6b83491ca98ce7dc82ec0c54f1456705c9ea08f5a39fa8cea17134b28e2a73d7","impliedFormat":99},{"version":"33aa2f336bb0bc598652ddd1ad3095ef7a14e4dbed9cf829fa9357e989fff31a","impliedFormat":99},{"version":"d691e546590145171d00d78b341bd3ca4844c96eb34f870be84058a1cab585c3","impliedFormat":99},{"version":"c9d12ca3f67129b3ed2b81bf54537c970673cedd05ba28fbeba70c1e8aff684b","impliedFormat":99},{"version":"4bc84914e0e9f3f82acf52a0ac53c284897a879d9bb2a0bfe3c12ebf7dcf88e7","impliedFormat":99},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},{"version":"ff41ec2dc1c7df25b10165ef01456fa6090a4c2027bfe8676a95d5f4323e4641","signature":"3caef0d8566392411516ecec1bc3a3302756397bb9c729205d3b1c5f98928295","impliedFormat":99},{"version":"5a20cef30f19d959ef4e3a55d02f2a9e9f4daa02c807ad40953334e4de10d026","signature":"d330d0cf915a92eeb7768bce7d6e36864332d5d5da739d82eb5e15d3742160a4","impliedFormat":99},{"version":"8f110250de54785b438fc552311fe3944bc538aba96c4cfadbafdc70750661c3","impliedFormat":99},{"version":"e8b1b4448f077d5a459acb418b7122bfb2f48fec26d59b5586778e1b3def2d2c","impliedFormat":99},{"version":"ca19aa06985d38de4fbabf5ef75b3fce417bf1a82996ac76f2c63cf8ecb2b85a","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012","impliedFormat":99},{"version":"506498c1f9f3747eb98633fa084e6a69ea442ffc5088afccc79c54ef65a2a554","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb4105d0ea2ab2bfcb4f77ff8585691d5569c90ae15f4fa8d5ff9fb42b910b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"7b988bc259155186e6b09dd8b32856d9e45c8d261e63c19abaf590bb6550f922","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe7b52f993f9336b595190f3c1fcc259bb2cf6dcb4ac8fdb1e0454cc5df7301e","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"b326f4813b90d230ec3950f66bd5b5ce3971aac5fac67cfafc54aa07b39fd07f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c8420c7c2b778b334587a4c0311833b5212ff2f684ea37b2f0e2b117f1d7210d","impliedFormat":1},{"version":"b6b08215821c9833b0e8e30ea1ed178009f2f3ff5d7fae3865ee42f97cc87784","impliedFormat":1},{"version":"b795c3e47a26be91ac33d8115acdc37bfa41ecc701fb237c64a23da4d2b7e1d8","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9727a118ce60808e62457c89762fe5a4e2be8e9fd0112d12432d1bafdba942f","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"3a90b9beac4c2bfdf6517faae0940a042b81652badf747df0a7c7593456f6ebe","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"a5890565ed564c7b29eb1b1038d4e10c03a3f5231b0a8d48fea4b41ab19f4f46","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"cee74f5970ffc01041e5bffc3f324c20450534af4054d2c043cb49dbbd4ec8f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"f2feb9696208311cdcf1936df2b7cbec96a3f0ab9d403952bf170546d4253a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"d9b6fd8640f6ad3f13ce9ce47d91061a698cf7763fed7f668e4f89709989aae5","impliedFormat":1}],"root":[94,95,[203,205],207,208],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"jsx":4,"module":199,"noImplicitAny":true,"noImplicitReturns":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictNullChecks":true,"target":99},"referencedMap":[[192,1],[200,2],[197,3],[191,4],[188,5],[198,6],[201,7],[206,8],[176,9],[194,10],[193,4],[190,4],[199,5],[189,11],[196,12],[260,13],[261,13],[262,14],[214,15],[263,16],[264,17],[265,18],[209,5],[212,19],[210,5],[211,5],[266,20],[267,21],[268,22],[269,23],[270,24],[271,25],[272,25],[273,26],[274,27],[275,28],[276,29],[215,5],[213,5],[277,30],[278,31],[279,32],[312,33],[280,34],[281,35],[282,36],[283,37],[284,38],[285,39],[286,40],[287,41],[288,42],[289,43],[290,43],[291,44],[292,5],[293,5],[294,45],[296,46],[295,47],[297,48],[298,49],[299,50],[300,51],[301,52],[302,53],[303,54],[304,55],[305,56],[306,57],[307,58],[308,59],[309,60],[216,5],[217,5],[218,5],[257,61],[258,5],[259,5],[310,62],[311,63],[80,5],[82,64],[83,65],[219,5],[81,5],[195,5],[78,5],[79,5],[13,5],[15,5],[14,5],[2,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[22,5],[23,5],[3,5],[24,5],[25,5],[4,5],[26,5],[30,5],[27,5],[28,5],[29,5],[31,5],[32,5],[33,5],[5,5],[34,5],[35,5],[36,5],[37,5],[6,5],[41,5],[38,5],[39,5],[40,5],[42,5],[7,5],[43,5],[48,5],[49,5],[44,5],[45,5],[46,5],[47,5],[8,5],[53,5],[50,5],[51,5],[52,5],[54,5],[9,5],[55,5],[56,5],[57,5],[59,5],[58,5],[60,5],[61,5],[10,5],[62,5],[63,5],[64,5],[11,5],[65,5],[66,5],[67,5],[68,5],[69,5],[1,5],[70,5],[71,5],[12,5],[75,5],[73,5],[77,5],[72,5],[76,5],[74,5],[235,66],[245,67],[234,66],[255,68],[226,69],[225,70],[254,71],[248,72],[253,73],[228,74],[242,75],[227,76],[251,77],[223,78],[222,71],[252,79],[224,80],[229,81],[230,5],[233,81],[220,5],[256,82],[246,83],[237,84],[238,85],[240,86],[236,87],[239,88],[249,71],[231,89],[232,90],[241,91],[221,92],[244,83],[243,81],[247,5],[250,93],[202,94],[100,95],[107,96],[102,5],[103,5],[101,97],[104,98],[96,5],[97,5],[108,99],[99,100],[105,5],[106,101],[98,102],[180,103],[184,104],[181,104],[177,103],[185,105],[182,106],[186,94],[183,104],[178,107],[179,108],[172,109],[116,110],[118,111],[171,5],[117,112],[175,113],[174,114],[173,115],[109,5],[119,110],[120,5],[111,116],[115,117],[110,5],[112,118],[113,119],[114,5],[187,120],[121,121],[122,121],[123,121],[124,121],[125,121],[126,121],[127,121],[128,121],[129,121],[130,121],[131,121],[132,121],[133,121],[135,121],[134,121],[136,121],[137,121],[138,121],[139,121],[170,122],[140,121],[141,121],[142,121],[143,121],[144,121],[145,121],[146,121],[147,121],[148,121],[149,121],[150,121],[151,121],[152,121],[154,121],[153,121],[155,121],[156,121],[157,121],[158,121],[159,121],[160,121],[161,121],[162,121],[163,121],[164,121],[165,121],[166,121],[169,121],[167,121],[168,121],[93,123],[84,5],[91,124],[85,5],[92,125],[86,5],[87,5],[88,5],[89,5],[90,5],[205,126],[95,127],[207,128],[94,129],[204,130],[208,131],[203,132]],"latestChangedDtsFile":"./index.d.mts","version":"5.8.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chishiki-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "MCP server exposing Chishiki (content, flashcards, SM-2 scheduling, xAPI LRS) to AI assistants",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/**"
|
|
9
|
+
],
|
|
10
|
+
"types": "dist/index.d.mts",
|
|
11
|
+
"main": "dist/index.mjs",
|
|
12
|
+
"bin": {
|
|
13
|
+
"chishiki-mcp": "./dist/src/cli.js"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@modelcontextprotocol/sdk": "^1.32.2",
|
|
20
|
+
"zod": "^4.1.12",
|
|
21
|
+
"chishiki-core": "0.8.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^22.15.0",
|
|
25
|
+
"@extension/tsconfig": "0.6.0"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"clean:bundle": "rimraf dist",
|
|
29
|
+
"clean:node_modules": "pnpx rimraf node_modules",
|
|
30
|
+
"clean:turbo": "rimraf .turbo",
|
|
31
|
+
"clean": "pnpm clean:bundle && pnpm clean:node_modules && pnpm clean:turbo",
|
|
32
|
+
"ready": "tsc -b",
|
|
33
|
+
"start": "node dist/src/cli.js",
|
|
34
|
+
"test": "pnpm ready && node --test dist/src/*.test.js",
|
|
35
|
+
"lint": "eslint .",
|
|
36
|
+
"lint:fix": "pnpm lint --fix",
|
|
37
|
+
"format": "prettier . --write --ignore-path ../../.prettierignore",
|
|
38
|
+
"type-check": "tsc --noEmit"
|
|
39
|
+
}
|
|
6
40
|
}
|
package/README.md
DELETED