@easynet/agent-tool 1.0.88 → 1.0.89

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.
@@ -1645,6 +1645,7 @@ var PTCRuntime = class {
1645
1645
  });
1646
1646
  }
1647
1647
  const validatedOutput = validateOutput(pipeline.spec, pipeline.result, this.validator);
1648
+ const toolFeedback = asToolReturnedFeedback(validatedOutput);
1648
1649
  const durationMs = Date.now() - startTime;
1649
1650
  const builtEvidence = buildEvidence({
1650
1651
  spec: pipeline.spec,
@@ -1668,6 +1669,7 @@ var PTCRuntime = class {
1668
1669
  return {
1669
1670
  ok: true,
1670
1671
  result: validatedOutput,
1672
+ feedback: toolFeedback ?? void 0,
1671
1673
  evidence,
1672
1674
  raw: this.config.includeRaw !== false ? pipeline.raw : void 0
1673
1675
  };
@@ -1710,6 +1712,25 @@ function asToolReturnedError(result) {
1710
1712
  }
1711
1713
  return { message: msg.trim(), details: r.details };
1712
1714
  }
1715
+ function asToolReturnedFeedback(result) {
1716
+ if (result == null || typeof result !== "object" || Array.isArray(result)) return null;
1717
+ const rec = result;
1718
+ const feedbackRaw = rec.feedback;
1719
+ if (!feedbackRaw || typeof feedbackRaw !== "object" || Array.isArray(feedbackRaw)) return null;
1720
+ const feedback = feedbackRaw;
1721
+ const status = typeof feedback.status === "string" ? feedback.status.trim() : "";
1722
+ const allowed = /* @__PURE__ */ new Set(["resolved", "needs_retry", "needs_input", "blocked"]);
1723
+ if (!allowed.has(status)) return null;
1724
+ const message = typeof feedback.message === "string" ? feedback.message.trim() : "";
1725
+ if (!message) return null;
1726
+ return {
1727
+ status,
1728
+ message,
1729
+ hint: typeof feedback.hint === "string" ? feedback.hint : void 0,
1730
+ suggested_intent_patch: feedback.suggested_intent_patch && typeof feedback.suggested_intent_patch === "object" && !Array.isArray(feedback.suggested_intent_patch) ? feedback.suggested_intent_patch : void 0,
1731
+ suggested_tool_args: feedback.suggested_tool_args && typeof feedback.suggested_tool_args === "object" && !Array.isArray(feedback.suggested_tool_args) ? feedback.suggested_tool_args : void 0
1732
+ };
1733
+ }
1713
1734
  function buildInputSchemaHint(inputSchema) {
1714
1735
  const schema = inputSchema;
1715
1736
  const required = schema.required;
@@ -2198,6 +2219,46 @@ async function createRuntimeFromConfig(options = {}) {
2198
2219
  return createRuntimeFromConfigSync(options);
2199
2220
  }
2200
2221
 
2222
+ // src/core/runtime/toolObservation.ts
2223
+ var PTC_FEEDBACK_MARKER = "__PTC_FEEDBACK__:";
2224
+ function tryStringify(value) {
2225
+ if (typeof value === "string") return value;
2226
+ try {
2227
+ return JSON.stringify(value);
2228
+ } catch {
2229
+ return String(value);
2230
+ }
2231
+ }
2232
+ function extractObservationText(value) {
2233
+ if (!value || typeof value !== "object") return null;
2234
+ const record = value;
2235
+ const nested = record.result;
2236
+ if (nested && typeof nested === "object" && typeof nested.output === "string") {
2237
+ return nested.output;
2238
+ }
2239
+ if (typeof record.output === "string") return record.output;
2240
+ return null;
2241
+ }
2242
+ function encodeFeedback(feedback, includeFeedbackMarker) {
2243
+ if (!includeFeedbackMarker || !feedback) return "";
2244
+ return `${PTC_FEEDBACK_MARKER}${tryStringify(feedback)}
2245
+ `;
2246
+ }
2247
+ function toToolObservationText(result, opts = {}) {
2248
+ const includeFeedbackMarker = opts.includeFeedbackMarker === true;
2249
+ if (result.ok) {
2250
+ const prefix = encodeFeedback(result.feedback, includeFeedbackMarker);
2251
+ if (typeof result.result === "string") return `${prefix}${result.result}`;
2252
+ const observation = extractObservationText(result.result);
2253
+ if (observation != null) return `${prefix}${observation}`;
2254
+ return `${prefix}${tryStringify(result.result)}`;
2255
+ }
2256
+ const err = result.error;
2257
+ const message = err?.message ?? "Tool failed";
2258
+ const details = err?.details;
2259
+ return tryStringify(details != null ? { error: message, kind: err?.kind, details } : { error: message, kind: err?.kind });
2260
+ }
2261
+
2201
2262
  // src/api/expose/mcpServer.ts
2202
2263
  var DEFAULT_CTX = {
2203
2264
  requestId: `mcp-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,
@@ -2240,14 +2301,13 @@ async function createMcpServerWithTools(runtime, options) {
2240
2301
  ctx
2241
2302
  );
2242
2303
  if (result.ok) {
2243
- return { content: [{ type: "text", text: JSON.stringify(result.result) }] };
2304
+ return { content: [{ type: "text", text: toToolObservationText(result) }] };
2244
2305
  }
2245
- const err = result.error;
2246
2306
  return {
2247
2307
  content: [
2248
2308
  {
2249
2309
  type: "text",
2250
- text: JSON.stringify({ error: err?.message ?? "Tool failed", kind: err?.kind })
2310
+ text: toToolObservationText(result)
2251
2311
  }
2252
2312
  ],
2253
2313
  isError: true
@@ -2713,6 +2773,6 @@ async function createHttpService(runtimeOrConfig, options = {}) {
2713
2773
  };
2714
2774
  }
2715
2775
 
2716
- export { createHttpService, createMCPServerStreamableHttp, createRuntimeFromConfig, createRuntimeFromConfigSync, expandToolDescriptorsToRegistryNames, fileDescriptorToPackagePrefix, findAndLoadToolConfig, getDisplayScope, isBarePackageDescriptor, loadAllExtensionsFromToolYamlSync, loadToolConfig, npmDescriptorToPackagePrefixWithVersion, resolveSandboxedPath, resolveToolDescriptor, runMCPServerOverStdio };
2717
- //# sourceMappingURL=chunk-BBNQ6AWK.js.map
2718
- //# sourceMappingURL=chunk-BBNQ6AWK.js.map
2776
+ export { createHttpService, createMCPServerStreamableHttp, createRuntimeFromConfig, createRuntimeFromConfigSync, expandToolDescriptorsToRegistryNames, fileDescriptorToPackagePrefix, findAndLoadToolConfig, getDisplayScope, isBarePackageDescriptor, loadAllExtensionsFromToolYamlSync, loadToolConfig, npmDescriptorToPackagePrefixWithVersion, resolveSandboxedPath, resolveToolDescriptor, runMCPServerOverStdio, toToolObservationText };
2777
+ //# sourceMappingURL=chunk-GAC3N3KH.js.map
2778
+ //# sourceMappingURL=chunk-GAC3N3KH.js.map