diff --git a/bundles/develop-entry.ts b/bundles/develop-entry.ts new file mode 100644 index 0000000..a384691 --- /dev/null +++ b/bundles/develop-entry.ts @@ -0,0 +1,43 @@ +/** + * develop bundle entry β€” 小橘 🍊 + */ +import { buildDevelopDescriptor, developWorkflowDefinition } from "@uncaged/workflow-template-develop"; +import { createWorkflow } from "@uncaged/workflow-runtime"; +import { createExtract } from "@uncaged/workflow-execute"; +import { createHermesAgent } from "@uncaged/workflow-agent-hermes"; + +function requireEnv(name: string): string { + const value = process.env[name]; + if (value === undefined || value === "") { + throw new Error(`missing required env var: ${name}`); + } + return value; +} + +function optionalEnv(name: string): string | null { + const value = process.env[name]; + if (value === undefined || value === "") { + return null; + } + return value; +} + +const provider = { + baseUrl: optionalEnv("WORKFLOW_LLM_BASE_URL") ?? "https://dashscope.aliyuncs.com/compatible-mode/v1", + apiKey: requireEnv("WORKFLOW_LLM_API_KEY"), + model: optionalEnv("WORKFLOW_LLM_MODEL") ?? "qwen-plus", +}; + +const agent = createHermesAgent({ + model: optionalEnv("WORKFLOW_HERMES_MODEL"), + timeout: optionalEnv("WORKFLOW_HERMES_TIMEOUT") + ? Number(optionalEnv("WORKFLOW_HERMES_TIMEOUT")) + : null, +}); + +const extract = createExtract(provider); + +const wf = createWorkflow(developWorkflowDefinition, { agent }, extract); + +export const descriptor = buildDevelopDescriptor(); +export const run = wf.run; diff --git a/develop-entry.ts b/develop-entry.ts new file mode 100644 index 0000000..ee2e4d8 --- /dev/null +++ b/develop-entry.ts @@ -0,0 +1,19 @@ +/** + * develop bundle entry β€” 小橘 🍊 + */ +import { buildDevelopDescriptor, developWorkflowDefinition } from "./packages/workflow-template-develop/src/index.js"; +import { createWorkflow } from "./packages/workflow-runtime/src/create-workflow.js"; +import { createHermesAgent } from "./packages/workflow-agent-hermes/src/index.js"; + +function optionalEnv(name: string): string | null { + const value = process.env[name]; + return (value === undefined || value === "") ? null : value; +} + +const agent = createHermesAgent({ + model: optionalEnv("WORKFLOW_HERMES_MODEL"), + timeout: optionalEnv("WORKFLOW_HERMES_TIMEOUT") ? Number(optionalEnv("WORKFLOW_HERMES_TIMEOUT")) : null, +}); + +export const descriptor = buildDevelopDescriptor(); +export const run = createWorkflow(developWorkflowDefinition, { agent, overrides: null }); diff --git a/packages/cli-workflow/src/run-argv.ts b/packages/cli-workflow/src/run-argv.ts index 11af542..e520211 100644 --- a/packages/cli-workflow/src/run-argv.ts +++ b/packages/cli-workflow/src/run-argv.ts @@ -34,7 +34,7 @@ function parseFlagAt(argv: string[], index: number): Result | nu export function parseRunArgv(argv: string[]): Result { let name: string | undefined; let prompt = ""; - let maxRounds = 5; + let maxRounds = 10; let i = 0; const first = argv[0]; diff --git a/packages/workflow-dashboard/src/components/sidebar.tsx b/packages/workflow-dashboard/src/components/sidebar.tsx index 378e663..b077433 100644 --- a/packages/workflow-dashboard/src/components/sidebar.tsx +++ b/packages/workflow-dashboard/src/components/sidebar.tsx @@ -1,4 +1,3 @@ -import { useState } from "react"; import type { AgentEndpoint } from "../api.ts"; import { listAgents } from "../api.ts"; import { useFetch } from "../hooks.ts"; @@ -13,7 +12,6 @@ type Props = { export function Sidebar({ view, agent, onViewChange, onAgentChange, onLogout }: Props) { const { status, data } = useFetch(() => listAgents(), []); - const [expanded, setExpanded] = useState(true); const agents: AgentEndpoint[] = status === "ok" ? data : []; const viewItems = [ @@ -36,49 +34,41 @@ export function Sidebar({ view, agent, onViewChange, onAgentChange, onLogout }: {/* Agent selector */} -
-