@vionwilliams/agent-os 1.0.0-alpha.16 → 1.0.0-alpha.18

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.
Files changed (3) hide show
  1. package/README.md +18 -4
  2. package/dist/cli.js +115 -64
  3. package/package.json +1 -2
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 智能任务通用工作系统 · 多模型路由 + 意图编排 + 多智能体协调 + DataHub + 可编程面板 + LLM 知识编译器
4
4
 
5
- **Status**: `1.0.0-alpha.16` · Beta 测试版 · npm 公共包可用
5
+ **Status**: `1.0.0-alpha.18` · Beta 测试版 · npm 公共包可用
6
6
 
7
7
  ---
8
8
 
@@ -56,15 +56,29 @@ curl -fsSL https://raw.githubusercontent.com/VIONWILLIAMS/agent-os-install/main/
56
56
  bash install-agent-os-mac.sh
57
57
  ```
58
58
 
59
- 脚本会自动检查并安装 Node.js、Bun、Agent-OS CLI,并引导配置 DeepSeek。
59
+ 脚本会自动检查并安装 Node.js、Bun、Agent-OS CLI,并配置终端 PATH 与 `aos` 快捷命令。
60
60
 
61
- 安装完成后重启终端,再验证:
61
+ 安装完成后重启终端,再验证 CLI:
62
62
 
63
63
  ```bash
64
64
  agent-os --version
65
65
  ```
66
66
 
67
- 成功时会显示 `1.0.0-alpha.16 (Agent-OS)` 或更新版本。
67
+ 成功时会显示 `1.0.0-alpha.18 (Agent-OS)` 或更新版本。
68
+
69
+ 然后打开 Agent-OS:
70
+
71
+ ```bash
72
+ agent-os
73
+ ```
74
+
75
+ 进入 Agent-OS CLI 界面后输入:
76
+
77
+ ```text
78
+ /model
79
+ ```
80
+
81
+ 在 `/model` 模式里选择或添加 DeepSeek,并粘贴 DeepSeek API Key。DeepSeek 配置不在安装脚本里完成,而是在进入 Agent-OS 后完成。
68
82
 
69
83
  ### 2. 手动 npm 安装
70
84
 
package/dist/cli.js CHANGED
@@ -93307,7 +93307,7 @@ var init_system = __esm(() => {
93307
93307
  AGENT_SDK_CLAUDE_CODE_PRESET_PREFIX,
93308
93308
  AGENT_SDK_PREFIX
93309
93309
  ];
93310
- AGENT_OS_VERSION = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "dev";
93310
+ AGENT_OS_VERSION = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
93311
93311
  CLI_SYSPROMPT_PREFIXES = new Set(CLI_SYSPROMPT_PREFIX_VALUES);
93312
93312
  });
93313
93313
 
@@ -93751,7 +93751,7 @@ function getClaudeCodeUserAgent() {
93751
93751
  }
93752
93752
  var AGENT_OS_VERSION2;
93753
93753
  var init_userAgent = __esm(() => {
93754
- AGENT_OS_VERSION2 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "dev";
93754
+ AGENT_OS_VERSION2 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
93755
93755
  });
93756
93756
 
93757
93757
  // src/utils/http.ts
@@ -93832,7 +93832,7 @@ var init_http2 = __esm(() => {
93832
93832
  init_auth();
93833
93833
  init_userAgent();
93834
93834
  init_workloadContext();
93835
- AGENT_OS_VERSION3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "dev";
93835
+ AGENT_OS_VERSION3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
93836
93836
  });
93837
93837
 
93838
93838
  // src/services/api/router/userProviders.ts
@@ -94112,8 +94112,8 @@ var init_keyDetector = __esm(() => {
94112
94112
  name: "deepseek",
94113
94113
  displayName: "DeepSeek",
94114
94114
  baseUrl: "https://api.deepseek.com",
94115
- models: ["deepseek-v4-flash", "deepseek-v4-pro", "deepseek-chat", "deepseek-reasoner"],
94116
- defaultModel: "deepseek-v4-flash",
94115
+ models: ["deepseek-v4-pro", "deepseek-v4-flash", "deepseek-chat", "deepseek-reasoner"],
94116
+ defaultModel: "deepseek-v4-pro",
94117
94117
  envKey: "DEEPSEEK_API_KEY",
94118
94118
  type: "deepseek"
94119
94119
  },
@@ -94359,7 +94359,7 @@ function buildDefaultDeepSeekConfig() {
94359
94359
  if (!deepseek)
94360
94360
  return null;
94361
94361
  const baseUrl = process.env.MODEL_BASE_URL?.trim() || deepseek.baseUrl;
94362
- const model = normalizeModelNameForProvider("deepseek", process.env.MODEL_NAME) || getDeepSeekProfileDefaultModel(isDeepSeekProviderConfig("deepseek", { type: deepseek.type, baseUrl }) ? process.env.DEEPSEEK_PROFILE : undefined) || deepseek.defaultModel || deepseek.models[0] || "deepseek-v4-flash";
94362
+ const model = normalizeModelNameForProvider("deepseek", process.env.MODEL_NAME) || getDeepSeekProfileDefaultModel(isDeepSeekProviderConfig("deepseek", { type: deepseek.type, baseUrl }) ? process.env.DEEPSEEK_PROFILE : undefined) || deepseek.defaultModel || deepseek.models[0] || "deepseek-v4-pro";
94363
94363
  return normalizeConfig({
94364
94364
  default: `deepseek/${model}`,
94365
94365
  providers: {
@@ -207166,7 +207166,7 @@ var init_sessionStorage = __esm(() => {
207166
207166
  init_settings2();
207167
207167
  init_slowOperations();
207168
207168
  init_uuid();
207169
- VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "unknown";
207169
+ VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "unknown";
207170
207170
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
207171
207171
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
207172
207172
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -207296,7 +207296,7 @@ function Feedback({
207296
207296
  platform: env3.platform,
207297
207297
  gitRepo: envInfo.isGit,
207298
207298
  terminal: env3.terminal,
207299
- version: "1.0.0-alpha.16",
207299
+ version: "1.0.0-alpha.18",
207300
207300
  transcript: normalizeMessagesForAPI(messages),
207301
207301
  errors: sanitizedErrors,
207302
207302
  lastApiRequest: getLastAPIRequest(),
@@ -207480,7 +207480,7 @@ function Feedback({
207480
207480
  ", ",
207481
207481
  env3.terminal,
207482
207482
  ", v",
207483
- "1.0.0-alpha.16"
207483
+ "1.0.0-alpha.18"
207484
207484
  ]
207485
207485
  })
207486
207486
  ]
@@ -207586,7 +207586,7 @@ ${sanitizedDescription}
207586
207586
  ` + `**Environment Info**
207587
207587
  ` + `- Platform: ${env3.platform}
207588
207588
  ` + `- Terminal: ${env3.terminal}
207589
- ` + `- Version: ${"1.0.0-alpha.16"}
207589
+ ` + `- Version: ${"1.0.0-alpha.18"}
207590
207590
  ` + `- Feedback ID: ${feedbackId}
207591
207591
  ` + `
207592
207592
  **Errors**
@@ -259971,8 +259971,8 @@ var init_toolAnalytics = __esm(() => {
259971
259971
  init_agentContext();
259972
259972
  init_slowOperations();
259973
259973
  init_teammate();
259974
- AGENT_OS_VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "dev";
259975
- AGENT_OS_BUILD_TIME = typeof MACRO !== "undefined" ? "2026-05-19T09:51:43Z" : undefined;
259974
+ AGENT_OS_VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
259975
+ AGENT_OS_BUILD_TIME = typeof MACRO !== "undefined" ? "2026-05-20T10:43:03Z" : undefined;
259976
259976
  BUILTIN_MCP_SERVER_NAMES = new Set([]);
259977
259977
  TOOL_INPUT_MAX_JSON_CHARS = 4 * 1024;
259978
259978
  FILE_COMMANDS = new Set([
@@ -274576,7 +274576,7 @@ function getInstallationEnv() {
274576
274576
  return;
274577
274577
  }
274578
274578
  function getClaudeCodeVersion() {
274579
- return "1.0.0-alpha.16";
274579
+ return "1.0.0-alpha.18";
274580
274580
  }
274581
274581
  async function getInstalledVSCodeExtensionVersion(command) {
274582
274582
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -297294,7 +297294,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
297294
297294
  const client = new Client({
297295
297295
  name: "claude-code",
297296
297296
  title: "Agent-OS",
297297
- version: "1.0.0-alpha.16",
297297
+ version: "1.0.0-alpha.18",
297298
297298
  description: "Anthropic's agentic coding tool",
297299
297299
  websiteUrl: PRODUCT_URL
297300
297300
  }, {
@@ -297647,7 +297647,7 @@ var init_client4 = __esm(() => {
297647
297647
  const client = new Client({
297648
297648
  name: "claude-code",
297649
297649
  title: "Agent-OS",
297650
- version: "1.0.0-alpha.16",
297650
+ version: "1.0.0-alpha.18",
297651
297651
  description: "Anthropic's agentic coding tool",
297652
297652
  websiteUrl: PRODUCT_URL
297653
297653
  }, {
@@ -352067,8 +352067,8 @@ var init_resolver2 = __esm(() => {
352067
352067
  flash: "gemini/gemini-2.5-flash",
352068
352068
  gemini: "gemini/gemini-2.5-flash",
352069
352069
  "gemini-pro": "gemini/gemini-2.5-pro-preview-05-06",
352070
- deepseek: "deepseek/deepseek-v4-flash",
352071
- ds: "deepseek/deepseek-v4-flash",
352070
+ deepseek: "deepseek/deepseek-v4-pro",
352071
+ ds: "deepseek/deepseek-v4-pro",
352072
352072
  "deepseek-pro": "deepseek/deepseek-v4-pro",
352073
352073
  "ds-pro": "deepseek/deepseek-v4-pro",
352074
352074
  "deepseek-flash": "deepseek/deepseek-v4-flash",
@@ -396508,6 +396508,7 @@ function buildContextBuffMessage(decision) {
396508
396508
  role: "system",
396509
396509
  content: [
396510
396510
  "Agent-OS DeepSeek Buff Runtime context package.",
396511
+ `Selected model: ${decision.model}. Requested model: ${decision.requestedModel}.`,
396511
396512
  `Profile: ${decision.profile}.`,
396512
396513
  `Task type: ${decision.taskType}. Context budget: ${decision.contextBudget}.`,
396513
396514
  `Tool budget: ${decision.toolBudget}; selected tools: ${decision.selectedToolNames.join(", ") || "none"}.`,
@@ -396893,7 +396894,7 @@ function buildDeepSeekBuffStatus() {
396893
396894
  const policy = getDeepSeekBuffPolicyStatus(dataset);
396894
396895
  const checks4 = [];
396895
396896
  const defaultModel = provider3?.defaultModel || "";
396896
- addStatusCheck(checks4, "flash_default", defaultModel === DEEPSEEK_V4_FLASH_MODEL ? "ok" : "fail", defaultModel === DEEPSEEK_V4_FLASH_MODEL ? "Built-in DeepSeek provider defaults to deepseek-v4-flash." : `Built-in DeepSeek provider default is ${defaultModel || "missing"}; expected ${DEEPSEEK_V4_FLASH_MODEL}.`);
396897
+ addStatusCheck(checks4, "pro_default", defaultModel === DEEPSEEK_V4_PRO_MODEL ? "ok" : "fail", defaultModel === DEEPSEEK_V4_PRO_MODEL ? "Built-in DeepSeek provider defaults to deepseek-v4-pro." : `Built-in DeepSeek provider default is ${defaultModel || "missing"}; expected ${DEEPSEEK_V4_PRO_MODEL}.`);
396897
396898
  addStatusCheck(checks4, "flash_profile", DEEPSEEK_PROFILE_CONFIGS["v4-flash-tools"]?.model === DEEPSEEK_V4_FLASH_MODEL ? "ok" : "fail", "v4-flash-tools is the Flash mainline profile.");
396898
396899
  addStatusCheck(checks4, "dataset", datasetMode === "off" ? "skip" : dataset.writable ? "ok" : "fail", datasetMode === "off" ? "Local dataset collection is disabled." : dataset.writable ? `Local dataset is writable at ${dataset.dataDir}.` : `Local dataset is not writable at ${dataset.dataDir}.`);
396899
396900
  addStatusCheck(checks4, "policy", mode === "policy-net" && !policy.trained ? "warn" : "ok", mode === "policy-net" && !policy.trained ? "policy-net mode requested, but no trained local policy net is active; rules mode remains the safe fallback." : "Rules policy is available; policy-net training is gated by offline eval.");
@@ -396904,7 +396905,7 @@ function buildDeepSeekBuffStatus() {
396904
396905
  datasetMode,
396905
396906
  escalationMode,
396906
396907
  defaultModel,
396907
- recommendedModel: DEEPSEEK_V4_FLASH_MODEL,
396908
+ recommendedModel: DEEPSEEK_V4_PRO_MODEL,
396908
396909
  defaultProfile: "v4-flash-tools",
396909
396910
  dataset,
396910
396911
  policy,
@@ -416283,7 +416284,7 @@ function getInvokedBinary() {
416283
416284
  async function getDoctorDiagnostic() {
416284
416285
  return {
416285
416286
  installationType: "package-manager",
416286
- version: "1.0.0-alpha.16",
416287
+ version: "1.0.0-alpha.18",
416287
416288
  installationPath: process.argv[1] ?? "",
416288
416289
  invokedBinary: getInvokedBinary(),
416289
416290
  configInstallMethod: "not set",
@@ -416688,7 +416689,7 @@ function buildPrimarySection() {
416688
416689
  });
416689
416690
  return [{
416690
416691
  label: "Version",
416691
- value: "1.0.0-alpha.16"
416692
+ value: "1.0.0-alpha.18"
416692
416693
  }, {
416693
416694
  label: "Session name",
416694
416695
  value: nameValue
@@ -420331,7 +420332,7 @@ function Config({
420331
420332
  }
420332
420333
  })
420333
420334
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime169.jsx(ChannelDowngradeDialog, {
420334
- currentVersion: "1.0.0-alpha.16",
420335
+ currentVersion: "1.0.0-alpha.18",
420335
420336
  onChoice: (choice) => {
420336
420337
  setShowSubmenu(null);
420337
420338
  setTabsHidden(false);
@@ -420343,7 +420344,7 @@ function Config({
420343
420344
  autoUpdatesChannel: "stable"
420344
420345
  };
420345
420346
  if (choice === "stay") {
420346
- newSettings.minimumVersion = "1.0.0-alpha.16";
420347
+ newSettings.minimumVersion = "1.0.0-alpha.18";
420347
420348
  }
420348
420349
  updateSettingsForSource("userSettings", newSettings);
420349
420350
  setSettingsData((prev_27) => ({
@@ -428334,7 +428335,7 @@ function HelpV2(t0) {
428334
428335
  let t6;
428335
428336
  if ($3[31] !== tabs) {
428336
428337
  t6 = /* @__PURE__ */ jsx_runtime195.jsx(Tabs, {
428337
- title: `Agent-OS v${"1.0.0-alpha.16"}`,
428338
+ title: `Agent-OS v${"1.0.0-alpha.18"}`,
428338
428339
  color: "professionalBlue",
428339
428340
  defaultTab: "general",
428340
428341
  children: tabs
@@ -431462,7 +431463,7 @@ var init_user = __esm(() => {
431462
431463
  deviceId,
431463
431464
  sessionId: getSessionId(),
431464
431465
  email: getEmail(),
431465
- appVersion: "1.0.0-alpha.16",
431466
+ appVersion: "1.0.0-alpha.18",
431466
431467
  platform: getHostPlatformForAnalytics(),
431467
431468
  organizationUuid,
431468
431469
  accountUuid,
@@ -451713,7 +451714,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
451713
451714
  return [];
451714
451715
  }
451715
451716
  }
451716
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alpha.16") {
451717
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alpha.18") {
451717
451718
  if (process.env.USER_TYPE === "ant") {
451718
451719
  const changelog = "";
451719
451720
  if (changelog) {
@@ -451740,7 +451741,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alp
451740
451741
  releaseNotes
451741
451742
  };
451742
451743
  }
451743
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.0-alpha.16") {
451744
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.0-alpha.18") {
451744
451745
  if (process.env.USER_TYPE === "ant") {
451745
451746
  const changelog = "";
451746
451747
  if (changelog) {
@@ -452867,7 +452868,7 @@ function getRecentActivitySync() {
452867
452868
  return cachedActivity;
452868
452869
  }
452869
452870
  function getLogoDisplayData() {
452870
- const version2 = process.env.DEMO_VERSION ?? "1.0.0-alpha.16";
452871
+ const version2 = process.env.DEMO_VERSION ?? "1.0.0-alpha.18";
452871
452872
  const serverUrl = getDirectConnectServerUrl();
452872
452873
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
452873
452874
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -454082,7 +454083,7 @@ function LogoV2() {
454082
454083
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
454083
454084
  t2 = () => {
454084
454085
  const currentConfig = getGlobalConfig();
454085
- if (currentConfig.lastReleaseNotesSeen === "1.0.0-alpha.16") {
454086
+ if (currentConfig.lastReleaseNotesSeen === "1.0.0-alpha.18") {
454086
454087
  return;
454087
454088
  }
454088
454089
  saveGlobalConfig(_temp328);
@@ -454748,12 +454749,12 @@ function AgentOsPoster() {
454748
454749
  });
454749
454750
  }
454750
454751
  function _temp328(current) {
454751
- if (current.lastReleaseNotesSeen === "1.0.0-alpha.16") {
454752
+ if (current.lastReleaseNotesSeen === "1.0.0-alpha.18") {
454752
454753
  return current;
454753
454754
  }
454754
454755
  return {
454755
454756
  ...current,
454756
- lastReleaseNotesSeen: "1.0.0-alpha.16"
454757
+ lastReleaseNotesSeen: "1.0.0-alpha.18"
454757
454758
  };
454758
454759
  }
454759
454760
  function _temp245(s_0) {
@@ -481330,7 +481331,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
481330
481331
  smapsRollup,
481331
481332
  platform: process.platform,
481332
481333
  nodeVersion: process.version,
481333
- ccVersion: "1.0.0-alpha.16"
481334
+ ccVersion: "1.0.0-alpha.18"
481334
481335
  };
481335
481336
  }
481336
481337
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -481903,7 +481904,7 @@ var init_bridge_kick = __esm(() => {
481903
481904
  var call58 = async () => {
481904
481905
  return {
481905
481906
  type: "text",
481906
- value: `${"1.0.0-alpha.16"} (built ${"2026-05-19T09:51:43Z"})`
481907
+ value: `${"1.0.0-alpha.18"} (built ${"2026-05-20T10:43:03Z"})`
481907
481908
  };
481908
481909
  }, version2, version_default;
481909
481910
  var init_version = __esm(() => {
@@ -484810,7 +484811,8 @@ function addProvider(name, providerConfig, setAsDefault) {
484810
484811
  addedAt: providerConfig.addedAt ?? config4.providers[name]?.addedAt ?? new Date().toISOString()
484811
484812
  };
484812
484813
  if (setAsDefault || !config4.default || Object.keys(config4.providers).length === 1) {
484813
- const model = providerConfig.models?.[0] || name;
484814
+ const configuredDefault = typeof providerConfig.defaultModel === "string" ? providerConfig.defaultModel.trim() : "";
484815
+ const model = configuredDefault || providerConfig.models?.[0] || name;
484814
484816
  config4.default = `${name}/${model}`;
484815
484817
  }
484816
484818
  saveConfig2(config4);
@@ -484824,7 +484826,9 @@ function removeProvider(name) {
484824
484826
  const remaining = Object.keys(config4.providers);
484825
484827
  if (remaining.length > 0) {
484826
484828
  const nextProvider = remaining[0];
484827
- const nextModel = config4.providers[nextProvider]?.models?.[0] || nextProvider;
484829
+ const nextProviderConfig = config4.providers[nextProvider];
484830
+ const configuredDefault = typeof nextProviderConfig?.defaultModel === "string" ? nextProviderConfig.defaultModel.trim() : "";
484831
+ const nextModel = configuredDefault || nextProviderConfig?.models?.[0] || nextProvider;
484828
484832
  config4.default = `${nextProvider}/${nextModel}`;
484829
484833
  } else {
484830
484834
  config4.default = "";
@@ -485004,6 +485008,7 @@ function ModelSetup({ onComplete, isFirstLaunch }) {
485004
485008
  type: p2.type || (p2.name === "anthropic" ? "anthropic" : "openai-compatible"),
485005
485009
  baseUrl: p2.baseUrl,
485006
485010
  apiKey,
485011
+ defaultModel: p2.defaultModel,
485007
485012
  models: p2.models
485008
485013
  }, Boolean(isFirstLaunch));
485009
485014
  }, [isFirstLaunch]);
@@ -485750,8 +485755,30 @@ function buildRouterModelOptions(router) {
485750
485755
  }
485751
485756
  ];
485752
485757
  }
485753
- function isConfiguredRouterModel(router, spec) {
485754
- return router.listAll().some((entry) => `${entry.provider}/${entry.model}` === spec);
485758
+ function resolveConfiguredRouterModel(router, spec) {
485759
+ const requested = spec.trim();
485760
+ const allSpecs = router.listAll().map((entry) => `${entry.provider}/${entry.model}`);
485761
+ if (allSpecs.includes(requested))
485762
+ return requested;
485763
+ const aliasByInput = {
485764
+ pro: "deepseek/deepseek-v4-pro",
485765
+ "v4-pro": "deepseek/deepseek-v4-pro",
485766
+ "deepseek-pro": "deepseek/deepseek-v4-pro",
485767
+ "ds-pro": "deepseek/deepseek-v4-pro",
485768
+ flash: "deepseek/deepseek-v4-flash",
485769
+ "v4-flash": "deepseek/deepseek-v4-flash",
485770
+ "deepseek-flash": "deepseek/deepseek-v4-flash",
485771
+ "ds-flash": "deepseek/deepseek-v4-flash"
485772
+ };
485773
+ const alias = aliasByInput[requested.toLowerCase()];
485774
+ if (alias && allSpecs.includes(alias))
485775
+ return alias;
485776
+ const suffixMatches = allSpecs.filter((candidate) => {
485777
+ const candidateLower = candidate.toLowerCase();
485778
+ const lower = requested.toLowerCase();
485779
+ return candidateLower.endsWith(`/${lower}`) || candidateLower.endsWith(`-${lower}`);
485780
+ });
485781
+ return suffixMatches.length === 1 ? suffixMatches[0] : null;
485755
485782
  }
485756
485783
  function renderModelLabel(model) {
485757
485784
  const rendered = renderDefaultModelSetting(model ?? getDefaultMainLoopModelSetting());
@@ -485792,15 +485819,16 @@ var import_compiler_runtime253, React108, jsx_runtime329, ROUTER_ADD_MODEL_OPTIO
485792
485819
  return;
485793
485820
  }
485794
485821
  if (args && args !== "?" && args !== "help") {
485795
- if (!isConfiguredRouterModel(router, args)) {
485796
- onDone(`Model '${args}' is not configured in model-router.json.`, { display: "system" });
485822
+ const resolvedSpec = resolveConfiguredRouterModel(router, args);
485823
+ if (!resolvedSpec) {
485824
+ onDone(`Model '${args}' is not configured in model-router.json. Try /model, /model pro, or /model flash.`, { display: "system" });
485797
485825
  return;
485798
485826
  }
485799
- router.setModelOverride(args);
485800
- updateSettingsForSource("userSettings", { model: args });
485827
+ router.setModelOverride(resolvedSpec);
485828
+ updateSettingsForSource("userSettings", { model: resolvedSpec });
485801
485829
  const current2 = router.getCurrentModel();
485802
485830
  syncRuntimeModel(current2);
485803
- onDone(`Set model to ${current2}`, { display: "system" });
485831
+ onDone(`Set model to ${current2} (manual override)`, { display: "system" });
485804
485832
  return;
485805
485833
  }
485806
485834
  if (COMMON_INFO_ARGS.includes(args)) {
@@ -491368,7 +491396,7 @@ function generateHtmlReport(data, insights) {
491368
491396
  </html>`;
491369
491397
  }
491370
491398
  function buildExportData(data, insights, facets, remoteStats) {
491371
- const version3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "unknown";
491399
+ const version3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "unknown";
491372
491400
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
491373
491401
  const facets_summary = {
491374
491402
  total: facets.size,
@@ -512561,7 +512589,8 @@ class ModelRouter {
512561
512589
  });
512562
512590
  const startedAt = Date.now();
512563
512591
  try {
512564
- const result = await provider3.complete({ ...buff.request, model: buff.model, stream: false });
512592
+ const runtimeRequest = this.attachRuntimeSelectedModelContext(buff.request, providerName, buff.model);
512593
+ const result = await provider3.complete({ ...runtimeRequest, model: buff.model, stream: false });
512565
512594
  recordDeepSeekBuffSample({
512566
512595
  decision: buff.decision,
512567
512596
  outcome: "success",
@@ -512601,7 +512630,8 @@ class ModelRouter {
512601
512630
  const startedAt = Date.now();
512602
512631
  let finalResult;
512603
512632
  try {
512604
- for await (const event of provider3.stream({ ...buff.request, model: buff.model, stream: true })) {
512633
+ const runtimeRequest = this.attachRuntimeSelectedModelContext(buff.request, providerName, buff.model);
512634
+ for await (const event of provider3.stream({ ...runtimeRequest, model: buff.model, stream: true })) {
512605
512635
  if (event.type === "error") {
512606
512636
  throw new Error(event.error || "unknown provider error");
512607
512637
  }
@@ -512691,6 +512721,27 @@ class ModelRouter {
512691
512721
  })
512692
512722
  };
512693
512723
  }
512724
+ attachRuntimeSelectedModelContext(request2, providerName, model) {
512725
+ const providerConfig = this.config.providers[providerName];
512726
+ if (!providerConfig || !isDeepSeekProviderConfig(providerName, providerConfig)) {
512727
+ return request2;
512728
+ }
512729
+ const selectedModel = `${providerName}/${model}`;
512730
+ return {
512731
+ ...request2,
512732
+ messages: [
512733
+ {
512734
+ role: "system",
512735
+ content: `Agent-OS runtime selected model: ${selectedModel}. ` + "If the user asks which model is currently in use, answer with this selected model."
512736
+ },
512737
+ ...request2.messages
512738
+ ],
512739
+ providerExtras: {
512740
+ ...request2.providerExtras,
512741
+ agentOsSelectedModel: selectedModel
512742
+ }
512743
+ };
512744
+ }
512694
512745
  }
512695
512746
  function normalizeModelSpec(value) {
512696
512747
  if (typeof value !== "string") {
@@ -515543,7 +515594,7 @@ var init_filesystem = __esm(() => {
515543
515594
  });
515544
515595
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
515545
515596
  const nonce = randomBytes18(16).toString("hex");
515546
- return join146(getClaudeTempDir(), "bundled-skills", "1.0.0-alpha.16", nonce);
515597
+ return join146(getClaudeTempDir(), "bundled-skills", "1.0.0-alpha.18", nonce);
515547
515598
  });
515548
515599
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
515549
515600
  });
@@ -521472,7 +521523,7 @@ function computeFingerprintFromMessages(messages) {
521472
521523
  }
521473
521524
  var AGENT_OS_VERSION5, FINGERPRINT_SALT = "59cf53e54c78";
521474
521525
  var init_fingerprint = __esm(() => {
521475
- AGENT_OS_VERSION5 = typeof MACRO !== "undefined" ? "1.0.0-alpha.16" : "dev";
521526
+ AGENT_OS_VERSION5 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
521476
521527
  });
521477
521528
 
521478
521529
  // src/services/compact/apiMicrocompact.ts
@@ -523226,7 +523277,7 @@ async function sideQuery(opts) {
523226
523277
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
523227
523278
  }
523228
523279
  const messageText = extractFirstUserMessageText(messages);
523229
- const fingerprint = computeFingerprint(messageText, "1.0.0-alpha.16");
523280
+ const fingerprint = computeFingerprint(messageText, "1.0.0-alpha.18");
523230
523281
  const attributionHeader = getAttributionHeader(fingerprint);
523231
523282
  const systemBlocks = [
523232
523283
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -525145,7 +525196,7 @@ function appendToLog(path24, message) {
525145
525196
  cwd: getFsImplementation().cwd(),
525146
525197
  userType: process.env.USER_TYPE,
525147
525198
  sessionId: getSessionId(),
525148
- version: "1.0.0-alpha.16"
525199
+ version: "1.0.0-alpha.18"
525149
525200
  };
525150
525201
  getLogWriter(path24).write(messageWithTimestamp);
525151
525202
  }
@@ -528123,7 +528174,7 @@ function getTelemetryAttributes() {
528123
528174
  attributes["session.id"] = sessionId;
528124
528175
  }
528125
528176
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
528126
- attributes["app.version"] = "1.0.0-alpha.16";
528177
+ attributes["app.version"] = "1.0.0-alpha.18";
528127
528178
  }
528128
528179
  if (envDynamic.terminal) {
528129
528180
  attributes["terminal.type"] = envDynamic.terminal;
@@ -538267,7 +538318,7 @@ function buildSystemInitMessage(inputs) {
538267
538318
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
538268
538319
  apiKeySource: getAnthropicApiKeyWithSource().source,
538269
538320
  betas: getSdkBetas(),
538270
- claude_code_version: "1.0.0-alpha.16",
538321
+ claude_code_version: "1.0.0-alpha.18",
538271
538322
  output_style: outputStyle2,
538272
538323
  agents: inputs.agents.map((agent) => agent.agentType),
538273
538324
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -560736,7 +560787,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
560736
560787
  project_dir: getOriginalCwd(),
560737
560788
  added_dirs: addedDirs
560738
560789
  },
560739
- version: "1.0.0-alpha.16",
560790
+ version: "1.0.0-alpha.18",
560740
560791
  output_style: {
560741
560792
  name: outputStyleName
560742
560793
  },
@@ -584088,7 +584139,7 @@ function WelcomeV2() {
584088
584139
  dimColor: true,
584089
584140
  children: [
584090
584141
  "v",
584091
- "1.0.0-alpha.16",
584142
+ "1.0.0-alpha.18",
584092
584143
  " "
584093
584144
  ]
584094
584145
  })
@@ -584288,7 +584339,7 @@ function WelcomeV2() {
584288
584339
  dimColor: true,
584289
584340
  children: [
584290
584341
  "v",
584291
- "1.0.0-alpha.16",
584342
+ "1.0.0-alpha.18",
584292
584343
  " "
584293
584344
  ]
584294
584345
  })
@@ -584514,7 +584565,7 @@ function AppleTerminalWelcomeV2(t0) {
584514
584565
  dimColor: true,
584515
584566
  children: [
584516
584567
  "v",
584517
- "1.0.0-alpha.16",
584568
+ "1.0.0-alpha.18",
584518
584569
  " "
584519
584570
  ]
584520
584571
  });
@@ -584768,7 +584819,7 @@ function AppleTerminalWelcomeV2(t0) {
584768
584819
  dimColor: true,
584769
584820
  children: [
584770
584821
  "v",
584771
- "1.0.0-alpha.16",
584822
+ "1.0.0-alpha.18",
584772
584823
  " "
584773
584824
  ]
584774
584825
  });
@@ -586234,7 +586285,7 @@ function completeOnboarding() {
586234
586285
  saveGlobalConfig((current) => ({
586235
586286
  ...current,
586236
586287
  hasCompletedOnboarding: true,
586237
- lastOnboardingVersion: "1.0.0-alpha.16"
586288
+ lastOnboardingVersion: "1.0.0-alpha.18"
586238
586289
  }));
586239
586290
  }
586240
586291
  function showDialog(root3, renderer) {
@@ -594697,8 +594748,8 @@ async function getEnvLessBridgeConfig() {
594697
594748
  }
594698
594749
  async function checkEnvLessBridgeMinVersion() {
594699
594750
  const cfg = await getEnvLessBridgeConfig();
594700
- if (cfg.min_version && lt("1.0.0-alpha.16", cfg.min_version)) {
594701
- return `Your version of Agent-OS (${"1.0.0-alpha.16"}) is too old for Remote Control.
594751
+ if (cfg.min_version && lt("1.0.0-alpha.18", cfg.min_version)) {
594752
+ return `Your version of Agent-OS (${"1.0.0-alpha.18"}) is too old for Remote Control.
594702
594753
  Version ${cfg.min_version} or higher is required. Run \`agent-os update\` to update.`;
594703
594754
  }
594704
594755
  return null;
@@ -595171,7 +595222,7 @@ async function initBridgeCore(params) {
595171
595222
  const rawApi = createBridgeApiClient({
595172
595223
  baseUrl,
595173
595224
  getAccessToken,
595174
- runnerVersion: "1.0.0-alpha.16",
595225
+ runnerVersion: "1.0.0-alpha.18",
595175
595226
  onDebug: logForDebugging,
595176
595227
  onAuth401,
595177
595228
  getTrustedDeviceToken
@@ -600850,7 +600901,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
600850
600901
  setCwd(cwd3);
600851
600902
  const server = new Server({
600852
600903
  name: "claude/tengu",
600853
- version: "1.0.0-alpha.16"
600904
+ version: "1.0.0-alpha.18"
600854
600905
  }, {
600855
600906
  capabilities: {
600856
600907
  tools: {}
@@ -606361,7 +606412,7 @@ ${customInstructions}` : customInstructions;
606361
606412
  }
606362
606413
  }
606363
606414
  logForDiagnosticsNoPII("info", "started", {
606364
- version: "1.0.0-alpha.16",
606415
+ version: "1.0.0-alpha.18",
606365
606416
  is_native_binary: isInBundledMode()
606366
606417
  });
606367
606418
  registerCleanup(async () => {
@@ -607153,7 +607204,7 @@ Usage: agent-os --remote "your task description"`, () => gracefulShutdown(1));
607153
607204
  pendingHookMessages
607154
607205
  }, renderAndRun);
607155
607206
  }
607156
- }).version("1.0.0-alpha.16 (Agent-OS)", "-v, --version", "Output the version number");
607207
+ }).version("1.0.0-alpha.18 (Agent-OS)", "-v, --version", "Output the version number");
607157
607208
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
607158
607209
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
607159
607210
  if (canUserConfigureAdvisor()) {
@@ -608991,7 +609042,7 @@ if (false) {}
608991
609042
  async function main2() {
608992
609043
  const args = process.argv.slice(2);
608993
609044
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
608994
- console.log(`${"1.0.0-alpha.16"} (Agent-OS)`);
609045
+ console.log(`${"1.0.0-alpha.18"} (Agent-OS)`);
608995
609046
  return;
608996
609047
  }
608997
609048
  const {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vionwilliams/agent-os",
3
- "version": "1.0.0-alpha.16",
3
+ "version": "1.0.0-alpha.18",
4
4
  "description": "Agent-OS — 智能任务通用工作系统:多模型路由、意图编排、多智能体协调、DataHub 与可编程面板。",
5
5
  "type": "module",
6
6
  "private": false,
@@ -72,7 +72,6 @@
72
72
  "dependencies": {
73
73
  "@alcalzone/ansi-tokenize": "^0.1.0",
74
74
  "@ant/claude-for-chrome-mcp": "file:./stubs/ant-claude-for-chrome-mcp",
75
- "@anthropic-ai/claude-agent-sdk": "^0.2.87",
76
75
  "@anthropic-ai/mcpb": "^2.1.2",
77
76
  "@anthropic-ai/sdk": "^0.81.0",
78
77
  "@aws-sdk/client-bedrock-runtime": "^3.700.0",