fix: job edit schedule format error and refactor services directory

- Fix #25: job update sends schedule as plain string but upstream expects
  { kind, expr, display } object, causing "'str' object has no attribute 'get'"
- Move hermes-cli.ts, hermes.ts, hermes-profile.ts into services/hermes/
  for multi-agent namespacing consistency
- Fix ts-node Set spread compatibility in filesystem.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-04-17 16:48:24 +08:00
co-authored by Claude Opus 4.6
parent 9a0b50f370
commit 3d2b1c5e47
15 changed files with 40 additions and 19 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ import { config } from './config'
import { hermesRoutes, setupTerminalWebSocket, proxyMiddleware } from './routes/hermes'
import { uploadRoutes } from './routes/upload'
import { webhookRoutes } from './routes/webhook'
import * as hermesCli from './services/hermes-cli'
import * as hermesCli from './services/hermes/hermes-cli'
import { getToken, authMiddleware } from './services/auth'
function getLocalVersion(): string {
@@ -232,7 +232,7 @@ function bindShutdown() {
async function ensureApiServerConfig() {
const { readFileSync, writeFileSync, existsSync, copyFileSync } = await import('fs')
const yaml = (await import('js-yaml')).default
const { getActiveConfigPath } = await import('./services/hermes-profile')
const { getActiveConfigPath } = await import('./services/hermes/hermes-profile')
const configPath = getActiveConfigPath()
const defaults: Record<string, any> = {