@mcpc-tech/core 0.3.27 → 0.3.29

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/index.cjs CHANGED
@@ -17814,6 +17814,23 @@ Execute a tool:
17814
17814
  "args": { /* tool parameters */ }
17815
17815
  }
17816
17816
  \`\`\`
17817
+ </format>`,
17818
+ /**
17819
+ * Compact system prompt for autonomous MCP execution (when manual is provided)
17820
+ *
17821
+ * Uses simplified description with progressive disclosure:
17822
+ * - Short description shown by default
17823
+ * - Use `man` command with args `{ manual: true }` to get full manual
17824
+ */
17825
+ AUTONOMOUS_EXECUTION_COMPACT: `Agentic tool \`{toolName}\`: {description}
17826
+
17827
+ Use \`man\` command with args \`{ tools: [], manual: true }\` to get the full manual, or \`{ tools: ["tool1"] }\` to get tool schemas.
17828
+
17829
+ <format>
17830
+ Get full manual: \`{ "tool": "man", "args": { "tools": [], "manual": true } }\`
17831
+ Get tool schemas: \`{ "tool": "man", "args": { "tools": ["tool1", "tool2"] } }\`
17832
+ Get both: \`{ "tool": "man", "args": { "tools": ["tool1"], "manual": true } }\`
17833
+ Execute a tool: \`{ "tool": "tool_name", "args": { /* parameters */ } }\`
17817
17834
  </format>`,
17818
17835
  /**
17819
17836
  * Tool description for sampling tools (shown in MCP tools list)
@@ -17891,6 +17908,7 @@ Adjust parameters and retry.`,
17891
17908
  };
17892
17909
  var CompiledPrompts = {
17893
17910
  autonomousExecution: p(SystemPrompts.AUTONOMOUS_EXECUTION),
17911
+ autonomousExecutionCompact: p(SystemPrompts.AUTONOMOUS_EXECUTION_COMPACT),
17894
17912
  samplingToolDescription: p(SystemPrompts.SAMPLING_TOOL_DESCRIPTION),
17895
17913
  aiLoopSystem: p(SystemPrompts.AI_LOOP_SYSTEM),
17896
17914
  actionSuccess: p(ResponseTemplates.ACTION_SUCCESS),
@@ -17957,7 +17975,7 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17957
17975
  },
17958
17976
  args: {
17959
17977
  type: "object",
17960
- description: `For "man": { tools: ["tool1", "tool2"] }. For other tools: tool parameters that strictly adhere to the tool's JSON schema.`
17978
+ description: `For "man": { tools: ["tool1", "tool2"], manual?: true }. For other tools: tool parameters that strictly adhere to the tool's JSON schema.`
17961
17979
  }
17962
17980
  },
17963
17981
  required: [
@@ -17968,7 +17986,10 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17968
17986
  },
17969
17987
  /**
17970
17988
  * Schema for "man" command args validation
17971
- * Expected format: { tools: ["tool1", "tool2"] }
17989
+ * Expected format: { tools: ["tool1", "tool2"], manual?: true }
17990
+ *
17991
+ * - Always require `tools`
17992
+ * - Allow empty tools only when `manual: true`
17972
17993
  */
17973
17994
  forMan: function(allToolNames) {
17974
17995
  return {
@@ -17982,16 +18003,50 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17982
18003
  errorMessage: {
17983
18004
  enum: `Invalid tool name. Available: ${allToolNames.join(", ")}`
17984
18005
  }
17985
- },
17986
- minItems: 1,
17987
- errorMessage: {
17988
- minItems: "At least one tool name is required"
17989
18006
  }
18007
+ },
18008
+ manual: {
18009
+ type: "boolean",
18010
+ description: "Set to true to get the full manual for this agent (progressive disclosure)."
17990
18011
  }
17991
18012
  },
17992
18013
  required: [
17993
18014
  "tools"
17994
18015
  ],
18016
+ additionalProperties: false,
18017
+ anyOf: [
18018
+ // manual-only (tools can be empty)
18019
+ {
18020
+ properties: {
18021
+ manual: {
18022
+ enum: [
18023
+ true
18024
+ ]
18025
+ },
18026
+ tools: {
18027
+ minItems: 0
18028
+ }
18029
+ },
18030
+ required: [
18031
+ "tools",
18032
+ "manual"
18033
+ ]
18034
+ },
18035
+ // tool schemas (require at least one tool)
18036
+ {
18037
+ properties: {
18038
+ tools: {
18039
+ minItems: 1,
18040
+ errorMessage: {
18041
+ minItems: "At least one tool name is required"
18042
+ }
18043
+ }
18044
+ },
18045
+ required: [
18046
+ "tools"
18047
+ ]
18048
+ }
18049
+ ],
17995
18050
  errorMessage: {
17996
18051
  required: {
17997
18052
  tools: 'Missing "tools" field. Expected: { tools: ["tool1", "tool2"] }'
@@ -18113,14 +18168,16 @@ var AgenticExecutor = class {
18113
18168
  allToolNames;
18114
18169
  toolNameToDetailList;
18115
18170
  server;
18171
+ manual;
18116
18172
  logger;
18117
18173
  tracingEnabled;
18118
18174
  toolSchemaMap;
18119
- constructor(name, allToolNames, toolNameToDetailList, server) {
18175
+ constructor(name, allToolNames, toolNameToDetailList, server, manual) {
18120
18176
  this.name = name;
18121
18177
  this.allToolNames = allToolNames;
18122
18178
  this.toolNameToDetailList = toolNameToDetailList;
18123
18179
  this.server = server;
18180
+ this.manual = manual;
18124
18181
  this.tracingEnabled = false;
18125
18182
  this.logger = createLogger(`mcpc.agentic.${name}`, server);
18126
18183
  this.toolSchemaMap = new Map(toolNameToDetailList);
@@ -18188,7 +18245,34 @@ var AgenticExecutor = class {
18188
18245
  };
18189
18246
  }
18190
18247
  const argsObj = args.args;
18191
- return this.handleManCommand(argsObj.tools, executeSpan);
18248
+ const tools = argsObj.tools ?? [];
18249
+ const wantManual = argsObj.manual === true;
18250
+ const wantTools = tools.length > 0;
18251
+ if (wantTools && wantManual) {
18252
+ const toolSchemas = this.handleManCommand(tools, null);
18253
+ const manualResult = this.handleManualRequest(null);
18254
+ if (executeSpan) {
18255
+ executeSpan.setAttributes({
18256
+ toolType: "man",
18257
+ requestType: "tools+manual"
18258
+ });
18259
+ endSpan(executeSpan);
18260
+ }
18261
+ return {
18262
+ content: [
18263
+ ...toolSchemas.content,
18264
+ {
18265
+ type: "text",
18266
+ text: "\n---\n"
18267
+ },
18268
+ ...manualResult.content
18269
+ ]
18270
+ };
18271
+ }
18272
+ if (wantManual) {
18273
+ return this.handleManualRequest(executeSpan);
18274
+ }
18275
+ return this.handleManCommand(tools, executeSpan);
18192
18276
  }
18193
18277
  const toolArgs = args.args || {};
18194
18278
  return await this.executeTool(tool2, toolArgs, executeSpan);
@@ -18211,6 +18295,44 @@ var AgenticExecutor = class {
18211
18295
  };
18212
18296
  }
18213
18297
  }
18298
+ /**
18299
+ * Handle `man { manual: true }` - return full manual for progressive disclosure
18300
+ */
18301
+ handleManualRequest(executeSpan) {
18302
+ if (executeSpan) {
18303
+ executeSpan.setAttributes({
18304
+ toolType: "man",
18305
+ requestType: "manual"
18306
+ });
18307
+ }
18308
+ if (!this.manual) {
18309
+ if (executeSpan) {
18310
+ endSpan(executeSpan);
18311
+ }
18312
+ return {
18313
+ content: [
18314
+ {
18315
+ type: "text",
18316
+ text: "No manual available for this agent."
18317
+ }
18318
+ ]
18319
+ };
18320
+ }
18321
+ if (executeSpan) {
18322
+ executeSpan.setAttributes({
18323
+ success: true
18324
+ });
18325
+ endSpan(executeSpan);
18326
+ }
18327
+ return {
18328
+ content: [
18329
+ {
18330
+ type: "text",
18331
+ text: this.manual
18332
+ }
18333
+ ]
18334
+ };
18335
+ }
18214
18336
  /**
18215
18337
  * Handle `man` command - return schemas for requested tools
18216
18338
  * @param requestedTools - Array of tool names (already validated via JSON Schema)
@@ -18252,15 +18374,29 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18252
18374
  * Execute a tool with runtime validation
18253
18375
  */
18254
18376
  async executeTool(tool2, toolArgs, executeSpan) {
18255
- const externalTool = this.toolNameToDetailList.find(([name]) => name === tool2);
18256
- if (externalTool) {
18257
- const [, toolDetail] = externalTool;
18377
+ const isExternalTool = this.toolNameToDetailList.some(([name]) => name === tool2);
18378
+ const isInternalTool = this.allToolNames.includes(tool2);
18379
+ if (!isExternalTool && !isInternalTool) {
18258
18380
  if (executeSpan) {
18259
18381
  executeSpan.setAttributes({
18260
- toolType: "external",
18261
- selectedTool: tool2
18382
+ toolType: "not_found",
18383
+ tool: tool2
18262
18384
  });
18385
+ endSpan(executeSpan);
18263
18386
  }
18387
+ return {
18388
+ content: [
18389
+ {
18390
+ type: "text",
18391
+ text: `Tool "${tool2}" not found. Available tools: ${this.allToolNames.join(", ")}`
18392
+ }
18393
+ ],
18394
+ isError: true
18395
+ };
18396
+ }
18397
+ if (isExternalTool) {
18398
+ const externalTool = this.toolNameToDetailList.find(([name]) => name === tool2);
18399
+ const [, toolDetail] = externalTool;
18264
18400
  if (toolDetail.inputSchema) {
18265
18401
  const rawSchema = extractJsonSchema(toolDetail.inputSchema);
18266
18402
  const validation = validateSchema(toolArgs, rawSchema);
@@ -18283,84 +18419,53 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18283
18419
  };
18284
18420
  }
18285
18421
  }
18286
- this.logger.debug({
18287
- message: "Executing external tool",
18288
- tool: tool2
18422
+ }
18423
+ const toolType = isExternalTool ? "external" : "internal";
18424
+ if (executeSpan) {
18425
+ executeSpan.setAttributes({
18426
+ toolType,
18427
+ selectedTool: tool2
18289
18428
  });
18290
- const result = await toolDetail.execute(toolArgs);
18429
+ }
18430
+ this.logger.debug({
18431
+ message: `Executing ${toolType} tool`,
18432
+ tool: tool2
18433
+ });
18434
+ try {
18435
+ const result = await this.server.callTool(tool2, toolArgs, {
18436
+ agentName: this.name
18437
+ });
18438
+ const callToolResult = result ?? {
18439
+ content: []
18440
+ };
18291
18441
  if (executeSpan) {
18292
18442
  executeSpan.setAttributes({
18293
18443
  success: true,
18294
- isError: !!result.isError,
18295
- resultContentLength: result.content?.length || 0
18444
+ isError: !!callToolResult.isError,
18445
+ resultContentLength: callToolResult.content?.length || 0
18296
18446
  });
18297
18447
  endSpan(executeSpan);
18298
18448
  }
18299
- return result;
18300
- }
18301
- if (this.allToolNames.includes(tool2)) {
18449
+ return callToolResult;
18450
+ } catch (error2) {
18302
18451
  if (executeSpan) {
18303
- executeSpan.setAttributes({
18304
- toolType: "internal",
18305
- selectedTool: tool2
18306
- });
18307
- }
18308
- this.logger.debug({
18309
- message: "Executing internal tool",
18310
- tool: tool2
18311
- });
18312
- try {
18313
- const result = await this.server.callTool(tool2, toolArgs, {
18314
- agentName: this.name
18315
- });
18316
- const callToolResult = result ?? {
18317
- content: []
18318
- };
18319
- if (executeSpan) {
18320
- executeSpan.setAttributes({
18321
- success: true,
18322
- isError: !!callToolResult.isError,
18323
- resultContentLength: callToolResult.content?.length || 0
18324
- });
18325
- endSpan(executeSpan);
18326
- }
18327
- return callToolResult;
18328
- } catch (error2) {
18329
- if (executeSpan) {
18330
- endSpan(executeSpan, error2);
18331
- }
18332
- this.logger.error({
18333
- message: "Error executing internal tool",
18334
- tool: tool2,
18335
- error: String(error2)
18336
- });
18337
- return {
18338
- content: [
18339
- {
18340
- type: "text",
18341
- text: `Error executing tool "${tool2}": ${error2 instanceof Error ? error2.message : String(error2)}`
18342
- }
18343
- ],
18344
- isError: true
18345
- };
18452
+ endSpan(executeSpan, error2);
18346
18453
  }
18347
- }
18348
- if (executeSpan) {
18349
- executeSpan.setAttributes({
18350
- toolType: "not_found",
18351
- tool: tool2
18454
+ this.logger.error({
18455
+ message: `Error executing ${toolType} tool`,
18456
+ tool: tool2,
18457
+ error: String(error2)
18352
18458
  });
18353
- endSpan(executeSpan);
18459
+ return {
18460
+ content: [
18461
+ {
18462
+ type: "text",
18463
+ text: `Error executing tool "${tool2}": ${error2 instanceof Error ? error2.message : String(error2)}`
18464
+ }
18465
+ ],
18466
+ isError: true
18467
+ };
18354
18468
  }
18355
- return {
18356
- content: [
18357
- {
18358
- type: "text",
18359
- text: `Tool "${tool2}" not found. Available tools: ${this.allToolNames.join(", ")}`
18360
- }
18361
- ],
18362
- isError: true
18363
- };
18364
18469
  }
18365
18470
  validate(args, schema) {
18366
18471
  return validateSchema(args, schema);
@@ -18368,19 +18473,18 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18368
18473
  };
18369
18474
 
18370
18475
  // __mcpc__core_latest/node_modules/@mcpc/core/src/executors/agentic/agentic-tool-registrar.js
18371
- function registerAgenticTool(server, { description, name, allToolNames, depGroups, toolNameToDetailList }) {
18476
+ function registerAgenticTool(server, { description, name, allToolNames, depGroups, toolNameToDetailList, manual }) {
18372
18477
  const createArgsDef = createArgsDefFactory(name, allToolNames, depGroups, void 0, void 0);
18373
- const agenticExecutor = new AgenticExecutor(name, allToolNames, toolNameToDetailList, server);
18374
- description = CompiledPrompts.autonomousExecution({
18478
+ const agenticExecutor = new AgenticExecutor(name, allToolNames, toolNameToDetailList, server, manual);
18479
+ description = manual ? CompiledPrompts.autonomousExecutionCompact({
18480
+ toolName: name,
18481
+ description
18482
+ }) : CompiledPrompts.autonomousExecution({
18375
18483
  toolName: name,
18376
18484
  description
18377
18485
  });
18378
18486
  const agenticArgsDef = createArgsDef.forAgentic(allToolNames);
18379
- const argsDef = agenticArgsDef;
18380
- const schema = allToolNames.length > 0 ? argsDef : {
18381
- type: "object",
18382
- properties: {}
18383
- };
18487
+ const schema = agenticArgsDef;
18384
18488
  server.tool(name, description, jsonSchema(createModelCompatibleJSONSchema(schema)), async (args) => {
18385
18489
  return await agenticExecutor.execute(args, schema);
18386
18490
  });
@@ -18399,7 +18503,8 @@ var createAgenticModePlugin = () => ({
18399
18503
  name: context2.name,
18400
18504
  allToolNames: context2.allToolNames,
18401
18505
  depGroups: context2.depGroups,
18402
- toolNameToDetailList: context2.toolNameToDetailList
18506
+ toolNameToDetailList: context2.toolNameToDetailList,
18507
+ manual: context2.manual
18403
18508
  });
18404
18509
  }
18405
18510
  });
@@ -20503,9 +20608,10 @@ var ComposableMCPServer = class extends Server {
20503
20608
  mcpServers: {}
20504
20609
  }, options = {
20505
20610
  mode: "agentic"
20506
- }) {
20611
+ }, manual) {
20507
20612
  const refDesc = options.refs?.join("") ?? "";
20508
- const { tagToResults } = parseTags(description + refDesc, [
20613
+ const combinedSource = description + refDesc + (manual ?? "");
20614
+ const { tagToResults } = parseTags(combinedSource, [
20509
20615
  "tool",
20510
20616
  "fn"
20511
20617
  ]);
@@ -20656,6 +20762,7 @@ var ComposableMCPServer = class extends Server {
20656
20762
  server: this,
20657
20763
  name,
20658
20764
  description,
20765
+ manual,
20659
20766
  mode,
20660
20767
  allToolNames,
20661
20768
  toolNameToDetailList,
@@ -20754,7 +20861,7 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20754
20861
  await options.setup(server);
20755
20862
  }
20756
20863
  for (const mcpcConfig of parsed) {
20757
- await server.compose(mcpcConfig.name, mcpcConfig.description ?? "", mcpcConfig.deps, mcpcConfig.options);
20864
+ await server.compose(mcpcConfig.name, mcpcConfig.description ?? "", mcpcConfig.deps, mcpcConfig.options, mcpcConfig.manual);
20758
20865
  }
20759
20866
  return server;
20760
20867
  }
package/index.mjs CHANGED
@@ -17800,6 +17800,23 @@ Execute a tool:
17800
17800
  "args": { /* tool parameters */ }
17801
17801
  }
17802
17802
  \`\`\`
17803
+ </format>`,
17804
+ /**
17805
+ * Compact system prompt for autonomous MCP execution (when manual is provided)
17806
+ *
17807
+ * Uses simplified description with progressive disclosure:
17808
+ * - Short description shown by default
17809
+ * - Use `man` command with args `{ manual: true }` to get full manual
17810
+ */
17811
+ AUTONOMOUS_EXECUTION_COMPACT: `Agentic tool \`{toolName}\`: {description}
17812
+
17813
+ Use \`man\` command with args \`{ tools: [], manual: true }\` to get the full manual, or \`{ tools: ["tool1"] }\` to get tool schemas.
17814
+
17815
+ <format>
17816
+ Get full manual: \`{ "tool": "man", "args": { "tools": [], "manual": true } }\`
17817
+ Get tool schemas: \`{ "tool": "man", "args": { "tools": ["tool1", "tool2"] } }\`
17818
+ Get both: \`{ "tool": "man", "args": { "tools": ["tool1"], "manual": true } }\`
17819
+ Execute a tool: \`{ "tool": "tool_name", "args": { /* parameters */ } }\`
17803
17820
  </format>`,
17804
17821
  /**
17805
17822
  * Tool description for sampling tools (shown in MCP tools list)
@@ -17877,6 +17894,7 @@ Adjust parameters and retry.`,
17877
17894
  };
17878
17895
  var CompiledPrompts = {
17879
17896
  autonomousExecution: p(SystemPrompts.AUTONOMOUS_EXECUTION),
17897
+ autonomousExecutionCompact: p(SystemPrompts.AUTONOMOUS_EXECUTION_COMPACT),
17880
17898
  samplingToolDescription: p(SystemPrompts.SAMPLING_TOOL_DESCRIPTION),
17881
17899
  aiLoopSystem: p(SystemPrompts.AI_LOOP_SYSTEM),
17882
17900
  actionSuccess: p(ResponseTemplates.ACTION_SUCCESS),
@@ -17943,7 +17961,7 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17943
17961
  },
17944
17962
  args: {
17945
17963
  type: "object",
17946
- description: `For "man": { tools: ["tool1", "tool2"] }. For other tools: tool parameters that strictly adhere to the tool's JSON schema.`
17964
+ description: `For "man": { tools: ["tool1", "tool2"], manual?: true }. For other tools: tool parameters that strictly adhere to the tool's JSON schema.`
17947
17965
  }
17948
17966
  },
17949
17967
  required: [
@@ -17954,7 +17972,10 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17954
17972
  },
17955
17973
  /**
17956
17974
  * Schema for "man" command args validation
17957
- * Expected format: { tools: ["tool1", "tool2"] }
17975
+ * Expected format: { tools: ["tool1", "tool2"], manual?: true }
17976
+ *
17977
+ * - Always require `tools`
17978
+ * - Allow empty tools only when `manual: true`
17958
17979
  */
17959
17980
  forMan: function(allToolNames) {
17960
17981
  return {
@@ -17968,16 +17989,50 @@ function createArgsDefFactory(_name, _allToolNames, _depGroups, _predefinedSteps
17968
17989
  errorMessage: {
17969
17990
  enum: `Invalid tool name. Available: ${allToolNames.join(", ")}`
17970
17991
  }
17971
- },
17972
- minItems: 1,
17973
- errorMessage: {
17974
- minItems: "At least one tool name is required"
17975
17992
  }
17993
+ },
17994
+ manual: {
17995
+ type: "boolean",
17996
+ description: "Set to true to get the full manual for this agent (progressive disclosure)."
17976
17997
  }
17977
17998
  },
17978
17999
  required: [
17979
18000
  "tools"
17980
18001
  ],
18002
+ additionalProperties: false,
18003
+ anyOf: [
18004
+ // manual-only (tools can be empty)
18005
+ {
18006
+ properties: {
18007
+ manual: {
18008
+ enum: [
18009
+ true
18010
+ ]
18011
+ },
18012
+ tools: {
18013
+ minItems: 0
18014
+ }
18015
+ },
18016
+ required: [
18017
+ "tools",
18018
+ "manual"
18019
+ ]
18020
+ },
18021
+ // tool schemas (require at least one tool)
18022
+ {
18023
+ properties: {
18024
+ tools: {
18025
+ minItems: 1,
18026
+ errorMessage: {
18027
+ minItems: "At least one tool name is required"
18028
+ }
18029
+ }
18030
+ },
18031
+ required: [
18032
+ "tools"
18033
+ ]
18034
+ }
18035
+ ],
17981
18036
  errorMessage: {
17982
18037
  required: {
17983
18038
  tools: 'Missing "tools" field. Expected: { tools: ["tool1", "tool2"] }'
@@ -18099,14 +18154,16 @@ var AgenticExecutor = class {
18099
18154
  allToolNames;
18100
18155
  toolNameToDetailList;
18101
18156
  server;
18157
+ manual;
18102
18158
  logger;
18103
18159
  tracingEnabled;
18104
18160
  toolSchemaMap;
18105
- constructor(name, allToolNames, toolNameToDetailList, server) {
18161
+ constructor(name, allToolNames, toolNameToDetailList, server, manual) {
18106
18162
  this.name = name;
18107
18163
  this.allToolNames = allToolNames;
18108
18164
  this.toolNameToDetailList = toolNameToDetailList;
18109
18165
  this.server = server;
18166
+ this.manual = manual;
18110
18167
  this.tracingEnabled = false;
18111
18168
  this.logger = createLogger(`mcpc.agentic.${name}`, server);
18112
18169
  this.toolSchemaMap = new Map(toolNameToDetailList);
@@ -18174,7 +18231,34 @@ var AgenticExecutor = class {
18174
18231
  };
18175
18232
  }
18176
18233
  const argsObj = args.args;
18177
- return this.handleManCommand(argsObj.tools, executeSpan);
18234
+ const tools = argsObj.tools ?? [];
18235
+ const wantManual = argsObj.manual === true;
18236
+ const wantTools = tools.length > 0;
18237
+ if (wantTools && wantManual) {
18238
+ const toolSchemas = this.handleManCommand(tools, null);
18239
+ const manualResult = this.handleManualRequest(null);
18240
+ if (executeSpan) {
18241
+ executeSpan.setAttributes({
18242
+ toolType: "man",
18243
+ requestType: "tools+manual"
18244
+ });
18245
+ endSpan(executeSpan);
18246
+ }
18247
+ return {
18248
+ content: [
18249
+ ...toolSchemas.content,
18250
+ {
18251
+ type: "text",
18252
+ text: "\n---\n"
18253
+ },
18254
+ ...manualResult.content
18255
+ ]
18256
+ };
18257
+ }
18258
+ if (wantManual) {
18259
+ return this.handleManualRequest(executeSpan);
18260
+ }
18261
+ return this.handleManCommand(tools, executeSpan);
18178
18262
  }
18179
18263
  const toolArgs = args.args || {};
18180
18264
  return await this.executeTool(tool2, toolArgs, executeSpan);
@@ -18197,6 +18281,44 @@ var AgenticExecutor = class {
18197
18281
  };
18198
18282
  }
18199
18283
  }
18284
+ /**
18285
+ * Handle `man { manual: true }` - return full manual for progressive disclosure
18286
+ */
18287
+ handleManualRequest(executeSpan) {
18288
+ if (executeSpan) {
18289
+ executeSpan.setAttributes({
18290
+ toolType: "man",
18291
+ requestType: "manual"
18292
+ });
18293
+ }
18294
+ if (!this.manual) {
18295
+ if (executeSpan) {
18296
+ endSpan(executeSpan);
18297
+ }
18298
+ return {
18299
+ content: [
18300
+ {
18301
+ type: "text",
18302
+ text: "No manual available for this agent."
18303
+ }
18304
+ ]
18305
+ };
18306
+ }
18307
+ if (executeSpan) {
18308
+ executeSpan.setAttributes({
18309
+ success: true
18310
+ });
18311
+ endSpan(executeSpan);
18312
+ }
18313
+ return {
18314
+ content: [
18315
+ {
18316
+ type: "text",
18317
+ text: this.manual
18318
+ }
18319
+ ]
18320
+ };
18321
+ }
18200
18322
  /**
18201
18323
  * Handle `man` command - return schemas for requested tools
18202
18324
  * @param requestedTools - Array of tool names (already validated via JSON Schema)
@@ -18238,15 +18360,29 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18238
18360
  * Execute a tool with runtime validation
18239
18361
  */
18240
18362
  async executeTool(tool2, toolArgs, executeSpan) {
18241
- const externalTool = this.toolNameToDetailList.find(([name]) => name === tool2);
18242
- if (externalTool) {
18243
- const [, toolDetail] = externalTool;
18363
+ const isExternalTool = this.toolNameToDetailList.some(([name]) => name === tool2);
18364
+ const isInternalTool = this.allToolNames.includes(tool2);
18365
+ if (!isExternalTool && !isInternalTool) {
18244
18366
  if (executeSpan) {
18245
18367
  executeSpan.setAttributes({
18246
- toolType: "external",
18247
- selectedTool: tool2
18368
+ toolType: "not_found",
18369
+ tool: tool2
18248
18370
  });
18371
+ endSpan(executeSpan);
18249
18372
  }
18373
+ return {
18374
+ content: [
18375
+ {
18376
+ type: "text",
18377
+ text: `Tool "${tool2}" not found. Available tools: ${this.allToolNames.join(", ")}`
18378
+ }
18379
+ ],
18380
+ isError: true
18381
+ };
18382
+ }
18383
+ if (isExternalTool) {
18384
+ const externalTool = this.toolNameToDetailList.find(([name]) => name === tool2);
18385
+ const [, toolDetail] = externalTool;
18250
18386
  if (toolDetail.inputSchema) {
18251
18387
  const rawSchema = extractJsonSchema(toolDetail.inputSchema);
18252
18388
  const validation = validateSchema(toolArgs, rawSchema);
@@ -18269,84 +18405,53 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18269
18405
  };
18270
18406
  }
18271
18407
  }
18272
- this.logger.debug({
18273
- message: "Executing external tool",
18274
- tool: tool2
18408
+ }
18409
+ const toolType = isExternalTool ? "external" : "internal";
18410
+ if (executeSpan) {
18411
+ executeSpan.setAttributes({
18412
+ toolType,
18413
+ selectedTool: tool2
18275
18414
  });
18276
- const result = await toolDetail.execute(toolArgs);
18415
+ }
18416
+ this.logger.debug({
18417
+ message: `Executing ${toolType} tool`,
18418
+ tool: tool2
18419
+ });
18420
+ try {
18421
+ const result = await this.server.callTool(tool2, toolArgs, {
18422
+ agentName: this.name
18423
+ });
18424
+ const callToolResult = result ?? {
18425
+ content: []
18426
+ };
18277
18427
  if (executeSpan) {
18278
18428
  executeSpan.setAttributes({
18279
18429
  success: true,
18280
- isError: !!result.isError,
18281
- resultContentLength: result.content?.length || 0
18430
+ isError: !!callToolResult.isError,
18431
+ resultContentLength: callToolResult.content?.length || 0
18282
18432
  });
18283
18433
  endSpan(executeSpan);
18284
18434
  }
18285
- return result;
18286
- }
18287
- if (this.allToolNames.includes(tool2)) {
18435
+ return callToolResult;
18436
+ } catch (error2) {
18288
18437
  if (executeSpan) {
18289
- executeSpan.setAttributes({
18290
- toolType: "internal",
18291
- selectedTool: tool2
18292
- });
18293
- }
18294
- this.logger.debug({
18295
- message: "Executing internal tool",
18296
- tool: tool2
18297
- });
18298
- try {
18299
- const result = await this.server.callTool(tool2, toolArgs, {
18300
- agentName: this.name
18301
- });
18302
- const callToolResult = result ?? {
18303
- content: []
18304
- };
18305
- if (executeSpan) {
18306
- executeSpan.setAttributes({
18307
- success: true,
18308
- isError: !!callToolResult.isError,
18309
- resultContentLength: callToolResult.content?.length || 0
18310
- });
18311
- endSpan(executeSpan);
18312
- }
18313
- return callToolResult;
18314
- } catch (error2) {
18315
- if (executeSpan) {
18316
- endSpan(executeSpan, error2);
18317
- }
18318
- this.logger.error({
18319
- message: "Error executing internal tool",
18320
- tool: tool2,
18321
- error: String(error2)
18322
- });
18323
- return {
18324
- content: [
18325
- {
18326
- type: "text",
18327
- text: `Error executing tool "${tool2}": ${error2 instanceof Error ? error2.message : String(error2)}`
18328
- }
18329
- ],
18330
- isError: true
18331
- };
18438
+ endSpan(executeSpan, error2);
18332
18439
  }
18333
- }
18334
- if (executeSpan) {
18335
- executeSpan.setAttributes({
18336
- toolType: "not_found",
18337
- tool: tool2
18440
+ this.logger.error({
18441
+ message: `Error executing ${toolType} tool`,
18442
+ tool: tool2,
18443
+ error: String(error2)
18338
18444
  });
18339
- endSpan(executeSpan);
18445
+ return {
18446
+ content: [
18447
+ {
18448
+ type: "text",
18449
+ text: `Error executing tool "${tool2}": ${error2 instanceof Error ? error2.message : String(error2)}`
18450
+ }
18451
+ ],
18452
+ isError: true
18453
+ };
18340
18454
  }
18341
- return {
18342
- content: [
18343
- {
18344
- type: "text",
18345
- text: `Tool "${tool2}" not found. Available tools: ${this.allToolNames.join(", ")}`
18346
- }
18347
- ],
18348
- isError: true
18349
- };
18350
18455
  }
18351
18456
  validate(args, schema) {
18352
18457
  return validateSchema(args, schema);
@@ -18354,19 +18459,18 @@ ${JSON.stringify(cleanedSchema, null, 2)}
18354
18459
  };
18355
18460
 
18356
18461
  // __mcpc__core_latest/node_modules/@mcpc/core/src/executors/agentic/agentic-tool-registrar.js
18357
- function registerAgenticTool(server, { description, name, allToolNames, depGroups, toolNameToDetailList }) {
18462
+ function registerAgenticTool(server, { description, name, allToolNames, depGroups, toolNameToDetailList, manual }) {
18358
18463
  const createArgsDef = createArgsDefFactory(name, allToolNames, depGroups, void 0, void 0);
18359
- const agenticExecutor = new AgenticExecutor(name, allToolNames, toolNameToDetailList, server);
18360
- description = CompiledPrompts.autonomousExecution({
18464
+ const agenticExecutor = new AgenticExecutor(name, allToolNames, toolNameToDetailList, server, manual);
18465
+ description = manual ? CompiledPrompts.autonomousExecutionCompact({
18466
+ toolName: name,
18467
+ description
18468
+ }) : CompiledPrompts.autonomousExecution({
18361
18469
  toolName: name,
18362
18470
  description
18363
18471
  });
18364
18472
  const agenticArgsDef = createArgsDef.forAgentic(allToolNames);
18365
- const argsDef = agenticArgsDef;
18366
- const schema = allToolNames.length > 0 ? argsDef : {
18367
- type: "object",
18368
- properties: {}
18369
- };
18473
+ const schema = agenticArgsDef;
18370
18474
  server.tool(name, description, jsonSchema(createModelCompatibleJSONSchema(schema)), async (args) => {
18371
18475
  return await agenticExecutor.execute(args, schema);
18372
18476
  });
@@ -18385,7 +18489,8 @@ var createAgenticModePlugin = () => ({
18385
18489
  name: context2.name,
18386
18490
  allToolNames: context2.allToolNames,
18387
18491
  depGroups: context2.depGroups,
18388
- toolNameToDetailList: context2.toolNameToDetailList
18492
+ toolNameToDetailList: context2.toolNameToDetailList,
18493
+ manual: context2.manual
18389
18494
  });
18390
18495
  }
18391
18496
  });
@@ -20488,9 +20593,10 @@ var ComposableMCPServer = class extends Server {
20488
20593
  mcpServers: {}
20489
20594
  }, options = {
20490
20595
  mode: "agentic"
20491
- }) {
20596
+ }, manual) {
20492
20597
  const refDesc = options.refs?.join("") ?? "";
20493
- const { tagToResults } = parseTags(description + refDesc, [
20598
+ const combinedSource = description + refDesc + (manual ?? "");
20599
+ const { tagToResults } = parseTags(combinedSource, [
20494
20600
  "tool",
20495
20601
  "fn"
20496
20602
  ]);
@@ -20641,6 +20747,7 @@ var ComposableMCPServer = class extends Server {
20641
20747
  server: this,
20642
20748
  name,
20643
20749
  description,
20750
+ manual,
20644
20751
  mode,
20645
20752
  allToolNames,
20646
20753
  toolNameToDetailList,
@@ -20739,7 +20846,7 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20739
20846
  await options.setup(server);
20740
20847
  }
20741
20848
  for (const mcpcConfig of parsed) {
20742
- await server.compose(mcpcConfig.name, mcpcConfig.description ?? "", mcpcConfig.deps, mcpcConfig.options);
20849
+ await server.compose(mcpcConfig.name, mcpcConfig.description ?? "", mcpcConfig.deps, mcpcConfig.options, mcpcConfig.manual);
20743
20850
  }
20744
20851
  return server;
20745
20852
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcpc-tech/core",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "homepage": "https://jsr.io/@mcpc/core",
5
5
  "dependencies": {
6
6
  "@ai-sdk/provider": "^2.0.0",
@@ -79,6 +79,6 @@ export declare class ComposableMCPServer extends Server {
79
79
  /**
80
80
  * Close the server and ensure all plugins are disposed
81
81
  */ override close(): Promise<void>;
82
- compose(name: string | null, description: string, depsConfig?: MCPSetting, options?: ComposeDefinition["options"]): Promise<void>;
82
+ compose(name: string | null, description: string, depsConfig?: MCPSetting, options?: ComposeDefinition["options"], manual?: string): Promise<void>;
83
83
  }
84
84
  //# sourceMappingURL=compose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC8C;AACzD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,UAAU,6BAA6B;AACrD,SACE,MAAM,EACN,KAAK,aAAa,oDAC4C;AAGhE,cAAc,iBAAiB,kCAAkC;AACjE,cAAc,UAAU,EAAE,YAAY,qBAAqB;AAM3D,cAA4B,UAAU,EAAE,UAAU,4BAA4B;AAe9E,OAAO,cAAM,4BAA4B;EACvC,QAAQ,mBAA6B;EACrC,QAAQ,iBAAyB;EACjC,QAAQ,YAAsC;EAG9C,IAAI,mBAAmB,IAAI,MAAM,EAAE,MAAM;EAIzC,YAAY,aAAa,cAAc,EAAE,SAAS,aAAa;EAiB/D;;GAEC,GACD,AAAM,sBAAsB,QAAQ,IAAI;UAqB1B;UAsDN;EAIR,KAAK,GACH,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,cAAc,OAAO,KAAK,UAAU,EACpC,KAAK,MAAM,GAAG,QAAQ,OAAO,KAAK,OAAO,EACzC;IAAW,WAAW,OAAO;IAAE,SAAS,OAAO;IAAE,UAAU;GACvD;EA+JN;;GAEC,GACD,gBAAgB,MAAM,MAAM,GAAG,eAAe,SAAS;EAIvD;;GAEC,GACD,eAAe,QAAQ,MAAM,GAAG,aAAa,SAAS;EAItD;;;GAGC,GACD,AAAM,SACJ,MAAM,MAAM,EACZ,MAAM,OAAO,EACb;IAAW,YAAY,MAAM;IAAE,iBAAiB,MAAM;GAAS,GAC9D,QAAQ,OAAO;EA4JlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,kBAAkB;EAIlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,wBAAwB,MAAM;EAM9B;;GAEC,GACD,oBACE,MAAM,MAAM;IACT,aAAa,MAAM;IAAE,QAAQ;MAAe,SAAS;EAI1D;;GAEC,GACD,aAAa,MAAM,MAAM,GAAG,OAAO;EAInC;;GAEC,GACD,WAAW,UAAU,MAAM,EAAE,QAAQ,UAAU,GAAG,IAAI;EAItD;;GAEC,GACD,cAAc,UAAU,MAAM,GAAG,aAAa,SAAS;EAIvD;;GAEC,GACD,iBAAiB,UAAU,MAAM,GAAG,OAAO;EAI3C;;GAEC,GACD,AAAM,UAAU,QAAQ,UAAU,GAAG,QAAQ,IAAI;EAIjD;;GAEC,GACD,AAAM,mBACJ,YAAY,MAAM,EAClB;IAAW,QAAQ,OAAO;GAAoB,GAC7C,QAAQ,IAAI;UAOD;EAOd;;GAEC,GACD,AAAM,kBAAkB,QAAQ,IAAI;EAIpC;;GAEC,GACD,SAAe,SAAS,QAAQ,IAAI;EAK9B,QACJ,MAAM,MAAM,GAAG,IAAI,EACnB,aAAa,MAAM,EACnB,aAAY,UAA+B,EAC3C,UAAS,kBAAkB,UAAgC;AAiR/D"}
1
+ {"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC8C;AACzD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,UAAU,6BAA6B;AACrD,SACE,MAAM,EACN,KAAK,aAAa,oDAC4C;AAGhE,cAAc,iBAAiB,kCAAkC;AACjE,cAAc,UAAU,EAAE,YAAY,qBAAqB;AAM3D,cAA4B,UAAU,EAAE,UAAU,4BAA4B;AAe9E,OAAO,cAAM,4BAA4B;EACvC,QAAQ,mBAA6B;EACrC,QAAQ,iBAAyB;EACjC,QAAQ,YAAsC;EAG9C,IAAI,mBAAmB,IAAI,MAAM,EAAE,MAAM;EAIzC,YAAY,aAAa,cAAc,EAAE,SAAS,aAAa;EAiB/D;;GAEC,GACD,AAAM,sBAAsB,QAAQ,IAAI;UAqB1B;UAsDN;EAIR,KAAK,GACH,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,cAAc,OAAO,KAAK,UAAU,EACpC,KAAK,MAAM,GAAG,QAAQ,OAAO,KAAK,OAAO,EACzC;IAAW,WAAW,OAAO;IAAE,SAAS,OAAO;IAAE,UAAU;GACvD;EA+JN;;GAEC,GACD,gBAAgB,MAAM,MAAM,GAAG,eAAe,SAAS;EAIvD;;GAEC,GACD,eAAe,QAAQ,MAAM,GAAG,aAAa,SAAS;EAItD;;;GAGC,GACD,AAAM,SACJ,MAAM,MAAM,EACZ,MAAM,OAAO,EACb;IAAW,YAAY,MAAM;IAAE,iBAAiB,MAAM;GAAS,GAC9D,QAAQ,OAAO;EA4JlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,kBAAkB;EAIlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,wBAAwB,MAAM;EAM9B;;GAEC,GACD,oBACE,MAAM,MAAM;IACT,aAAa,MAAM;IAAE,QAAQ;MAAe,SAAS;EAI1D;;GAEC,GACD,aAAa,MAAM,MAAM,GAAG,OAAO;EAInC;;GAEC,GACD,WAAW,UAAU,MAAM,EAAE,QAAQ,UAAU,GAAG,IAAI;EAItD;;GAEC,GACD,cAAc,UAAU,MAAM,GAAG,aAAa,SAAS;EAIvD;;GAEC,GACD,iBAAiB,UAAU,MAAM,GAAG,OAAO;EAI3C;;GAEC,GACD,AAAM,UAAU,QAAQ,UAAU,GAAG,QAAQ,IAAI;EAIjD;;GAEC,GACD,AAAM,mBACJ,YAAY,MAAM,EAClB;IAAW,QAAQ,OAAO;GAAoB,GAC7C,QAAQ,IAAI;UAOD;EAOd;;GAEC,GACD,AAAM,kBAAkB,QAAQ,IAAI;EAIpC;;GAEC,GACD,SAAe,SAAS,QAAQ,IAAI;EAK9B,QACJ,MAAM,MAAM,GAAG,IAAI,EACnB,aAAa,MAAM,EACnB,aAAY,UAA+B,EAC3C,UAAS,kBAAkB,UAAgC,EAC3D,SAAS,MAAM;AAoRnB"}
@@ -65,6 +65,7 @@ export interface ToolPlugin {
65
65
  server: ComposableMCPServer;
66
66
  name: string;
67
67
  description: string;
68
+ /** Optional manual for progressive disclosure */ manual?: string;
68
69
  mode: ExecutionMode | string;
69
70
  allToolNames: string[];
70
71
  toolNameToDetailList: [string, ComposedTool][];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-types.d.ts","sources":["../../src/plugin-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-types.d.ts","sources":["../../src/plugin-types.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export interface ComposeDefinition {
12
12
  /**
13
13
  * Description of the composed agent's purpose and capabilities.
14
14
  */ description?: string;
15
+ /**
16
+ * Optional manual for progressive disclosure.
17
+ * If provided, description will be short and manual fetched via `man { tools: [], manual: true }`.
18
+ */ manual?: string;
15
19
  deps?: MCPSetting;
16
20
  /**
17
21
  * Global plugins to load and apply to all tools
@@ -1 +1 @@
1
- {"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAChD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;AAC7C,cAAc,aAAa,6BAA6B;AAExD,iBAAiB;EACf;;;GAGC,GACD,MAAM,MAAM,GAAG,IAAI;EACnB;;GAEC,GACD,cAAc,MAAM;EACpB,OAAO;EAEP;;;;;;;;;;;GAWC,GACD,WAAW,aAAa,MAAM;EAE9B;IACE;;;;;;KAMC,GACD,OAAO;IAEP;;KAEC,GACD,iBAAiB;IAEjB;;;;KAIC,GACD;MACE;QACE,QAAQ;UAAQ,OAAO,MAAM;;QAC7B,eAAe,MAAM;QACrB,gBAAgB,MAAM;QACtB,uBAAuB,MAAM;;;IAIjC;;;;KAIC,GACD;MACE,SAAS,MAAM;MACf,OAAO,MAAM;MACb,MAAM,OAAO,MAAM,EAAE,MAAM;MAC3B;QACE,MAAM,MAAM;QACZ,aAAa;UACX,MAAM,MAAM;UACZ,SAAS,MAAM;UACf,OAAO,MAAM;UACb,MAAM,OAAO,MAAM,EAAE,MAAM;;;MAG/B,iBAAiB,OAAO;;IAG1B;;;;KAIC,GACD,WAAW,MAAM;IAEjB;;;;KAIC,GACD,YAAY,MAAM;IAElB;;;;KAIC,GACD,iBAAiB,OAAO;IAExB;;;;;KAKC,GACD;;;KAGC,GACD,OAAO,MAAM;;;AAIjB;;;;;;;;;;;;;CAaC,GACD,YAAY,eAAe,oBAAoB,MAAM;AAIrD,iBAAiB;GACd,KAAK,MAAM,GAAG;;AAGjB;;;CAGC,GACD,YAAY,uBACV,UAAU,MAAM,KACb,QAAQ;AAKb;;CAEC,GACD,OAAO,iBAAS,uBAAuB,QAAQ,mBAAmB,GAAG,IAAI;AAIzE;;CAEC,GACD,OAAO,iBAAS,eAAe,MAAM,MAAM,GAAG,OAAO;AAgCrD,OAAO,iBAAS,iBACd,OAAO,mBAAmB,GACzB;AAIH;;CAEC,GACD,iBAAiB;EACf;;;;;;;;;GASC,GACD,WAAW,aAAa,MAAM;EAE9B;;;GAGC,GACD,SAAS,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI;;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEC,GACD,OAAO,iBAAe,KACpB,YAAY,6BAA6B,oBAAoB,EAC7D,cAAc,cAAc,EAC5B,iBACI,gBACE,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI,EAAE,GAC1D,QAAQ,oBAAoB"}
1
+ {"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAChD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;AAC7C,cAAc,aAAa,6BAA6B;AAExD,iBAAiB;EACf;;;GAGC,GACD,MAAM,MAAM,GAAG,IAAI;EACnB;;GAEC,GACD,cAAc,MAAM;EACpB;;;GAGC,GACD,SAAS,MAAM;EACf,OAAO;EAEP;;;;;;;;;;;GAWC,GACD,WAAW,aAAa,MAAM;EAE9B;IACE;;;;;;KAMC,GACD,OAAO;IAEP;;KAEC,GACD,iBAAiB;IAEjB;;;;KAIC,GACD;MACE;QACE,QAAQ;UAAQ,OAAO,MAAM;;QAC7B,eAAe,MAAM;QACrB,gBAAgB,MAAM;QACtB,uBAAuB,MAAM;;;IAIjC;;;;KAIC,GACD;MACE,SAAS,MAAM;MACf,OAAO,MAAM;MACb,MAAM,OAAO,MAAM,EAAE,MAAM;MAC3B;QACE,MAAM,MAAM;QACZ,aAAa;UACX,MAAM,MAAM;UACZ,SAAS,MAAM;UACf,OAAO,MAAM;UACb,MAAM,OAAO,MAAM,EAAE,MAAM;;;MAG/B,iBAAiB,OAAO;;IAG1B;;;;KAIC,GACD,WAAW,MAAM;IAEjB;;;;KAIC,GACD,YAAY,MAAM;IAElB;;;;KAIC,GACD,iBAAiB,OAAO;IAExB;;;;;KAKC,GACD;;;KAGC,GACD,OAAO,MAAM;;;AAIjB;;;;;;;;;;;;;CAaC,GACD,YAAY,eAAe,oBAAoB,MAAM;AAIrD,iBAAiB;GACd,KAAK,MAAM,GAAG;;AAGjB;;;CAGC,GACD,YAAY,uBACV,UAAU,MAAM,KACb,QAAQ;AAKb;;CAEC,GACD,OAAO,iBAAS,uBAAuB,QAAQ,mBAAmB,GAAG,IAAI;AAIzE;;CAEC,GACD,OAAO,iBAAS,eAAe,MAAM,MAAM,GAAG,OAAO;AAgCrD,OAAO,iBAAS,iBACd,OAAO,mBAAmB,GACzB;AAIH;;CAEC,GACD,iBAAiB;EACf;;;;;;;;;GASC,GACD,WAAW,aAAa,MAAM;EAE9B;;;GAGC,GACD,SAAS,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI;;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEC,GACD,OAAO,iBAAe,KACpB,YAAY,6BAA6B,oBAAoB,EAC7D,cAAc,cAAc,EAC5B,iBACI,gBACE,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI,EAAE,GAC1D,QAAQ,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,aAAa,OAAO,MAAM,EAAE,OAAO;AAE/C,YAAY,gBAAgB,MAAM,OAAO,EAAE,QAAQ,OAAO,KAAK,OAAO;AAEtE,iBAAiB;EACf,gBAAgB,MAAM;EACtB;;;GAGC,GACD,YAAY,OAAO;;AAWrB;;;;;;;;CAQC,GACD,YAAY,WAAW,MAAM,cAAc,EAAE,MAAM,CAAC,CAAC;AACrD,YAAY,YACR,KACA,UACA,YACA,iBACA;AACJ,YAAY,UAAU,OAAO;AAE7B,YAAY,cACP,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,YAAY,aAC/C,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,WAAW"}
1
+ {"version":3,"file":"types.d.ts","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,aAAa,OAAO,MAAM,EAAE,OAAO;AAE/C,YAAY,gBAAgB,MAAM,OAAO,EAAE,QAAQ,OAAO,KAAK,OAAO;AAEtE,iBAAiB;EACf,gBAAgB,MAAM;EACtB;;;GAGC,GACD,YAAY,OAAO;;AAarB;;;;;;;;CAQC,GACD,YAAY,WAAW,MAAM,cAAc,EAAE,MAAM,CAAC,CAAC;AACrD,YAAY,YACR,KACA,UACA,YACA,iBACA;AACJ,YAAY,UAAU,OAAO;AAE7B,YAAY,cACP,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,YAAY,aAC/C,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,WAAW"}