@oneentry/mcp-platform-server 0.1.0 → 0.1.1
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/README.md +113 -71
- package/data/permissions.json +411 -0
- package/dist/api/build-catalog.d.ts +24 -0
- package/dist/api/build-catalog.d.ts.map +1 -0
- package/dist/api/build-catalog.js +257 -0
- package/dist/api/build-catalog.js.map +1 -0
- package/dist/api/catalog.d.ts +22 -3
- package/dist/api/catalog.d.ts.map +1 -1
- package/dist/api/catalog.js +69 -4
- package/dist/api/catalog.js.map +1 -1
- package/dist/api/normalize-schema.d.ts +14 -0
- package/dist/api/normalize-schema.d.ts.map +1 -0
- package/dist/api/normalize-schema.js +151 -0
- package/dist/api/normalize-schema.js.map +1 -0
- package/dist/api/swagger-source.d.ts +22 -0
- package/dist/api/swagger-source.d.ts.map +1 -0
- package/dist/api/swagger-source.js +76 -0
- package/dist/api/swagger-source.js.map +1 -0
- package/dist/api/types.d.ts +1 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/bin/cli.js +11 -3
- package/dist/bin/cli.js.map +1 -1
- package/dist/config/config.d.ts +84 -10
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +69 -6
- package/dist/config/config.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge/github.d.ts +46 -0
- package/dist/knowledge/github.d.ts.map +1 -0
- package/dist/knowledge/github.js +214 -0
- package/dist/knowledge/github.js.map +1 -0
- package/dist/knowledge/loader.d.ts +46 -19
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +92 -105
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/knowledge/search.d.ts +11 -0
- package/dist/knowledge/search.d.ts.map +1 -1
- package/dist/knowledge/search.js +36 -3
- package/dist/knowledge/search.js.map +1 -1
- package/dist/knowledge/tar.d.ts +22 -0
- package/dist/knowledge/tar.d.ts.map +1 -0
- package/dist/knowledge/tar.js +120 -0
- package/dist/knowledge/tar.js.map +1 -0
- package/dist/knowledge/types.d.ts +31 -10
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -6
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +6 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +8 -0
- package/dist/session.js.map +1 -1
- package/dist/tools/guide.d.ts.map +1 -1
- package/dist/tools/guide.js +9 -2
- package/dist/tools/guide.js.map +1 -1
- package/dist/tools/whoami.d.ts.map +1 -1
- package/dist/tools/whoami.js +4 -0
- package/dist/tools/whoami.js.map +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +26 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/stdio.js +1 -1
- package/dist/transports/stdio.js.map +1 -1
- package/knowledge/operating-rules.md +176 -0
- package/package.json +4 -4
- package/data/catalog.json +0 -1
- package/data/knowledge.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger-source.d.ts","sourceRoot":"","sources":["../../src/api/swagger-source.ts"],"names":[],"mappings":"AAUA,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3B;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,cAAc,CAiDhF,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
/** Путь, по которому стенд отдаёт swagger админского API. */
|
|
5
|
+
const SWAGGER_PATH = '/workflows/nodes/admin-api/swagger.json';
|
|
6
|
+
/** Язык описаний. Английский — тот же, на котором написаны summary в каталоге. */
|
|
7
|
+
const LANG_CODE = 'en_US';
|
|
8
|
+
/**
|
|
9
|
+
* Имя файла кэша. Ключом служит baseUrl: каталог операций одного стенда
|
|
10
|
+
* нельзя показывать за каталог другого, даже если оба «тот же самый» CMS.
|
|
11
|
+
*/
|
|
12
|
+
const cacheFile = (source) => join(source.cacheDir, 'swagger', `${createHash('sha256').update(source.baseUrl).digest('hex').slice(0, 16)}.json`);
|
|
13
|
+
const readCache = (source) => {
|
|
14
|
+
try {
|
|
15
|
+
return readFileSync(cacheFile(source), 'utf8');
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const writeCache = (source, raw) => {
|
|
22
|
+
const file = cacheFile(source);
|
|
23
|
+
mkdirSync(join(source.cacheDir, 'swagger'), { recursive: true });
|
|
24
|
+
writeFileSync(file, raw);
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Забирает swagger со стенда, с откатом на кэш.
|
|
28
|
+
* Эндпоинт публичный на большинстве стендов, поэтому первый запрос идёт без
|
|
29
|
+
* авторизации: в remote-режиме на момент старта процесса учётных данных может
|
|
30
|
+
* не быть вовсе. Токен добавляется только если стенд ответил 401/403.
|
|
31
|
+
*/
|
|
32
|
+
export const fetchSwagger = async (source) => {
|
|
33
|
+
const url = `${source.baseUrl}${SWAGGER_PATH}?langCode=${LANG_CODE}`;
|
|
34
|
+
const request = async (bearer) => fetch(url, {
|
|
35
|
+
headers: {
|
|
36
|
+
accept: 'application/json',
|
|
37
|
+
...(bearer ? { authorization: `Bearer ${bearer}` } : {}),
|
|
38
|
+
},
|
|
39
|
+
signal: AbortSignal.timeout(source.timeoutMs),
|
|
40
|
+
});
|
|
41
|
+
try {
|
|
42
|
+
let response = await request();
|
|
43
|
+
if ((response.status === 401 || response.status === 403) && source.bearer) {
|
|
44
|
+
response = await request(source.bearer);
|
|
45
|
+
}
|
|
46
|
+
if (!response.ok) {
|
|
47
|
+
throw new Error(`${source.baseUrl} answered ${String(response.status)} for ${SWAGGER_PATH}` +
|
|
48
|
+
(response.status === 401 || response.status === 403
|
|
49
|
+
? ' — the stand requires credentials to read its swagger'
|
|
50
|
+
: ''));
|
|
51
|
+
}
|
|
52
|
+
const raw = await response.text();
|
|
53
|
+
/**
|
|
54
|
+
* Проверяем, что это вообще OpenAPI, до записи в кэш. Стенд за прокси легко
|
|
55
|
+
* отвечает страницей входа или конвертом ошибки с кодом 200; закэшировать
|
|
56
|
+
* такое — значит подсунуть агенту пустой каталог до следующей чистки кэша.
|
|
57
|
+
*/
|
|
58
|
+
const parsed = JSON.parse(raw);
|
|
59
|
+
if (typeof parsed !== 'object' ||
|
|
60
|
+
parsed === null ||
|
|
61
|
+
!('paths' in parsed) ||
|
|
62
|
+
typeof parsed.paths !== 'object') {
|
|
63
|
+
throw new Error(`${source.baseUrl}${SWAGGER_PATH} did not answer with an OpenAPI document`);
|
|
64
|
+
}
|
|
65
|
+
writeCache(source, raw);
|
|
66
|
+
return { raw, origin: 'stand' };
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const cached = readCache(source);
|
|
70
|
+
if (cached) {
|
|
71
|
+
return { raw: cached, origin: 'cache' };
|
|
72
|
+
}
|
|
73
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=swagger-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger-source.js","sourceRoot":"","sources":["../../src/api/swagger-source.ts"],"names":[],"mappings":"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"}
|
package/dist/api/types.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ export interface Operation {
|
|
|
64
64
|
/** Склеенный текст для поиска по каталогу. */
|
|
65
65
|
searchText: string;
|
|
66
66
|
}
|
|
67
|
-
/** Собранный каталог:
|
|
67
|
+
/** Собранный каталог: результат `buildCatalog` — swagger стенда плюс карта прав. */
|
|
68
68
|
export interface Catalog {
|
|
69
69
|
version: 1;
|
|
70
70
|
builtAt: string;
|
package/dist/api/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,gFAAgF;IAChF,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,gFAAgF;IAChF,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
|
package/dist/bin/cli.js
CHANGED
|
@@ -11,8 +11,6 @@ Options
|
|
|
11
11
|
--base-url <url> Admin API base URL (must contain /api/admin)
|
|
12
12
|
--allow <level> read (default) | write | destructive
|
|
13
13
|
--login <login> admin login; the password comes from ONEENTRY_CMS_PASSWORD
|
|
14
|
-
--back <path> backend-app checkout: read knowledge live instead of the bundled snapshot
|
|
15
|
-
--front <path> frontend-app checkout
|
|
16
14
|
--audit <path> JSONL audit log (required in remote mode)
|
|
17
15
|
--http serve Streamable HTTP instead of stdio
|
|
18
16
|
--port <n> HTTP port, default 8931
|
|
@@ -21,9 +19,19 @@ Options
|
|
|
21
19
|
--request-timeout <ms> per-request timeout, default 30000
|
|
22
20
|
--max-response-bytes <n> response cap handed to the model, default 24576
|
|
23
21
|
|
|
22
|
+
Knowledge (documentation is fetched from GitHub, not bundled)
|
|
23
|
+
--knowledge-repo <o/n> knowledge repository, default ONEENTRY-PLATFORM/oneentry-platform-rules
|
|
24
|
+
--knowledge-ref <ref> branch, tag or commit, default main
|
|
25
|
+
--knowledge-path <dir> read a local clone instead of GitHub (fast edit loop)
|
|
26
|
+
--knowledge-ttl <ms> how long a cached commit stays fresh, default 3600000
|
|
27
|
+
--cache-dir <path> where the knowledge tree and the stand's swagger are cached
|
|
28
|
+
--offline never touch the network: cache and bundled rules only
|
|
29
|
+
|
|
24
30
|
Environment
|
|
25
31
|
ONEENTRY_CMS_LOGIN, ONEENTRY_CMS_PASSWORD, ONEENTRY_CMS_TOKEN, ONEENTRY_CMS_BASE_URL, ONEENTRY_MCP_ALLOW,
|
|
26
|
-
|
|
32
|
+
ONEENTRY_MCP_AUDIT_PATH, ONEENTRY_MCP_PORT, ONEENTRY_MCP_HOST, ONEENTRY_MCP_CACHE_DIR,
|
|
33
|
+
ONEENTRY_MCP_KNOWLEDGE_REPO, ONEENTRY_MCP_KNOWLEDGE_REF, ONEENTRY_MCP_KNOWLEDGE_PATH,
|
|
34
|
+
ONEENTRY_MCP_KNOWLEDGE_TTL_MS, ONEENTRY_MCP_OFFLINE, ONEENTRY_GITHUB_TOKEN
|
|
27
35
|
`;
|
|
28
36
|
const main = async () => {
|
|
29
37
|
const argv = process.argv.slice(2);
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bb,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3G,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -11,6 +11,40 @@ export type AllowLevel = z.infer<typeof AllowLevelSchema>;
|
|
|
11
11
|
*/
|
|
12
12
|
export declare const ServerModeSchema: z.ZodEnum<["local", "remote"]>;
|
|
13
13
|
export type ServerMode = z.infer<typeof ServerModeSchema>;
|
|
14
|
+
/**
|
|
15
|
+
* Откуда брать документацию. Знания живут в отдельном публичном репозитории GitHub
|
|
16
|
+
* и скачиваются в рантайме, а не вшиваются в пакет: иначе правка одной строки
|
|
17
|
+
* документации требовала бы перевыпуска npm-пакета.
|
|
18
|
+
*/
|
|
19
|
+
export declare const KnowledgeConfigSchema: z.ZodObject<{
|
|
20
|
+
/** `owner/name` репозитория знаний. */
|
|
21
|
+
repo: z.ZodString;
|
|
22
|
+
/** Ветка, тег или коммит. Пин на тег — способ зафиксировать знания для стенда. */
|
|
23
|
+
ref: z.ZodString;
|
|
24
|
+
/** Локальный клон репозитория знаний: читать его вместо сети. */
|
|
25
|
+
path: z.ZodOptional<z.ZodString>;
|
|
26
|
+
/** Сколько считать закэшированный коммит свежим, не спрашивая GitHub. */
|
|
27
|
+
refreshTtlMs: z.ZodNumber;
|
|
28
|
+
/** Не ходить в сеть: только кэш и вшитые правила. */
|
|
29
|
+
offline: z.ZodBoolean;
|
|
30
|
+
/** Токен GitHub — только чтобы поднять лимит API. Репозиторий публичный. */
|
|
31
|
+
token: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
repo: string;
|
|
34
|
+
ref: string;
|
|
35
|
+
refreshTtlMs: number;
|
|
36
|
+
offline: boolean;
|
|
37
|
+
path?: string | undefined;
|
|
38
|
+
token?: string | undefined;
|
|
39
|
+
}, {
|
|
40
|
+
repo: string;
|
|
41
|
+
ref: string;
|
|
42
|
+
refreshTtlMs: number;
|
|
43
|
+
offline: boolean;
|
|
44
|
+
path?: string | undefined;
|
|
45
|
+
token?: string | undefined;
|
|
46
|
+
}>;
|
|
47
|
+
export type KnowledgeSettings = z.infer<typeof KnowledgeConfigSchema>;
|
|
14
48
|
/**
|
|
15
49
|
* Полная конфигурация сервера после слияния источников.
|
|
16
50
|
* Все дальнейшие слои получают её как зависимость и не читают process.env сами —
|
|
@@ -26,10 +60,36 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
26
60
|
password: z.ZodOptional<z.ZodString>;
|
|
27
61
|
/** Готовый access-токен вместо логина/пароля. */
|
|
28
62
|
token: z.ZodOptional<z.ZodString>;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
63
|
+
knowledge: z.ZodObject<{
|
|
64
|
+
/** `owner/name` репозитория знаний. */
|
|
65
|
+
repo: z.ZodString;
|
|
66
|
+
/** Ветка, тег или коммит. Пин на тег — способ зафиксировать знания для стенда. */
|
|
67
|
+
ref: z.ZodString;
|
|
68
|
+
/** Локальный клон репозитория знаний: читать его вместо сети. */
|
|
69
|
+
path: z.ZodOptional<z.ZodString>;
|
|
70
|
+
/** Сколько считать закэшированный коммит свежим, не спрашивая GitHub. */
|
|
71
|
+
refreshTtlMs: z.ZodNumber;
|
|
72
|
+
/** Не ходить в сеть: только кэш и вшитые правила. */
|
|
73
|
+
offline: z.ZodBoolean;
|
|
74
|
+
/** Токен GitHub — только чтобы поднять лимит API. Репозиторий публичный. */
|
|
75
|
+
token: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, "strip", z.ZodTypeAny, {
|
|
77
|
+
repo: string;
|
|
78
|
+
ref: string;
|
|
79
|
+
refreshTtlMs: number;
|
|
80
|
+
offline: boolean;
|
|
81
|
+
path?: string | undefined;
|
|
82
|
+
token?: string | undefined;
|
|
83
|
+
}, {
|
|
84
|
+
repo: string;
|
|
85
|
+
ref: string;
|
|
86
|
+
refreshTtlMs: number;
|
|
87
|
+
offline: boolean;
|
|
88
|
+
path?: string | undefined;
|
|
89
|
+
token?: string | undefined;
|
|
90
|
+
}>;
|
|
91
|
+
/** Каталог кэша: распакованный репозиторий знаний и снимок swagger стенда. */
|
|
92
|
+
cacheDir: z.ZodString;
|
|
33
93
|
/** Файл JSONL-аудита. В remote-режиме обязателен. */
|
|
34
94
|
auditPath: z.ZodOptional<z.ZodString>;
|
|
35
95
|
/** Таймаут одного запроса к Admin API, мс. */
|
|
@@ -54,6 +114,15 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
54
114
|
mode: "local" | "remote";
|
|
55
115
|
baseUrl: string;
|
|
56
116
|
allow: "read" | "write" | "destructive";
|
|
117
|
+
knowledge: {
|
|
118
|
+
repo: string;
|
|
119
|
+
ref: string;
|
|
120
|
+
refreshTtlMs: number;
|
|
121
|
+
offline: boolean;
|
|
122
|
+
path?: string | undefined;
|
|
123
|
+
token?: string | undefined;
|
|
124
|
+
};
|
|
125
|
+
cacheDir: string;
|
|
57
126
|
requestTimeoutMs: number;
|
|
58
127
|
maxResponseBytes: number;
|
|
59
128
|
http: {
|
|
@@ -61,16 +130,23 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
61
130
|
host: string;
|
|
62
131
|
allowedOrigins: string[];
|
|
63
132
|
};
|
|
133
|
+
token?: string | undefined;
|
|
64
134
|
login?: string | undefined;
|
|
65
135
|
password?: string | undefined;
|
|
66
|
-
token?: string | undefined;
|
|
67
|
-
backPath?: string | undefined;
|
|
68
|
-
frontPath?: string | undefined;
|
|
69
136
|
auditPath?: string | undefined;
|
|
70
137
|
}, {
|
|
71
138
|
mode: "local" | "remote";
|
|
72
139
|
baseUrl: string;
|
|
73
140
|
allow: "read" | "write" | "destructive";
|
|
141
|
+
knowledge: {
|
|
142
|
+
repo: string;
|
|
143
|
+
ref: string;
|
|
144
|
+
refreshTtlMs: number;
|
|
145
|
+
offline: boolean;
|
|
146
|
+
path?: string | undefined;
|
|
147
|
+
token?: string | undefined;
|
|
148
|
+
};
|
|
149
|
+
cacheDir: string;
|
|
74
150
|
requestTimeoutMs: number;
|
|
75
151
|
maxResponseBytes: number;
|
|
76
152
|
http: {
|
|
@@ -78,11 +154,9 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
78
154
|
host: string;
|
|
79
155
|
allowedOrigins: string[];
|
|
80
156
|
};
|
|
157
|
+
token?: string | undefined;
|
|
81
158
|
login?: string | undefined;
|
|
82
159
|
password?: string | undefined;
|
|
83
|
-
token?: string | undefined;
|
|
84
|
-
backPath?: string | undefined;
|
|
85
|
-
frontPath?: string | undefined;
|
|
86
160
|
auditPath?: string | undefined;
|
|
87
161
|
}>;
|
|
88
162
|
export type Config = z.infer<typeof ConfigSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,6CAA2C,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gCAA8B,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;IAChC,uCAAuC;;IAEvC,kFAAkF;;IAElF,iEAAiE;;IAEjE,yEAAyE;;IAEzE,qDAAqD;;IAErD,4EAA4E;;;;;;;;;;;;;;;;EAE5E,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,YAAY;;IAEvB,qFAAqF;;;IAGrF,uFAAuF;;;IAGvF,iDAAiD;;;QA5BjD,uCAAuC;;QAEvC,kFAAkF;;QAElF,iEAAiE;;QAEjE,yEAAyE;;QAEzE,qDAAqD;;QAErD,4EAA4E;;;;;;;;;;;;;;;;;IAqB5E,8EAA8E;;IAE9E,qDAAqD;;IAErD,8CAA8C;;IAE9C,iFAAiF;;;;;QAK/E,iGAAiG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnG,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAelD,8CAA8C;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,QAsBpD,CAAC;AAuCF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,MAS9C,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,MAAM,EAAE,EACvB,MAAK,MAAM,CAAC,UAAwB,EACpC,MAAK,MAAsB,KAC1B,MAoFF,CAAC"}
|
package/dist/config/config.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
2
3
|
import { resolve } from 'node:path';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
/**
|
|
@@ -11,6 +12,25 @@ export const AllowLevelSchema = z.enum(['read', 'write', 'destructive']);
|
|
|
11
12
|
* stdio -> local (агент и CMS на одной машине), streamable HTTP -> remote (сервис).
|
|
12
13
|
*/
|
|
13
14
|
export const ServerModeSchema = z.enum(['local', 'remote']);
|
|
15
|
+
/**
|
|
16
|
+
* Откуда брать документацию. Знания живут в отдельном публичном репозитории GitHub
|
|
17
|
+
* и скачиваются в рантайме, а не вшиваются в пакет: иначе правка одной строки
|
|
18
|
+
* документации требовала бы перевыпуска npm-пакета.
|
|
19
|
+
*/
|
|
20
|
+
export const KnowledgeConfigSchema = z.object({
|
|
21
|
+
/** `owner/name` репозитория знаний. */
|
|
22
|
+
repo: z.string().regex(/^[\w.-]+\/[\w.-]+$/, 'knowledge repo must look like "owner/name"'),
|
|
23
|
+
/** Ветка, тег или коммит. Пин на тег — способ зафиксировать знания для стенда. */
|
|
24
|
+
ref: z.string().min(1),
|
|
25
|
+
/** Локальный клон репозитория знаний: читать его вместо сети. */
|
|
26
|
+
path: z.string().optional(),
|
|
27
|
+
/** Сколько считать закэшированный коммит свежим, не спрашивая GitHub. */
|
|
28
|
+
refreshTtlMs: z.number().int().nonnegative(),
|
|
29
|
+
/** Не ходить в сеть: только кэш и вшитые правила. */
|
|
30
|
+
offline: z.boolean(),
|
|
31
|
+
/** Токен GitHub — только чтобы поднять лимит API. Репозиторий публичный. */
|
|
32
|
+
token: z.string().min(1).optional(),
|
|
33
|
+
});
|
|
14
34
|
/**
|
|
15
35
|
* Полная конфигурация сервера после слияния источников.
|
|
16
36
|
* Все дальнейшие слои получают её как зависимость и не читают process.env сами —
|
|
@@ -26,10 +46,9 @@ export const ConfigSchema = z.object({
|
|
|
26
46
|
password: z.string().min(1).optional(),
|
|
27
47
|
/** Готовый access-токен вместо логина/пароля. */
|
|
28
48
|
token: z.string().min(1).optional(),
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
frontPath: z.string().optional(),
|
|
49
|
+
knowledge: KnowledgeConfigSchema,
|
|
50
|
+
/** Каталог кэша: распакованный репозиторий знаний и снимок swagger стенда. */
|
|
51
|
+
cacheDir: z.string().min(1),
|
|
33
52
|
/** Файл JSONL-аудита. В remote-режиме обязателен. */
|
|
34
53
|
auditPath: z.string().optional(),
|
|
35
54
|
/** Таймаут одного запроса к Admin API, мс. */
|
|
@@ -50,6 +69,10 @@ const DEFAULTS = {
|
|
|
50
69
|
maxResponseBytes: 24_576,
|
|
51
70
|
httpPort: 8931,
|
|
52
71
|
httpHost: '127.0.0.1',
|
|
72
|
+
knowledgeRepo: 'ONEENTRY-PLATFORM/oneentry-platform-rules',
|
|
73
|
+
knowledgeRef: 'main',
|
|
74
|
+
/** Час: достаточно редко, чтобы цикл перезапусков не упирался в лимит API GitHub. */
|
|
75
|
+
knowledgeTtlMs: 3_600_000,
|
|
53
76
|
};
|
|
54
77
|
/**
|
|
55
78
|
* Минимальный разбор argv: поддерживаются `--flag`, `--key=value` и `--key value`.
|
|
@@ -80,6 +103,27 @@ export const parseFlags = (argv) => {
|
|
|
80
103
|
return flags;
|
|
81
104
|
};
|
|
82
105
|
const asString = (value) => typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Булев флаг из трёх источников. Голый `--offline` — это `true`, поэтому
|
|
108
|
+
* значение флага может быть и строкой, и признаком присутствия.
|
|
109
|
+
*/
|
|
110
|
+
const asBoolean = (value, fallback) => {
|
|
111
|
+
if (value === undefined) {
|
|
112
|
+
return fallback;
|
|
113
|
+
}
|
|
114
|
+
if (typeof value === 'boolean') {
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
return ['1', 'true', 'yes', 'on'].includes(value.trim().toLowerCase());
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Каталог кэша по умолчанию: XDG, с откатом на `~/.cache`.
|
|
121
|
+
* Кэш обязан пережить перезапуск процесса, поэтому временный каталог не годится.
|
|
122
|
+
*/
|
|
123
|
+
const defaultCacheDir = (env) => {
|
|
124
|
+
const xdg = asString(env['XDG_CACHE_HOME']);
|
|
125
|
+
return resolve(xdg ?? resolve(homedir(), '.cache'), 'oneentry-mcp-platform');
|
|
126
|
+
};
|
|
83
127
|
const asNumber = (value, fallback) => {
|
|
84
128
|
if (value === undefined) {
|
|
85
129
|
return fallback;
|
|
@@ -132,6 +176,15 @@ export const loadConfig = (argv, env = process.env, cwd = process.cwd()) => {
|
|
|
132
176
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
133
177
|
};
|
|
134
178
|
const pick = (flagKey, envKey, fileKey) => asString(flags[flagKey]) ?? asString(env[envKey]) ?? fileString(fileKey);
|
|
179
|
+
const fileKnowledge = file['knowledge'];
|
|
180
|
+
const knowledgeFile = (key) => {
|
|
181
|
+
if (typeof fileKnowledge !== 'object' || fileKnowledge === null || Array.isArray(fileKnowledge)) {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
const value = fileKnowledge[key];
|
|
185
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
186
|
+
};
|
|
187
|
+
const pickKnowledge = (flagKey, envKey, fileKey) => asString(flags[flagKey]) ?? asString(env[envKey]) ?? knowledgeFile(fileKey);
|
|
135
188
|
const mode = flags['http'] === true || asString(flags['http']) ? 'remote' : 'local';
|
|
136
189
|
const originsRaw = pick('allowed-origins', 'ONEENTRY_MCP_ALLOWED_ORIGINS', 'allowedOrigins');
|
|
137
190
|
const candidate = {
|
|
@@ -141,8 +194,18 @@ export const loadConfig = (argv, env = process.env, cwd = process.cwd()) => {
|
|
|
141
194
|
login: pick('login', 'ONEENTRY_CMS_LOGIN', 'login'),
|
|
142
195
|
password: asString(env['ONEENTRY_CMS_PASSWORD']) ?? fileString('password'),
|
|
143
196
|
token: asString(env['ONEENTRY_CMS_TOKEN']) ?? fileString('token'),
|
|
144
|
-
|
|
145
|
-
|
|
197
|
+
knowledge: {
|
|
198
|
+
repo: pickKnowledge('knowledge-repo', 'ONEENTRY_MCP_KNOWLEDGE_REPO', 'repo') ??
|
|
199
|
+
DEFAULTS.knowledgeRepo,
|
|
200
|
+
ref: pickKnowledge('knowledge-ref', 'ONEENTRY_MCP_KNOWLEDGE_REF', 'ref') ??
|
|
201
|
+
DEFAULTS.knowledgeRef,
|
|
202
|
+
path: pickKnowledge('knowledge-path', 'ONEENTRY_MCP_KNOWLEDGE_PATH', 'path'),
|
|
203
|
+
refreshTtlMs: asNumber(pickKnowledge('knowledge-ttl', 'ONEENTRY_MCP_KNOWLEDGE_TTL_MS', 'refreshTtlMs'), DEFAULTS.knowledgeTtlMs),
|
|
204
|
+
offline: asBoolean(flags['offline'] ?? env['ONEENTRY_MCP_OFFLINE'], false),
|
|
205
|
+
/** Только из окружения: секрет не должен попадать ни в argv, ни в файл конфигурации. */
|
|
206
|
+
token: asString(env['ONEENTRY_GITHUB_TOKEN']),
|
|
207
|
+
},
|
|
208
|
+
cacheDir: pick('cache-dir', 'ONEENTRY_MCP_CACHE_DIR', 'cacheDir') ?? defaultCacheDir(env),
|
|
146
209
|
auditPath: pick('audit', 'ONEENTRY_MCP_AUDIT_PATH', 'auditPath'),
|
|
147
210
|
requestTimeoutMs: asNumber(pick('request-timeout', 'ONEENTRY_MCP_REQUEST_TIMEOUT_MS', 'requestTimeoutMs'), DEFAULTS.requestTimeoutMs),
|
|
148
211
|
maxResponseBytes: asNumber(pick('max-response-bytes', 'ONEENTRY_MCP_MAX_RESPONSE_BYTES', 'maxResponseBytes'), DEFAULTS.maxResponseBytes),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAGzE;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,gBAAgB;IACtB,qFAAqF;IACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,KAAK,EAAE,gBAAgB;IACvB,uFAAuF;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,iDAAiD;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,9 +15,16 @@ export { shapeResponse } from './api/shape.js';
|
|
|
15
15
|
export { AuditLog } from './api/audit.js';
|
|
16
16
|
export { TokenStore, AuthError } from './api/auth.js';
|
|
17
17
|
export { KnowledgeIndex } from './knowledge/search.js';
|
|
18
|
-
export {
|
|
18
|
+
export { packFromFiles, resolveKnowledge, seedPack } from './knowledge/loader.js';
|
|
19
|
+
export type { KnowledgeConfig } from './knowledge/loader.js';
|
|
20
|
+
export { fetchKnowledgeTree, readLocalTree } from './knowledge/github.js';
|
|
21
|
+
export type { KnowledgeFile, KnowledgeSource, KnowledgeTree } from './knowledge/github.js';
|
|
22
|
+
export { readTar, readTarGz } from './knowledge/tar.js';
|
|
23
|
+
export { buildCatalog } from './api/build-catalog.js';
|
|
24
|
+
export type { PermissionMap } from './api/build-catalog.js';
|
|
25
|
+
export { fetchSwagger } from './api/swagger-source.js';
|
|
19
26
|
export { runStdio } from './transports/stdio.js';
|
|
20
27
|
export { runHttp } from './transports/http.js';
|
|
21
28
|
export type { Catalog, Operation, JsonSchema, RiskLevel } from './api/types.js';
|
|
22
|
-
export type { KnowledgeChunk, KnowledgeDoc, KnowledgePack } from './knowledge/types.js';
|
|
29
|
+
export type { KnowledgeChunk, KnowledgeDoc, KnowledgeOrigin, KnowledgePack, } from './knowledge/types.js';
|
|
23
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5F,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5F,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClF,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChF,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,GACd,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,11 @@ export { shapeResponse } from './api/shape.js';
|
|
|
12
12
|
export { AuditLog } from './api/audit.js';
|
|
13
13
|
export { TokenStore, AuthError } from './api/auth.js';
|
|
14
14
|
export { KnowledgeIndex } from './knowledge/search.js';
|
|
15
|
-
export {
|
|
15
|
+
export { packFromFiles, resolveKnowledge, seedPack } from './knowledge/loader.js';
|
|
16
|
+
export { fetchKnowledgeTree, readLocalTree } from './knowledge/github.js';
|
|
17
|
+
export { readTar, readTarGz } from './knowledge/tar.js';
|
|
18
|
+
export { buildCatalog } from './api/build-catalog.js';
|
|
19
|
+
export { fetchSwagger } from './api/swagger-source.js';
|
|
16
20
|
export { runStdio } from './transports/stdio.js';
|
|
17
21
|
export { runHttp } from './transports/http.js';
|
|
18
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Откуда и как забирать репозиторий знаний. */
|
|
2
|
+
export interface KnowledgeSource {
|
|
3
|
+
/** `owner/name` публичного репозитория GitHub. */
|
|
4
|
+
repo: string;
|
|
5
|
+
/** Ветка, тег или sha. */
|
|
6
|
+
ref: string;
|
|
7
|
+
cacheDir: string;
|
|
8
|
+
/** Как долго считать закэшированный sha свежим, не спрашивая GitHub. */
|
|
9
|
+
refreshTtlMs: number;
|
|
10
|
+
/** Не ходить в сеть вовсе: только кэш. */
|
|
11
|
+
offline: boolean;
|
|
12
|
+
/** Токен GitHub — только чтобы поднять лимит API; репозиторий публичный. */
|
|
13
|
+
token?: string;
|
|
14
|
+
timeoutMs: number;
|
|
15
|
+
}
|
|
16
|
+
/** Файл документации, вынутый из репозитория. */
|
|
17
|
+
export interface KnowledgeFile {
|
|
18
|
+
/** Путь относительно каталога `knowledge/`, например `back/docs/menus-module.md`. */
|
|
19
|
+
path: string;
|
|
20
|
+
content: string;
|
|
21
|
+
}
|
|
22
|
+
/** Результат получения дерева знаний. */
|
|
23
|
+
export interface KnowledgeTree {
|
|
24
|
+
files: KnowledgeFile[];
|
|
25
|
+
sha: string;
|
|
26
|
+
/** `github` — только что скачано, `cache` — взято с диска. */
|
|
27
|
+
source: 'github' | 'cache';
|
|
28
|
+
}
|
|
29
|
+
/** Рекурсивно собирает `*.md` каталога. Используется и кэшем, и локальным клоном. */
|
|
30
|
+
export declare const walkMarkdown: (root: string) => string[];
|
|
31
|
+
/**
|
|
32
|
+
* Отдаёт дерево знаний, предпочитая кэш.
|
|
33
|
+
* Порядок такой: свежий кэш -> сверка sha -> скачивание. Пока запись кэша моложе
|
|
34
|
+
* `refreshTtlMs`, сеть не трогается вообще — иначе цикл перезапусков сервера
|
|
35
|
+
* упирался бы в лимит анонимного API GitHub.
|
|
36
|
+
* Бросает исключение, если знания взять неоткуда; решение о запасном варианте
|
|
37
|
+
* принимает вызывающий.
|
|
38
|
+
*/
|
|
39
|
+
export declare const fetchKnowledgeTree: (source: KnowledgeSource) => Promise<KnowledgeTree>;
|
|
40
|
+
/**
|
|
41
|
+
* Читает знания из локального клона репозитория.
|
|
42
|
+
* Принимает и корень клона, и сам каталог `knowledge/` — путать их слишком легко,
|
|
43
|
+
* а разница видна по наличию подкаталога.
|
|
44
|
+
*/
|
|
45
|
+
export declare const readLocalTree: (path: string) => KnowledgeFile[];
|
|
46
|
+
//# sourceMappingURL=github.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/knowledge/github.ts"],"names":[],"mappings":"AAIA,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AA4CD,qFAAqF;AACrF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,EAcjD,CAAC;AAgIF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAU,QAAQ,eAAe,KAAG,OAAO,CAAC,aAAa,CAiCvF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,aAAa,EASzD,CAAC"}
|