@sleep2agi/agent-network 2.3.0-preview.13 → 2.3.0-preview.130

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 (135) hide show
  1. package/README.md +35 -324
  2. package/dist/bin/anet.cjs +101 -0
  3. package/dist/bin/cli.d.ts +1 -0
  4. package/dist/bin/cli.js +20 -1
  5. package/dist/bin/goal-wake-log-render.d.ts +31 -0
  6. package/dist/src/active-network-task.d.ts +28 -0
  7. package/dist/src/batch-workdir.d.ts +9 -0
  8. package/dist/src/bootstrap-password-db.d.ts +13 -0
  9. package/dist/src/channel-attachments.d.ts +29 -0
  10. package/dist/src/channel-inbox-wake.d.ts +21 -0
  11. package/dist/src/channel-meta.d.ts +10 -0
  12. package/dist/src/channel-peer-reply.d.ts +41 -0
  13. package/dist/src/channel-task-trace.d.ts +14 -0
  14. package/dist/src/claude-vendor-env.d.ts +28 -0
  15. package/dist/src/cli-args.d.ts +8 -0
  16. package/dist/src/cli-auth-session.d.ts +47 -0
  17. package/dist/src/cli-exit.d.ts +11 -0
  18. package/dist/src/cli-version-display.d.ts +16 -0
  19. package/dist/src/client-task-trace.d.ts +9 -0
  20. package/dist/src/client.js +1 -1
  21. package/dist/src/codex-auth-fingerprint.d.ts +211 -0
  22. package/dist/src/codex-copresence-model.d.ts +23 -0
  23. package/dist/src/codex-copresence-preflight.d.ts +65 -0
  24. package/dist/src/codex-copresence-profile.d.ts +125 -0
  25. package/dist/src/codex-copresence-recovery.d.ts +58 -0
  26. package/dist/src/codex-copresence-thread.d.ts +13 -0
  27. package/dist/src/codex-home-enforce.d.ts +71 -0
  28. package/dist/src/codex-lifecycle-account.d.ts +104 -0
  29. package/dist/src/codex-lifecycle-canary.d.ts +20 -0
  30. package/dist/src/codex-lifecycle-facts.d.ts +53 -0
  31. package/dist/src/codex-lifecycle-fork.d.ts +91 -0
  32. package/dist/src/codex-lifecycle-preflight.d.ts +77 -0
  33. package/dist/src/codex-lifecycle-receipt.d.ts +44 -0
  34. package/dist/src/codex-lifecycle-restart.d.ts +86 -0
  35. package/dist/src/codex-login-share-guard.d.ts +146 -0
  36. package/dist/src/codex-model-default.d.ts +6 -0
  37. package/dist/src/codex-tui-client-health.d.ts +30 -0
  38. package/dist/src/commhub-response.d.ts +1 -0
  39. package/dist/src/controlled-upload.d.ts +83 -0
  40. package/dist/src/copresence-deps.d.ts +22 -0
  41. package/dist/src/copresence-identity.d.ts +353 -0
  42. package/dist/src/copresence-startup-diagnosis.d.ts +17 -0
  43. package/dist/src/daemon-anet-bin.d.ts +32 -0
  44. package/dist/src/daemon-capability-display.d.ts +110 -0
  45. package/dist/src/daemon-capability-display.js +21 -0
  46. package/dist/src/daemon-runtime-path-preflight.d.ts +22 -0
  47. package/dist/src/daemon-runtime-staleness.d.ts +13 -0
  48. package/dist/src/dashboard-managed-process.d.ts +35 -0
  49. package/dist/src/display-width.d.ts +27 -0
  50. package/dist/src/doctor-node-count.d.ts +28 -0
  51. package/dist/src/environ-alias.d.ts +14 -0
  52. package/dist/src/grok-attach-client.d.ts +129 -0
  53. package/dist/src/grok-build-drift.d.ts +15 -0
  54. package/dist/src/grok-copresence-disclosure.d.ts +11 -0
  55. package/dist/src/grok-copresence-orchestration.d.ts +75 -0
  56. package/dist/src/grok-copresence-profile.d.ts +65 -0
  57. package/dist/src/grok-create-mode.d.ts +19 -0
  58. package/dist/src/host-telemetry.d.ts +14 -0
  59. package/dist/src/hub-health-timeout.d.ts +4 -0
  60. package/dist/src/hub-server-version.d.ts +64 -0
  61. package/dist/src/hub-stop.d.ts +74 -0
  62. package/dist/src/hub-time-display.d.ts +20 -0
  63. package/dist/src/hub-version-skew.d.ts +19 -0
  64. package/dist/src/im/correlation-store.d.ts +34 -0
  65. package/dist/src/im/feishu/adapter.d.ts +80 -0
  66. package/dist/src/im/feishu/bridge.d.ts +78 -14
  67. package/dist/src/im/feishu/config.d.ts +31 -0
  68. package/dist/src/im/feishu/hub-upload.d.ts +88 -0
  69. package/dist/src/im/feishu/outbound-route.d.ts +62 -0
  70. package/dist/src/im/feishu/worker-lifecycle.d.ts +13 -0
  71. package/dist/src/im/feishu/worker.js +187 -144
  72. package/dist/src/im/types.d.ts +30 -1
  73. package/dist/src/inbox-drain.d.ts +20 -0
  74. package/dist/src/local-process-state.d.ts +12 -0
  75. package/dist/src/locale-diagnostic.d.ts +12 -0
  76. package/dist/src/login-client-label.d.ts +6 -0
  77. package/dist/src/ls-columns.d.ts +15 -0
  78. package/dist/src/mock-llm.d.ts +12 -0
  79. package/dist/src/node-activity-log.d.ts +4 -0
  80. package/dist/src/node-clone.d.ts +134 -0
  81. package/dist/src/node-files.d.ts +62 -0
  82. package/dist/src/node-not-found.d.ts +1 -0
  83. package/dist/src/node-running-guard.d.ts +9 -0
  84. package/dist/src/node-server-identity.d.ts +35 -0
  85. package/dist/src/node-server-payload.d.ts +66 -0
  86. package/dist/src/node-server-rules-file.d.ts +14 -0
  87. package/dist/src/node-server.js +7 -1
  88. package/dist/src/node-skills.d.ts +32 -0
  89. package/dist/src/normalize-runtime.d.ts +29 -2
  90. package/dist/src/offline-age.d.ts +29 -0
  91. package/dist/src/one-line-cell.d.ts +20 -0
  92. package/dist/src/opencode-agent-node-pair.d.ts +25 -0
  93. package/dist/src/opencode-auth-login.d.ts +43 -0
  94. package/dist/src/opencode-launch-env.d.ts +13 -0
  95. package/dist/src/opencode-owner-mode.d.ts +6 -0
  96. package/dist/src/opencode-package-binary.d.ts +26 -0
  97. package/dist/src/opencode-pin.d.ts +44 -0
  98. package/dist/src/opencode-preset.d.ts +73 -0
  99. package/dist/src/opencode-runtime-binding.d.ts +30 -0
  100. package/dist/src/opencode-safe-root.d.ts +36 -0
  101. package/dist/src/opencode-smoke-env.d.ts +1 -0
  102. package/dist/src/outbound-attachments.d.ts +60 -0
  103. package/dist/src/outbound-tool-names.d.ts +1 -0
  104. package/dist/src/owned-roots.d.ts +58 -0
  105. package/dist/src/owner-env-file.d.ts +2 -0
  106. package/dist/src/package-mode-preflight.d.ts +41 -0
  107. package/dist/src/posix-codex-copresence.d.ts +35 -0
  108. package/dist/src/posix-modes.d.ts +36 -0
  109. package/dist/src/primary-network.d.ts +23 -0
  110. package/dist/src/private-state.d.ts +10 -0
  111. package/dist/src/process-telemetry.d.ts +12 -0
  112. package/dist/src/profile-serialize.d.ts +1 -0
  113. package/dist/src/project-key.d.ts +1 -0
  114. package/dist/src/reply-local-links.d.ts +47 -0
  115. package/dist/src/reply-originator.d.ts +20 -0
  116. package/dist/src/resume-runtime-infer.d.ts +18 -0
  117. package/dist/src/rules-file.d.ts +53 -0
  118. package/dist/src/secret-shell-guidance.d.ts +3 -0
  119. package/dist/src/session-status-class.d.ts +48 -0
  120. package/dist/src/sibling-agent-node.d.ts +23 -0
  121. package/dist/src/stale-socket.d.ts +118 -0
  122. package/dist/src/subcommand-redirect.d.ts +26 -0
  123. package/dist/src/task-trace.d.ts +33 -0
  124. package/dist/src/tmux-attach.d.ts +8 -0
  125. package/dist/src/tmux-capability.d.ts +58 -0
  126. package/dist/src/tmux-exact-target.d.ts +34 -0
  127. package/dist/src/tmux-pane-prompt.d.ts +22 -0
  128. package/dist/src/tmux.d.ts +44 -0
  129. package/dist/src/token-cli.d.ts +13 -0
  130. package/dist/src/tool-allowlist.d.ts +28 -0
  131. package/dist/src/unsafe-package-path-reason.d.ts +17 -0
  132. package/dist/src/upgrade-channel.d.ts +31 -0
  133. package/dist/src/win-launcher.d.ts +20 -0
  134. package/dist/src/windows-codex-copresence.d.ts +60 -0
  135. package/package.json +11 -6
@@ -0,0 +1,44 @@
1
+ import { type ChildProcess, type ExecFileSyncOptions, type ExecFileSyncOptionsWithBufferEncoding, type ExecFileSyncOptionsWithStringEncoding, type SpawnOptions, type SpawnSyncOptions, type SpawnSyncReturns } from "node:child_process";
2
+ export type TmuxEnv = Record<string, string | undefined>;
3
+ export interface TmuxIsolation {
4
+ /** Socket path passed to tmux as `-S`. */
5
+ socket: string;
6
+ /** Which variable asked for isolation. */
7
+ source: "ANET_TMUX_SOCKET" | "TMUX_TMPDIR";
8
+ }
9
+ export declare class TmuxKillServerRefused extends Error {
10
+ constructor(args: readonly string[]);
11
+ }
12
+ /**
13
+ * Where tmux should talk to, or null for "today's default behaviour".
14
+ * `TMUX_TMPDIR` resolves the same way tmux itself does: `$TMUX_TMPDIR/tmux-<uid>/default`.
15
+ */
16
+ export declare function resolveTmuxIsolation(env?: TmuxEnv, uid?: number): TmuxIsolation | null;
17
+ /** The socket path inside `$TMUX` (`<socket>,<server pid>,<session idx>`), or null. */
18
+ export declare function socketOfTmuxVar(value: string | undefined): string | null;
19
+ /**
20
+ * True when argv asks tmux to kill its server, including `a ; kill-server`
21
+ * chains and the unambiguous prefixes tmux accepts (`kill-ser`, `kill-serv`, …).
22
+ */
23
+ export declare function isKillServer(args: readonly string[]): boolean;
24
+ export interface TmuxInvocation {
25
+ file: "tmux";
26
+ args: string[];
27
+ /** undefined ⇒ inherit the caller's env exactly as before (no isolation requested). */
28
+ env: TmuxEnv | undefined;
29
+ isolation: TmuxIsolation | null;
30
+ }
31
+ /**
32
+ * Pure argv/env builder. Throws TmuxKillServerRefused for kill-server.
33
+ * `env` is the env the child would otherwise get (the caller's `options.env`,
34
+ * else process.env); isolation is decided from it.
35
+ */
36
+ export declare function buildTmuxInvocation(args: readonly string[], env?: TmuxEnv, uid?: number): TmuxInvocation;
37
+ /** `execFileSync("tmux", args, options)` through the #505 rules. */
38
+ export declare function execTmux(args: readonly string[], options: ExecFileSyncOptionsWithStringEncoding): string;
39
+ export declare function execTmux(args: readonly string[], options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
40
+ export declare function execTmux(args: readonly string[], options?: ExecFileSyncOptions): string | Buffer;
41
+ /** `spawnSync("tmux", args, options)` through the #505 rules. */
42
+ export declare function spawnSyncTmux(args: readonly string[], options?: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;
43
+ /** `spawn("tmux", args, options)` through the #505 rules. */
44
+ export declare function spawnTmux(args: readonly string[], options?: SpawnOptions): ChildProcess;
@@ -0,0 +1,13 @@
1
+ export type TokenCreateNameResult = {
2
+ ok: true;
3
+ name: string;
4
+ } | {
5
+ ok: false;
6
+ error: string;
7
+ };
8
+ /** Parse only `anet token create` operands.
9
+ *
10
+ * The legacy positional form stays supported, while flag parsing is strict so
11
+ * a typo cannot become the name of a newly issued credential.
12
+ */
13
+ export declare function parseTokenCreateName(argv: readonly string[]): TokenCreateNameResult;
@@ -0,0 +1,28 @@
1
+ export declare const CLAUDE_KNOWN_TOOLS: readonly string[];
2
+ type Runtime = string;
3
+ /** Parse the comma-joined --tools string, validate each token, return the
4
+ * trimmed list. Runtime-scoped:
5
+ *
6
+ * Claude-lineage → each token must be in CLAUDE_KNOWN_TOOLS OR match
7
+ * the MCP pattern (mcp__<server>__<tool>).
8
+ * Other runtimes → only the basic per-token format check runs, so grok /
9
+ * codex / opencode tools flow through unchanged and get
10
+ * validated by their own downstream layers.
11
+ *
12
+ * Throws on the first offense with a message naming the bad token and,
13
+ * for Claude-side violations, the expected set. Never returns a
14
+ * partially-cleaned list — a typo must surface, not silently reshape the
15
+ * persisted profile.
16
+ */
17
+ export declare function parseAndValidateTools(raw: string, runtime: Runtime): string[];
18
+ /** Minimal --model validation: non-empty after trim, no whitespace inside.
19
+ *
20
+ * We do NOT enforce a known-model allowlist — models are vendor-defined,
21
+ * evolve independently, and a strict list would break the first time
22
+ * MiniMax/DeepSeek/GLM/etc. ships a new variant. This catches the obvious
23
+ * user-side typos (`--model " claude-3 " `, `--model ""`) without
24
+ * over-restricting legitimate values. Vendor-side model resolution
25
+ * (defaultCodexModelForRuntime etc.) already validates its own contract.
26
+ */
27
+ export declare function validateModel(raw: string): string;
28
+ export {};
@@ -0,0 +1,17 @@
1
+ export interface PathModeFacts {
2
+ /** Owner uid of the path. */
3
+ uid: number;
4
+ /** Permission bits (st_mode & 0o777). */
5
+ mode: number;
6
+ /** uid of the process doing the check. */
7
+ processUid: number;
8
+ }
9
+ export type UnsafePathReason = "owner" | "group-writable" | "world-writable" | null;
10
+ /** Which condition makes this path unsafe to execute from, if any. */
11
+ export declare function classifyUnsafePath(facts: PathModeFacts): UnsafePathReason;
12
+ /**
13
+ * Operator-facing explanation. Names the path, the offending bits, and the
14
+ * command that fixes it — a message that says only "unsafe" leaves the reader
15
+ * guessing between four different conditions.
16
+ */
17
+ export declare function describeUnsafePath(path: string, facts: PathModeFacts): string;
@@ -0,0 +1,31 @@
1
+ export type ReleaseChannel = "preview" | "latest";
2
+ export interface DistTags {
3
+ latest?: string | null;
4
+ preview?: string | null;
5
+ }
6
+ export type ChannelResolution = {
7
+ ok: true;
8
+ channel: ReleaseChannel;
9
+ source: "flag" | "detected";
10
+ reason: string;
11
+ } | {
12
+ ok: false;
13
+ error: string;
14
+ };
15
+ export interface ResolveUpgradeChannelInput {
16
+ /** Installed anet version (full string, prerelease preserved). */
17
+ installed: string | null | undefined;
18
+ /** Value of `--channel`. `"true"` means the flag was given without a value. */
19
+ flag?: string | null;
20
+ /** dist-tags of @sleep2agi/agent-network, or null when the lookup failed. */
21
+ distTags: DistTags | null;
22
+ }
23
+ interface ParsedSemver {
24
+ core: [number, number, number];
25
+ pre: string[];
26
+ }
27
+ export declare function parseSemver(version: string | null | undefined): ParsedSemver | null;
28
+ /** semver §11 precedence. Returns <0, 0, >0. */
29
+ export declare function compareSemver(a: ParsedSemver, b: ParsedSemver): number;
30
+ export declare function resolveUpgradeChannel(input: ResolveUpgradeChannelInput): ChannelResolution;
31
+ export {};
@@ -0,0 +1,20 @@
1
+ import { type ExecFileSyncOptions, type ExecFileSyncOptionsWithStringEncoding, type SpawnOptions } from "child_process";
2
+ /** Windows needs a command interpreter to run a .cmd; POSIX runs the file. */
3
+ export declare function launcherNeedsShell(platform?: NodeJS.Platform): boolean;
4
+ /**
5
+ * Quote one argument for `cmd.exe /c`.
6
+ *
7
+ * cmd's rules are not the shell's: a double quote is escaped by doubling it,
8
+ * and the metacharacters below must be quoted or cmd will act on them. Anything
9
+ * safe is left bare, so the common case stays readable in a process listing.
10
+ */
11
+ export declare function quoteForCmd(arg: string): string;
12
+ /** The argv to hand to execFile/spawn so `cmd args…` runs on this platform. */
13
+ export declare function launcherArgv(cmd: string, args: readonly string[], platform?: NodeJS.Platform, comspec?: string | undefined): {
14
+ file: string;
15
+ argv: string[];
16
+ };
17
+ export declare function runLauncherSync(cmd: string, args: readonly string[], options: ExecFileSyncOptionsWithStringEncoding): string;
18
+ export declare function runLauncherSync(cmd: string, args: readonly string[], options?: ExecFileSyncOptions): Buffer;
19
+ /** spawn for a launcher, correct on Windows. */
20
+ export declare function spawnLauncher(cmd: string, args: readonly string[], options?: SpawnOptions): import("node:child_process").ChildProcess;
@@ -0,0 +1,60 @@
1
+ export type WindowsCopresenceRole = "appsrv" | "bridge";
2
+ export interface WindowsManagedProcess {
3
+ role: WindowsCopresenceRole;
4
+ pid: number;
5
+ creationDate: string;
6
+ logPath: string;
7
+ }
8
+ export interface WindowsCopresenceRecord {
9
+ version: 1 | 2;
10
+ nodeId: string;
11
+ createdAt: string;
12
+ marker?: string;
13
+ processes: WindowsManagedProcess[];
14
+ }
15
+ export declare function windowsCopresenceRecordPath(nodesDir: string, nodeId: string): string;
16
+ export declare function windowsCopresenceLogPath(nodesDir: string, nodeId: string, role: WindowsCopresenceRole): string;
17
+ export declare function openPrivateAppendLog(path: string): number;
18
+ /** Protect credential-bearing state with native Windows ACLs. */
19
+ export declare function ensureWindowsPrivateDirectory(path: string): void;
20
+ export declare function closeLog(fd: number): void;
21
+ export type CreationDateProbe = (pid: number) => string | null;
22
+ /** Uses CIM instead of locale-dependent tasklist output. */
23
+ export declare function probeWindowsCreationDate(pid: number): string | null;
24
+ /**
25
+ * Attribute an ESTABLISHED loopback connection to the launched TUI process
26
+ * tree. This is deliberately stronger than counting listeners/connections:
27
+ * an unrelated local client cannot satisfy it.
28
+ */
29
+ export declare function probeWindowsOwnedLoopbackConnection(rootPid: number, expectedCreationDate: string, port: number, runPowerShell?: (script: string) => string): boolean;
30
+ /**
31
+ * #1342 —— 只在健康检查**即将失败**时跑一次,用来回答一个此前没人量过的问题:
32
+ * 那 10.5 秒到底花在 **PowerShell 启动**上,还是花在 `Get-CimInstance Win32_Process`
33
+ * 这个全表查询上?
34
+ *
35
+ * 实测背景(由 #1628/#1637 加的 probeMs 量到,2026-08-31):
36
+ * probes=1 waited=10897ms probeMsLast=10490 ← 单次探测吃掉 96% 的预算
37
+ * 而 #1636 把全表枚举提到循环外之后这个数**没有变小**(9963 → 10490),
38
+ * 说明成本不在"重复枚举",而在那一次调用本身。但"那一次调用"包含两段:
39
+ * 起一个 powershell 进程,和在里面跑 CIM 查询。**这两段要查的东西完全不同** ——
40
+ * 前者是 runner/镜像的问题,后者是查询写法的问题。
41
+ *
42
+ * 🔴 这里跑的是一个**什么都不做**的脚本(`'x'`),所以它测到的就是启动那一段的下界。
43
+ * 只在失败路径调用一次,不进探测循环 —— 不给正常路径增加任何成本,
44
+ * 也**不可能**改变探测的返回值。
45
+ *
46
+ * 拿不到就返回 null(未知),不返回 0 —— 0 会被读成「启动不花时间」。
47
+ */
48
+ export declare function measurePowerShellStartupMs(): number | null;
49
+ export declare function writeWindowsCopresenceRecord(nodesDir: string, nodeId: string, processes: WindowsManagedProcess[], marker?: string): void;
50
+ export declare function readWindowsCopresenceRecord(nodesDir: string, nodeId: string): WindowsCopresenceRecord | null;
51
+ export interface WindowsStopDecision {
52
+ safe: WindowsManagedProcess[];
53
+ refused: Array<{
54
+ process: WindowsManagedProcess;
55
+ reason: "missing" | "pid-reused";
56
+ }>;
57
+ }
58
+ /** PID alone is never authority: Windows reuses PIDs, so CreationDate must match. */
59
+ export declare function decideWindowsManagedStop(record: WindowsCopresenceRecord, probe: CreationDateProbe): WindowsStopDecision;
60
+ export declare function taskkillWindowsProcessTree(pid: number): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network",
3
- "version": "2.3.0-preview.13",
4
- "description": "AI Agent Network CLI — Local-first multi-agent orchestration across 4 runtimes (Claude Code CLI / Claude Agent SDK / Codex SDK / Grok Build ACP) and 8+ LLM providers (Anthropic / OpenAI / xAI Grok / MiniMax / DeepSeek / GLM / Kimi / InternLM / Xiaomi MiMo / OpenRouter). Apache 2.0.",
3
+ "version": "2.3.0-preview.130",
4
+ "description": "AI Agent Network CLI — Local-first multi-agent orchestration across 6 runtimes (Claude Code CLI / Claude Agent SDK / Codex SDK / Codex app-server / Grok Build ACP / OpenCode CLI) and 8+ LLM providers. Apache 2.0.",
5
5
  "type": "module",
6
6
  "main": "dist/src/client.js",
7
7
  "types": "dist/client.d.ts",
@@ -9,10 +9,14 @@
9
9
  ".": {
10
10
  "import": "./dist/src/client.js",
11
11
  "types": "./dist/client.d.ts"
12
+ },
13
+ "./daemon-capability-display": {
14
+ "import": "./dist/src/daemon-capability-display.js",
15
+ "types": "./dist/src/daemon-capability-display.d.ts"
12
16
  }
13
17
  },
14
18
  "bin": {
15
- "anet": "dist/bin/cli.js"
19
+ "anet": "dist/bin/anet.cjs"
16
20
  },
17
21
  "files": [
18
22
  "dist"
@@ -20,7 +24,7 @@
20
24
  "scripts": {
21
25
  "typecheck": "tsc --noEmit",
22
26
  "test:feishu-bridge": "bun tests/feishu-bridge-ackplaceholder.test.ts",
23
- "build": "bun build src/client.ts --outdir dist/src --target node --minify && bun build bin/cli.ts --outdir dist/bin --target node --minify --external @sleep2agi/commhub-server --external bun:sqlite --external '../../server/*' && bun build src/node-server.ts --outdir dist/src --target node --minify --external @modelcontextprotocol/sdk && bun build src/im/feishu/worker.ts --outdir dist/src/im/feishu --target node --minify --external @larksuiteoapi/node-sdk && tsc --emitDeclarationOnly --declaration --outDir dist && npx javascript-obfuscator dist/bin/cli.js --output dist/bin/cli.js --compact true --string-array true --string-array-encoding base64 && npx javascript-obfuscator dist/src/client.js --output dist/src/client.js --compact true --string-array true && npx javascript-obfuscator dist/src/node-server.js --output dist/src/node-server.js --compact true --string-array true",
27
+ "build": "bun build src/client.ts --outdir dist/src --target node --minify && bun build src/daemon-capability-display.ts --outdir dist/src --target browser --minify && bun build bin/cli.ts --outdir dist/bin --target node --minify --external @sleep2agi/commhub-server --external bun:sqlite --external '../../server/*' && bun build src/node-server.ts --outdir dist/src --target node --minify && bun build src/im/feishu/worker.ts --outdir dist/src/im/feishu --target node --minify --external @larksuiteoapi/node-sdk && tsc --emitDeclarationOnly --declaration --outDir dist && npx javascript-obfuscator dist/bin/cli.js --output dist/bin/cli.js --compact true --string-array true --string-array-encoding base64 && npx javascript-obfuscator dist/src/client.js --output dist/src/client.js --compact true --string-array true && npx javascript-obfuscator dist/src/node-server.js --output dist/src/node-server.js --compact true --string-array true && cp bin/anet.cjs dist/bin/anet.cjs",
24
28
  "prepublishOnly": "npm run build"
25
29
  },
26
30
  "keywords": [
@@ -54,7 +58,8 @@
54
58
  "directory": "agent-network"
55
59
  },
56
60
  "publishConfig": {
57
- "access": "public"
61
+ "access": "public",
62
+ "tag": "preview"
58
63
  },
59
64
  "bugs": {
60
65
  "url": "https://github.com/sleep2agi/agent-network/issues"
@@ -70,7 +75,7 @@
70
75
  "puppeteer-core": "^24.10.2"
71
76
  },
72
77
  "devDependencies": {
73
- "@modelcontextprotocol/sdk": "^1.12.0",
78
+ "@modelcontextprotocol/sdk": "1.32.0",
74
79
  "@types/markdown-it": "^14.1.2",
75
80
  "@types/node": "^25.0.0",
76
81
  "javascript-obfuscator": "^5.4.1",