@turmind/halo 1.3.4-c3090bf → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ var __export = (target, all) => {
8
8
  __defProp(target, name, { get: all[name], enumerable: true });
9
9
  };
10
10
 
11
- // src/server-supervisor.ts
11
+ // packages/cli/src/server-supervisor.ts
12
12
  var server_supervisor_exports = {};
13
13
  __export(server_supervisor_exports, {
14
14
  MAX_RESTARTS: () => MAX_RESTARTS,
@@ -114,7 +114,7 @@ async function superviseServer() {
114
114
  }
115
115
  var SUPERVISE_ENV, MAX_RESTARTS, RESTART_WINDOW_MS, RESTART_DELAY_MS, INTENTIONAL_SIGNALS;
116
116
  var init_server_supervisor = __esm({
117
- "src/server-supervisor.ts"() {
117
+ "packages/cli/src/server-supervisor.ts"() {
118
118
  "use strict";
119
119
  SUPERVISE_ENV = "HALO_SUPERVISE";
120
120
  MAX_RESTARTS = 5;
@@ -124,7 +124,7 @@ var init_server_supervisor = __esm({
124
124
  }
125
125
  });
126
126
 
127
- // ../server/dist/prompts/md-vars.js
127
+ // packages/server/dist/prompts/md-vars.js
128
128
  var md_vars_exports = {};
129
129
  __export(md_vars_exports, {
130
130
  buildRenderContext: () => buildRenderContext,
@@ -294,7 +294,7 @@ async function buildRenderContext(opts) {
294
294
  }
295
295
  var PATTERN, ENV_PATTERN, ARG_PATTERN, PARAM_PATH;
296
296
  var init_md_vars = __esm({
297
- "../server/dist/prompts/md-vars.js"() {
297
+ "packages/server/dist/prompts/md-vars.js"() {
298
298
  "use strict";
299
299
  PATTERN = /\{\{\s*([\w-][\w.-]*)\s*\}\}/g;
300
300
  ENV_PATTERN = /<<([A-Z_][A-Z0-9_]*)>>/g;
@@ -303,7 +303,7 @@ var init_md_vars = __esm({
303
303
  }
304
304
  });
305
305
 
306
- // ../server/dist/prompts/md-loader.js
306
+ // packages/server/dist/prompts/md-loader.js
307
307
  import fs3 from "node:fs/promises";
308
308
  import fsSync from "node:fs";
309
309
  import path3 from "node:path";
@@ -448,14 +448,14 @@ function resolveMdFilePath(agentId, fileType, scope, workspaceRoot) {
448
448
  }
449
449
  var HALO_HOME;
450
450
  var init_md_loader = __esm({
451
- "../server/dist/prompts/md-loader.js"() {
451
+ "packages/server/dist/prompts/md-loader.js"() {
452
452
  "use strict";
453
453
  init_md_vars();
454
454
  HALO_HOME = path3.join(homedir3(), ".halo", "global");
455
455
  }
456
456
  });
457
457
 
458
- // ../server/dist/settings-schema.js
458
+ // packages/server/dist/settings-schema.js
459
459
  import fs4 from "node:fs";
460
460
  import path4 from "node:path";
461
461
  import { homedir as homedir4 } from "node:os";
@@ -718,7 +718,7 @@ function loadSettingsSchema(workspaceRoot) {
718
718
  }
719
719
  var GLOBAL_MODELS_DIR, GLOBAL_SKILLS_DIR, GLOBAL_AGENTS_DIR, VALID_TYPES;
720
720
  var init_settings_schema = __esm({
721
- "../server/dist/settings-schema.js"() {
721
+ "packages/server/dist/settings-schema.js"() {
722
722
  "use strict";
723
723
  GLOBAL_MODELS_DIR = path4.join(homedir4(), ".halo", "global", "models");
724
724
  GLOBAL_SKILLS_DIR = path4.join(homedir4(), ".halo", "global", "skills");
@@ -727,7 +727,7 @@ var init_settings_schema = __esm({
727
727
  }
728
728
  });
729
729
 
730
- // ../server/dist/config.js
730
+ // packages/server/dist/config.js
731
731
  var config_exports = {};
732
732
  __export(config_exports, {
733
733
  HALO_GLOBAL_DIR: () => HALO_GLOBAL_DIR,
@@ -1033,7 +1033,7 @@ function getModelsRegistry() {
1033
1033
  }
1034
1034
  var HALO_HOME2, HALO_GLOBAL_DIR, HALO_SECRETS_DIR, _modelsRegistryCache, SYSTEM_CONFIG_PATH, _systemConfigCache, SETTINGS_PATH, _settingsCache, _schemaDefaultsCache, ENV_PATTERN2, _wsSettingsCache, config, HIDDEN_DIRS_DEFAULT, HIDDEN_FILES_DEFAULT;
1035
1035
  var init_config = __esm({
1036
- "../server/dist/config.js"() {
1036
+ "packages/server/dist/config.js"() {
1037
1037
  "use strict";
1038
1038
  init_settings_schema();
1039
1039
  HALO_HOME2 = path5.join(homedir5(), ".halo");
@@ -1259,7 +1259,7 @@ var init_config = __esm({
1259
1259
  }
1260
1260
  });
1261
1261
 
1262
- // ../server/dist/agents/conversation-repair.js
1262
+ // packages/server/dist/agents/conversation-repair.js
1263
1263
  function getToolUseId(block) {
1264
1264
  const b = block;
1265
1265
  if (b.type === "tool_use" && typeof b.id === "string")
@@ -1377,12 +1377,12 @@ function repairConversationMessages(raw, label = "[Repair]") {
1377
1377
  return messages2;
1378
1378
  }
1379
1379
  var init_conversation_repair = __esm({
1380
- "../server/dist/agents/conversation-repair.js"() {
1380
+ "packages/server/dist/agents/conversation-repair.js"() {
1381
1381
  "use strict";
1382
1382
  }
1383
1383
  });
1384
1384
 
1385
- // ../server/dist/agents/model-error.js
1385
+ // packages/server/dist/agents/model-error.js
1386
1386
  function classifyModelError(err) {
1387
1387
  const msg = err instanceof Error ? err.message : String(err);
1388
1388
  const errName = err instanceof Error ? err.name : "";
@@ -1420,12 +1420,12 @@ function classifyKind(msg, errName, httpStatus) {
1420
1420
  return "fatal";
1421
1421
  }
1422
1422
  var init_model_error = __esm({
1423
- "../server/dist/agents/model-error.js"() {
1423
+ "packages/server/dist/agents/model-error.js"() {
1424
1424
  "use strict";
1425
1425
  }
1426
1426
  });
1427
1427
 
1428
- // ../server/dist/agents/compact.js
1428
+ // packages/server/dist/agents/compact.js
1429
1429
  function splitForCompact(messages2) {
1430
1430
  const keepCount = config.compact.keep_messages;
1431
1431
  let cut = Math.max(0, messages2.length - keepCount);
@@ -1472,13 +1472,13 @@ ${summaryText}` }]
1472
1472
  return { compacted: true, messages: [summaryMsg, ...recentMsgs] };
1473
1473
  }
1474
1474
  var init_compact = __esm({
1475
- "../server/dist/agents/compact.js"() {
1475
+ "packages/server/dist/agents/compact.js"() {
1476
1476
  "use strict";
1477
1477
  init_config();
1478
1478
  }
1479
1479
  });
1480
1480
 
1481
- // ../server/dist/agents/micro-compact.js
1481
+ // packages/server/dist/agents/micro-compact.js
1482
1482
  function microCompactMessages(messages2, keepRecent = DEFAULT_KEEP_RECENT) {
1483
1483
  if (!messages2 || messages2.length === 0) {
1484
1484
  return { compacted: false, cleared: 0, messages: messages2 };
@@ -1526,7 +1526,7 @@ function microCompactMessages(messages2, keepRecent = DEFAULT_KEEP_RECENT) {
1526
1526
  }
1527
1527
  var MICRO_COMPACT_PLACEHOLDER, COMPACTABLE_TOOLS, DEFAULT_KEEP_RECENT;
1528
1528
  var init_micro_compact = __esm({
1529
- "../server/dist/agents/micro-compact.js"() {
1529
+ "packages/server/dist/agents/micro-compact.js"() {
1530
1530
  "use strict";
1531
1531
  MICRO_COMPACT_PLACEHOLDER = "[Old tool result content cleared]";
1532
1532
  COMPACTABLE_TOOLS = /* @__PURE__ */ new Set([
@@ -1543,10 +1543,10 @@ var init_micro_compact = __esm({
1543
1543
  }
1544
1544
  });
1545
1545
 
1546
- // ../server/dist/agents/agent-loop.js
1546
+ // packages/server/dist/agents/agent-loop.js
1547
1547
  var TOOL_ERROR_MARKER, TOOL_WARN_MARKER, MODEL_TIMEOUT_ERROR, AgentLoop;
1548
1548
  var init_agent_loop = __esm({
1549
- "../server/dist/agents/agent-loop.js"() {
1549
+ "packages/server/dist/agents/agent-loop.js"() {
1550
1550
  "use strict";
1551
1551
  init_config();
1552
1552
  TOOL_ERROR_MARKER = "__TOOL_ERROR__";
@@ -1721,7 +1721,7 @@ Error: ${err instanceof Error ? err.message : String(err)}`;
1721
1721
  }
1722
1722
  });
1723
1723
 
1724
- // ../server/dist/agents/agent-loader.js
1724
+ // packages/server/dist/agents/agent-loader.js
1725
1725
  import fs6 from "node:fs/promises";
1726
1726
  import fsSync2 from "node:fs";
1727
1727
  import path6 from "node:path";
@@ -2004,7 +2004,7 @@ function isTeamMember(team, targetId) {
2004
2004
  }
2005
2005
  var GLOBAL_AGENTS_DIR2, GLOBAL_SKILLS_DIR2, SKILL_ID_RE, ACCESS_RANK;
2006
2006
  var init_agent_loader = __esm({
2007
- "../server/dist/agents/agent-loader.js"() {
2007
+ "packages/server/dist/agents/agent-loader.js"() {
2008
2008
  "use strict";
2009
2009
  init_agent_loop();
2010
2010
  GLOBAL_AGENTS_DIR2 = path6.join(homedir6(), ".halo", "global", "agents");
@@ -2019,7 +2019,7 @@ var init_agent_loader = __esm({
2019
2019
  }
2020
2020
  });
2021
2021
 
2022
- // ../server/dist/ws/broadcast.js
2022
+ // packages/server/dist/ws/broadcast.js
2023
2023
  import path7 from "node:path";
2024
2024
  function setBroadcastWss(wss2) {
2025
2025
  _wss = wss2;
@@ -2065,14 +2065,14 @@ function broadcastToWorkspace(workspacePath, event) {
2065
2065
  }
2066
2066
  var _wss, _workspaceOfClient;
2067
2067
  var init_broadcast = __esm({
2068
- "../server/dist/ws/broadcast.js"() {
2068
+ "packages/server/dist/ws/broadcast.js"() {
2069
2069
  "use strict";
2070
2070
  _wss = null;
2071
2071
  _workspaceOfClient = null;
2072
2072
  }
2073
2073
  });
2074
2074
 
2075
- // ../server/dist/db/schema.js
2075
+ // packages/server/dist/db/schema.js
2076
2076
  var schema_exports = {};
2077
2077
  __export(schema_exports, {
2078
2078
  agentSessions: () => agentSessions,
@@ -2081,7 +2081,7 @@ __export(schema_exports, {
2081
2081
  import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
2082
2082
  var agentSessions, disabledItems;
2083
2083
  var init_schema = __esm({
2084
- "../server/dist/db/schema.js"() {
2084
+ "packages/server/dist/db/schema.js"() {
2085
2085
  "use strict";
2086
2086
  agentSessions = sqliteTable("agent_sessions", {
2087
2087
  id: text("id").primaryKey(),
@@ -2122,7 +2122,7 @@ var init_schema = __esm({
2122
2122
  }
2123
2123
  });
2124
2124
 
2125
- // ../server/dist/init.js
2125
+ // packages/server/dist/init.js
2126
2126
  var init_exports = {};
2127
2127
  __export(init_exports, {
2128
2128
  TEMPLATES_DIR: () => TEMPLATES_DIR,
@@ -2489,7 +2489,7 @@ function ensureWorkspaceHalo(workspaceRoot) {
2489
2489
  }
2490
2490
  var __dirname, TEMPLATES_DIR, DOCS_SRC_CANDIDATES, TEMPLATE_VERSION, VERSION_FILE, SKIP_NAMES, BUILTIN_AGENT_IDS, BUILTIN_SKILL_IDS, BUNDLED_DOCS, INSTALLED_OPTIONAL_SKILLS_FILE;
2491
2491
  var init_init = __esm({
2492
- "../server/dist/init.js"() {
2492
+ "packages/server/dist/init.js"() {
2493
2493
  "use strict";
2494
2494
  __dirname = path8.dirname(fileURLToPath(import.meta.url));
2495
2495
  TEMPLATES_DIR = path8.resolve(__dirname, "..", "templates");
@@ -2562,7 +2562,7 @@ var init_init = __esm({
2562
2562
  }
2563
2563
  });
2564
2564
 
2565
- // ../server/dist/db/migrate.js
2565
+ // packages/server/dist/db/migrate.js
2566
2566
  function runMigrations(sqlite, migrations) {
2567
2567
  const current = sqlite.pragma("user_version", { simple: true });
2568
2568
  if (current > migrations.length) {
@@ -2583,12 +2583,12 @@ function addColumnIfMissing(sqlite, table, column, decl) {
2583
2583
  sqlite.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${decl}`);
2584
2584
  }
2585
2585
  var init_migrate = __esm({
2586
- "../server/dist/db/migrate.js"() {
2586
+ "packages/server/dist/db/migrate.js"() {
2587
2587
  "use strict";
2588
2588
  }
2589
2589
  });
2590
2590
 
2591
- // ../server/dist/db/index.js
2591
+ // packages/server/dist/db/index.js
2592
2592
  import Database from "better-sqlite3";
2593
2593
  import { drizzle } from "drizzle-orm/better-sqlite3";
2594
2594
  import { eq, and } from "drizzle-orm";
@@ -2651,7 +2651,7 @@ function toggleDisabled(db, itemType, itemId, scope) {
2651
2651
  }
2652
2652
  var SCHEMA_SQL_PATH, HALO_MIGRATIONS, dbCache;
2653
2653
  var init_db = __esm({
2654
- "../server/dist/db/index.js"() {
2654
+ "packages/server/dist/db/index.js"() {
2655
2655
  "use strict";
2656
2656
  init_schema();
2657
2657
  init_init();
@@ -2677,7 +2677,7 @@ var init_db = __esm({
2677
2677
  }
2678
2678
  });
2679
2679
 
2680
- // ../server/dist/agents/session-tools.js
2680
+ // packages/server/dist/agents/session-tools.js
2681
2681
  async function callerTeamFor(sm, sessionId) {
2682
2682
  const callerId = sm.sessions.get(sessionId)?.agentId;
2683
2683
  if (!callerId)
@@ -2957,7 +2957,7 @@ function buildContinueTaskTool(sm, sessionId) {
2957
2957
  };
2958
2958
  }
2959
2959
  var init_session_tools = __esm({
2960
- "../server/dist/agents/session-tools.js"() {
2960
+ "packages/server/dist/agents/session-tools.js"() {
2961
2961
  "use strict";
2962
2962
  init_config();
2963
2963
  init_agent_loader();
@@ -2965,7 +2965,7 @@ var init_session_tools = __esm({
2965
2965
  }
2966
2966
  });
2967
2967
 
2968
- // ../server/dist/sessions/session-archive.js
2968
+ // packages/server/dist/sessions/session-archive.js
2969
2969
  import fsSync3 from "node:fs";
2970
2970
  import fs9 from "node:fs/promises";
2971
2971
  import path10 from "node:path";
@@ -3028,13 +3028,13 @@ async function deleteArchiveSegments(dir, seg) {
3028
3028
  }
3029
3029
  var ARCHIVE_SIZE_THRESHOLD;
3030
3030
  var init_session_archive = __esm({
3031
- "../server/dist/sessions/session-archive.js"() {
3031
+ "packages/server/dist/sessions/session-archive.js"() {
3032
3032
  "use strict";
3033
3033
  ARCHIVE_SIZE_THRESHOLD = 3 * 1024 * 1024;
3034
3034
  }
3035
3035
  });
3036
3036
 
3037
- // ../server/dist/sessions/session-store.js
3037
+ // packages/server/dist/sessions/session-store.js
3038
3038
  import fsSync4 from "node:fs";
3039
3039
  import fs10 from "node:fs/promises";
3040
3040
  import path11 from "node:path";
@@ -3278,13 +3278,13 @@ function findAndUpdateSessionTitle(sessionId, title, projectPath) {
3278
3278
  return false;
3279
3279
  }
3280
3280
  var init_session_store = __esm({
3281
- "../server/dist/sessions/session-store.js"() {
3281
+ "packages/server/dist/sessions/session-store.js"() {
3282
3282
  "use strict";
3283
3283
  init_session_archive();
3284
3284
  }
3285
3285
  });
3286
3286
 
3287
- // ../server/dist/agents/goal-mode.js
3287
+ // packages/server/dist/agents/goal-mode.js
3288
3288
  import fs11 from "node:fs";
3289
3289
  import path12 from "node:path";
3290
3290
  import { createHash } from "node:crypto";
@@ -3756,7 +3756,7 @@ function sweepActiveGoals(host) {
3756
3756
  }
3757
3757
  var GOAL_AGENT_ID, DEFAULT_GOAL_CAPS, NO_PROGRESS_LIMIT, DELEGATED_DECISION_CAP, WORKER_RECENT_MAX_MESSAGES, WORKER_RECENT_MSG_CHARS, WORKER_RECENT_TOTAL_CHARS, NEED_INPUT_MARKER;
3758
3758
  var init_goal_mode = __esm({
3759
- "../server/dist/agents/goal-mode.js"() {
3759
+ "packages/server/dist/agents/goal-mode.js"() {
3760
3760
  "use strict";
3761
3761
  init_schema();
3762
3762
  init_session_store();
@@ -3777,7 +3777,7 @@ var init_goal_mode = __esm({
3777
3777
  }
3778
3778
  });
3779
3779
 
3780
- // ../server/dist/channels/shared/i18n.js
3780
+ // packages/server/dist/channels/shared/i18n.js
3781
3781
  function getLang(account) {
3782
3782
  const v = account.language;
3783
3783
  return v === "en" || v === "zh" ? v : "en";
@@ -3796,7 +3796,7 @@ function t(key, lang, params) {
3796
3796
  }
3797
3797
  var messages;
3798
3798
  var init_i18n = __esm({
3799
- "../server/dist/channels/shared/i18n.js"() {
3799
+ "packages/server/dist/channels/shared/i18n.js"() {
3800
3800
  "use strict";
3801
3801
  messages = {
3802
3802
  // ── /help ──
@@ -3965,10 +3965,10 @@ var init_i18n = __esm({
3965
3965
  }
3966
3966
  });
3967
3967
 
3968
- // ../server/dist/commands/registry.js
3968
+ // packages/server/dist/commands/registry.js
3969
3969
  var CommandRegistry;
3970
3970
  var init_registry = __esm({
3971
- "../server/dist/commands/registry.js"() {
3971
+ "packages/server/dist/commands/registry.js"() {
3972
3972
  "use strict";
3973
3973
  CommandRegistry = class {
3974
3974
  descriptors = /* @__PURE__ */ new Map();
@@ -3982,13 +3982,13 @@ var init_registry = __esm({
3982
3982
  }
3983
3983
  });
3984
3984
 
3985
- // ../server/dist/commands/index.js
3985
+ // packages/server/dist/commands/index.js
3986
3986
  function builtinCommandNames() {
3987
3987
  return commandRegistry.listDescriptors().filter((d) => d.source === "builtin").map((d) => d.name);
3988
3988
  }
3989
3989
  var commandRegistry;
3990
3990
  var init_commands = __esm({
3991
- "../server/dist/commands/index.js"() {
3991
+ "packages/server/dist/commands/index.js"() {
3992
3992
  "use strict";
3993
3993
  init_registry();
3994
3994
  commandRegistry = new CommandRegistry();
@@ -4038,7 +4038,7 @@ var init_commands = __esm({
4038
4038
  }
4039
4039
  });
4040
4040
 
4041
- // ../server/dist/commands/skill-command.js
4041
+ // packages/server/dist/commands/skill-command.js
4042
4042
  import fs12 from "node:fs/promises";
4043
4043
  import path13 from "node:path";
4044
4044
  async function scanDir(dir) {
@@ -4181,7 +4181,7 @@ ${body}`;
4181
4181
  return "ok";
4182
4182
  }
4183
4183
  var init_skill_command = __esm({
4184
- "../server/dist/commands/skill-command.js"() {
4184
+ "packages/server/dist/commands/skill-command.js"() {
4185
4185
  "use strict";
4186
4186
  init_commands();
4187
4187
  init_agent_loader();
@@ -4191,7 +4191,7 @@ var init_skill_command = __esm({
4191
4191
  }
4192
4192
  });
4193
4193
 
4194
- // ../server/dist/db/evo-db.js
4194
+ // packages/server/dist/db/evo-db.js
4195
4195
  import Database2 from "better-sqlite3";
4196
4196
  import { drizzle as drizzle2 } from "drizzle-orm/better-sqlite3";
4197
4197
  import { sqliteTable as sqliteTable2, text as text2, integer as integer2 } from "drizzle-orm/sqlite-core";
@@ -4216,7 +4216,7 @@ function getEvoDb() {
4216
4216
  }
4217
4217
  var evolutionRuns, evolutionApplies, CREATE_SQL, _evoDb;
4218
4218
  var init_evo_db = __esm({
4219
- "../server/dist/db/evo-db.js"() {
4219
+ "packages/server/dist/db/evo-db.js"() {
4220
4220
  "use strict";
4221
4221
  init_migrate();
4222
4222
  evolutionRuns = sqliteTable2("evolution_runs", {
@@ -4299,7 +4299,7 @@ CREATE INDEX IF NOT EXISTS idx_evo_applies_archived ON evolution_applies(archive
4299
4299
  }
4300
4300
  });
4301
4301
 
4302
- // ../server/dist/paths.js
4302
+ // packages/server/dist/paths.js
4303
4303
  import path15 from "node:path";
4304
4304
  import { homedir as homedir8 } from "node:os";
4305
4305
  function haloHome() {
@@ -4345,12 +4345,12 @@ function evoApplyLogFile(applyId) {
4345
4345
  return path15.join(evoLogsDir(), `apply-${applyId}.log`);
4346
4346
  }
4347
4347
  var init_paths = __esm({
4348
- "../server/dist/paths.js"() {
4348
+ "packages/server/dist/paths.js"() {
4349
4349
  "use strict";
4350
4350
  }
4351
4351
  });
4352
4352
 
4353
- // ../server/dist/evolution/enqueue.js
4353
+ // packages/server/dist/evolution/enqueue.js
4354
4354
  import fs14 from "node:fs";
4355
4355
  import path16 from "node:path";
4356
4356
  import { homedir as homedir9 } from "node:os";
@@ -4635,14 +4635,14 @@ function enqueueEvoRun(input) {
4635
4635
  return { ok: true, runId, runDir };
4636
4636
  }
4637
4637
  var init_enqueue = __esm({
4638
- "../server/dist/evolution/enqueue.js"() {
4638
+ "packages/server/dist/evolution/enqueue.js"() {
4639
4639
  "use strict";
4640
4640
  init_evo_db();
4641
4641
  init_paths();
4642
4642
  }
4643
4643
  });
4644
4644
 
4645
- // ../server/dist/channels/shared/commands.js
4645
+ // packages/server/dist/channels/shared/commands.js
4646
4646
  import fs15 from "node:fs";
4647
4647
  import path17 from "node:path";
4648
4648
  import os from "node:os";
@@ -5368,7 +5368,7 @@ function execWsSwitch(ctx, arg) {
5368
5368
  }
5369
5369
  var ALIASES_FILE, aliasCache, CHANNEL_LIST_LIMIT, DISPATCH_COMMANDS, NOT_ROUTED, SUBCOMMAND_ROUTES;
5370
5370
  var init_commands2 = __esm({
5371
- "../server/dist/channels/shared/commands.js"() {
5371
+ "packages/server/dist/channels/shared/commands.js"() {
5372
5372
  "use strict";
5373
5373
  init_agent_loader();
5374
5374
  init_init();
@@ -5443,7 +5443,7 @@ var init_commands2 = __esm({
5443
5443
  }
5444
5444
  });
5445
5445
 
5446
- // ../server/dist/agents/relay.js
5446
+ // packages/server/dist/agents/relay.js
5447
5447
  import fs16 from "node:fs";
5448
5448
  import path18 from "node:path";
5449
5449
  import { and as and3, eq as eq3, isNull as isNull2 } from "drizzle-orm";
@@ -5680,7 +5680,7 @@ ${params.message}`;
5680
5680
  }
5681
5681
  var _registry, WORKSPACE_SESSION_PROPS;
5682
5682
  var init_relay = __esm({
5683
- "../server/dist/agents/relay.js"() {
5683
+ "packages/server/dist/agents/relay.js"() {
5684
5684
  "use strict";
5685
5685
  init_schema();
5686
5686
  init_config();
@@ -5693,7 +5693,7 @@ var init_relay = __esm({
5693
5693
  }
5694
5694
  });
5695
5695
 
5696
- // ../server/dist/db/runs-db.js
5696
+ // packages/server/dist/db/runs-db.js
5697
5697
  import Database3 from "better-sqlite3";
5698
5698
  import { drizzle as drizzle3 } from "drizzle-orm/better-sqlite3";
5699
5699
  import { sqliteTable as sqliteTable3, text as text3, integer as integer3, primaryKey } from "drizzle-orm/sqlite-core";
@@ -5735,7 +5735,7 @@ function listRunningWorkspaces() {
5735
5735
  }
5736
5736
  var runningSessions, CREATE_SQL2, _runsDb;
5737
5737
  var init_runs_db = __esm({
5738
- "../server/dist/db/runs-db.js"() {
5738
+ "packages/server/dist/db/runs-db.js"() {
5739
5739
  "use strict";
5740
5740
  init_migrate();
5741
5741
  runningSessions = sqliteTable3("running_sessions", {
@@ -5757,7 +5757,7 @@ CREATE TABLE IF NOT EXISTS running_sessions (
5757
5757
  }
5758
5758
  });
5759
5759
 
5760
- // ../server/dist/agents/run-ledger.js
5760
+ // packages/server/dist/agents/run-ledger.js
5761
5761
  import fs18 from "node:fs";
5762
5762
  import path20 from "node:path";
5763
5763
  import YAML7 from "yaml";
@@ -5798,7 +5798,7 @@ function sweepInterruptedRuns(host) {
5798
5798
  console.log(`[RunLedger] Boot sweep (${host.workspaceRoot}): nudged ${nudged} interrupted root(s)`);
5799
5799
  }
5800
5800
  var init_run_ledger = __esm({
5801
- "../server/dist/agents/run-ledger.js"() {
5801
+ "packages/server/dist/agents/run-ledger.js"() {
5802
5802
  "use strict";
5803
5803
  init_schema();
5804
5804
  init_runs_db();
@@ -5807,7 +5807,7 @@ var init_run_ledger = __esm({
5807
5807
  }
5808
5808
  });
5809
5809
 
5810
- // ../server/dist/agents/workspace-runtime-lock.js
5810
+ // packages/server/dist/agents/workspace-runtime-lock.js
5811
5811
  import fs19 from "node:fs";
5812
5812
  import path21 from "node:path";
5813
5813
  function isPidAlive(pid) {
@@ -5855,19 +5855,19 @@ function claimWorkspaceRuntime(workspaceRoot) {
5855
5855
  }
5856
5856
  var RUNTIME_LOCK_FILE;
5857
5857
  var init_workspace_runtime_lock = __esm({
5858
- "../server/dist/agents/workspace-runtime-lock.js"() {
5858
+ "packages/server/dist/agents/workspace-runtime-lock.js"() {
5859
5859
  "use strict";
5860
5860
  RUNTIME_LOCK_FILE = "runtime.lock";
5861
5861
  }
5862
5862
  });
5863
5863
 
5864
- // ../core/dist/workspace/workspace.js
5864
+ // packages/core/dist/workspace/workspace.js
5865
5865
  import { readFile, writeFile, mkdir } from "node:fs/promises";
5866
5866
  import { realpathSync } from "node:fs";
5867
5867
  import { resolve, isAbsolute, sep } from "node:path";
5868
5868
  var WorkspaceError, Workspace;
5869
5869
  var init_workspace = __esm({
5870
- "../core/dist/workspace/workspace.js"() {
5870
+ "packages/core/dist/workspace/workspace.js"() {
5871
5871
  "use strict";
5872
5872
  WorkspaceError = class extends Error {
5873
5873
  constructor(message) {
@@ -5912,13 +5912,13 @@ var init_workspace = __esm({
5912
5912
  }
5913
5913
  });
5914
5914
 
5915
- // ../core/dist/workspace/git-manager.js
5915
+ // packages/core/dist/workspace/git-manager.js
5916
5916
  import path22 from "node:path";
5917
5917
  import { promises as fs20 } from "node:fs";
5918
5918
  import simpleGit from "simple-git";
5919
5919
  var GitManagerError, GitManager;
5920
5920
  var init_git_manager = __esm({
5921
- "../core/dist/workspace/git-manager.js"() {
5921
+ "packages/core/dist/workspace/git-manager.js"() {
5922
5922
  "use strict";
5923
5923
  GitManagerError = class extends Error {
5924
5924
  constructor(message) {
@@ -6287,7 +6287,7 @@ var init_git_manager = __esm({
6287
6287
  }
6288
6288
  });
6289
6289
 
6290
- // ../core/dist/media/mime.js
6290
+ // packages/core/dist/media/mime.js
6291
6291
  function normalizeExt(ext) {
6292
6292
  const lower = ext.toLowerCase();
6293
6293
  return lower.startsWith(".") ? lower : `.${lower}`;
@@ -6300,7 +6300,7 @@ function extFromImageMime(mime) {
6300
6300
  }
6301
6301
  var PHOTO_MIME_BY_EXT, SERVE_ONLY_MIME_BY_EXT, IMAGE_MIME_BY_EXT, EXT_BY_PHOTO_MIME, IMAGE_EXTS;
6302
6302
  var init_mime = __esm({
6303
- "../core/dist/media/mime.js"() {
6303
+ "packages/core/dist/media/mime.js"() {
6304
6304
  "use strict";
6305
6305
  PHOTO_MIME_BY_EXT = {
6306
6306
  ".png": "image/png",
@@ -6324,9 +6324,9 @@ var init_mime = __esm({
6324
6324
  }
6325
6325
  });
6326
6326
 
6327
- // ../core/dist/index.js
6327
+ // packages/core/dist/index.js
6328
6328
  var init_dist = __esm({
6329
- "../core/dist/index.js"() {
6329
+ "packages/core/dist/index.js"() {
6330
6330
  "use strict";
6331
6331
  init_workspace();
6332
6332
  init_git_manager();
@@ -6334,7 +6334,7 @@ var init_dist = __esm({
6334
6334
  }
6335
6335
  });
6336
6336
 
6337
- // ../server/dist/channels/shared/media-store.js
6337
+ // packages/server/dist/channels/shared/media-store.js
6338
6338
  import fs21 from "node:fs/promises";
6339
6339
  import path23 from "node:path";
6340
6340
  import { randomBytes } from "node:crypto";
@@ -6395,7 +6395,7 @@ async function saveInboundMedia(params) {
6395
6395
  }
6396
6396
  var VISION_IMAGE_MIME_TYPES, EXT_BY_AV_MIME;
6397
6397
  var init_media_store = __esm({
6398
- "../server/dist/channels/shared/media-store.js"() {
6398
+ "packages/server/dist/channels/shared/media-store.js"() {
6399
6399
  "use strict";
6400
6400
  init_dist();
6401
6401
  VISION_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
@@ -6413,7 +6413,7 @@ var init_media_store = __esm({
6413
6413
  }
6414
6414
  });
6415
6415
 
6416
- // ../server/dist/sessions/ui-log-builder.js
6416
+ // packages/server/dist/sessions/ui-log-builder.js
6417
6417
  import { randomUUID } from "node:crypto";
6418
6418
  function createEmptyUIState() {
6419
6419
  return {
@@ -6817,19 +6817,19 @@ function applyEvent(state, event) {
6817
6817
  }
6818
6818
  var msgCounter;
6819
6819
  var init_ui_log_builder = __esm({
6820
- "../server/dist/sessions/ui-log-builder.js"() {
6820
+ "packages/server/dist/sessions/ui-log-builder.js"() {
6821
6821
  "use strict";
6822
6822
  msgCounter = 0;
6823
6823
  }
6824
6824
  });
6825
6825
 
6826
- // ../server/dist/agents/session-ui-store.js
6826
+ // packages/server/dist/agents/session-ui-store.js
6827
6827
  import fsSync5 from "node:fs";
6828
6828
  import path24 from "node:path";
6829
6829
  import { eq as eq6 } from "drizzle-orm";
6830
6830
  var UI_STATE_IDLE_TTL_MS, UI_STATE_SWEEP_PERIOD_MS, SessionUIStore;
6831
6831
  var init_session_ui_store = __esm({
6832
- "../server/dist/agents/session-ui-store.js"() {
6832
+ "packages/server/dist/agents/session-ui-store.js"() {
6833
6833
  "use strict";
6834
6834
  init_broadcast();
6835
6835
  init_schema();
@@ -7343,11 +7343,11 @@ var init_session_ui_store = __esm({
7343
7343
  }
7344
7344
  });
7345
7345
 
7346
- // ../server/dist/agents/session-query-store.js
7346
+ // packages/server/dist/agents/session-query-store.js
7347
7347
  import { eq as eq7, and as and5, isNull as isNull3, desc, lt, gte, inArray } from "drizzle-orm";
7348
7348
  var SessionQueryStore;
7349
7349
  var init_session_query_store = __esm({
7350
- "../server/dist/agents/session-query-store.js"() {
7350
+ "packages/server/dist/agents/session-query-store.js"() {
7351
7351
  "use strict";
7352
7352
  init_schema();
7353
7353
  init_session_store();
@@ -7574,7 +7574,7 @@ var init_session_query_store = __esm({
7574
7574
  }
7575
7575
  });
7576
7576
 
7577
- // ../server/dist/agents/bedrock-agent.js
7577
+ // packages/server/dist/agents/bedrock-agent.js
7578
7578
  import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";
7579
7579
  function effortToBudget(effort, maxTokens) {
7580
7580
  const table = {
@@ -7596,7 +7596,7 @@ function extractRegionFromEndpoint(endpoint) {
7596
7596
  }
7597
7597
  var BedrockAgent;
7598
7598
  var init_bedrock_agent = __esm({
7599
- "../server/dist/agents/bedrock-agent.js"() {
7599
+ "packages/server/dist/agents/bedrock-agent.js"() {
7600
7600
  "use strict";
7601
7601
  init_config();
7602
7602
  init_agent_loop();
@@ -7726,7 +7726,7 @@ var init_bedrock_agent = __esm({
7726
7726
  }
7727
7727
  });
7728
7728
 
7729
- // ../server/dist/agents/deepseek-agent.js
7729
+ // packages/server/dist/agents/deepseek-agent.js
7730
7730
  function safeParse(json) {
7731
7731
  try {
7732
7732
  return JSON.parse(json || "{}");
@@ -7736,7 +7736,7 @@ function safeParse(json) {
7736
7736
  }
7737
7737
  var DeepSeekAgent;
7738
7738
  var init_deepseek_agent = __esm({
7739
- "../server/dist/agents/deepseek-agent.js"() {
7739
+ "packages/server/dist/agents/deepseek-agent.js"() {
7740
7740
  "use strict";
7741
7741
  init_config();
7742
7742
  init_agent_loop();
@@ -7931,7 +7931,7 @@ var init_deepseek_agent = __esm({
7931
7931
  }
7932
7932
  });
7933
7933
 
7934
- // ../server/dist/agents/kimi-agent.js
7934
+ // packages/server/dist/agents/kimi-agent.js
7935
7935
  function safeParse2(json) {
7936
7936
  try {
7937
7937
  return JSON.parse(json || "{}");
@@ -7941,7 +7941,7 @@ function safeParse2(json) {
7941
7941
  }
7942
7942
  var KimiAgent;
7943
7943
  var init_kimi_agent = __esm({
7944
- "../server/dist/agents/kimi-agent.js"() {
7944
+ "packages/server/dist/agents/kimi-agent.js"() {
7945
7945
  "use strict";
7946
7946
  init_config();
7947
7947
  init_agent_loop();
@@ -8137,7 +8137,7 @@ var init_kimi_agent = __esm({
8137
8137
  }
8138
8138
  });
8139
8139
 
8140
- // ../server/dist/agents/minimax-agent.js
8140
+ // packages/server/dist/agents/minimax-agent.js
8141
8141
  function effortToBudget2(effort, maxTokens) {
8142
8142
  const table = {
8143
8143
  low: 2048,
@@ -8154,7 +8154,7 @@ function effortToBudget2(effort, maxTokens) {
8154
8154
  }
8155
8155
  var MiniMaxAgent;
8156
8156
  var init_minimax_agent = __esm({
8157
- "../server/dist/agents/minimax-agent.js"() {
8157
+ "packages/server/dist/agents/minimax-agent.js"() {
8158
8158
  "use strict";
8159
8159
  init_config();
8160
8160
  init_agent_loop();
@@ -8276,7 +8276,7 @@ var init_minimax_agent = __esm({
8276
8276
  }
8277
8277
  });
8278
8278
 
8279
- // ../server/dist/agents/qwen-agent.js
8279
+ // packages/server/dist/agents/qwen-agent.js
8280
8280
  function effortToBudget3(effort, maxTokens) {
8281
8281
  const table = {
8282
8282
  low: 2048,
@@ -8293,7 +8293,7 @@ function effortToBudget3(effort, maxTokens) {
8293
8293
  }
8294
8294
  var QwenAgent;
8295
8295
  var init_qwen_agent = __esm({
8296
- "../server/dist/agents/qwen-agent.js"() {
8296
+ "packages/server/dist/agents/qwen-agent.js"() {
8297
8297
  "use strict";
8298
8298
  init_config();
8299
8299
  init_agent_loop();
@@ -8411,7 +8411,7 @@ var init_qwen_agent = __esm({
8411
8411
  }
8412
8412
  });
8413
8413
 
8414
- // ../server/dist/agents/hunyuan-agent.js
8414
+ // packages/server/dist/agents/hunyuan-agent.js
8415
8415
  function safeParse3(json) {
8416
8416
  try {
8417
8417
  return JSON.parse(json || "{}");
@@ -8421,7 +8421,7 @@ function safeParse3(json) {
8421
8421
  }
8422
8422
  var HunyuanAgent;
8423
8423
  var init_hunyuan_agent = __esm({
8424
- "../server/dist/agents/hunyuan-agent.js"() {
8424
+ "packages/server/dist/agents/hunyuan-agent.js"() {
8425
8425
  "use strict";
8426
8426
  init_config();
8427
8427
  init_agent_loop();
@@ -8592,7 +8592,7 @@ var init_hunyuan_agent = __esm({
8592
8592
  }
8593
8593
  });
8594
8594
 
8595
- // ../server/dist/agents/doubao-agent.js
8595
+ // packages/server/dist/agents/doubao-agent.js
8596
8596
  function safeParse4(json) {
8597
8597
  try {
8598
8598
  return JSON.parse(json || "{}");
@@ -8602,7 +8602,7 @@ function safeParse4(json) {
8602
8602
  }
8603
8603
  var DoubaoAgent;
8604
8604
  var init_doubao_agent = __esm({
8605
- "../server/dist/agents/doubao-agent.js"() {
8605
+ "packages/server/dist/agents/doubao-agent.js"() {
8606
8606
  "use strict";
8607
8607
  init_config();
8608
8608
  init_agent_loop();
@@ -8773,7 +8773,7 @@ var init_doubao_agent = __esm({
8773
8773
  }
8774
8774
  });
8775
8775
 
8776
- // ../server/dist/agents/openai-agent.js
8776
+ // packages/server/dist/agents/openai-agent.js
8777
8777
  function safeParse5(json) {
8778
8778
  try {
8779
8779
  return JSON.parse(json || "{}");
@@ -8783,7 +8783,7 @@ function safeParse5(json) {
8783
8783
  }
8784
8784
  var OpenAIAgent;
8785
8785
  var init_openai_agent = __esm({
8786
- "../server/dist/agents/openai-agent.js"() {
8786
+ "packages/server/dist/agents/openai-agent.js"() {
8787
8787
  "use strict";
8788
8788
  init_config();
8789
8789
  init_agent_loop();
@@ -8955,7 +8955,7 @@ var init_openai_agent = __esm({
8955
8955
  }
8956
8956
  });
8957
8957
 
8958
- // ../server/dist/agents/mantle-agent.js
8958
+ // packages/server/dist/agents/mantle-agent.js
8959
8959
  import { SignatureV4 } from "@smithy/signature-v4";
8960
8960
  import { Sha256 } from "@aws-crypto/sha256-js";
8961
8961
  import { defaultProvider } from "@aws-sdk/credential-provider-node";
@@ -8972,7 +8972,7 @@ function safeParse6(json) {
8972
8972
  }
8973
8973
  var MantleAgent;
8974
8974
  var init_mantle_agent = __esm({
8975
- "../server/dist/agents/mantle-agent.js"() {
8975
+ "packages/server/dist/agents/mantle-agent.js"() {
8976
8976
  "use strict";
8977
8977
  init_config();
8978
8978
  init_agent_loop();
@@ -9191,10 +9191,10 @@ var init_mantle_agent = __esm({
9191
9191
  }
9192
9192
  });
9193
9193
 
9194
- // ../server/dist/agents/anthropic-agent.js
9194
+ // packages/server/dist/agents/anthropic-agent.js
9195
9195
  var AnthropicAgent;
9196
9196
  var init_anthropic_agent = __esm({
9197
- "../server/dist/agents/anthropic-agent.js"() {
9197
+ "packages/server/dist/agents/anthropic-agent.js"() {
9198
9198
  "use strict";
9199
9199
  init_config();
9200
9200
  init_agent_loop();
@@ -9318,7 +9318,7 @@ var init_anthropic_agent = __esm({
9318
9318
  }
9319
9319
  });
9320
9320
 
9321
- // ../server/dist/agents/model-runtime.js
9321
+ // packages/server/dist/agents/model-runtime.js
9322
9322
  function createModelRuntime(providerId, cfg) {
9323
9323
  switch (providerId) {
9324
9324
  case "aws-bedrock-claude-invoke":
@@ -9458,7 +9458,7 @@ function createModelRuntime(providerId, cfg) {
9458
9458
  }
9459
9459
  }
9460
9460
  var init_model_runtime = __esm({
9461
- "../server/dist/agents/model-runtime.js"() {
9461
+ "packages/server/dist/agents/model-runtime.js"() {
9462
9462
  "use strict";
9463
9463
  init_bedrock_agent();
9464
9464
  init_deepseek_agent();
@@ -9473,7 +9473,7 @@ var init_model_runtime = __esm({
9473
9473
  }
9474
9474
  });
9475
9475
 
9476
- // ../server/dist/child-env.js
9476
+ // packages/server/dist/child-env.js
9477
9477
  function cleanChildEnv() {
9478
9478
  const env = { ...process.env };
9479
9479
  delete env.HALO_PASSWORD;
@@ -9481,12 +9481,12 @@ function cleanChildEnv() {
9481
9481
  return env;
9482
9482
  }
9483
9483
  var init_child_env = __esm({
9484
- "../server/dist/child-env.js"() {
9484
+ "packages/server/dist/child-env.js"() {
9485
9485
  "use strict";
9486
9486
  }
9487
9487
  });
9488
9488
 
9489
- // ../server/dist/tools/sandbox.js
9489
+ // packages/server/dist/tools/sandbox.js
9490
9490
  import { exec, execFile, spawn as spawn2 } from "node:child_process";
9491
9491
  import { promisify } from "node:util";
9492
9492
  import path25 from "node:path";
@@ -9961,7 +9961,7 @@ async function sandboxReaddir(dirPath, opts) {
9961
9961
  }
9962
9962
  var execAsync, execFileAsync, HOME, HALO_HOME3, GLOBAL_DIR, KILL_GRACE_MS, _bwrapAvailable, DEFAULT_HIDDEN_DIRS, DEFAULT_HIDDEN_FILES, WORKSPACE_HIDDEN_DIRS, WORKSPACE_HIDDEN_FILES, _hiddenDirs, _hiddenFiles, _writableDirs;
9963
9963
  var init_sandbox = __esm({
9964
- "../server/dist/tools/sandbox.js"() {
9964
+ "packages/server/dist/tools/sandbox.js"() {
9965
9965
  "use strict";
9966
9966
  init_child_env();
9967
9967
  execAsync = promisify(exec);
@@ -10014,7 +10014,7 @@ var init_sandbox = __esm({
10014
10014
  }
10015
10015
  });
10016
10016
 
10017
- // ../server/dist/tools/workspace-tools.js
10017
+ // packages/server/dist/tools/workspace-tools.js
10018
10018
  import fs22 from "node:fs/promises";
10019
10019
  import path26 from "node:path";
10020
10020
  import crypto from "node:crypto";
@@ -10733,7 +10733,7 @@ function imageDimensions(buf, mediaType) {
10733
10733
  }
10734
10734
  var SKIP_DIRS, SKIP_HALO_SUBDIRS, GLOB_MAX_RESULTS, HOME2, PARAMS_PATTERN, ENV_PATTERN3;
10735
10735
  var init_workspace_tools = __esm({
10736
- "../server/dist/tools/workspace-tools.js"() {
10736
+ "packages/server/dist/tools/workspace-tools.js"() {
10737
10737
  "use strict";
10738
10738
  init_config();
10739
10739
  init_sandbox();
@@ -10750,7 +10750,7 @@ var init_workspace_tools = __esm({
10750
10750
  }
10751
10751
  });
10752
10752
 
10753
- // ../server/dist/tools/draft-tool.js
10753
+ // packages/server/dist/tools/draft-tool.js
10754
10754
  function createDraftTool() {
10755
10755
  let drafts = 0;
10756
10756
  const tool = {
@@ -10785,7 +10785,7 @@ Error: draft requires non-empty \`content\` \u2014 put your full draft answer th
10785
10785
  }
10786
10786
  var MAX_DRAFTS, REVIEW_CHECKLIST;
10787
10787
  var init_draft_tool = __esm({
10788
- "../server/dist/tools/draft-tool.js"() {
10788
+ "packages/server/dist/tools/draft-tool.js"() {
10789
10789
  "use strict";
10790
10790
  init_agent_loop();
10791
10791
  MAX_DRAFTS = 3;
@@ -10799,7 +10799,7 @@ If the draft clears all three, write the final answer now. If not, fix it (gathe
10799
10799
  }
10800
10800
  });
10801
10801
 
10802
- // ../server/dist/prompts/system-prompts.js
10802
+ // packages/server/dist/prompts/system-prompts.js
10803
10803
  import fs23 from "node:fs/promises";
10804
10804
  import path27 from "node:path";
10805
10805
  import { homedir as homedir12 } from "node:os";
@@ -10885,17 +10885,17 @@ async function loadSystemPrompts(workspaceRoot) {
10885
10885
  }
10886
10886
  var GLOBAL_PROMPTS_DIR;
10887
10887
  var init_system_prompts = __esm({
10888
- "../server/dist/prompts/system-prompts.js"() {
10888
+ "packages/server/dist/prompts/system-prompts.js"() {
10889
10889
  "use strict";
10890
10890
  GLOBAL_PROMPTS_DIR = path27.join(homedir12(), ".halo", "global", "prompts");
10891
10891
  }
10892
10892
  });
10893
10893
 
10894
- // ../server/dist/agents/session-agent-builder.js
10894
+ // packages/server/dist/agents/session-agent-builder.js
10895
10895
  import path28 from "node:path";
10896
10896
  var SessionAgentBuilder;
10897
10897
  var init_session_agent_builder = __esm({
10898
- "../server/dist/agents/session-agent-builder.js"() {
10898
+ "packages/server/dist/agents/session-agent-builder.js"() {
10899
10899
  "use strict";
10900
10900
  init_model_runtime();
10901
10901
  init_workspace_tools();
@@ -11267,7 +11267,7 @@ ${roster}`;
11267
11267
  }
11268
11268
  });
11269
11269
 
11270
- // ../server/dist/agents/session-skill-commands.js
11270
+ // packages/server/dist/agents/session-skill-commands.js
11271
11271
  import { eq as eq8 } from "drizzle-orm";
11272
11272
  function commandVisibilityGate(d) {
11273
11273
  if (!d.verbs || d.verbs.length === 0)
@@ -11284,7 +11284,7 @@ function commandVisibilityGate(d) {
11284
11284
  }
11285
11285
  var SessionSkillCommands;
11286
11286
  var init_session_skill_commands = __esm({
11287
- "../server/dist/agents/session-skill-commands.js"() {
11287
+ "packages/server/dist/agents/session-skill-commands.js"() {
11288
11288
  "use strict";
11289
11289
  init_db();
11290
11290
  init_schema();
@@ -11349,12 +11349,12 @@ var init_session_skill_commands = __esm({
11349
11349
  }
11350
11350
  });
11351
11351
 
11352
- // ../server/dist/agents/session-state-store.js
11352
+ // packages/server/dist/agents/session-state-store.js
11353
11353
  import fsSync6 from "node:fs";
11354
11354
  import path29 from "node:path";
11355
11355
  var SessionStateStore;
11356
11356
  var init_session_state_store = __esm({
11357
- "../server/dist/agents/session-state-store.js"() {
11357
+ "packages/server/dist/agents/session-state-store.js"() {
11358
11358
  "use strict";
11359
11359
  init_session_store();
11360
11360
  SessionStateStore = class {
@@ -11418,7 +11418,7 @@ var init_session_state_store = __esm({
11418
11418
  }
11419
11419
  });
11420
11420
 
11421
- // ../server/dist/observability/otel-sdk.js
11421
+ // packages/server/dist/observability/otel-sdk.js
11422
11422
  var otel_sdk_exports = {};
11423
11423
  __export(otel_sdk_exports, {
11424
11424
  registerSdk: () => registerSdk
@@ -11457,12 +11457,12 @@ function registerSdk(serviceName, serviceVersion) {
11457
11457
  return [tracerProvider, meterProvider, loggerProvider];
11458
11458
  }
11459
11459
  var init_otel_sdk = __esm({
11460
- "../server/dist/observability/otel-sdk.js"() {
11460
+ "packages/server/dist/observability/otel-sdk.js"() {
11461
11461
  "use strict";
11462
11462
  }
11463
11463
  });
11464
11464
 
11465
- // ../server/dist/observability/otel.js
11465
+ // packages/server/dist/observability/otel.js
11466
11466
  import { trace, metrics as metrics2, ProxyTracerProvider } from "@opentelemetry/api";
11467
11467
  import { logs as logs2 } from "@opentelemetry/api-logs";
11468
11468
  function externalSdkRegistered() {
@@ -11487,7 +11487,7 @@ async function initObservability() {
11487
11487
  return true;
11488
11488
  }
11489
11489
  const { registerSdk: registerSdk2 } = await Promise.resolve().then(() => (init_otel_sdk(), otel_sdk_exports));
11490
- providers = registerSdk2(process.env.OTEL_SERVICE_NAME, "1.3.4-c3090bf");
11490
+ providers = registerSdk2(process.env.OTEL_SERVICE_NAME, "1.3.4");
11491
11491
  console.log(`[Observability] OTLP export \u2192 ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT} (service.name=${process.env.OTEL_SERVICE_NAME}, capture_content=${config.observability.captureContent})`);
11492
11492
  return true;
11493
11493
  }
@@ -11508,7 +11508,7 @@ async function shutdownObservability() {
11508
11508
  }
11509
11509
  var SCOPE, enabled, tracer, getMeter, otelLogger, captureContent, providers;
11510
11510
  var init_otel = __esm({
11511
- "../server/dist/observability/otel.js"() {
11511
+ "packages/server/dist/observability/otel.js"() {
11512
11512
  "use strict";
11513
11513
  init_config();
11514
11514
  SCOPE = "opentelemetry.instrumentation.halo";
@@ -11521,7 +11521,7 @@ var init_otel = __esm({
11521
11521
  }
11522
11522
  });
11523
11523
 
11524
- // ../server/dist/observability/genai-spans.js
11524
+ // packages/server/dist/observability/genai-spans.js
11525
11525
  import { context, trace as trace2, SpanStatusCode } from "@opentelemetry/api";
11526
11526
  function instruments() {
11527
11527
  const meter = getMeter();
@@ -11747,7 +11747,7 @@ function recordRetry(kind) {
11747
11747
  }
11748
11748
  var turns, SYSTEM, PART_CAP, SYSTEM_PROMPT_CAP, ATTR_CAP, cachedInstruments, metricsFor;
11749
11749
  var init_genai_spans = __esm({
11750
- "../server/dist/observability/genai-spans.js"() {
11750
+ "packages/server/dist/observability/genai-spans.js"() {
11751
11751
  "use strict";
11752
11752
  init_otel();
11753
11753
  turns = /* @__PURE__ */ new Map();
@@ -11760,7 +11760,7 @@ var init_genai_spans = __esm({
11760
11760
  }
11761
11761
  });
11762
11762
 
11763
- // ../server/dist/agents/session-manager.js
11763
+ // packages/server/dist/agents/session-manager.js
11764
11764
  import fsSync7 from "node:fs";
11765
11765
  import path30 from "node:path";
11766
11766
  import { eq as eq9, and as and6, isNull as isNull4, isNotNull as isNotNull2 } from "drizzle-orm";
@@ -11863,7 +11863,7 @@ function generateSessionId() {
11863
11863
  }
11864
11864
  var CONTINUE_TASK_KICK, SessionManager;
11865
11865
  var init_session_manager = __esm({
11866
- "../server/dist/agents/session-manager.js"() {
11866
+ "packages/server/dist/agents/session-manager.js"() {
11867
11867
  "use strict";
11868
11868
  init_md_loader();
11869
11869
  init_config();
@@ -13980,11 +13980,11 @@ ${q.text}` : q.text);
13980
13980
  }
13981
13981
  });
13982
13982
 
13983
- // ../server/dist/agents/session-manager-registry.js
13983
+ // packages/server/dist/agents/session-manager-registry.js
13984
13984
  import fs24 from "node:fs";
13985
13985
  var SessionManagerRegistry;
13986
13986
  var init_session_manager_registry = __esm({
13987
- "../server/dist/agents/session-manager-registry.js"() {
13987
+ "packages/server/dist/agents/session-manager-registry.js"() {
13988
13988
  "use strict";
13989
13989
  init_session_manager();
13990
13990
  init_init();
@@ -14039,7 +14039,7 @@ var init_session_manager_registry = __esm({
14039
14039
  }
14040
14040
  });
14041
14041
 
14042
- // ../server/dist/logger.js
14042
+ // packages/server/dist/logger.js
14043
14043
  import fs25 from "node:fs";
14044
14044
  import path31 from "node:path";
14045
14045
  import { homedir as homedir13 } from "node:os";
@@ -14159,7 +14159,7 @@ function initLogger() {
14159
14159
  }
14160
14160
  var LOG_FILENAME, logDir, logFile, currentSize, LEVEL_ORDER, OTEL_SEVERITY;
14161
14161
  var init_logger = __esm({
14162
- "../server/dist/logger.js"() {
14162
+ "packages/server/dist/logger.js"() {
14163
14163
  "use strict";
14164
14164
  init_config();
14165
14165
  init_otel();
@@ -14177,7 +14177,7 @@ var init_logger = __esm({
14177
14177
  }
14178
14178
  });
14179
14179
 
14180
- // src/harness.ts
14180
+ // packages/cli/src/harness.ts
14181
14181
  var harness_exports = {};
14182
14182
  __export(harness_exports, {
14183
14183
  createHarness: () => createHarness,
@@ -14418,7 +14418,7 @@ async function createHarness(opts) {
14418
14418
  }
14419
14419
  var SESSION_PREFIX, USER_ID;
14420
14420
  var init_harness = __esm({
14421
- "src/harness.ts"() {
14421
+ "packages/cli/src/harness.ts"() {
14422
14422
  "use strict";
14423
14423
  init_session_manager();
14424
14424
  init_session_manager_registry();
@@ -14435,7 +14435,7 @@ var init_harness = __esm({
14435
14435
  }
14436
14436
  });
14437
14437
 
14438
- // ../server/dist/middleware/password-hash.js
14438
+ // packages/server/dist/middleware/password-hash.js
14439
14439
  var password_hash_exports = {};
14440
14440
  __export(password_hash_exports, {
14441
14441
  generateJwtSecret: () => generateJwtSecret,
@@ -14485,7 +14485,7 @@ function generateJwtSecret() {
14485
14485
  }
14486
14486
  var scryptAsync, COST, KEY_LEN;
14487
14487
  var init_password_hash = __esm({
14488
- "../server/dist/middleware/password-hash.js"() {
14488
+ "packages/server/dist/middleware/password-hash.js"() {
14489
14489
  "use strict";
14490
14490
  scryptAsync = promisify2(crypto2.scrypt);
14491
14491
  COST = { N: 16384, r: 8, p: 1 };
@@ -14493,7 +14493,7 @@ var init_password_hash = __esm({
14493
14493
  }
14494
14494
  });
14495
14495
 
14496
- // ../server/dist/setup-config.js
14496
+ // packages/server/dist/setup-config.js
14497
14497
  var setup_config_exports = {};
14498
14498
  __export(setup_config_exports, {
14499
14499
  configLeafSet: () => configLeafSet,
@@ -14534,13 +14534,13 @@ function configLeafSet(dotPath) {
14534
14534
  }
14535
14535
  var CONFIG_PATH;
14536
14536
  var init_setup_config = __esm({
14537
- "../server/dist/setup-config.js"() {
14537
+ "packages/server/dist/setup-config.js"() {
14538
14538
  "use strict";
14539
14539
  CONFIG_PATH = path33.join(homedir14(), ".halo", "secrets", "config.yaml");
14540
14540
  }
14541
14541
  });
14542
14542
 
14543
- // ../server/dist/setup-settings.js
14543
+ // packages/server/dist/setup-settings.js
14544
14544
  var setup_settings_exports = {};
14545
14545
  __export(setup_settings_exports, {
14546
14546
  maskSecret: () => maskSecret,
@@ -14619,13 +14619,13 @@ function maskSecret(value) {
14619
14619
  }
14620
14620
  var SETTINGS_PATH2;
14621
14621
  var init_setup_settings = __esm({
14622
- "../server/dist/setup-settings.js"() {
14622
+ "packages/server/dist/setup-settings.js"() {
14623
14623
  "use strict";
14624
14624
  SETTINGS_PATH2 = path34.join(homedir15(), ".halo", "secrets", "settings.yaml");
14625
14625
  }
14626
14626
  });
14627
14627
 
14628
- // ../server/dist/setup-providers.js
14628
+ // packages/server/dist/setup-providers.js
14629
14629
  var setup_providers_exports = {};
14630
14630
  __export(setup_providers_exports, {
14631
14631
  AWS_CREDENTIAL_CHAIN_PROVIDER: () => AWS_CREDENTIAL_CHAIN_PROVIDER,
@@ -14831,7 +14831,7 @@ function listRequiredSkillsWithSecrets() {
14831
14831
  }
14832
14832
  var AWS_CREDENTIAL_CHAIN_PROVIDER, REBIND_BUILTIN_AGENT_IDS, GLOBAL_AGENTS_DIR3;
14833
14833
  var init_setup_providers = __esm({
14834
- "../server/dist/setup-providers.js"() {
14834
+ "packages/server/dist/setup-providers.js"() {
14835
14835
  "use strict";
14836
14836
  init_init();
14837
14837
  init_setup_settings();
@@ -14841,7 +14841,7 @@ var init_setup_providers = __esm({
14841
14841
  }
14842
14842
  });
14843
14843
 
14844
- // src/setup-bind-provider.ts
14844
+ // packages/cli/src/setup-bind-provider.ts
14845
14845
  var setup_bind_provider_exports = {};
14846
14846
  __export(setup_bind_provider_exports, {
14847
14847
  AWS_CHAIN_PROVIDER: () => AWS_CHAIN_PROVIDER,
@@ -14881,14 +14881,14 @@ function buildBindProviderPlan(configured, currentProvider, currentProviderHasKe
14881
14881
  }
14882
14882
  var AWS_CHAIN_PROVIDER, KEEP_CURRENT;
14883
14883
  var init_setup_bind_provider = __esm({
14884
- "src/setup-bind-provider.ts"() {
14884
+ "packages/cli/src/setup-bind-provider.ts"() {
14885
14885
  "use strict";
14886
14886
  AWS_CHAIN_PROVIDER = "aws-bedrock-claude-invoke";
14887
14887
  KEEP_CURRENT = "__keep__";
14888
14888
  }
14889
14889
  });
14890
14890
 
14891
- // src/setup-prompts.ts
14891
+ // packages/cli/src/setup-prompts.ts
14892
14892
  var setup_prompts_exports = {};
14893
14893
  __export(setup_prompts_exports, {
14894
14894
  promptMultiSelect: () => promptMultiSelect,
@@ -15174,12 +15174,12 @@ function promptMultiSelectRich(question, options) {
15174
15174
  });
15175
15175
  }
15176
15176
  var init_setup_prompts = __esm({
15177
- "src/setup-prompts.ts"() {
15177
+ "packages/cli/src/setup-prompts.ts"() {
15178
15178
  "use strict";
15179
15179
  }
15180
15180
  });
15181
15181
 
15182
- // src/upgrade-verify.ts
15182
+ // packages/cli/src/upgrade-verify.ts
15183
15183
  var upgrade_verify_exports = {};
15184
15184
  __export(upgrade_verify_exports, {
15185
15185
  ALLOW_SCRIPTS: () => ALLOW_SCRIPTS,
@@ -15204,7 +15204,7 @@ function verifyNativeModules(pkgRoot) {
15204
15204
  }
15205
15205
  var NATIVE_MODULE_SMOKES, ALLOW_SCRIPTS;
15206
15206
  var init_upgrade_verify = __esm({
15207
- "src/upgrade-verify.ts"() {
15207
+ "packages/cli/src/upgrade-verify.ts"() {
15208
15208
  "use strict";
15209
15209
  NATIVE_MODULE_SMOKES = [
15210
15210
  { name: "better-sqlite3", smoke: "new (require(process.argv[1]))(':memory:')" },
@@ -15214,7 +15214,7 @@ var init_upgrade_verify = __esm({
15214
15214
  }
15215
15215
  });
15216
15216
 
15217
- // src/render-md.ts
15217
+ // packages/cli/src/render-md.ts
15218
15218
  import { marked } from "marked";
15219
15219
  import { markedTerminal } from "marked-terminal";
15220
15220
  function renderMarkdown(text6) {
@@ -15222,14 +15222,14 @@ function renderMarkdown(text6) {
15222
15222
  return rendered.replace(/\n{3,}/g, "\n\n").trimEnd();
15223
15223
  }
15224
15224
  var init_render_md = __esm({
15225
- "src/render-md.ts"() {
15225
+ "packages/cli/src/render-md.ts"() {
15226
15226
  "use strict";
15227
15227
  marked.use(markedTerminal({ reflowText: true, width: Math.min(process.stdout.columns || 80, 120) }));
15228
15228
  marked.use({ breaks: true });
15229
15229
  }
15230
15230
  });
15231
15231
 
15232
- // src/resolve-refs.ts
15232
+ // packages/cli/src/resolve-refs.ts
15233
15233
  import fs31 from "node:fs";
15234
15234
  import path37 from "node:path";
15235
15235
  function resolveRefs(input, workspace) {
@@ -15308,7 +15308,7 @@ ${content}
15308
15308
  }
15309
15309
  var MAX_FILE_BYTES, MAX_IMAGE_BYTES, REF_PATTERN;
15310
15310
  var init_resolve_refs = __esm({
15311
- "src/resolve-refs.ts"() {
15311
+ "packages/cli/src/resolve-refs.ts"() {
15312
15312
  "use strict";
15313
15313
  init_dist();
15314
15314
  MAX_FILE_BYTES = 100 * 1024;
@@ -15317,7 +15317,7 @@ var init_resolve_refs = __esm({
15317
15317
  }
15318
15318
  });
15319
15319
 
15320
- // src/format-usage.ts
15320
+ // packages/cli/src/format-usage.ts
15321
15321
  function fmtK(n) {
15322
15322
  return `${(n / 1e3).toFixed(1)}K`;
15323
15323
  }
@@ -15361,7 +15361,7 @@ function formatUsageLine(event) {
15361
15361
  }
15362
15362
  var ANSI;
15363
15363
  var init_format_usage = __esm({
15364
- "src/format-usage.ts"() {
15364
+ "packages/cli/src/format-usage.ts"() {
15365
15365
  "use strict";
15366
15366
  ANSI = {
15367
15367
  reset: "\x1B[0m",
@@ -15375,7 +15375,7 @@ var init_format_usage = __esm({
15375
15375
  }
15376
15376
  });
15377
15377
 
15378
- // src/tui/components/banner.tsx
15378
+ // packages/cli/src/tui/components/banner.tsx
15379
15379
  import { Box, Text } from "ink";
15380
15380
  import { jsx } from "react/jsx-runtime";
15381
15381
  function Banner() {
@@ -15383,7 +15383,7 @@ function Banner() {
15383
15383
  }
15384
15384
  var LINES, COLORS;
15385
15385
  var init_banner = __esm({
15386
- "src/tui/components/banner.tsx"() {
15386
+ "packages/cli/src/tui/components/banner.tsx"() {
15387
15387
  "use strict";
15388
15388
  LINES = [
15389
15389
  " \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
@@ -15397,7 +15397,7 @@ var init_banner = __esm({
15397
15397
  }
15398
15398
  });
15399
15399
 
15400
- // src/tui/components/messages.tsx
15400
+ // packages/cli/src/tui/components/messages.tsx
15401
15401
  import { Box as Box2, Static, Text as Text2 } from "ink";
15402
15402
  import { jsx as jsx2, jsxs } from "react/jsx-runtime";
15403
15403
  function Messages({ blocks }) {
@@ -15455,7 +15455,7 @@ function Block({ block }) {
15455
15455
  }
15456
15456
  var BANNER_ID;
15457
15457
  var init_messages = __esm({
15458
- "src/tui/components/messages.tsx"() {
15458
+ "packages/cli/src/tui/components/messages.tsx"() {
15459
15459
  "use strict";
15460
15460
  init_format_usage();
15461
15461
  init_banner();
@@ -15463,7 +15463,7 @@ var init_messages = __esm({
15463
15463
  }
15464
15464
  });
15465
15465
 
15466
- // src/tui/terminal-text.ts
15466
+ // packages/cli/src/tui/terminal-text.ts
15467
15467
  function sanitizeToolOutput(s) {
15468
15468
  return s.replace(ESCAPE_SEQ_RE, "").replace(/\r\n?/g, "\n").replace(/\t/g, " ").replace(C0_RE, "");
15469
15469
  }
@@ -15493,14 +15493,14 @@ function tailByRows(text6, cols, maxRows) {
15493
15493
  }
15494
15494
  var ESCAPE_SEQ_RE, C0_RE;
15495
15495
  var init_terminal_text = __esm({
15496
- "src/tui/terminal-text.ts"() {
15496
+ "packages/cli/src/tui/terminal-text.ts"() {
15497
15497
  "use strict";
15498
15498
  ESCAPE_SEQ_RE = /\x1b\][^\x07\n]*\x07|\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b[@-Z\\-_]/g;
15499
15499
  C0_RE = /[\x00-\x09\x0b-\x1f\x7f]/g;
15500
15500
  }
15501
15501
  });
15502
15502
 
15503
- // src/tui/components/streaming.tsx
15503
+ // packages/cli/src/tui/components/streaming.tsx
15504
15504
  import { useEffect, useState } from "react";
15505
15505
  import { Box as Box3, Text as Text3, useStdout } from "ink";
15506
15506
  import Spinner from "ink-spinner";
@@ -15553,13 +15553,13 @@ function Streaming({ spinnerLabel, liveText, liveThinking, activeSubs, turnStart
15553
15553
  ] });
15554
15554
  }
15555
15555
  var init_streaming = __esm({
15556
- "src/tui/components/streaming.tsx"() {
15556
+ "packages/cli/src/tui/components/streaming.tsx"() {
15557
15557
  "use strict";
15558
15558
  init_terminal_text();
15559
15559
  }
15560
15560
  });
15561
15561
 
15562
- // src/tui/history.ts
15562
+ // packages/cli/src/tui/history.ts
15563
15563
  import fs32 from "node:fs";
15564
15564
  import path38 from "node:path";
15565
15565
  import os2 from "node:os";
@@ -15585,14 +15585,14 @@ function appendHistory(entry) {
15585
15585
  }
15586
15586
  var HISTORY_FILE, MAX_ENTRIES;
15587
15587
  var init_history = __esm({
15588
- "src/tui/history.ts"() {
15588
+ "packages/cli/src/tui/history.ts"() {
15589
15589
  "use strict";
15590
15590
  HISTORY_FILE = path38.join(os2.homedir(), ".halo", "global", "tui-history.json");
15591
15591
  MAX_ENTRIES = 100;
15592
15592
  }
15593
15593
  });
15594
15594
 
15595
- // src/tui/components/status-bar.tsx
15595
+ // packages/cli/src/tui/components/status-bar.tsx
15596
15596
  import { Box as Box4, Text as Text4 } from "ink";
15597
15597
  import { Fragment, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
15598
15598
  function shortModel(modelId) {
@@ -15628,12 +15628,12 @@ function StatusBar({ agentName, modelId, contextPercent, workspace, sessionId, v
15628
15628
  ] });
15629
15629
  }
15630
15630
  var init_status_bar = __esm({
15631
- "src/tui/components/status-bar.tsx"() {
15631
+ "packages/cli/src/tui/components/status-bar.tsx"() {
15632
15632
  "use strict";
15633
15633
  }
15634
15634
  });
15635
15635
 
15636
- // src/tui/components/slash-suggest.tsx
15636
+ // packages/cli/src/tui/components/slash-suggest.tsx
15637
15637
  import { Box as Box5, Text as Text5 } from "ink";
15638
15638
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
15639
15639
  function SlashSuggest({ items, selectedIdx, maxWidth = 80 }) {
@@ -15660,12 +15660,12 @@ function SlashSuggest({ items, selectedIdx, maxWidth = 80 }) {
15660
15660
  ] });
15661
15661
  }
15662
15662
  var init_slash_suggest = __esm({
15663
- "src/tui/components/slash-suggest.tsx"() {
15663
+ "packages/cli/src/tui/components/slash-suggest.tsx"() {
15664
15664
  "use strict";
15665
15665
  }
15666
15666
  });
15667
15667
 
15668
- // src/tui/components/path-suggest.tsx
15668
+ // packages/cli/src/tui/components/path-suggest.tsx
15669
15669
  import { Box as Box6, Text as Text6 } from "ink";
15670
15670
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
15671
15671
  function PathSuggest({ items, selectedIdx, cwdLabel }) {
@@ -15692,12 +15692,12 @@ function PathSuggest({ items, selectedIdx, cwdLabel }) {
15692
15692
  ] });
15693
15693
  }
15694
15694
  var init_path_suggest = __esm({
15695
- "src/tui/components/path-suggest.tsx"() {
15695
+ "packages/cli/src/tui/components/path-suggest.tsx"() {
15696
15696
  "use strict";
15697
15697
  }
15698
15698
  });
15699
15699
 
15700
- // src/tui/path-suggest-engine.ts
15700
+ // packages/cli/src/tui/path-suggest-engine.ts
15701
15701
  import fs33 from "node:fs";
15702
15702
  import path39 from "node:path";
15703
15703
  function detectActiveRef(value) {
@@ -15783,13 +15783,13 @@ function applyPathPick(value, ref, pick) {
15783
15783
  return `${before}@${kind} ${path70}`;
15784
15784
  }
15785
15785
  var init_path_suggest_engine = __esm({
15786
- "src/tui/path-suggest-engine.ts"() {
15786
+ "packages/cli/src/tui/path-suggest-engine.ts"() {
15787
15787
  "use strict";
15788
15788
  init_dist();
15789
15789
  }
15790
15790
  });
15791
15791
 
15792
- // src/tui/line-editor.ts
15792
+ // packages/cli/src/tui/line-editor.ts
15793
15793
  function toGraphemes(s) {
15794
15794
  if (s === "") return [];
15795
15795
  return [...segmenter.segment(s)].map((seg) => seg.segment);
@@ -15843,13 +15843,13 @@ function deleteToEnd(e) {
15843
15843
  }
15844
15844
  var segmenter;
15845
15845
  var init_line_editor = __esm({
15846
- "src/tui/line-editor.ts"() {
15846
+ "packages/cli/src/tui/line-editor.ts"() {
15847
15847
  "use strict";
15848
15848
  segmenter = new Intl.Segmenter();
15849
15849
  }
15850
15850
  });
15851
15851
 
15852
- // src/tui/components/text-input.tsx
15852
+ // packages/cli/src/tui/components/text-input.tsx
15853
15853
  import { Text as Text7 } from "ink";
15854
15854
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
15855
15855
  function TextInputView({ value, cursor, placeholder }) {
@@ -15874,13 +15874,13 @@ function TextInputView({ value, cursor, placeholder }) {
15874
15874
  ] });
15875
15875
  }
15876
15876
  var init_text_input = __esm({
15877
- "src/tui/components/text-input.tsx"() {
15877
+ "packages/cli/src/tui/components/text-input.tsx"() {
15878
15878
  "use strict";
15879
15879
  init_line_editor();
15880
15880
  }
15881
15881
  });
15882
15882
 
15883
- // src/tui/components/input-box.tsx
15883
+ // packages/cli/src/tui/components/input-box.tsx
15884
15884
  import { useState as useState2, useEffect as useEffect2, useMemo, useRef } from "react";
15885
15885
  import { Box as Box7, Text as Text8, useInput, usePaste } from "ink";
15886
15886
  import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
@@ -16131,7 +16131,7 @@ function InputBox({ enabled: enabled2, placeholder, history, onSubmit, hint, com
16131
16131
  ] });
16132
16132
  }
16133
16133
  var init_input_box = __esm({
16134
- "src/tui/components/input-box.tsx"() {
16134
+ "packages/cli/src/tui/components/input-box.tsx"() {
16135
16135
  "use strict";
16136
16136
  init_slash_suggest();
16137
16137
  init_path_suggest();
@@ -16141,7 +16141,7 @@ var init_input_box = __esm({
16141
16141
  }
16142
16142
  });
16143
16143
 
16144
- // src/tui/components/log-navigator.tsx
16144
+ // packages/cli/src/tui/components/log-navigator.tsx
16145
16145
  import { useState as useState3, useMemo as useMemo2, useEffect as useEffect3 } from "react";
16146
16146
  import { Box as Box8, Text as Text9, useInput as useInput2 } from "ink";
16147
16147
  import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
@@ -16220,12 +16220,12 @@ function LogNavigator({ tree, onPick, onCancel }) {
16220
16220
  ] });
16221
16221
  }
16222
16222
  var init_log_navigator = __esm({
16223
- "src/tui/components/log-navigator.tsx"() {
16223
+ "packages/cli/src/tui/components/log-navigator.tsx"() {
16224
16224
  "use strict";
16225
16225
  }
16226
16226
  });
16227
16227
 
16228
- // src/tui/components/log-viewer.tsx
16228
+ // packages/cli/src/tui/components/log-viewer.tsx
16229
16229
  import { useState as useState4, useMemo as useMemo3, useEffect as useEffect4, useRef as useRef2 } from "react";
16230
16230
  import { Box as Box9, Text as Text10, useInput as useInput3, useStdout as useStdout2 } from "ink";
16231
16231
  import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -16298,12 +16298,12 @@ function LogViewer({ title, lines, live, onClose }) {
16298
16298
  ] });
16299
16299
  }
16300
16300
  var init_log_viewer = __esm({
16301
- "src/tui/components/log-viewer.tsx"() {
16301
+ "packages/cli/src/tui/components/log-viewer.tsx"() {
16302
16302
  "use strict";
16303
16303
  }
16304
16304
  });
16305
16305
 
16306
- // src/tui/app.tsx
16306
+ // packages/cli/src/tui/app.tsx
16307
16307
  import { useEffect as useEffect5, useMemo as useMemo4, useReducer, useState as useState5, useRef as useRef3 } from "react";
16308
16308
  import { Box as Box10, useApp, useInput as useInput4 } from "ink";
16309
16309
  import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
@@ -17013,7 +17013,7 @@ ${lines.join("\n")}` });
17013
17013
  }
17014
17014
  var MAX_CONTEXT_TOKENS_FALLBACK, blockSeq, ANSI2;
17015
17015
  var init_app = __esm({
17016
- "src/tui/app.tsx"() {
17016
+ "packages/cli/src/tui/app.tsx"() {
17017
17017
  "use strict";
17018
17018
  init_render_md();
17019
17019
  init_resolve_refs();
@@ -17041,7 +17041,7 @@ var init_app = __esm({
17041
17041
  }
17042
17042
  });
17043
17043
 
17044
- // src/tui.tsx
17044
+ // packages/cli/src/tui.tsx
17045
17045
  var tui_exports = {};
17046
17046
  __export(tui_exports, {
17047
17047
  runTui: () => runTui
@@ -17056,13 +17056,13 @@ async function runTui(harness, opts = {}) {
17056
17056
  await instance.waitUntilExit();
17057
17057
  }
17058
17058
  var init_tui = __esm({
17059
- "src/tui.tsx"() {
17059
+ "packages/cli/src/tui.tsx"() {
17060
17060
  "use strict";
17061
17061
  init_app();
17062
17062
  }
17063
17063
  });
17064
17064
 
17065
- // src/cli.ts
17065
+ // packages/cli/src/cli.ts
17066
17066
  var cli_exports = {};
17067
17067
  __export(cli_exports, {
17068
17068
  runCli: () => runCli
@@ -17246,7 +17246,7 @@ ${tag}${formatUsageLine(event)}
17246
17246
  return errorText ? 1 : 0;
17247
17247
  }
17248
17248
  var init_cli = __esm({
17249
- "src/cli.ts"() {
17249
+ "packages/cli/src/cli.ts"() {
17250
17250
  "use strict";
17251
17251
  init_render_md();
17252
17252
  init_resolve_refs();
@@ -17254,7 +17254,7 @@ var init_cli = __esm({
17254
17254
  }
17255
17255
  });
17256
17256
 
17257
- // ../server/dist/channels/shared/media.js
17257
+ // packages/server/dist/channels/shared/media.js
17258
17258
  import path40 from "node:path";
17259
17259
  import os3 from "node:os";
17260
17260
  function tempDir() {
@@ -17295,7 +17295,7 @@ function classifyMedia(filePath) {
17295
17295
  }
17296
17296
  var MEDIA_MARKER_RE, VIDEO_EXTS, VOICE_EXTS;
17297
17297
  var init_media = __esm({
17298
- "../server/dist/channels/shared/media.js"() {
17298
+ "packages/server/dist/channels/shared/media.js"() {
17299
17299
  "use strict";
17300
17300
  init_dist();
17301
17301
  MEDIA_MARKER_RE = /^MEDIA:\s*(\S.*?)\s*$/gm;
@@ -17304,7 +17304,7 @@ var init_media = __esm({
17304
17304
  }
17305
17305
  });
17306
17306
 
17307
- // ../server/dist/routes/workspace-path.js
17307
+ // packages/server/dist/routes/workspace-path.js
17308
17308
  import fs34 from "node:fs/promises";
17309
17309
  import { existsSync as existsSync2, realpathSync as realpathSync3 } from "node:fs";
17310
17310
  import path41 from "node:path";
@@ -17348,12 +17348,12 @@ function isSafeIdSegment(id) {
17348
17348
  return /^[\w.:>\u4e00-\u9fff-]+$/.test(id);
17349
17349
  }
17350
17350
  var init_workspace_path = __esm({
17351
- "../server/dist/routes/workspace-path.js"() {
17351
+ "packages/server/dist/routes/workspace-path.js"() {
17352
17352
  "use strict";
17353
17353
  }
17354
17354
  });
17355
17355
 
17356
- // ../server/dist/routes/files.js
17356
+ // packages/server/dist/routes/files.js
17357
17357
  import { Hono } from "hono";
17358
17358
  import fs35 from "node:fs/promises";
17359
17359
  import { createReadStream } from "node:fs";
@@ -17893,7 +17893,7 @@ function createFileRoutes() {
17893
17893
  return app2;
17894
17894
  }
17895
17895
  var init_files = __esm({
17896
- "../server/dist/routes/files.js"() {
17896
+ "packages/server/dist/routes/files.js"() {
17897
17897
  "use strict";
17898
17898
  init_dist();
17899
17899
  init_media();
@@ -17901,7 +17901,7 @@ var init_files = __esm({
17901
17901
  }
17902
17902
  });
17903
17903
 
17904
- // ../server/dist/routes/data-preview.js
17904
+ // packages/server/dist/routes/data-preview.js
17905
17905
  import { Hono as Hono2 } from "hono";
17906
17906
  import fs36 from "node:fs/promises";
17907
17907
  import { createReadStream as createReadStream2 } from "node:fs";
@@ -18126,7 +18126,7 @@ function createDataPreviewRoutes() {
18126
18126
  }
18127
18127
  var DEFAULT_LIMIT, MAX_LIMIT, MAX_ROW_CHARS, QUOTE, CR, LF, COMMA, SEMI, TAB, CsvScanner;
18128
18128
  var init_data_preview = __esm({
18129
- "../server/dist/routes/data-preview.js"() {
18129
+ "packages/server/dist/routes/data-preview.js"() {
18130
18130
  "use strict";
18131
18131
  init_workspace_path();
18132
18132
  DEFAULT_LIMIT = 100;
@@ -18227,7 +18227,7 @@ var init_data_preview = __esm({
18227
18227
  }
18228
18228
  });
18229
18229
 
18230
- // ../server/dist/git-credentials.js
18230
+ // packages/server/dist/git-credentials.js
18231
18231
  import fs37 from "node:fs";
18232
18232
  import path44 from "node:path";
18233
18233
  import { homedir as homedir18 } from "node:os";
@@ -18293,13 +18293,13 @@ function deleteGitCredential(host) {
18293
18293
  }
18294
18294
  var GIT_CREDENTIALS_PATH;
18295
18295
  var init_git_credentials = __esm({
18296
- "../server/dist/git-credentials.js"() {
18296
+ "packages/server/dist/git-credentials.js"() {
18297
18297
  "use strict";
18298
18298
  GIT_CREDENTIALS_PATH = path44.join(homedir18(), ".git-credentials");
18299
18299
  }
18300
18300
  });
18301
18301
 
18302
- // ../server/dist/git-ssh.js
18302
+ // packages/server/dist/git-ssh.js
18303
18303
  import fs38 from "node:fs";
18304
18304
  import os4 from "node:os";
18305
18305
  import path45 from "node:path";
@@ -18476,7 +18476,7 @@ function getRemoteProtocol(projectRoot) {
18476
18476
  }
18477
18477
  var SSH_DIR, NON_KEY_NAMES, ownedAgentPid, ASKPASS_SCRIPT;
18478
18478
  var init_git_ssh = __esm({
18479
- "../server/dist/git-ssh.js"() {
18479
+ "packages/server/dist/git-ssh.js"() {
18480
18480
  "use strict";
18481
18481
  SSH_DIR = path45.join(os4.homedir(), ".ssh");
18482
18482
  NON_KEY_NAMES = /* @__PURE__ */ new Set(["known_hosts", "known_hosts2", "authorized_keys", "config"]);
@@ -18489,7 +18489,7 @@ printf '%s\\n' "$HALO_SSH_PASSPHRASE"
18489
18489
  }
18490
18490
  });
18491
18491
 
18492
- // ../server/dist/routes/git.js
18492
+ // packages/server/dist/routes/git.js
18493
18493
  import { Hono as Hono3 } from "hono";
18494
18494
  import os5 from "node:os";
18495
18495
  import path46 from "node:path";
@@ -18855,7 +18855,7 @@ function createGitRoutes() {
18855
18855
  return app2;
18856
18856
  }
18857
18857
  var init_git = __esm({
18858
- "../server/dist/routes/git.js"() {
18858
+ "packages/server/dist/routes/git.js"() {
18859
18859
  "use strict";
18860
18860
  init_dist();
18861
18861
  init_workspace_path();
@@ -18865,7 +18865,7 @@ var init_git = __esm({
18865
18865
  }
18866
18866
  });
18867
18867
 
18868
- // ../server/dist/routes/mtime-cache.js
18868
+ // packages/server/dist/routes/mtime-cache.js
18869
18869
  function createMtimeCache() {
18870
18870
  const entries = /* @__PURE__ */ new Map();
18871
18871
  return {
@@ -18880,12 +18880,12 @@ function createMtimeCache() {
18880
18880
  };
18881
18881
  }
18882
18882
  var init_mtime_cache = __esm({
18883
- "../server/dist/routes/mtime-cache.js"() {
18883
+ "packages/server/dist/routes/mtime-cache.js"() {
18884
18884
  "use strict";
18885
18885
  }
18886
18886
  });
18887
18887
 
18888
- // ../server/dist/routes/agent-configs.js
18888
+ // packages/server/dist/routes/agent-configs.js
18889
18889
  import { Hono as Hono4 } from "hono";
18890
18890
  import fs39 from "node:fs/promises";
18891
18891
  import path47 from "node:path";
@@ -19419,7 +19419,7 @@ ${body.description ?? ""}
19419
19419
  }
19420
19420
  var _cachedTools, GLOBAL_AGENTS_DIR4, FALLBACK_SCAFFOLD_PROVIDER, _yamlCache;
19421
19421
  var init_agent_configs = __esm({
19422
- "../server/dist/routes/agent-configs.js"() {
19422
+ "packages/server/dist/routes/agent-configs.js"() {
19423
19423
  "use strict";
19424
19424
  init_workspace_tools();
19425
19425
  init_draft_tool();
@@ -19436,7 +19436,7 @@ var init_agent_configs = __esm({
19436
19436
  }
19437
19437
  });
19438
19438
 
19439
- // ../server/dist/routes/skills.js
19439
+ // packages/server/dist/routes/skills.js
19440
19440
  import { Hono as Hono5 } from "hono";
19441
19441
  import fs40 from "node:fs/promises";
19442
19442
  import path48 from "node:path";
@@ -19631,7 +19631,7 @@ function createSkillRoutes() {
19631
19631
  }
19632
19632
  var GLOBAL_SETTINGS_PATH, _skillMdCache;
19633
19633
  var init_skills = __esm({
19634
- "../server/dist/routes/skills.js"() {
19634
+ "packages/server/dist/routes/skills.js"() {
19635
19635
  "use strict";
19636
19636
  init_agent_loader();
19637
19637
  init_db();
@@ -19642,7 +19642,7 @@ var init_skills = __esm({
19642
19642
  }
19643
19643
  });
19644
19644
 
19645
- // ../server/dist/routes/settings.js
19645
+ // packages/server/dist/routes/settings.js
19646
19646
  import { Hono as Hono6 } from "hono";
19647
19647
  import fs41 from "node:fs/promises";
19648
19648
  import path49 from "node:path";
@@ -19911,7 +19911,7 @@ function createSettingsRoutes() {
19911
19911
  }
19912
19912
  var GLOBAL_SETTINGS_PATH2, _changeListeners;
19913
19913
  var init_settings = __esm({
19914
- "../server/dist/routes/settings.js"() {
19914
+ "packages/server/dist/routes/settings.js"() {
19915
19915
  "use strict";
19916
19916
  init_settings_schema();
19917
19917
  init_workspace_path();
@@ -19920,7 +19920,7 @@ var init_settings = __esm({
19920
19920
  }
19921
19921
  });
19922
19922
 
19923
- // ../server/dist/evolution/archive.js
19923
+ // packages/server/dist/evolution/archive.js
19924
19924
  import fs42 from "node:fs";
19925
19925
  import path50 from "node:path";
19926
19926
  import { pipeline } from "node:stream/promises";
@@ -20087,7 +20087,7 @@ function stopArchiveDaemon() {
20087
20087
  }
20088
20088
  var TERMINAL_RUN_STATUSES, TERMINAL_APPLY_STATUSES, DAY_MS, ARCHIVE_AFTER_MS, PURGE_AFTER_MS, _archiveTimer, _startupTimer;
20089
20089
  var init_archive = __esm({
20090
- "../server/dist/evolution/archive.js"() {
20090
+ "packages/server/dist/evolution/archive.js"() {
20091
20091
  "use strict";
20092
20092
  init_evo_db();
20093
20093
  init_paths();
@@ -20101,7 +20101,7 @@ var init_archive = __esm({
20101
20101
  }
20102
20102
  });
20103
20103
 
20104
- // ../server/dist/db/raw-sqlite.js
20104
+ // packages/server/dist/db/raw-sqlite.js
20105
20105
  function rawSqlite(db) {
20106
20106
  const withClient = db;
20107
20107
  const client = withClient.$client ?? withClient.session?.client;
@@ -20110,12 +20110,12 @@ function rawSqlite(db) {
20110
20110
  return client;
20111
20111
  }
20112
20112
  var init_raw_sqlite = __esm({
20113
- "../server/dist/db/raw-sqlite.js"() {
20113
+ "packages/server/dist/db/raw-sqlite.js"() {
20114
20114
  "use strict";
20115
20115
  }
20116
20116
  });
20117
20117
 
20118
- // ../server/dist/routes/evolution.js
20118
+ // packages/server/dist/routes/evolution.js
20119
20119
  import { Hono as Hono7 } from "hono";
20120
20120
  import { eq as eq11, desc as desc2, lt as lt3, and as and8, or, sql } from "drizzle-orm";
20121
20121
  import fs43 from "node:fs/promises";
@@ -20373,7 +20373,7 @@ function extractText(content) {
20373
20373
  }
20374
20374
  var UNDELETABLE_RUN_STATUSES;
20375
20375
  var init_evolution = __esm({
20376
- "../server/dist/routes/evolution.js"() {
20376
+ "packages/server/dist/routes/evolution.js"() {
20377
20377
  "use strict";
20378
20378
  init_evo_db();
20379
20379
  init_archive();
@@ -20384,7 +20384,7 @@ var init_evolution = __esm({
20384
20384
  }
20385
20385
  });
20386
20386
 
20387
- // ../server/dist/routes/sessions.js
20387
+ // packages/server/dist/routes/sessions.js
20388
20388
  import { Hono as Hono8 } from "hono";
20389
20389
  import { and as and9, eq as eq12, gte as gte2, lt as lt4 } from "drizzle-orm";
20390
20390
  function rawId() {
@@ -20639,7 +20639,7 @@ function createSessionRoutes(smRegistry) {
20639
20639
  }
20640
20640
  var msgCounter2;
20641
20641
  var init_sessions = __esm({
20642
- "../server/dist/routes/sessions.js"() {
20642
+ "packages/server/dist/routes/sessions.js"() {
20643
20643
  "use strict";
20644
20644
  init_db();
20645
20645
  init_schema();
@@ -20651,7 +20651,7 @@ var init_sessions = __esm({
20651
20651
  }
20652
20652
  });
20653
20653
 
20654
- // ../server/dist/routes/session-archive.js
20654
+ // packages/server/dist/routes/session-archive.js
20655
20655
  import { Hono as Hono9 } from "hono";
20656
20656
  function createSessionArchiveRoutes(smRegistry) {
20657
20657
  const app2 = new Hono9();
@@ -20684,7 +20684,7 @@ function createSessionArchiveRoutes(smRegistry) {
20684
20684
  return app2;
20685
20685
  }
20686
20686
  var init_session_archive2 = __esm({
20687
- "../server/dist/routes/session-archive.js"() {
20687
+ "packages/server/dist/routes/session-archive.js"() {
20688
20688
  "use strict";
20689
20689
  init_db();
20690
20690
  init_session_store();
@@ -20693,7 +20693,7 @@ var init_session_archive2 = __esm({
20693
20693
  }
20694
20694
  });
20695
20695
 
20696
- // ../server/dist/db/channel-db.js
20696
+ // packages/server/dist/db/channel-db.js
20697
20697
  import Database5 from "better-sqlite3";
20698
20698
  import { drizzle as drizzle4 } from "drizzle-orm/better-sqlite3";
20699
20699
  import { sqliteTable as sqliteTable4, text as text4, integer as integer4 } from "drizzle-orm/sqlite-core";
@@ -20719,7 +20719,7 @@ function getChannelDb() {
20719
20719
  }
20720
20720
  var channelAccounts, CREATE_SQL3, _channelDb;
20721
20721
  var init_channel_db = __esm({
20722
- "../server/dist/db/channel-db.js"() {
20722
+ "packages/server/dist/db/channel-db.js"() {
20723
20723
  "use strict";
20724
20724
  init_migrate();
20725
20725
  channelAccounts = sqliteTable4("channel_accounts", {
@@ -20753,7 +20753,7 @@ CREATE INDEX IF NOT EXISTS idx_channel_accounts_type ON channel_accounts(channel
20753
20753
  }
20754
20754
  });
20755
20755
 
20756
- // ../server/dist/channels/shared/accounts.js
20756
+ // packages/server/dist/channels/shared/accounts.js
20757
20757
  import fs45 from "node:fs";
20758
20758
  import path53 from "node:path";
20759
20759
  import { eq as eq13, and as and10 } from "drizzle-orm";
@@ -20874,7 +20874,7 @@ function deleteAccount(db, accountId) {
20874
20874
  }
20875
20875
  var ACCOUNT_ACCESS_LEVELS, CHAT_ACCESS_LEVELS, _lastActiveChatCache, _wechatContextTokenCache;
20876
20876
  var init_accounts = __esm({
20877
- "../server/dist/channels/shared/accounts.js"() {
20877
+ "packages/server/dist/channels/shared/accounts.js"() {
20878
20878
  "use strict";
20879
20879
  init_channel_db();
20880
20880
  init_init();
@@ -20885,7 +20885,7 @@ var init_accounts = __esm({
20885
20885
  }
20886
20886
  });
20887
20887
 
20888
- // ../server/dist/channels/web/accounts.js
20888
+ // packages/server/dist/channels/web/accounts.js
20889
20889
  function toWeb(a) {
20890
20890
  const c = a.config;
20891
20891
  return {
@@ -20948,14 +20948,14 @@ function deleteAccount2(db, accountId) {
20948
20948
  }
20949
20949
  var CH;
20950
20950
  var init_accounts2 = __esm({
20951
- "../server/dist/channels/web/accounts.js"() {
20951
+ "packages/server/dist/channels/web/accounts.js"() {
20952
20952
  "use strict";
20953
20953
  init_accounts();
20954
20954
  CH = "web";
20955
20955
  }
20956
20956
  });
20957
20957
 
20958
- // ../server/dist/middleware/brute-force.js
20958
+ // packages/server/dist/middleware/brute-force.js
20959
20959
  import { getConnInfo } from "@hono/node-server/conninfo";
20960
20960
  function bucket(name) {
20961
20961
  let b = buckets.get(name);
@@ -21006,7 +21006,7 @@ function clearFailures(bucketName, ip) {
21006
21006
  }
21007
21007
  var MAX_ATTEMPTS, LOCKOUT_MS, buckets;
21008
21008
  var init_brute_force = __esm({
21009
- "../server/dist/middleware/brute-force.js"() {
21009
+ "packages/server/dist/middleware/brute-force.js"() {
21010
21010
  "use strict";
21011
21011
  init_config();
21012
21012
  MAX_ATTEMPTS = 5;
@@ -21015,7 +21015,7 @@ var init_brute_force = __esm({
21015
21015
  }
21016
21016
  });
21017
21017
 
21018
- // ../server/dist/middleware/web-token.js
21018
+ // packages/server/dist/middleware/web-token.js
21019
21019
  function resolveTokenAuth(c, db) {
21020
21020
  const ip = getClientIp(c);
21021
21021
  if (isLockedOut(TOKEN_BUCKET, ip))
@@ -21037,7 +21037,7 @@ function tokenAuthJsonError(c, reason) {
21037
21037
  }
21038
21038
  var TOKEN_BUCKET, TOKEN_AUTH_STATUS, JSON_ERROR;
21039
21039
  var init_web_token = __esm({
21040
- "../server/dist/middleware/web-token.js"() {
21040
+ "packages/server/dist/middleware/web-token.js"() {
21041
21041
  "use strict";
21042
21042
  init_accounts2();
21043
21043
  init_brute_force();
@@ -21055,17 +21055,17 @@ var init_web_token = __esm({
21055
21055
  }
21056
21056
  });
21057
21057
 
21058
- // ../server/dist/channels/shared/session-prefix.js
21058
+ // packages/server/dist/channels/shared/session-prefix.js
21059
21059
  function sessionPrefix(channel, userId) {
21060
21060
  return `${channel}_${userId}_`;
21061
21061
  }
21062
21062
  var init_session_prefix = __esm({
21063
- "../server/dist/channels/shared/session-prefix.js"() {
21063
+ "packages/server/dist/channels/shared/session-prefix.js"() {
21064
21064
  "use strict";
21065
21065
  }
21066
21066
  });
21067
21067
 
21068
- // ../server/dist/channels/web/handler.js
21068
+ // packages/server/dist/channels/web/handler.js
21069
21069
  function buildWebSessionPrefix(accountId) {
21070
21070
  return sessionPrefix("web", accountId);
21071
21071
  }
@@ -21482,7 +21482,7 @@ function createMediaBuffer() {
21482
21482
  };
21483
21483
  }
21484
21484
  var init_handler = __esm({
21485
- "../server/dist/channels/web/handler.js"() {
21485
+ "packages/server/dist/channels/web/handler.js"() {
21486
21486
  "use strict";
21487
21487
  init_ui_log_builder();
21488
21488
  init_accounts2();
@@ -21499,7 +21499,7 @@ var init_handler = __esm({
21499
21499
  }
21500
21500
  });
21501
21501
 
21502
- // ../core/dist/protocol/session-message.js
21502
+ // packages/core/dist/protocol/session-message.js
21503
21503
  function inferMessageType(msg) {
21504
21504
  if (msg.type)
21505
21505
  return msg.type;
@@ -21518,20 +21518,20 @@ function inferMessageType(msg) {
21518
21518
  return "notification";
21519
21519
  }
21520
21520
  var init_session_message = __esm({
21521
- "../core/dist/protocol/session-message.js"() {
21521
+ "packages/core/dist/protocol/session-message.js"() {
21522
21522
  "use strict";
21523
21523
  }
21524
21524
  });
21525
21525
 
21526
- // ../core/dist/protocol/index.js
21526
+ // packages/core/dist/protocol/index.js
21527
21527
  var init_protocol = __esm({
21528
- "../core/dist/protocol/index.js"() {
21528
+ "packages/core/dist/protocol/index.js"() {
21529
21529
  "use strict";
21530
21530
  init_session_message();
21531
21531
  }
21532
21532
  });
21533
21533
 
21534
- // ../server/dist/sessions/session-types.js
21534
+ // packages/server/dist/sessions/session-types.js
21535
21535
  function messageToolCalls(msg) {
21536
21536
  if (msg.contentBlocks) {
21537
21537
  return msg.contentBlocks.filter((b) => b.type === "tool_call").map((b) => b.toolCall);
@@ -21539,13 +21539,13 @@ function messageToolCalls(msg) {
21539
21539
  return msg.toolCalls ?? [];
21540
21540
  }
21541
21541
  var init_session_types = __esm({
21542
- "../server/dist/sessions/session-types.js"() {
21542
+ "packages/server/dist/sessions/session-types.js"() {
21543
21543
  "use strict";
21544
21544
  init_protocol();
21545
21545
  }
21546
21546
  });
21547
21547
 
21548
- // ../server/dist/routes/halo-city.js
21548
+ // packages/server/dist/routes/halo-city.js
21549
21549
  import { Hono as Hono10 } from "hono";
21550
21550
  import fs46 from "node:fs";
21551
21551
  import path54 from "node:path";
@@ -21932,7 +21932,7 @@ function createShowRoutes(registry2) {
21932
21932
  }
21933
21933
  var SESSIONS_PER_WS, _skillCache, _metaCache, _roReaders, SESSION_LOG_MAX_MSGS, _birthCache;
21934
21934
  var init_halo_city = __esm({
21935
- "../server/dist/routes/halo-city.js"() {
21935
+ "packages/server/dist/routes/halo-city.js"() {
21936
21936
  "use strict";
21937
21937
  init_channel_db();
21938
21938
  init_web_token();
@@ -21950,7 +21950,7 @@ var init_halo_city = __esm({
21950
21950
  }
21951
21951
  });
21952
21952
 
21953
- // ../server/dist/routes/metrics.js
21953
+ // packages/server/dist/routes/metrics.js
21954
21954
  import { Hono as Hono11 } from "hono";
21955
21955
  function family(name, type, help, samples) {
21956
21956
  const lines = [`# HELP ${name} ${help}`, `# TYPE ${name} ${type}`];
@@ -22029,7 +22029,7 @@ function createMetricsRoutes(registry2) {
22029
22029
  }
22030
22030
  var TEXT_ERROR, SESSIONS_PER_WS2;
22031
22031
  var init_metrics = __esm({
22032
- "../server/dist/routes/metrics.js"() {
22032
+ "packages/server/dist/routes/metrics.js"() {
22033
22033
  "use strict";
22034
22034
  init_channel_db();
22035
22035
  init_web_token();
@@ -22043,7 +22043,7 @@ var init_metrics = __esm({
22043
22043
  }
22044
22044
  });
22045
22045
 
22046
- // ../server/dist/routes/commands.js
22046
+ // packages/server/dist/routes/commands.js
22047
22047
  import { Hono as Hono12 } from "hono";
22048
22048
  function createCommandRoutes(registry2, smRegistry) {
22049
22049
  const app2 = new Hono12();
@@ -22068,12 +22068,12 @@ function createCommandRoutes(registry2, smRegistry) {
22068
22068
  return app2;
22069
22069
  }
22070
22070
  var init_commands3 = __esm({
22071
- "../server/dist/routes/commands.js"() {
22071
+ "packages/server/dist/routes/commands.js"() {
22072
22072
  "use strict";
22073
22073
  }
22074
22074
  });
22075
22075
 
22076
- // ../server/dist/routes/agentcore.js
22076
+ // packages/server/dist/routes/agentcore.js
22077
22077
  import { Hono as Hono13 } from "hono";
22078
22078
  import path55 from "node:path";
22079
22079
  import fs47 from "node:fs";
@@ -22422,7 +22422,7 @@ ${fullText}`, images.length > 0 ? images : void 0);
22422
22422
  }
22423
22423
  var SESSION_HEADER, MAX_IMAGES_PER_MESSAGE, MAX_IMAGE_BASE64_LENGTH, MAX_PENDING_UPLOADS, MAX_CHUNKS_PER_UPLOAD, activeOverrides;
22424
22424
  var init_agentcore = __esm({
22425
- "../server/dist/routes/agentcore.js"() {
22425
+ "packages/server/dist/routes/agentcore.js"() {
22426
22426
  "use strict";
22427
22427
  init_commands2();
22428
22428
  init_ui_log_builder();
@@ -22437,7 +22437,7 @@ var init_agentcore = __esm({
22437
22437
  }
22438
22438
  });
22439
22439
 
22440
- // ../server/dist/ws/file-watcher.js
22440
+ // packages/server/dist/ws/file-watcher.js
22441
22441
  import fs48 from "node:fs";
22442
22442
  import path56 from "node:path";
22443
22443
  function enqueueNativeOp(op) {
@@ -22459,7 +22459,7 @@ function isUnwatchablePath(absPath) {
22459
22459
  }
22460
22460
  var IGNORED_SEGMENTS, IS_WIN32, IGNORED_SEGMENT_SET, NATIVE_IGNORE, nativeOpChain, WorkspaceWatcher;
22461
22461
  var init_file_watcher = __esm({
22462
- "../server/dist/ws/file-watcher.js"() {
22462
+ "packages/server/dist/ws/file-watcher.js"() {
22463
22463
  "use strict";
22464
22464
  IGNORED_SEGMENTS = [
22465
22465
  // VCS
@@ -22681,12 +22681,12 @@ var init_file_watcher = __esm({
22681
22681
  }
22682
22682
  });
22683
22683
 
22684
- // ../server/dist/ws/git-dir-watcher.js
22684
+ // packages/server/dist/ws/git-dir-watcher.js
22685
22685
  import fs49 from "node:fs";
22686
22686
  import path57 from "node:path";
22687
22687
  var GitDirWatcher;
22688
22688
  var init_git_dir_watcher = __esm({
22689
- "../server/dist/ws/git-dir-watcher.js"() {
22689
+ "packages/server/dist/ws/git-dir-watcher.js"() {
22690
22690
  "use strict";
22691
22691
  GitDirWatcher = class {
22692
22692
  watcher = null;
@@ -22805,7 +22805,7 @@ var init_git_dir_watcher = __esm({
22805
22805
  }
22806
22806
  });
22807
22807
 
22808
- // ../server/dist/ws/event-processor.js
22808
+ // packages/server/dist/ws/event-processor.js
22809
22809
  function sendJson(ws, data) {
22810
22810
  if (ws.readyState === ws.OPEN) {
22811
22811
  try {
@@ -22904,16 +22904,16 @@ function bufferDetachedNotification(event, pendingEvents) {
22904
22904
  }
22905
22905
  }
22906
22906
  var init_event_processor = __esm({
22907
- "../server/dist/ws/event-processor.js"() {
22907
+ "packages/server/dist/ws/event-processor.js"() {
22908
22908
  "use strict";
22909
22909
  init_ui_log_builder();
22910
22910
  }
22911
22911
  });
22912
22912
 
22913
- // ../server/dist/ws/watcher-pool.js
22913
+ // packages/server/dist/ws/watcher-pool.js
22914
22914
  var WatcherPool;
22915
22915
  var init_watcher_pool = __esm({
22916
- "../server/dist/ws/watcher-pool.js"() {
22916
+ "packages/server/dist/ws/watcher-pool.js"() {
22917
22917
  "use strict";
22918
22918
  init_file_watcher();
22919
22919
  init_git_dir_watcher();
@@ -22971,7 +22971,7 @@ var init_watcher_pool = __esm({
22971
22971
  }
22972
22972
  });
22973
22973
 
22974
- // ../server/dist/ws/terminal-manager.js
22974
+ // packages/server/dist/ws/terminal-manager.js
22975
22975
  import { homedir as homedir22 } from "node:os";
22976
22976
  import { basename } from "node:path";
22977
22977
  import { createRequire } from "node:module";
@@ -23002,7 +23002,7 @@ function attachListenersOnce(t2) {
23002
23002
  }
23003
23003
  var requireFromHere, ptyModule, TERMINAL_GRACE_MS, terminals, TerminalManager;
23004
23004
  var init_terminal_manager = __esm({
23005
- "../server/dist/ws/terminal-manager.js"() {
23005
+ "packages/server/dist/ws/terminal-manager.js"() {
23006
23006
  "use strict";
23007
23007
  init_config();
23008
23008
  init_child_env();
@@ -23150,7 +23150,7 @@ var init_terminal_manager = __esm({
23150
23150
  }
23151
23151
  });
23152
23152
 
23153
- // ../server/dist/ws/handler.js
23153
+ // packages/server/dist/ws/handler.js
23154
23154
  import path58 from "node:path";
23155
23155
  function setupWebSocketHandler(deps) {
23156
23156
  const { wss: wss2, registry: registry2 } = deps;
@@ -23766,7 +23766,7 @@ ${msg.message}` : markers.join("\n");
23766
23766
  }
23767
23767
  var CLIENT_SILENCE_LIMIT_MS, detachedSessions;
23768
23768
  var init_handler2 = __esm({
23769
- "../server/dist/ws/handler.js"() {
23769
+ "packages/server/dist/ws/handler.js"() {
23770
23770
  "use strict";
23771
23771
  init_ui_log_builder();
23772
23772
  init_config();
@@ -23784,7 +23784,7 @@ var init_handler2 = __esm({
23784
23784
  }
23785
23785
  });
23786
23786
 
23787
- // ../server/dist/db/cron-db.js
23787
+ // packages/server/dist/db/cron-db.js
23788
23788
  import Database7 from "better-sqlite3";
23789
23789
  import { drizzle as drizzle5 } from "drizzle-orm/better-sqlite3";
23790
23790
  import { sqliteTable as sqliteTable5, text as text5, integer as integer5 } from "drizzle-orm/sqlite-core";
@@ -23809,7 +23809,7 @@ function getCronDb() {
23809
23809
  }
23810
23810
  var cronJobs, cronRuns, CREATE_SQL4, CRON_MIGRATIONS, _cronDb;
23811
23811
  var init_cron_db = __esm({
23812
- "../server/dist/db/cron-db.js"() {
23812
+ "packages/server/dist/db/cron-db.js"() {
23813
23813
  "use strict";
23814
23814
  init_migrate();
23815
23815
  cronJobs = sqliteTable5("cron_jobs", {
@@ -23929,7 +23929,7 @@ CREATE INDEX IF NOT EXISTS idx_cron_runs_status ON cron_runs(status);
23929
23929
  }
23930
23930
  });
23931
23931
 
23932
- // ../server/dist/cron/dispatcher.js
23932
+ // packages/server/dist/cron/dispatcher.js
23933
23933
  function registerCronDispatcher(d) {
23934
23934
  _registry2.set(d.channelType, d);
23935
23935
  }
@@ -23976,14 +23976,14 @@ async function dispatchToTargets(rawText, targets, workspacePath) {
23976
23976
  }
23977
23977
  var _registry2;
23978
23978
  var init_dispatcher = __esm({
23979
- "../server/dist/cron/dispatcher.js"() {
23979
+ "packages/server/dist/cron/dispatcher.js"() {
23980
23980
  "use strict";
23981
23981
  init_media();
23982
23982
  _registry2 = /* @__PURE__ */ new Map();
23983
23983
  }
23984
23984
  });
23985
23985
 
23986
- // ../server/dist/cron/runner.js
23986
+ // packages/server/dist/cron/runner.js
23987
23987
  import { spawn as spawn3, execFileSync } from "node:child_process";
23988
23988
  import fs51 from "node:fs";
23989
23989
  import path60 from "node:path";
@@ -24510,7 +24510,7 @@ function pruneOldLogs() {
24510
24510
  }
24511
24511
  var DAY_MS2, CLI_TIMEOUT_SEC, KILL_GRACE_SEC, UNATTENDED_PREAMBLE, RUNS_PER_JOB_KEEP, LOG_RETENTION_DAYS, _active, _inflight, _fingerprint, _daemonTimers, _lastCronDataVersion;
24512
24512
  var init_runner = __esm({
24513
- "../server/dist/cron/runner.js"() {
24513
+ "packages/server/dist/cron/runner.js"() {
24514
24514
  "use strict";
24515
24515
  init_cron_db();
24516
24516
  init_raw_sqlite();
@@ -24531,7 +24531,7 @@ var init_runner = __esm({
24531
24531
  }
24532
24532
  });
24533
24533
 
24534
- // ../server/dist/routes/cron.js
24534
+ // packages/server/dist/routes/cron.js
24535
24535
  import { Hono as Hono14 } from "hono";
24536
24536
  import { eq as eq15, desc as desc3, lt as lt6, and as and11 } from "drizzle-orm";
24537
24537
  import fs52 from "node:fs/promises";
@@ -24803,7 +24803,7 @@ function computeNextRun(j) {
24803
24803
  }
24804
24804
  var TIMEOUT_SEC_MIN, TIMEOUT_SEC_MAX;
24805
24805
  var init_cron = __esm({
24806
- "../server/dist/routes/cron.js"() {
24806
+ "packages/server/dist/routes/cron.js"() {
24807
24807
  "use strict";
24808
24808
  init_cron_db();
24809
24809
  init_runner();
@@ -24814,7 +24814,7 @@ var init_cron = __esm({
24814
24814
  }
24815
24815
  });
24816
24816
 
24817
- // ../server/dist/evolution/ticker.js
24817
+ // packages/server/dist/evolution/ticker.js
24818
24818
  import { eq as eq16, and as and12, or as or2, asc, isNull as isNull6, sql as sql2 } from "drizzle-orm";
24819
24819
  function setEvoSpawner(fn) {
24820
24820
  _spawner = fn;
@@ -25040,7 +25040,7 @@ function claimApply(id) {
25040
25040
  }
25041
25041
  var _lastRunStatus, _lastApplyStatus, _spawner, TICK_INTERVAL_MS, _interval, _startupTimer2;
25042
25042
  var init_ticker = __esm({
25043
- "../server/dist/evolution/ticker.js"() {
25043
+ "packages/server/dist/evolution/ticker.js"() {
25044
25044
  "use strict";
25045
25045
  init_config();
25046
25046
  init_evo_db();
@@ -25056,13 +25056,13 @@ var init_ticker = __esm({
25056
25056
  }
25057
25057
  });
25058
25058
 
25059
- // ../server/dist/evolution/spawn.js
25059
+ // packages/server/dist/evolution/spawn.js
25060
25060
  import path61 from "node:path";
25061
25061
  import { spawn as spawn4 } from "node:child_process";
25062
25062
  import { fileURLToPath as fileURLToPath2 } from "node:url";
25063
25063
  var __dirname2, WRAPPER_PATH, realEvoSpawner;
25064
25064
  var init_spawn = __esm({
25065
- "../server/dist/evolution/spawn.js"() {
25065
+ "packages/server/dist/evolution/spawn.js"() {
25066
25066
  "use strict";
25067
25067
  init_child_env();
25068
25068
  __dirname2 = path61.dirname(fileURLToPath2(import.meta.url));
@@ -25084,7 +25084,7 @@ var init_spawn = __esm({
25084
25084
  }
25085
25085
  });
25086
25086
 
25087
- // ../server/dist/channels/registry.js
25087
+ // packages/server/dist/channels/registry.js
25088
25088
  function bootChannels(app2, descriptors, deps) {
25089
25089
  for (const d of descriptors) {
25090
25090
  if (d.registerCronDispatcher)
@@ -25109,13 +25109,13 @@ async function shutdownChannels() {
25109
25109
  }
25110
25110
  var _running;
25111
25111
  var init_registry2 = __esm({
25112
- "../server/dist/channels/registry.js"() {
25112
+ "packages/server/dist/channels/registry.js"() {
25113
25113
  "use strict";
25114
25114
  _running = [];
25115
25115
  }
25116
25116
  });
25117
25117
 
25118
- // ../server/dist/channels/telegram/accounts.js
25118
+ // packages/server/dist/channels/telegram/accounts.js
25119
25119
  function toTelegram(a) {
25120
25120
  const c = a.config;
25121
25121
  return {
@@ -25189,14 +25189,14 @@ function deleteAccount3(db, accountId) {
25189
25189
  }
25190
25190
  var CH2;
25191
25191
  var init_accounts3 = __esm({
25192
- "../server/dist/channels/telegram/accounts.js"() {
25192
+ "packages/server/dist/channels/telegram/accounts.js"() {
25193
25193
  "use strict";
25194
25194
  init_accounts();
25195
25195
  CH2 = "telegram";
25196
25196
  }
25197
25197
  });
25198
25198
 
25199
- // ../server/dist/channels/shared/chunk.js
25199
+ // packages/server/dist/channels/shared/chunk.js
25200
25200
  function splitText(text6, limit) {
25201
25201
  const out = [];
25202
25202
  let rest = text6;
@@ -25212,15 +25212,15 @@ function splitText(text6, limit) {
25212
25212
  return out;
25213
25213
  }
25214
25214
  var init_chunk = __esm({
25215
- "../server/dist/channels/shared/chunk.js"() {
25215
+ "packages/server/dist/channels/shared/chunk.js"() {
25216
25216
  "use strict";
25217
25217
  }
25218
25218
  });
25219
25219
 
25220
- // ../server/dist/channels/telegram/event-adapter.js
25220
+ // packages/server/dist/channels/telegram/event-adapter.js
25221
25221
  var HARD_CHARS, TelegramResponder;
25222
25222
  var init_event_adapter = __esm({
25223
- "../server/dist/channels/telegram/event-adapter.js"() {
25223
+ "packages/server/dist/channels/telegram/event-adapter.js"() {
25224
25224
  "use strict";
25225
25225
  init_chunk();
25226
25226
  init_media();
@@ -25303,7 +25303,7 @@ var init_event_adapter = __esm({
25303
25303
  }
25304
25304
  });
25305
25305
 
25306
- // ../server/dist/channels/shared/busy-hint.js
25306
+ // packages/server/dist/channels/shared/busy-hint.js
25307
25307
  function busyHint(sm, sessionId, lang) {
25308
25308
  if (sm.isSessionCompacting(sessionId))
25309
25309
  return t("handler.compacting", lang);
@@ -25312,13 +25312,13 @@ function busyHint(sm, sessionId, lang) {
25312
25312
  return null;
25313
25313
  }
25314
25314
  var init_busy_hint = __esm({
25315
- "../server/dist/channels/shared/busy-hint.js"() {
25315
+ "packages/server/dist/channels/shared/busy-hint.js"() {
25316
25316
  "use strict";
25317
25317
  init_i18n();
25318
25318
  }
25319
25319
  });
25320
25320
 
25321
- // ../server/dist/channels/shared/inbound.js
25321
+ // packages/server/dist/channels/shared/inbound.js
25322
25322
  function sessionAccess(accountAccessLevel) {
25323
25323
  return accountAccessLevel === "full" ? null : accountAccessLevel === "workspace" ? "workspace" : "readonly";
25324
25324
  }
@@ -25376,7 +25376,7 @@ async function dispatchChannelCommand(ctx, command, arg, opts) {
25376
25376
  }
25377
25377
  var InboundBridge;
25378
25378
  var init_inbound = __esm({
25379
- "../server/dist/channels/shared/inbound.js"() {
25379
+ "packages/server/dist/channels/shared/inbound.js"() {
25380
25380
  "use strict";
25381
25381
  init_goal_mode();
25382
25382
  init_accounts();
@@ -25446,7 +25446,7 @@ var init_inbound = __esm({
25446
25446
  }
25447
25447
  });
25448
25448
 
25449
- // ../server/dist/channels/telegram/handler.js
25449
+ // packages/server/dist/channels/telegram/handler.js
25450
25450
  import { Bot, InputFile } from "grammy";
25451
25451
  function inferMediaKind(filePath) {
25452
25452
  const cls = classifyMedia(filePath);
@@ -25833,7 +25833,7 @@ async function handleUserMessage(args) {
25833
25833
  }
25834
25834
  var MAX_TG_DOWNLOAD_BYTES;
25835
25835
  var init_handler3 = __esm({
25836
- "../server/dist/channels/telegram/handler.js"() {
25836
+ "packages/server/dist/channels/telegram/handler.js"() {
25837
25837
  "use strict";
25838
25838
  init_accounts3();
25839
25839
  init_event_adapter();
@@ -25848,7 +25848,7 @@ var init_handler3 = __esm({
25848
25848
  }
25849
25849
  });
25850
25850
 
25851
- // ../server/dist/routes/telegram.js
25851
+ // packages/server/dist/routes/telegram.js
25852
25852
  import { Hono as Hono15 } from "hono";
25853
25853
  import { Bot as Bot2 } from "grammy";
25854
25854
  import fs53 from "node:fs";
@@ -25967,14 +25967,14 @@ function createTelegramRoutes(deps) {
25967
25967
  return app2;
25968
25968
  }
25969
25969
  var init_telegram = __esm({
25970
- "../server/dist/routes/telegram.js"() {
25970
+ "packages/server/dist/routes/telegram.js"() {
25971
25971
  "use strict";
25972
25972
  init_accounts3();
25973
25973
  init_accounts();
25974
25974
  }
25975
25975
  });
25976
25976
 
25977
- // ../server/dist/channels/telegram/cron-dispatcher.js
25977
+ // packages/server/dist/channels/telegram/cron-dispatcher.js
25978
25978
  import { Bot as Bot3 } from "grammy";
25979
25979
  async function dispatch(accountId, text6, explicitChatId) {
25980
25980
  const acct = getAccount3(getChannelDb(), accountId);
@@ -26023,7 +26023,7 @@ function registerTelegramCronDispatcher() {
26023
26023
  registerCronDispatcher({ channelType: "telegram", dispatch, listTargets });
26024
26024
  }
26025
26025
  var init_cron_dispatcher = __esm({
26026
- "../server/dist/channels/telegram/cron-dispatcher.js"() {
26026
+ "packages/server/dist/channels/telegram/cron-dispatcher.js"() {
26027
26027
  "use strict";
26028
26028
  init_channel_db();
26029
26029
  init_accounts3();
@@ -26031,10 +26031,10 @@ var init_cron_dispatcher = __esm({
26031
26031
  }
26032
26032
  });
26033
26033
 
26034
- // ../server/dist/channels/telegram/descriptor.js
26034
+ // packages/server/dist/channels/telegram/descriptor.js
26035
26035
  var telegramDescriptor;
26036
26036
  var init_descriptor = __esm({
26037
- "../server/dist/channels/telegram/descriptor.js"() {
26037
+ "packages/server/dist/channels/telegram/descriptor.js"() {
26038
26038
  "use strict";
26039
26039
  init_handler3();
26040
26040
  init_telegram();
@@ -26049,7 +26049,7 @@ var init_descriptor = __esm({
26049
26049
  }
26050
26050
  });
26051
26051
 
26052
- // ../server/dist/channels/wechat/api.js
26052
+ // packages/server/dist/channels/wechat/api.js
26053
26053
  import crypto3 from "node:crypto";
26054
26054
  function buildClientVersion(version) {
26055
26055
  const [ma, mi, pa] = version.split(".").map((p) => parseInt(p, 10));
@@ -26238,7 +26238,7 @@ async function notifyStop(params) {
26238
26238
  }
26239
26239
  var QR_BASE_URL, DEFAULT_BOT_TYPE, CHANNEL_VERSION, ILINK_APP_ID, ILINK_APP_CLIENT_VERSION, DEFAULT_LONG_POLL_TIMEOUT_MS, DEFAULT_API_TIMEOUT_MS;
26240
26240
  var init_api = __esm({
26241
- "../server/dist/channels/wechat/api.js"() {
26241
+ "packages/server/dist/channels/wechat/api.js"() {
26242
26242
  "use strict";
26243
26243
  QR_BASE_URL = "https://ilinkai.weixin.qq.com";
26244
26244
  DEFAULT_BOT_TYPE = "3";
@@ -26250,10 +26250,10 @@ var init_api = __esm({
26250
26250
  }
26251
26251
  });
26252
26252
 
26253
- // ../server/dist/channels/wechat/types.js
26253
+ // packages/server/dist/channels/wechat/types.js
26254
26254
  var MessageItemType, MessageType, MessageState, UploadMediaType;
26255
26255
  var init_types = __esm({
26256
- "../server/dist/channels/wechat/types.js"() {
26256
+ "packages/server/dist/channels/wechat/types.js"() {
26257
26257
  "use strict";
26258
26258
  MessageItemType = {
26259
26259
  NONE: 0,
@@ -26282,7 +26282,7 @@ var init_types = __esm({
26282
26282
  }
26283
26283
  });
26284
26284
 
26285
- // ../server/dist/channels/wechat/accounts.js
26285
+ // packages/server/dist/channels/wechat/accounts.js
26286
26286
  function toWechat(a) {
26287
26287
  const c = a.config;
26288
26288
  return {
@@ -26364,17 +26364,17 @@ function saveSyncBuf(db, accountId, syncBuf) {
26364
26364
  }
26365
26365
  var CH3;
26366
26366
  var init_accounts4 = __esm({
26367
- "../server/dist/channels/wechat/accounts.js"() {
26367
+ "packages/server/dist/channels/wechat/accounts.js"() {
26368
26368
  "use strict";
26369
26369
  init_accounts();
26370
26370
  CH3 = "wechat";
26371
26371
  }
26372
26372
  });
26373
26373
 
26374
- // ../server/dist/channels/wechat/event-adapter.js
26374
+ // packages/server/dist/channels/wechat/event-adapter.js
26375
26375
  var WECHAT_TEXT_LIMIT, WechatResponder;
26376
26376
  var init_event_adapter2 = __esm({
26377
- "../server/dist/channels/wechat/event-adapter.js"() {
26377
+ "packages/server/dist/channels/wechat/event-adapter.js"() {
26378
26378
  "use strict";
26379
26379
  init_chunk();
26380
26380
  init_media();
@@ -26478,7 +26478,7 @@ var init_event_adapter2 = __esm({
26478
26478
  }
26479
26479
  });
26480
26480
 
26481
- // ../server/dist/channels/wechat/cdn.js
26481
+ // packages/server/dist/channels/wechat/cdn.js
26482
26482
  import { createDecipheriv, createCipheriv, randomBytes as randomBytes2, createHash as createHash2 } from "node:crypto";
26483
26483
  function decryptAesEcb(ciphertext, key) {
26484
26484
  const decipher = createDecipheriv("aes-128-ecb", key, null);
@@ -26577,14 +26577,14 @@ async function uploadCiphertext(params) {
26577
26577
  }
26578
26578
  var CDN_BASE_URL, UPLOAD_MAX_RETRIES;
26579
26579
  var init_cdn = __esm({
26580
- "../server/dist/channels/wechat/cdn.js"() {
26580
+ "packages/server/dist/channels/wechat/cdn.js"() {
26581
26581
  "use strict";
26582
26582
  CDN_BASE_URL = "https://novac2c.cdn.weixin.qq.com/c2c";
26583
26583
  UPLOAD_MAX_RETRIES = 3;
26584
26584
  }
26585
26585
  });
26586
26586
 
26587
- // ../server/dist/channels/wechat/send-media.js
26587
+ // packages/server/dist/channels/wechat/send-media.js
26588
26588
  import fs54 from "node:fs/promises";
26589
26589
  import path62 from "node:path";
26590
26590
  function inferKind(filePath) {
@@ -26678,7 +26678,7 @@ function buildMessageItem(args) {
26678
26678
  };
26679
26679
  }
26680
26680
  var init_send_media = __esm({
26681
- "../server/dist/channels/wechat/send-media.js"() {
26681
+ "packages/server/dist/channels/wechat/send-media.js"() {
26682
26682
  "use strict";
26683
26683
  init_api();
26684
26684
  init_cdn();
@@ -26687,7 +26687,7 @@ var init_send_media = __esm({
26687
26687
  }
26688
26688
  });
26689
26689
 
26690
- // ../server/dist/channels/wechat/login.js
26690
+ // packages/server/dist/channels/wechat/login.js
26691
26691
  import { randomUUID as randomUUID2 } from "node:crypto";
26692
26692
  function isFresh(l) {
26693
26693
  return Date.now() - l.startedAt < ACTIVE_TTL_MS;
@@ -26789,7 +26789,7 @@ async function waitLogin(params) {
26789
26789
  }
26790
26790
  var ACTIVE_TTL_MS, MAX_QR_REFRESH, activeLogins;
26791
26791
  var init_login = __esm({
26792
- "../server/dist/channels/wechat/login.js"() {
26792
+ "packages/server/dist/channels/wechat/login.js"() {
26793
26793
  "use strict";
26794
26794
  init_api();
26795
26795
  ACTIVE_TTL_MS = 5 * 6e4;
@@ -26798,7 +26798,7 @@ var init_login = __esm({
26798
26798
  }
26799
26799
  });
26800
26800
 
26801
- // ../server/dist/channels/wechat/handler.js
26801
+ // packages/server/dist/channels/wechat/handler.js
26802
26802
  import fs55 from "node:fs";
26803
26803
  import path63 from "node:path";
26804
26804
  import QRCode from "qrcode";
@@ -27256,7 +27256,7 @@ function sleep2(ms, signal) {
27256
27256
  }
27257
27257
  var MAX_CONSECUTIVE_FAILURES, BACKOFF_DELAY_MS, RETRY_DELAY_MS;
27258
27258
  var init_handler4 = __esm({
27259
- "../server/dist/channels/wechat/handler.js"() {
27259
+ "packages/server/dist/channels/wechat/handler.js"() {
27260
27260
  "use strict";
27261
27261
  init_api();
27262
27262
  init_types();
@@ -27278,7 +27278,7 @@ var init_handler4 = __esm({
27278
27278
  }
27279
27279
  });
27280
27280
 
27281
- // ../server/dist/routes/wechat.js
27281
+ // packages/server/dist/routes/wechat.js
27282
27282
  import { Hono as Hono16 } from "hono";
27283
27283
  import path64 from "node:path";
27284
27284
  import fs56 from "node:fs";
@@ -27393,7 +27393,7 @@ function stripSecrets(acc) {
27393
27393
  return rest;
27394
27394
  }
27395
27395
  var init_wechat = __esm({
27396
- "../server/dist/routes/wechat.js"() {
27396
+ "packages/server/dist/routes/wechat.js"() {
27397
27397
  "use strict";
27398
27398
  init_login();
27399
27399
  init_accounts4();
@@ -27401,7 +27401,7 @@ var init_wechat = __esm({
27401
27401
  }
27402
27402
  });
27403
27403
 
27404
- // ../server/dist/channels/wechat/cron-dispatcher.js
27404
+ // packages/server/dist/channels/wechat/cron-dispatcher.js
27405
27405
  function readLastActiveChatId(accountId) {
27406
27406
  const acct = getAccount(getChannelDb(), accountId);
27407
27407
  if (!acct)
@@ -27482,7 +27482,7 @@ function registerWechatCronDispatcher() {
27482
27482
  registerCronDispatcher({ channelType: "wechat", supportsMedia: true, dispatch: dispatch2, listTargets: listTargets2 });
27483
27483
  }
27484
27484
  var init_cron_dispatcher2 = __esm({
27485
- "../server/dist/channels/wechat/cron-dispatcher.js"() {
27485
+ "packages/server/dist/channels/wechat/cron-dispatcher.js"() {
27486
27486
  "use strict";
27487
27487
  init_channel_db();
27488
27488
  init_accounts();
@@ -27496,10 +27496,10 @@ var init_cron_dispatcher2 = __esm({
27496
27496
  }
27497
27497
  });
27498
27498
 
27499
- // ../server/dist/channels/wechat/descriptor.js
27499
+ // packages/server/dist/channels/wechat/descriptor.js
27500
27500
  var wechatDescriptor;
27501
27501
  var init_descriptor2 = __esm({
27502
- "../server/dist/channels/wechat/descriptor.js"() {
27502
+ "packages/server/dist/channels/wechat/descriptor.js"() {
27503
27503
  "use strict";
27504
27504
  init_handler4();
27505
27505
  init_wechat();
@@ -27514,7 +27514,7 @@ var init_descriptor2 = __esm({
27514
27514
  }
27515
27515
  });
27516
27516
 
27517
- // ../server/dist/routes/web.js
27517
+ // packages/server/dist/routes/web.js
27518
27518
  import { Hono as Hono17 } from "hono";
27519
27519
  import { streamSSE } from "hono/streaming";
27520
27520
  import crypto4 from "node:crypto";
@@ -27751,7 +27751,7 @@ function createWebRoutes(deps) {
27751
27751
  return app2;
27752
27752
  }
27753
27753
  var init_web = __esm({
27754
- "../server/dist/routes/web.js"() {
27754
+ "packages/server/dist/routes/web.js"() {
27755
27755
  "use strict";
27756
27756
  init_dist();
27757
27757
  init_handler();
@@ -27763,10 +27763,10 @@ var init_web = __esm({
27763
27763
  }
27764
27764
  });
27765
27765
 
27766
- // ../server/dist/channels/web/descriptor.js
27766
+ // packages/server/dist/channels/web/descriptor.js
27767
27767
  var webDescriptor;
27768
27768
  var init_descriptor3 = __esm({
27769
- "../server/dist/channels/web/descriptor.js"() {
27769
+ "packages/server/dist/channels/web/descriptor.js"() {
27770
27770
  "use strict";
27771
27771
  init_handler();
27772
27772
  init_web();
@@ -27782,7 +27782,7 @@ var init_descriptor3 = __esm({
27782
27782
  }
27783
27783
  });
27784
27784
 
27785
- // ../server/dist/channels/slack/accounts.js
27785
+ // packages/server/dist/channels/slack/accounts.js
27786
27786
  function toSlack(a) {
27787
27787
  const c = a.config;
27788
27788
  return {
@@ -27858,14 +27858,14 @@ function deleteAccount5(db, accountId) {
27858
27858
  }
27859
27859
  var CH4;
27860
27860
  var init_accounts5 = __esm({
27861
- "../server/dist/channels/slack/accounts.js"() {
27861
+ "packages/server/dist/channels/slack/accounts.js"() {
27862
27862
  "use strict";
27863
27863
  init_accounts();
27864
27864
  CH4 = "slack";
27865
27865
  }
27866
27866
  });
27867
27867
 
27868
- // ../server/dist/channels/shared/markdown.js
27868
+ // packages/server/dist/channels/shared/markdown.js
27869
27869
  function formatForSlack(input) {
27870
27870
  if (!input)
27871
27871
  return "";
@@ -27944,15 +27944,15 @@ function stripCommonMark(line) {
27944
27944
  return line;
27945
27945
  }
27946
27946
  var init_markdown = __esm({
27947
- "../server/dist/channels/shared/markdown.js"() {
27947
+ "packages/server/dist/channels/shared/markdown.js"() {
27948
27948
  "use strict";
27949
27949
  }
27950
27950
  });
27951
27951
 
27952
- // ../server/dist/channels/slack/event-adapter.js
27952
+ // packages/server/dist/channels/slack/event-adapter.js
27953
27953
  var HARD_CHARS2, SlackResponder;
27954
27954
  var init_event_adapter3 = __esm({
27955
- "../server/dist/channels/slack/event-adapter.js"() {
27955
+ "packages/server/dist/channels/slack/event-adapter.js"() {
27956
27956
  "use strict";
27957
27957
  init_chunk();
27958
27958
  init_markdown();
@@ -28045,7 +28045,7 @@ var init_event_adapter3 = __esm({
28045
28045
  }
28046
28046
  });
28047
28047
 
28048
- // ../server/dist/channels/slack/api.js
28048
+ // packages/server/dist/channels/slack/api.js
28049
28049
  async function slackPost(endpoint, token, body) {
28050
28050
  const isForm = body instanceof FormData;
28051
28051
  const res = await fetch(`${SLACK_API}/${endpoint}`, {
@@ -28233,13 +28233,13 @@ async function downloadFile(botToken, urlPrivate) {
28233
28233
  }
28234
28234
  var SLACK_API;
28235
28235
  var init_api2 = __esm({
28236
- "../server/dist/channels/slack/api.js"() {
28236
+ "packages/server/dist/channels/slack/api.js"() {
28237
28237
  "use strict";
28238
28238
  SLACK_API = "https://slack.com/api";
28239
28239
  }
28240
28240
  });
28241
28241
 
28242
- // ../server/dist/channels/slack/handler.js
28242
+ // packages/server/dist/channels/slack/handler.js
28243
28243
  import path65 from "node:path";
28244
28244
  import { WebSocket } from "ws";
28245
28245
  function slashToBang(text6, commandNames) {
@@ -28602,7 +28602,7 @@ function buildCmdCtx(args) {
28602
28602
  }
28603
28603
  var SLACK_EXTRA_COMMANDS, SEEN_EVENT_IDS, SEEN_EVENT_IDS_MAX;
28604
28604
  var init_handler5 = __esm({
28605
- "../server/dist/channels/slack/handler.js"() {
28605
+ "packages/server/dist/channels/slack/handler.js"() {
28606
28606
  "use strict";
28607
28607
  init_accounts5();
28608
28608
  init_event_adapter3();
@@ -28622,7 +28622,7 @@ var init_handler5 = __esm({
28622
28622
  }
28623
28623
  });
28624
28624
 
28625
- // ../server/dist/routes/slack.js
28625
+ // packages/server/dist/routes/slack.js
28626
28626
  import { Hono as Hono18 } from "hono";
28627
28627
  import fs58 from "node:fs";
28628
28628
  function createSlackRoutes(deps) {
@@ -28756,7 +28756,7 @@ function createSlackRoutes(deps) {
28756
28756
  return app2;
28757
28757
  }
28758
28758
  var init_slack = __esm({
28759
- "../server/dist/routes/slack.js"() {
28759
+ "packages/server/dist/routes/slack.js"() {
28760
28760
  "use strict";
28761
28761
  init_accounts5();
28762
28762
  init_accounts();
@@ -28764,7 +28764,7 @@ var init_slack = __esm({
28764
28764
  }
28765
28765
  });
28766
28766
 
28767
- // ../server/dist/channels/slack/cron-dispatcher.js
28767
+ // packages/server/dist/channels/slack/cron-dispatcher.js
28768
28768
  function parseChatId(raw) {
28769
28769
  const idx = raw.indexOf(":");
28770
28770
  if (idx < 0)
@@ -28828,7 +28828,7 @@ function registerSlackCronDispatcher() {
28828
28828
  registerCronDispatcher({ channelType: "slack", supportsMedia: true, dispatch: dispatch3, listTargets: listTargets3 });
28829
28829
  }
28830
28830
  var init_cron_dispatcher3 = __esm({
28831
- "../server/dist/channels/slack/cron-dispatcher.js"() {
28831
+ "packages/server/dist/channels/slack/cron-dispatcher.js"() {
28832
28832
  "use strict";
28833
28833
  init_channel_db();
28834
28834
  init_accounts5();
@@ -28838,10 +28838,10 @@ var init_cron_dispatcher3 = __esm({
28838
28838
  }
28839
28839
  });
28840
28840
 
28841
- // ../server/dist/channels/slack/descriptor.js
28841
+ // packages/server/dist/channels/slack/descriptor.js
28842
28842
  var slackDescriptor;
28843
28843
  var init_descriptor4 = __esm({
28844
- "../server/dist/channels/slack/descriptor.js"() {
28844
+ "packages/server/dist/channels/slack/descriptor.js"() {
28845
28845
  "use strict";
28846
28846
  init_handler5();
28847
28847
  init_slack();
@@ -28856,7 +28856,7 @@ var init_descriptor4 = __esm({
28856
28856
  }
28857
28857
  });
28858
28858
 
28859
- // ../server/dist/channels/feishu/accounts.js
28859
+ // packages/server/dist/channels/feishu/accounts.js
28860
28860
  function toFeishu(a) {
28861
28861
  const c = a.config;
28862
28862
  return {
@@ -28934,17 +28934,17 @@ function deleteAccount6(db, accountId) {
28934
28934
  }
28935
28935
  var CH5;
28936
28936
  var init_accounts6 = __esm({
28937
- "../server/dist/channels/feishu/accounts.js"() {
28937
+ "packages/server/dist/channels/feishu/accounts.js"() {
28938
28938
  "use strict";
28939
28939
  init_accounts();
28940
28940
  CH5 = "feishu";
28941
28941
  }
28942
28942
  });
28943
28943
 
28944
- // ../server/dist/channels/feishu/event-adapter.js
28944
+ // packages/server/dist/channels/feishu/event-adapter.js
28945
28945
  var HARD_CHARS3, FeishuResponder;
28946
28946
  var init_event_adapter4 = __esm({
28947
- "../server/dist/channels/feishu/event-adapter.js"() {
28947
+ "packages/server/dist/channels/feishu/event-adapter.js"() {
28948
28948
  "use strict";
28949
28949
  init_chunk();
28950
28950
  init_markdown();
@@ -29037,7 +29037,7 @@ var init_event_adapter4 = __esm({
29037
29037
  }
29038
29038
  });
29039
29039
 
29040
- // ../server/dist/channels/feishu/api.js
29040
+ // packages/server/dist/channels/feishu/api.js
29041
29041
  async function getTenantAccessToken(args) {
29042
29042
  const cached = tokenCache.get(args.appId);
29043
29043
  if (cached && cached.expiresAt - Date.now() > 6e4)
@@ -29301,14 +29301,14 @@ async function searchFeishuTargets(args) {
29301
29301
  }
29302
29302
  var FEISHU_BASE, tokenCache;
29303
29303
  var init_api3 = __esm({
29304
- "../server/dist/channels/feishu/api.js"() {
29304
+ "packages/server/dist/channels/feishu/api.js"() {
29305
29305
  "use strict";
29306
29306
  FEISHU_BASE = "https://open.feishu.cn";
29307
29307
  tokenCache = /* @__PURE__ */ new Map();
29308
29308
  }
29309
29309
  });
29310
29310
 
29311
- // ../server/dist/channels/feishu/handler.js
29311
+ // packages/server/dist/channels/feishu/handler.js
29312
29312
  import path66 from "node:path";
29313
29313
  import * as Lark from "@larksuiteoapi/node-sdk";
29314
29314
  function buildSessionPrefixForThread2(chatId, rootId) {
@@ -29781,7 +29781,7 @@ function buildCmdCtx2(args) {
29781
29781
  }
29782
29782
  var MAX_FEISHU_DOWNLOAD_BYTES;
29783
29783
  var init_handler6 = __esm({
29784
- "../server/dist/channels/feishu/handler.js"() {
29784
+ "packages/server/dist/channels/feishu/handler.js"() {
29785
29785
  "use strict";
29786
29786
  init_accounts6();
29787
29787
  init_event_adapter4();
@@ -29797,7 +29797,7 @@ var init_handler6 = __esm({
29797
29797
  }
29798
29798
  });
29799
29799
 
29800
- // ../server/dist/routes/feishu.js
29800
+ // packages/server/dist/routes/feishu.js
29801
29801
  import { Hono as Hono19 } from "hono";
29802
29802
  import fs59 from "node:fs";
29803
29803
  function createFeishuRoutes(deps) {
@@ -29934,7 +29934,7 @@ function createFeishuRoutes(deps) {
29934
29934
  return app2;
29935
29935
  }
29936
29936
  var init_feishu = __esm({
29937
- "../server/dist/routes/feishu.js"() {
29937
+ "packages/server/dist/routes/feishu.js"() {
29938
29938
  "use strict";
29939
29939
  init_accounts6();
29940
29940
  init_accounts();
@@ -29942,7 +29942,7 @@ var init_feishu = __esm({
29942
29942
  }
29943
29943
  });
29944
29944
 
29945
- // ../server/dist/channels/feishu/cron-dispatcher.js
29945
+ // packages/server/dist/channels/feishu/cron-dispatcher.js
29946
29946
  function parseChatId2(raw) {
29947
29947
  const idx = raw.indexOf(":");
29948
29948
  return { chatId: idx < 0 ? raw : raw.slice(0, idx) };
@@ -29992,7 +29992,7 @@ function registerFeishuCronDispatcher() {
29992
29992
  registerCronDispatcher({ channelType: "feishu", dispatch: dispatch4, listTargets: listTargets4 });
29993
29993
  }
29994
29994
  var init_cron_dispatcher4 = __esm({
29995
- "../server/dist/channels/feishu/cron-dispatcher.js"() {
29995
+ "packages/server/dist/channels/feishu/cron-dispatcher.js"() {
29996
29996
  "use strict";
29997
29997
  init_channel_db();
29998
29998
  init_accounts6();
@@ -30001,10 +30001,10 @@ var init_cron_dispatcher4 = __esm({
30001
30001
  }
30002
30002
  });
30003
30003
 
30004
- // ../server/dist/channels/feishu/descriptor.js
30004
+ // packages/server/dist/channels/feishu/descriptor.js
30005
30005
  var feishuDescriptor;
30006
30006
  var init_descriptor5 = __esm({
30007
- "../server/dist/channels/feishu/descriptor.js"() {
30007
+ "packages/server/dist/channels/feishu/descriptor.js"() {
30008
30008
  "use strict";
30009
30009
  init_handler6();
30010
30010
  init_feishu();
@@ -30019,7 +30019,7 @@ var init_descriptor5 = __esm({
30019
30019
  }
30020
30020
  });
30021
30021
 
30022
- // ../server/dist/channels/wecom/accounts.js
30022
+ // packages/server/dist/channels/wecom/accounts.js
30023
30023
  function toWecom(a) {
30024
30024
  const c = a.config;
30025
30025
  return {
@@ -30094,17 +30094,17 @@ function deleteAccount7(db, accountId) {
30094
30094
  }
30095
30095
  var CH6;
30096
30096
  var init_accounts7 = __esm({
30097
- "../server/dist/channels/wecom/accounts.js"() {
30097
+ "packages/server/dist/channels/wecom/accounts.js"() {
30098
30098
  "use strict";
30099
30099
  init_accounts();
30100
30100
  CH6 = "wecom";
30101
30101
  }
30102
30102
  });
30103
30103
 
30104
- // ../server/dist/channels/wecom/event-adapter.js
30104
+ // packages/server/dist/channels/wecom/event-adapter.js
30105
30105
  var HARD_CHARS4, WecomResponder;
30106
30106
  var init_event_adapter5 = __esm({
30107
- "../server/dist/channels/wecom/event-adapter.js"() {
30107
+ "packages/server/dist/channels/wecom/event-adapter.js"() {
30108
30108
  "use strict";
30109
30109
  init_chunk();
30110
30110
  init_media();
@@ -30195,7 +30195,7 @@ var init_event_adapter5 = __esm({
30195
30195
  }
30196
30196
  });
30197
30197
 
30198
- // ../server/dist/channels/wecom/handler.js
30198
+ // packages/server/dist/channels/wecom/handler.js
30199
30199
  import path67 from "node:path";
30200
30200
  import fs60 from "node:fs/promises";
30201
30201
  import { WSClient as WSClient2, generateReqId } from "@wecom/aibot-node-sdk";
@@ -30564,7 +30564,7 @@ function buildCmdCtx3(args) {
30564
30564
  }
30565
30565
  var liveClients, DEDUPE_CAP, MAX_WECOM_DOWNLOAD_BYTES;
30566
30566
  var init_handler7 = __esm({
30567
- "../server/dist/channels/wecom/handler.js"() {
30567
+ "packages/server/dist/channels/wecom/handler.js"() {
30568
30568
  "use strict";
30569
30569
  init_accounts7();
30570
30570
  init_event_adapter5();
@@ -30580,7 +30580,7 @@ var init_handler7 = __esm({
30580
30580
  }
30581
30581
  });
30582
30582
 
30583
- // ../server/dist/routes/wecom.js
30583
+ // packages/server/dist/routes/wecom.js
30584
30584
  import { Hono as Hono20 } from "hono";
30585
30585
  import fs61 from "node:fs";
30586
30586
  function createWecomRoutes(deps) {
@@ -30687,14 +30687,14 @@ function createWecomRoutes(deps) {
30687
30687
  return app2;
30688
30688
  }
30689
30689
  var init_wecom = __esm({
30690
- "../server/dist/routes/wecom.js"() {
30690
+ "packages/server/dist/routes/wecom.js"() {
30691
30691
  "use strict";
30692
30692
  init_accounts7();
30693
30693
  init_accounts();
30694
30694
  }
30695
30695
  });
30696
30696
 
30697
- // ../server/dist/channels/wecom/cron-dispatcher.js
30697
+ // packages/server/dist/channels/wecom/cron-dispatcher.js
30698
30698
  async function dispatch5(accountId, text6, explicitChatId) {
30699
30699
  const acct = getAccount7(getChannelDb(), accountId);
30700
30700
  if (!acct)
@@ -30736,7 +30736,7 @@ function registerWecomCronDispatcher() {
30736
30736
  registerCronDispatcher({ channelType: "wecom", dispatch: dispatch5, listTargets: listTargets5 });
30737
30737
  }
30738
30738
  var init_cron_dispatcher5 = __esm({
30739
- "../server/dist/channels/wecom/cron-dispatcher.js"() {
30739
+ "packages/server/dist/channels/wecom/cron-dispatcher.js"() {
30740
30740
  "use strict";
30741
30741
  init_channel_db();
30742
30742
  init_accounts7();
@@ -30745,10 +30745,10 @@ var init_cron_dispatcher5 = __esm({
30745
30745
  }
30746
30746
  });
30747
30747
 
30748
- // ../server/dist/channels/wecom/descriptor.js
30748
+ // packages/server/dist/channels/wecom/descriptor.js
30749
30749
  var wecomDescriptor;
30750
30750
  var init_descriptor6 = __esm({
30751
- "../server/dist/channels/wecom/descriptor.js"() {
30751
+ "packages/server/dist/channels/wecom/descriptor.js"() {
30752
30752
  "use strict";
30753
30753
  init_handler7();
30754
30754
  init_wecom();
@@ -30763,10 +30763,10 @@ var init_descriptor6 = __esm({
30763
30763
  }
30764
30764
  });
30765
30765
 
30766
- // ../server/dist/channels/descriptors.js
30766
+ // packages/server/dist/channels/descriptors.js
30767
30767
  var defaultChannelDescriptors;
30768
30768
  var init_descriptors = __esm({
30769
- "../server/dist/channels/descriptors.js"() {
30769
+ "packages/server/dist/channels/descriptors.js"() {
30770
30770
  "use strict";
30771
30771
  init_descriptor();
30772
30772
  init_descriptor2();
@@ -30785,7 +30785,7 @@ var init_descriptors = __esm({
30785
30785
  }
30786
30786
  });
30787
30787
 
30788
- // ../server/dist/middleware/auth.js
30788
+ // packages/server/dist/middleware/auth.js
30789
30789
  import { Hono as Hono21 } from "hono";
30790
30790
  import { getCookie, setCookie } from "hono/cookie";
30791
30791
  import crypto5 from "node:crypto";
@@ -30978,7 +30978,7 @@ function authMiddleware() {
30978
30978
  }
30979
30979
  var TOKEN_MAX_AGE, REFRESH_AFTER, COOKIE_NAME, ADMIN_LOGIN_BUCKET, isLockedOut2, recordFailure2, clearFailures2, PUBLIC_PATHS;
30980
30980
  var init_auth = __esm({
30981
- "../server/dist/middleware/auth.js"() {
30981
+ "packages/server/dist/middleware/auth.js"() {
30982
30982
  "use strict";
30983
30983
  init_config();
30984
30984
  init_password_hash();
@@ -30995,7 +30995,7 @@ var init_auth = __esm({
30995
30995
  }
30996
30996
  });
30997
30997
 
30998
- // ../server/dist/index.js
30998
+ // packages/server/dist/index.js
30999
30999
  var dist_exports = {};
31000
31000
  import { Hono as Hono22 } from "hono";
31001
31001
  import { cors } from "hono/cors";
@@ -31124,7 +31124,7 @@ async function gracefulShutdown(signal) {
31124
31124
  }
31125
31125
  var __dirname3, PORT, HALO_VERSION, PROJECT_ROOT, HALO_HOME4, GIT_SHA, AGENTCORE, app, allowlist, authRoutes, fileRoutes, dataPreviewRoutes, gitRoutes, agentConfigRoutes, skillRoutes, settingsRoutes, evolutionRoutes, cronRoutes, channelDb, registry, sessionRoutes, sessionArchiveRoutes, showRoutes, metricsRoutes, commandRoutes, FRONTEND_DIR, server, wss;
31126
31126
  var init_dist2 = __esm({
31127
- async "../server/dist/index.js"() {
31127
+ async "packages/server/dist/index.js"() {
31128
31128
  "use strict";
31129
31129
  init_files();
31130
31130
  init_data_preview();
@@ -31166,7 +31166,7 @@ var init_dist2 = __esm({
31166
31166
  init_git_ssh();
31167
31167
  __dirname3 = path68.dirname(fileURLToPath3(import.meta.url));
31168
31168
  PORT = config.server.port;
31169
- HALO_VERSION = "1.3.4-c3090bf";
31169
+ HALO_VERSION = "1.3.4";
31170
31170
  PROJECT_ROOT = findProjectRoot();
31171
31171
  HALO_HOME4 = path68.join(homedir24(), ".halo");
31172
31172
  GIT_SHA = readGitSha();
@@ -31357,7 +31357,7 @@ var init_dist2 = __esm({
31357
31357
  }
31358
31358
  });
31359
31359
 
31360
- // ../acp-adapter/dist/halo-client.js
31360
+ // packages/acp-adapter/dist/halo-client.js
31361
31361
  async function safeText(res) {
31362
31362
  try {
31363
31363
  return (await res.text()).slice(0, 500);
@@ -31400,7 +31400,7 @@ async function* parseSseStream(body) {
31400
31400
  }
31401
31401
  var HaloClient;
31402
31402
  var init_halo_client = __esm({
31403
- "../acp-adapter/dist/halo-client.js"() {
31403
+ "packages/acp-adapter/dist/halo-client.js"() {
31404
31404
  "use strict";
31405
31405
  HaloClient = class {
31406
31406
  opts;
@@ -31500,7 +31500,7 @@ var init_halo_client = __esm({
31500
31500
  }
31501
31501
  });
31502
31502
 
31503
- // ../acp-adapter/dist/adapter.js
31503
+ // packages/acp-adapter/dist/adapter.js
31504
31504
  function newError(message, code = -32603) {
31505
31505
  const e = new Error(message);
31506
31506
  e.code = code;
@@ -31508,7 +31508,7 @@ function newError(message, code = -32603) {
31508
31508
  }
31509
31509
  var AcpAdapter;
31510
31510
  var init_adapter = __esm({
31511
- "../acp-adapter/dist/adapter.js"() {
31511
+ "packages/acp-adapter/dist/adapter.js"() {
31512
31512
  "use strict";
31513
31513
  init_halo_client();
31514
31514
  AcpAdapter = class {
@@ -31795,10 +31795,10 @@ var init_adapter = __esm({
31795
31795
  }
31796
31796
  });
31797
31797
 
31798
- // ../acp-adapter/dist/jsonrpc.js
31798
+ // packages/acp-adapter/dist/jsonrpc.js
31799
31799
  var ERROR_PARSE, ERROR_METHOD_NOT_FOUND, ERROR_INTERNAL, JsonRpcConnection;
31800
31800
  var init_jsonrpc = __esm({
31801
- "../acp-adapter/dist/jsonrpc.js"() {
31801
+ "packages/acp-adapter/dist/jsonrpc.js"() {
31802
31802
  "use strict";
31803
31803
  ERROR_PARSE = -32700;
31804
31804
  ERROR_METHOD_NOT_FOUND = -32601;
@@ -31931,7 +31931,7 @@ var init_jsonrpc = __esm({
31931
31931
  }
31932
31932
  });
31933
31933
 
31934
- // ../acp-adapter/dist/index.js
31934
+ // packages/acp-adapter/dist/index.js
31935
31935
  var dist_exports2 = {};
31936
31936
  __export(dist_exports2, {
31937
31937
  main: () => main
@@ -32047,7 +32047,7 @@ function main(argv = process.argv.slice(2)) {
32047
32047
  }
32048
32048
  var HELP;
32049
32049
  var init_dist3 = __esm({
32050
- "../acp-adapter/dist/index.js"() {
32050
+ "packages/acp-adapter/dist/index.js"() {
32051
32051
  "use strict";
32052
32052
  init_adapter();
32053
32053
  init_jsonrpc();
@@ -32086,7 +32086,7 @@ Stdio:
32086
32086
  }
32087
32087
  });
32088
32088
 
32089
- // src/silence-warnings.ts
32089
+ // packages/cli/src/silence-warnings.ts
32090
32090
  var emit = process.emitWarning.bind(process);
32091
32091
  process.emitWarning = (warning, ...args) => {
32092
32092
  const opt = args[0];
@@ -32095,13 +32095,13 @@ process.emitWarning = (warning, ...args) => {
32095
32095
  return emit(warning, ...args);
32096
32096
  };
32097
32097
 
32098
- // src/index.ts
32098
+ // packages/cli/src/index.ts
32099
32099
  init_server_supervisor();
32100
32100
  import path69 from "node:path";
32101
32101
  import fs63 from "node:fs";
32102
32102
  import { homedir as homedir25 } from "node:os";
32103
32103
  import { parseArgs as parseArgs2 } from "node:util";
32104
- var VERSION = "1.3.4-c3090bf";
32104
+ var VERSION = "1.3.4";
32105
32105
  var HELP_TOP = `Usage: halo <command> [options]
32106
32106
 
32107
32107
  Commands: