@carbonstopper/agent-mcp 0.1.13 → 0.1.15

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 CHANGED
@@ -174,25 +174,37 @@ For local debugging against a non-default gateway, add:
174
174
 
175
175
  ## Available Tools
176
176
 
177
- Only product carbon modeling and report tools are exposed to the Agent in this release.
177
+ Only Agent-facing modeling, report generation/detail, factor search, and unit dictionary tools are exposed in this release.
178
178
 
179
179
  | Tool | Description |
180
180
  | --- | --- |
181
- | `modeling_execute` | Create a new product carbon AI model. Requires `idempotencyKey` and `input.content`. |
182
181
  | `modeling_re_modeling` | Re-run product carbon AI modeling for an existing account. Requires `accountId` and `idempotencyKey`. |
183
182
  | `modeling_update` | Supplement or update emission sources for an existing model. Requires `accountId`, `idempotencyKey`, and `input.content`. |
184
183
  | `modeling_detail` | Get product carbon model details. |
184
+ | `modeling_execute_structured` | Create a new product carbon model from structured product, emission source, transport, and factor data. Requires `idempotencyKey`, `productName`, `unitName`, and `emissionSources`. |
185
+ | `factor_search` | Search CCDB factors through the Agent factor endpoint. Supports one keyword per call. |
186
+ | `unit_list` | Get the Agent unit dictionary for structured modeling. |
185
187
  | `report_generate` | Generate a product carbon report. Requires `accountId` and `idempotencyKey`. |
186
188
  | `report_regenerate` | Regenerate an existing product carbon report. Requires `reportId` and `idempotencyKey`. |
187
189
  | `report_detail` | Get product carbon report detail and latest report URL. |
188
190
 
191
+ Temporarily hidden tools:
192
+
193
+ | Tool | Reason |
194
+ | --- | --- |
195
+ | `modeling_execute` | Hidden so Agent prefers the structured modeling API for new model creation. |
196
+ | `workspace_authorize_file` | Sandbox workspace file APIs are kept internal until the Agent file flow is enabled. |
197
+ | `workspace_file_download_url` | Sandbox workspace file APIs are kept internal until the Agent file flow is enabled. |
198
+ | `workspace_upload_artifact` | Sandbox workspace file APIs are kept internal until the Agent file flow is enabled. |
199
+
189
200
  ### Modeling Tool Selection
190
201
 
191
202
  Use the product carbon modeling tools as follows:
192
203
 
193
- - `modeling_execute`: create a new model from `input.content`.
194
204
  - `modeling_re_modeling`: re-run the whole model for an existing `accountId`.
195
205
  - `modeling_update`: supplement or adjust emission sources for an existing `accountId`.
206
+ - `modeling_execute_structured`: create a new model only after the Agent has extracted structured product data, emission sources, transport legs, and factor selections. Attach routine material or packaging transport to the parent emission source's `transport[]`; do not create a separate transport source unless the user explicitly asks for a standalone logistics activity.
207
+ - `unit_list`: query available units before `modeling_execute_structured`, then use returned `dictLabel` values as `unitName`.
196
208
 
197
209
  ## Tool Request Shape
198
210
 
@@ -269,6 +281,119 @@ Write tools accept optional trace fields:
269
281
  }
270
282
  ```
271
283
 
284
+ ### `modeling_execute_structured`
285
+
286
+ ```json
287
+ {
288
+ "sessionId": "agent_xxx",
289
+ "messageId": "msg_xxx",
290
+ "traceId": "langgraph_run_xxx",
291
+ "taskId": "structured_modeling_node",
292
+ "idempotencyKey": "agent_xxx_structured_modeling_v1",
293
+ "productName": "Wireless mouse",
294
+ "productDesc": "80 g wireless mouse",
295
+ "amount": "1",
296
+ "unitName": "piece",
297
+ "scope": 1,
298
+ "scopeValue": "0,1,2,3,4",
299
+ "emissionSources": [
300
+ {
301
+ "clientSourceId": "src_plastic",
302
+ "name": "ABS plastic",
303
+ "stage": "MATERIAL",
304
+ "type": "1",
305
+ "amount": "50",
306
+ "unitName": "g",
307
+ "rate": "0.001",
308
+ "factor": {
309
+ "sourceType": "library",
310
+ "factorId": 123456,
311
+ "reason": "Best match for ABS plastic"
312
+ },
313
+ "transport": [
314
+ {
315
+ "name": "ABS supplier to factory road transport",
316
+ "transportType": "1",
317
+ "way": "1",
318
+ "amount": "50",
319
+ "unitName": "g",
320
+ "rate": "0.000001",
321
+ "distance": "300",
322
+ "distUnitName": "公里",
323
+ "factor": {
324
+ "sourceType": "library",
325
+ "factorId": 234567,
326
+ "reason": "Best match for road freight"
327
+ }
328
+ }
329
+ ]
330
+ }
331
+ ]
332
+ }
333
+ ```
334
+
335
+ For custom factors, use `sourceType: "custom"` and provide `name`, `factor`, `unit`, `institution`, and `year`.
336
+
337
+ Before calling `modeling_execute_structured`, the Agent should use the unit lookup/conversion API to normalize every `unitName` and, when needed, fill `rate`.
338
+
339
+ Unit rules:
340
+
341
+ - Account `unitName` and emission source `unitName` can use the full unit dictionary returned by unit lookup.
342
+ - Transport `unitName` should use only mass units such as `kg`, `g`, or `t`.
343
+ - Transport distance unit is kilometer; omit `distUnitName` or use `公里`.
344
+ - `rate` is the conversion ratio from the activity unit to the selected factor denominator unit. For transport, it is the ratio from activity mass unit plus kilometer to the transport factor denominator unit. Omit `rate` when the Agent is not sure; the backend can infer or validate the conversion.
345
+
346
+ Transport modeling rules:
347
+
348
+ - For raw materials, auxiliary materials, packaging materials, recycled materials, and other transported inputs, put supplier-to-factory or inbound transport in that source's `transport[]`.
349
+ - Do not create a separate `type: "7"` emission source for routine inbound transport that belongs to a specific material or packaging source.
350
+ - Create a standalone `type: "7"` transport emission source only when the user explicitly asks to model an independent transport/logistics activity that cannot be attributed to one specific source.
351
+ - Example: ABS plastic and its supplier-to-factory road freight should be one emission source with `type: "1"` and a nested `transport[]`, not two separate sources.
352
+ - Good: `ABS plastic` uses `type: "1"` and contains `transport[]` for supplier-to-factory freight.
353
+ - Bad: one `ABS plastic` source plus a separate `Domestic road transport` source with `type: "7"` for the same inbound freight.
354
+
355
+ Structured dictionary values:
356
+
357
+ - `stage`: `MATERIAL` raw material acquisition / 原材料获取, `PRODUCT` production manufacturing / 生产制造, `DISTRIBUTION` distribution and storage or transport / 分销和储存, `USE` product use / 产品使用, `WASTE_DISPOSAL` end-of-life disposal / 废弃处置. Backend lifecycle codes are also accepted: `0` raw material acquisition, `1` production manufacturing, `2` distribution and storage, `3` product use, `4` end-of-life disposal.
358
+ - `type`: emission source type code. Use backend dictionary codes: `1` main material / 主料, `2` auxiliary material / 辅料, `3` packaging material / 包装材料, `4` recycled material / 再生材料, `5` energy consumption / 能耗, `6` water consumption / 水耗, `7` transport / 运输, `21` waste gas / 废气, `22` wastewater / 废水, `23` solid waste / 固体废弃物, `24` renewable waste / 可再生废料, `41` other / 其他. Use `7` only for standalone transport/logistics activities; routine material or packaging transport should stay under the parent source's `transport[]`.
359
+ - `factor.sourceType`: `library` for a CCDB factor selected from `factor_search`; `custom` for a user-provided or Agent-provided custom factor.
360
+ - `transport.transportType`: transport mode code. Use backend enum codes: `1` road transport / 道路运输, `2` railway transport / 铁路运输, `3` air transport / 航空运输, `4` water transport / 水路运输.
361
+ - `transport.way`: transport calculation method code. Use backend enum codes: `1` WEIGHT / 按里程-产品重量, `2` WEIGHT_RATE / 按里程-载重比, `3` ENERGY / 按能耗.
362
+
363
+ ### `factor_search`
364
+
365
+ ```json
366
+ {
367
+ "sessionId": "agent_xxx",
368
+ "messageId": "msg_xxx",
369
+ "traceId": "langgraph_run_xxx",
370
+ "taskId": "factor_search_node",
371
+ "name": "ABS plastic",
372
+ "lang": "zh"
373
+ }
374
+ ```
375
+
376
+ The backend accepts one `name` per request. For better matching, the Agent should call `factor_search` multiple times with Chinese keywords, English keywords, material synonyms, process names, and product category terms, then compare returned rows. When a returned row contains `id`, use that `id` as `modeling_execute_structured.emissionSources[].factor.factorId`.
377
+
378
+ ### `unit_list`
379
+
380
+ ```json
381
+ {
382
+ "sessionId": "agent_xxx"
383
+ }
384
+ ```
385
+
386
+ The backend returns the unit dictionary in `factorUnitM`.
387
+
388
+ Important fields:
389
+
390
+ - `dictLabel`: unit display name. Use this value as `unitName` in `modeling_execute_structured`.
391
+ - `dictValue`: unit code.
392
+ - `id`: unit dictionary id.
393
+ - `sourceName`: unit category, such as mass, energy, volume, quantity, or distance.
394
+
395
+ Before calling `modeling_execute_structured`, the Agent should call `unit_list` and choose valid units from the returned dictionary. Emission source units can use the full dictionary. Transport activity `unitName` should use mass units only; transport distance remains kilometer.
396
+
272
397
  ### `report_generate`
273
398
 
274
399
  ```json
@@ -314,6 +439,45 @@ Write tools accept optional trace fields:
314
439
  }
315
440
  ```
316
441
 
442
+ ### `workspace_authorize_file`
443
+
444
+ ```json
445
+ {
446
+ "sessionId": "agent_xxx",
447
+ "messageId": "msg_xxx",
448
+ "runId": "sandbox_run_xxx",
449
+ "fileId": "file_xxx"
450
+ }
451
+ ```
452
+
453
+ ### `workspace_file_download_url`
454
+
455
+ ```json
456
+ {
457
+ "sessionId": "agent_xxx",
458
+ "messageId": "msg_xxx",
459
+ "runId": "sandbox_run_xxx",
460
+ "fileId": "file_xxx"
461
+ }
462
+ ```
463
+
464
+ ### `workspace_upload_artifact`
465
+
466
+ ```json
467
+ {
468
+ "sessionId": "agent_xxx",
469
+ "messageId": "msg_xxx",
470
+ "runId": "sandbox_run_xxx",
471
+ "filePath": "/tmp/agent/report.xlsx",
472
+ "sourcePath": "/tmp/agent/report.xlsx",
473
+ "filename": "report.xlsx",
474
+ "mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
475
+ "sha256": "optional_checksum"
476
+ }
477
+ ```
478
+
479
+ `filePath` must be readable by the MCP runtime. The MCP server reads that local file and sends it to the Java API as the multipart `file` field together with `sessionId`, `messageId`, `runId`, `sourcePath`, `filename`, `mime`, and `sha256`.
480
+
317
481
  ID fields such as `accountId` and `reportId` accept either numbers or numeric strings. Safe numeric strings are normalized before forwarding to the Agent internal API; very large numeric strings are preserved to avoid JavaScript precision loss.
318
482
 
319
483
  Modeling option codes:
@@ -338,6 +502,21 @@ Product carbon skill APIs are called through the `footprint3` gateway prefix:
338
502
  /footprint3/agent/internal/skills/**
339
503
  ```
340
504
 
505
+ Workspace sandbox APIs are called through the `ai` gateway prefix:
506
+
507
+ ```text
508
+ /ai/agent/internal/workspace/files/{fileId}/authorize
509
+ /ai/agent/internal/workspace/files/{fileId}/downloadUrl
510
+ /ai/agent/internal/workspace/artifacts/upload
511
+ ```
512
+
513
+ Agent website support APIs are called through the `management` gateway prefix:
514
+
515
+ ```text
516
+ /management/system/website/queryFactorListAgent
517
+ /management/system/website/queryUnitListAgent
518
+ ```
519
+
341
520
  ## Release Build
342
521
 
343
522
  `RELEASE_BASE_URL_ENCODED` is a repository secret used by the GitHub Actions build to inject the default gateway base URL. It is not required in MCP client config.
package/dist/apipath.d.ts CHANGED
@@ -2,8 +2,12 @@ export declare const SessionContext: () => string;
2
2
  export declare const ProjectMemoryGet: () => string;
3
3
  export declare const ProjectMemoryPatch: () => string;
4
4
  export declare const ProjectMemoryCompress: () => string;
5
+ export declare const WorkspaceAuthorizeFile: (fileId: string) => string;
6
+ export declare const WorkspaceFileDownloadUrl: (fileId: string) => string;
7
+ export declare const WorkspaceUploadArtifact: () => string;
5
8
  export declare const ModelingPreview: () => string;
6
9
  export declare const ModelingExecute: () => string;
10
+ export declare const ModelingExecuteStructured: () => string;
7
11
  export declare const ModelingReModeling: () => string;
8
12
  export declare const ModelingUpdate: () => string;
9
13
  export declare const ModelingDetail: () => string;
@@ -12,3 +16,5 @@ export declare const ReportDetail: () => string;
12
16
  export declare const AnalysisRun: () => string;
13
17
  export declare const FactorSearch: () => string;
14
18
  export declare const KnowledgeSearch: () => string;
19
+ export declare const QueryFactorListAgent: () => string;
20
+ export declare const QueryUnitListAgent: () => string;
package/dist/apipath.js CHANGED
@@ -1,11 +1,16 @@
1
1
  const aiPrefix = "/ai";
2
2
  const footprint3Prefix = "/footprint3";
3
+ const managementPrefix = "/management";
3
4
  export const SessionContext = () => `${aiPrefix}/agent/internal/platform/sessionContext`;
4
5
  export const ProjectMemoryGet = () => `${aiPrefix}/agent/internal/platform/project-memory/get`;
5
6
  export const ProjectMemoryPatch = () => `${aiPrefix}/agent/internal/platform/project-memory/patch`;
6
7
  export const ProjectMemoryCompress = () => `${aiPrefix}/agent/internal/platform/project-memory/compress`;
8
+ export const WorkspaceAuthorizeFile = (fileId) => `${aiPrefix}/agent/internal/workspace/files/${encodeURIComponent(fileId)}/authorize`;
9
+ export const WorkspaceFileDownloadUrl = (fileId) => `${aiPrefix}/agent/internal/workspace/files/${encodeURIComponent(fileId)}/downloadUrl`;
10
+ export const WorkspaceUploadArtifact = () => `${aiPrefix}/agent/internal/workspace/artifacts/upload`;
7
11
  export const ModelingPreview = () => `${footprint3Prefix}/agent/internal/skills/modeling/preview`;
8
12
  export const ModelingExecute = () => `${footprint3Prefix}/agent/internal/skills/modeling/execute`;
13
+ export const ModelingExecuteStructured = () => `${footprint3Prefix}/agent/internal/skills/modeling/executeStructured`;
9
14
  export const ModelingReModeling = () => `${footprint3Prefix}/agent/internal/skills/modeling/reModeling`;
10
15
  export const ModelingUpdate = () => `${footprint3Prefix}/agent/internal/skills/modeling/update`;
11
16
  export const ModelingDetail = () => `${footprint3Prefix}/agent/internal/skills/modeling/detail`;
@@ -14,4 +19,6 @@ export const ReportDetail = () => `${footprint3Prefix}/agent/internal/skills/rep
14
19
  export const AnalysisRun = () => `${footprint3Prefix}/agent/internal/skills/analysis/run`;
15
20
  export const FactorSearch = () => `${footprint3Prefix}/agent/internal/skills/factor/search`;
16
21
  export const KnowledgeSearch = () => `${footprint3Prefix}/agent/internal/skills/knowledge/search`;
22
+ export const QueryFactorListAgent = () => `${managementPrefix}/system/website/queryFactorListAgent`;
23
+ export const QueryUnitListAgent = () => `${managementPrefix}/system/website/queryUnitListAgent`;
17
24
  //# sourceMappingURL=apipath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apipath.js","sourceRoot":"","sources":["../src/apipath.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,yCAAyC,CAAC;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,6CAA6C,CAAC;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,+CAA+C,CAAC;AACnG,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,kDAAkD,CAAC;AAEzG,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC;AAClG,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC;AAClG,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,4CAA4C,CAAC;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,sCAAsC,CAAC;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,qCAAqC,CAAC;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,sCAAsC,CAAC;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC"}
1
+ {"version":3,"file":"apipath.js","sourceRoot":"","sources":["../src/apipath.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,gBAAgB,GAAG,aAAa,CAAC;AACvC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,yCAAyC,CAAC;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,6CAA6C,CAAC;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,+CAA+C,CAAC;AACnG,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,kDAAkD,CAAC;AACzG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,QAAQ,mCAAmC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC/I,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,QAAQ,mCAAmC,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC;AACnJ,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,4CAA4C,CAAC;AAErG,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC;AAClG,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC;AAClG,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,mDAAmD,CAAC;AACtH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,4CAA4C,CAAC;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,wCAAwC,CAAC;AAChG,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,sCAAsC,CAAC;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,qCAAqC,CAAC;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,sCAAsC,CAAC;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,yCAAyC,CAAC;AAClG,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,sCAAsC,CAAC;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,gBAAgB,oCAAoC,CAAC"}
package/dist/client.d.ts CHANGED
@@ -11,4 +11,8 @@ export declare class Client {
11
11
  status: number;
12
12
  body: string;
13
13
  }>;
14
+ postMultipart(path: string, sessionId: string, filePath: string, fields: Record<string, unknown>): Promise<{
15
+ status: number;
16
+ body: string;
17
+ }>;
14
18
  }
package/dist/client.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { errorMessage, log, summarizeResponseBody } from "./logger.js";
2
2
  import { Version } from "./version.js";
3
+ import { readFile } from "node:fs/promises";
4
+ import { basename } from "node:path";
3
5
  const userAgent = `carbonstop-agent-mcp/${Version}`;
4
6
  const maxRetries = 3;
5
7
  const baseBackoff = 1000;
@@ -8,7 +10,7 @@ export class Client {
8
10
  constructor(config) {
9
11
  this.config = config;
10
12
  }
11
- async request(method, path, sessionId, body, query) {
13
+ async request(method, path, sessionId, body, query, contentType) {
12
14
  if (!path.startsWith("/"))
13
15
  path = "/" + path;
14
16
  const u = new URL(this.config.baseURL + path);
@@ -40,8 +42,8 @@ export class Client {
40
42
  Accept: "application/json",
41
43
  "User-Agent": userAgent,
42
44
  };
43
- if (body) {
44
- headers["Content-Type"] = "application/json;charset=utf-8";
45
+ if (body && contentType) {
46
+ headers["Content-Type"] = contentType;
45
47
  }
46
48
  const resp = await fetch(u.toString(), {
47
49
  method,
@@ -107,7 +109,29 @@ export class Client {
107
109
  return this.request("GET", path, sessionId, undefined, query);
108
110
  }
109
111
  async post(path, sessionId, jsonBody) {
110
- return this.request("POST", path, sessionId, JSON.stringify(jsonBody));
112
+ return this.request("POST", path, sessionId, JSON.stringify(jsonBody), undefined, "application/json;charset=utf-8");
113
+ }
114
+ async postMultipart(path, sessionId, filePath, fields) {
115
+ const filename = typeof fields.filename === "string" && fields.filename.trim()
116
+ ? fields.filename
117
+ : basename(filePath);
118
+ const mime = typeof fields.mime === "string" && fields.mime.trim()
119
+ ? fields.mime
120
+ : "application/octet-stream";
121
+ const bytes = await readFile(filePath);
122
+ const form = new FormData();
123
+ form.append("file", new Blob([new Uint8Array(bytes)], { type: mime }), filename);
124
+ for (const [key, value] of Object.entries(fields)) {
125
+ if (key === "filePath" || value === undefined || value === null)
126
+ continue;
127
+ if (typeof value === "object") {
128
+ form.append(key, JSON.stringify(value));
129
+ }
130
+ else {
131
+ form.append(key, String(value));
132
+ }
133
+ }
134
+ return this.request("POST", path, sessionId, form);
111
135
  }
112
136
  }
113
137
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/logger.js CHANGED
@@ -49,10 +49,41 @@ export function summarizeArgs(args) {
49
49
  messageId: args.messageId,
50
50
  traceId: args.traceId,
51
51
  taskId: args.taskId,
52
+ runId: args.runId,
52
53
  accountId: args.accountId,
53
54
  reportId: args.reportId,
55
+ fileId: args.fileId,
56
+ filename: args.filename,
57
+ sourcePath: args.sourcePath,
54
58
  idempotencyKeyPresent: typeof args.idempotencyKey === "string" && args.idempotencyKey.length > 0,
55
59
  });
60
+ if (typeof args.name === "string") {
61
+ summary.searchKeywordCount = 1;
62
+ if (shouldLogBody())
63
+ summary.searchKeywordPreview = truncateText(args.name);
64
+ }
65
+ else if (Array.isArray(args.name)) {
66
+ summary.searchKeywordCount = args.name.length;
67
+ }
68
+ if (typeof args.productName === "string") {
69
+ summary.productNameLength = args.productName.length;
70
+ if (shouldLogBody())
71
+ summary.productNamePreview = truncateText(args.productName);
72
+ }
73
+ if (typeof args.unitName === "string") {
74
+ summary.unitName = args.unitName;
75
+ }
76
+ if (typeof args.amount === "string") {
77
+ summary.amount = args.amount;
78
+ }
79
+ for (const key of ["scope", "scopeValue"]) {
80
+ if (args[key] !== undefined)
81
+ summary[key] = args[key];
82
+ }
83
+ if (Array.isArray(args.emissionSources)) {
84
+ summary.emissionSourceCount = args.emissionSources.length;
85
+ Object.assign(summary, summarizeEmissionSources(args.emissionSources));
86
+ }
56
87
  if (input) {
57
88
  summary.inputKeys = Object.keys(input);
58
89
  if (typeof input.content === "string") {
@@ -106,4 +137,60 @@ function pickDefined(value) {
106
137
  function isRecord(value) {
107
138
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
108
139
  }
140
+ function summarizeEmissionSources(value) {
141
+ const stages = new Set();
142
+ const types = new Set();
143
+ const unitNames = new Set();
144
+ let transportSegmentCount = 0;
145
+ let libraryFactorCount = 0;
146
+ let customFactorCount = 0;
147
+ let factorIdCount = 0;
148
+ for (const item of value) {
149
+ if (!isRecord(item))
150
+ continue;
151
+ addString(stages, item.stage);
152
+ addString(types, item.type);
153
+ addString(unitNames, item.unitName);
154
+ countFactor(item.factor);
155
+ if (Array.isArray(item.transport)) {
156
+ transportSegmentCount += item.transport.length;
157
+ for (const transport of item.transport) {
158
+ if (!isRecord(transport))
159
+ continue;
160
+ addString(unitNames, transport.unitName);
161
+ countFactor(transport.factor);
162
+ }
163
+ }
164
+ }
165
+ return pickDefined({
166
+ lifecycleStages: compactList(stages),
167
+ emissionTypes: compactList(types),
168
+ unitNames: compactList(unitNames),
169
+ transportSegmentCount,
170
+ libraryFactorCount,
171
+ customFactorCount,
172
+ factorIdCount,
173
+ });
174
+ function countFactor(factor) {
175
+ if (!isRecord(factor))
176
+ return;
177
+ if (factor.sourceType === "library")
178
+ libraryFactorCount++;
179
+ if (factor.sourceType === "custom")
180
+ customFactorCount++;
181
+ if (factor.factorId !== undefined && factor.factorId !== null)
182
+ factorIdCount++;
183
+ }
184
+ }
185
+ function addString(values, value) {
186
+ if (typeof value === "string" && value.trim()) {
187
+ values.add(value.trim());
188
+ }
189
+ }
190
+ function compactList(values) {
191
+ const list = Array.from(values);
192
+ if (list.length === 0)
193
+ return undefined;
194
+ return list.slice(0, 10);
195
+ }
109
196
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,YAAY,GAA6B;IAC7C,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,OAAO,GAAG,sBAAsB,CAAC;AACvC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAkC,EAAE,KAAa,EAAE,SAAkC,EAAE;IACzG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO,EAAE,OAAO;QAChB,GAAG,MAAM;KACV,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAS,GAAG,gBAAgB;IACtE,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA6B;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,OAAO,GAA4B,WAAW,CAAC;QACnD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,qBAAqB,EAAE,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;KACjG,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,IAAI,aAAa,EAAE;gBAAE,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,IAAI,aAAa,EAAE;gBAAE,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,cAAc,GAAG,KAAK;IACxE,MAAM,OAAO,GAA4B,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,cAAc,IAAI,aAAa,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;YAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACnE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B;IACjD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IAChF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { Client } from "./client.js";
3
3
  import { errorMessage, log, summarizeArgs, summarizeResponseBody } from "./logger.js";
4
- import { schemas, descriptions, toolRoutes, buildBody, getSessionId } from "./tools.js";
4
+ import { schemas, descriptions, exposedToolNames, toolRoutes, buildBody, getSessionId, resolveRoutePath, buildFactorSearchBody, } from "./tools.js";
5
5
  import { Version } from "./version.js";
6
6
  export function assertConfig(config) {
7
7
  if (!config.baseURL) {
@@ -23,7 +23,8 @@ export function createAgentMcpServer(config) {
23
23
  version: Version,
24
24
  });
25
25
  const client = new Client(config);
26
- for (const [name, schema] of Object.entries(schemas)) {
26
+ for (const name of exposedToolNames) {
27
+ const schema = schemas[name];
27
28
  if (!schema)
28
29
  continue;
29
30
  server.registerTool(name, {
@@ -42,23 +43,38 @@ export function createAgentMcpServer(config) {
42
43
  }
43
44
  try {
44
45
  const sessionId = getSessionId(args);
46
+ const path = resolveRoutePath(route, args);
45
47
  const body = buildBody(route, args);
46
48
  const argsSummary = summarizeArgs(body);
47
49
  log("info", "tool_call_start", {
48
50
  tool: name,
49
- path: route.path,
51
+ path,
50
52
  sessionId,
51
53
  messageId: args.messageId,
52
54
  traceId: args.traceId,
53
55
  taskId: args.taskId,
54
56
  argsSummary,
55
57
  });
56
- const result = await client.post(route.path, sessionId, body);
58
+ let result;
59
+ if (route.bodyKind === "factorSearch") {
60
+ result = await client.post(path, sessionId, buildFactorSearchBody(args));
61
+ }
62
+ else if (route.bodyKind === "multipartArtifact") {
63
+ const uploadBody = body;
64
+ const filePath = uploadBody.filePath;
65
+ if (typeof filePath !== "string" || !filePath.trim()) {
66
+ throw new Error("filePath is required");
67
+ }
68
+ result = await client.postMultipart(path, sessionId, filePath, uploadBody);
69
+ }
70
+ else {
71
+ result = await client.post(path, sessionId, body);
72
+ }
57
73
  const durationMs = Date.now() - startedAt;
58
74
  if (result.status < 200 || result.status >= 300) {
59
75
  log("warn", "tool_call_backend_error", {
60
76
  tool: name,
61
- path: route.path,
77
+ path,
62
78
  sessionId,
63
79
  messageId: args.messageId,
64
80
  traceId: args.traceId,
@@ -71,7 +87,7 @@ export function createAgentMcpServer(config) {
71
87
  }
72
88
  log("info", "tool_call_success", {
73
89
  tool: name,
74
- path: route.path,
90
+ path,
75
91
  sessionId,
76
92
  messageId: args.messageId,
77
93
  traceId: args.traceId,
@@ -90,7 +106,7 @@ export function createAgentMcpServer(config) {
90
106
  catch (err) {
91
107
  log("error", "tool_call_error", {
92
108
  tool: name,
93
- path: route.path,
109
+ path: route ? resolveRoutePath(route, args || {}) : undefined,
94
110
  durationMs: Date.now() - startedAt,
95
111
  argsSummary: summarizeArgs(args || {}),
96
112
  error: errorMessage(err),
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,MAAM,CAAC,YAAY,CACjB,IAAI,EACJ;YACE,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;YACrC,WAAW,EAAE,MAAM;SACpB,EACD,KAAK,EAAE,IAAS,EAAE,EAAE;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE;oBAC9B,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,cAAc;oBACrB,WAAW,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM,WAAW,GAAG,aAAa,CAAC,IAA+B,CAAC,CAAC;gBAEnE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE;oBAC7B,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,SAAS;oBACT,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,WAAW;iBACZ,CAAC,CAAC;gBAEH,IAAI,MAAwC,CAAC;gBAC7C,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;oBACtC,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3E,CAAC;qBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;oBAClD,MAAM,UAAU,GAAG,IAA+B,CAAC;oBACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;oBACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;wBACrD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAE1C,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChD,GAAG,CAAC,MAAM,EAAE,yBAAyB,EAAE;wBACrC,IAAI,EAAE,IAAI;wBACV,IAAI;wBACJ,SAAS;wBACT,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,UAAU;wBACV,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;qBAC5C,CAAC,CAAC;oBACH,OAAO,YAAY,CAAC,QAAQ,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBAED,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE;oBAC/B,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,SAAS;oBACT,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,UAAU;iBACX,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACvC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE;oBAC9B,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,WAAW,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;iBACzB,CAAC,CAAC;gBACH,OAAO,YAAY,CACjB,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,12 +1,24 @@
1
1
  import { z } from "zod";
2
2
  export declare const schemas: Record<string, z.ZodObject<any> | undefined>;
3
+ export declare const exposedToolNames: readonly ["modeling_re_modeling", "modeling_update", "modeling_detail", "modeling_execute_structured", "report_generate", "report_regenerate", "report_detail", "factor_search", "unit_list"];
3
4
  export declare const descriptions: Record<string, string>;
4
- export type BodyKind = "agentSkill" | "sessionContext";
5
+ export type BodyKind = "agentSkill" | "sessionContext" | "workspaceFile" | "multipartArtifact" | "factorSearch";
6
+ export type RoutePath = string | ((args: Record<string, unknown>) => string);
5
7
  export interface ToolRoute {
6
8
  method: "POST";
7
- path: string;
9
+ path: RoutePath;
8
10
  bodyKind: BodyKind;
9
11
  }
10
12
  export declare const toolRoutes: Record<string, ToolRoute>;
11
13
  export declare function buildBody(route: ToolRoute, args: Record<string, unknown>): unknown;
14
+ export declare function resolveRoutePath(route: ToolRoute, args: Record<string, unknown>): string;
15
+ export declare function buildFactorSearchBody(args: Record<string, unknown>): {
16
+ sessionId: unknown;
17
+ messageId: unknown;
18
+ traceId: unknown;
19
+ taskId: unknown;
20
+ name: string;
21
+ lang: string;
22
+ sign: string;
23
+ };
12
24
  export declare function getSessionId(args: Record<string, unknown>): string;
package/dist/tools.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { createHash } from "node:crypto";
2
3
  import * as apipath from "./apipath.js";
3
4
  const sessionId = z
4
5
  .string()
@@ -48,6 +49,50 @@ const reportRegenerateInput = z.object({
48
49
  content: z.string().optional().describe("重新生成报告的要求,例如补充排放源清单、生命周期阶段占比、材料占比、图表、结论或调整报告内容。"),
49
50
  message: z.string().optional().describe("Supplemental report regeneration instruction from the user or Agent."),
50
51
  });
52
+ const workspaceContext = z
53
+ .record(z.string(), z.unknown())
54
+ .optional()
55
+ .describe("Optional workspace context. Use only when the server-side Agent provides extra sandbox context.");
56
+ const workspaceRunId = z.string().optional().describe("Agent runtime run id for sandbox workspace association.");
57
+ const factorSchema = z.object({
58
+ sourceType: z
59
+ .enum(["library", "custom"])
60
+ .optional()
61
+ .describe("Factor source type. Use library when factorId is selected from CCDB factor_search results; use custom only when the user or Agent provides a custom emission factor."),
62
+ factorId: longId.optional().describe("CCDB library factor id selected from factor_search results. Required when sourceType=library. If factor_search returns a row field named id, pass that id here as factorId."),
63
+ name: z.string().optional().describe("Custom factor name. Required when sourceType=custom."),
64
+ factor: z.string().optional().describe("Custom emission factor value. Required when sourceType=custom."),
65
+ unit: z.string().optional().describe("Custom factor unit, for example kgCO2e/kg. Required when sourceType=custom."),
66
+ institution: z.string().optional().describe("Custom factor source or institution. Required when sourceType=custom."),
67
+ year: z.string().optional().describe("Custom factor year. Required when sourceType=custom."),
68
+ factorPattern: z.string().optional().describe("Custom factor type code. Use 1 for normal factor, 2 for Ecoinvent factor when applicable. Omit if unknown."),
69
+ reason: z.string().optional().describe("Why the Agent selected this factor."),
70
+ evidence: z.string().optional().describe("External source, note, or evidence URL for the selected factor."),
71
+ });
72
+ const transportSchema = z.object({
73
+ name: z.string().optional().describe("Transport segment name. This is a transport leg attached to one parent emission source, such as supplier-to-factory transport for a material or packaging source."),
74
+ transportType: z.string().optional().describe("Transport mode code. Use backend enum codes: 1=道路运输, 2=铁路运输, 3=航空运输, 4=水路运输."),
75
+ way: z.string().optional().describe("Transport calculation method code. Use backend enum codes: 1=按里程-产品重量, 2=按里程-载重比, 3=按能耗."),
76
+ amount: z.string().optional().describe("Transport activity mass amount. Defaults to the parent emission source amount if omitted. For material or packaging inbound transport, this normally equals the transported parent source quantity."),
77
+ unitName: z.string().optional().describe("Transport activity mass unit. Must be selected from unit_list.factorUnitM[].dictLabel whose sourceName is a mass category, for example kg, g, or t. Do not use energy, volume, item, or distance units here."),
78
+ rate: z.string().optional().describe("Optional unit conversion ratio from the transport activity mass unit plus kilometer to the selected transport factor denominator unit. Use a confirmed conversion ratio; omit when uncertain so the backend can infer or validate it."),
79
+ distance: z.string().optional().describe("Transport distance."),
80
+ distUnitName: z.string().optional().describe("Transport distance unit. Use kilometer only. Defaults to 公里 if omitted."),
81
+ factor: factorSchema.optional().describe("Transport factor. Required when the transport segment should use a specific factor. For freight factors, select a factor compatible with the transport mode and calculation method."),
82
+ remark: z.string().optional().describe("Transport remark."),
83
+ });
84
+ const emissionSourceSchema = z.object({
85
+ clientSourceId: z.string().optional().describe("Agent-side temporary emission source id for troubleshooting and idempotency diagnostics."),
86
+ name: z.string().min(1).describe("Emission source name, such as plastic, electricity, packaging, energy, water, or a standalone transport activity."),
87
+ stage: z.string().min(1).describe("Lifecycle stage dictionary value. Prefer these values: MATERIAL=原材料获取, PRODUCT=生产制造, DISTRIBUTION=分销和储存/运输, USE=产品使用, WASTE_DISPOSAL=废弃处置. Backend lifecycle codes are also accepted: 0=原材料获取, 1=生产制造, 2=分销和储存, 3=产品使用, 4=废弃处置."),
88
+ type: z.string().min(1).describe("Emission source type code. Use backend dictionary codes: 1=主料, 2=辅料, 3=包装材料, 4=再生材料, 5=能耗, 6=水耗, 7=运输, 21=废气, 22=废水, 23=固体废弃物, 24=可再生废料, 41=其他. Important: type=7 is only for a standalone transport/logistics activity. For inbound transport of a material, auxiliary material, packaging material, or recycled material, keep the parent source type as 1/2/3/4 and put transport legs in that source's transport[] field. Example: ABS plastic with supplier-to-factory freight should be type=1 with nested transport[], not a separate type=7 source."),
89
+ amount: z.string().min(1).describe("Activity data amount."),
90
+ unitName: z.string().min(1).describe("Activity data unit name. Must be selected from unit_list.factorUnitM[].dictLabel. Emission sources can use the full unit dictionary, for example g, kg, t, kWh, m3, piece, or other standard units returned by unit_list."),
91
+ rate: z.string().optional().describe("Optional unit conversion ratio from activity data unitName to the selected factor denominator unit. Use a confirmed conversion ratio; omit when uncertain so the backend can infer or validate it."),
92
+ factor: factorSchema.describe("Selected factor. For a CCDB factor, pass sourceType=library and factorId. For a custom factor, pass sourceType=custom plus name/factor/unit/institution/year."),
93
+ transport: z.array(transportSchema).optional().describe("Transport segments attached to this specific emission source. Prefer this field for supplier-to-factory or inbound transport of raw materials, auxiliary materials, packaging, recycled materials, and other transported inputs. Do not create a separate type=7 transport emission source for routine inbound transport that belongs to a specific material or packaging source. Only create a separate emission source with type=7 when the user explicitly asks to model an independent transport/logistics activity that cannot be attributed to one source. Example: put ABS plastic supplier-to-factory road transport inside the ABS plastic source's transport[]."),
94
+ remark: z.string().optional().describe("Emission source remark."),
95
+ });
51
96
  export const schemas = {
52
97
  modeling_execute: z.object({
53
98
  sessionId,
@@ -73,6 +118,22 @@ export const schemas = {
73
118
  sessionId,
74
119
  accountId: longId.describe("Product carbon account id"),
75
120
  }),
121
+ modeling_execute_structured: z.object({
122
+ sessionId,
123
+ ...skillTraceFields,
124
+ idempotencyKey,
125
+ productName: z.string().min(1).describe("Product name for the new structured carbon model."),
126
+ productDesc: z.string().optional().describe("Product description."),
127
+ productCategoryName: z.string().optional().describe("Product category name."),
128
+ accountName: z.string().optional().describe("Carbon account name. If omitted, the backend generates one from amount, unitName, and productName."),
129
+ amount: z.string().optional().describe("Functional unit amount. Defaults to 1 if omitted."),
130
+ unitName: z.string().min(1).describe("Functional unit name. Must be selected from unit_list.factorUnitM[].dictLabel, for example piece, kg, bottle, set, 个, 千克, or other returned unit names."),
131
+ scope: z.union([z.number(), z.string().regex(/^\d+$/, "Expected a numeric scope string")]).optional().describe("生命周期范围代码:0=半生命周期,1=全生命周期,2=自定义生命周期。"),
132
+ scopeValue: z.string().optional().describe("自定义生命周期阶段,逗号分隔:0=原材料获取,1=生产制造,2=分销和储存,3=产品使用,4=废弃处置。scope=2 时必填。"),
133
+ startDate: z.string().optional().describe("Accounting period start date, format yyyy-MM-dd. Defaults to current year January 1."),
134
+ endDate: z.string().optional().describe("Accounting period end date, format yyyy-MM-dd. Defaults to current year December 31."),
135
+ emissionSources: z.array(emissionSourceSchema).min(1).describe("Structured emission source list extracted by the Agent. At least one source is required. When a source has related transport, attach transport legs to that source's transport[] instead of creating a separate transport source, unless the user explicitly wants a standalone transport/logistics activity. Example: one ABS plastic source can include its factor and transport[] road freight legs."),
136
+ }),
76
137
  report_generate: z.object({
77
138
  sessionId,
78
139
  ...skillTraceFields,
@@ -91,15 +152,65 @@ export const schemas = {
91
152
  sessionId,
92
153
  reportId: longId.describe("Report id"),
93
154
  }),
155
+ factor_search: z.object({
156
+ sessionId,
157
+ ...skillTraceFields,
158
+ name: z.string().min(1).describe("Single CCDB factor search keyword. The backend accepts one keyword per call. For better matching, call factor_search repeatedly with Chinese keywords, English keywords, material synonyms, process names, and product category terms."),
159
+ lang: z.string().optional().describe("Result language. Use zh by default, or en for English results."),
160
+ }),
161
+ unit_list: z.object({
162
+ sessionId: sessionId.describe("Agent session id. Use this tool before modeling_execute_structured to get valid unit dictionary values. The response field factorUnitM[].dictLabel is the value to pass as unitName; factorUnitM[].sourceName is the unit category."),
163
+ }),
164
+ workspace_authorize_file: z.object({
165
+ sessionId,
166
+ fileId: z.string().min(1).describe("Workspace file id to authorize for the current Agent sandbox context."),
167
+ messageId: skillTraceFields.messageId,
168
+ runId: workspaceRunId,
169
+ context: workspaceContext,
170
+ }),
171
+ workspace_file_download_url: z.object({
172
+ sessionId,
173
+ fileId: z.string().min(1).describe("Workspace file id whose temporary download URL should be returned."),
174
+ messageId: skillTraceFields.messageId,
175
+ runId: workspaceRunId,
176
+ context: workspaceContext,
177
+ }),
178
+ workspace_upload_artifact: z.object({
179
+ sessionId,
180
+ filePath: z.string().min(1).describe("Local sandbox file path on the MCP runtime to upload as an Agent artifact."),
181
+ sourcePath: z.string().optional().describe("Original sandbox source path to store with the artifact."),
182
+ filename: z.string().optional().describe("File name to store. Defaults to the basename of filePath."),
183
+ mime: z.string().optional().describe("MIME type. Defaults to application/octet-stream."),
184
+ sha256: z.string().optional().describe("Optional SHA-256 checksum supplied by the sandbox runtime."),
185
+ messageId: skillTraceFields.messageId,
186
+ runId: workspaceRunId,
187
+ }),
94
188
  };
189
+ export const exposedToolNames = [
190
+ "modeling_re_modeling",
191
+ "modeling_update",
192
+ "modeling_detail",
193
+ "modeling_execute_structured",
194
+ "report_generate",
195
+ "report_regenerate",
196
+ "report_detail",
197
+ "factor_search",
198
+ "unit_list",
199
+ ];
95
200
  export const descriptions = {
96
201
  modeling_execute: "Create a new product carbon model from input.content. Use this only when the user wants a new model and no existing account should be reused. Calls /modeling/execute. Requires idempotencyKey and input.content.",
97
202
  modeling_re_modeling: "Re-model an existing product carbon account from updated context. Use this when the user wants to redo or recalculate the whole model for an existing account. Calls /modeling/reModeling. Requires accountId and idempotencyKey.",
98
203
  modeling_update: "Supplement emission sources on an existing product carbon account. Use this when the user wants to add or adjust materials, energy, packaging, transport, or other emission sources without recreating the whole model. Calls /modeling/update. Requires accountId, idempotencyKey, and input.content.",
99
204
  modeling_detail: "Get product carbon model details for an account.",
205
+ modeling_execute_structured: "Create a new product carbon model from Agent-extracted structured data. Use this only after the Agent has a complete product name, functional unit, emission source list, and selected factors. For material, auxiliary material, packaging, or recycled material transport, attach transport legs to the parent emissionSources[].transport field; do not create a standalone type=7 transport source unless the user explicitly asks for an independent transport/logistics activity. Example: ABS plastic with supplier-to-factory freight should be one source type=1 with nested transport[], not two sources. Calls /modeling/executeStructured. Requires idempotencyKey, productName, unitName, and emissionSources.",
100
206
  report_generate: "为已有产品碳足迹账户生成新的报告。仅当用户明确要求生成报告、报告文件,或明确要求将排放源清单、生命周期阶段占比、材料占比、图表、结论、分析等内容整理进报告时调用本工具。不要用于普通查询、口头分析、查看清单或查看占比。需要 accountId 和 idempotencyKey;用户对报告内容的自然语言要求放入 input.content。",
101
207
  report_regenerate: "重新生成已有产品碳足迹报告。仅当用户明确要求重新生成报告、更新报告文件,或明确要求将排放源清单、生命周期阶段占比、材料占比、图表、结论、分析等内容补充进已有报告时调用本工具。不要用于普通查询、口头分析、查看清单或查看占比。需要 reportId 和 idempotencyKey;用户对重新生成报告的自然语言要求放入 input.content。",
102
208
  report_detail: "Get product carbon report detail and latest report URL.",
209
+ factor_search: "Search CCDB emission factors before selecting factorId for structured modeling. The backend accepts one keyword per call. For better matching, call this tool multiple times with Chinese keywords, English keywords, material synonyms, process names, and product category terms, then compare returned rows. When a returned row has id, use that id as modeling_execute_structured factor.factorId. The MCP server signs requests for /queryFactorListAgent.",
210
+ unit_list: "Get the Agent unit dictionary before structured modeling. Call this before modeling_execute_structured. The backend returns factorUnitM items: dictLabel=unitName to pass into modeling, dictValue=unit code, id=unit dictionary id, sourceName=unit category. For normal emission sources, choose from the full dictionary. For transport unitName, choose only mass units by sourceName; transport distance is kilometer.",
211
+ workspace_authorize_file: "Authorize a workspace file for the current Agent sandbox session. Use this before reading or using a user-uploaded workspace file.",
212
+ workspace_file_download_url: "Get a temporary download URL for an authorized workspace file.",
213
+ workspace_upload_artifact: "Upload a local sandbox artifact file and return an artifact id. Use this when the Agent creates files in the sandbox that must be saved back to Carbonstop.",
103
214
  };
104
215
  export const toolRoutes = {
105
216
  modeling_execute: {
@@ -122,6 +233,11 @@ export const toolRoutes = {
122
233
  path: apipath.ModelingDetail(),
123
234
  bodyKind: "agentSkill",
124
235
  },
236
+ modeling_execute_structured: {
237
+ method: "POST",
238
+ path: apipath.ModelingExecuteStructured(),
239
+ bodyKind: "agentSkill",
240
+ },
125
241
  report_generate: {
126
242
  method: "POST",
127
243
  path: apipath.ReportGenerate(),
@@ -137,13 +253,83 @@ export const toolRoutes = {
137
253
  path: apipath.ReportDetail(),
138
254
  bodyKind: "agentSkill",
139
255
  },
256
+ factor_search: {
257
+ method: "POST",
258
+ path: apipath.QueryFactorListAgent(),
259
+ bodyKind: "factorSearch",
260
+ },
261
+ unit_list: {
262
+ method: "POST",
263
+ path: apipath.QueryUnitListAgent(),
264
+ bodyKind: "agentSkill",
265
+ },
266
+ workspace_authorize_file: {
267
+ method: "POST",
268
+ path: (args) => apipath.WorkspaceAuthorizeFile(String(args.fileId || "")),
269
+ bodyKind: "workspaceFile",
270
+ },
271
+ workspace_file_download_url: {
272
+ method: "POST",
273
+ path: (args) => apipath.WorkspaceFileDownloadUrl(String(args.fileId || "")),
274
+ bodyKind: "workspaceFile",
275
+ },
276
+ workspace_upload_artifact: {
277
+ method: "POST",
278
+ path: apipath.WorkspaceUploadArtifact(),
279
+ bodyKind: "multipartArtifact",
280
+ },
140
281
  };
141
282
  export function buildBody(route, args) {
142
283
  if (route.bodyKind === "sessionContext") {
143
284
  return { sessionId: args.sessionId };
144
285
  }
286
+ if (route.bodyKind === "workspaceFile") {
287
+ return pickDefined({
288
+ sessionId: args.sessionId,
289
+ messageId: args.messageId,
290
+ runId: args.runId,
291
+ context: args.context,
292
+ });
293
+ }
294
+ if (route.bodyKind === "multipartArtifact") {
295
+ return normalizeIds(pickDefined({
296
+ filePath: args.filePath,
297
+ sourcePath: args.sourcePath,
298
+ filename: args.filename,
299
+ mime: args.mime,
300
+ sha256: args.sha256,
301
+ sessionId: args.sessionId,
302
+ messageId: args.messageId,
303
+ runId: args.runId,
304
+ }));
305
+ }
145
306
  return normalizeIds(args);
146
307
  }
308
+ export function resolveRoutePath(route, args) {
309
+ return typeof route.path === "function" ? route.path(args) : route.path;
310
+ }
311
+ export function buildFactorSearchBody(args) {
312
+ const name = typeof args.name === "string" ? args.name.trim() : "";
313
+ const lang = typeof args.lang === "string" && args.lang.trim() ? args.lang.trim() : "zh";
314
+ return {
315
+ sessionId: args.sessionId,
316
+ messageId: args.messageId,
317
+ traceId: args.traceId,
318
+ taskId: args.taskId,
319
+ name,
320
+ lang,
321
+ sign: createHash("md5").update(`agent_ccdb${name}`).digest("hex"),
322
+ };
323
+ }
324
+ function pickDefined(values) {
325
+ const result = {};
326
+ for (const [key, value] of Object.entries(values)) {
327
+ if (value !== undefined && value !== null) {
328
+ result[key] = value;
329
+ }
330
+ }
331
+ return result;
332
+ }
147
333
  function normalizeIds(value) {
148
334
  if (Array.isArray(value)) {
149
335
  return value.map(normalizeIds);
@@ -166,7 +352,7 @@ function normalizeIds(value) {
166
352
  return normalized;
167
353
  }
168
354
  function isIdField(key) {
169
- return key === "projectId" || key === "accountId" || key === "modelId" || key === "reportId";
355
+ return key === "projectId" || key === "accountId" || key === "modelId" || key === "reportId" || key === "factorId";
170
356
  }
171
357
  function normalizeNumericId(value) {
172
358
  const numericValue = Number(value);
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CAAC,sGAAsG,CAAC,CAAC;AAEpH,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CAAC,sGAAsG,CAAC,CAAC;AAEpH,MAAM,MAAM,GAAG,CAAC;KACb,KAAK,CAAC;IACL,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,8BAA8B,CAAC;CAC1D,CAAC;KACD,QAAQ,CAAC,0DAA0D,CAAC,CAAC;AAExE,MAAM,gBAAgB,GAAG;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACtG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CACvE,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACzG,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC1K,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAC5G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC1I,GAAG,eAAe;CACnB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IACnI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC;IACzI,GAAG,eAAe;CACnB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kJAAkJ,CAAC;IACvL,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;CAC5G,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC7F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;CAC9G,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;CAChH,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,QAAQ,EAAE;KACV,QAAQ,CAAC,iGAAiG,CAAC,CAAC;AAE/G,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEjH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,sKAAsK,CAAC;IACnL,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6KAA6K,CAAC;IACnN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;IACxG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IACnH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IACpH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC5F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4GAA4G,CAAC;IAC3J,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAC5G,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mKAAmK,CAAC;IACzM,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;IAC7H,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IAC/H,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qMAAqM,CAAC;IAC7O,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8MAA8M,CAAC;IACxP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uOAAuO,CAAC;IAC7Q,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACvH,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qLAAqL,CAAC;IAC/N,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mHAAmH,CAAC;IACrJ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iOAAiO,CAAC;IACpQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6hBAA6hB,CAAC;IAC/jB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2NAA2N,CAAC;IACjQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oMAAoM,CAAC;IAC1O,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,+JAA+J,CAAC;IAC9L,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2oBAA2oB,CAAC;IACpsB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAiD;IACnE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,SAAS;QACT,GAAG,gBAAgB;QACnB,cAAc;QACd,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,sHAAsH,CAAC;KAC7J,CAAC;IACF,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC7B,SAAS;QACT,GAAG,gBAAgB;QACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvD,cAAc;QACd,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,iIAAiI,CAAC,CAAC,QAAQ,EAAE;KAC9K,CAAC;IACF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,SAAS;QACT,GAAG,gBAAgB;QACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvD,cAAc;QACd,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,+HAA+H,CAAC;KAClK,CAAC;IACF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,SAAS;QACT,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACxD,CAAC;IACF,2BAA2B,EAAE,CAAC,CAAC,MAAM,CAAC;QACpC,SAAS;QACT,GAAG,gBAAgB;QACnB,cAAc;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC5F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACnE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;QACjJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yJAAyJ,CAAC;QAC/L,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACrJ,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;QAC9G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;QACjI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;QAC/H,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yYAAyY,CAAC;KAC1c,CAAC;IACF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,SAAS;QACT,GAAG,gBAAgB;QACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvD,cAAc;QACd,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,mKAAmK,CAAC,CAAC,QAAQ,EAAE;KACpN,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,SAAS;QACT,GAAG,gBAAgB;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC7D,cAAc;QACd,KAAK,EAAE,qBAAqB,CAAC,QAAQ,CAAC,4JAA4J,CAAC,CAAC,QAAQ,EAAE;KAC/M,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;KACvC,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS;QACT,GAAG,gBAAgB;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wOAAwO,CAAC;QAC1Q,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KACvG,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,qOAAqO,CAAC;KACrQ,CAAC;IACF,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC;QACjC,SAAS;QACT,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QAC3G,SAAS,EAAE,gBAAgB,CAAC,SAAS;QACrC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACF,2BAA2B,EAAE,CAAC,CAAC,MAAM,CAAC;QACpC,SAAS;QACT,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QACxG,SAAS,EAAE,gBAAgB,CAAC,SAAS;QACrC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACF,yBAAyB,EAAE,CAAC,CAAC,MAAM,CAAC;QAClC,SAAS;QACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4EAA4E,CAAC;QAClH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;QACtG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACrG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACxF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QACpG,SAAS,EAAE,gBAAgB,CAAC,SAAS;QACrC,KAAK,EAAE,cAAc;KACtB,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,6BAA6B;IAC7B,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,gBAAgB,EAAE,mNAAmN;IACrO,oBAAoB,EAAE,mOAAmO;IACzP,eAAe,EAAE,wSAAwS;IACzT,eAAe,EAAE,kDAAkD;IACnE,2BAA2B,EAAE,6rBAA6rB;IAC1tB,eAAe,EAAE,2KAA2K;IAC5L,iBAAiB,EAAE,+KAA+K;IAClM,aAAa,EAAE,yDAAyD;IACxE,aAAa,EAAE,kcAAkc;IACjd,SAAS,EAAE,6ZAA6Z;IACxa,wBAAwB,EAAE,oIAAoI;IAC9J,2BAA2B,EAAE,gEAAgE;IAC7F,yBAAyB,EAAE,6JAA6J;CACzL,CAAC;AAWF,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;QAC/B,QAAQ,EAAE,YAAY;KACvB;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAClC,QAAQ,EAAE,YAAY;KACvB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,YAAY;KACvB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,YAAY;KACvB;IACD,2BAA2B,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,yBAAyB,EAAE;QACzC,QAAQ,EAAE,YAAY;KACvB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,YAAY;KACvB;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,YAAY;KACvB;IACD,aAAa,EAAE;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE;QAC5B,QAAQ,EAAE,YAAY;KACvB;IACD,aAAa,EAAE;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,oBAAoB,EAAE;QACpC,QAAQ,EAAE,cAAc;KACzB;IACD,SAAS,EAAE;QACT,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAClC,QAAQ,EAAE,YAAY;KACvB;IACD,wBAAwB,EAAE;QACxB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzE,QAAQ,EAAE,eAAe;KAC1B;IACD,2BAA2B,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3E,QAAQ,EAAE,eAAe;KAC1B;IACD,yBAAyB,EAAE;QACzB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE;QACvC,QAAQ,EAAE,mBAAmB;KAC9B;CACF,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAgB,EAAE,IAA6B;IACvE,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACxC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,WAAW,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QAC3C,OAAO,YAAY,CACjB,WAAW,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgB,EAAE,IAA6B;IAC9E,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IACjE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B;IAClD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjF,UAAU,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/F,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU,CAAC;AACrH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAA6B;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare function getBaseURL(): string;
2
- export declare const Version = "0.1.13";
2
+ export declare const Version = "0.1.15";
3
3
  export declare const Commit = "none";
4
4
  export declare const BuildTime = "unknown";
package/dist/version.js CHANGED
@@ -13,7 +13,7 @@ export function getBaseURL() {
13
13
  return "";
14
14
  }
15
15
  }
16
- export const Version = "0.1.13";
16
+ export const Version = "0.1.15";
17
17
  export const Commit = "none";
18
18
  export const BuildTime = "unknown";
19
19
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbonstopper/agent-mcp",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "MCP server for Carbonstop Agent internal skill APIs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",