@gt-fe/eap-runtime 0.0.30 → 0.0.32

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.
Files changed (41) hide show
  1. package/dist/api/handlers/invoke.handler.js +9 -5
  2. package/dist/api/handlers/stream.handler.js +15 -4
  3. package/dist/common/index.d.ts +1 -0
  4. package/dist/common/index.js +1 -0
  5. package/dist/common/user-root.d.ts +8 -0
  6. package/dist/common/user-root.js +19 -0
  7. package/dist/graph/adapters/langgraph.adapter.js +57 -10
  8. package/dist/graph/adapters/skill-entry-span.d.ts +4 -2
  9. package/dist/graph/adapters/skill-entry-span.js +10 -3
  10. package/dist/graph/adapters/skill-read.d.ts +18 -2
  11. package/dist/graph/adapters/skill-read.js +66 -31
  12. package/dist/graph/contracts/executable-graph.d.ts +7 -1
  13. package/dist/graph/nodes/tool-node.d.ts +6 -1
  14. package/dist/graph/nodes/tool-node.js +18 -3
  15. package/dist/registry/deployment-snapshot.d.ts +1 -1
  16. package/dist/registry/deployment-snapshot.js +6 -3
  17. package/dist/registry/skill-tree.d.ts +1 -1
  18. package/dist/registry/skill-tree.js +11 -6
  19. package/dist/runtime/agent-runtime.js +36 -5
  20. package/dist/session/persist-turn-messages.d.ts +13 -6
  21. package/dist/session/persist-turn-messages.js +4 -0
  22. package/dist/sse/events/tool-events.d.ts +29 -0
  23. package/dist/tool/harness-command.d.ts +1 -1
  24. package/dist/tool/harness-command.js +8 -7
  25. package/dist/tool/harness-primitives.d.ts +4 -10
  26. package/dist/tool/harness-primitives.js +189 -130
  27. package/dist/tool/index.d.ts +2 -0
  28. package/dist/tool/index.js +2 -0
  29. package/dist/tool/inject-public-artifact-links.d.ts +32 -0
  30. package/dist/tool/inject-public-artifact-links.js +142 -0
  31. package/dist/tool/skill-relative-read.d.ts +14 -0
  32. package/dist/tool/skill-relative-read.js +98 -0
  33. package/dist/tool/static-artifact-url.d.ts +66 -0
  34. package/dist/tool/static-artifact-url.js +561 -0
  35. package/dist/tool/system-prompt-builder.js +8 -4
  36. package/dist/tool/tool-event-emitter.d.ts +2 -1
  37. package/dist/tool/tool-event-emitter.js +30 -18
  38. package/dist/tool/tool-executor.interface.d.ts +13 -1
  39. package/dist/tool/tool-result-injector.d.ts +3 -3
  40. package/dist/tool/tool-result-injector.js +7 -3
  41. package/package.json +2 -2
@@ -53,7 +53,7 @@ export interface ToolCallRequest {
53
53
  */
54
54
  execution?: unknown;
55
55
  /**
56
- * Harness 写根:`{agentDir}/users/<userId>`(含用户 skills)。
56
+ * Harness 写根:`dirname(agentDir)/users/<userId>`(含用户 skills)。
57
57
  * 未传时用构造时 workdir;都缺则拒绝 write_file / execute_command。
58
58
  */
59
59
  jailWorkdir?: string;
@@ -115,6 +115,18 @@ export interface ToolCallResult {
115
115
  size: number;
116
116
  url: string;
117
117
  };
118
+ /** 与 `file` 同一形状;`file` 为第一条,其余在此 */
119
+ files?: Array<{
120
+ fileName: string;
121
+ fileType: string;
122
+ size: number;
123
+ url: string;
124
+ }>;
125
+ /**
126
+ * `read_file` 实际读到的文件。只给 Runtime 记 Skill 节点 / SSE,不进模型正文。
127
+ * 没有该字段时不记 Skill 节点,不再用 `arguments.path` 猜。
128
+ */
129
+ resolvedPath?: string;
118
130
  }
119
131
  export interface LLMToolCall {
120
132
  id: string;
@@ -21,7 +21,7 @@ import type { ToolCallResult } from './tool-executor.interface.js';
21
21
  export interface ToolMessage extends GraphMessage {
22
22
  /** 固定为 'tool' */
23
23
  role: 'tool';
24
- /** Tool 执行结果内容(成功时为结果,失败时为错误信息) */
24
+ /** 成功为结果;失败且有交付物时保留原 content,其后附 `[Tool Error]` */
25
25
  content: string;
26
26
  /** 对应的 tool_call ID,LLM 用此匹配原始请求 */
27
27
  toolCallId: string;
@@ -44,7 +44,7 @@ export declare class ToolResultInjector {
44
44
  *
45
45
  * 每个 ToolCallResult 转换为一条 role='tool' 的消息,包含:
46
46
  * - toolCallId: 供 LLM 匹配原始 tool_calls 请求
47
- * - content: 成功时为 result.content,失败时为错误描述
47
+ * - content: 成功为 result.content;失败有交付物时保留正文并附 `[Tool Error]`
48
48
  * - toolName/success: 辅助信息
49
49
  *
50
50
  * 返回全新的 GraphState 对象(不修改原始 state),
@@ -58,7 +58,7 @@ export declare class ToolResultInjector {
58
58
  /**
59
59
  * 将单个 ToolCallResult 转换为 ToolMessage
60
60
  *
61
- * 失败时 content 为格式化的错误信息,方便 LLM 理解并决策下一步。
61
+ * 失败且有交付物时保留原 content,其后附 `[Tool Error]`;无交付物时 content 为错误信息。
62
62
  */
63
63
  private buildToolMessage;
64
64
  }
@@ -11,6 +11,7 @@
11
11
  * @see requirements.md Requirement 8 AC4
12
12
  */
13
13
  import { toModelVisibleToolContent } from './model-visible-tool-content.js';
14
+ import { toolResultHasArtifacts } from './inject-public-artifact-links.js';
14
15
  // ─────────────────────────────────────────────
15
16
  // ToolResultInjector
16
17
  // ─────────────────────────────────────────────
@@ -28,7 +29,7 @@ export class ToolResultInjector {
28
29
  *
29
30
  * 每个 ToolCallResult 转换为一条 role='tool' 的消息,包含:
30
31
  * - toolCallId: 供 LLM 匹配原始 tool_calls 请求
31
- * - content: 成功时为 result.content,失败时为错误描述
32
+ * - content: 成功为 result.content;失败有交付物时保留正文并附 `[Tool Error]`
32
33
  * - toolName/success: 辅助信息
33
34
  *
34
35
  * 返回全新的 GraphState 对象(不修改原始 state),
@@ -48,12 +49,14 @@ export class ToolResultInjector {
48
49
  /**
49
50
  * 将单个 ToolCallResult 转换为 ToolMessage
50
51
  *
51
- * 失败时 content 为格式化的错误信息,方便 LLM 理解并决策下一步。
52
+ * 失败且有交付物时保留原 content,其后附 `[Tool Error]`;无交付物时 content 为错误信息。
52
53
  */
53
54
  buildToolMessage(result) {
54
55
  const content = result.success
55
56
  ? toModelVisibleToolContent(result.content)
56
- : `[Tool Error] ${result.error ?? 'Unknown error'}`;
57
+ : toolResultHasArtifacts(result) && result.content
58
+ ? `${toModelVisibleToolContent(result.content)}\n[Tool Error] ${result.error ?? 'Unknown error'}`
59
+ : `[Tool Error] ${result.error ?? 'Unknown error'}`;
57
60
  return {
58
61
  role: 'tool',
59
62
  content,
@@ -61,6 +64,7 @@ export class ToolResultInjector {
61
64
  toolName: result.toolName,
62
65
  success: result.success,
63
66
  ...(result.file ? { file: result.file } : {}),
67
+ ...(result.files?.length ? { files: result.files } : {}),
64
68
  };
65
69
  }
66
70
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gt-fe/eap-runtime",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "description": "Enterprise Agent Platform — Runtime核心:Graph执行引擎、Task生命周期、Session管理、Checkpoint持久化",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "ioredis": "^5.4.0",
21
21
  "pg": "^8.13.0",
22
22
  "yaml": "^2.6.1",
23
- "@gt-fe/eap-contracts": "0.0.16"
23
+ "@gt-fe/eap-contracts": "0.0.17"
24
24
  },
25
25
  "publishConfig": {
26
26
  "registry": "https://registry.npmjs.org/",