Skip to content

Commit 1e2ab78

Browse files
authored
Fix: Fix tool reference to properly index gpt files (#1731)
Signed-off-by: Daishan Peng <[email protected]>
1 parent c505de6 commit 1e2ab78

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

pkg/tools/resolve.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package tools
33
import (
44
"context"
55
"fmt"
6+
"path/filepath"
67
"strings"
78
"time"
89

@@ -51,12 +52,29 @@ func ResolveToolReferences(ctx context.Context, gptClient *gptscript.GPTScript,
5152
return result, nil
5253
}
5354

54-
for _, peerToolID := range tool.LocalTools {
55+
var exportToolIDs []string
56+
for _, export := range tool.Export {
57+
tools := tool.ToolMapping[export]
58+
for _, t := range tools {
59+
exportToolIDs = append(exportToolIDs, t.ToolID)
60+
}
61+
}
62+
63+
for _, peerToolID := range exportToolIDs {
5564
if peerToolID == prg.EntryToolID {
5665
continue
5766
}
5867

5968
peerTool := prg.ToolSet[peerToolID]
69+
ref, _, _ := strings.Cut(peerToolID, ":")
70+
toolRef := reference
71+
if strings.HasPrefix(ref, "./") || strings.HasPrefix(ref, "../") {
72+
relPath, err := filepath.Rel(peerTool.WorkingDir, ref)
73+
if err != nil {
74+
return nil, err
75+
}
76+
toolRef = filepath.Join(toolRef, relPath)
77+
}
6078
if isValidTool(peerTool) {
6179
toolName := resolveToolReferenceName(toolType, false, peerTool.MetaData["category"] == "Capability", name, peerTool.Name)
6280
result = append(result, &v1.ToolReference{
@@ -68,7 +86,7 @@ func ResolveToolReferences(ctx context.Context, gptClient *gptscript.GPTScript,
6886
},
6987
Spec: v1.ToolReferenceSpec{
7088
Type: toolType,
71-
Reference: fmt.Sprintf("%s from %s", peerTool.Name, reference),
89+
Reference: fmt.Sprintf("%s from %s", peerTool.Name, toolRef),
7290
Builtin: builtin,
7391
BundleToolName: entryTool.Name,
7492
},

0 commit comments

Comments
 (0)