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

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 +2 -2
  2. package/dist/cli.js +122 -74
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 智能任务通用工作系统 · 多模型路由 + 意图编排 + 多智能体协调 + DataHub + 可编程面板 + LLM 知识编译器
4
4
 
5
- **Status**: `1.0.0-alpha.18` · Beta 测试版 · npm 公共包可用
5
+ **Status**: `1.0.0-alpha.19` · Beta 测试版 · npm 公共包可用
6
6
 
7
7
  ---
8
8
 
@@ -64,7 +64,7 @@ bash install-agent-os-mac.sh
64
64
  agent-os --version
65
65
  ```
66
66
 
67
- 成功时会显示 `1.0.0-alpha.18 (Agent-OS)` 或更新版本。
67
+ 成功时会显示 `1.0.0-alpha.19 (Agent-OS)` 或更新版本。
68
68
 
69
69
  然后打开 Agent-OS:
70
70
 
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.18" : "dev";
93310
+ AGENT_OS_VERSION = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "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.18" : "dev";
93754
+ AGENT_OS_VERSION2 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "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.18" : "dev";
93835
+ AGENT_OS_VERSION3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "dev";
93836
93836
  });
93837
93837
 
93838
93838
  // src/services/api/router/userProviders.ts
@@ -108830,8 +108830,10 @@ function convertToSandboxRuntimeConfig(settings) {
108830
108830
  denyWrite.push(resolve12(cwd2, ".claude", "settings.json"));
108831
108831
  denyWrite.push(resolve12(cwd2, ".claude", "settings.local.json"));
108832
108832
  }
108833
+ denyWrite.push(resolve12(originalCwd, ".agent-os", "skills"));
108833
108834
  denyWrite.push(resolve12(originalCwd, ".claude", "skills"));
108834
108835
  if (cwd2 !== originalCwd) {
108836
+ denyWrite.push(resolve12(cwd2, ".agent-os", "skills"));
108835
108837
  denyWrite.push(resolve12(cwd2, ".claude", "skills"));
108836
108838
  }
108837
108839
  bareGitRepoScrubPaths.length = 0;
@@ -207166,7 +207168,7 @@ var init_sessionStorage = __esm(() => {
207166
207168
  init_settings2();
207167
207169
  init_slowOperations();
207168
207170
  init_uuid();
207169
- VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "unknown";
207171
+ VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "unknown";
207170
207172
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
207171
207173
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
207172
207174
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -207296,7 +207298,7 @@ function Feedback({
207296
207298
  platform: env3.platform,
207297
207299
  gitRepo: envInfo.isGit,
207298
207300
  terminal: env3.terminal,
207299
- version: "1.0.0-alpha.18",
207301
+ version: "1.0.0-alpha.19",
207300
207302
  transcript: normalizeMessagesForAPI(messages),
207301
207303
  errors: sanitizedErrors,
207302
207304
  lastApiRequest: getLastAPIRequest(),
@@ -207480,7 +207482,7 @@ function Feedback({
207480
207482
  ", ",
207481
207483
  env3.terminal,
207482
207484
  ", v",
207483
- "1.0.0-alpha.18"
207485
+ "1.0.0-alpha.19"
207484
207486
  ]
207485
207487
  })
207486
207488
  ]
@@ -207586,7 +207588,7 @@ ${sanitizedDescription}
207586
207588
  ` + `**Environment Info**
207587
207589
  ` + `- Platform: ${env3.platform}
207588
207590
  ` + `- Terminal: ${env3.terminal}
207589
- ` + `- Version: ${"1.0.0-alpha.18"}
207591
+ ` + `- Version: ${"1.0.0-alpha.19"}
207590
207592
  ` + `- Feedback ID: ${feedbackId}
207591
207593
  ` + `
207592
207594
  **Errors**
@@ -259971,8 +259973,8 @@ var init_toolAnalytics = __esm(() => {
259971
259973
  init_agentContext();
259972
259974
  init_slowOperations();
259973
259975
  init_teammate();
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
+ AGENT_OS_VERSION4 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "dev";
259977
+ AGENT_OS_BUILD_TIME = typeof MACRO !== "undefined" ? "2026-05-20T18:19:54Z" : undefined;
259976
259978
  BUILTIN_MCP_SERVER_NAMES = new Set([]);
259977
259979
  TOOL_INPUT_MAX_JSON_CHARS = 4 * 1024;
259978
259980
  FILE_COMMANDS = new Set([
@@ -270151,6 +270153,21 @@ import {
270151
270153
  sep as pathSep,
270152
270154
  relative as relative8
270153
270155
  } from "path";
270156
+ function getProjectSkillsPath() {
270157
+ return join64(".agent-os", "skills");
270158
+ }
270159
+ function getProjectSkillsPathForRoot(root2) {
270160
+ return join64(root2, ".agent-os", "skills");
270161
+ }
270162
+ function getLegacyProjectSkillsPathForRoot(root2) {
270163
+ return join64(root2, ".claude", "skills");
270164
+ }
270165
+ function getAdditionalSkillsPaths(root2) {
270166
+ return [
270167
+ getProjectSkillsPathForRoot(root2),
270168
+ getLegacyProjectSkillsPathForRoot(root2)
270169
+ ];
270170
+ }
270154
270171
  function getSkillsPath(source, dir) {
270155
270172
  switch (source) {
270156
270173
  case "policySettings":
@@ -270158,7 +270175,7 @@ function getSkillsPath(source, dir) {
270158
270175
  case "userSettings":
270159
270176
  return join64(getClaudeConfigHomeDir(), dir);
270160
270177
  case "projectSettings":
270161
- return `.claude/${dir}`;
270178
+ return dir === "skills" ? getProjectSkillsPath() : `.claude/${dir}`;
270162
270179
  case "plugin":
270163
270180
  return "plugin";
270164
270181
  default:
@@ -270482,8 +270499,14 @@ async function discoverSkillDirsForPaths(filePaths, cwd2) {
270482
270499
  for (const filePath of filePaths) {
270483
270500
  let currentDir = dirname27(filePath);
270484
270501
  while (currentDir.startsWith(resolvedCwd + pathSep)) {
270485
- const skillDir = join64(currentDir, ".claude", "skills");
270486
- if (!dynamicSkillDirs.has(skillDir)) {
270502
+ const skillDirs = [
270503
+ getProjectSkillsPathForRoot(currentDir),
270504
+ getLegacyProjectSkillsPathForRoot(currentDir)
270505
+ ];
270506
+ for (const skillDir of skillDirs) {
270507
+ if (dynamicSkillDirs.has(skillDir)) {
270508
+ continue;
270509
+ }
270487
270510
  dynamicSkillDirs.add(skillDir);
270488
270511
  try {
270489
270512
  await fs6.stat(skillDir);
@@ -270601,7 +270624,7 @@ var init_loadSkillsDir = __esm(() => {
270601
270624
  logForDebugging(`[bare] Skipping skill dir discovery (${additionalDirs.length === 0 ? "no --add-dir" : "projectSettings disabled or skillsLocked"})`);
270602
270625
  return [];
270603
270626
  }
270604
- const additionalSkillsNested2 = await Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join64(dir, ".claude", "skills"), "projectSettings")));
270627
+ const additionalSkillsNested2 = await Promise.all(additionalDirs.flatMap((dir) => getAdditionalSkillsPaths(dir)).map((dir) => loadSkillsFromSkillsDir(dir, "projectSettings")));
270605
270628
  return additionalSkillsNested2.flat().map((s2) => s2.skill);
270606
270629
  }
270607
270630
  const [
@@ -270614,7 +270637,7 @@ var init_loadSkillsDir = __esm(() => {
270614
270637
  isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_POLICY_SKILLS) ? Promise.resolve([]) : loadSkillsFromSkillsDir(managedSkillsDir, "policySettings"),
270615
270638
  isSettingSourceEnabled("userSettings") && !skillsLocked ? loadSkillsFromSkillsDir(userSkillsDir, "userSettings") : Promise.resolve([]),
270616
270639
  projectSettingsEnabled ? Promise.all(projectSkillsDirs.map((dir) => loadSkillsFromSkillsDir(dir, "projectSettings"))) : Promise.resolve([]),
270617
- projectSettingsEnabled ? Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join64(dir, ".claude", "skills"), "projectSettings"))) : Promise.resolve([]),
270640
+ projectSettingsEnabled ? Promise.all(additionalDirs.flatMap((dir) => getAdditionalSkillsPaths(dir)).map((dir) => loadSkillsFromSkillsDir(dir, "projectSettings"))) : Promise.resolve([]),
270618
270641
  skillsLocked ? Promise.resolve([]) : loadSkillsFromCommandsDir(cwd2)
270619
270642
  ]);
270620
270643
  const allSkillsWithPaths = [
@@ -274576,7 +274599,7 @@ function getInstallationEnv() {
274576
274599
  return;
274577
274600
  }
274578
274601
  function getClaudeCodeVersion() {
274579
- return "1.0.0-alpha.18";
274602
+ return "1.0.0-alpha.19";
274580
274603
  }
274581
274604
  async function getInstalledVSCodeExtensionVersion(command) {
274582
274605
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -297294,7 +297317,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
297294
297317
  const client = new Client({
297295
297318
  name: "claude-code",
297296
297319
  title: "Agent-OS",
297297
- version: "1.0.0-alpha.18",
297320
+ version: "1.0.0-alpha.19",
297298
297321
  description: "Anthropic's agentic coding tool",
297299
297322
  websiteUrl: PRODUCT_URL
297300
297323
  }, {
@@ -297647,7 +297670,7 @@ var init_client4 = __esm(() => {
297647
297670
  const client = new Client({
297648
297671
  name: "claude-code",
297649
297672
  title: "Agent-OS",
297650
- version: "1.0.0-alpha.18",
297673
+ version: "1.0.0-alpha.19",
297651
297674
  description: "Anthropic's agentic coding tool",
297652
297675
  websiteUrl: PRODUCT_URL
297653
297676
  }, {
@@ -416284,7 +416307,7 @@ function getInvokedBinary() {
416284
416307
  async function getDoctorDiagnostic() {
416285
416308
  return {
416286
416309
  installationType: "package-manager",
416287
- version: "1.0.0-alpha.18",
416310
+ version: "1.0.0-alpha.19",
416288
416311
  installationPath: process.argv[1] ?? "",
416289
416312
  invokedBinary: getInvokedBinary(),
416290
416313
  configInstallMethod: "not set",
@@ -416689,7 +416712,7 @@ function buildPrimarySection() {
416689
416712
  });
416690
416713
  return [{
416691
416714
  label: "Version",
416692
- value: "1.0.0-alpha.18"
416715
+ value: "1.0.0-alpha.19"
416693
416716
  }, {
416694
416717
  label: "Session name",
416695
416718
  value: nameValue
@@ -420332,7 +420355,7 @@ function Config({
420332
420355
  }
420333
420356
  })
420334
420357
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime169.jsx(ChannelDowngradeDialog, {
420335
- currentVersion: "1.0.0-alpha.18",
420358
+ currentVersion: "1.0.0-alpha.19",
420336
420359
  onChoice: (choice) => {
420337
420360
  setShowSubmenu(null);
420338
420361
  setTabsHidden(false);
@@ -420344,7 +420367,7 @@ function Config({
420344
420367
  autoUpdatesChannel: "stable"
420345
420368
  };
420346
420369
  if (choice === "stay") {
420347
- newSettings.minimumVersion = "1.0.0-alpha.18";
420370
+ newSettings.minimumVersion = "1.0.0-alpha.19";
420348
420371
  }
420349
420372
  updateSettingsForSource("userSettings", newSettings);
420350
420373
  setSettingsData((prev_27) => ({
@@ -428335,7 +428358,7 @@ function HelpV2(t0) {
428335
428358
  let t6;
428336
428359
  if ($3[31] !== tabs) {
428337
428360
  t6 = /* @__PURE__ */ jsx_runtime195.jsx(Tabs, {
428338
- title: `Agent-OS v${"1.0.0-alpha.18"}`,
428361
+ title: `Agent-OS v${"1.0.0-alpha.19"}`,
428339
428362
  color: "professionalBlue",
428340
428363
  defaultTab: "general",
428341
428364
  children: tabs
@@ -429664,9 +429687,9 @@ Based on the areas detected in Phase 1, you may need to create multiple verifier
429664
429687
 
429665
429688
  ## Phase 4: Generate Verifier Skill
429666
429689
 
429667
- **All verifier skills are created in the project root's \`.claude/skills/\` directory.** This ensures they are automatically loaded when Agent-OS runs in the project.
429690
+ **All verifier skills are created in the project root's \`.agent-os/skills/\` directory.** This ensures they are automatically loaded when Agent-OS runs in the project.
429668
429691
 
429669
- Write the skill file to \`.claude/skills/<verifier-name>/SKILL.md\`.
429692
+ Write the skill file to \`.agent-os/skills/<verifier-name>/SKILL.md\`.
429670
429693
 
429671
429694
  ### Skill Template Structure
429672
429695
 
@@ -429750,7 +429773,7 @@ allowed-tools:
429750
429773
  ## Phase 5: Confirm Creation
429751
429774
 
429752
429775
  After writing the skill file(s), inform the user:
429753
- 1. Where each skill was created (always in \`.claude/skills/\`)
429776
+ 1. Where each skill was created (always in \`.agent-os/skills/\`)
429754
429777
  2. How the Verify agent will discover them \u2014 the folder name must contain "verifier" (case-insensitive) for automatic discovery
429755
429778
  3. That they can edit the skills to customize them
429756
429779
  4. That they can run /init-verifiers again to add more verifiers for other areas
@@ -431463,7 +431486,7 @@ var init_user = __esm(() => {
431463
431486
  deviceId,
431464
431487
  sessionId: getSessionId(),
431465
431488
  email: getEmail(),
431466
- appVersion: "1.0.0-alpha.18",
431489
+ appVersion: "1.0.0-alpha.19",
431467
431490
  platform: getHostPlatformForAnalytics(),
431468
431491
  organizationUuid,
431469
431492
  accountUuid,
@@ -451714,7 +451737,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
451714
451737
  return [];
451715
451738
  }
451716
451739
  }
451717
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alpha.18") {
451740
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alpha.19") {
451718
451741
  if (process.env.USER_TYPE === "ant") {
451719
451742
  const changelog = "";
451720
451743
  if (changelog) {
@@ -451741,7 +451764,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.0-alp
451741
451764
  releaseNotes
451742
451765
  };
451743
451766
  }
451744
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.0-alpha.18") {
451767
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.0-alpha.19") {
451745
451768
  if (process.env.USER_TYPE === "ant") {
451746
451769
  const changelog = "";
451747
451770
  if (changelog) {
@@ -452868,7 +452891,7 @@ function getRecentActivitySync() {
452868
452891
  return cachedActivity;
452869
452892
  }
452870
452893
  function getLogoDisplayData() {
452871
- const version2 = process.env.DEMO_VERSION ?? "1.0.0-alpha.18";
452894
+ const version2 = process.env.DEMO_VERSION ?? "1.0.0-alpha.19";
452872
452895
  const serverUrl = getDirectConnectServerUrl();
452873
452896
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
452874
452897
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -454083,7 +454106,7 @@ function LogoV2() {
454083
454106
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
454084
454107
  t2 = () => {
454085
454108
  const currentConfig = getGlobalConfig();
454086
- if (currentConfig.lastReleaseNotesSeen === "1.0.0-alpha.18") {
454109
+ if (currentConfig.lastReleaseNotesSeen === "1.0.0-alpha.19") {
454087
454110
  return;
454088
454111
  }
454089
454112
  saveGlobalConfig(_temp328);
@@ -454749,12 +454772,12 @@ function AgentOsPoster() {
454749
454772
  });
454750
454773
  }
454751
454774
  function _temp328(current) {
454752
- if (current.lastReleaseNotesSeen === "1.0.0-alpha.18") {
454775
+ if (current.lastReleaseNotesSeen === "1.0.0-alpha.19") {
454753
454776
  return current;
454754
454777
  }
454755
454778
  return {
454756
454779
  ...current,
454757
- lastReleaseNotesSeen: "1.0.0-alpha.18"
454780
+ lastReleaseNotesSeen: "1.0.0-alpha.19"
454758
454781
  };
454759
454782
  }
454760
454783
  function _temp245(s_0) {
@@ -481331,7 +481354,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
481331
481354
  smapsRollup,
481332
481355
  platform: process.platform,
481333
481356
  nodeVersion: process.version,
481334
- ccVersion: "1.0.0-alpha.18"
481357
+ ccVersion: "1.0.0-alpha.19"
481335
481358
  };
481336
481359
  }
481337
481360
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -481904,7 +481927,7 @@ var init_bridge_kick = __esm(() => {
481904
481927
  var call58 = async () => {
481905
481928
  return {
481906
481929
  type: "text",
481907
- value: `${"1.0.0-alpha.18"} (built ${"2026-05-20T10:43:03Z"})`
481930
+ value: `${"1.0.0-alpha.19"} (built ${"2026-05-20T18:19:54Z"})`
481908
481931
  };
481909
481932
  }, version2, version_default;
481910
481933
  var init_version = __esm(() => {
@@ -491396,7 +491419,7 @@ function generateHtmlReport(data, insights) {
491396
491419
  </html>`;
491397
491420
  }
491398
491421
  function buildExportData(data, insights, facets, remoteStats) {
491399
- const version3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "unknown";
491422
+ const version3 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "unknown";
491400
491423
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
491401
491424
  const facets_summary = {
491402
491425
  total: facets.size,
@@ -508556,6 +508579,15 @@ import { statSync as statSync12 } from "fs";
508556
508579
  import { lstat as lstat4, readdir as readdir27, readFile as readFile49, realpath as realpath9, stat as stat38 } from "fs/promises";
508557
508580
  import { homedir as homedir33 } from "os";
508558
508581
  import { dirname as dirname59, join as join143, resolve as resolve46, sep as sep33 } from "path";
508582
+ function getProjectConfigSubdirCandidates(root3, subdir) {
508583
+ if (subdir === "skills") {
508584
+ return [
508585
+ join143(root3, ".agent-os", subdir),
508586
+ join143(root3, ".claude", subdir)
508587
+ ];
508588
+ }
508589
+ return [join143(root3, ".claude", subdir)];
508590
+ }
508559
508591
  function extractDescriptionFromMarkdown(content, defaultDescription = "Custom item") {
508560
508592
  const lines2 = content.split(`
508561
508593
  `);
@@ -508645,13 +508677,15 @@ function getProjectDirsUpToHome(subdir, cwd2) {
508645
508677
  if (normalizePathForComparison(current) === normalizePathForComparison(home)) {
508646
508678
  break;
508647
508679
  }
508648
- const claudeSubdir = join143(current, ".claude", subdir);
508649
- try {
508650
- statSync12(claudeSubdir);
508651
- dirs.push(claudeSubdir);
508652
- } catch (e2) {
508653
- if (!isFsInaccessible(e2))
508654
- throw e2;
508680
+ const candidateSubdirs = getProjectConfigSubdirCandidates(current, subdir);
508681
+ for (const candidateSubdir of candidateSubdirs) {
508682
+ try {
508683
+ statSync12(candidateSubdir);
508684
+ dirs.push(candidateSubdir);
508685
+ } catch (e2) {
508686
+ if (!isFsInaccessible(e2))
508687
+ throw e2;
508688
+ }
508655
508689
  }
508656
508690
  if (gitRoot && normalizePathForComparison(current) === normalizePathForComparison(gitRoot)) {
508657
508691
  break;
@@ -508795,12 +508829,13 @@ var init_markdownConfigLoader = __esm(() => {
508795
508829
  const gitRoot = findGitRoot(cwd2);
508796
508830
  const canonicalRoot = findCanonicalGitRoot(cwd2);
508797
508831
  if (gitRoot && canonicalRoot && canonicalRoot !== gitRoot) {
508798
- const worktreeSubdir = normalizePathForComparison(join143(gitRoot, ".claude", subdir));
508799
- const worktreeHasSubdir = projectDirs.some((dir) => normalizePathForComparison(dir) === worktreeSubdir);
508832
+ const worktreeSubdirs = getProjectConfigSubdirCandidates(gitRoot, subdir).map((dir) => normalizePathForComparison(dir));
508833
+ const worktreeHasSubdir = projectDirs.some((dir) => worktreeSubdirs.includes(normalizePathForComparison(dir)));
508800
508834
  if (!worktreeHasSubdir) {
508801
- const mainClaudeSubdir = join143(canonicalRoot, ".claude", subdir);
508802
- if (!projectDirs.includes(mainClaudeSubdir)) {
508803
- projectDirs.push(mainClaudeSubdir);
508835
+ for (const mainSubdir of getProjectConfigSubdirCandidates(canonicalRoot, subdir)) {
508836
+ if (!projectDirs.includes(mainSubdir)) {
508837
+ projectDirs.push(mainSubdir);
508838
+ }
508804
508839
  }
508805
508840
  }
508806
508841
  }
@@ -514720,6 +514755,14 @@ function getClaudeSkillScope(filePath) {
514720
514755
  const absolutePath = expandPath(filePath);
514721
514756
  const absolutePathLower = normalizeCaseForComparison(absolutePath);
514722
514757
  const bases = [
514758
+ {
514759
+ dir: expandPath(join146(getOriginalCwd(), ".agent-os", "skills")),
514760
+ prefix: "/.agent-os/skills/"
514761
+ },
514762
+ {
514763
+ dir: expandPath(join146(getClaudeConfigHomeDir(), "skills")),
514764
+ prefix: "~/.agent-os/skills/"
514765
+ },
514723
514766
  {
514724
514767
  dir: expandPath(join146(getOriginalCwd(), ".claude", "skills")),
514725
514768
  prefix: "/.claude/skills/"
@@ -515594,7 +515637,7 @@ var init_filesystem = __esm(() => {
515594
515637
  });
515595
515638
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
515596
515639
  const nonce = randomBytes18(16).toString("hex");
515597
- return join146(getClaudeTempDir(), "bundled-skills", "1.0.0-alpha.18", nonce);
515640
+ return join146(getClaudeTempDir(), "bundled-skills", "1.0.0-alpha.19", nonce);
515598
515641
  });
515599
515642
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
515600
515643
  });
@@ -520825,6 +520868,7 @@ function getSessionSpecificGuidanceSection(enabledTools, skillToolCommands) {
520825
520868
  `For broader codebase exploration and deep research, use the ${AGENT_TOOL_NAME} tool with subagent_type=${EXPLORE_AGENT.agentType}. This is slower than using ${searchTools} directly, so use this only when a simple, directed search proves to be insufficient or when your task will clearly require more than ${EXPLORE_AGENT_MIN_QUERIES} queries.`
520826
520869
  ] : [],
520827
520870
  hasSkills ? `/<skill-name> (e.g., /commit) is shorthand for users to invoke a user-invocable skill. When executed, the skill gets expanded to a full prompt. Use the ${SKILL_TOOL_NAME} tool to execute them. IMPORTANT: Only use ${SKILL_TOOL_NAME} for skills listed in its user-invocable skills section - do not guess or use built-in CLI commands.` : null,
520871
+ `Agent-OS project skills must be created under \`.agent-os/skills/<skill-name>/SKILL.md\`; global user skills must be created under \`~/.agent-os/skills/<skill-name>/SKILL.md\`. Do not create new skills under \`.claude/skills\` unless the user explicitly asks for legacy Claude Code compatibility.`,
520828
520872
  DISCOVER_SKILLS_TOOL_NAME !== null && hasSkills && enabledTools.has(DISCOVER_SKILLS_TOOL_NAME) ? getDiscoverSkillsGuidance() : null,
520829
520873
  null
520830
520874
  ].filter((item) => item !== null);
@@ -521523,7 +521567,7 @@ function computeFingerprintFromMessages(messages) {
521523
521567
  }
521524
521568
  var AGENT_OS_VERSION5, FINGERPRINT_SALT = "59cf53e54c78";
521525
521569
  var init_fingerprint = __esm(() => {
521526
- AGENT_OS_VERSION5 = typeof MACRO !== "undefined" ? "1.0.0-alpha.18" : "dev";
521570
+ AGENT_OS_VERSION5 = typeof MACRO !== "undefined" ? "1.0.0-alpha.19" : "dev";
521527
521571
  });
521528
521572
 
521529
521573
  // src/services/compact/apiMicrocompact.ts
@@ -523277,7 +523321,7 @@ async function sideQuery(opts) {
523277
523321
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
523278
523322
  }
523279
523323
  const messageText = extractFirstUserMessageText(messages);
523280
- const fingerprint = computeFingerprint(messageText, "1.0.0-alpha.18");
523324
+ const fingerprint = computeFingerprint(messageText, "1.0.0-alpha.19");
523281
523325
  const attributionHeader = getAttributionHeader(fingerprint);
523282
523326
  const systemBlocks = [
523283
523327
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -525196,7 +525240,7 @@ function appendToLog(path24, message) {
525196
525240
  cwd: getFsImplementation().cwd(),
525197
525241
  userType: process.env.USER_TYPE,
525198
525242
  sessionId: getSessionId(),
525199
- version: "1.0.0-alpha.18"
525243
+ version: "1.0.0-alpha.19"
525200
525244
  };
525201
525245
  getLogWriter(path24).write(messageWithTimestamp);
525202
525246
  }
@@ -528174,7 +528218,7 @@ function getTelemetryAttributes() {
528174
528218
  attributes["session.id"] = sessionId;
528175
528219
  }
528176
528220
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
528177
- attributes["app.version"] = "1.0.0-alpha.18";
528221
+ attributes["app.version"] = "1.0.0-alpha.19";
528178
528222
  }
528179
528223
  if (envDynamic.terminal) {
528180
528224
  attributes["terminal.type"] = envDynamic.terminal;
@@ -538318,7 +538362,7 @@ function buildSystemInitMessage(inputs) {
538318
538362
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
538319
538363
  apiKeySource: getAnthropicApiKeyWithSource().source,
538320
538364
  betas: getSdkBetas(),
538321
- claude_code_version: "1.0.0-alpha.18",
538365
+ claude_code_version: "1.0.0-alpha.19",
538322
538366
  output_style: outputStyle2,
538323
538367
  agents: inputs.agents.map((agent) => agent.agentType),
538324
538368
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -560787,7 +560831,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
560787
560831
  project_dir: getOriginalCwd(),
560788
560832
  added_dirs: addedDirs
560789
560833
  },
560790
- version: "1.0.0-alpha.18",
560834
+ version: "1.0.0-alpha.19",
560791
560835
  output_style: {
560792
560836
  name: outputStyleName
560793
560837
  },
@@ -567227,7 +567271,7 @@ async function applySkillImprovement(skillName, updates) {
567227
567271
  return;
567228
567272
  const { join: join159 } = await import("path");
567229
567273
  const fs10 = await import("fs/promises");
567230
- const filePath = join159(getCwd(), ".claude", "skills", skillName, "SKILL.md");
567274
+ const filePath = join159(getCwd(), ".agent-os", "skills", skillName, "SKILL.md");
567231
567275
  let currentContent;
567232
567276
  try {
567233
567277
  currentContent = await fs10.readFile(filePath, "utf-8");
@@ -570317,11 +570361,15 @@ async function getWatchablePaths() {
570317
570361
  } catch {}
570318
570362
  }
570319
570363
  for (const dir of getAdditionalDirectoriesForClaudeMd()) {
570320
- const additionalSkillsPath = platformPath2.join(dir, ".claude", "skills");
570321
- try {
570322
- await fs11.stat(additionalSkillsPath);
570323
- paths2.push(additionalSkillsPath);
570324
- } catch {}
570364
+ for (const additionalSkillsPath of [
570365
+ platformPath2.join(dir, ".agent-os", "skills"),
570366
+ platformPath2.join(dir, ".claude", "skills")
570367
+ ]) {
570368
+ try {
570369
+ await fs11.stat(additionalSkillsPath);
570370
+ paths2.push(additionalSkillsPath);
570371
+ } catch {}
570372
+ }
570325
570373
  }
570326
570374
  return paths2;
570327
570375
  }
@@ -574350,7 +574398,7 @@ var init_tipRegistry = __esm(() => {
574350
574398
  },
574351
574399
  {
574352
574400
  id: "custom-commands",
574353
- content: async () => "Create skills by adding .md files to .claude/skills/ in your project or ~/.agent-os/skills/ for skills that work in any project",
574401
+ content: async () => "Create skills by adding SKILL.md files to .agent-os/skills/ in your project or ~/.agent-os/skills/ for skills that work in any project",
574354
574402
  cooldownSessions: 15,
574355
574403
  async isRelevant() {
574356
574404
  const config4 = getGlobalConfig();
@@ -584139,7 +584187,7 @@ function WelcomeV2() {
584139
584187
  dimColor: true,
584140
584188
  children: [
584141
584189
  "v",
584142
- "1.0.0-alpha.18",
584190
+ "1.0.0-alpha.19",
584143
584191
  " "
584144
584192
  ]
584145
584193
  })
@@ -584339,7 +584387,7 @@ function WelcomeV2() {
584339
584387
  dimColor: true,
584340
584388
  children: [
584341
584389
  "v",
584342
- "1.0.0-alpha.18",
584390
+ "1.0.0-alpha.19",
584343
584391
  " "
584344
584392
  ]
584345
584393
  })
@@ -584565,7 +584613,7 @@ function AppleTerminalWelcomeV2(t0) {
584565
584613
  dimColor: true,
584566
584614
  children: [
584567
584615
  "v",
584568
- "1.0.0-alpha.18",
584616
+ "1.0.0-alpha.19",
584569
584617
  " "
584570
584618
  ]
584571
584619
  });
@@ -584819,7 +584867,7 @@ function AppleTerminalWelcomeV2(t0) {
584819
584867
  dimColor: true,
584820
584868
  children: [
584821
584869
  "v",
584822
- "1.0.0-alpha.18",
584870
+ "1.0.0-alpha.19",
584823
584871
  " "
584824
584872
  ]
584825
584873
  });
@@ -586285,7 +586333,7 @@ function completeOnboarding() {
586285
586333
  saveGlobalConfig((current) => ({
586286
586334
  ...current,
586287
586335
  hasCompletedOnboarding: true,
586288
- lastOnboardingVersion: "1.0.0-alpha.18"
586336
+ lastOnboardingVersion: "1.0.0-alpha.19"
586289
586337
  }));
586290
586338
  }
586291
586339
  function showDialog(root3, renderer) {
@@ -589186,7 +589234,7 @@ You will use the AskUserQuestion to understand what the user wants to automate.
589186
589234
  - If you think the skill will require arguments, suggest arguments based on what you observed. Make sure you understand what someone would need to provide.
589187
589235
  - If it's not clear, ask if this skill should run inline (in the current conversation) or forked (as a sub-agent with its own context). Forked is better for self-contained tasks that don't need mid-process user input; inline is better when the user wants to steer mid-process.
589188
589236
  - Ask where the skill should be saved. Suggest a default based on context (repo-specific workflows \u2192 repo, cross-repo personal workflows \u2192 user). Options:
589189
- - **This repo** (\`.claude/skills/<name>/SKILL.md\`) \u2014 for workflows specific to this project
589237
+ - **This repo** (\`.agent-os/skills/<name>/SKILL.md\`) \u2014 for workflows specific to this project
589190
589238
  - **Personal** (\`~/.agent-os/skills/<name>/SKILL.md\`) \u2014 follows you across all repos
589191
589239
 
589192
589240
  **Round 3: Breaking down each step**
@@ -594748,8 +594796,8 @@ async function getEnvLessBridgeConfig() {
594748
594796
  }
594749
594797
  async function checkEnvLessBridgeMinVersion() {
594750
594798
  const cfg = await getEnvLessBridgeConfig();
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.
594799
+ if (cfg.min_version && lt("1.0.0-alpha.19", cfg.min_version)) {
594800
+ return `Your version of Agent-OS (${"1.0.0-alpha.19"}) is too old for Remote Control.
594753
594801
  Version ${cfg.min_version} or higher is required. Run \`agent-os update\` to update.`;
594754
594802
  }
594755
594803
  return null;
@@ -595222,7 +595270,7 @@ async function initBridgeCore(params) {
595222
595270
  const rawApi = createBridgeApiClient({
595223
595271
  baseUrl,
595224
595272
  getAccessToken,
595225
- runnerVersion: "1.0.0-alpha.18",
595273
+ runnerVersion: "1.0.0-alpha.19",
595226
595274
  onDebug: logForDebugging,
595227
595275
  onAuth401,
595228
595276
  getTrustedDeviceToken
@@ -600901,7 +600949,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
600901
600949
  setCwd(cwd3);
600902
600950
  const server = new Server({
600903
600951
  name: "claude/tengu",
600904
- version: "1.0.0-alpha.18"
600952
+ version: "1.0.0-alpha.19"
600905
600953
  }, {
600906
600954
  capabilities: {
600907
600955
  tools: {}
@@ -606412,7 +606460,7 @@ ${customInstructions}` : customInstructions;
606412
606460
  }
606413
606461
  }
606414
606462
  logForDiagnosticsNoPII("info", "started", {
606415
- version: "1.0.0-alpha.18",
606463
+ version: "1.0.0-alpha.19",
606416
606464
  is_native_binary: isInBundledMode()
606417
606465
  });
606418
606466
  registerCleanup(async () => {
@@ -607204,7 +607252,7 @@ Usage: agent-os --remote "your task description"`, () => gracefulShutdown(1));
607204
607252
  pendingHookMessages
607205
607253
  }, renderAndRun);
607206
607254
  }
607207
- }).version("1.0.0-alpha.18 (Agent-OS)", "-v, --version", "Output the version number");
607255
+ }).version("1.0.0-alpha.19 (Agent-OS)", "-v, --version", "Output the version number");
607208
607256
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
607209
607257
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
607210
607258
  if (canUserConfigureAdvisor()) {
@@ -609042,7 +609090,7 @@ if (false) {}
609042
609090
  async function main2() {
609043
609091
  const args = process.argv.slice(2);
609044
609092
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
609045
- console.log(`${"1.0.0-alpha.18"} (Agent-OS)`);
609093
+ console.log(`${"1.0.0-alpha.19"} (Agent-OS)`);
609046
609094
  return;
609047
609095
  }
609048
609096
  const {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vionwilliams/agent-os",
3
- "version": "1.0.0-alpha.18",
3
+ "version": "1.0.0-alpha.19",
4
4
  "description": "Agent-OS — 智能任务通用工作系统:多模型路由、意图编排、多智能体协调、DataHub 与可编程面板。",
5
5
  "type": "module",
6
6
  "private": false,