xiaoju
2b8707a706
style: use optionalEnv fallback param instead of ?? operator
...
小橘 🍊
2026-05-15 09:52:07 +00:00
xiaoju
241bfbf6d9
fix: hardcode absolute paths for agent CLI defaults in bundle entry
...
Validator requires absolute paths — bare command names like 'cursor-agent'
fail validation. Use `which` to discover the path, write it directly.
小橘 🍊
2026-05-15 09:49:42 +00:00
xiaoju
40530d757e
fix: use optionalEnv with defaults for agent CLI paths in bundle entry
...
requireEnv causes silent worker crash when env vars are missing —
thread shows 0 steps with no error. Use optionalEnv + sensible defaults.
Also added pitfall guidance in skill author docs.
小橘 🍊
2026-05-15 09:25:39 +00:00
xiaoju
0f3661b566
refactor: unify GATEWAY_SECRET + DASHBOARD_API_KEY into WORKFLOW_DASHBOARD_SECRET
2026-05-15 09:12:12 +00:00
xiaoju
2a1b7b0aeb
refactor(agents): migrate LLM/Hermes/Cursor to createAgentAdapter
...
- LLM: AgentFn<{prompt}> + createAgentAdapter, chatCompletionText unchanged
- Hermes: AgentFn<{prompt}> + createAgentAdapter, config validation in extract
- Cursor: AgentFn<{prompt, workspace}> + createAgentAdapter, workspace
extraction moved to extract fn, AgentFn itself only receives resolved options
All public API signatures preserved. createTextAdapter/TextProducerFn retained.
Closes #261 , Phase 2 of #252
2026-05-14 10:22:37 +00:00
xiaoju
cfe4543d39
refactor!: remove deprecated Agent types, introduce Adapter-first API
...
BREAKING CHANGES:
- Remove AgentFn, AgentFnResult, AgentBinding from workflow-protocol
- Remove wrapAgentAsAdapter from workflow-util-agent
- workflowAsAgent → workflowAdapter (old name kept as deprecated re-export)
New APIs:
- createTextAdapter(producer) — bridges text-producing functions to AdapterFn
- TextProducerFn, TextAdapterResult types
- workflowAdapter() — direct AdapterFn for child workflow delegation
All agent packages (cursor, hermes, llm) now return AdapterFn directly,
no wrapping needed. Bundle entries simplified accordingly.
小橘 🍊 (NEKO Team)
2026-05-13 08:03:27 +00:00
xiaoju
21cf3db111
feat(util): extract requireEnv/optionalEnv to workflow-util
...
- requireEnv(name, message) — throws with custom error message
- optionalEnv(name, fallback?) — returns fallback or null
- Update develop and solve-issue bundle entries to use shared helpers
- Remove inline requireEnv/optionalEnv and wrapAgentAsAdapter usage
- Add tests for both functions
小橘 🍊
2026-05-13 06:02:17 +00:00
xiaoju
ec4599a230
refactor: extract wrapAgentAsAdapter to util-agent, support childThread in RoleFn ( #222 )
2026-05-13 02:37:32 +00:00
xiaoju
bebf4aad45
feat(protocol): add AdapterFn/RoleFn/AdapterBinding, refactor createWorkflow to use AdapterBinding ( #222 )
...
- Add RoleFn<T>, AdapterFn, AdapterBinding types to workflow-protocol
- Mark AgentFn, AgentFnResult, AgentBinding as @deprecated
- Refactor createWorkflow to accept AdapterBinding instead of AgentBinding
- Adapter returns typed meta directly — no more extract call in workflow loop
- Add buildThreadInput (ThreadContext-based), keep buildAgentPrompt as deprecated wrapper
- Update template bundle-entries to wrap AgentFn as AdapterFn
- Update solve-issue tests to use AdapterFn directly
2026-05-13 02:27:36 +00:00
xingyue
1b62cec0a2
feat(agent): require absolute path for command in hermes/cursor agent configs
...
BREAKING: HermesAgentConfig.command and CursorAgentConfig.command are now
required string fields (absolute path to CLI binary). Validation rejects
non-absolute paths at construction time.
- Eliminates PATH resolution ambiguity in spawned worker processes
- spawnCli: explicit env: process.env for clarity
- bundle-entry: WORKFLOW_CURSOR_COMMAND is now required
- Updated tests for both agents
2026-05-12 12:52:48 +08:00
xingyue
ecc348f182
feat(agent): add command config to hermes/cursor agents + explicit env inheritance
...
- HermesAgentConfig.command: override hermes CLI path (default: "hermes")
- CursorAgentConfig.command: override cursor-agent CLI path (default: "cursor-agent")
- spawnCli: explicit env: process.env for clarity and future extensibility
- bundle-entry: read WORKFLOW_CURSOR_COMMAND from env
2026-05-12 12:49:28 +08:00
xiaoju
c05fac746c
feat: cursor agent auto-extracts workspace from context via LLM
...
- workflow-agent-cursor: workspace config now optional (string | null)
- When null, uses LLM call to extract workspace path from AgentContext
(previous steps' meta, start prompt) before spawning cursor-agent CLI
- Requires llmProvider when workspace is null
- develop bundle-entry: switched from hermes to cursor agent for all roles
- solve-issue bundle-entry: created, developer role uses workflowAsAgent('develop'),
preparer/submitter remain hermes
小橘 <xiaoju@shazhou.work >
2026-05-11 13:51:41 +00:00
xiaoju
da6bcb10d6
feat(workflow): add declarative ModeratorTable type and migrate templates
...
Migrate workflow-template-develop and workflow-template-solve-issue
moderators to use the declarative ModeratorTable/tableToModerator
pattern. Update workflow-runtime re-exports and workflow-execute
engine to use renamed types.
Fixes #172
2026-05-11 06:25:39 +00:00
xiaoju
2a52b930b9
chore: raise default maxRounds from 5 to 10 (CLI, matches API default)
...
小橘 <xiaoju@shazhou.work >
2026-05-09 13:17:57 +00:00