@turmind/halo 1.0.0 → 1.0.1

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
- // ../server/dist/prompts/md-loader.js
11
+ // packages/server/dist/prompts/md-loader.js
12
12
  import fs from "node:fs/promises";
13
13
  import fsSync from "node:fs";
14
14
  import path from "node:path";
@@ -150,13 +150,13 @@ function resolveMdFilePath(agentId, fileType, scope, workspaceRoot) {
150
150
  }
151
151
  var HALO_HOME;
152
152
  var init_md_loader = __esm({
153
- "../server/dist/prompts/md-loader.js"() {
153
+ "packages/server/dist/prompts/md-loader.js"() {
154
154
  "use strict";
155
155
  HALO_HOME = path.join(homedir(), ".halo", "global");
156
156
  }
157
157
  });
158
158
 
159
- // ../server/dist/settings-schema.js
159
+ // packages/server/dist/settings-schema.js
160
160
  import fs2 from "node:fs";
161
161
  import path2 from "node:path";
162
162
  import { homedir as homedir2 } from "node:os";
@@ -409,7 +409,7 @@ function loadSettingsSchema(workspaceRoot) {
409
409
  }
410
410
  var GLOBAL_MODELS_DIR, GLOBAL_SKILLS_DIR, GLOBAL_AGENTS_DIR, VALID_TYPES;
411
411
  var init_settings_schema = __esm({
412
- "../server/dist/settings-schema.js"() {
412
+ "packages/server/dist/settings-schema.js"() {
413
413
  "use strict";
414
414
  GLOBAL_MODELS_DIR = path2.join(homedir2(), ".halo", "global", "models");
415
415
  GLOBAL_SKILLS_DIR = path2.join(homedir2(), ".halo", "global", "skills");
@@ -418,7 +418,7 @@ var init_settings_schema = __esm({
418
418
  }
419
419
  });
420
420
 
421
- // ../server/dist/config.js
421
+ // packages/server/dist/config.js
422
422
  var config_exports = {};
423
423
  __export(config_exports, {
424
424
  HALO_GLOBAL_DIR: () => HALO_GLOBAL_DIR,
@@ -713,7 +713,7 @@ function getModelsRegistry() {
713
713
  }
714
714
  var HALO_HOME2, HALO_GLOBAL_DIR, HALO_SECRETS_DIR, _modelsRegistryCache, _systemConfig, SETTINGS_PATH, _settingsCache, _schemaDefaultsCache, ENV_PATTERN, _wsSettingsCache, config, HIDDEN_DIRS_DEFAULT, HIDDEN_FILES_DEFAULT;
715
715
  var init_config = __esm({
716
- "../server/dist/config.js"() {
716
+ "packages/server/dist/config.js"() {
717
717
  "use strict";
718
718
  init_settings_schema();
719
719
  HALO_HOME2 = path3.join(homedir3(), ".halo");
@@ -921,7 +921,7 @@ var init_config = __esm({
921
921
  }
922
922
  });
923
923
 
924
- // ../server/dist/agents/conversation-repair.js
924
+ // packages/server/dist/agents/conversation-repair.js
925
925
  function getToolUseId(block) {
926
926
  const b = block;
927
927
  if (b.type === "tool_use" && typeof b.id === "string")
@@ -1039,12 +1039,12 @@ function repairConversationMessages(raw, label = "[Repair]") {
1039
1039
  return messages2;
1040
1040
  }
1041
1041
  var init_conversation_repair = __esm({
1042
- "../server/dist/agents/conversation-repair.js"() {
1042
+ "packages/server/dist/agents/conversation-repair.js"() {
1043
1043
  "use strict";
1044
1044
  }
1045
1045
  });
1046
1046
 
1047
- // ../server/dist/agents/compact.js
1047
+ // packages/server/dist/agents/compact.js
1048
1048
  function splitForCompact(messages2) {
1049
1049
  const keepCount = config.compact.keep_messages;
1050
1050
  let cut = Math.max(0, messages2.length - keepCount);
@@ -1091,13 +1091,13 @@ ${summaryText}` }]
1091
1091
  return { compacted: true, messages: [summaryMsg, ...recentMsgs] };
1092
1092
  }
1093
1093
  var init_compact = __esm({
1094
- "../server/dist/agents/compact.js"() {
1094
+ "packages/server/dist/agents/compact.js"() {
1095
1095
  "use strict";
1096
1096
  init_config();
1097
1097
  }
1098
1098
  });
1099
1099
 
1100
- // ../server/dist/agents/micro-compact.js
1100
+ // packages/server/dist/agents/micro-compact.js
1101
1101
  function microCompactMessages(messages2, keepRecent = DEFAULT_KEEP_RECENT) {
1102
1102
  if (!messages2 || messages2.length === 0) {
1103
1103
  return { compacted: false, cleared: 0, messages: messages2 };
@@ -1145,7 +1145,7 @@ function microCompactMessages(messages2, keepRecent = DEFAULT_KEEP_RECENT) {
1145
1145
  }
1146
1146
  var MICRO_COMPACT_PLACEHOLDER, COMPACTABLE_TOOLS, DEFAULT_KEEP_RECENT;
1147
1147
  var init_micro_compact = __esm({
1148
- "../server/dist/agents/micro-compact.js"() {
1148
+ "packages/server/dist/agents/micro-compact.js"() {
1149
1149
  "use strict";
1150
1150
  MICRO_COMPACT_PLACEHOLDER = "[Old tool result content cleared]";
1151
1151
  COMPACTABLE_TOOLS = /* @__PURE__ */ new Set([
@@ -1162,10 +1162,10 @@ var init_micro_compact = __esm({
1162
1162
  }
1163
1163
  });
1164
1164
 
1165
- // ../server/dist/agents/agent-loop.js
1165
+ // packages/server/dist/agents/agent-loop.js
1166
1166
  var TOOL_ERROR_MARKER, TOOL_WARN_MARKER, MODEL_TIMEOUT_ERROR, AgentLoop;
1167
1167
  var init_agent_loop = __esm({
1168
- "../server/dist/agents/agent-loop.js"() {
1168
+ "packages/server/dist/agents/agent-loop.js"() {
1169
1169
  "use strict";
1170
1170
  init_config();
1171
1171
  TOOL_ERROR_MARKER = "__TOOL_ERROR__";
@@ -1327,7 +1327,7 @@ Error: ${err instanceof Error ? err.message : String(err)}`;
1327
1327
  }
1328
1328
  });
1329
1329
 
1330
- // ../server/dist/prompts/md-vars.js
1330
+ // packages/server/dist/prompts/md-vars.js
1331
1331
  var md_vars_exports = {};
1332
1332
  __export(md_vars_exports, {
1333
1333
  buildRenderContext: () => buildRenderContext,
@@ -1490,7 +1490,7 @@ async function buildRenderContext(opts) {
1490
1490
  }
1491
1491
  var PATTERN, ENV_PATTERN2, ARG_PATTERN, PARAM_PATH;
1492
1492
  var init_md_vars = __esm({
1493
- "../server/dist/prompts/md-vars.js"() {
1493
+ "packages/server/dist/prompts/md-vars.js"() {
1494
1494
  "use strict";
1495
1495
  PATTERN = /\{\{\s*([\w-][\w.-]*)\s*\}\}/g;
1496
1496
  ENV_PATTERN2 = /<<([A-Z_][A-Z0-9_]*)>>/g;
@@ -1499,7 +1499,7 @@ var init_md_vars = __esm({
1499
1499
  }
1500
1500
  });
1501
1501
 
1502
- // ../server/dist/agents/agent-loader.js
1502
+ // packages/server/dist/agents/agent-loader.js
1503
1503
  import fs5 from "node:fs/promises";
1504
1504
  import fsSync2 from "node:fs";
1505
1505
  import path5 from "node:path";
@@ -1773,7 +1773,7 @@ function isTeamMember(team, targetId) {
1773
1773
  }
1774
1774
  var GLOBAL_AGENTS_DIR2, GLOBAL_SKILLS_DIR2, SKILL_ID_RE, ACCESS_RANK;
1775
1775
  var init_agent_loader = __esm({
1776
- "../server/dist/agents/agent-loader.js"() {
1776
+ "packages/server/dist/agents/agent-loader.js"() {
1777
1777
  "use strict";
1778
1778
  init_agent_loop();
1779
1779
  GLOBAL_AGENTS_DIR2 = path5.join(homedir5(), ".halo", "global", "agents");
@@ -1788,7 +1788,7 @@ var init_agent_loader = __esm({
1788
1788
  }
1789
1789
  });
1790
1790
 
1791
- // ../server/dist/ws/broadcast.js
1791
+ // packages/server/dist/ws/broadcast.js
1792
1792
  function setBroadcastWss(wss2) {
1793
1793
  _wss = wss2;
1794
1794
  }
@@ -1809,13 +1809,13 @@ function broadcast(event) {
1809
1809
  }
1810
1810
  var _wss;
1811
1811
  var init_broadcast = __esm({
1812
- "../server/dist/ws/broadcast.js"() {
1812
+ "packages/server/dist/ws/broadcast.js"() {
1813
1813
  "use strict";
1814
1814
  _wss = null;
1815
1815
  }
1816
1816
  });
1817
1817
 
1818
- // ../server/dist/db/schema.js
1818
+ // packages/server/dist/db/schema.js
1819
1819
  var schema_exports = {};
1820
1820
  __export(schema_exports, {
1821
1821
  agentSessions: () => agentSessions,
@@ -1825,7 +1825,7 @@ __export(schema_exports, {
1825
1825
  import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
1826
1826
  var sessions, agentSessions, disabledItems;
1827
1827
  var init_schema = __esm({
1828
- "../server/dist/db/schema.js"() {
1828
+ "packages/server/dist/db/schema.js"() {
1829
1829
  "use strict";
1830
1830
  sessions = sqliteTable("sessions", {
1831
1831
  id: text("id").primaryKey(),
@@ -1862,7 +1862,7 @@ var init_schema = __esm({
1862
1862
  }
1863
1863
  });
1864
1864
 
1865
- // ../server/dist/init.js
1865
+ // packages/server/dist/init.js
1866
1866
  var init_exports = {};
1867
1867
  __export(init_exports, {
1868
1868
  TEMPLATES_DIR: () => TEMPLATES_DIR,
@@ -2198,7 +2198,7 @@ function ensureWorkspaceHalo(workspaceRoot) {
2198
2198
  }
2199
2199
  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;
2200
2200
  var init_init = __esm({
2201
- "../server/dist/init.js"() {
2201
+ "packages/server/dist/init.js"() {
2202
2202
  "use strict";
2203
2203
  __dirname = path6.dirname(fileURLToPath(import.meta.url));
2204
2204
  TEMPLATES_DIR = path6.resolve(__dirname, "..", "templates");
@@ -2271,7 +2271,7 @@ var init_init = __esm({
2271
2271
  }
2272
2272
  });
2273
2273
 
2274
- // ../server/dist/db/index.js
2274
+ // packages/server/dist/db/index.js
2275
2275
  import Database from "better-sqlite3";
2276
2276
  import { drizzle } from "drizzle-orm/better-sqlite3";
2277
2277
  import { eq, and } from "drizzle-orm";
@@ -2330,7 +2330,7 @@ function toggleDisabled(db, itemType, itemId, scope) {
2330
2330
  }
2331
2331
  var SCHEMA_SQL_PATH, dbCache;
2332
2332
  var init_db = __esm({
2333
- "../server/dist/db/index.js"() {
2333
+ "packages/server/dist/db/index.js"() {
2334
2334
  "use strict";
2335
2335
  init_schema();
2336
2336
  init_init();
@@ -2339,7 +2339,7 @@ var init_db = __esm({
2339
2339
  }
2340
2340
  });
2341
2341
 
2342
- // ../server/dist/sessions/session-store.js
2342
+ // packages/server/dist/sessions/session-store.js
2343
2343
  import fsSync3 from "node:fs";
2344
2344
  import fs8 from "node:fs/promises";
2345
2345
  import path8 from "node:path";
@@ -2554,12 +2554,12 @@ function findAndUpdateSessionTitle(sessionId, title, projectPath) {
2554
2554
  return false;
2555
2555
  }
2556
2556
  var init_session_store = __esm({
2557
- "../server/dist/sessions/session-store.js"() {
2557
+ "packages/server/dist/sessions/session-store.js"() {
2558
2558
  "use strict";
2559
2559
  }
2560
2560
  });
2561
2561
 
2562
- // ../server/dist/agents/session-tools.js
2562
+ // packages/server/dist/agents/session-tools.js
2563
2563
  async function callerTeamFor(sm, sessionId) {
2564
2564
  const callerId = sm.sessions.get(sessionId)?.agentId;
2565
2565
  if (!callerId)
@@ -2822,7 +2822,7 @@ ${skillInfo}` : ""
2822
2822
  ];
2823
2823
  }
2824
2824
  var init_session_tools = __esm({
2825
- "../server/dist/agents/session-tools.js"() {
2825
+ "packages/server/dist/agents/session-tools.js"() {
2826
2826
  "use strict";
2827
2827
  init_config();
2828
2828
  init_agent_loader();
@@ -2831,7 +2831,7 @@ var init_session_tools = __esm({
2831
2831
  }
2832
2832
  });
2833
2833
 
2834
- // ../server/dist/agents/goal-mode.js
2834
+ // packages/server/dist/agents/goal-mode.js
2835
2835
  import fs9 from "node:fs";
2836
2836
  import path9 from "node:path";
2837
2837
  import { createHash } from "node:crypto";
@@ -3300,7 +3300,7 @@ function sweepActiveGoals(host) {
3300
3300
  }
3301
3301
  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;
3302
3302
  var init_goal_mode = __esm({
3303
- "../server/dist/agents/goal-mode.js"() {
3303
+ "packages/server/dist/agents/goal-mode.js"() {
3304
3304
  "use strict";
3305
3305
  init_schema();
3306
3306
  init_session_store();
@@ -3321,7 +3321,7 @@ var init_goal_mode = __esm({
3321
3321
  }
3322
3322
  });
3323
3323
 
3324
- // ../server/dist/agents/workspace-runtime-lock.js
3324
+ // packages/server/dist/agents/workspace-runtime-lock.js
3325
3325
  import fs10 from "node:fs";
3326
3326
  import path10 from "node:path";
3327
3327
  function isPidAlive(pid) {
@@ -3369,13 +3369,13 @@ function claimWorkspaceRuntime(workspaceRoot) {
3369
3369
  }
3370
3370
  var RUNTIME_LOCK_FILE;
3371
3371
  var init_workspace_runtime_lock = __esm({
3372
- "../server/dist/agents/workspace-runtime-lock.js"() {
3372
+ "packages/server/dist/agents/workspace-runtime-lock.js"() {
3373
3373
  "use strict";
3374
3374
  RUNTIME_LOCK_FILE = "runtime.lock";
3375
3375
  }
3376
3376
  });
3377
3377
 
3378
- // ../server/dist/db/evo-db.js
3378
+ // packages/server/dist/db/evo-db.js
3379
3379
  import Database2 from "better-sqlite3";
3380
3380
  import { drizzle as drizzle2 } from "drizzle-orm/better-sqlite3";
3381
3381
  import { sqliteTable as sqliteTable2, text as text2, integer as integer2 } from "drizzle-orm/sqlite-core";
@@ -3399,7 +3399,7 @@ function getEvoDb() {
3399
3399
  }
3400
3400
  var evolutionRuns, evolutionApplies, CREATE_SQL, _evoDb;
3401
3401
  var init_evo_db = __esm({
3402
- "../server/dist/db/evo-db.js"() {
3402
+ "packages/server/dist/db/evo-db.js"() {
3403
3403
  "use strict";
3404
3404
  evolutionRuns = sqliteTable2("evolution_runs", {
3405
3405
  id: text2("id").primaryKey(),
@@ -3481,7 +3481,7 @@ CREATE INDEX IF NOT EXISTS idx_evo_applies_archived ON evolution_applies(archive
3481
3481
  }
3482
3482
  });
3483
3483
 
3484
- // ../server/dist/evolution/enqueue.js
3484
+ // packages/server/dist/evolution/enqueue.js
3485
3485
  import fs12 from "node:fs";
3486
3486
  import path12 from "node:path";
3487
3487
  import { homedir as homedir7 } from "node:os";
@@ -3766,13 +3766,13 @@ function enqueueEvoRun(input) {
3766
3766
  return { ok: true, runId, runDir };
3767
3767
  }
3768
3768
  var init_enqueue = __esm({
3769
- "../server/dist/evolution/enqueue.js"() {
3769
+ "packages/server/dist/evolution/enqueue.js"() {
3770
3770
  "use strict";
3771
3771
  init_evo_db();
3772
3772
  }
3773
3773
  });
3774
3774
 
3775
- // ../server/dist/channels/shared/media-store.js
3775
+ // packages/server/dist/channels/shared/media-store.js
3776
3776
  import fs13 from "node:fs/promises";
3777
3777
  import path13 from "node:path";
3778
3778
  import { randomBytes } from "node:crypto";
@@ -3830,7 +3830,7 @@ async function saveInboundMedia(params) {
3830
3830
  }
3831
3831
  var VISION_IMAGE_MIME_TYPES, EXT_BY_MIME;
3832
3832
  var init_media_store = __esm({
3833
- "../server/dist/channels/shared/media-store.js"() {
3833
+ "packages/server/dist/channels/shared/media-store.js"() {
3834
3834
  "use strict";
3835
3835
  VISION_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
3836
3836
  EXT_BY_MIME = {
@@ -3850,7 +3850,7 @@ var init_media_store = __esm({
3850
3850
  }
3851
3851
  });
3852
3852
 
3853
- // ../server/dist/sessions/ui-log-builder.js
3853
+ // packages/server/dist/sessions/ui-log-builder.js
3854
3854
  import { randomUUID } from "node:crypto";
3855
3855
  function createEmptyUIState() {
3856
3856
  return {
@@ -4266,19 +4266,19 @@ function applyEvent(state, event) {
4266
4266
  }
4267
4267
  var msgCounter;
4268
4268
  var init_ui_log_builder = __esm({
4269
- "../server/dist/sessions/ui-log-builder.js"() {
4269
+ "packages/server/dist/sessions/ui-log-builder.js"() {
4270
4270
  "use strict";
4271
4271
  msgCounter = 0;
4272
4272
  }
4273
4273
  });
4274
4274
 
4275
- // ../server/dist/agents/session-ui-store.js
4275
+ // packages/server/dist/agents/session-ui-store.js
4276
4276
  import fsSync4 from "node:fs";
4277
4277
  import path14 from "node:path";
4278
4278
  import { eq as eq3 } from "drizzle-orm";
4279
4279
  var SessionUIStore;
4280
4280
  var init_session_ui_store = __esm({
4281
- "../server/dist/agents/session-ui-store.js"() {
4281
+ "packages/server/dist/agents/session-ui-store.js"() {
4282
4282
  "use strict";
4283
4283
  init_broadcast();
4284
4284
  init_schema();
@@ -4654,11 +4654,11 @@ var init_session_ui_store = __esm({
4654
4654
  }
4655
4655
  });
4656
4656
 
4657
- // ../server/dist/agents/session-query-store.js
4657
+ // packages/server/dist/agents/session-query-store.js
4658
4658
  import { eq as eq4, and as and3, isNull as isNull2, desc, lt, gte, inArray } from "drizzle-orm";
4659
4659
  var SessionQueryStore;
4660
4660
  var init_session_query_store = __esm({
4661
- "../server/dist/agents/session-query-store.js"() {
4661
+ "packages/server/dist/agents/session-query-store.js"() {
4662
4662
  "use strict";
4663
4663
  init_schema();
4664
4664
  init_session_store();
@@ -4869,7 +4869,7 @@ var init_session_query_store = __esm({
4869
4869
  }
4870
4870
  });
4871
4871
 
4872
- // ../server/dist/agents/bedrock-agent.js
4872
+ // packages/server/dist/agents/bedrock-agent.js
4873
4873
  import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";
4874
4874
  function effortToBudget(effort, maxTokens) {
4875
4875
  const table = {
@@ -4891,7 +4891,7 @@ function extractRegionFromEndpoint(endpoint) {
4891
4891
  }
4892
4892
  var BedrockAgent;
4893
4893
  var init_bedrock_agent = __esm({
4894
- "../server/dist/agents/bedrock-agent.js"() {
4894
+ "packages/server/dist/agents/bedrock-agent.js"() {
4895
4895
  "use strict";
4896
4896
  init_config();
4897
4897
  init_agent_loop();
@@ -5020,7 +5020,7 @@ var init_bedrock_agent = __esm({
5020
5020
  }
5021
5021
  });
5022
5022
 
5023
- // ../server/dist/agents/deepseek-agent.js
5023
+ // packages/server/dist/agents/deepseek-agent.js
5024
5024
  function safeParse(json) {
5025
5025
  try {
5026
5026
  return JSON.parse(json || "{}");
@@ -5030,7 +5030,7 @@ function safeParse(json) {
5030
5030
  }
5031
5031
  var DeepSeekAgent;
5032
5032
  var init_deepseek_agent = __esm({
5033
- "../server/dist/agents/deepseek-agent.js"() {
5033
+ "packages/server/dist/agents/deepseek-agent.js"() {
5034
5034
  "use strict";
5035
5035
  init_config();
5036
5036
  init_agent_loop();
@@ -5210,7 +5210,7 @@ var init_deepseek_agent = __esm({
5210
5210
  }
5211
5211
  });
5212
5212
 
5213
- // ../server/dist/agents/kimi-agent.js
5213
+ // packages/server/dist/agents/kimi-agent.js
5214
5214
  function safeParse2(json) {
5215
5215
  try {
5216
5216
  return JSON.parse(json || "{}");
@@ -5220,7 +5220,7 @@ function safeParse2(json) {
5220
5220
  }
5221
5221
  var KimiAgent;
5222
5222
  var init_kimi_agent = __esm({
5223
- "../server/dist/agents/kimi-agent.js"() {
5223
+ "packages/server/dist/agents/kimi-agent.js"() {
5224
5224
  "use strict";
5225
5225
  init_config();
5226
5226
  init_agent_loop();
@@ -5416,7 +5416,7 @@ var init_kimi_agent = __esm({
5416
5416
  }
5417
5417
  });
5418
5418
 
5419
- // ../server/dist/agents/minimax-agent.js
5419
+ // packages/server/dist/agents/minimax-agent.js
5420
5420
  function effortToBudget2(effort, maxTokens) {
5421
5421
  const table = {
5422
5422
  low: 2048,
@@ -5433,7 +5433,7 @@ function effortToBudget2(effort, maxTokens) {
5433
5433
  }
5434
5434
  var MiniMaxAgent;
5435
5435
  var init_minimax_agent = __esm({
5436
- "../server/dist/agents/minimax-agent.js"() {
5436
+ "packages/server/dist/agents/minimax-agent.js"() {
5437
5437
  "use strict";
5438
5438
  init_config();
5439
5439
  init_agent_loop();
@@ -5555,7 +5555,7 @@ var init_minimax_agent = __esm({
5555
5555
  }
5556
5556
  });
5557
5557
 
5558
- // ../server/dist/agents/qwen-agent.js
5558
+ // packages/server/dist/agents/qwen-agent.js
5559
5559
  function effortToBudget3(effort, maxTokens) {
5560
5560
  const table = {
5561
5561
  low: 2048,
@@ -5572,7 +5572,7 @@ function effortToBudget3(effort, maxTokens) {
5572
5572
  }
5573
5573
  var QwenAgent;
5574
5574
  var init_qwen_agent = __esm({
5575
- "../server/dist/agents/qwen-agent.js"() {
5575
+ "packages/server/dist/agents/qwen-agent.js"() {
5576
5576
  "use strict";
5577
5577
  init_config();
5578
5578
  init_agent_loop();
@@ -5690,7 +5690,7 @@ var init_qwen_agent = __esm({
5690
5690
  }
5691
5691
  });
5692
5692
 
5693
- // ../server/dist/agents/hunyuan-agent.js
5693
+ // packages/server/dist/agents/hunyuan-agent.js
5694
5694
  function safeParse3(json) {
5695
5695
  try {
5696
5696
  return JSON.parse(json || "{}");
@@ -5700,7 +5700,7 @@ function safeParse3(json) {
5700
5700
  }
5701
5701
  var HunyuanAgent;
5702
5702
  var init_hunyuan_agent = __esm({
5703
- "../server/dist/agents/hunyuan-agent.js"() {
5703
+ "packages/server/dist/agents/hunyuan-agent.js"() {
5704
5704
  "use strict";
5705
5705
  init_config();
5706
5706
  init_agent_loop();
@@ -5871,7 +5871,7 @@ var init_hunyuan_agent = __esm({
5871
5871
  }
5872
5872
  });
5873
5873
 
5874
- // ../server/dist/agents/doubao-agent.js
5874
+ // packages/server/dist/agents/doubao-agent.js
5875
5875
  function safeParse4(json) {
5876
5876
  try {
5877
5877
  return JSON.parse(json || "{}");
@@ -5881,7 +5881,7 @@ function safeParse4(json) {
5881
5881
  }
5882
5882
  var DoubaoAgent;
5883
5883
  var init_doubao_agent = __esm({
5884
- "../server/dist/agents/doubao-agent.js"() {
5884
+ "packages/server/dist/agents/doubao-agent.js"() {
5885
5885
  "use strict";
5886
5886
  init_config();
5887
5887
  init_agent_loop();
@@ -6052,7 +6052,7 @@ var init_doubao_agent = __esm({
6052
6052
  }
6053
6053
  });
6054
6054
 
6055
- // ../server/dist/agents/openai-agent.js
6055
+ // packages/server/dist/agents/openai-agent.js
6056
6056
  function safeParse5(json) {
6057
6057
  try {
6058
6058
  return JSON.parse(json || "{}");
@@ -6062,7 +6062,7 @@ function safeParse5(json) {
6062
6062
  }
6063
6063
  var OpenAIAgent;
6064
6064
  var init_openai_agent = __esm({
6065
- "../server/dist/agents/openai-agent.js"() {
6065
+ "packages/server/dist/agents/openai-agent.js"() {
6066
6066
  "use strict";
6067
6067
  init_config();
6068
6068
  init_agent_loop();
@@ -6234,7 +6234,7 @@ var init_openai_agent = __esm({
6234
6234
  }
6235
6235
  });
6236
6236
 
6237
- // ../server/dist/agents/mantle-agent.js
6237
+ // packages/server/dist/agents/mantle-agent.js
6238
6238
  import { SignatureV4 } from "@smithy/signature-v4";
6239
6239
  import { Sha256 } from "@aws-crypto/sha256-js";
6240
6240
  import { defaultProvider } from "@aws-sdk/credential-provider-node";
@@ -6251,7 +6251,7 @@ function safeParse6(json) {
6251
6251
  }
6252
6252
  var MantleAgent;
6253
6253
  var init_mantle_agent = __esm({
6254
- "../server/dist/agents/mantle-agent.js"() {
6254
+ "packages/server/dist/agents/mantle-agent.js"() {
6255
6255
  "use strict";
6256
6256
  init_config();
6257
6257
  init_agent_loop();
@@ -6469,10 +6469,10 @@ var init_mantle_agent = __esm({
6469
6469
  }
6470
6470
  });
6471
6471
 
6472
- // ../server/dist/agents/anthropic-agent.js
6472
+ // packages/server/dist/agents/anthropic-agent.js
6473
6473
  var AnthropicAgent;
6474
6474
  var init_anthropic_agent = __esm({
6475
- "../server/dist/agents/anthropic-agent.js"() {
6475
+ "packages/server/dist/agents/anthropic-agent.js"() {
6476
6476
  "use strict";
6477
6477
  init_config();
6478
6478
  init_agent_loop();
@@ -6595,7 +6595,7 @@ var init_anthropic_agent = __esm({
6595
6595
  }
6596
6596
  });
6597
6597
 
6598
- // ../server/dist/agents/model-runtime.js
6598
+ // packages/server/dist/agents/model-runtime.js
6599
6599
  function createModelRuntime(providerId, cfg) {
6600
6600
  switch (providerId) {
6601
6601
  case "aws-bedrock-claude-invoke":
@@ -6730,7 +6730,7 @@ function createModelRuntime(providerId, cfg) {
6730
6730
  }
6731
6731
  }
6732
6732
  var init_model_runtime = __esm({
6733
- "../server/dist/agents/model-runtime.js"() {
6733
+ "packages/server/dist/agents/model-runtime.js"() {
6734
6734
  "use strict";
6735
6735
  init_bedrock_agent();
6736
6736
  init_deepseek_agent();
@@ -6745,7 +6745,7 @@ var init_model_runtime = __esm({
6745
6745
  }
6746
6746
  });
6747
6747
 
6748
- // ../server/dist/tools/sandbox.js
6748
+ // packages/server/dist/tools/sandbox.js
6749
6749
  import { exec, execFile, spawn } from "node:child_process";
6750
6750
  import { promisify } from "node:util";
6751
6751
  import path15 from "node:path";
@@ -7195,7 +7195,7 @@ async function sandboxReaddir(dirPath, opts) {
7195
7195
  }
7196
7196
  var execAsync, execFileAsync, HOME, HALO_HOME3, GLOBAL_DIR, KILL_GRACE_MS, _bwrapAvailable, DEFAULT_HIDDEN_DIRS, DEFAULT_HIDDEN_FILES, _hiddenDirs, _hiddenFiles, _writableDirs;
7197
7197
  var init_sandbox = __esm({
7198
- "../server/dist/tools/sandbox.js"() {
7198
+ "packages/server/dist/tools/sandbox.js"() {
7199
7199
  "use strict";
7200
7200
  execAsync = promisify(exec);
7201
7201
  execFileAsync = promisify(execFile);
@@ -7242,7 +7242,7 @@ var init_sandbox = __esm({
7242
7242
  }
7243
7243
  });
7244
7244
 
7245
- // ../server/dist/tools/workspace-tools.js
7245
+ // packages/server/dist/tools/workspace-tools.js
7246
7246
  import fs14 from "node:fs/promises";
7247
7247
  import path16 from "node:path";
7248
7248
  import crypto from "node:crypto";
@@ -7959,7 +7959,7 @@ function imageDimensions(buf, mediaType) {
7959
7959
  }
7960
7960
  var SKIP_DIRS, GLOB_MAX_RESULTS, HOME2, PARAMS_PATTERN, ENV_PATTERN3;
7961
7961
  var init_workspace_tools = __esm({
7962
- "../server/dist/tools/workspace-tools.js"() {
7962
+ "packages/server/dist/tools/workspace-tools.js"() {
7963
7963
  "use strict";
7964
7964
  init_config();
7965
7965
  init_sandbox();
@@ -7975,7 +7975,7 @@ var init_workspace_tools = __esm({
7975
7975
  }
7976
7976
  });
7977
7977
 
7978
- // ../server/dist/tools/draft-tool.js
7978
+ // packages/server/dist/tools/draft-tool.js
7979
7979
  function createDraftTool() {
7980
7980
  let drafts = 0;
7981
7981
  const tool = {
@@ -8010,7 +8010,7 @@ Error: draft requires non-empty \`content\` \u2014 put your full draft answer th
8010
8010
  }
8011
8011
  var MAX_DRAFTS, REVIEW_CHECKLIST;
8012
8012
  var init_draft_tool = __esm({
8013
- "../server/dist/tools/draft-tool.js"() {
8013
+ "packages/server/dist/tools/draft-tool.js"() {
8014
8014
  "use strict";
8015
8015
  init_agent_loop();
8016
8016
  MAX_DRAFTS = 3;
@@ -8024,7 +8024,7 @@ If the draft clears all three, write the final answer now. If not, fix it (gathe
8024
8024
  }
8025
8025
  });
8026
8026
 
8027
- // ../server/dist/prompts/system-prompts.js
8027
+ // packages/server/dist/prompts/system-prompts.js
8028
8028
  import fs15 from "node:fs/promises";
8029
8029
  import path17 from "node:path";
8030
8030
  import { homedir as homedir10 } from "node:os";
@@ -8110,17 +8110,17 @@ async function loadSystemPrompts(workspaceRoot) {
8110
8110
  }
8111
8111
  var GLOBAL_PROMPTS_DIR;
8112
8112
  var init_system_prompts = __esm({
8113
- "../server/dist/prompts/system-prompts.js"() {
8113
+ "packages/server/dist/prompts/system-prompts.js"() {
8114
8114
  "use strict";
8115
8115
  GLOBAL_PROMPTS_DIR = path17.join(homedir10(), ".halo", "global", "prompts");
8116
8116
  }
8117
8117
  });
8118
8118
 
8119
- // ../server/dist/agents/session-agent-builder.js
8119
+ // packages/server/dist/agents/session-agent-builder.js
8120
8120
  import path18 from "node:path";
8121
8121
  var SessionAgentBuilder;
8122
8122
  var init_session_agent_builder = __esm({
8123
- "../server/dist/agents/session-agent-builder.js"() {
8123
+ "packages/server/dist/agents/session-agent-builder.js"() {
8124
8124
  "use strict";
8125
8125
  init_model_runtime();
8126
8126
  init_workspace_tools();
@@ -8515,10 +8515,10 @@ do delegate, say so in one line and keep going.`;
8515
8515
  }
8516
8516
  });
8517
8517
 
8518
- // ../server/dist/commands/registry.js
8518
+ // packages/server/dist/commands/registry.js
8519
8519
  var CommandRegistry;
8520
8520
  var init_registry = __esm({
8521
- "../server/dist/commands/registry.js"() {
8521
+ "packages/server/dist/commands/registry.js"() {
8522
8522
  "use strict";
8523
8523
  CommandRegistry = class {
8524
8524
  descriptors = /* @__PURE__ */ new Map();
@@ -8532,13 +8532,13 @@ var init_registry = __esm({
8532
8532
  }
8533
8533
  });
8534
8534
 
8535
- // ../server/dist/commands/index.js
8535
+ // packages/server/dist/commands/index.js
8536
8536
  function builtinCommandNames() {
8537
8537
  return commandRegistry.listDescriptors().filter((d) => d.source === "builtin").map((d) => d.name);
8538
8538
  }
8539
8539
  var commandRegistry;
8540
8540
  var init_commands = __esm({
8541
- "../server/dist/commands/index.js"() {
8541
+ "packages/server/dist/commands/index.js"() {
8542
8542
  "use strict";
8543
8543
  init_registry();
8544
8544
  commandRegistry = new CommandRegistry();
@@ -8588,7 +8588,7 @@ var init_commands = __esm({
8588
8588
  }
8589
8589
  });
8590
8590
 
8591
- // ../server/dist/channels/shared/i18n.js
8591
+ // packages/server/dist/channels/shared/i18n.js
8592
8592
  function getLang(account) {
8593
8593
  const v = account.language;
8594
8594
  return v === "en" || v === "zh" ? v : "en";
@@ -8607,7 +8607,7 @@ function t(key, lang, params) {
8607
8607
  }
8608
8608
  var messages;
8609
8609
  var init_i18n = __esm({
8610
- "../server/dist/channels/shared/i18n.js"() {
8610
+ "packages/server/dist/channels/shared/i18n.js"() {
8611
8611
  "use strict";
8612
8612
  messages = {
8613
8613
  // ── /help ──
@@ -8766,7 +8766,7 @@ var init_i18n = __esm({
8766
8766
  }
8767
8767
  });
8768
8768
 
8769
- // ../server/dist/commands/skill-command.js
8769
+ // packages/server/dist/commands/skill-command.js
8770
8770
  import fs16 from "node:fs/promises";
8771
8771
  import path19 from "node:path";
8772
8772
  async function scanDir(dir) {
@@ -8908,7 +8908,7 @@ ${body}`;
8908
8908
  }
8909
8909
  var cachedEntries;
8910
8910
  var init_skill_command = __esm({
8911
- "../server/dist/commands/skill-command.js"() {
8911
+ "packages/server/dist/commands/skill-command.js"() {
8912
8912
  "use strict";
8913
8913
  init_commands();
8914
8914
  init_agent_loader();
@@ -8919,7 +8919,7 @@ var init_skill_command = __esm({
8919
8919
  }
8920
8920
  });
8921
8921
 
8922
- // ../server/dist/agents/session-skill-commands.js
8922
+ // packages/server/dist/agents/session-skill-commands.js
8923
8923
  import { eq as eq5 } from "drizzle-orm";
8924
8924
  function commandVisibilityGate(d) {
8925
8925
  if (!d.verbs || d.verbs.length === 0)
@@ -8936,7 +8936,7 @@ function commandVisibilityGate(d) {
8936
8936
  }
8937
8937
  var VIS_RANK, SessionSkillCommands;
8938
8938
  var init_session_skill_commands = __esm({
8939
- "../server/dist/agents/session-skill-commands.js"() {
8939
+ "packages/server/dist/agents/session-skill-commands.js"() {
8940
8940
  "use strict";
8941
8941
  init_db();
8942
8942
  init_schema();
@@ -9003,12 +9003,12 @@ var init_session_skill_commands = __esm({
9003
9003
  }
9004
9004
  });
9005
9005
 
9006
- // ../server/dist/agents/session-state-store.js
9006
+ // packages/server/dist/agents/session-state-store.js
9007
9007
  import fsSync5 from "node:fs";
9008
9008
  import path20 from "node:path";
9009
9009
  var SessionStateStore;
9010
9010
  var init_session_state_store = __esm({
9011
- "../server/dist/agents/session-state-store.js"() {
9011
+ "packages/server/dist/agents/session-state-store.js"() {
9012
9012
  "use strict";
9013
9013
  init_session_store();
9014
9014
  SessionStateStore = class {
@@ -9072,7 +9072,7 @@ var init_session_state_store = __esm({
9072
9072
  }
9073
9073
  });
9074
9074
 
9075
- // ../server/dist/agents/session-manager.js
9075
+ // packages/server/dist/agents/session-manager.js
9076
9076
  import fsSync6 from "node:fs";
9077
9077
  import path21 from "node:path";
9078
9078
  import { eq as eq6, and as and4, isNull as isNull3, isNotNull as isNotNull2 } from "drizzle-orm";
@@ -9153,7 +9153,7 @@ function generateSessionId() {
9153
9153
  }
9154
9154
  var SessionManager;
9155
9155
  var init_session_manager = __esm({
9156
- "../server/dist/agents/session-manager.js"() {
9156
+ "packages/server/dist/agents/session-manager.js"() {
9157
9157
  "use strict";
9158
9158
  init_md_loader();
9159
9159
  init_config();
@@ -11071,11 +11071,11 @@ ${q.text}` : q.text);
11071
11071
  }
11072
11072
  });
11073
11073
 
11074
- // ../server/dist/agents/session-manager-registry.js
11074
+ // packages/server/dist/agents/session-manager-registry.js
11075
11075
  import fs17 from "node:fs";
11076
11076
  var SessionManagerRegistry;
11077
11077
  var init_session_manager_registry = __esm({
11078
- "../server/dist/agents/session-manager-registry.js"() {
11078
+ "packages/server/dist/agents/session-manager-registry.js"() {
11079
11079
  "use strict";
11080
11080
  init_session_manager();
11081
11081
  init_init();
@@ -11130,7 +11130,7 @@ var init_session_manager_registry = __esm({
11130
11130
  }
11131
11131
  });
11132
11132
 
11133
- // ../server/dist/logger.js
11133
+ // packages/server/dist/logger.js
11134
11134
  import fs18 from "node:fs";
11135
11135
  import path22 from "node:path";
11136
11136
  import { homedir as homedir11 } from "node:os";
@@ -11230,7 +11230,7 @@ function initLogger() {
11230
11230
  }
11231
11231
  var LOG_FILENAME, logDir, logFile, currentSize, LEVEL_ORDER;
11232
11232
  var init_logger = __esm({
11233
- "../server/dist/logger.js"() {
11233
+ "packages/server/dist/logger.js"() {
11234
11234
  "use strict";
11235
11235
  init_config();
11236
11236
  LOG_FILENAME = "server.log";
@@ -11241,7 +11241,7 @@ var init_logger = __esm({
11241
11241
  }
11242
11242
  });
11243
11243
 
11244
- // ../server/dist/channels/shared/commands.js
11244
+ // packages/server/dist/channels/shared/commands.js
11245
11245
  import fs19 from "node:fs";
11246
11246
  import path23 from "node:path";
11247
11247
  import os from "node:os";
@@ -11967,7 +11967,7 @@ function execWsSwitch(ctx, arg) {
11967
11967
  }
11968
11968
  var ALIASES_FILE, aliasCache, CHANNEL_LIST_LIMIT, DISPATCH_COMMANDS, NOT_ROUTED, SUBCOMMAND_ROUTES, RANK;
11969
11969
  var init_commands2 = __esm({
11970
- "../server/dist/channels/shared/commands.js"() {
11970
+ "packages/server/dist/channels/shared/commands.js"() {
11971
11971
  "use strict";
11972
11972
  init_agent_loader();
11973
11973
  init_init();
@@ -12043,7 +12043,7 @@ var init_commands2 = __esm({
12043
12043
  }
12044
12044
  });
12045
12045
 
12046
- // src/harness.ts
12046
+ // packages/cli/src/harness.ts
12047
12047
  var harness_exports = {};
12048
12048
  __export(harness_exports, {
12049
12049
  createHarness: () => createHarness,
@@ -12285,7 +12285,7 @@ async function createHarness(opts) {
12285
12285
  }
12286
12286
  var SESSION_PREFIX, USER_ID;
12287
12287
  var init_harness = __esm({
12288
- "src/harness.ts"() {
12288
+ "packages/cli/src/harness.ts"() {
12289
12289
  "use strict";
12290
12290
  init_session_manager();
12291
12291
  init_session_manager_registry();
@@ -12302,7 +12302,7 @@ var init_harness = __esm({
12302
12302
  }
12303
12303
  });
12304
12304
 
12305
- // ../server/dist/middleware/password-hash.js
12305
+ // packages/server/dist/middleware/password-hash.js
12306
12306
  var password_hash_exports = {};
12307
12307
  __export(password_hash_exports, {
12308
12308
  generateJwtSecret: () => generateJwtSecret,
@@ -12352,7 +12352,7 @@ function generateJwtSecret() {
12352
12352
  }
12353
12353
  var scryptAsync, COST, KEY_LEN;
12354
12354
  var init_password_hash = __esm({
12355
- "../server/dist/middleware/password-hash.js"() {
12355
+ "packages/server/dist/middleware/password-hash.js"() {
12356
12356
  "use strict";
12357
12357
  scryptAsync = promisify2(crypto2.scrypt);
12358
12358
  COST = { N: 16384, r: 8, p: 1 };
@@ -12360,7 +12360,7 @@ var init_password_hash = __esm({
12360
12360
  }
12361
12361
  });
12362
12362
 
12363
- // ../server/dist/setup-config.js
12363
+ // packages/server/dist/setup-config.js
12364
12364
  var setup_config_exports = {};
12365
12365
  __export(setup_config_exports, {
12366
12366
  configLeafSet: () => configLeafSet,
@@ -12401,13 +12401,13 @@ function configLeafSet(dotPath) {
12401
12401
  }
12402
12402
  var CONFIG_PATH;
12403
12403
  var init_setup_config = __esm({
12404
- "../server/dist/setup-config.js"() {
12404
+ "packages/server/dist/setup-config.js"() {
12405
12405
  "use strict";
12406
12406
  CONFIG_PATH = path25.join(homedir12(), ".halo", "secrets", "config.yaml");
12407
12407
  }
12408
12408
  });
12409
12409
 
12410
- // ../server/dist/setup-settings.js
12410
+ // packages/server/dist/setup-settings.js
12411
12411
  var setup_settings_exports = {};
12412
12412
  __export(setup_settings_exports, {
12413
12413
  maskSecret: () => maskSecret,
@@ -12486,13 +12486,13 @@ function maskSecret(value) {
12486
12486
  }
12487
12487
  var SETTINGS_PATH2;
12488
12488
  var init_setup_settings = __esm({
12489
- "../server/dist/setup-settings.js"() {
12489
+ "packages/server/dist/setup-settings.js"() {
12490
12490
  "use strict";
12491
12491
  SETTINGS_PATH2 = path26.join(homedir13(), ".halo", "secrets", "settings.yaml");
12492
12492
  }
12493
12493
  });
12494
12494
 
12495
- // ../server/dist/setup-providers.js
12495
+ // packages/server/dist/setup-providers.js
12496
12496
  var setup_providers_exports = {};
12497
12497
  __export(setup_providers_exports, {
12498
12498
  AWS_CREDENTIAL_CHAIN_PROVIDER: () => AWS_CREDENTIAL_CHAIN_PROVIDER,
@@ -12698,7 +12698,7 @@ function listRequiredSkillsWithSecrets() {
12698
12698
  }
12699
12699
  var AWS_CREDENTIAL_CHAIN_PROVIDER, REBIND_BUILTIN_AGENT_IDS, GLOBAL_AGENTS_DIR3;
12700
12700
  var init_setup_providers = __esm({
12701
- "../server/dist/setup-providers.js"() {
12701
+ "packages/server/dist/setup-providers.js"() {
12702
12702
  "use strict";
12703
12703
  init_init();
12704
12704
  init_setup_settings();
@@ -12708,7 +12708,7 @@ var init_setup_providers = __esm({
12708
12708
  }
12709
12709
  });
12710
12710
 
12711
- // src/setup-bind-provider.ts
12711
+ // packages/cli/src/setup-bind-provider.ts
12712
12712
  var setup_bind_provider_exports = {};
12713
12713
  __export(setup_bind_provider_exports, {
12714
12714
  AWS_CHAIN_PROVIDER: () => AWS_CHAIN_PROVIDER,
@@ -12748,14 +12748,14 @@ function buildBindProviderPlan(configured, currentProvider, currentProviderHasKe
12748
12748
  }
12749
12749
  var AWS_CHAIN_PROVIDER, KEEP_CURRENT;
12750
12750
  var init_setup_bind_provider = __esm({
12751
- "src/setup-bind-provider.ts"() {
12751
+ "packages/cli/src/setup-bind-provider.ts"() {
12752
12752
  "use strict";
12753
12753
  AWS_CHAIN_PROVIDER = "aws-bedrock-claude-invoke";
12754
12754
  KEEP_CURRENT = "__keep__";
12755
12755
  }
12756
12756
  });
12757
12757
 
12758
- // src/setup-prompts.ts
12758
+ // packages/cli/src/setup-prompts.ts
12759
12759
  var setup_prompts_exports = {};
12760
12760
  __export(setup_prompts_exports, {
12761
12761
  promptMultiSelect: () => promptMultiSelect,
@@ -13041,12 +13041,12 @@ function promptMultiSelectRich(question, options) {
13041
13041
  });
13042
13042
  }
13043
13043
  var init_setup_prompts = __esm({
13044
- "src/setup-prompts.ts"() {
13044
+ "packages/cli/src/setup-prompts.ts"() {
13045
13045
  "use strict";
13046
13046
  }
13047
13047
  });
13048
13048
 
13049
- // src/render-md.ts
13049
+ // packages/cli/src/render-md.ts
13050
13050
  import { marked } from "marked";
13051
13051
  import { markedTerminal } from "marked-terminal";
13052
13052
  function renderMarkdown(text5) {
@@ -13054,14 +13054,14 @@ function renderMarkdown(text5) {
13054
13054
  return rendered.replace(/\n{3,}/g, "\n\n").trimEnd();
13055
13055
  }
13056
13056
  var init_render_md = __esm({
13057
- "src/render-md.ts"() {
13057
+ "packages/cli/src/render-md.ts"() {
13058
13058
  "use strict";
13059
13059
  marked.use(markedTerminal({ reflowText: true, width: Math.min(process.stdout.columns || 80, 120) }));
13060
13060
  marked.use({ breaks: true });
13061
13061
  }
13062
13062
  });
13063
13063
 
13064
- // src/resolve-refs.ts
13064
+ // packages/cli/src/resolve-refs.ts
13065
13065
  import fs24 from "node:fs";
13066
13066
  import path28 from "node:path";
13067
13067
  function mimeFromExt(ext) {
@@ -13143,7 +13143,7 @@ ${content}
13143
13143
  }
13144
13144
  var IMAGE_EXTS, MAX_FILE_BYTES, MAX_IMAGE_BYTES, REF_PATTERN;
13145
13145
  var init_resolve_refs = __esm({
13146
- "src/resolve-refs.ts"() {
13146
+ "packages/cli/src/resolve-refs.ts"() {
13147
13147
  "use strict";
13148
13148
  IMAGE_EXTS = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".gif", ".webp", ".bmp"]);
13149
13149
  MAX_FILE_BYTES = 100 * 1024;
@@ -13152,7 +13152,7 @@ var init_resolve_refs = __esm({
13152
13152
  }
13153
13153
  });
13154
13154
 
13155
- // src/format-usage.ts
13155
+ // packages/cli/src/format-usage.ts
13156
13156
  function fmtK(n) {
13157
13157
  return `${(n / 1e3).toFixed(1)}K`;
13158
13158
  }
@@ -13196,7 +13196,7 @@ function formatUsageLine(event) {
13196
13196
  }
13197
13197
  var ANSI;
13198
13198
  var init_format_usage = __esm({
13199
- "src/format-usage.ts"() {
13199
+ "packages/cli/src/format-usage.ts"() {
13200
13200
  "use strict";
13201
13201
  ANSI = {
13202
13202
  reset: "\x1B[0m",
@@ -13210,7 +13210,7 @@ var init_format_usage = __esm({
13210
13210
  }
13211
13211
  });
13212
13212
 
13213
- // src/tui/components/banner.tsx
13213
+ // packages/cli/src/tui/components/banner.tsx
13214
13214
  import { Box, Text } from "ink";
13215
13215
  import { jsx } from "react/jsx-runtime";
13216
13216
  function Banner() {
@@ -13218,7 +13218,7 @@ function Banner() {
13218
13218
  }
13219
13219
  var LINES, COLORS;
13220
13220
  var init_banner = __esm({
13221
- "src/tui/components/banner.tsx"() {
13221
+ "packages/cli/src/tui/components/banner.tsx"() {
13222
13222
  "use strict";
13223
13223
  LINES = [
13224
13224
  " \u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
@@ -13232,7 +13232,7 @@ var init_banner = __esm({
13232
13232
  }
13233
13233
  });
13234
13234
 
13235
- // src/tui/components/messages.tsx
13235
+ // packages/cli/src/tui/components/messages.tsx
13236
13236
  import { Box as Box2, Static, Text as Text2 } from "ink";
13237
13237
  import { jsx as jsx2, jsxs } from "react/jsx-runtime";
13238
13238
  function Messages({ blocks }) {
@@ -13290,7 +13290,7 @@ function Block({ block }) {
13290
13290
  }
13291
13291
  var BANNER_ID;
13292
13292
  var init_messages = __esm({
13293
- "src/tui/components/messages.tsx"() {
13293
+ "packages/cli/src/tui/components/messages.tsx"() {
13294
13294
  "use strict";
13295
13295
  init_format_usage();
13296
13296
  init_banner();
@@ -13298,7 +13298,7 @@ var init_messages = __esm({
13298
13298
  }
13299
13299
  });
13300
13300
 
13301
- // src/tui/components/streaming.tsx
13301
+ // packages/cli/src/tui/components/streaming.tsx
13302
13302
  import { useEffect, useState } from "react";
13303
13303
  import { Box as Box3, Text as Text3 } from "ink";
13304
13304
  import Spinner from "ink-spinner";
@@ -13347,12 +13347,12 @@ function Streaming({ spinnerLabel, liveText, liveThinking, activeSubs, turnStart
13347
13347
  ] });
13348
13348
  }
13349
13349
  var init_streaming = __esm({
13350
- "src/tui/components/streaming.tsx"() {
13350
+ "packages/cli/src/tui/components/streaming.tsx"() {
13351
13351
  "use strict";
13352
13352
  }
13353
13353
  });
13354
13354
 
13355
- // src/tui/history.ts
13355
+ // packages/cli/src/tui/history.ts
13356
13356
  import fs25 from "node:fs";
13357
13357
  import path29 from "node:path";
13358
13358
  import os2 from "node:os";
@@ -13378,14 +13378,14 @@ function appendHistory(entry) {
13378
13378
  }
13379
13379
  var HISTORY_FILE, MAX_ENTRIES;
13380
13380
  var init_history = __esm({
13381
- "src/tui/history.ts"() {
13381
+ "packages/cli/src/tui/history.ts"() {
13382
13382
  "use strict";
13383
13383
  HISTORY_FILE = path29.join(os2.homedir(), ".halo", "global", "tui-history.json");
13384
13384
  MAX_ENTRIES = 100;
13385
13385
  }
13386
13386
  });
13387
13387
 
13388
- // src/tui/components/status-bar.tsx
13388
+ // packages/cli/src/tui/components/status-bar.tsx
13389
13389
  import { Box as Box4, Text as Text4 } from "ink";
13390
13390
  import { Fragment, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
13391
13391
  function shortModel(modelId) {
@@ -13421,12 +13421,12 @@ function StatusBar({ agentName, modelId, contextPercent, workspace, sessionId, v
13421
13421
  ] });
13422
13422
  }
13423
13423
  var init_status_bar = __esm({
13424
- "src/tui/components/status-bar.tsx"() {
13424
+ "packages/cli/src/tui/components/status-bar.tsx"() {
13425
13425
  "use strict";
13426
13426
  }
13427
13427
  });
13428
13428
 
13429
- // src/tui/components/slash-suggest.tsx
13429
+ // packages/cli/src/tui/components/slash-suggest.tsx
13430
13430
  import { Box as Box5, Text as Text5 } from "ink";
13431
13431
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
13432
13432
  function SlashSuggest({ items, selectedIdx, maxWidth = 80 }) {
@@ -13453,12 +13453,12 @@ function SlashSuggest({ items, selectedIdx, maxWidth = 80 }) {
13453
13453
  ] });
13454
13454
  }
13455
13455
  var init_slash_suggest = __esm({
13456
- "src/tui/components/slash-suggest.tsx"() {
13456
+ "packages/cli/src/tui/components/slash-suggest.tsx"() {
13457
13457
  "use strict";
13458
13458
  }
13459
13459
  });
13460
13460
 
13461
- // src/tui/components/path-suggest.tsx
13461
+ // packages/cli/src/tui/components/path-suggest.tsx
13462
13462
  import { Box as Box6, Text as Text6 } from "ink";
13463
13463
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
13464
13464
  function PathSuggest({ items, selectedIdx, cwdLabel }) {
@@ -13485,12 +13485,12 @@ function PathSuggest({ items, selectedIdx, cwdLabel }) {
13485
13485
  ] });
13486
13486
  }
13487
13487
  var init_path_suggest = __esm({
13488
- "src/tui/components/path-suggest.tsx"() {
13488
+ "packages/cli/src/tui/components/path-suggest.tsx"() {
13489
13489
  "use strict";
13490
13490
  }
13491
13491
  });
13492
13492
 
13493
- // src/tui/path-suggest-engine.ts
13493
+ // packages/cli/src/tui/path-suggest-engine.ts
13494
13494
  import fs26 from "node:fs";
13495
13495
  import path30 from "node:path";
13496
13496
  function detectActiveRef(value) {
@@ -13577,13 +13577,13 @@ function applyPathPick(value, ref, pick) {
13577
13577
  }
13578
13578
  var IMAGE_EXTS2;
13579
13579
  var init_path_suggest_engine = __esm({
13580
- "src/tui/path-suggest-engine.ts"() {
13580
+ "packages/cli/src/tui/path-suggest-engine.ts"() {
13581
13581
  "use strict";
13582
13582
  IMAGE_EXTS2 = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".gif", ".webp", ".bmp"]);
13583
13583
  }
13584
13584
  });
13585
13585
 
13586
- // src/tui/line-editor.ts
13586
+ // packages/cli/src/tui/line-editor.ts
13587
13587
  function toGraphemes(s) {
13588
13588
  if (s === "") return [];
13589
13589
  return [...segmenter.segment(s)].map((seg) => seg.segment);
@@ -13637,13 +13637,13 @@ function deleteToEnd(e) {
13637
13637
  }
13638
13638
  var segmenter;
13639
13639
  var init_line_editor = __esm({
13640
- "src/tui/line-editor.ts"() {
13640
+ "packages/cli/src/tui/line-editor.ts"() {
13641
13641
  "use strict";
13642
13642
  segmenter = new Intl.Segmenter();
13643
13643
  }
13644
13644
  });
13645
13645
 
13646
- // src/tui/components/text-input.tsx
13646
+ // packages/cli/src/tui/components/text-input.tsx
13647
13647
  import { Text as Text7 } from "ink";
13648
13648
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
13649
13649
  function TextInputView({ value, cursor, placeholder }) {
@@ -13668,13 +13668,13 @@ function TextInputView({ value, cursor, placeholder }) {
13668
13668
  ] });
13669
13669
  }
13670
13670
  var init_text_input = __esm({
13671
- "src/tui/components/text-input.tsx"() {
13671
+ "packages/cli/src/tui/components/text-input.tsx"() {
13672
13672
  "use strict";
13673
13673
  init_line_editor();
13674
13674
  }
13675
13675
  });
13676
13676
 
13677
- // src/tui/components/input-box.tsx
13677
+ // packages/cli/src/tui/components/input-box.tsx
13678
13678
  import { useState as useState2, useEffect as useEffect2, useMemo, useRef } from "react";
13679
13679
  import { Box as Box7, Text as Text8, useInput, usePaste } from "ink";
13680
13680
  import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
@@ -13921,7 +13921,7 @@ function InputBox({ enabled, placeholder, history, onSubmit, hint, commands = []
13921
13921
  ] });
13922
13922
  }
13923
13923
  var init_input_box = __esm({
13924
- "src/tui/components/input-box.tsx"() {
13924
+ "packages/cli/src/tui/components/input-box.tsx"() {
13925
13925
  "use strict";
13926
13926
  init_slash_suggest();
13927
13927
  init_path_suggest();
@@ -13931,7 +13931,7 @@ var init_input_box = __esm({
13931
13931
  }
13932
13932
  });
13933
13933
 
13934
- // src/tui/components/log-navigator.tsx
13934
+ // packages/cli/src/tui/components/log-navigator.tsx
13935
13935
  import { useState as useState3, useMemo as useMemo2, useEffect as useEffect3 } from "react";
13936
13936
  import { Box as Box8, Text as Text9, useInput as useInput2 } from "ink";
13937
13937
  import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
@@ -14010,12 +14010,12 @@ function LogNavigator({ tree, onPick, onCancel }) {
14010
14010
  ] });
14011
14011
  }
14012
14012
  var init_log_navigator = __esm({
14013
- "src/tui/components/log-navigator.tsx"() {
14013
+ "packages/cli/src/tui/components/log-navigator.tsx"() {
14014
14014
  "use strict";
14015
14015
  }
14016
14016
  });
14017
14017
 
14018
- // src/tui/components/log-viewer.tsx
14018
+ // packages/cli/src/tui/components/log-viewer.tsx
14019
14019
  import { useState as useState4, useMemo as useMemo3, useEffect as useEffect4, useRef as useRef2 } from "react";
14020
14020
  import { Box as Box9, Text as Text10, useInput as useInput3, useStdout } from "ink";
14021
14021
  import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -14099,13 +14099,13 @@ function truncateForCols(s, cols) {
14099
14099
  }
14100
14100
  var ANSI_RE;
14101
14101
  var init_log_viewer = __esm({
14102
- "src/tui/components/log-viewer.tsx"() {
14102
+ "packages/cli/src/tui/components/log-viewer.tsx"() {
14103
14103
  "use strict";
14104
14104
  ANSI_RE = /\x1b\[[0-9;]*m/g;
14105
14105
  }
14106
14106
  });
14107
14107
 
14108
- // src/tui/app.tsx
14108
+ // packages/cli/src/tui/app.tsx
14109
14109
  import { useEffect as useEffect5, useMemo as useMemo4, useReducer, useState as useState5, useRef as useRef3 } from "react";
14110
14110
  import { Box as Box10, useApp, useInput as useInput4 } from "ink";
14111
14111
  import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
@@ -14813,7 +14813,7 @@ ${lines.join("\n")}` });
14813
14813
  }
14814
14814
  var MAX_CONTEXT_TOKENS_FALLBACK, blockSeq, ANSI2;
14815
14815
  var init_app = __esm({
14816
- "src/tui/app.tsx"() {
14816
+ "packages/cli/src/tui/app.tsx"() {
14817
14817
  "use strict";
14818
14818
  init_render_md();
14819
14819
  init_resolve_refs();
@@ -14840,7 +14840,7 @@ var init_app = __esm({
14840
14840
  }
14841
14841
  });
14842
14842
 
14843
- // src/tui.tsx
14843
+ // packages/cli/src/tui.tsx
14844
14844
  var tui_exports = {};
14845
14845
  __export(tui_exports, {
14846
14846
  runTui: () => runTui
@@ -14855,13 +14855,13 @@ async function runTui(harness, opts = {}) {
14855
14855
  await instance.waitUntilExit();
14856
14856
  }
14857
14857
  var init_tui = __esm({
14858
- "src/tui.tsx"() {
14858
+ "packages/cli/src/tui.tsx"() {
14859
14859
  "use strict";
14860
14860
  init_app();
14861
14861
  }
14862
14862
  });
14863
14863
 
14864
- // src/cli.ts
14864
+ // packages/cli/src/cli.ts
14865
14865
  var cli_exports = {};
14866
14866
  __export(cli_exports, {
14867
14867
  runCli: () => runCli
@@ -15043,7 +15043,7 @@ ${tag}${formatUsageLine(event)}
15043
15043
  return errorText ? 1 : 0;
15044
15044
  }
15045
15045
  var init_cli = __esm({
15046
- "src/cli.ts"() {
15046
+ "packages/cli/src/cli.ts"() {
15047
15047
  "use strict";
15048
15048
  init_render_md();
15049
15049
  init_resolve_refs();
@@ -15051,13 +15051,13 @@ var init_cli = __esm({
15051
15051
  }
15052
15052
  });
15053
15053
 
15054
- // ../core/dist/workspace/workspace.js
15054
+ // packages/core/dist/workspace/workspace.js
15055
15055
  import { readFile, writeFile, mkdir, readdir, access } from "node:fs/promises";
15056
15056
  import { realpathSync as realpathSync2 } from "node:fs";
15057
15057
  import { resolve, relative, join, isAbsolute, sep } from "node:path";
15058
15058
  var WorkspaceError, SKIP_DIRS2, Workspace;
15059
15059
  var init_workspace = __esm({
15060
- "../core/dist/workspace/workspace.js"() {
15060
+ "packages/core/dist/workspace/workspace.js"() {
15061
15061
  "use strict";
15062
15062
  WorkspaceError = class extends Error {
15063
15063
  constructor(message) {
@@ -15166,13 +15166,13 @@ None yet.
15166
15166
  }
15167
15167
  });
15168
15168
 
15169
- // ../core/dist/workspace/git-manager.js
15169
+ // packages/core/dist/workspace/git-manager.js
15170
15170
  import path31 from "node:path";
15171
15171
  import { promises as fs27 } from "node:fs";
15172
15172
  import simpleGit from "simple-git";
15173
15173
  var GitManagerError, GitManager;
15174
15174
  var init_git_manager = __esm({
15175
- "../core/dist/workspace/git-manager.js"() {
15175
+ "packages/core/dist/workspace/git-manager.js"() {
15176
15176
  "use strict";
15177
15177
  GitManagerError = class extends Error {
15178
15178
  constructor(message) {
@@ -15539,16 +15539,16 @@ var init_git_manager = __esm({
15539
15539
  }
15540
15540
  });
15541
15541
 
15542
- // ../core/dist/index.js
15542
+ // packages/core/dist/index.js
15543
15543
  var init_dist = __esm({
15544
- "../core/dist/index.js"() {
15544
+ "packages/core/dist/index.js"() {
15545
15545
  "use strict";
15546
15546
  init_workspace();
15547
15547
  init_git_manager();
15548
15548
  }
15549
15549
  });
15550
15550
 
15551
- // ../server/dist/channels/shared/media.js
15551
+ // packages/server/dist/channels/shared/media.js
15552
15552
  import path32 from "node:path";
15553
15553
  import os3 from "node:os";
15554
15554
  function tempDir() {
@@ -15571,7 +15571,7 @@ function classifyMedia(filePath) {
15571
15571
  }
15572
15572
  var IMAGE_EXTS3, VIDEO_EXTS, VOICE_EXTS;
15573
15573
  var init_media = __esm({
15574
- "../server/dist/channels/shared/media.js"() {
15574
+ "packages/server/dist/channels/shared/media.js"() {
15575
15575
  "use strict";
15576
15576
  IMAGE_EXTS3 = /* @__PURE__ */ new Set([".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp"]);
15577
15577
  VIDEO_EXTS = /* @__PURE__ */ new Set([".mp4", ".mov", ".m4v", ".webm", ".avi"]);
@@ -15579,7 +15579,7 @@ var init_media = __esm({
15579
15579
  }
15580
15580
  });
15581
15581
 
15582
- // ../server/dist/routes/files.js
15582
+ // packages/server/dist/routes/files.js
15583
15583
  import { Hono } from "hono";
15584
15584
  import fs28 from "node:fs/promises";
15585
15585
  import { createReadStream } from "node:fs";
@@ -16171,14 +16171,14 @@ function createFileRoutes() {
16171
16171
  return app2;
16172
16172
  }
16173
16173
  var init_files = __esm({
16174
- "../server/dist/routes/files.js"() {
16174
+ "packages/server/dist/routes/files.js"() {
16175
16175
  "use strict";
16176
16176
  init_dist();
16177
16177
  init_media();
16178
16178
  }
16179
16179
  });
16180
16180
 
16181
- // ../server/dist/git-credentials.js
16181
+ // packages/server/dist/git-credentials.js
16182
16182
  import fs29 from "node:fs";
16183
16183
  import path34 from "node:path";
16184
16184
  import { homedir as homedir16 } from "node:os";
@@ -16253,13 +16253,13 @@ function deleteGitCredential(host) {
16253
16253
  }
16254
16254
  var GIT_CREDENTIALS_PATH;
16255
16255
  var init_git_credentials = __esm({
16256
- "../server/dist/git-credentials.js"() {
16256
+ "packages/server/dist/git-credentials.js"() {
16257
16257
  "use strict";
16258
16258
  GIT_CREDENTIALS_PATH = path34.join(homedir16(), ".git-credentials");
16259
16259
  }
16260
16260
  });
16261
16261
 
16262
- // ../server/dist/git-ssh.js
16262
+ // packages/server/dist/git-ssh.js
16263
16263
  import fs30 from "node:fs";
16264
16264
  import os4 from "node:os";
16265
16265
  import path35 from "node:path";
@@ -16436,7 +16436,7 @@ function getRemoteProtocol(projectRoot) {
16436
16436
  }
16437
16437
  var SSH_DIR, NON_KEY_NAMES, ownedAgentPid, ASKPASS_SCRIPT;
16438
16438
  var init_git_ssh = __esm({
16439
- "../server/dist/git-ssh.js"() {
16439
+ "packages/server/dist/git-ssh.js"() {
16440
16440
  "use strict";
16441
16441
  SSH_DIR = path35.join(os4.homedir(), ".ssh");
16442
16442
  NON_KEY_NAMES = /* @__PURE__ */ new Set(["known_hosts", "known_hosts2", "authorized_keys", "config"]);
@@ -16449,7 +16449,7 @@ printf '%s\\n' "$HALO_SSH_PASSPHRASE"
16449
16449
  }
16450
16450
  });
16451
16451
 
16452
- // ../server/dist/routes/git.js
16452
+ // packages/server/dist/routes/git.js
16453
16453
  import { Hono as Hono2 } from "hono";
16454
16454
  import fs31 from "node:fs/promises";
16455
16455
  import os5 from "node:os";
@@ -16803,7 +16803,7 @@ function createGitRoutes() {
16803
16803
  return app2;
16804
16804
  }
16805
16805
  var init_git = __esm({
16806
- "../server/dist/routes/git.js"() {
16806
+ "packages/server/dist/routes/git.js"() {
16807
16807
  "use strict";
16808
16808
  init_dist();
16809
16809
  init_git_credentials();
@@ -16812,7 +16812,7 @@ var init_git = __esm({
16812
16812
  }
16813
16813
  });
16814
16814
 
16815
- // ../server/dist/routes/agent-configs.js
16815
+ // packages/server/dist/routes/agent-configs.js
16816
16816
  import { Hono as Hono3 } from "hono";
16817
16817
  import fs32 from "node:fs/promises";
16818
16818
  import path37 from "node:path";
@@ -17305,7 +17305,7 @@ ${body.description ?? ""}
17305
17305
  }
17306
17306
  var _cachedTools, GLOBAL_AGENTS_DIR4, FALLBACK_SCAFFOLD_PROVIDER, _yamlCache;
17307
17307
  var init_agent_configs = __esm({
17308
- "../server/dist/routes/agent-configs.js"() {
17308
+ "packages/server/dist/routes/agent-configs.js"() {
17309
17309
  "use strict";
17310
17310
  init_workspace_tools();
17311
17311
  init_draft_tool();
@@ -17319,7 +17319,7 @@ var init_agent_configs = __esm({
17319
17319
  }
17320
17320
  });
17321
17321
 
17322
- // ../server/dist/routes/skills.js
17322
+ // packages/server/dist/routes/skills.js
17323
17323
  import { Hono as Hono4 } from "hono";
17324
17324
  import fs33 from "node:fs/promises";
17325
17325
  import path38 from "node:path";
@@ -17517,7 +17517,7 @@ function createSkillRoutes() {
17517
17517
  }
17518
17518
  var GLOBAL_SETTINGS_PATH, _skillMdCache;
17519
17519
  var init_skills = __esm({
17520
- "../server/dist/routes/skills.js"() {
17520
+ "packages/server/dist/routes/skills.js"() {
17521
17521
  "use strict";
17522
17522
  init_agent_loader();
17523
17523
  init_db();
@@ -17526,7 +17526,7 @@ var init_skills = __esm({
17526
17526
  }
17527
17527
  });
17528
17528
 
17529
- // ../server/dist/routes/settings.js
17529
+ // packages/server/dist/routes/settings.js
17530
17530
  import { Hono as Hono5 } from "hono";
17531
17531
  import fs34 from "node:fs/promises";
17532
17532
  import path39 from "node:path";
@@ -17779,7 +17779,7 @@ function createSettingsRoutes() {
17779
17779
  }
17780
17780
  var GLOBAL_SETTINGS_PATH2, _changeListeners;
17781
17781
  var init_settings = __esm({
17782
- "../server/dist/routes/settings.js"() {
17782
+ "packages/server/dist/routes/settings.js"() {
17783
17783
  "use strict";
17784
17784
  init_settings_schema();
17785
17785
  GLOBAL_SETTINGS_PATH2 = path39.join(homedir19(), ".halo", "secrets", "settings.yaml");
@@ -17787,7 +17787,7 @@ var init_settings = __esm({
17787
17787
  }
17788
17788
  });
17789
17789
 
17790
- // ../server/dist/paths.js
17790
+ // packages/server/dist/paths.js
17791
17791
  import path40 from "node:path";
17792
17792
  import { homedir as homedir20 } from "node:os";
17793
17793
  function haloHome() {
@@ -17818,12 +17818,12 @@ function evoApplyLogFile(applyId) {
17818
17818
  return path40.join(evoLogsDir(), `apply-${applyId}.log`);
17819
17819
  }
17820
17820
  var init_paths = __esm({
17821
- "../server/dist/paths.js"() {
17821
+ "packages/server/dist/paths.js"() {
17822
17822
  "use strict";
17823
17823
  }
17824
17824
  });
17825
17825
 
17826
- // ../server/dist/evolution/archive.js
17826
+ // packages/server/dist/evolution/archive.js
17827
17827
  import fs35 from "node:fs";
17828
17828
  import path41 from "node:path";
17829
17829
  import { spawnSync as spawnSync3 } from "node:child_process";
@@ -17967,7 +17967,7 @@ function stopArchiveDaemon() {
17967
17967
  }
17968
17968
  var TERMINAL_RUN_STATUSES, TERMINAL_APPLY_STATUSES, DAY_MS, ARCHIVE_AFTER_MS, PURGE_AFTER_MS, _archiveTimer;
17969
17969
  var init_archive = __esm({
17970
- "../server/dist/evolution/archive.js"() {
17970
+ "packages/server/dist/evolution/archive.js"() {
17971
17971
  "use strict";
17972
17972
  init_evo_db();
17973
17973
  init_paths();
@@ -17980,7 +17980,7 @@ var init_archive = __esm({
17980
17980
  }
17981
17981
  });
17982
17982
 
17983
- // ../server/dist/routes/evolution.js
17983
+ // packages/server/dist/routes/evolution.js
17984
17984
  import { Hono as Hono6 } from "hono";
17985
17985
  import { eq as eq8, desc as desc2, asc, inArray as inArray2, lt as lt3, and as and6, or, sql } from "drizzle-orm";
17986
17986
  import fs36 from "node:fs/promises";
@@ -18240,7 +18240,7 @@ function extractText(content) {
18240
18240
  }
18241
18241
  var UNDELETABLE_RUN_STATUSES;
18242
18242
  var init_evolution = __esm({
18243
- "../server/dist/routes/evolution.js"() {
18243
+ "packages/server/dist/routes/evolution.js"() {
18244
18244
  "use strict";
18245
18245
  init_evo_db();
18246
18246
  init_archive();
@@ -18249,7 +18249,7 @@ var init_evolution = __esm({
18249
18249
  }
18250
18250
  });
18251
18251
 
18252
- // ../server/dist/routes/sessions.js
18252
+ // packages/server/dist/routes/sessions.js
18253
18253
  import { Hono as Hono7 } from "hono";
18254
18254
  import { eq as eq9, desc as desc3 } from "drizzle-orm";
18255
18255
  function rawId() {
@@ -18535,7 +18535,7 @@ function createSessionRoutes(smRegistry) {
18535
18535
  }
18536
18536
  var msgCounter2;
18537
18537
  var init_sessions = __esm({
18538
- "../server/dist/routes/sessions.js"() {
18538
+ "packages/server/dist/routes/sessions.js"() {
18539
18539
  "use strict";
18540
18540
  init_db();
18541
18541
  init_schema();
@@ -18546,7 +18546,7 @@ var init_sessions = __esm({
18546
18546
  }
18547
18547
  });
18548
18548
 
18549
- // ../server/dist/db/channel-db.js
18549
+ // packages/server/dist/db/channel-db.js
18550
18550
  import Database3 from "better-sqlite3";
18551
18551
  import { drizzle as drizzle3 } from "drizzle-orm/better-sqlite3";
18552
18552
  import { sqliteTable as sqliteTable3, text as text3, integer as integer3 } from "drizzle-orm/sqlite-core";
@@ -18571,7 +18571,7 @@ function getChannelDb() {
18571
18571
  }
18572
18572
  var channelAccounts, CREATE_SQL2, _channelDb;
18573
18573
  var init_channel_db = __esm({
18574
- "../server/dist/db/channel-db.js"() {
18574
+ "packages/server/dist/db/channel-db.js"() {
18575
18575
  "use strict";
18576
18576
  channelAccounts = sqliteTable3("channel_accounts", {
18577
18577
  accountId: text3("account_id").primaryKey(),
@@ -18604,7 +18604,7 @@ CREATE INDEX IF NOT EXISTS idx_channel_accounts_type ON channel_accounts(channel
18604
18604
  }
18605
18605
  });
18606
18606
 
18607
- // ../server/dist/channels/shared/accounts.js
18607
+ // packages/server/dist/channels/shared/accounts.js
18608
18608
  import fs38 from "node:fs";
18609
18609
  import { eq as eq10, and as and7 } from "drizzle-orm";
18610
18610
  function resolveAccountWorkspace(account) {
@@ -18696,7 +18696,7 @@ function deleteAccount(db, accountId) {
18696
18696
  }
18697
18697
  var _lastActiveChatCache;
18698
18698
  var init_accounts = __esm({
18699
- "../server/dist/channels/shared/accounts.js"() {
18699
+ "packages/server/dist/channels/shared/accounts.js"() {
18700
18700
  "use strict";
18701
18701
  init_channel_db();
18702
18702
  init_init();
@@ -18704,7 +18704,7 @@ var init_accounts = __esm({
18704
18704
  }
18705
18705
  });
18706
18706
 
18707
- // ../server/dist/channels/web/accounts.js
18707
+ // packages/server/dist/channels/web/accounts.js
18708
18708
  function toWeb(a) {
18709
18709
  const c = a.config;
18710
18710
  return {
@@ -18767,14 +18767,14 @@ function deleteAccount2(db, accountId) {
18767
18767
  }
18768
18768
  var CH;
18769
18769
  var init_accounts2 = __esm({
18770
- "../server/dist/channels/web/accounts.js"() {
18770
+ "packages/server/dist/channels/web/accounts.js"() {
18771
18771
  "use strict";
18772
18772
  init_accounts();
18773
18773
  CH = "web";
18774
18774
  }
18775
18775
  });
18776
18776
 
18777
- // ../server/dist/middleware/brute-force.js
18777
+ // packages/server/dist/middleware/brute-force.js
18778
18778
  import { getConnInfo } from "@hono/node-server/conninfo";
18779
18779
  function bucket(name) {
18780
18780
  let b = buckets.get(name);
@@ -18825,7 +18825,7 @@ function clearFailures(bucketName, ip) {
18825
18825
  }
18826
18826
  var MAX_ATTEMPTS, LOCKOUT_MS, buckets;
18827
18827
  var init_brute_force = __esm({
18828
- "../server/dist/middleware/brute-force.js"() {
18828
+ "packages/server/dist/middleware/brute-force.js"() {
18829
18829
  "use strict";
18830
18830
  init_config();
18831
18831
  MAX_ATTEMPTS = 5;
@@ -18834,7 +18834,7 @@ var init_brute_force = __esm({
18834
18834
  }
18835
18835
  });
18836
18836
 
18837
- // ../server/dist/routes/show.js
18837
+ // packages/server/dist/routes/show.js
18838
18838
  import { Hono as Hono8 } from "hono";
18839
18839
  import fs39 from "node:fs";
18840
18840
  import path44 from "node:path";
@@ -19232,7 +19232,7 @@ function createShowRoutes(registry2) {
19232
19232
  }
19233
19233
  var TOKEN_BUCKET, SESSIONS_PER_WS, _skillCache, _metaCache, _roReaders, SESSION_LOG_MAX_MSGS, _birthCache;
19234
19234
  var init_show = __esm({
19235
- "../server/dist/routes/show.js"() {
19235
+ "packages/server/dist/routes/show.js"() {
19236
19236
  "use strict";
19237
19237
  init_channel_db();
19238
19238
  init_accounts2();
@@ -19249,7 +19249,7 @@ var init_show = __esm({
19249
19249
  }
19250
19250
  });
19251
19251
 
19252
- // ../server/dist/routes/metrics.js
19252
+ // packages/server/dist/routes/metrics.js
19253
19253
  import { Hono as Hono9 } from "hono";
19254
19254
  import fs40 from "node:fs";
19255
19255
  function family(name, type, help, samples) {
@@ -19354,7 +19354,7 @@ function createMetricsRoutes(registry2) {
19354
19354
  }
19355
19355
  var TOKEN_BUCKET2, SESSIONS_PER_WS2;
19356
19356
  var init_metrics = __esm({
19357
- "../server/dist/routes/metrics.js"() {
19357
+ "packages/server/dist/routes/metrics.js"() {
19358
19358
  "use strict";
19359
19359
  init_channel_db();
19360
19360
  init_accounts2();
@@ -19365,7 +19365,7 @@ var init_metrics = __esm({
19365
19365
  }
19366
19366
  });
19367
19367
 
19368
- // ../server/dist/routes/commands.js
19368
+ // packages/server/dist/routes/commands.js
19369
19369
  import { Hono as Hono10 } from "hono";
19370
19370
  function createCommandRoutes(registry2, smRegistry) {
19371
19371
  const app2 = new Hono10();
@@ -19390,12 +19390,12 @@ function createCommandRoutes(registry2, smRegistry) {
19390
19390
  return app2;
19391
19391
  }
19392
19392
  var init_commands3 = __esm({
19393
- "../server/dist/routes/commands.js"() {
19393
+ "packages/server/dist/routes/commands.js"() {
19394
19394
  "use strict";
19395
19395
  }
19396
19396
  });
19397
19397
 
19398
- // ../server/dist/sessions/session-types.js
19398
+ // packages/server/dist/sessions/session-types.js
19399
19399
  function inferMessageType(msg) {
19400
19400
  if (msg.type)
19401
19401
  return msg.type;
@@ -19414,12 +19414,12 @@ function inferMessageType(msg) {
19414
19414
  return "notification";
19415
19415
  }
19416
19416
  var init_session_types = __esm({
19417
- "../server/dist/sessions/session-types.js"() {
19417
+ "packages/server/dist/sessions/session-types.js"() {
19418
19418
  "use strict";
19419
19419
  }
19420
19420
  });
19421
19421
 
19422
- // ../server/dist/routes/agentcore.js
19422
+ // packages/server/dist/routes/agentcore.js
19423
19423
  import { Hono as Hono11 } from "hono";
19424
19424
  import path45 from "node:path";
19425
19425
  import fs41 from "node:fs";
@@ -19669,7 +19669,7 @@ ${text5}`);
19669
19669
  }
19670
19670
  var SESSION_HEADER, activeOverrides;
19671
19671
  var init_agentcore = __esm({
19672
- "../server/dist/routes/agentcore.js"() {
19672
+ "packages/server/dist/routes/agentcore.js"() {
19673
19673
  "use strict";
19674
19674
  init_commands2();
19675
19675
  init_ui_log_builder();
@@ -19679,7 +19679,7 @@ var init_agentcore = __esm({
19679
19679
  }
19680
19680
  });
19681
19681
 
19682
- // ../server/dist/ws/file-watcher.js
19682
+ // packages/server/dist/ws/file-watcher.js
19683
19683
  import fs42 from "node:fs";
19684
19684
  import path46 from "node:path";
19685
19685
  function enqueueNativeOp(op) {
@@ -19701,7 +19701,7 @@ function isUnwatchablePath(absPath) {
19701
19701
  }
19702
19702
  var IGNORED_SEGMENTS, IS_WIN32, IGNORED_SEGMENT_SET, NATIVE_IGNORE, nativeOpChain, WorkspaceWatcher;
19703
19703
  var init_file_watcher = __esm({
19704
- "../server/dist/ws/file-watcher.js"() {
19704
+ "packages/server/dist/ws/file-watcher.js"() {
19705
19705
  "use strict";
19706
19706
  IGNORED_SEGMENTS = [
19707
19707
  // VCS
@@ -19923,12 +19923,12 @@ var init_file_watcher = __esm({
19923
19923
  }
19924
19924
  });
19925
19925
 
19926
- // ../server/dist/ws/git-dir-watcher.js
19926
+ // packages/server/dist/ws/git-dir-watcher.js
19927
19927
  import fs43 from "node:fs";
19928
19928
  import path47 from "node:path";
19929
19929
  var GitDirWatcher;
19930
19930
  var init_git_dir_watcher = __esm({
19931
- "../server/dist/ws/git-dir-watcher.js"() {
19931
+ "packages/server/dist/ws/git-dir-watcher.js"() {
19932
19932
  "use strict";
19933
19933
  GitDirWatcher = class {
19934
19934
  watcher = null;
@@ -20047,7 +20047,7 @@ var init_git_dir_watcher = __esm({
20047
20047
  }
20048
20048
  });
20049
20049
 
20050
- // ../server/dist/ws/event-processor.js
20050
+ // packages/server/dist/ws/event-processor.js
20051
20051
  function sendJson(ws, data) {
20052
20052
  if (ws.readyState === ws.OPEN) {
20053
20053
  try {
@@ -20146,13 +20146,13 @@ function bufferDetachedNotification(event, pendingEvents) {
20146
20146
  }
20147
20147
  }
20148
20148
  var init_event_processor = __esm({
20149
- "../server/dist/ws/event-processor.js"() {
20149
+ "packages/server/dist/ws/event-processor.js"() {
20150
20150
  "use strict";
20151
20151
  init_ui_log_builder();
20152
20152
  }
20153
20153
  });
20154
20154
 
20155
- // ../server/dist/ws/terminal-manager.js
20155
+ // packages/server/dist/ws/terminal-manager.js
20156
20156
  import { homedir as homedir22 } from "node:os";
20157
20157
  import { basename } from "node:path";
20158
20158
  import { createRequire } from "node:module";
@@ -20183,7 +20183,7 @@ function attachListenersOnce(t2) {
20183
20183
  }
20184
20184
  var requireFromHere, ptyModule, TERMINAL_GRACE_MS, terminals, TerminalManager;
20185
20185
  var init_terminal_manager = __esm({
20186
- "../server/dist/ws/terminal-manager.js"() {
20186
+ "packages/server/dist/ws/terminal-manager.js"() {
20187
20187
  "use strict";
20188
20188
  init_config();
20189
20189
  init_event_processor();
@@ -20316,7 +20316,7 @@ var init_terminal_manager = __esm({
20316
20316
  }
20317
20317
  });
20318
20318
 
20319
- // ../server/dist/ws/handler.js
20319
+ // packages/server/dist/ws/handler.js
20320
20320
  import path48 from "node:path";
20321
20321
  function setupWebSocketHandler(deps) {
20322
20322
  const { wss: wss2, registry: registry2 } = deps;
@@ -20905,7 +20905,7 @@ ${msg.message}` : markers.join("\n");
20905
20905
  }
20906
20906
  var detachedSessions;
20907
20907
  var init_handler = __esm({
20908
- "../server/dist/ws/handler.js"() {
20908
+ "packages/server/dist/ws/handler.js"() {
20909
20909
  "use strict";
20910
20910
  init_ui_log_builder();
20911
20911
  init_config();
@@ -20920,7 +20920,7 @@ var init_handler = __esm({
20920
20920
  }
20921
20921
  });
20922
20922
 
20923
- // ../server/dist/db/cron-db.js
20923
+ // packages/server/dist/db/cron-db.js
20924
20924
  import Database5 from "better-sqlite3";
20925
20925
  import { drizzle as drizzle4 } from "drizzle-orm/better-sqlite3";
20926
20926
  import { sqliteTable as sqliteTable4, text as text4, integer as integer4 } from "drizzle-orm/sqlite-core";
@@ -20952,7 +20952,7 @@ function getCronDb() {
20952
20952
  }
20953
20953
  var cronJobs, cronRuns, CREATE_SQL3, _cronDb;
20954
20954
  var init_cron_db = __esm({
20955
- "../server/dist/db/cron-db.js"() {
20955
+ "packages/server/dist/db/cron-db.js"() {
20956
20956
  "use strict";
20957
20957
  cronJobs = sqliteTable4("cron_jobs", {
20958
20958
  id: text4("id").primaryKey(),
@@ -21057,7 +21057,7 @@ CREATE INDEX IF NOT EXISTS idx_cron_runs_status ON cron_runs(status);
21057
21057
  }
21058
21058
  });
21059
21059
 
21060
- // ../server/dist/cron/dispatcher.js
21060
+ // packages/server/dist/cron/dispatcher.js
21061
21061
  function registerCronDispatcher(d) {
21062
21062
  _registry.set(d.channelType, d);
21063
21063
  }
@@ -21102,13 +21102,13 @@ async function dispatchToTargets(text5, targets) {
21102
21102
  }
21103
21103
  var _registry;
21104
21104
  var init_dispatcher = __esm({
21105
- "../server/dist/cron/dispatcher.js"() {
21105
+ "packages/server/dist/cron/dispatcher.js"() {
21106
21106
  "use strict";
21107
21107
  _registry = /* @__PURE__ */ new Map();
21108
21108
  }
21109
21109
  });
21110
21110
 
21111
- // ../server/dist/child-env.js
21111
+ // packages/server/dist/child-env.js
21112
21112
  function cleanChildEnv() {
21113
21113
  const env = { ...process.env };
21114
21114
  delete env.HALO_PASSWORD;
@@ -21116,12 +21116,12 @@ function cleanChildEnv() {
21116
21116
  return env;
21117
21117
  }
21118
21118
  var init_child_env = __esm({
21119
- "../server/dist/child-env.js"() {
21119
+ "packages/server/dist/child-env.js"() {
21120
21120
  "use strict";
21121
21121
  }
21122
21122
  });
21123
21123
 
21124
- // ../server/dist/cron/runner.js
21124
+ // packages/server/dist/cron/runner.js
21125
21125
  import { spawn as spawn2, execFileSync } from "node:child_process";
21126
21126
  import fs45 from "node:fs";
21127
21127
  import path50 from "node:path";
@@ -21635,7 +21635,7 @@ function pruneOldLogs() {
21635
21635
  }
21636
21636
  var DAY_MS2, CLI_TIMEOUT_SEC, KILL_GRACE_SEC, RUNS_PER_JOB_KEEP, LOG_RETENTION_DAYS, _active, _inflight, _fingerprint, _lastCronDataVersion;
21637
21637
  var init_runner = __esm({
21638
- "../server/dist/cron/runner.js"() {
21638
+ "packages/server/dist/cron/runner.js"() {
21639
21639
  "use strict";
21640
21640
  init_cron_db();
21641
21641
  init_dispatcher();
@@ -21653,7 +21653,7 @@ var init_runner = __esm({
21653
21653
  }
21654
21654
  });
21655
21655
 
21656
- // ../server/dist/routes/cron.js
21656
+ // packages/server/dist/routes/cron.js
21657
21657
  import { Hono as Hono12 } from "hono";
21658
21658
  import { eq as eq12, desc as desc4, lt as lt5, and as and8 } from "drizzle-orm";
21659
21659
  import fs46 from "node:fs/promises";
@@ -21883,7 +21883,7 @@ function computeNextRun(j) {
21883
21883
  }
21884
21884
  }
21885
21885
  var init_cron = __esm({
21886
- "../server/dist/routes/cron.js"() {
21886
+ "packages/server/dist/routes/cron.js"() {
21887
21887
  "use strict";
21888
21888
  init_cron_db();
21889
21889
  init_runner();
@@ -21892,7 +21892,7 @@ var init_cron = __esm({
21892
21892
  }
21893
21893
  });
21894
21894
 
21895
- // ../server/dist/evolution/ticker.js
21895
+ // packages/server/dist/evolution/ticker.js
21896
21896
  import { eq as eq13, and as and9, or as or2, lt as lt6, asc as asc2, isNull as isNull5, sql as sql2 } from "drizzle-orm";
21897
21897
  function setEvoSpawner(fn) {
21898
21898
  _spawner = fn;
@@ -22113,7 +22113,7 @@ function claimApply(id) {
22113
22113
  }
22114
22114
  var _lastRunStatus, _lastApplyStatus, _spawner, TICK_INTERVAL_MS, _interval;
22115
22115
  var init_ticker = __esm({
22116
- "../server/dist/evolution/ticker.js"() {
22116
+ "packages/server/dist/evolution/ticker.js"() {
22117
22117
  "use strict";
22118
22118
  init_config();
22119
22119
  init_evo_db();
@@ -22128,13 +22128,13 @@ var init_ticker = __esm({
22128
22128
  }
22129
22129
  });
22130
22130
 
22131
- // ../server/dist/evolution/spawn.js
22131
+ // packages/server/dist/evolution/spawn.js
22132
22132
  import path51 from "node:path";
22133
22133
  import { spawn as spawn3 } from "node:child_process";
22134
22134
  import { fileURLToPath as fileURLToPath2 } from "node:url";
22135
22135
  var __dirname2, WRAPPER_PATH, realEvoSpawner;
22136
22136
  var init_spawn = __esm({
22137
- "../server/dist/evolution/spawn.js"() {
22137
+ "packages/server/dist/evolution/spawn.js"() {
22138
22138
  "use strict";
22139
22139
  init_child_env();
22140
22140
  __dirname2 = path51.dirname(fileURLToPath2(import.meta.url));
@@ -22156,7 +22156,7 @@ var init_spawn = __esm({
22156
22156
  }
22157
22157
  });
22158
22158
 
22159
- // ../server/dist/channels/registry.js
22159
+ // packages/server/dist/channels/registry.js
22160
22160
  function bootChannels(app2, descriptors, deps) {
22161
22161
  for (const d of descriptors) {
22162
22162
  if (d.registerCronDispatcher)
@@ -22181,13 +22181,13 @@ async function shutdownChannels() {
22181
22181
  }
22182
22182
  var _running;
22183
22183
  var init_registry2 = __esm({
22184
- "../server/dist/channels/registry.js"() {
22184
+ "packages/server/dist/channels/registry.js"() {
22185
22185
  "use strict";
22186
22186
  _running = [];
22187
22187
  }
22188
22188
  });
22189
22189
 
22190
- // ../server/dist/channels/telegram/accounts.js
22190
+ // packages/server/dist/channels/telegram/accounts.js
22191
22191
  function toTelegram(a) {
22192
22192
  const c = a.config;
22193
22193
  return {
@@ -22261,17 +22261,17 @@ function deleteAccount3(db, accountId) {
22261
22261
  }
22262
22262
  var CH2;
22263
22263
  var init_accounts3 = __esm({
22264
- "../server/dist/channels/telegram/accounts.js"() {
22264
+ "packages/server/dist/channels/telegram/accounts.js"() {
22265
22265
  "use strict";
22266
22266
  init_accounts();
22267
22267
  CH2 = "telegram";
22268
22268
  }
22269
22269
  });
22270
22270
 
22271
- // ../server/dist/channels/telegram/event-adapter.js
22271
+ // packages/server/dist/channels/telegram/event-adapter.js
22272
22272
  var HARD_CHARS, MEDIA_MARKER_RE, TelegramResponder;
22273
22273
  var init_event_adapter = __esm({
22274
- "../server/dist/channels/telegram/event-adapter.js"() {
22274
+ "packages/server/dist/channels/telegram/event-adapter.js"() {
22275
22275
  "use strict";
22276
22276
  HARD_CHARS = 4e3;
22277
22277
  MEDIA_MARKER_RE = /^MEDIA:\s*(\S.*?)\s*$/gm;
@@ -22372,17 +22372,17 @@ var init_event_adapter = __esm({
22372
22372
  }
22373
22373
  });
22374
22374
 
22375
- // ../server/dist/channels/shared/session-prefix.js
22375
+ // packages/server/dist/channels/shared/session-prefix.js
22376
22376
  function sessionPrefix(channel, userId) {
22377
22377
  return `${channel}_${userId}_`;
22378
22378
  }
22379
22379
  var init_session_prefix = __esm({
22380
- "../server/dist/channels/shared/session-prefix.js"() {
22380
+ "packages/server/dist/channels/shared/session-prefix.js"() {
22381
22381
  "use strict";
22382
22382
  }
22383
22383
  });
22384
22384
 
22385
- // ../server/dist/channels/telegram/handler.js
22385
+ // packages/server/dist/channels/telegram/handler.js
22386
22386
  import { Bot, InputFile } from "grammy";
22387
22387
  import path52 from "node:path";
22388
22388
  function inferMediaKind(filePath) {
@@ -22725,7 +22725,7 @@ async function getOrCreateActiveSession(sm, userId, activeOverrides2, accessLeve
22725
22725
  return newId;
22726
22726
  }
22727
22727
  var init_handler2 = __esm({
22728
- "../server/dist/channels/telegram/handler.js"() {
22728
+ "packages/server/dist/channels/telegram/handler.js"() {
22729
22729
  "use strict";
22730
22730
  init_accounts3();
22731
22731
  init_event_adapter();
@@ -22740,7 +22740,7 @@ var init_handler2 = __esm({
22740
22740
  }
22741
22741
  });
22742
22742
 
22743
- // ../server/dist/routes/telegram.js
22743
+ // packages/server/dist/routes/telegram.js
22744
22744
  import { Hono as Hono13 } from "hono";
22745
22745
  import path53 from "node:path";
22746
22746
  import { Bot as Bot2 } from "grammy";
@@ -22856,14 +22856,14 @@ function createTelegramRoutes(deps) {
22856
22856
  return app2;
22857
22857
  }
22858
22858
  var init_telegram = __esm({
22859
- "../server/dist/routes/telegram.js"() {
22859
+ "packages/server/dist/routes/telegram.js"() {
22860
22860
  "use strict";
22861
22861
  init_accounts3();
22862
22862
  init_init();
22863
22863
  }
22864
22864
  });
22865
22865
 
22866
- // ../server/dist/channels/telegram/cron-dispatcher.js
22866
+ // packages/server/dist/channels/telegram/cron-dispatcher.js
22867
22867
  import { Bot as Bot3 } from "grammy";
22868
22868
  async function dispatch(accountId, text5, explicitChatId) {
22869
22869
  const acct = getAccount3(getChannelDb(), accountId);
@@ -22912,7 +22912,7 @@ function registerTelegramCronDispatcher() {
22912
22912
  registerCronDispatcher({ channelType: "telegram", dispatch, listTargets });
22913
22913
  }
22914
22914
  var init_cron_dispatcher = __esm({
22915
- "../server/dist/channels/telegram/cron-dispatcher.js"() {
22915
+ "packages/server/dist/channels/telegram/cron-dispatcher.js"() {
22916
22916
  "use strict";
22917
22917
  init_channel_db();
22918
22918
  init_accounts3();
@@ -22920,10 +22920,10 @@ var init_cron_dispatcher = __esm({
22920
22920
  }
22921
22921
  });
22922
22922
 
22923
- // ../server/dist/channels/telegram/descriptor.js
22923
+ // packages/server/dist/channels/telegram/descriptor.js
22924
22924
  var telegramDescriptor;
22925
22925
  var init_descriptor = __esm({
22926
- "../server/dist/channels/telegram/descriptor.js"() {
22926
+ "packages/server/dist/channels/telegram/descriptor.js"() {
22927
22927
  "use strict";
22928
22928
  init_handler2();
22929
22929
  init_telegram();
@@ -22938,7 +22938,7 @@ var init_descriptor = __esm({
22938
22938
  }
22939
22939
  });
22940
22940
 
22941
- // ../server/dist/channels/wechat/api.js
22941
+ // packages/server/dist/channels/wechat/api.js
22942
22942
  import crypto3 from "node:crypto";
22943
22943
  function buildClientVersion(version) {
22944
22944
  const [ma, mi, pa] = version.split(".").map((p) => parseInt(p, 10));
@@ -23127,7 +23127,7 @@ async function notifyStop(params) {
23127
23127
  }
23128
23128
  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;
23129
23129
  var init_api = __esm({
23130
- "../server/dist/channels/wechat/api.js"() {
23130
+ "packages/server/dist/channels/wechat/api.js"() {
23131
23131
  "use strict";
23132
23132
  QR_BASE_URL = "https://ilinkai.weixin.qq.com";
23133
23133
  DEFAULT_BOT_TYPE = "3";
@@ -23139,10 +23139,10 @@ var init_api = __esm({
23139
23139
  }
23140
23140
  });
23141
23141
 
23142
- // ../server/dist/channels/wechat/types.js
23142
+ // packages/server/dist/channels/wechat/types.js
23143
23143
  var MessageItemType, MessageType, MessageState, UploadMediaType;
23144
23144
  var init_types = __esm({
23145
- "../server/dist/channels/wechat/types.js"() {
23145
+ "packages/server/dist/channels/wechat/types.js"() {
23146
23146
  "use strict";
23147
23147
  MessageItemType = {
23148
23148
  NONE: 0,
@@ -23171,7 +23171,7 @@ var init_types = __esm({
23171
23171
  }
23172
23172
  });
23173
23173
 
23174
- // ../server/dist/channels/wechat/accounts.js
23174
+ // packages/server/dist/channels/wechat/accounts.js
23175
23175
  function toWeixin(a) {
23176
23176
  const c = a.config;
23177
23177
  return {
@@ -23253,17 +23253,17 @@ function saveSyncBuf(db, accountId, syncBuf) {
23253
23253
  }
23254
23254
  var CH3;
23255
23255
  var init_accounts4 = __esm({
23256
- "../server/dist/channels/wechat/accounts.js"() {
23256
+ "packages/server/dist/channels/wechat/accounts.js"() {
23257
23257
  "use strict";
23258
23258
  init_accounts();
23259
23259
  CH3 = "wechat";
23260
23260
  }
23261
23261
  });
23262
23262
 
23263
- // ../server/dist/channels/wechat/event-adapter.js
23263
+ // packages/server/dist/channels/wechat/event-adapter.js
23264
23264
  var HARD_CHARS2, MEDIA_MARKER_RE2, WeixinResponder;
23265
23265
  var init_event_adapter2 = __esm({
23266
- "../server/dist/channels/wechat/event-adapter.js"() {
23266
+ "packages/server/dist/channels/wechat/event-adapter.js"() {
23267
23267
  "use strict";
23268
23268
  HARD_CHARS2 = 3500;
23269
23269
  MEDIA_MARKER_RE2 = /^MEDIA:\s*(\S.*?)\s*$/gm;
@@ -23372,7 +23372,7 @@ var init_event_adapter2 = __esm({
23372
23372
  }
23373
23373
  });
23374
23374
 
23375
- // ../server/dist/channels/wechat/cdn.js
23375
+ // packages/server/dist/channels/wechat/cdn.js
23376
23376
  import { createDecipheriv, createCipheriv, randomBytes as randomBytes2, createHash as createHash2 } from "node:crypto";
23377
23377
  function decryptAesEcb(ciphertext, key) {
23378
23378
  const decipher = createDecipheriv("aes-128-ecb", key, null);
@@ -23471,14 +23471,14 @@ async function uploadCiphertext(params) {
23471
23471
  }
23472
23472
  var CDN_BASE_URL, UPLOAD_MAX_RETRIES;
23473
23473
  var init_cdn = __esm({
23474
- "../server/dist/channels/wechat/cdn.js"() {
23474
+ "packages/server/dist/channels/wechat/cdn.js"() {
23475
23475
  "use strict";
23476
23476
  CDN_BASE_URL = "https://novac2c.cdn.weixin.qq.com/c2c";
23477
23477
  UPLOAD_MAX_RETRIES = 3;
23478
23478
  }
23479
23479
  });
23480
23480
 
23481
- // ../server/dist/channels/wechat/send-media.js
23481
+ // packages/server/dist/channels/wechat/send-media.js
23482
23482
  import fs48 from "node:fs/promises";
23483
23483
  import path54 from "node:path";
23484
23484
  function inferKind(filePath) {
@@ -23572,7 +23572,7 @@ function buildMessageItem(args) {
23572
23572
  };
23573
23573
  }
23574
23574
  var init_send_media = __esm({
23575
- "../server/dist/channels/wechat/send-media.js"() {
23575
+ "packages/server/dist/channels/wechat/send-media.js"() {
23576
23576
  "use strict";
23577
23577
  init_api();
23578
23578
  init_cdn();
@@ -23581,7 +23581,7 @@ var init_send_media = __esm({
23581
23581
  }
23582
23582
  });
23583
23583
 
23584
- // ../server/dist/channels/wechat/login.js
23584
+ // packages/server/dist/channels/wechat/login.js
23585
23585
  import { randomUUID as randomUUID2 } from "node:crypto";
23586
23586
  function isFresh(l) {
23587
23587
  return Date.now() - l.startedAt < ACTIVE_TTL_MS;
@@ -23683,7 +23683,7 @@ async function waitLogin(params) {
23683
23683
  }
23684
23684
  var ACTIVE_TTL_MS, MAX_QR_REFRESH, activeLogins;
23685
23685
  var init_login = __esm({
23686
- "../server/dist/channels/wechat/login.js"() {
23686
+ "packages/server/dist/channels/wechat/login.js"() {
23687
23687
  "use strict";
23688
23688
  init_api();
23689
23689
  ACTIVE_TTL_MS = 5 * 6e4;
@@ -23692,7 +23692,7 @@ var init_login = __esm({
23692
23692
  }
23693
23693
  });
23694
23694
 
23695
- // ../server/dist/channels/wechat/handler.js
23695
+ // packages/server/dist/channels/wechat/handler.js
23696
23696
  import fs49 from "node:fs";
23697
23697
  import path55 from "node:path";
23698
23698
  import QRCode from "qrcode";
@@ -24200,7 +24200,7 @@ function sleep2(ms, signal) {
24200
24200
  }
24201
24201
  var MAX_CONSECUTIVE_FAILURES, BACKOFF_DELAY_MS, RETRY_DELAY_MS;
24202
24202
  var init_handler3 = __esm({
24203
- "../server/dist/channels/wechat/handler.js"() {
24203
+ "packages/server/dist/channels/wechat/handler.js"() {
24204
24204
  "use strict";
24205
24205
  init_api();
24206
24206
  init_types();
@@ -24222,7 +24222,7 @@ var init_handler3 = __esm({
24222
24222
  }
24223
24223
  });
24224
24224
 
24225
- // ../server/dist/routes/weixin.js
24225
+ // packages/server/dist/routes/weixin.js
24226
24226
  import { Hono as Hono14 } from "hono";
24227
24227
  import path56 from "node:path";
24228
24228
  import fs50 from "node:fs";
@@ -24337,7 +24337,7 @@ function stripSecrets(acc) {
24337
24337
  return rest;
24338
24338
  }
24339
24339
  var init_weixin = __esm({
24340
- "../server/dist/routes/weixin.js"() {
24340
+ "packages/server/dist/routes/weixin.js"() {
24341
24341
  "use strict";
24342
24342
  init_login();
24343
24343
  init_accounts4();
@@ -24345,7 +24345,7 @@ var init_weixin = __esm({
24345
24345
  }
24346
24346
  });
24347
24347
 
24348
- // ../server/dist/channels/wechat/cron-dispatcher.js
24348
+ // packages/server/dist/channels/wechat/cron-dispatcher.js
24349
24349
  function readLastActiveChatId(accountId) {
24350
24350
  const acct = getAccount(getChannelDb(), accountId);
24351
24351
  if (!acct)
@@ -24388,7 +24388,7 @@ function registerWechatCronDispatcher() {
24388
24388
  registerCronDispatcher({ channelType: "wechat", dispatch: dispatch2, listTargets: listTargets2 });
24389
24389
  }
24390
24390
  var init_cron_dispatcher2 = __esm({
24391
- "../server/dist/channels/wechat/cron-dispatcher.js"() {
24391
+ "packages/server/dist/channels/wechat/cron-dispatcher.js"() {
24392
24392
  "use strict";
24393
24393
  init_channel_db();
24394
24394
  init_accounts();
@@ -24398,10 +24398,10 @@ var init_cron_dispatcher2 = __esm({
24398
24398
  }
24399
24399
  });
24400
24400
 
24401
- // ../server/dist/channels/wechat/descriptor.js
24401
+ // packages/server/dist/channels/wechat/descriptor.js
24402
24402
  var wechatDescriptor;
24403
24403
  var init_descriptor2 = __esm({
24404
- "../server/dist/channels/wechat/descriptor.js"() {
24404
+ "packages/server/dist/channels/wechat/descriptor.js"() {
24405
24405
  "use strict";
24406
24406
  init_handler3();
24407
24407
  init_weixin();
@@ -24416,7 +24416,7 @@ var init_descriptor2 = __esm({
24416
24416
  }
24417
24417
  });
24418
24418
 
24419
- // ../server/dist/channels/web/handler.js
24419
+ // packages/server/dist/channels/web/handler.js
24420
24420
  function buildWebSessionPrefix(accountId) {
24421
24421
  return sessionPrefix("web", accountId);
24422
24422
  }
@@ -24804,7 +24804,7 @@ function createMediaBuffer() {
24804
24804
  }
24805
24805
  var MEDIA_MARKER_RE3;
24806
24806
  var init_handler4 = __esm({
24807
- "../server/dist/channels/web/handler.js"() {
24807
+ "packages/server/dist/channels/web/handler.js"() {
24808
24808
  "use strict";
24809
24809
  init_ui_log_builder();
24810
24810
  init_accounts2();
@@ -24819,7 +24819,7 @@ var init_handler4 = __esm({
24819
24819
  }
24820
24820
  });
24821
24821
 
24822
- // ../server/dist/routes/web.js
24822
+ // packages/server/dist/routes/web.js
24823
24823
  import { Hono as Hono15 } from "hono";
24824
24824
  import { streamSSE } from "hono/streaming";
24825
24825
  import crypto4 from "node:crypto";
@@ -25031,7 +25031,7 @@ function createWebRoutes(deps) {
25031
25031
  }
25032
25032
  var TOKEN_BUCKET3;
25033
25033
  var init_web = __esm({
25034
- "../server/dist/routes/web.js"() {
25034
+ "packages/server/dist/routes/web.js"() {
25035
25035
  "use strict";
25036
25036
  init_accounts2();
25037
25037
  init_init();
@@ -25040,10 +25040,10 @@ var init_web = __esm({
25040
25040
  }
25041
25041
  });
25042
25042
 
25043
- // ../server/dist/channels/web/descriptor.js
25043
+ // packages/server/dist/channels/web/descriptor.js
25044
25044
  var webDescriptor;
25045
25045
  var init_descriptor3 = __esm({
25046
- "../server/dist/channels/web/descriptor.js"() {
25046
+ "packages/server/dist/channels/web/descriptor.js"() {
25047
25047
  "use strict";
25048
25048
  init_handler4();
25049
25049
  init_web();
@@ -25059,7 +25059,7 @@ var init_descriptor3 = __esm({
25059
25059
  }
25060
25060
  });
25061
25061
 
25062
- // ../server/dist/channels/slack/accounts.js
25062
+ // packages/server/dist/channels/slack/accounts.js
25063
25063
  function toSlack(a) {
25064
25064
  const c = a.config;
25065
25065
  return {
@@ -25135,14 +25135,14 @@ function deleteAccount5(db, accountId) {
25135
25135
  }
25136
25136
  var CH4;
25137
25137
  var init_accounts5 = __esm({
25138
- "../server/dist/channels/slack/accounts.js"() {
25138
+ "packages/server/dist/channels/slack/accounts.js"() {
25139
25139
  "use strict";
25140
25140
  init_accounts();
25141
25141
  CH4 = "slack";
25142
25142
  }
25143
25143
  });
25144
25144
 
25145
- // ../server/dist/channels/shared/markdown.js
25145
+ // packages/server/dist/channels/shared/markdown.js
25146
25146
  function formatForSlack(input) {
25147
25147
  if (!input)
25148
25148
  return "";
@@ -25221,15 +25221,15 @@ function stripCommonMark(line) {
25221
25221
  return line;
25222
25222
  }
25223
25223
  var init_markdown = __esm({
25224
- "../server/dist/channels/shared/markdown.js"() {
25224
+ "packages/server/dist/channels/shared/markdown.js"() {
25225
25225
  "use strict";
25226
25226
  }
25227
25227
  });
25228
25228
 
25229
- // ../server/dist/channels/slack/event-adapter.js
25229
+ // packages/server/dist/channels/slack/event-adapter.js
25230
25230
  var HARD_CHARS3, MEDIA_MARKER_RE4, SlackResponder;
25231
25231
  var init_event_adapter3 = __esm({
25232
- "../server/dist/channels/slack/event-adapter.js"() {
25232
+ "packages/server/dist/channels/slack/event-adapter.js"() {
25233
25233
  "use strict";
25234
25234
  init_markdown();
25235
25235
  HARD_CHARS3 = 35e3;
@@ -25323,7 +25323,7 @@ var init_event_adapter3 = __esm({
25323
25323
  }
25324
25324
  });
25325
25325
 
25326
- // ../server/dist/channels/slack/api.js
25326
+ // packages/server/dist/channels/slack/api.js
25327
25327
  async function slackPost(endpoint, token, body) {
25328
25328
  const isForm = body instanceof FormData;
25329
25329
  const res = await fetch(`${SLACK_API}/${endpoint}`, {
@@ -25511,13 +25511,13 @@ async function downloadFile(botToken, urlPrivate) {
25511
25511
  }
25512
25512
  var SLACK_API;
25513
25513
  var init_api2 = __esm({
25514
- "../server/dist/channels/slack/api.js"() {
25514
+ "packages/server/dist/channels/slack/api.js"() {
25515
25515
  "use strict";
25516
25516
  SLACK_API = "https://slack.com/api";
25517
25517
  }
25518
25518
  });
25519
25519
 
25520
- // ../server/dist/channels/slack/handler.js
25520
+ // packages/server/dist/channels/slack/handler.js
25521
25521
  import path58 from "node:path";
25522
25522
  import { WebSocket } from "ws";
25523
25523
  function slashToBang(text5, commandNames) {
@@ -25876,7 +25876,7 @@ async function getOrCreateSessionForThread(args) {
25876
25876
  }
25877
25877
  var SLACK_EXTRA_COMMANDS, SEEN_EVENT_IDS, SEEN_EVENT_IDS_MAX;
25878
25878
  var init_handler5 = __esm({
25879
- "../server/dist/channels/slack/handler.js"() {
25879
+ "packages/server/dist/channels/slack/handler.js"() {
25880
25880
  "use strict";
25881
25881
  init_accounts5();
25882
25882
  init_event_adapter3();
@@ -25896,7 +25896,7 @@ var init_handler5 = __esm({
25896
25896
  }
25897
25897
  });
25898
25898
 
25899
- // ../server/dist/routes/slack.js
25899
+ // packages/server/dist/routes/slack.js
25900
25900
  import { Hono as Hono16 } from "hono";
25901
25901
  import fs52 from "node:fs";
25902
25902
  import path59 from "node:path";
@@ -26027,7 +26027,7 @@ function createSlackRoutes(deps) {
26027
26027
  return app2;
26028
26028
  }
26029
26029
  var init_slack = __esm({
26030
- "../server/dist/routes/slack.js"() {
26030
+ "packages/server/dist/routes/slack.js"() {
26031
26031
  "use strict";
26032
26032
  init_accounts5();
26033
26033
  init_api2();
@@ -26035,7 +26035,7 @@ var init_slack = __esm({
26035
26035
  }
26036
26036
  });
26037
26037
 
26038
- // ../server/dist/channels/slack/cron-dispatcher.js
26038
+ // packages/server/dist/channels/slack/cron-dispatcher.js
26039
26039
  function parseChatId(raw) {
26040
26040
  const idx = raw.indexOf(":");
26041
26041
  if (idx < 0)
@@ -26080,7 +26080,7 @@ function registerSlackCronDispatcher() {
26080
26080
  registerCronDispatcher({ channelType: "slack", dispatch: dispatch3, listTargets: listTargets3 });
26081
26081
  }
26082
26082
  var init_cron_dispatcher3 = __esm({
26083
- "../server/dist/channels/slack/cron-dispatcher.js"() {
26083
+ "packages/server/dist/channels/slack/cron-dispatcher.js"() {
26084
26084
  "use strict";
26085
26085
  init_channel_db();
26086
26086
  init_accounts5();
@@ -26089,10 +26089,10 @@ var init_cron_dispatcher3 = __esm({
26089
26089
  }
26090
26090
  });
26091
26091
 
26092
- // ../server/dist/channels/slack/descriptor.js
26092
+ // packages/server/dist/channels/slack/descriptor.js
26093
26093
  var slackDescriptor;
26094
26094
  var init_descriptor4 = __esm({
26095
- "../server/dist/channels/slack/descriptor.js"() {
26095
+ "packages/server/dist/channels/slack/descriptor.js"() {
26096
26096
  "use strict";
26097
26097
  init_handler5();
26098
26098
  init_slack();
@@ -26107,7 +26107,7 @@ var init_descriptor4 = __esm({
26107
26107
  }
26108
26108
  });
26109
26109
 
26110
- // ../server/dist/channels/feishu/accounts.js
26110
+ // packages/server/dist/channels/feishu/accounts.js
26111
26111
  function toFeishu(a) {
26112
26112
  const c = a.config;
26113
26113
  return {
@@ -26185,17 +26185,17 @@ function deleteAccount6(db, accountId) {
26185
26185
  }
26186
26186
  var CH5;
26187
26187
  var init_accounts6 = __esm({
26188
- "../server/dist/channels/feishu/accounts.js"() {
26188
+ "packages/server/dist/channels/feishu/accounts.js"() {
26189
26189
  "use strict";
26190
26190
  init_accounts();
26191
26191
  CH5 = "feishu";
26192
26192
  }
26193
26193
  });
26194
26194
 
26195
- // ../server/dist/channels/feishu/event-adapter.js
26195
+ // packages/server/dist/channels/feishu/event-adapter.js
26196
26196
  var HARD_CHARS4, MEDIA_MARKER_RE5, FeishuResponder;
26197
26197
  var init_event_adapter4 = __esm({
26198
- "../server/dist/channels/feishu/event-adapter.js"() {
26198
+ "packages/server/dist/channels/feishu/event-adapter.js"() {
26199
26199
  "use strict";
26200
26200
  init_markdown();
26201
26201
  HARD_CHARS4 = 4500;
@@ -26289,7 +26289,7 @@ var init_event_adapter4 = __esm({
26289
26289
  }
26290
26290
  });
26291
26291
 
26292
- // ../server/dist/channels/feishu/api.js
26292
+ // packages/server/dist/channels/feishu/api.js
26293
26293
  async function getTenantAccessToken(args) {
26294
26294
  const cached = tokenCache.get(args.appId);
26295
26295
  if (cached && cached.expiresAt - Date.now() > 6e4)
@@ -26553,14 +26553,14 @@ async function searchFeishuTargets(args) {
26553
26553
  }
26554
26554
  var FEISHU_BASE, tokenCache;
26555
26555
  var init_api3 = __esm({
26556
- "../server/dist/channels/feishu/api.js"() {
26556
+ "packages/server/dist/channels/feishu/api.js"() {
26557
26557
  "use strict";
26558
26558
  FEISHU_BASE = "https://open.feishu.cn";
26559
26559
  tokenCache = /* @__PURE__ */ new Map();
26560
26560
  }
26561
26561
  });
26562
26562
 
26563
- // ../server/dist/channels/feishu/handler.js
26563
+ // packages/server/dist/channels/feishu/handler.js
26564
26564
  import path60 from "node:path";
26565
26565
  import * as Lark from "@larksuiteoapi/node-sdk";
26566
26566
  function isPathAllowed3(filePath, workspacePath) {
@@ -26980,7 +26980,7 @@ async function getOrCreateSessionForThread2(args) {
26980
26980
  return newId;
26981
26981
  }
26982
26982
  var init_handler6 = __esm({
26983
- "../server/dist/channels/feishu/handler.js"() {
26983
+ "packages/server/dist/channels/feishu/handler.js"() {
26984
26984
  "use strict";
26985
26985
  init_accounts6();
26986
26986
  init_event_adapter4();
@@ -26996,7 +26996,7 @@ var init_handler6 = __esm({
26996
26996
  }
26997
26997
  });
26998
26998
 
26999
- // ../server/dist/routes/feishu.js
26999
+ // packages/server/dist/routes/feishu.js
27000
27000
  import { Hono as Hono17 } from "hono";
27001
27001
  import fs53 from "node:fs";
27002
27002
  import path61 from "node:path";
@@ -27130,7 +27130,7 @@ function createFeishuRoutes(deps) {
27130
27130
  return app2;
27131
27131
  }
27132
27132
  var init_feishu = __esm({
27133
- "../server/dist/routes/feishu.js"() {
27133
+ "packages/server/dist/routes/feishu.js"() {
27134
27134
  "use strict";
27135
27135
  init_accounts6();
27136
27136
  init_api3();
@@ -27138,7 +27138,7 @@ var init_feishu = __esm({
27138
27138
  }
27139
27139
  });
27140
27140
 
27141
- // ../server/dist/channels/feishu/cron-dispatcher.js
27141
+ // packages/server/dist/channels/feishu/cron-dispatcher.js
27142
27142
  function parseChatId2(raw) {
27143
27143
  const idx = raw.indexOf(":");
27144
27144
  return { chatId: idx < 0 ? raw : raw.slice(0, idx) };
@@ -27188,7 +27188,7 @@ function registerFeishuCronDispatcher() {
27188
27188
  registerCronDispatcher({ channelType: "feishu", dispatch: dispatch4, listTargets: listTargets4 });
27189
27189
  }
27190
27190
  var init_cron_dispatcher4 = __esm({
27191
- "../server/dist/channels/feishu/cron-dispatcher.js"() {
27191
+ "packages/server/dist/channels/feishu/cron-dispatcher.js"() {
27192
27192
  "use strict";
27193
27193
  init_channel_db();
27194
27194
  init_accounts6();
@@ -27197,10 +27197,10 @@ var init_cron_dispatcher4 = __esm({
27197
27197
  }
27198
27198
  });
27199
27199
 
27200
- // ../server/dist/channels/feishu/descriptor.js
27200
+ // packages/server/dist/channels/feishu/descriptor.js
27201
27201
  var feishuDescriptor;
27202
27202
  var init_descriptor5 = __esm({
27203
- "../server/dist/channels/feishu/descriptor.js"() {
27203
+ "packages/server/dist/channels/feishu/descriptor.js"() {
27204
27204
  "use strict";
27205
27205
  init_handler6();
27206
27206
  init_feishu();
@@ -27215,10 +27215,10 @@ var init_descriptor5 = __esm({
27215
27215
  }
27216
27216
  });
27217
27217
 
27218
- // ../server/dist/channels/descriptors.js
27218
+ // packages/server/dist/channels/descriptors.js
27219
27219
  var defaultChannelDescriptors;
27220
27220
  var init_descriptors = __esm({
27221
- "../server/dist/channels/descriptors.js"() {
27221
+ "packages/server/dist/channels/descriptors.js"() {
27222
27222
  "use strict";
27223
27223
  init_descriptor();
27224
27224
  init_descriptor2();
@@ -27235,7 +27235,7 @@ var init_descriptors = __esm({
27235
27235
  }
27236
27236
  });
27237
27237
 
27238
- // ../server/dist/middleware/auth.js
27238
+ // packages/server/dist/middleware/auth.js
27239
27239
  import { Hono as Hono18 } from "hono";
27240
27240
  import { getCookie, setCookie } from "hono/cookie";
27241
27241
  import crypto5 from "node:crypto";
@@ -27400,7 +27400,7 @@ function authMiddleware() {
27400
27400
  }
27401
27401
  var TOKEN_MAX_AGE, REFRESH_AFTER, COOKIE_NAME, ADMIN_LOGIN_BUCKET, isLockedOut2, recordFailure2, clearFailures2, PUBLIC_PATHS;
27402
27402
  var init_auth = __esm({
27403
- "../server/dist/middleware/auth.js"() {
27403
+ "packages/server/dist/middleware/auth.js"() {
27404
27404
  "use strict";
27405
27405
  init_config();
27406
27406
  init_password_hash();
@@ -27416,7 +27416,7 @@ var init_auth = __esm({
27416
27416
  }
27417
27417
  });
27418
27418
 
27419
- // ../server/dist/index.js
27419
+ // packages/server/dist/index.js
27420
27420
  var dist_exports = {};
27421
27421
  import { Hono as Hono19 } from "hono";
27422
27422
  import { cors } from "hono/cors";
@@ -27542,7 +27542,7 @@ async function gracefulShutdown(signal) {
27542
27542
  }
27543
27543
  var __dirname3, PORT, HALO_VERSION, PROJECT_ROOT, HALO_HOME4, GIT_SHA, AGENTCORE, app, allowlist, authRoutes, fileRoutes, gitRoutes, agentConfigRoutes, skillRoutes, settingsRoutes, evolutionRoutes, cronRoutes, channelDb, registry, sessionRoutes, showRoutes, metricsRoutes, commandRoutes, FRONTEND_DIR, server, wss;
27544
27544
  var init_dist2 = __esm({
27545
- async "../server/dist/index.js"() {
27545
+ async "packages/server/dist/index.js"() {
27546
27546
  "use strict";
27547
27547
  init_files();
27548
27548
  init_git();
@@ -27578,7 +27578,7 @@ var init_dist2 = __esm({
27578
27578
  init_git_ssh();
27579
27579
  __dirname3 = path62.dirname(fileURLToPath3(import.meta.url));
27580
27580
  PORT = config.server.port;
27581
- HALO_VERSION = "1.0.0";
27581
+ HALO_VERSION = "1.0.1";
27582
27582
  PROJECT_ROOT = findProjectRoot();
27583
27583
  HALO_HOME4 = path62.join(homedir24(), ".halo");
27584
27584
  GIT_SHA = readGitSha();
@@ -27749,7 +27749,7 @@ var init_dist2 = __esm({
27749
27749
  }
27750
27750
  });
27751
27751
 
27752
- // ../acp-adapter/dist/halo-client.js
27752
+ // packages/acp-adapter/dist/halo-client.js
27753
27753
  async function safeText(res) {
27754
27754
  try {
27755
27755
  return (await res.text()).slice(0, 500);
@@ -27792,7 +27792,7 @@ async function* parseSseStream(body) {
27792
27792
  }
27793
27793
  var HaloClient;
27794
27794
  var init_halo_client = __esm({
27795
- "../acp-adapter/dist/halo-client.js"() {
27795
+ "packages/acp-adapter/dist/halo-client.js"() {
27796
27796
  "use strict";
27797
27797
  HaloClient = class {
27798
27798
  opts;
@@ -27871,7 +27871,7 @@ var init_halo_client = __esm({
27871
27871
  }
27872
27872
  });
27873
27873
 
27874
- // ../acp-adapter/dist/adapter.js
27874
+ // packages/acp-adapter/dist/adapter.js
27875
27875
  function newError(message, code = -32603) {
27876
27876
  const e = new Error(message);
27877
27877
  e.code = code;
@@ -27879,7 +27879,7 @@ function newError(message, code = -32603) {
27879
27879
  }
27880
27880
  var AcpAdapter;
27881
27881
  var init_adapter = __esm({
27882
- "../acp-adapter/dist/adapter.js"() {
27882
+ "packages/acp-adapter/dist/adapter.js"() {
27883
27883
  "use strict";
27884
27884
  init_halo_client();
27885
27885
  AcpAdapter = class {
@@ -28168,10 +28168,10 @@ var init_adapter = __esm({
28168
28168
  }
28169
28169
  });
28170
28170
 
28171
- // ../acp-adapter/dist/jsonrpc.js
28171
+ // packages/acp-adapter/dist/jsonrpc.js
28172
28172
  var ERROR_PARSE, ERROR_METHOD_NOT_FOUND, ERROR_INTERNAL, JsonRpcConnection;
28173
28173
  var init_jsonrpc = __esm({
28174
- "../acp-adapter/dist/jsonrpc.js"() {
28174
+ "packages/acp-adapter/dist/jsonrpc.js"() {
28175
28175
  "use strict";
28176
28176
  ERROR_PARSE = -32700;
28177
28177
  ERROR_METHOD_NOT_FOUND = -32601;
@@ -28304,7 +28304,7 @@ var init_jsonrpc = __esm({
28304
28304
  }
28305
28305
  });
28306
28306
 
28307
- // ../acp-adapter/dist/index.js
28307
+ // packages/acp-adapter/dist/index.js
28308
28308
  var dist_exports2 = {};
28309
28309
  __export(dist_exports2, {
28310
28310
  main: () => main
@@ -28420,7 +28420,7 @@ function main(argv = process.argv.slice(2)) {
28420
28420
  }
28421
28421
  var HELP;
28422
28422
  var init_dist3 = __esm({
28423
- "../acp-adapter/dist/index.js"() {
28423
+ "packages/acp-adapter/dist/index.js"() {
28424
28424
  "use strict";
28425
28425
  init_adapter();
28426
28426
  init_jsonrpc();
@@ -28459,7 +28459,7 @@ Stdio:
28459
28459
  }
28460
28460
  });
28461
28461
 
28462
- // src/silence-warnings.ts
28462
+ // packages/cli/src/silence-warnings.ts
28463
28463
  var emit = process.emitWarning.bind(process);
28464
28464
  process.emitWarning = (warning, ...args) => {
28465
28465
  const opt = args[0];
@@ -28468,12 +28468,12 @@ process.emitWarning = (warning, ...args) => {
28468
28468
  return emit(warning, ...args);
28469
28469
  };
28470
28470
 
28471
- // src/index.ts
28471
+ // packages/cli/src/index.ts
28472
28472
  import path63 from "node:path";
28473
28473
  import fs55 from "node:fs";
28474
28474
  import { homedir as homedir25 } from "node:os";
28475
28475
  import { parseArgs as parseArgs2 } from "node:util";
28476
- var VERSION = "1.0.0";
28476
+ var VERSION = "1.0.1";
28477
28477
  var HELP_TOP = `Usage: halo <command> [options]
28478
28478
 
28479
28479
  Commands: