text, err := agent.Prompt()
require.NoError(t, err)
- require.Equal(t, prompt(agent.config.Name, ""), text)
+ require.Equal(t, prompt(agent.config.Name, filepath.Join(dir, agentInstructionsFileName), ""), text)
require.NoError(t, os.WriteFile(filepath.Join(dir, agentInstructionsFileName), []byte("I am Lena.\n"), 0o600))
+
text, err = agent.Prompt()
require.NoError(t, err)
- require.Equal(t, prompt(agent.config.Name, "I am Lena."), text)
+ require.Equal(t, prompt(agent.config.Name, filepath.Join(dir, agentInstructionsFileName), "I am Lena."), text)
+}
+
+func TestAgentPromptUsesAnAbsoluteInstructionsPath(t *testing.T) {
+ dir := t.TempDir()
+ workdir, err := os.Getwd()
+ require.NoError(t, err)
+
+ relative, err := filepath.Rel(workdir, dir)
+ require.NoError(t, err)
+ require.False(t, filepath.IsAbs(relative))
+
+ agent, err := openAgent(relative)
+ require.NoError(t, err)
+
+ text, err := agent.Prompt()
+ require.NoError(t, err)
+ require.Contains(t, text, "The user's instructions live in the file "+filepath.Join(dir, agentInstructionsFileName)+",")
}
// agentWriteTestConfig writes config as the config.json of the agent in dir.