Add ACP session system prompt setter (#9478)
Signed-off-by: Bradley Axen <baxen@squareup.com>
This commit is contained in:
@@ -108,6 +108,37 @@ pub struct UpdateWorkingDirRequest {
|
|||||||
pub working_dir: String,
|
pub working_dir: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// How a session system prompt update should be applied.
|
||||||
|
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
|
pub enum SessionSystemPromptMode {
|
||||||
|
/// Replace Goose's base system prompt with the provided text.
|
||||||
|
Set,
|
||||||
|
/// Append the provided text under Goose's "Additional Instructions" section.
|
||||||
|
#[default]
|
||||||
|
Append,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set, append, or clear system prompt text for a session.
|
||||||
|
///
|
||||||
|
/// `mode: "set"` replaces Goose's base system prompt. `mode: "append"` adds an
|
||||||
|
/// instruction under "Additional Instructions". Reusing a key replaces the
|
||||||
|
/// previous value for that mode/key; sending empty text clears it.
|
||||||
|
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)]
|
||||||
|
#[request(
|
||||||
|
method = "_goose/unstable/session/system-prompt/set",
|
||||||
|
response = EmptyResponse
|
||||||
|
)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct SetSessionSystemPromptRequest {
|
||||||
|
pub session_id: String,
|
||||||
|
#[serde(default)]
|
||||||
|
pub mode: SessionSystemPromptMode,
|
||||||
|
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||||
|
pub key: Option<String>,
|
||||||
|
pub text: String,
|
||||||
|
}
|
||||||
|
|
||||||
/// Delete a session.
|
/// Delete a session.
|
||||||
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)]
|
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)]
|
||||||
#[request(method = "session/delete", response = EmptyResponse)]
|
#[request(method = "session/delete", response = EmptyResponse)]
|
||||||
|
|||||||
@@ -30,6 +30,11 @@
|
|||||||
"requestType": "UpdateWorkingDirRequest_unstable",
|
"requestType": "UpdateWorkingDirRequest_unstable",
|
||||||
"responseType": "EmptyResponse"
|
"responseType": "EmptyResponse"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"method": "_goose/unstable/session/system-prompt/set",
|
||||||
|
"requestType": "SetSessionSystemPromptRequest_unstable",
|
||||||
|
"responseType": "EmptyResponse"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"method": "session/delete",
|
"method": "session/delete",
|
||||||
"requestType": "DeleteSessionRequest",
|
"requestType": "DeleteSessionRequest",
|
||||||
|
|||||||
@@ -167,6 +167,49 @@
|
|||||||
"x-side": "agent",
|
"x-side": "agent",
|
||||||
"x-method": "_goose/unstable/session/working-dir/update"
|
"x-method": "_goose/unstable/session/working-dir/update"
|
||||||
},
|
},
|
||||||
|
"SetSessionSystemPromptRequest_unstable": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"sessionId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"mode": {
|
||||||
|
"$ref": "#/$defs/SessionSystemPromptMode",
|
||||||
|
"default": "append"
|
||||||
|
},
|
||||||
|
"key": {
|
||||||
|
"type": [
|
||||||
|
"string",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"sessionId",
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"description": "Set, append, or clear system prompt text for a session.\n\n`mode: \"set\"` replaces Goose's base system prompt. `mode: \"append\"` adds an\ninstruction under \"Additional Instructions\". Reusing a key replaces the\nprevious value for that mode/key; sending empty text clears it.",
|
||||||
|
"x-side": "agent",
|
||||||
|
"x-method": "_goose/unstable/session/system-prompt/set"
|
||||||
|
},
|
||||||
|
"SessionSystemPromptMode": {
|
||||||
|
"oneOf": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"const": "set",
|
||||||
|
"description": "Replace Goose's base system prompt with the provided text."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"const": "append",
|
||||||
|
"description": "Append the provided text under Goose's \"Additional Instructions\" section."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "How a session system prompt update should be applied."
|
||||||
|
},
|
||||||
"DeleteSessionRequest": {
|
"DeleteSessionRequest": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -2640,6 +2683,15 @@
|
|||||||
"description": "Params for _goose/unstable/session/working-dir/update",
|
"description": "Params for _goose/unstable/session/working-dir/update",
|
||||||
"title": "UpdateWorkingDirRequest_unstable"
|
"title": "UpdateWorkingDirRequest_unstable"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/$defs/SetSessionSystemPromptRequest_unstable"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Params for _goose/unstable/session/system-prompt/set",
|
||||||
|
"title": "SetSessionSystemPromptRequest_unstable"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allOf": [
|
"allOf": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,6 +59,14 @@ impl GooseAcpAgent {
|
|||||||
self.on_update_working_dir(req).await
|
self.on_update_working_dir(req).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[custom_method(SetSessionSystemPromptRequest)]
|
||||||
|
async fn dispatch_set_session_system_prompt(
|
||||||
|
&self,
|
||||||
|
req: SetSessionSystemPromptRequest,
|
||||||
|
) -> Result<EmptyResponse, agent_client_protocol::Error> {
|
||||||
|
self.on_set_session_system_prompt(req).await
|
||||||
|
}
|
||||||
|
|
||||||
#[custom_method(DeleteSessionRequest)]
|
#[custom_method(DeleteSessionRequest)]
|
||||||
async fn dispatch_delete_session(
|
async fn dispatch_delete_session(
|
||||||
&self,
|
&self,
|
||||||
|
|||||||
@@ -34,6 +34,47 @@ impl GooseAcpAgent {
|
|||||||
Ok(EmptyResponse {})
|
Ok(EmptyResponse {})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(super) async fn on_set_session_system_prompt(
|
||||||
|
&self,
|
||||||
|
req: SetSessionSystemPromptRequest,
|
||||||
|
) -> Result<EmptyResponse, agent_client_protocol::Error> {
|
||||||
|
let session_id = req.session_id.trim();
|
||||||
|
if session_id.is_empty() {
|
||||||
|
return Err(
|
||||||
|
agent_client_protocol::Error::invalid_params().data("sessionId cannot be empty")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
let agent = self.get_session_agent_provider_ready(session_id).await?;
|
||||||
|
match req.mode {
|
||||||
|
SessionSystemPromptMode::Set => {
|
||||||
|
if req.text.trim().is_empty() {
|
||||||
|
agent.clear_system_prompt_override().await;
|
||||||
|
} else {
|
||||||
|
agent.override_system_prompt(req.text).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SessionSystemPromptMode::Append => {
|
||||||
|
let key = req
|
||||||
|
.key
|
||||||
|
.as_deref()
|
||||||
|
.map(str::trim)
|
||||||
|
.filter(|key| !key.is_empty())
|
||||||
|
.ok_or_else(|| {
|
||||||
|
agent_client_protocol::Error::invalid_params()
|
||||||
|
.data("key cannot be empty for append mode")
|
||||||
|
})?;
|
||||||
|
if req.text.trim().is_empty() {
|
||||||
|
agent.remove_system_prompt_extra(key).await;
|
||||||
|
} else {
|
||||||
|
agent.extend_system_prompt(key.to_string(), req.text).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(EmptyResponse {})
|
||||||
|
}
|
||||||
|
|
||||||
pub(super) async fn on_delete_session(
|
pub(super) async fn on_delete_session(
|
||||||
&self,
|
&self,
|
||||||
req: DeleteSessionRequest,
|
req: DeleteSessionRequest,
|
||||||
|
|||||||
@@ -66,8 +66,7 @@ use tracing::{debug, error, info, instrument, warn};
|
|||||||
|
|
||||||
const DEFAULT_MAX_TURNS: u32 = 1000;
|
const DEFAULT_MAX_TURNS: u32 = 1000;
|
||||||
const COMPACTION_THINKING_TEXT: &str = "goose is compacting the conversation...";
|
const COMPACTION_THINKING_TEXT: &str = "goose is compacting the conversation...";
|
||||||
const DEFAULT_FRONTEND_INSTRUCTIONS: &str =
|
const DEFAULT_FRONTEND_INSTRUCTIONS: &str = "The following tools are provided directly by the frontend and will be executed by the frontend when called.";
|
||||||
"The following tools are provided directly by the frontend and will be executed by the frontend when called.";
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
enum ToolCategory {
|
enum ToolCategory {
|
||||||
@@ -2293,6 +2292,11 @@ impl Agent {
|
|||||||
prompt_manager.add_system_prompt_extra(key, instruction);
|
prompt_manager.add_system_prompt_extra(key, instruction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn remove_system_prompt_extra(&self, key: &str) {
|
||||||
|
let mut prompt_manager = self.prompt_manager.lock().await;
|
||||||
|
prompt_manager.remove_system_prompt_extra(key);
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn set_goal(&self, goal: Option<String>) {
|
pub async fn set_goal(&self, goal: Option<String>) {
|
||||||
*self.goal.lock().await = goal;
|
*self.goal.lock().await = goal;
|
||||||
}
|
}
|
||||||
@@ -2463,6 +2467,11 @@ impl Agent {
|
|||||||
prompt_manager.set_system_prompt_override(template);
|
prompt_manager.set_system_prompt_override(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn clear_system_prompt_override(&self) {
|
||||||
|
let mut prompt_manager = self.prompt_manager.lock().await;
|
||||||
|
prompt_manager.clear_system_prompt_override();
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn list_extension_prompts(&self, session_id: &str) -> HashMap<String, Vec<Prompt>> {
|
pub async fn list_extension_prompts(&self, session_id: &str) -> HashMap<String, Vec<Prompt>> {
|
||||||
self.extension_manager
|
self.extension_manager
|
||||||
.list_prompts(session_id, CancellationToken::default())
|
.list_prompts(session_id, CancellationToken::default())
|
||||||
|
|||||||
@@ -224,6 +224,10 @@ impl PromptManager {
|
|||||||
self.system_prompt_extras.insert(key, instruction);
|
self.system_prompt_extras.insert(key, instruction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn remove_system_prompt_extra(&mut self, key: &str) {
|
||||||
|
self.system_prompt_extras.shift_remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn record_tool_arguments(
|
pub fn record_tool_arguments(
|
||||||
&mut self,
|
&mut self,
|
||||||
arguments: &Option<serde_json::Map<String, serde_json::Value>>,
|
arguments: &Option<serde_json::Map<String, serde_json::Value>>,
|
||||||
@@ -247,6 +251,10 @@ impl PromptManager {
|
|||||||
self.system_prompt_override = Some(template);
|
self.system_prompt_override = Some(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn clear_system_prompt_override(&mut self) {
|
||||||
|
self.system_prompt_override = None;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn builder<'a>(&'a self) -> SystemPromptBuilder<'a, Self> {
|
pub fn builder<'a>(&'a self) -> SystemPromptBuilder<'a, Self> {
|
||||||
SystemPromptBuilder {
|
SystemPromptBuilder {
|
||||||
manager: self,
|
manager: self,
|
||||||
@@ -326,6 +334,29 @@ mod tests {
|
|||||||
assert!(result.contains("Thirdinstruction"));
|
assert!(result.contains("Thirdinstruction"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_remove_system_prompt_extra() {
|
||||||
|
let mut manager = PromptManager::new();
|
||||||
|
manager.add_system_prompt_extra("agent".to_string(), "Agent instruction".to_string());
|
||||||
|
manager.add_system_prompt_extra("project".to_string(), "Project instruction".to_string());
|
||||||
|
|
||||||
|
manager.remove_system_prompt_extra("agent");
|
||||||
|
let result = manager.builder().build();
|
||||||
|
|
||||||
|
assert!(!result.contains("Agent instruction"));
|
||||||
|
assert!(result.contains("Project instruction"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_clear_system_prompt_override() {
|
||||||
|
let mut manager = PromptManager::new();
|
||||||
|
manager.set_system_prompt_override("Replacement prompt".to_string());
|
||||||
|
assert!(manager.builder().build().contains("Replacement prompt"));
|
||||||
|
|
||||||
|
manager.clear_system_prompt_override();
|
||||||
|
assert!(!manager.builder().build().contains("Replacement prompt"));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_build_system_prompt_preserves_legitimate_unicode_in_extras() {
|
fn test_build_system_prompt_preserves_legitimate_unicode_in_extras() {
|
||||||
let mut manager = PromptManager::new();
|
let mut manager = PromptManager::new();
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ import type {
|
|||||||
RemoveConfigExtensionRequest_unstable,
|
RemoveConfigExtensionRequest_unstable,
|
||||||
RemoveExtensionRequest_unstable,
|
RemoveExtensionRequest_unstable,
|
||||||
RenameSessionRequest_unstable,
|
RenameSessionRequest_unstable,
|
||||||
|
SetSessionSystemPromptRequest_unstable,
|
||||||
ToggleConfigExtensionRequest_unstable,
|
ToggleConfigExtensionRequest_unstable,
|
||||||
UnarchiveSessionRequest_unstable,
|
UnarchiveSessionRequest_unstable,
|
||||||
UpdateSessionProjectRequest_unstable,
|
UpdateSessionProjectRequest_unstable,
|
||||||
@@ -186,6 +187,15 @@ export class GooseExtClient {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async sessionSystemPromptSet_unstable(
|
||||||
|
params: SetSessionSystemPromptRequest_unstable,
|
||||||
|
): Promise<void> {
|
||||||
|
await this.conn.extMethod(
|
||||||
|
"_goose/unstable/session/system-prompt/set",
|
||||||
|
params,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
async sessionDelete(params: DeleteSessionRequest): Promise<void> {
|
async sessionDelete(params: DeleteSessionRequest): Promise<void> {
|
||||||
await this.conn.extMethod("session/delete", params);
|
await this.conn.extMethod("session/delete", params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// This file is auto-generated by @hey-api/openapi-ts
|
// This file is auto-generated by @hey-api/openapi-ts
|
||||||
|
|
||||||
export type { AddConfigExtensionRequest_unstable, AddExtensionRequest_unstable, ArchiveSessionRequest_unstable, CreateSourceRequest_unstable, CreateSourceResponse_unstable, CustomProviderConfigDto, CustomProviderCreateRequest_unstable, CustomProviderCreateResponse_unstable, CustomProviderDeleteRequest_unstable, CustomProviderDeleteResponse_unstable, CustomProviderReadRequest_unstable, CustomProviderReadResponse_unstable, CustomProviderUpdateRequest_unstable, CustomProviderUpdateResponse_unstable, DefaultsReadRequest_unstable, DefaultsReadResponse_unstable, DefaultsSaveRequest_unstable, DeleteSessionRequest, DeleteSourceRequest_unstable, DictationConfigRequest_unstable, DictationConfigResponse_unstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest_unstable, DictationModelDeleteRequest_unstable, DictationModelDownloadProgressRequest_unstable, DictationModelDownloadProgressResponse_unstable, DictationModelDownloadRequest_unstable, DictationModelOption, DictationModelSelectRequest_unstable, DictationModelsListRequest_unstable, DictationModelsListResponse_unstable, DictationProviderStatusEntry, DictationSecretDeleteRequest_unstable, DictationSecretSaveRequest_unstable, DictationTranscribeRequest_unstable, DictationTranscribeResponse_unstable, EmptyResponse, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtRequest, ExtResponse, GetExtensionsRequest_unstable, GetExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, OnboardingImportApplyRequest_unstable, OnboardingImportApplyResponse_unstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest_unstable, OnboardingImportScanResponse_unstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest_unstable, PreferencesReadResponse_unstable, PreferencesRemoveRequest_unstable, PreferencesSaveRequest_unstable, PreferenceValue, ProviderCatalogListRequest_unstable, ProviderCatalogListResponse_unstable, ProviderCatalogTemplateRequest_unstable, ProviderCatalogTemplateResponse_unstable, ProviderConfigAuthenticateRequest_unstable, ProviderConfigChangeResponse_unstable, ProviderConfigDeleteRequest_unstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest_unstable, ProviderConfigReadResponse_unstable, ProviderConfigSaveRequest_unstable, ProviderConfigStatusDto, ProviderConfigStatusRequest_unstable, ProviderConfigStatusResponse_unstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest_unstable, ProviderSetupCatalogListResponse_unstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js';
|
export type { AddConfigExtensionRequest_unstable, AddExtensionRequest_unstable, ArchiveSessionRequest_unstable, CreateSourceRequest_unstable, CreateSourceResponse_unstable, CustomProviderConfigDto, CustomProviderCreateRequest_unstable, CustomProviderCreateResponse_unstable, CustomProviderDeleteRequest_unstable, CustomProviderDeleteResponse_unstable, CustomProviderReadRequest_unstable, CustomProviderReadResponse_unstable, CustomProviderUpdateRequest_unstable, CustomProviderUpdateResponse_unstable, DefaultsReadRequest_unstable, DefaultsReadResponse_unstable, DefaultsSaveRequest_unstable, DeleteSessionRequest, DeleteSourceRequest_unstable, DictationConfigRequest_unstable, DictationConfigResponse_unstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest_unstable, DictationModelDeleteRequest_unstable, DictationModelDownloadProgressRequest_unstable, DictationModelDownloadProgressResponse_unstable, DictationModelDownloadRequest_unstable, DictationModelOption, DictationModelSelectRequest_unstable, DictationModelsListRequest_unstable, DictationModelsListResponse_unstable, DictationProviderStatusEntry, DictationSecretDeleteRequest_unstable, DictationSecretSaveRequest_unstable, DictationTranscribeRequest_unstable, DictationTranscribeResponse_unstable, EmptyResponse, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtRequest, ExtResponse, GetExtensionsRequest_unstable, GetExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, OnboardingImportApplyRequest_unstable, OnboardingImportApplyResponse_unstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest_unstable, OnboardingImportScanResponse_unstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest_unstable, PreferencesReadResponse_unstable, PreferencesRemoveRequest_unstable, PreferencesSaveRequest_unstable, PreferenceValue, ProviderCatalogListRequest_unstable, ProviderCatalogListResponse_unstable, ProviderCatalogTemplateRequest_unstable, ProviderCatalogTemplateResponse_unstable, ProviderConfigAuthenticateRequest_unstable, ProviderConfigChangeResponse_unstable, ProviderConfigDeleteRequest_unstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest_unstable, ProviderConfigReadResponse_unstable, ProviderConfigSaveRequest_unstable, ProviderConfigStatusDto, ProviderConfigStatusRequest_unstable, ProviderConfigStatusResponse_unstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest_unstable, ProviderSetupCatalogListResponse_unstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, SessionSystemPromptMode, SetSessionSystemPromptRequest_unstable, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js';
|
||||||
|
|
||||||
export const GOOSE_EXT_METHODS = [
|
export const GOOSE_EXT_METHODS = [
|
||||||
{
|
{
|
||||||
@@ -33,6 +33,11 @@ export const GOOSE_EXT_METHODS = [
|
|||||||
requestType: "UpdateWorkingDirRequest_unstable",
|
requestType: "UpdateWorkingDirRequest_unstable",
|
||||||
responseType: "EmptyResponse",
|
responseType: "EmptyResponse",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
method: "_goose/unstable/session/system-prompt/set",
|
||||||
|
requestType: "SetSessionSystemPromptRequest_unstable",
|
||||||
|
responseType: "EmptyResponse",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
method: "session/delete",
|
method: "session/delete",
|
||||||
requestType: "DeleteSessionRequest",
|
requestType: "DeleteSessionRequest",
|
||||||
|
|||||||
@@ -90,6 +90,25 @@ export type UpdateWorkingDirRequest_unstable = {
|
|||||||
workingDir: string;
|
workingDir: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set, append, or clear system prompt text for a session.
|
||||||
|
*
|
||||||
|
* `mode: "set"` replaces Goose's base system prompt. `mode: "append"` adds an
|
||||||
|
* instruction under "Additional Instructions". Reusing a key replaces the
|
||||||
|
* previous value for that mode/key; sending empty text clears it.
|
||||||
|
*/
|
||||||
|
export type SetSessionSystemPromptRequest_unstable = {
|
||||||
|
sessionId: string;
|
||||||
|
mode?: SessionSystemPromptMode;
|
||||||
|
key?: string | null;
|
||||||
|
text: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How a session system prompt update should be applied.
|
||||||
|
*/
|
||||||
|
export type SessionSystemPromptMode = 'set' | 'append';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a session.
|
* Delete a session.
|
||||||
*/
|
*/
|
||||||
@@ -1059,7 +1078,7 @@ export type DictationModelSelectRequest_unstable = {
|
|||||||
export type ExtRequest = {
|
export type ExtRequest = {
|
||||||
id: string;
|
id: string;
|
||||||
method: string;
|
method: string;
|
||||||
params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | DeleteSessionRequest | GetExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | ToggleConfigExtensionRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderCatalogListRequest_unstable | ProviderSetupCatalogListRequest_unstable | ProviderCatalogTemplateRequest_unstable | CustomProviderCreateRequest_unstable | CustomProviderReadRequest_unstable | CustomProviderUpdateRequest_unstable | CustomProviderDeleteRequest_unstable | RefreshProviderInventoryRequest_unstable | ProviderConfigReadRequest_unstable | ProviderConfigStatusRequest_unstable | ProviderConfigSaveRequest_unstable | ProviderConfigDeleteRequest_unstable | ProviderConfigAuthenticateRequest_unstable | PreferencesReadRequest_unstable | PreferencesSaveRequest_unstable | PreferencesRemoveRequest_unstable | DefaultsReadRequest_unstable | DefaultsSaveRequest_unstable | OnboardingImportScanRequest_unstable | OnboardingImportApplyRequest_unstable | ExportSessionRequest_unstable | ImportSessionRequest_unstable | UpdateSessionProjectRequest_unstable | RenameSessionRequest_unstable | ArchiveSessionRequest_unstable | UnarchiveSessionRequest_unstable | CreateSourceRequest_unstable | ListSourcesRequest_unstable | UpdateSourceRequest_unstable | DeleteSourceRequest_unstable | ExportSourceRequest_unstable | ImportSourcesRequest_unstable | DictationTranscribeRequest_unstable | DictationConfigRequest_unstable | DictationSecretSaveRequest_unstable | DictationSecretDeleteRequest_unstable | DictationModelsListRequest_unstable | DictationModelDownloadRequest_unstable | DictationModelDownloadProgressRequest_unstable | DictationModelCancelRequest_unstable | DictationModelDeleteRequest_unstable | DictationModelSelectRequest_unstable | {
|
params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | SetSessionSystemPromptRequest_unstable | DeleteSessionRequest | GetExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | ToggleConfigExtensionRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderCatalogListRequest_unstable | ProviderSetupCatalogListRequest_unstable | ProviderCatalogTemplateRequest_unstable | CustomProviderCreateRequest_unstable | CustomProviderReadRequest_unstable | CustomProviderUpdateRequest_unstable | CustomProviderDeleteRequest_unstable | RefreshProviderInventoryRequest_unstable | ProviderConfigReadRequest_unstable | ProviderConfigStatusRequest_unstable | ProviderConfigSaveRequest_unstable | ProviderConfigDeleteRequest_unstable | ProviderConfigAuthenticateRequest_unstable | PreferencesReadRequest_unstable | PreferencesSaveRequest_unstable | PreferencesRemoveRequest_unstable | DefaultsReadRequest_unstable | DefaultsSaveRequest_unstable | OnboardingImportScanRequest_unstable | OnboardingImportApplyRequest_unstable | ExportSessionRequest_unstable | ImportSessionRequest_unstable | UpdateSessionProjectRequest_unstable | RenameSessionRequest_unstable | ArchiveSessionRequest_unstable | UnarchiveSessionRequest_unstable | CreateSourceRequest_unstable | ListSourcesRequest_unstable | UpdateSourceRequest_unstable | DeleteSourceRequest_unstable | ExportSourceRequest_unstable | ImportSourcesRequest_unstable | DictationTranscribeRequest_unstable | DictationConfigRequest_unstable | DictationSecretSaveRequest_unstable | DictationSecretDeleteRequest_unstable | DictationModelsListRequest_unstable | DictationModelDownloadRequest_unstable | DictationModelDownloadProgressRequest_unstable | DictationModelCancelRequest_unstable | DictationModelDeleteRequest_unstable | DictationModelSelectRequest_unstable | {
|
||||||
[key: string]: unknown;
|
[key: string]: unknown;
|
||||||
} | null;
|
} | null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -80,6 +80,31 @@ export const zUpdateWorkingDirRequest_unstable = z.object({
|
|||||||
workingDir: z.string()
|
workingDir: z.string()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How a session system prompt update should be applied.
|
||||||
|
*/
|
||||||
|
export const zSessionSystemPromptMode = z.union([
|
||||||
|
z.literal('set'),
|
||||||
|
z.literal('append')
|
||||||
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set, append, or clear system prompt text for a session.
|
||||||
|
*
|
||||||
|
* `mode: "set"` replaces Goose's base system prompt. `mode: "append"` adds an
|
||||||
|
* instruction under "Additional Instructions". Reusing a key replaces the
|
||||||
|
* previous value for that mode/key; sending empty text clears it.
|
||||||
|
*/
|
||||||
|
export const zSetSessionSystemPromptRequest_unstable = z.object({
|
||||||
|
sessionId: z.string(),
|
||||||
|
mode: zSessionSystemPromptMode.optional().default('append'),
|
||||||
|
key: z.union([
|
||||||
|
z.string(),
|
||||||
|
z.null()
|
||||||
|
]).optional(),
|
||||||
|
text: z.string()
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a session.
|
* Delete a session.
|
||||||
*/
|
*/
|
||||||
@@ -1062,6 +1087,7 @@ export const zExtRequest = z.object({
|
|||||||
zGooseToolCallRequest_unstable,
|
zGooseToolCallRequest_unstable,
|
||||||
zReadResourceRequest_unstable,
|
zReadResourceRequest_unstable,
|
||||||
zUpdateWorkingDirRequest_unstable,
|
zUpdateWorkingDirRequest_unstable,
|
||||||
|
zSetSessionSystemPromptRequest_unstable,
|
||||||
zDeleteSessionRequest,
|
zDeleteSessionRequest,
|
||||||
zGetExtensionsRequest_unstable,
|
zGetExtensionsRequest_unstable,
|
||||||
zAddConfigExtensionRequest_unstable,
|
zAddConfigExtensionRequest_unstable,
|
||||||
|
|||||||
Reference in New Issue
Block a user