@liberseek/boft-cli-win32-arm64 0.6.9 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.txt +12 -4
  3. package/app/codexhost-distribution.json +1 -1
  4. package/app/desktop-controller.mjs +287 -170
  5. package/app/host-runtime.mjs +2450 -1044
  6. package/app/plugins/antigravity/plugin.mjs +167 -16
  7. package/app/plugins/claude-code/plugin.mjs +311 -58
  8. package/app/plugins/codebuddy/plugin.mjs +2355 -894
  9. package/app/plugins/cursor-cli/plugin.mjs +35973 -10933
  10. package/app/plugins/deepseek-harness/plugin.mjs +125 -7
  11. package/app/plugins/enabled.json +4 -1
  12. package/app/plugins/grok/plugin.mjs +261 -97
  13. package/app/plugins/hermes/plugin.mjs +2486 -99
  14. package/app/plugins/kiro-cli/plugin.mjs +120 -3
  15. package/app/plugins/muse/plugin.mjs +110 -0
  16. package/app/plugins/omp/plugin.mjs +145 -10
  17. package/app/plugins/opencode/plugin.mjs +162 -46
  18. package/app/plugins/pi/plugin.mjs +2891 -1678
  19. package/app/plugins/qoder/assets/icon.svg +1 -0
  20. package/app/plugins/qoder/manifest.json +12 -0
  21. package/app/plugins/qoder/plugin.mjs +52352 -0
  22. package/app/plugins/qoder-cn/assets/icon.svg +1 -0
  23. package/app/plugins/qoder-cn/manifest.json +12 -0
  24. package/app/plugins/qoder-cn/plugin.mjs +52350 -0
  25. package/app/plugins/workbuddy/assets/icon.svg +29 -0
  26. package/app/plugins/workbuddy/manifest.json +14 -0
  27. package/app/plugins/workbuddy/plugin.mjs +25007 -0
  28. package/app/renderer-extension.js +6043 -1442
  29. package/bin/boft.exe +0 -0
  30. package/libexec/boft-node-repl.exe +0 -0
  31. package/libexec/boft-shim.exe +0 -0
  32. package/libexec/boft-updater.exe +0 -0
  33. package/licenses/Qoder-Agent-SDK-LICENSE.txt +7 -0
  34. package/licenses/QoderCN-Agent-SDK-LICENSE.txt +7 -0
  35. package/licenses/{opencodex-LICENSE.txt → tailwindcss-LICENSE.txt} +1 -1
  36. package/package.json +1 -1
@@ -18223,9 +18223,104 @@ function date4(params) {
18223
18223
  // ../../../node_modules/zod/v4/classic/external.js
18224
18224
  config(en_default());
18225
18225
 
18226
+ // ../../shared-contracts/dist/credential-imports.js
18227
+ var credentialSourceSchema = external_exports.object({
18228
+ id: external_exports.string().min(1).max(256),
18229
+ harnessId: external_exports.string().min(1),
18230
+ label: external_exports.string().min(1).max(512),
18231
+ provider: external_exports.enum(["openai-codex", "xai"])
18232
+ }).strict();
18233
+ var credentialImportNameSchema = external_exports.string().regex(/^[a-z][a-z0-9-]{0,47}$/);
18234
+ var credentialImportRecordSchema = external_exports.object({
18235
+ name: credentialImportNameSchema,
18236
+ source: credentialSourceSchema,
18237
+ importedAt: external_exports.string()
18238
+ }).strict();
18239
+ var credentialImportsRequestSchema = external_exports.discriminatedUnion("action", [
18240
+ external_exports.object({ action: external_exports.literal("list") }).strict(),
18241
+ external_exports.object({
18242
+ action: external_exports.literal("import"),
18243
+ sourceId: external_exports.string().min(1).max(256),
18244
+ name: credentialImportNameSchema,
18245
+ confirmed: external_exports.literal(true)
18246
+ }).strict(),
18247
+ external_exports.object({
18248
+ action: external_exports.literal("reimport"),
18249
+ sourceId: external_exports.string().min(1).max(256),
18250
+ name: credentialImportNameSchema,
18251
+ confirmed: external_exports.literal(true)
18252
+ }).strict(),
18253
+ external_exports.object({
18254
+ action: external_exports.literal("remove"),
18255
+ name: credentialImportNameSchema,
18256
+ confirmed: external_exports.literal(true)
18257
+ }).strict()
18258
+ ]);
18259
+ var credentialOtherLoginSchema = external_exports.object({
18260
+ provider: external_exports.string().min(1).max(128),
18261
+ type: external_exports.enum(["oauth", "api_key", "unknown"]),
18262
+ /** Best-effort account label (e.g. the email in a Codex token), derived locally when present. */
18263
+ label: external_exports.string().min(1).max(512).optional(),
18264
+ /** Recognized credential vendor, derived from the OAuth token issuer. Absent when unknown. */
18265
+ vendor: external_exports.enum(["openai-codex", "xai"]).optional()
18266
+ }).strict();
18267
+ var credentialImportsResultSchema = external_exports.object({
18268
+ sources: external_exports.array(credentialSourceSchema),
18269
+ targets: external_exports.array(external_exports.object({
18270
+ harnessId: external_exports.string(),
18271
+ providers: external_exports.array(external_exports.enum(["openai-codex", "xai"])),
18272
+ imports: external_exports.array(credentialImportRecordSchema),
18273
+ others: external_exports.array(credentialOtherLoginSchema).default([])
18274
+ }).strict())
18275
+ }).strict();
18276
+ var credentialImportsParamsSchema = external_exports.object({
18277
+ targetHarnessId: external_exports.string().min(1).max(128).optional(),
18278
+ request: credentialImportsRequestSchema
18279
+ }).strict();
18280
+
18226
18281
  // ../../shared-contracts/dist/version.js
18227
18282
  var WORKSPACE_CONTRACT_VERSION = 1;
18228
18283
 
18284
+ // ../../shared-contracts/dist/idle-release.js
18285
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
18286
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
18287
+ var idleReleaseSettingsSchema = external_exports.strictObject({
18288
+ enabled: external_exports.boolean(),
18289
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
18290
+ });
18291
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
18292
+ enabled: false,
18293
+ timeoutMinutes: 30
18294
+ });
18295
+
18296
+ // ../../shared-contracts/dist/loaded-sessions.js
18297
+ var loadedSessionStateSchema = external_exports.enum([
18298
+ "idle",
18299
+ "running",
18300
+ "busy",
18301
+ "closing",
18302
+ "failed",
18303
+ "blocked"
18304
+ ]);
18305
+ var loadedSessionReasonSchema = external_exports.enum([
18306
+ "none",
18307
+ "disabled",
18308
+ "timeout",
18309
+ "operation",
18310
+ "background",
18311
+ "identity",
18312
+ "persistence",
18313
+ "closeFailed"
18314
+ ]);
18315
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
18316
+ threadId: external_exports.string(),
18317
+ title: external_exports.string(),
18318
+ harnessId: external_exports.string(),
18319
+ state: loadedSessionStateSchema,
18320
+ reason: loadedSessionReasonSchema,
18321
+ inactiveMs: external_exports.number().nonnegative()
18322
+ }));
18323
+
18229
18324
  // ../../shared-contracts/dist/ids.js
18230
18325
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
18231
18326
  message: "Identifier must not be empty or whitespace"
@@ -18732,6 +18827,8 @@ var pluginPresentationShape = {
18732
18827
  id: harnessPluginIdSchema,
18733
18828
  name: external_exports.string().trim().min(1).max(128),
18734
18829
  version: external_exports.string().min(1).max(128),
18830
+ /** The factory accepts a persisted local entrypoint through its construction context. */
18831
+ launchCommand: external_exports.literal(true).optional(),
18735
18832
  links: external_exports.object({
18736
18833
  documentation: documentationUrlSchema.optional(),
18737
18834
  installation: documentationUrlSchema.optional()
@@ -18769,6 +18866,19 @@ var harnessPluginRouteSchema = external_exports.object({
18769
18866
  permissionModeId: harnessPermissionModeIdSchema.optional()
18770
18867
  }).strict();
18771
18868
 
18869
+ // ../../shared-contracts/dist/harness-launch-settings.js
18870
+ var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
18871
+ var harnessLaunchSettingsGetSchema = external_exports.object({
18872
+ harnessId: harnessPluginIdSchema
18873
+ }).strict();
18874
+ var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
18875
+ path: harnessLaunchPathSchema.nullable()
18876
+ });
18877
+ var harnessLaunchSettingsSchema = external_exports.object({
18878
+ path: harnessLaunchPathSchema.nullable(),
18879
+ restartRequired: external_exports.boolean()
18880
+ }).strict();
18881
+
18772
18882
  // ../../shared-contracts/dist/codex-accounts.js
18773
18883
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
18774
18884
  var nonBlankTextSchema3 = external_exports.string().trim().min(1);
@@ -19177,6 +19287,11 @@ var HarnessOutputChannel = class {
19177
19287
  var DIAGNOSTIC_TAIL_MAX_LENGTH = 8e3;
19178
19288
  var SENSITIVE_VALUE_PATTERN = /(api[_-]?key|access[_-]?token|auth(?:orization)?|password|secret)(\s*[:=]\s*)([^\s,;]+)/giu;
19179
19289
  var BEARER_PATTERN = /\bBearer\s+[A-Za-z0-9._~+/=-]+/giu;
19290
+ var NODE_WARNING_PREFIX_PATTERN = /^\(node:\d+\)\s+/u;
19291
+ var NODE_TRACE_WARNINGS_HINT_PATTERN = /^\(Use\s+`node\s+--trace-warnings/u;
19292
+ function filterAmbientNodeWarnings(output) {
19293
+ return output.split("\n").filter((line) => !NODE_WARNING_PREFIX_PATTERN.test(line) && !NODE_TRACE_WARNINGS_HINT_PATTERN.test(line)).join("\n");
19294
+ }
19180
19295
  function sanitizeDiagnosticTail(value) {
19181
19296
  const redacted = value.replace(BEARER_PATTERN, "Bearer [redacted]").replace(SENSITIVE_VALUE_PATTERN, "$1$2[redacted]");
19182
19297
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
@@ -19734,9 +19849,10 @@ async function probeDeepSeekExecutableGeneration(options = {}, dependencies = {
19734
19849
  cleanupTimeoutMs,
19735
19850
  outputLimitBytes
19736
19851
  }, dependencies);
19737
- if (output.stderr.length > 0) {
19852
+ const substantiveStderr = filterAmbientNodeWarnings(output.stderr);
19853
+ if (substantiveStderr.length > 0) {
19738
19854
  throw probeError("protocolError", "DeepSeek Harness --version wrote unexpected stderr", {
19739
- stderrTail: sanitizeDiagnosticTail(output.stderr)
19855
+ stderrTail: sanitizeDiagnosticTail(substantiveStderr)
19740
19856
  });
19741
19857
  }
19742
19858
  return { ...classifyDeepSeekVersionOutput(output.stdout), command };
@@ -21857,7 +21973,7 @@ function structuredDiffs(meta3) {
21857
21973
  const oldHeader = kind === "add" ? "/dev/null" : `a/${candidate.path}`;
21858
21974
  const newHeader = kind === "delete" ? "/dev/null" : `b/${candidate.path}`;
21859
21975
  const unifiedDiff = createTwoFilesPatch(oldHeader, newHeader, oldText ?? "", newText ?? "", "", "", { context: 3 });
21860
- changes.push({ path: candidate.path, kind, unifiedDiff });
21976
+ changes.push({ path: candidate.path, kind, unifiedDiff, diffScope: "fragment" });
21861
21977
  }
21862
21978
  return changes;
21863
21979
  }
@@ -27216,6 +27332,7 @@ function projectToolResultEvent(turn, sessionId, data, seq, limit) {
27216
27332
  const fileItem = {
27217
27333
  type: "fileChange",
27218
27334
  itemId: modernItemId(sessionId, `event:${seq}:file-change`),
27335
+ sourceItemIds: [item.itemId],
27219
27336
  changes
27220
27337
  };
27221
27338
  turn.items.push({ item: fileItem, outcome: { status: "succeeded" } });
@@ -28287,14 +28404,14 @@ ${question.detail}` : question.question;
28287
28404
  if (force || changed)
28288
28405
  this.#emit({ type: "session.state.changed", state: next });
28289
28406
  }
28290
- #configurationBusy(area) {
28291
- if (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0 || this.#configuring || this.#reading) {
28407
+ #configurationBusy(area, allowActiveTurn = false) {
28408
+ if (this.#configuring || this.#reading || !allowActiveTurn && (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0)) {
28292
28409
  return busyError(`select ${area}`);
28293
28410
  }
28294
28411
  return void 0;
28295
28412
  }
28296
28413
  async #selectModel(command) {
28297
- const busy = this.#configurationBusy("a Model");
28414
+ const busy = this.#configurationBusy("a Model", true);
28298
28415
  if (busy)
28299
28416
  return { ok: false, error: busy };
28300
28417
  let requested;
@@ -28309,7 +28426,7 @@ ${question.detail}` : question.question;
28309
28426
  });
28310
28427
  }
28311
28428
  async #selectThinking(command) {
28312
- const busy = this.#configurationBusy("Thinking");
28429
+ const busy = this.#configurationBusy("Thinking", true);
28313
28430
  if (busy)
28314
28431
  return { ok: false, error: busy };
28315
28432
  let requested;
@@ -29416,6 +29533,7 @@ ${question.detail}` : question.question;
29416
29533
  const fileItem = {
29417
29534
  type: "fileChange",
29418
29535
  itemId: modernItemId(this.#sessionId, `event:${seq}:file-change`),
29536
+ sourceItemIds: [item.itemId],
29419
29537
  changes
29420
29538
  };
29421
29539
  this.#emit({ type: "item.started", turnId: active.turnId, item: fileItem });
@@ -12,6 +12,9 @@
12
12
  "muse",
13
13
  "kiro-cli",
14
14
  "codebuddy",
15
- "cursor-cli"
15
+ "workbuddy",
16
+ "cursor-cli",
17
+ "qoder",
18
+ "qoder-cn"
16
19
  ]
17
20
  }