@qilin-agent/cli 3.1.6 → 3.1.8

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/lib/bin.js CHANGED
@@ -292,7 +292,7 @@ async function runCli(options = {}) {
292
292
  const invocation = parseQilinArgs(process.argv.slice(2), version, manageDesktopProfile);
293
293
  switch (invocation.mode) {
294
294
  case "profile": {
295
- const { ENTRY_PROFILES, isWebEntry, runWebEntry } = await import("./web-entry-C--0C6wG.js");
295
+ const { ENTRY_PROFILES, isWebEntry, runWebEntry } = await import("./web-entry-CaeoVaS7.js");
296
296
  if (ENTRY_PROFILES.includes(invocation.profile) && isWebEntry()) {
297
297
  try {
298
298
  process.exitCode = await runWebEntry({
@@ -329,7 +329,7 @@ async function runCli(options = {}) {
329
329
  break;
330
330
  }
331
331
  case "plugin": {
332
- const { runPlugin } = await import("./plugin-77QK8DqG.js");
332
+ const { runPlugin } = await import("./plugin-Dz48nm1e.js");
333
333
  process.exit(await runPlugin(invocation.profile, invocation.args));
334
334
  break;
335
335
  }
@@ -339,7 +339,7 @@ async function runCli(options = {}) {
339
339
  break;
340
340
  }
341
341
  case "dump-config": {
342
- const { runDumpConfig } = await import("./dump-config-Dh7zdBXZ.js");
342
+ const { runDumpConfig } = await import("./dump-config-BbEHNgAt.js");
343
343
  runDumpConfig(invocation.profile, invocation.defaultOnly, invocation.patches, invocation.fromDefaultProfile);
344
344
  break;
345
345
  }
@@ -1,4 +1,4 @@
1
- import { a as prepareProfile, n as PROFILE_ROOT_FILENAME, r as homePatchPath } from "./profile-boot-Jk8GJcE8.js";
1
+ import { a as prepareProfile, n as PROFILE_ROOT_FILENAME, r as homePatchPath } from "./profile-boot-C6DnhonE.js";
2
2
  import { loadOptionalPatches, loadOverlayPatches, renderConfigDump } from "@qilin-agent/app-boot";
3
3
  import { join, resolve } from "node:path";
4
4
  import { existsSync } from "node:fs";
@@ -1,9 +1,10 @@
1
- import { t as INSTALL_ANCHOR } from "./profile-boot-Jk8GJcE8.js";
2
- import { DEFAULT_PROFILE_BUNDLES, EngineNameCollisionError, PROFILE_TEMPLATES, doctorPluginPackage, initProfile, readProfileCompatibility, readProfileManifest, readProfilePluginRows, reconcileProfileBundles, resolveBundleDir, resolveProfileDir, setProfileVersionExemption } from "@qilin-agent/app-boot";
1
+ import { t as INSTALL_ANCHOR } from "./profile-boot-C6DnhonE.js";
2
+ import { DEFAULT_PROFILE_BUNDLES, EngineNameCollisionError, PROFILE_TEMPLATES, doctorPluginPackage, evaluatePluginCompatibility, initProfile, pluginCompatibilityWarning, readProfileCompatibility, readProfileManifest, readProfilePluginRows, readProfileVersionExemptions, reconcileProfileBundles, resolveBundleDir, resolveProfileDir, setProfileVersionExemption } from "@qilin-agent/app-boot";
3
3
  import { mkdir } from "node:fs/promises";
4
4
  import { join, resolve } from "node:path";
5
- import { existsSync } from "node:fs";
5
+ import { existsSync, readFileSync } from "node:fs";
6
6
  import { spawnSync } from "node:child_process";
7
+ import { parseInstallSpec } from "@qilin-agent/plugin-manager";
7
8
  import { withFileLock } from "@qilin-agent/atomic-write";
8
9
  //#region lib/types/plugin.js
9
10
  /**
@@ -151,6 +152,29 @@ function anchorPathSpec(argument, cwd) {
151
152
  return `${match.groups.prefix ?? ""}${resolve(cwd, match.groups.path)}`;
152
153
  }
153
154
  /**
155
+ * Refuse the packages this invocation names that the running runtime version
156
+ * rejects, before pnpm can install them. A local directory spec's manifest sits
157
+ * on disk, so its requirements are read without a fetch; a registry, git, or
158
+ * tarball spec needs the installation itself, so the startup check reports it.
159
+ * @param forwarded - pnpm arguments with relative path specs anchored.
160
+ * @param dir - profile directory holding the exact-version exemptions.
161
+ * @returns the diagnostics for refused packages, empty when every named path spec is compatible.
162
+ */
163
+ function refusedPathSpecs(forwarded, dir) {
164
+ const exemptions = readProfileVersionExemptions(dir);
165
+ const warnings = [];
166
+ for (const argument of forwarded) try {
167
+ const parsed = parseInstallSpec(argument);
168
+ if (parsed.kind !== "path") continue;
169
+ const filename = join(parsed.path, "package.json");
170
+ const manifest = existsSync(filename) ? JSON.parse(readFileSync(filename, "utf8")) : void 0;
171
+ if (manifest === void 0) continue;
172
+ const issue = evaluatePluginCompatibility(manifest, exemptions);
173
+ if (issue !== void 0 && !issue.exempted) warnings.push(pluginCompatibilityWarning(issue));
174
+ } catch (error) {}
175
+ return warnings;
176
+ }
177
+ /**
154
178
  * Run one `qilin plugin` invocation: report or list, grant or revoke one
155
179
  * exact-version exemption, or forward to pnpm and reconcile.
156
180
  * @param profile - the profile name.
@@ -175,7 +199,13 @@ async function runPlugin(profile, args) {
175
199
  }
176
200
  for (const warning of readProfileCompatibility(dir).warnings) process.stderr.write(`${NAME}: warning: ${warning}\n`);
177
201
  const before = readProfileManifest(NAME, dir);
178
- const result = spawnSync("pnpm", args.map((argument) => anchorPathSpec(argument, process.cwd())), {
202
+ const forwarded = args.map((argument) => anchorPathSpec(argument, process.cwd()));
203
+ const refused = refusedPathSpecs(forwarded, dir);
204
+ if (refused.length > 0) {
205
+ process.stderr.write(`\n${NAME}: installation rejected: ${refused.join("\n")}\n${NAME}: nothing was installed.\n`);
206
+ return 1;
207
+ }
208
+ const result = spawnSync("pnpm", forwarded, {
179
209
  cwd: dir,
180
210
  stdio: "inherit",
181
211
  shell: process.platform === "win32"
@@ -1,4 +1,4 @@
1
- import { PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, QILIN_LAUNCH_PROFILE_KEY, boot, createRuntimeResolution, healIsolatedProfileModuleFallback, healProfilesModuleFallback, initProfile, installFailLoud, loadOverlayPatches, loadProfile, loadProfileDirectory, readProfilePatches, resolveProfileDir } from "@qilin-agent/app-boot";
1
+ import { PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, QILIN_LAUNCH_PROFILE_KEY, boot, createRuntimeResolution, healIsolatedProfileModuleFallback, healProfilesModuleFallback, initProfile, installFailLoud, loadOverlayPatches, loadProfile, loadProfileDirectory, readProfilePatches, reportSkippedBundles, resolveProfileDir } from "@qilin-agent/app-boot";
2
2
  import { resolveQilinHome } from "@qilin-agent/home-paths";
3
3
  import { dirname, join, resolve } from "node:path";
4
4
  import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
@@ -185,6 +185,7 @@ function initializeProfileFromDefault(name, fromDefaultProfile, home = resolveQi
185
185
  function prepareProfile(name, userLayer = true, fromDefaultProfile) {
186
186
  if (fromDefaultProfile !== void 0) initializeProfileFromDefault(name, fromDefaultProfile);
187
187
  const profile = loadProfile(NAME, name, INSTALL_ANCHOR, void 0, { userLayer });
188
+ reportSkippedBundles(NAME, profile);
188
189
  writeFileSync(join(profile.dir, PROFILE_ROOT_FILENAME), PROFILE_ROOT_CONFIG);
189
190
  return profile;
190
191
  }
@@ -1,2 +1,2 @@
1
- import { a as prepareProfile, i as initializeProfileFromDefault, n as PROFILE_ROOT_FILENAME, o as runProfile, r as homePatchPath, t as INSTALL_ANCHOR } from "./profile-boot-Jk8GJcE8.js";
1
+ import { a as prepareProfile, i as initializeProfileFromDefault, n as PROFILE_ROOT_FILENAME, o as runProfile, r as homePatchPath, t as INSTALL_ANCHOR } from "./profile-boot-C6DnhonE.js";
2
2
  export { INSTALL_ANCHOR, PROFILE_ROOT_FILENAME, homePatchPath, initializeProfileFromDefault, prepareProfile, runProfile };
@@ -4,6 +4,7 @@ import { randomBytes, timingSafeEqual } from "node:crypto";
4
4
  import { appendFile, mkdir, readFile, readdir } from "node:fs/promises";
5
5
  import { join, resolve } from "node:path";
6
6
  import { readFileSync } from "node:fs";
7
+ import { createLaunchEnvironmentSnapshot, launchedThroughSsh } from "@qilin-agent/launch-environment";
7
8
  import { spawn } from "node:child_process";
8
9
  import { Readable } from "node:stream";
9
10
  import { AccountStore, DEPLOYMENT_AUTHORITY_HEADER, accountsFilePath } from "@qilin-agent/accounts-local";
@@ -1487,7 +1488,10 @@ async function runWebEntry(invocation) {
1487
1488
  patches: [...invocation.patches, ...options.patches].map((path) => resolve(path)),
1488
1489
  appArguments: options.appArguments,
1489
1490
  ...options.tls === void 0 ? {} : { tls: options.tls },
1490
- ...invocation.args.includes("--no-open") ? {} : { onListening: (url) => {
1491
+ ...invocation.args.includes("--no-open") || launchedThroughSsh(createLaunchEnvironmentSnapshot([{
1492
+ source: "process",
1493
+ values: process.env
1494
+ }])) ? {} : { onListening: (url) => {
1491
1495
  try {
1492
1496
  openAddress(url);
1493
1497
  } catch (error) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qilin-agent/cli",
3
3
  "description": "qilin CLI: profile launch, plugin management, and configuration inspection",
4
- "version": "3.1.6",
4
+ "version": "3.1.8",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -32,144 +32,144 @@
32
32
  },
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
+ "@qilin-agent/accounts-local": "3.1.8",
36
+ "@qilin-agent/acp-app": "3.1.8",
37
+ "@qilin-agent/agent-instructions": "3.1.8",
38
+ "@qilin-agent/agent-tool-presentation": "3.1.8",
39
+ "@qilin-agent/app-boot": "3.1.8",
40
+ "@qilin-agent/atomic-write": "3.1.8",
41
+ "@qilin-agent/base": "3.1.8",
42
+ "@qilin-agent/client-ui-agent-preset": "3.1.8",
43
+ "@qilin-agent/client-ui-kylin": "3.1.8",
44
+ "@qilin-agent/cmdline": "3.1.8",
45
+ "@qilin-agent/command-compact": "3.1.8",
46
+ "@qilin-agent/command-goal": "3.1.8",
47
+ "@qilin-agent/compaction-basic": "3.1.8",
48
+ "@qilin-agent/compaction-tool-result-pruner": "3.1.8",
49
+ "@qilin-agent/experimental-agent-team-profile": "3.1.8",
50
+ "@qilin-agent/experimental-auto-review": "3.1.8",
51
+ "@qilin-agent/experimental-badge-skill-bundle": "3.1.8",
52
+ "@qilin-agent/experimental-cot-translation-bundle": "3.1.8",
53
+ "@qilin-agent/experimental-inspector-profile": "3.1.8",
54
+ "@qilin-agent/experimental-ralph-bundle": "3.1.8",
55
+ "@qilin-agent/experimental-schedule-bundle": "3.1.8",
56
+ "@qilin-agent/experimental-session-search": "3.1.8",
57
+ "@qilin-agent/experimental-session-titles-bundle": "3.1.8",
58
+ "@qilin-agent/experimental-terminal-bundle": "3.1.8",
59
+ "@qilin-agent/experimental-tool-worktree": "3.1.8",
60
+ "@qilin-agent/experimental-voice-input-bundle": "3.1.8",
61
+ "@qilin-agent/fs-local": "3.1.8",
62
+ "@qilin-agent/goal": "3.1.8",
63
+ "@qilin-agent/goal-round-driver": "3.1.8",
64
+ "@qilin-agent/headless": "3.1.8",
65
+ "@qilin-agent/hmr": "3.1.8",
66
+ "@qilin-agent/home-paths": "3.1.8",
67
+ "@qilin-agent/http-proxy": "3.1.8",
68
+ "@qilin-agent/jobs-local": "3.1.8",
69
+ "@qilin-agent/kylin": "~4.0.6-alpha.2",
70
+ "@qilin-agent/kylin-client-runner": "3.1.8",
71
+ "@qilin-agent/kylin-plugin-include": "~1.0.11-alpha.2",
72
+ "@qilin-agent/kylin-plugin-loader": "~1.0.7-alpha.2",
73
+ "@qilin-agent/kylin-plugin-timer": "~1.1.8-alpha.2",
74
+ "@qilin-agent/launch-environment": "3.1.8",
75
+ "@qilin-agent/mcp-client": "3.1.8",
76
+ "@qilin-agent/mcp-resources": "3.1.8",
77
+ "@qilin-agent/persona": "3.1.8",
78
+ "@qilin-agent/plan-mode": "3.1.8",
79
+ "@qilin-agent/plugin-manager": "3.1.8",
80
+ "@qilin-agent/pwsh-local": "3.1.8",
81
+ "@qilin-agent/pwsh-sandbox": "3.1.8",
82
+ "@qilin-agent/schedule": "3.1.8",
83
+ "@qilin-agent/schemastery": "~3.18.6-alpha.2",
84
+ "@qilin-agent/sdk-app": "3.1.8",
85
+ "@qilin-agent/sdk-minimal": "3.1.8",
86
+ "@qilin-agent/session-projection": "3.1.8",
87
+ "@qilin-agent/session-reference": "3.1.8",
88
+ "@qilin-agent/skill": "3.1.8",
89
+ "@qilin-agent/skill-filesystem": "3.1.8",
90
+ "@qilin-agent/terminal": "3.1.8",
91
+ "@qilin-agent/terminal-bash": "3.1.8",
92
+ "@qilin-agent/time-context": "3.1.8",
93
+ "@qilin-agent/tmux-context": "3.1.8",
94
+ "@qilin-agent/token-meter": "3.1.8",
95
+ "@qilin-agent/tool-ask-user": "3.1.8",
96
+ "@qilin-agent/tool-bash": "3.1.8",
97
+ "@qilin-agent/tool-bash-persistent": "3.1.8",
98
+ "@qilin-agent/tool-fs": "3.1.8",
99
+ "@qilin-agent/tool-fs-search": "3.1.8",
100
+ "@qilin-agent/tool-goal": "3.1.8",
101
+ "@qilin-agent/tool-jobs": "3.1.8",
102
+ "@qilin-agent/sidebar-opens": "3.1.8",
103
+ "@qilin-agent/tool-kylin": "3.1.8",
104
+ "@qilin-agent/tool-present": "3.1.8",
105
+ "@qilin-agent/tool-pwsh": "3.1.8",
106
+ "@qilin-agent/tool-pwsh-persistent": "3.1.8",
107
+ "@qilin-agent/tool-schedule": "3.1.8",
108
+ "@qilin-agent/tool-skill": "3.1.8",
109
+ "@qilin-agent/tool-str-replace-editor": "3.1.8",
110
+ "@qilin-agent/tool-subagent": "3.1.8",
111
+ "@qilin-agent/tool-subagent-control": "3.1.8",
112
+ "@qilin-agent/tool-todo": "3.1.8",
113
+ "@qilin-agent/tool-web": "3.1.8",
114
+ "@qilin-agent/tool-workflow": "3.1.8",
115
+ "@qilin-agent/web-app": "3.1.8",
116
+ "@qilin-agent/web-brand": "3.1.8",
117
+ "@qilin-agent/workflow-ptc": "3.1.8",
35
118
  "commander": "^15.0.0",
36
119
  "js-yaml": "^4.3.2",
37
- "node-addon-require-builtin": "^0.1.9",
38
- "@qilin-agent/accounts-local": "3.1.6",
39
- "@qilin-agent/agent-tool-presentation": "3.1.6",
40
- "@qilin-agent/app-boot": "3.1.6",
41
- "@qilin-agent/acp-app": "3.1.6",
42
- "@qilin-agent/atomic-write": "3.1.6",
43
- "@qilin-agent/agent-instructions": "3.1.6",
44
- "@qilin-agent/base": "3.1.6",
45
- "@qilin-agent/client-ui-agent-preset": "3.1.6",
46
- "@qilin-agent/client-ui-kylin": "3.1.6",
47
- "@qilin-agent/cmdline": "3.1.6",
48
- "@qilin-agent/command-goal": "3.1.6",
49
- "@qilin-agent/command-compact": "3.1.6",
50
- "@qilin-agent/compaction-basic": "3.1.6",
51
- "@qilin-agent/compaction-tool-result-pruner": "3.1.6",
52
- "@qilin-agent/experimental-badge-skill-bundle": "3.1.6",
53
- "@qilin-agent/experimental-agent-team-profile": "3.1.6",
54
- "@qilin-agent/experimental-auto-review": "3.1.6",
55
- "@qilin-agent/experimental-cot-translation-bundle": "3.1.6",
56
- "@qilin-agent/experimental-ralph-bundle": "3.1.6",
57
- "@qilin-agent/experimental-inspector-profile": "3.1.6",
58
- "@qilin-agent/experimental-session-search": "3.1.6",
59
- "@qilin-agent/experimental-session-titles-bundle": "3.1.6",
60
- "@qilin-agent/experimental-terminal-bundle": "3.1.6",
61
- "@qilin-agent/experimental-schedule-bundle": "3.1.6",
62
- "@qilin-agent/experimental-voice-input-bundle": "3.1.6",
63
- "@qilin-agent/experimental-tool-worktree": "3.1.6",
64
- "@qilin-agent/fs-local": "3.1.6",
65
- "@qilin-agent/goal-round-driver": "3.1.6",
66
- "@qilin-agent/goal": "3.1.6",
67
- "@qilin-agent/hmr": "3.1.6",
68
- "@qilin-agent/headless": "3.1.6",
69
- "@qilin-agent/home-paths": "3.1.6",
70
- "@qilin-agent/http-proxy": "3.1.6",
71
- "@qilin-agent/jobs-local": "3.1.6",
72
- "@qilin-agent/kylin": "~4.0.5",
73
- "@qilin-agent/kylin-plugin-include": "~1.0.10",
74
- "@qilin-agent/kylin-client-runner": "3.1.6",
75
- "@qilin-agent/kylin-plugin-loader": "~1.0.6",
76
- "@qilin-agent/kylin-plugin-timer": "~1.1.7",
77
- "@qilin-agent/launch-environment": "3.1.6",
78
- "@qilin-agent/mcp-client": "3.1.6",
79
- "@qilin-agent/mcp-resources": "3.1.6",
80
- "@qilin-agent/plan-mode": "3.1.6",
81
- "@qilin-agent/pwsh-local": "3.1.6",
82
- "@qilin-agent/persona": "3.1.6",
83
- "@qilin-agent/schemastery": "~3.18.5",
84
- "@qilin-agent/pwsh-sandbox": "3.1.6",
85
- "@qilin-agent/schedule": "3.1.6",
86
- "@qilin-agent/plugin-manager": "3.1.6",
87
- "@qilin-agent/sdk-app": "3.1.6",
88
- "@qilin-agent/sdk-minimal": "3.1.6",
89
- "@qilin-agent/session-projection": "3.1.6",
90
- "@qilin-agent/session-reference": "3.1.6",
91
- "@qilin-agent/skill-filesystem": "3.1.6",
92
- "@qilin-agent/skill": "3.1.6",
93
- "@qilin-agent/terminal": "3.1.6",
94
- "@qilin-agent/tmux-context": "3.1.6",
95
- "@qilin-agent/time-context": "3.1.6",
96
- "@qilin-agent/terminal-bash": "3.1.6",
97
- "@qilin-agent/tool-bash-persistent": "3.1.6",
98
- "@qilin-agent/token-meter": "3.1.6",
99
- "@qilin-agent/tool-ask-user": "3.1.6",
100
- "@qilin-agent/tool-bash": "3.1.6",
101
- "@qilin-agent/tool-fs": "3.1.6",
102
- "@qilin-agent/tool-fs-search": "3.1.6",
103
- "@qilin-agent/tool-goal": "3.1.6",
104
- "@qilin-agent/tool-jobs": "3.1.6",
105
- "@qilin-agent/sidebar-opens": "3.1.6",
106
- "@qilin-agent/tool-kylin": "3.1.6",
107
- "@qilin-agent/tool-pwsh": "3.1.6",
108
- "@qilin-agent/tool-schedule": "3.1.6",
109
- "@qilin-agent/tool-present": "3.1.6",
110
- "@qilin-agent/tool-pwsh-persistent": "3.1.6",
111
- "@qilin-agent/tool-str-replace-editor": "3.1.6",
112
- "@qilin-agent/tool-skill": "3.1.6",
113
- "@qilin-agent/tool-subagent": "3.1.6",
114
- "@qilin-agent/tool-todo": "3.1.6",
115
- "@qilin-agent/tool-subagent-control": "3.1.6",
116
- "@qilin-agent/tool-web": "3.1.6",
117
- "@qilin-agent/tool-workflow": "3.1.6",
118
- "@qilin-agent/web-brand": "3.1.6",
119
- "@qilin-agent/web-app": "3.1.6",
120
- "@qilin-agent/workflow-ptc": "3.1.6"
120
+ "node-addon-require-builtin": "^0.1.9"
121
121
  },
122
122
  "devDependencies": {
123
123
  "@agentclientprotocol/sdk": "1.4.0",
124
+ "@qilin-agent/acp": "3.1.8",
125
+ "@qilin-agent/agent": "3.1.8",
126
+ "@qilin-agent/agent-loop": "3.1.8",
127
+ "@qilin-agent/agent-loop-testkit": "3.1.8",
128
+ "@qilin-agent/attachment-local": "3.1.8",
129
+ "@qilin-agent/bash-local": "3.1.8",
130
+ "@qilin-agent/credentials-local": "3.1.8",
131
+ "@qilin-agent/deepseek-llm-api-extensions": "3.1.8",
132
+ "@qilin-agent/experimental-agent-team": "3.1.8",
133
+ "@qilin-agent/experimental-hooks-claude-code": "3.1.8",
134
+ "@qilin-agent/experimental-hooks-codex": "3.1.8",
135
+ "@qilin-agent/experimental-ptc-runtime-python": "3.1.8",
136
+ "@qilin-agent/experimental-tool-agent-team": "3.1.8",
137
+ "@qilin-agent/experimental-webhook": "3.1.8",
138
+ "@qilin-agent/experimental-webhook-github": "3.1.8",
139
+ "@qilin-agent/fs-observation-policy": "3.1.8",
140
+ "@qilin-agent/fs-sandbox": "3.1.8",
141
+ "@qilin-agent/host-frontend-static": "3.1.8",
142
+ "@qilin-agent/host-webserver": "3.1.8",
143
+ "@qilin-agent/llm": "3.1.8",
144
+ "@qilin-agent/llm-deepseek": "3.1.8",
145
+ "@qilin-agent/llm-deepseek-api-key": "3.1.8",
146
+ "@qilin-agent/llm-mock-server": "3.1.8",
147
+ "@qilin-agent/llm-pi-ai": "3.1.8",
148
+ "@qilin-agent/llm-replay": "3.1.8",
149
+ "@qilin-agent/loader-smoke": "3.1.8",
150
+ "@qilin-agent/plugin-package-inventory-deepseek": "3.1.8",
151
+ "@qilin-agent/sandbox-local": "3.1.8",
152
+ "@qilin-agent/sandbox-policy": "3.1.8",
153
+ "@qilin-agent/session": "3.1.8",
154
+ "@qilin-agent/session-checkpoint-policy": "3.1.8",
155
+ "@qilin-agent/session-log-deepseek": "3.1.8",
156
+ "@qilin-agent/session-persistence-jsonl": "3.1.8",
157
+ "@qilin-agent/session-query": "3.1.8",
158
+ "@qilin-agent/settings": "3.1.8",
159
+ "@qilin-agent/shell-env": "3.1.8",
160
+ "@qilin-agent/subagent": "3.1.8",
161
+ "@qilin-agent/subagent-fork-in-process": "3.1.8",
162
+ "@qilin-agent/subagent-spawn-in-process": "3.1.8",
163
+ "@qilin-agent/subprocess": "3.1.8",
164
+ "@qilin-agent/subprocess-local": "3.1.8",
165
+ "@qilin-agent/system-prompt": "3.1.8",
166
+ "@qilin-agent/tools": "3.1.8",
167
+ "@qilin-agent/user-approval": "3.1.8",
124
168
  "@types/js-yaml": "^4.0.9",
125
169
  "@types/ws": "8.18.1",
126
170
  "execa": "^10.0.0",
127
171
  "selfsigned": "^4.0.1",
128
- "ws": "8.21.0",
129
- "@qilin-agent/agent": "3.1.6",
130
- "@qilin-agent/acp": "3.1.6",
131
- "@qilin-agent/agent-loop": "3.1.6",
132
- "@qilin-agent/agent-loop-testkit": "3.1.6",
133
- "@qilin-agent/attachment-local": "3.1.6",
134
- "@qilin-agent/credentials-local": "3.1.6",
135
- "@qilin-agent/bash-local": "3.1.6",
136
- "@qilin-agent/deepseek-llm-api-extensions": "3.1.6",
137
- "@qilin-agent/experimental-agent-team": "3.1.6",
138
- "@qilin-agent/experimental-hooks-claude-code": "3.1.6",
139
- "@qilin-agent/experimental-hooks-codex": "3.1.6",
140
- "@qilin-agent/experimental-tool-agent-team": "3.1.6",
141
- "@qilin-agent/experimental-webhook-github": "3.1.6",
142
- "@qilin-agent/experimental-ptc-runtime-python": "3.1.6",
143
- "@qilin-agent/experimental-webhook": "3.1.6",
144
- "@qilin-agent/fs-observation-policy": "3.1.6",
145
- "@qilin-agent/fs-sandbox": "3.1.6",
146
- "@qilin-agent/host-frontend-static": "3.1.6",
147
- "@qilin-agent/host-webserver": "3.1.6",
148
- "@qilin-agent/llm": "3.1.6",
149
- "@qilin-agent/llm-deepseek": "3.1.6",
150
- "@qilin-agent/llm-deepseek-api-key": "3.1.6",
151
- "@qilin-agent/llm-mock-server": "3.1.6",
152
- "@qilin-agent/llm-pi-ai": "3.1.6",
153
- "@qilin-agent/loader-smoke": "3.1.6",
154
- "@qilin-agent/llm-replay": "3.1.6",
155
- "@qilin-agent/plugin-package-inventory-deepseek": "3.1.6",
156
- "@qilin-agent/sandbox-local": "3.1.6",
157
- "@qilin-agent/sandbox-policy": "3.1.6",
158
- "@qilin-agent/session": "3.1.6",
159
- "@qilin-agent/session-checkpoint-policy": "3.1.6",
160
- "@qilin-agent/session-persistence-jsonl": "3.1.6",
161
- "@qilin-agent/session-log-deepseek": "3.1.6",
162
- "@qilin-agent/session-query": "3.1.6",
163
- "@qilin-agent/settings": "3.1.6",
164
- "@qilin-agent/shell-env": "3.1.6",
165
- "@qilin-agent/subagent": "3.1.6",
166
- "@qilin-agent/subagent-fork-in-process": "3.1.6",
167
- "@qilin-agent/subprocess-local": "3.1.6",
168
- "@qilin-agent/subprocess": "3.1.6",
169
- "@qilin-agent/system-prompt": "3.1.6",
170
- "@qilin-agent/tools": "3.1.6",
171
- "@qilin-agent/subagent-spawn-in-process": "3.1.6",
172
- "@qilin-agent/user-approval": "3.1.6"
172
+ "ws": "8.21.0"
173
173
  },
174
174
  "exports": {
175
175
  "./profile-boot": {