mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-21 16:03:26 +00:00
* feat: read and change workspace settings from ai sessions and mcp Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: cover wmill workspace settings commands in the settings guidance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: say unknown settings keys are warned and ee-only ones refused Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: cover datatable_permissions and protection_rules in the settings guidance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
134 lines
3.9 KiB
TypeScript
134 lines
3.9 KiB
TypeScript
// Auto-generated by generate.py - DO NOT EDIT
|
|
// Re-export all prompts
|
|
export * from './prompts';
|
|
|
|
import * as prompts from './prompts';
|
|
|
|
// Languages that use the TypeScript SDK
|
|
const TS_SDK_LANGUAGES = ['bun', 'deno', 'nativets', 'bunnative'];
|
|
|
|
// Languages that use the Python SDK
|
|
const PY_SDK_LANGUAGES = ['python3'];
|
|
|
|
// Languages that use the TypeScript Workflow-as-Code SDK
|
|
const WAC_TS_SDK_LANGUAGES = ['bun'];
|
|
|
|
// Languages that use the Python Workflow-as-Code SDK
|
|
const WAC_PY_SDK_LANGUAGES = PY_SDK_LANGUAGES;
|
|
|
|
// Helper to combine prompts for scripts
|
|
export function getScriptPrompt(language: string): string {
|
|
const langKey = `LANG_${language.toUpperCase()}` as keyof typeof prompts;
|
|
const langPrompt = (prompts as Record<string, string>)[langKey] || '';
|
|
|
|
// Determine which SDK to include based on language
|
|
let sdkPrompt = '';
|
|
if (TS_SDK_LANGUAGES.includes(language)) {
|
|
sdkPrompt = prompts.SDK_TYPESCRIPT;
|
|
} else if (PY_SDK_LANGUAGES.includes(language)) {
|
|
sdkPrompt = prompts.SDK_PYTHON;
|
|
}
|
|
|
|
return [
|
|
prompts.SCRIPT_BASE,
|
|
langPrompt,
|
|
sdkPrompt
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper to combine prompts for flows
|
|
export function getFlowPrompt(): string {
|
|
return [
|
|
prompts.FLOW_BASE,
|
|
prompts.OPENFLOW_SCHEMA
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper for resource & variable authoring
|
|
export function getResourcePrompt(): string {
|
|
return [
|
|
prompts.RESOURCES_BASE
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper for raw app authoring (chat consumers). Inline backend runnables are
|
|
// ordinary Windmill jobs, so the reference has to carry the SDK the runnable
|
|
// calls — without it an agent invents client functions and hand-rolls HTTP.
|
|
// Only one SDK is returned: both would double an already large tool result.
|
|
export function getRawAppPrompt(language?: string): string {
|
|
const sdkPrompt = PY_SDK_LANGUAGES.includes(language ?? '')
|
|
? prompts.SDK_PYTHON
|
|
: prompts.SDK_TYPESCRIPT;
|
|
|
|
return [
|
|
prompts.RAW_APP_BASE,
|
|
sdkPrompt
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper for data pipeline authoring (chat consumers)
|
|
export function getPipelinePrompt(): string {
|
|
return [
|
|
prompts.PIPELINE_BASE
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper for data table schema changes, migrations and permissions (chat consumers)
|
|
export function getDatatablePrompt(): string {
|
|
return [
|
|
prompts.DATATABLE_BASE
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper for the workspace settings document (chat consumers)
|
|
export function getWorkspaceSettingsPrompt(): string {
|
|
return [
|
|
prompts.WORKSPACE_SETTINGS_BASE
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper to get the datatable SQL SDK reference (wmill.datatable()).
|
|
// Pass a language to get only that SDK; omit it to get both.
|
|
export function getDatatableSdkReference(language?: string): string {
|
|
if (language == null) {
|
|
return [
|
|
prompts.DATATABLE_SDK_TYPESCRIPT,
|
|
prompts.DATATABLE_SDK_PYTHON
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
if (TS_SDK_LANGUAGES.includes(language)) {
|
|
return prompts.DATATABLE_SDK_TYPESCRIPT;
|
|
}
|
|
if (PY_SDK_LANGUAGES.includes(language)) {
|
|
return prompts.DATATABLE_SDK_PYTHON;
|
|
}
|
|
// Unknown language: return both rather than nothing.
|
|
return [
|
|
prompts.DATATABLE_SDK_TYPESCRIPT,
|
|
prompts.DATATABLE_SDK_PYTHON
|
|
].filter(Boolean).join('\n\n');
|
|
}
|
|
|
|
// Helper to combine prompts for Workflow-as-Code scripts
|
|
export function getWorkflowAsCodePrompt(language?: string): string {
|
|
let sdkPrompt = '';
|
|
|
|
if (language == null) {
|
|
sdkPrompt = [
|
|
prompts.WAC_SDK_TYPESCRIPT,
|
|
prompts.WAC_SDK_PYTHON
|
|
].filter(Boolean).join('\n\n');
|
|
} else if (WAC_TS_SDK_LANGUAGES.includes(language)) {
|
|
sdkPrompt = prompts.WAC_SDK_TYPESCRIPT;
|
|
} else if (WAC_PY_SDK_LANGUAGES.includes(language)) {
|
|
sdkPrompt = prompts.WAC_SDK_PYTHON;
|
|
} else {
|
|
return '';
|
|
}
|
|
|
|
return [
|
|
prompts.WORKFLOW_AS_CODE_BASE,
|
|
sdkPrompt
|
|
].filter(Boolean).join('\n\n');
|
|
}
|