figjam-context-mcp 0.4.0 → 0.5.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/.env.example CHANGED
@@ -37,7 +37,11 @@ LLM_MODEL_PRESET=student-free
37
37
  # Increase these only if your MCP client/request timeout is also higher.
38
38
  # FIGMA_REQUEST_TIMEOUT_MS=15000
39
39
  # FIGMA_FILE_REQUEST_TIMEOUT_MS=60000
40
+ # Global LLM request timeout; when set, it applies to roles without their own value.
40
41
  # LLM_REQUEST_TIMEOUT_MS=20000
42
+ # Answers and text diagnostics: explicit role value > explicit global value > 40000 ms.
43
+ # answer_from_board stops after 50000 ms across all model candidates (or this value, if larger).
44
+ # LLM_ANSWER_REQUEST_TIMEOUT_MS=40000
41
45
  # Vision: explicit role value > explicit global value > 60000 ms.
42
46
  # LLM_VISION_REQUEST_TIMEOUT_MS=60000
43
47
  # LLM_SDK_MAX_RETRIES=0
@@ -52,6 +56,11 @@ LLM_MODEL_PRESET=student-free
52
56
  # INGEST_BOARD_VISION_CONCURRENCY=3
53
57
  # FIGMA_SCREENSHOT_DOWNLOAD_CONCURRENCY=3
54
58
 
59
+ # --- Privacy ---------------------------------------------------------------
60
+ # Explicit credentials on the board ("Passwort: …", "API key: …", known key
61
+ # formats) are replaced with [redacted] before cache, tool output and providers.
62
+ # FIGJAM_MCP_REDACT_CREDENTIALS=true
63
+
55
64
  # --- Cache controls ------------------------------------------------------
56
65
  # Maximum full boards retained in process memory. Older entries remain on
57
66
  # disk and are restored on demand.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.0 — 2026-10-19
4
+
5
+ - Explicit credentials are redacted as `[redacted]` during extraction, before they
6
+ reach the cache, tool output or an LLM provider: labelled values such as
7
+ `Passwort: …`, `PIN: …`, `API key: …` or `Client Secret: …` up to the end of the
8
+ line, in node names, text and table cells, and known key formats (GitHub,
9
+ OpenAI/OpenRouter, Figma, AWS, Slack, private key blocks). Snapshots cached by
10
+ earlier versions are redacted when `get_board_context`, `answer_from_board` and
11
+ `diff_board` read them. Turn it off with `FIGJAM_MCP_REDACT_CREDENTIALS=false`.
12
+ - **Re-ingest each board once** so its cached snapshot is stored redacted; the
13
+ next `ingest_board` re-extracts even when Figma reports no change.
14
+ - The release workflow waits until npm serves the new version before publishing
15
+ to the MCP Registry, retries that step, and creates the GitHub release independently.
16
+
17
+ ## 0.4.1 — 2026-10-19
18
+
19
+ - `answer_from_board` waits up to 40 s per model request (`LLM_ANSWER_REQUEST_TIMEOUT_MS`)
20
+ instead of 20 s and stops after 50 s across all model candidates, so large prompts
21
+ on free reasoning models finish inside a 60-second client timeout. The text checks of
22
+ `diagnose_llm_config` use the same timeout, and timeout errors name the setting to change.
23
+ - Tool descriptions point overviews and whole-board summaries to `get_board_context`;
24
+ `answer_from_board` is for one specific question.
25
+ - `ingest_board` renders screenshots of several clusters per Figma request (up to
26
+ 18 nodes) instead of one request per cluster, saving Tier 1 Figma requests.
27
+ - Vision summaries keep table values and statistical notation literally and name
28
+ a statistic such as a confidence interval only when a legend identifies it.
29
+ - Releases are published from CI with npm provenance.
30
+ - Dependency updates: `openai` 7.34, `dotenv` 18.0.8.
31
+
3
32
  ## 0.4.0 — 2026-10-18
4
33
 
5
34
  - New `student-free` defaults: text uses `nvidia/nemotron-3-super-120b-a12b:free`,
package/README.md CHANGED
@@ -18,8 +18,8 @@ every answer to the nodes it came from.
18
18
  | Tool | What it does | LLM call |
19
19
  | --- | --- | --- |
20
20
  | `ingest_board` | Reads a board, clusters it and saves a local snapshot. Re-ingests reuse unchanged clusters. | In `balanced` (default) and `max_quality` mode |
21
- | `get_board_context` | Returns bounded, paginated context with source links, optionally for a topic or exact node IDs. | No |
22
- | `answer_from_board` | Answers a question from the snapshot with node-level citations, or reports insufficient evidence. | Yes |
21
+ | `get_board_context` | Returns paginated, source-linked context, optionally for a topic or exact node IDs. Use it for overviews, summaries and documentation. | No |
22
+ | `answer_from_board` | Answers one specific question (a number, status or decision) from the most relevant excerpts, with node-level citations or an insufficient-evidence result. Not meant for whole-board summaries. | Yes |
23
23
  | `diff_board` | Compares two snapshots: new, removed and changed clusters, nodes, table cells and arrows. | No |
24
24
  | `diagnose_llm_config` | Tests the configured models with small text and image JSON checks. | Yes |
25
25
 
@@ -96,8 +96,9 @@ and time out.
96
96
  - Figma limits file downloads and image renders by seat and plan: Dev and Full
97
97
  seats on paid plans get 10–20 requests per minute, View and Collab seats and
98
98
  files in Starter plans at most 20 per month
99
- ([rate limits](https://developers.figma.com/docs/rest-api/rate-limits/));
100
- each cluster sent to the vision model uses one render.
99
+ ([rate limits](https://developers.figma.com/docs/rest-api/rate-limits/)).
100
+ One render request covers up to 18 screenshots (about three clusters), so a
101
+ default ingest usually needs at most four; `max_speed` needs none.
101
102
  - For a team, configure your own model: `LLM_BASE_URL` takes any
102
103
  OpenAI-compatible endpoint, and `LLM_TEXT_MODELS` / `LLM_VISION_MODELS` set
103
104
  the model lists.
@@ -113,6 +114,11 @@ and time out.
113
114
  to an LLM provider.
114
115
  - Snapshots stay in a private per-user cache on your machine. Delete the cache
115
116
  directory to remove them.
117
+ - Explicit credentials such as `Passwort: …` or API keys are redacted before they
118
+ reach the cache, tool output or an LLM provider
119
+ ([`FIGJAM_MCP_REDACT_CREDENTIALS`](docs/configuration.md#privacy)). This is a
120
+ safety net, not a guarantee: screenshots are not redacted, so keep credentials
121
+ off the board.
116
122
  - Keep tokens in the client's environment. A token passed as a tool argument can
117
123
  appear in client logs.
118
124
 
@@ -21,4 +21,8 @@ export declare function fetchFileMetadata(fileKey: string, token: string, signal
21
21
  version: string;
22
22
  }>;
23
23
  export declare function fetchImageRefs(fileKey: string, token: string, signal?: AbortSignal): Promise<Record<string, string>>;
24
- export declare function fetchScreenshot(fileKey: string, nodeIds: string[], token: string, signal?: AbortSignal, budget?: DownloadBudget, version?: string): Promise<Buffer[]>;
24
+ export type RenderUrls = Record<string, string | null | undefined>;
25
+ /** One GET /v1/images request (Tier 1) for all given nodes; images are downloaded separately. */
26
+ export declare function fetchRenderUrls(fileKey: string, nodeIds: string[], token: string, signal?: AbortSignal, version?: string): Promise<RenderUrls>;
27
+ /** Downloads the rendered images of `nodeIds` in order; every node needs a render URL. */
28
+ export declare function downloadRenders(nodeIds: string[], renderUrls: RenderUrls, signal?: AbortSignal, budget?: DownloadBudget): Promise<Buffer[]>;
@@ -113,9 +113,10 @@ export async function fetchImageRefs(fileKey, token, signal) {
113
113
  const data = await readJson(await figmaFetch(apiPath, token, FIGMA_REQUEST_TIMEOUT_MS, signal), apiPath, FIGMA_REQUEST_TIMEOUT_MS, signal);
114
114
  return data.meta?.images ?? data.images ?? {};
115
115
  }
116
- export async function fetchScreenshot(fileKey, nodeIds, token, signal, budget, version) {
116
+ /** One GET /v1/images request (Tier 1) for all given nodes; images are downloaded separately. */
117
+ export async function fetchRenderUrls(fileKey, nodeIds, token, signal, version) {
117
118
  if (!nodeIds.length)
118
- throw new Error("fetchScreenshot: nodeIds must not be empty");
119
+ throw new Error("fetchRenderUrls: nodeIds must not be empty");
119
120
  const params = new URLSearchParams({ ids: nodeIds.join(","), format: "png", scale: "1" });
120
121
  if (version)
121
122
  params.set("version", version);
@@ -123,7 +124,13 @@ export async function fetchScreenshot(fileKey, nodeIds, token, signal, budget, v
123
124
  const data = await readJson(await figmaFetch(apiPath, token, FIGMA_REQUEST_TIMEOUT_MS, signal), apiPath, FIGMA_REQUEST_TIMEOUT_MS, signal);
124
125
  if (data.err)
125
126
  throw new Error("Figma could not render the requested nodes");
126
- const urls = nodeIds.map(id => data.images?.[id]).filter((url) => Boolean(url));
127
+ return data.images ?? {};
128
+ }
129
+ /** Downloads the rendered images of `nodeIds` in order; every node needs a render URL. */
130
+ export async function downloadRenders(nodeIds, renderUrls, signal, budget) {
131
+ if (!nodeIds.length)
132
+ throw new Error("downloadRenders: nodeIds must not be empty");
133
+ const urls = nodeIds.map(id => renderUrls[id]).filter((url) => Boolean(url));
127
134
  if (!urls.length)
128
135
  throw new Error("Figma image render returned no URLs for the requested nodes");
129
136
  if (urls.length !== nodeIds.length)
@@ -1 +1 @@
1
- {"version":3,"file":"figmaApi.js","sourceRoot":"","sources":["../../src/lib/figmaApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figmaApi.js","sourceRoot":"","sources":["../../src/lib/figmaApi.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,10 @@ export interface ChatJsonOptions {
21
21
  reasoningEffort?: LlmReasoningEffort;
22
22
  /** Per-HTTP-attempt deadline, including the response body; caller cancellation can end it earlier. */
23
23
  requestTimeoutMs?: number;
24
+ /** Deadline across all model candidates and retries; a fallback candidate gets only the time left. */
25
+ totalTimeoutMs?: number;
26
+ /** Setting named in a timeout error; defaults to LLM_REQUEST_TIMEOUT_MS. */
27
+ timeoutSetting?: string;
24
28
  schemaName?: string;
25
29
  jsonSchema?: JsonSchema;
26
30
  onModelUsed?: (model: string) => void;
@@ -39,6 +39,8 @@ export class LlmInvalidJsonError extends Error {
39
39
  this.name = "LlmInvalidJsonError";
40
40
  }
41
41
  }
42
+ /** Requests shorter than this cannot complete; the caller's deadline is treated as reached. */
43
+ const MIN_REQUEST_TIMEOUT_MS = 1000;
42
44
  const REASONING_EFFORTS = ["none", "low", "medium", "high"];
43
45
  /** Applies only to answer_from_board; vision and other roles keep their own defaults. */
44
46
  export function getAnswerReasoningEffort() {
@@ -125,12 +127,17 @@ const MAX_OUTPUT_TOKENS = readIntEnv("LLM_MAX_OUTPUT_TOKENS", 14096, 1);
125
127
  * block extracted) and failures surface as clear errors.
126
128
  */
127
129
  export async function chatJson(model, messages, options = {}) {
130
+ const { totalTimeoutMs } = options;
131
+ if (totalTimeoutMs !== undefined && (!Number.isInteger(totalTimeoutMs) || totalTimeoutMs < MIN_REQUEST_TIMEOUT_MS)) {
132
+ throw new LLMConfigurationError(`totalTimeoutMs must be an integer >= ${MIN_REQUEST_TIMEOUT_MS}`);
133
+ }
128
134
  const llm = getLlmClient();
129
135
  const models = Array.isArray(model) ? model : [model];
130
136
  const errors = [];
137
+ const requestOptions = totalTimeoutMs === undefined ? options : { ...options, deadlineAt: Date.now() + totalTimeoutMs };
131
138
  for (const candidate of models) {
132
139
  try {
133
- const completion = await createJsonCompletion(llm, candidate, messages, options);
140
+ const completion = await createJsonCompletion(llm, candidate, messages, requestOptions);
134
141
  const choice = completion.choices[0];
135
142
  const raw = choice?.message?.content;
136
143
  if (!raw) {
@@ -145,7 +152,7 @@ export async function chatJson(model, messages, options = {}) {
145
152
  throw abortReason(options.signal, error);
146
153
  }
147
154
  errors.push(error);
148
- if (candidate !== models.at(-1) && shouldTryNextModel(error)) {
155
+ if (candidate !== models.at(-1) && shouldTryNextModel(error) && remainingMs(requestOptions) >= MIN_REQUEST_TIMEOUT_MS) {
149
156
  console.error(`LLM model ${candidate} failed; trying the next explicitly configured candidate.`);
150
157
  continue;
151
158
  }
@@ -306,15 +313,21 @@ function normalizeLlmError(error) {
306
313
  async function createCompletion(llm, params, options = {}) {
307
314
  const { signal } = options;
308
315
  const requestTimeoutMs = options.requestTimeoutMs ?? getLlmRequestTimeoutMs();
309
- if (!Number.isInteger(requestTimeoutMs) || requestTimeoutMs < 1000) {
310
- throw new LLMConfigurationError("requestTimeoutMs must be an integer >= 1000");
316
+ if (!Number.isInteger(requestTimeoutMs) || requestTimeoutMs < MIN_REQUEST_TIMEOUT_MS) {
317
+ throw new LLMConfigurationError(`requestTimeoutMs must be an integer >= ${MIN_REQUEST_TIMEOUT_MS}`);
311
318
  }
319
+ const setting = options.timeoutSetting ?? "LLM_REQUEST_TIMEOUT_MS";
312
320
  for (let attempt = 0;; attempt++) {
313
321
  throwIfAborted(signal);
322
+ const timeoutMs = Math.min(requestTimeoutMs, Math.floor(remainingMs(options)));
323
+ if (timeoutMs < MIN_REQUEST_TIMEOUT_MS) {
324
+ throw new LlmTimeoutError(`LLM request did not finish within the ${options.totalTimeoutMs / 1000}s total deadline across model candidates. ` +
325
+ `Check the model and output-token budget, or adjust ${setting}.`);
326
+ }
314
327
  let completion;
315
328
  try {
316
329
  options.onRequest?.(params.model);
317
- completion = await llm.chat.completions.create(params, { signal, timeout: requestTimeoutMs });
330
+ completion = await llm.chat.completions.create(params, { signal, timeout: timeoutMs });
318
331
  options.onUsage?.({ model: params.model, promptTokens: completion.usage?.prompt_tokens,
319
332
  completionTokens: completion.usage?.completion_tokens, totalTokens: completion.usage?.total_tokens });
320
333
  }
@@ -323,9 +336,11 @@ async function createCompletion(llm, params, options = {}) {
323
336
  throw abortReason(signal, error);
324
337
  }
325
338
  if (isLlmTimeout(error)) {
326
- throw new LlmTimeoutError(`LLM request timed out after ${requestTimeoutMs / 1000}s. ` +
327
- "Check the model, output-token budget and caller deadline. " +
328
- "Adjust LLM_VISION_REQUEST_TIMEOUT_MS for vision or LLM_REQUEST_TIMEOUT_MS for text.");
339
+ const clamped = timeoutMs < requestTimeoutMs
340
+ ? `, the time left of the ${options.totalTimeoutMs / 1000}s total deadline across model candidates`
341
+ : "";
342
+ throw new LlmTimeoutError(`LLM request timed out after ${Math.round(timeoutMs / 1000)}s${clamped}. ` +
343
+ `Check the model, output-token budget and caller deadline, or adjust ${setting}.`);
329
344
  }
330
345
  if (!(error instanceof OpenAI.RateLimitError) || attempt >= MAX_RATE_LIMIT_RETRIES) {
331
346
  throw error;
@@ -379,6 +394,9 @@ function retryDelayMs(error, attempt) {
379
394
  const retryAfter = Number(error.headers?.get("retry-after"));
380
395
  return Number.isFinite(retryAfter) && retryAfter > 0 ? retryAfter * 1000 : 2 ** attempt * 2000;
381
396
  }
397
+ function remainingMs(options) {
398
+ return options.deadlineAt === undefined ? Infinity : options.deadlineAt - Date.now();
399
+ }
382
400
  function isLlmTimeout(error) {
383
401
  const TimeoutError = OpenAI.APIConnectionTimeoutError;
384
402
  return ((typeof TimeoutError === "function" && error instanceof TimeoutError) ||
@@ -1 +1 @@
1
- {"version":3,"file":"llmClient.js","sourceRoot":"","sources":["../../src/lib/llmClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmClient.js","sourceRoot":"","sources":["../../src/lib/llmClient.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;GASG;AAEH,IAAI,MAA0B,CAAC;AAC/B,IAAI,YAAgC,CAAC;AAErC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACF;IAA0B;IAAhE,YAAY,OAAe,EAAW,MAAe,EAAW,UAAmB;QAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAAhE,WAAM,GAAN,MAAM,CAAS;QAAW,eAAU,GAAV,UAAU,CAAS;IAAoB,CAAC;CACzG;AACD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,CAAC;CACtF;AACD,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAChF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAGjC;IACA;IAHX,YACE,OAAe,EACN,QAAgB,EAChB,YAA4B;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAgB;QAGrC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAqBD,+FAA+F;AAC/F,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAIpC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAGrE,yFAAyF;AACzF,MAAM,UAAU,wBAAwB;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,uBAAuB,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,IAAY;IAC3D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAA2B,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,qBAAqB,CAAC,GAAG,IAAI,oBAAoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAC7B,GAAG,IAAI,mHAAmH,CAC3H,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,wBAAwB;IACtC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3B,UAAU,CAAC,aAAa,CAAC,CAAC;AAC5B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,MAAM;QAAE,MAAM,GAAG,IAAI,MAAM,CAAC;YAC1D,OAAO;YACP,MAAM;YACN,OAAO,EAAE,sBAAsB,EAAE;YACjC,UAAU,EAAE,mBAAmB;SAChC,CAAC,CAAC;IACH,YAAY,GAAG,MAAM,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,EAAE,CAAC,CAAC,CAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,2FAA2F;AAC3F,MAAM,sBAAsB,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1E,kGAAkG;AAClG,MAAM,yBAAyB,GAAG,UAAU,CAAC,+BAA+B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEvF;;;GAGG;AACH,MAAM,mBAAmB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,UAAU,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAwB,EACxB,QAA6C,EAC7C,UAA2B,EAAE;IAE7B,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACnC,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,sBAAsB,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,qBAAqB,CAAC,wCAAwC,sBAAsB,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAmB,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAExI,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,QAAQ,SAAS,8BAA8B,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YACrE,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,sBAAsB,EAAE,CAAC;gBACtH,OAAO,CAAC,KAAK,CACX,aAAa,SAAS,2DAA2D,CAClF,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,KAAa,EACb,QAA6C,EAC7C,OAAuB;IAEvB,MAAM,IAAI,GAAiC;QACzC,KAAK;QACL,QAAQ;QACR,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,eAAe,IAAI,iBAAiB;KACzD,CAAC;IACF,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,uBAAuB,CAAC,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACpE,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QACvD,CAAC;;YAAM,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,KAAK,MAAM,cAAc,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,OAAO,MAAM,gBAAgB,CAAC,GAAG,EAAE,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,IAAI,cAAc,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAQD,SAAS,sBAAsB,CAAC,OAAwB;IACtD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO;YACL;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE;oBACX,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,kBAAkB;oBAC9C,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,OAAO,CAAC,UAAU;iBAC3B;aACgB;YACnB,EAAE,IAAI,EAAE,aAAa,EAAE;YACvB,SAAS;SACV,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,uFAAuF;AACvF,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC;AAC3D,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAoC,EACpC,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC;QACxG,CAAC,cAAc,EAAE,CAAC,yBAAyB,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;KACP,CAAC;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,oBAAoB,GAAG,KAAK;IAC3E,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtG,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,MAAM,GAAG,yFAAyF,CAAC;IACzG,MAAM,WAAW,GAAG,0PAA0P,CAAC;IAC/Q,uEAAuE;IACvE,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,oBAAoB,IAAI,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACrG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,oBAAoB;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9E,+FAA+F,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5G,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3G,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,iQAAiQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxR,CAAC;AAED,qFAAqF;AACrF,SAAS,mBAAmB,CAAC,KAA2C;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpH,wEAAwE;IACxE,8EAA8E;IAC9E,wEAAwE;IACxE,IAAI,GAAG,GAAY,QAAQ,CAAC,GAAG,CAAC;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAAC,CAAC;QACjE,MAAM,CAAC;YAAC,GAAG,GAAG,SAAS,CAAC;QAAC,CAAC;IAC5B,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClH,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;QACxE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,mBAAmB;QACzE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;SAClH,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;SAC7D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;IAChG,IAAI,KAAK,YAAY,mBAAmB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,YAAY,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;YACxE,uBAAuB,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,yHAAyH,CAAC,IAAI,CACnI,KAAK,CAAC,OAAO,CACd,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,eAAe,CAAC,4BAA4B,KAAK,CAAC,MAAM,IAAI,SAAS,mDAAmD,EAAE,KAAK,CAAC,MAAM,EAC/I,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC;AAkBD;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,MAAqD,EACrD,UAA0B,EAAE;IAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,sBAAsB,EAAE,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;QACrF,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,sBAAsB,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IACnE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,GAAG,sBAAsB,EAAE,CAAC;YACvC,MAAM,IAAI,eAAe,CACvB,yCAAyC,OAAO,CAAC,cAAe,GAAG,IAAI,4CAA4C;gBACjH,sDAAsD,OAAO,GAAG,CACnE,CAAC;QACJ,CAAC;QACD,IAAI,UAAiC,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa;gBACpF,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,SAAS,GAAG,gBAAgB;oBAC1C,CAAC,CAAC,0BAA0B,OAAO,CAAC,cAAe,GAAG,IAAI,0CAA0C;oBACpG,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,eAAe,CACvB,+BAA+B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,OAAO,IAAI;oBACxE,uEAAuE,OAAO,GAAG,CACpF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAAC;gBACnF,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,sBAAsB,EAAE,CAAC;YAC9D,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,uBAAuB,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,+BAA+B,EAAE,EACtI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,UAAiC;IAEjC,MAAM,QAAQ,GAAG,UAA8C,CAAC;IAChE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,KAAkD;IACrE,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,GAAG;QAClB,KAAK,CAAC,IAAI,KAAK,KAAK;QACpB,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,qBAAqB,CACrD,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,OAAe,EACf,MAAoB;IAEpB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CACX,kCAAkC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI;QACnE,YAAY,OAAO,GAAG,CAAC,IAAI,sBAAsB,IAAI,CACxD,CAAC;IACF,MAAM,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,+FAA+F;AAC/F,SAAS,YAAY,CAAC,KAAiD,EAAE,OAAe;IACtF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC;AACjG,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC;IACtD,OAAO,CACL,CAAC,OAAO,YAAY,KAAK,UAAU,IAAI,KAAK,YAAY,YAAY,CAAC;QACrE,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,2BAA2B,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,WAAW,CAAC,MAAO,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IAC1C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB,EAAE,QAAkB;IAC1D,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACvE,CAAC;AAED,+EAA+E;AAC/E,SAAS,cAAc,CAAC,GAAW,EAAE,KAAa,EAAE,YAA4B;IAC9E,MAAM,QAAQ,GAAG,GAAG;SACjB,IAAI,EAAE;SACN,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;QAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GACR,YAAY,KAAK,QAAQ;QACvB,CAAC,CAAC,wEAAwE;YACxE,wEAAwE;YACxE,kFAAkF;QACpF,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,IAAI,mBAAmB,CAC3B,QAAQ,KAAK,+BAA+B,IAAI,EAAE,EAClD,GAAG,EACH,YAAY,CACb,CAAC;AACJ,CAAC"}
@@ -2,3 +2,11 @@
2
2
  export declare function getLlmRequestTimeoutMs(): number;
3
3
  /** A role-specific override wins; an existing global override keeps its previous meaning. */
4
4
  export declare function getVisionRequestTimeoutMs(): number;
5
+ /** Answers send large prompts, often to reasoning models, so they get a longer default than other text requests. */
6
+ export declare function getAnswerRequestTimeoutMs(): number;
7
+ /**
8
+ * Total time for one answer across all model candidates, so answer_from_board
9
+ * replies inside a 60 s client timeout. A larger explicit per-request setting
10
+ * still applies to the first candidate.
11
+ */
12
+ export declare function getAnswerTotalTimeoutMs(): number;
@@ -7,4 +7,16 @@ export function getLlmRequestTimeoutMs() {
7
7
  export function getVisionRequestTimeoutMs() {
8
8
  return readIntEnv("LLM_VISION_REQUEST_TIMEOUT_MS", readIntEnv("LLM_REQUEST_TIMEOUT_MS", 60_000, 1000), 1000);
9
9
  }
10
+ /** Answers send large prompts, often to reasoning models, so they get a longer default than other text requests. */
11
+ export function getAnswerRequestTimeoutMs() {
12
+ return readIntEnv("LLM_ANSWER_REQUEST_TIMEOUT_MS", readIntEnv("LLM_REQUEST_TIMEOUT_MS", 40_000, 1000), 1000);
13
+ }
14
+ /**
15
+ * Total time for one answer across all model candidates, so answer_from_board
16
+ * replies inside a 60 s client timeout. A larger explicit per-request setting
17
+ * still applies to the first candidate.
18
+ */
19
+ export function getAnswerTotalTimeoutMs() {
20
+ return Math.max(50_000, getAnswerRequestTimeoutMs());
21
+ }
10
22
  //# sourceMappingURL=llmTimeouts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llmTimeouts.js","sourceRoot":"","sources":["../../src/lib/llmTimeouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,iGAAiG;AACjG,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yBAAyB;IACvC,OAAO,UAAU,CAAC,+BAA+B,EAC/C,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"llmTimeouts.js","sourceRoot":"","sources":["../../src/lib/llmTimeouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,iGAAiG;AACjG,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yBAAyB;IACvC,OAAO,UAAU,CAAC,+BAA+B,EAC/C,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,yBAAyB;IACvC,OAAO,UAAU,CAAC,+BAA+B,EAC/C,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
+ import { redactCredentials } from "./redact.js";
2
3
  export const STRUCTURAL_TYPES = new Set(["DOCUMENT", "CANVAS", "PAGE", "FRAME", "GROUP", "SECTION"]);
3
4
  export const MAX_BOARD_NODES = 100_000;
4
5
  const MAX_BOARD_DEPTH = 1024;
@@ -138,7 +139,7 @@ export function flattenNodeTree(rawFigmaJson) {
138
139
  for (const entry of entries) {
139
140
  if (entry.tableOwner === undefined || entry.raw.type !== "TABLE_CELL")
140
141
  continue;
141
- const cell = { id: entry.raw.id, text: cellText(entry, entries) };
142
+ const cell = { id: entry.raw.id, text: redactCredentials(cellText(entry, entries)) };
142
143
  // Only report positions explicitly present in the source; IDs are opaque.
143
144
  if (Number.isInteger(entry.raw.rowIndex) && Number(entry.raw.rowIndex) >= 0)
144
145
  cell.row = Number(entry.raw.rowIndex);
@@ -155,11 +156,13 @@ export function flattenNodeTree(rawFigmaJson) {
155
156
  const node = entry.raw;
156
157
  const box = node.absoluteBoundingBox ?? { x: 0, y: 0, width: 0, height: 0 };
157
158
  const cells = node.type === "TABLE" ? cellsByTable.get(index) ?? [] : undefined;
159
+ // FigJam names text nodes after their content, so names need the same redaction as text.
160
+ const characters = node.characters === undefined ? undefined : redactCredentials(node.characters);
158
161
  result.push({
159
- id: node.id, name: node.name, type: node.type,
162
+ id: node.id, name: redactCredentials(node.name), type: node.type,
160
163
  x: box.x, y: box.y, width: box.width, height: box.height,
161
164
  rotation: node.rotation ?? 0, imageRef: extractImageRef(node),
162
- text: cells ? [node.characters, ...cells.map((cell) => cell.text)].filter((text) => text !== undefined && text !== "").join("\n") : node.characters,
165
+ text: cells ? [characters, ...cells.map((cell) => cell.text)].filter((text) => text !== undefined && text !== "").join("\n") : characters,
163
166
  parentId: entry.parentId, pageId: entry.pageId, sectionIds: entry.sectionIds,
164
167
  renderNodeId: node.id, table: cells ? { cells } : undefined,
165
168
  contentFingerprint: entry.contentFingerprint,
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTree.js","sourceRoot":"","sources":["../../src/lib/nodeTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeTree.js","sourceRoot":"","sources":["../../src/lib/nodeTree.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { BoardData, DocStructureHint, IngestMode, NormalizedNode } from "../types.js";
2
2
  export declare const CACHE_SCHEMA_VERSION = 4;
3
- export declare const EXTRACTION_VERSION = 5;
4
- export declare const PROMPT_VERSION = 7;
3
+ export declare const EXTRACTION_VERSION = 6;
4
+ export declare const PROMPT_VERSION = 8;
5
5
  export interface BoardCacheIdentity {
6
6
  fileKey: string;
7
7
  figmaLastModified?: string;
@@ -7,8 +7,8 @@ import { z } from "zod";
7
7
  import { getModelConfigSignature } from "./modelRegistry.js";
8
8
  import { MAX_BOARD_NODES } from "./nodeTree.js";
9
9
  export const CACHE_SCHEMA_VERSION = 4;
10
- export const EXTRACTION_VERSION = 5;
11
- export const PROMPT_VERSION = 7;
10
+ export const EXTRACTION_VERSION = 6;
11
+ export const PROMPT_VERSION = 8;
12
12
  const defaultRoot = process.platform === "darwin"
13
13
  ? path.join(homedir(), "Library", "Caches", "figjam-context-mcp")
14
14
  : process.platform === "win32"
@@ -0,0 +1,14 @@
1
+ import type { BoardData } from "../types.js";
2
+ export declare const REDACTED = "[redacted]";
3
+ export declare function isCredentialRedactionEnabled(): boolean;
4
+ /**
5
+ * Replaces explicit credentials with "[redacted]": labelled values up to the end of
6
+ * the line and well-known key formats anywhere. Idempotent; mentions without a value stay.
7
+ */
8
+ export declare function redactCredentials(text: string): string;
9
+ /**
10
+ * Redacted view of a stored board, so snapshots cached before redaction existed
11
+ * never reach a prompt or tool output unredacted. Memoized per board object so
12
+ * evidence indexes stay cached.
13
+ */
14
+ export declare function redactBoard(board: BoardData): BoardData;
@@ -0,0 +1,62 @@
1
+ import { readBoolEnv } from "./env.js";
2
+ export const REDACTED = "[redacted]";
3
+ // A bare "token" or "secret" label is left alone: on design boards "Token:" usually names a design token.
4
+ const LABELS = String.raw `pass(?:wor[dt]|code)|kennwort|pwd?|pin|api[\s_-]?(?:key|token)|(?:access|auth|bearer)[\s_-]?token|client[\s_-]?secret|(?:secret|access|private)[\s_-]?key`;
5
+ const LABELED_VALUE = new RegExp(String.raw `(?<![\p{L}\p{N}_])((?:${LABELS})[^\S\r\n]*[:=][^\S\r\n]*)(?=\S)[^\r\n]*`, "giu");
6
+ const PRIVATE_KEY_BLOCK = /-----BEGIN (?:[A-Z0-9]+ )*PRIVATE KEY-----[\s\S]*?(?:-----END (?:[A-Z0-9]+ )*PRIVATE KEY-----|$)/gi;
7
+ const KEY_FORMATS = [
8
+ /(?<![A-Za-z0-9_])(?:gh[pous]_[A-Za-z0-9]{16,}|github_pat_[A-Za-z0-9_]{16,})/g,
9
+ /(?<![A-Za-z0-9_-])sk-(?=[A-Za-z0-9_-]*\d)[A-Za-z0-9_-]{16,}/g,
10
+ /(?<![A-Za-z0-9_])figd_[A-Za-z0-9_-]{16,}/g,
11
+ /(?<![A-Za-z0-9])AKIA[0-9A-Z]{16}(?![A-Za-z0-9])/g,
12
+ /(?<![A-Za-z0-9_])xox[abprs]-[A-Za-z0-9-]{10,}/g,
13
+ ];
14
+ const redactedBoards = new WeakMap();
15
+ export function isCredentialRedactionEnabled() {
16
+ return readBoolEnv("FIGJAM_MCP_REDACT_CREDENTIALS", true);
17
+ }
18
+ /**
19
+ * Replaces explicit credentials with "[redacted]": labelled values up to the end of
20
+ * the line and well-known key formats anywhere. Idempotent; mentions without a value stay.
21
+ */
22
+ export function redactCredentials(text) {
23
+ if (!text || !isCredentialRedactionEnabled())
24
+ return text;
25
+ let result = text.replace(PRIVATE_KEY_BLOCK, REDACTED);
26
+ for (const pattern of KEY_FORMATS)
27
+ result = result.replace(pattern, REDACTED);
28
+ return result.replace(LABELED_VALUE, `$1${REDACTED}`);
29
+ }
30
+ /**
31
+ * Redacted view of a stored board, so snapshots cached before redaction existed
32
+ * never reach a prompt or tool output unredacted. Memoized per board object so
33
+ * evidence indexes stay cached.
34
+ */
35
+ export function redactBoard(board) {
36
+ if (!isCredentialRedactionEnabled())
37
+ return board;
38
+ const existing = redactedBoards.get(board);
39
+ if (existing)
40
+ return existing;
41
+ const redacted = {
42
+ ...board,
43
+ nodes: board.nodes.map((node) => ({
44
+ ...node,
45
+ name: redactCredentials(node.name),
46
+ ...(node.text === undefined ? {} : { text: redactCredentials(node.text) }),
47
+ ...(node.table ? { table: { cells: node.table.cells.map((cell) => ({ ...cell, text: redactCredentials(cell.text) })) } } : {}),
48
+ })),
49
+ clusters: board.clusters.map((cluster) => ({
50
+ ...cluster, label: redactCredentials(cluster.label), summary: redactCredentials(cluster.summary),
51
+ })),
52
+ connectorEdges: board.connectorEdges?.map((edge) => ({
53
+ ...edge, ...(edge.label === undefined ? {} : { label: redactCredentials(edge.label) }),
54
+ })),
55
+ clusterRelations: board.clusterRelations?.map((relation) => ({
56
+ ...relation, labels: relation.labels.map(redactCredentials),
57
+ })),
58
+ };
59
+ redactedBoards.set(board, redacted);
60
+ return redacted;
61
+ }
62
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/lib/redact.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { getVisionRequestTimeoutMs } from "./llmTimeouts.js";
2
2
  import { chatJson, getVisionModels, LlmInvalidJsonError } from "./llmClient.js";
3
3
  import { VISION_MAX_OUTPUT_TOKENS } from "./llmOutputBudgets.js";
4
+ import { redactCredentials } from "./redact.js";
4
5
  /**
5
6
  * Hard prompt bounds for one cluster. These are intentionally fixed safety
6
7
  * limits: provider configuration may tune the reply budget, but board content
@@ -47,6 +48,7 @@ export async function refineClusterWithVision(cluster, screenshots, clusterNodes
47
48
  jsonSchema: VISION_REPLY_SCHEMA,
48
49
  maxOutputTokens: VISION_MAX_OUTPUT_TOKENS,
49
50
  requestTimeoutMs: getVisionRequestTimeoutMs(),
51
+ timeoutSetting: "LLM_VISION_REQUEST_TIMEOUT_MS",
50
52
  signal,
51
53
  onModelUsed: (model) => {
52
54
  modelId = model;
@@ -75,6 +77,7 @@ function buildPrompt(clusterNodes) {
75
77
  "3. Write a compact summary of the group in 3-5 sentences. If elements contain images/screenshots, describe their visible content in 1-2 of those sentences. Use concise quotations of visible wording when its status or meaning could otherwise change. Use remaining sentences for other observations or relevant evidence limits, never speculative filler.",
76
78
  "Use the extracted original text as the primary source; images add visible evidence. Preserve amounts, units, negation, and whether an item is a question, proposal, open task, or confirmed decision. Report a label or stated figure as such, without promoting it to an established real-world state. A budget figure alone does not establish that funds are available, approved, allocated, sufficient, or spent. Apply the same rule to dates, capacity figures, and task labels: a stated value alone does not prove scheduling, availability, or completion.",
77
79
  "An unconfirmed item proves neither completion nor non-completion; retain uncertainty and any conflicting evidence. Only make a positive or negative status claim when the source explicitly supports that status. If a relevant status is absent, say that the supplied evidence does not establish it.",
80
+ "For tables and statistical notation, preserve visible values, units, column alignment, brackets, and parentheses. Name a statistic (such as median, mean, confidence interval, quartile, standard deviation, standard error, or sample size) only when an explicit legend or source label identifies it. Punctuation and familiar notation alone do not establish those meanings. If the meaning is unlabelled, quote the notation and leave its interpretation open; if a legend is present, apply it accurately. Never infer significance, equivalence, or causality from descriptive values alone.",
78
81
  "For diagrams, preserve visible arrow directions and explicitly distinguish separate, unconnected elements. Visible positions, colors, and shapes can be described directly. Describe only visible content and supplied connections; do not infer unstated priority, status, purpose, causality, or missing links from labels or proximity. Thematic grouping is not evidence of a workflow, dependency, funding link, or decision. Do not add a concluding synthesis that connects otherwise unconnected items.",
79
82
  "Before replying, check every status and relationship in both label and summary against the supplied evidence. Remove unsupported claims instead of softening them with uncertainty words. confirmedNodeIds can contain only the exact listed IDs; shapes or labels inside an image are not additional node IDs.",
80
83
  "",
@@ -166,8 +169,9 @@ function compareStrings(left, right) {
166
169
  /** Validates the model's JSON reply and merges it into a RefinedCluster. */
167
170
  function applyReply(cluster, reply, listedNodeIds) {
168
171
  const parsed = reply;
169
- const label = typeof parsed?.label === "string" ? parsed.label.trim() : "";
170
- const summary = typeof parsed?.summary === "string" ? parsed.summary.trim() : "";
172
+ // Screenshots are not redacted; keep credentials a model read from them out of the cache.
173
+ const label = typeof parsed?.label === "string" ? redactCredentials(parsed.label.trim()) : "";
174
+ const summary = typeof parsed?.summary === "string" ? redactCredentials(parsed.summary.trim()) : "";
171
175
  if (!label || !summary) {
172
176
  throw new LlmInvalidJsonError(`Vision model reply for ${cluster.id} is missing "label" or "summary"`, "");
173
177
  }