@smwb/onreel-git-mcp 0.8.0 → 0.9.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.
@@ -26,6 +26,8 @@ export declare const CI_LOG_DEFAULT_BYTES: number;
26
26
  export declare const CI_LOG_MAX_BYTES: number;
27
27
  /** Потолок чтения тела лога: дальше поток обрывается, лог — truncated. */
28
28
  export declare const CI_LOG_READ_MAX_BYTES: number;
29
+ /** Сколько редиректов проходит один запрос к трекеру; следующий — отказ failed. */
30
+ export declare const TRACKER_REDIRECT_MAX = 5;
29
31
  /** Таймаут загрузки лога, мс: логи больше ответов API. */
30
32
  export declare const CI_LOG_TIMEOUT_MS = 60000;
31
33
  /** Сколько страниц лога SourceCraft читается за один вызов log(). */
@@ -3,11 +3,17 @@ import type { LocalIssueStore } from '../kernel/store.types.ts';
3
3
  import type { CiDefinition } from './ci.types.ts';
4
4
  import type { PullRequestDefinition } from './pull.types.ts';
5
5
  import type { CommentFilter, IssueFilter, IssueSortField } from './tracker.const.ts';
6
+ /**
7
+ * fetch контекста. requestJson и requestText передают redirect: 'manual' и проходят редиректы сами: обёртка
8
+ * потребителя передаёт redirect в свой fetch, иначе за редиректом пойдёт её fetch, а не библиотека. Такой ответ
9
+ * (redirected, адрес на другом origin, opaqueredirect) — отказ failed, а не данные.
10
+ */
6
11
  export type TrackerFetch = (input: string, init?: {
7
12
  method?: string;
8
13
  headers?: Record<string, string>;
9
14
  body?: string;
10
15
  signal?: AbortSignal;
16
+ redirect?: 'follow' | 'manual' | 'error';
11
17
  }) => Promise<Response>;
12
18
  /** Подключение проекта с расшифрованным секретом: живёт только в памяти на время вызова. */
13
19
  export type TrackerConnectionData = {
@@ -119,10 +125,22 @@ export type TrackerDefinition = {
119
125
  pulls?: PullRequestDefinition | undefined;
120
126
  /** CI трекера на том же подключении (D-005); нет — ciAdapterOf отказывает unsupported. */
121
127
  ci?: CiDefinition | undefined;
128
+ /**
129
+ * Origin API, к которому адаптер (и его разделы pulls и ci) обращается с токеном подключения, например
130
+ * https://api.github.com. Потребитель привязывает к нему токен: правка url на другой origin — повод спросить
131
+ * токен заново. Неверное подключение — TrackerError, как у create. Нет — трекер не объявил origin (у local
132
+ * сети и токена нет).
133
+ */
134
+ origin?: ((connection: TrackerConnectionData) => string) | undefined;
122
135
  };
123
136
  export type TrackerFailure = 'failed' | 'unknown_issue' | 'invalid_request' | 'not_found' | 'unsupported' | 'conflict' | 'rate_limited';
124
137
  export type JsonRequest = {
125
138
  fetch: TrackerFetch;
139
+ /**
140
+ * Origin API подключения: адрес вне него — отказ invalid_request до запроса. Редирект на чужой origin проходит
141
+ * только для GET и без заголовков запроса (Authorization и свои). Нет — origin самого адреса.
142
+ */
143
+ origin?: string | undefined;
126
144
  method?: 'GET' | 'POST' | 'PUT' | 'PATCH';
127
145
  headers?: Record<string, string>;
128
146
  body?: unknown;
@@ -143,6 +161,8 @@ export type JsonResponse = {
143
161
  /** Запрос текста (лог CI): тело читается потоком, в памяти — только окно keep. */
144
162
  export type TextRequest = {
145
163
  fetch: TrackerFetch;
164
+ /** Origin API подключения — как у JsonRequest.origin. */
165
+ origin?: string | undefined;
146
166
  headers?: Record<string, string> | undefined;
147
167
  /** Заголовок accept; по умолчанию text/plain. */
148
168
  accept?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smwb/onreel-git-mcp",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Библиотека модулей, выделенных из onreel: git-операции и безопасные пути, список файлов worktree, жизненный цикл worktree против порта WorktreeStore, адаптеры трекеров GitHub/GitLab/Jira/SourceCraft/локального и MCP-сервер на stdio",
5
5
  "keywords": [
6
6
  "git",