@liberseek/boft-cli-win32-arm64 0.6.8 → 0.7.0

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 (34) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.txt +16 -0
  3. package/app/codexhost-distribution.json +1 -1
  4. package/app/desktop-controller.mjs +184 -47
  5. package/app/host-runtime.mjs +5449 -4221
  6. package/app/plugins/antigravity/plugin.mjs +70 -61
  7. package/app/plugins/claude-code/plugin.mjs +85 -58
  8. package/app/plugins/codebuddy/plugin.mjs +102 -69
  9. package/app/plugins/cursor-cli/plugin.mjs +69 -50
  10. package/app/plugins/deepseek-harness/plugin.mjs +81 -53
  11. package/app/plugins/enabled.json +3 -1
  12. package/app/plugins/grok/plugin.mjs +94 -61
  13. package/app/plugins/hermes/plugin.mjs +308 -95
  14. package/app/plugins/kiro-cli/plugin.mjs +76 -49
  15. package/app/plugins/muse/plugin.mjs +66 -46
  16. package/app/plugins/omp/plugin.mjs +79 -52
  17. package/app/plugins/opencode/plugin.mjs +118 -92
  18. package/app/plugins/pi/plugin.mjs +79 -52
  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 +52290 -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 +52288 -0
  25. package/app/renderer-extension.js +3857 -1175
  26. package/bin/boft.exe +0 -0
  27. package/libexec/boft-node-repl.exe +0 -0
  28. package/libexec/boft-shim.exe +0 -0
  29. package/libexec/boft-updater.exe +0 -0
  30. package/licenses/Qoder-Agent-SDK-LICENSE.txt +7 -0
  31. package/licenses/QoderCN-Agent-SDK-LICENSE.txt +7 -0
  32. package/licenses/opencodex-LICENSE.txt +21 -0
  33. package/licenses/tailwindcss-LICENSE.txt +21 -0
  34. package/package.json +1 -1
@@ -14525,6 +14525,46 @@ config(en_default());
14525
14525
  // ../../shared-contracts/dist/version.js
14526
14526
  var WORKSPACE_CONTRACT_VERSION = 1;
14527
14527
 
14528
+ // ../../shared-contracts/dist/idle-release.js
14529
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
14530
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
14531
+ var idleReleaseSettingsSchema = external_exports.strictObject({
14532
+ enabled: external_exports.boolean(),
14533
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
14534
+ });
14535
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
14536
+ enabled: false,
14537
+ timeoutMinutes: 30
14538
+ });
14539
+
14540
+ // ../../shared-contracts/dist/loaded-sessions.js
14541
+ var loadedSessionStateSchema = external_exports.enum([
14542
+ "idle",
14543
+ "running",
14544
+ "busy",
14545
+ "closing",
14546
+ "failed",
14547
+ "blocked"
14548
+ ]);
14549
+ var loadedSessionReasonSchema = external_exports.enum([
14550
+ "none",
14551
+ "disabled",
14552
+ "timeout",
14553
+ "operation",
14554
+ "background",
14555
+ "identity",
14556
+ "persistence",
14557
+ "closeFailed"
14558
+ ]);
14559
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
14560
+ threadId: external_exports.string(),
14561
+ title: external_exports.string(),
14562
+ harnessId: external_exports.string(),
14563
+ state: loadedSessionStateSchema,
14564
+ reason: loadedSessionReasonSchema,
14565
+ inactiveMs: external_exports.number().nonnegative()
14566
+ }));
14567
+
14528
14568
  // ../../shared-contracts/dist/ids.js
14529
14569
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
14530
14570
  message: "Identifier must not be empty or whitespace"
@@ -14645,12 +14685,21 @@ var harnessAccountSnapshotSchema = external_exports.object({
14645
14685
  plan: external_exports.string().trim().min(1).max(128).optional(),
14646
14686
  credits: accountCreditsSnapshotSchema
14647
14687
  }).strict();
14648
- var harnessAccountListParamsSchema = external_exports.object({}).strict();
14688
+ var harnessAccountIdentityShape = {
14689
+ harnessId: harnessIdSchema,
14690
+ harnessName: external_exports.string().trim().min(1).max(128)
14691
+ };
14692
+ var harnessAccountSourceSchema = external_exports.object(harnessAccountIdentityShape).strict();
14693
+ var harnessAccountSourceListParamsSchema = external_exports.object({}).strict();
14694
+ var harnessAccountSourceListResultSchema = external_exports.object({ sources: external_exports.array(harnessAccountSourceSchema).max(128) }).strict();
14695
+ var harnessAccountInspectParamsSchema = external_exports.object({ harnessId: harnessIdSchema, refresh: external_exports.boolean().optional() }).strict();
14696
+ var harnessAccountInspectResultSchema = external_exports.object({
14697
+ ...harnessAccountIdentityShape,
14698
+ account: harnessAccountSnapshotSchema.nullable()
14699
+ }).strict();
14700
+ var harnessAccountListParamsSchema = external_exports.object({ refresh: external_exports.boolean().optional() }).strict();
14649
14701
  var harnessAccountListResultSchema = external_exports.object({
14650
- accounts: external_exports.array(harnessAccountSnapshotSchema.extend({
14651
- harnessId: harnessIdSchema,
14652
- harnessName: external_exports.string().min(1)
14653
- })).max(128)
14702
+ accounts: external_exports.array(harnessAccountSnapshotSchema.extend(harnessAccountIdentityShape)).max(128)
14654
14703
  }).strict();
14655
14704
 
14656
14705
  // ../../shared-contracts/dist/json-value.js
@@ -14946,7 +14995,6 @@ var threadInspectionParamsSchema = external_exports.object({
14946
14995
  }).strict();
14947
14996
  var codexThreadInspectionSchema = external_exports.object({
14948
14997
  owner: external_exports.literal("codex"),
14949
- accountId: nonBlankTextSchema2.optional(),
14950
14998
  locked: external_exports.literal(true)
14951
14999
  }).strict();
14952
15000
  var externalThreadInspectionSchema = external_exports.object({
@@ -15088,53 +15136,25 @@ var codexAccountSchema = external_exports.object({
15088
15136
  label: nonBlankTextSchema3.max(256),
15089
15137
  email: external_exports.string().email().max(320).optional(),
15090
15138
  planType: codexAccountPlanTypeSchema.optional(),
15091
- codexHome: nonBlankTextSchema3.max(16384),
15092
- active: external_exports.boolean(),
15093
- isDefault: external_exports.boolean(),
15094
15139
  authKind: codexAccountAuthKindSchema.optional(),
15095
15140
  authIdentity: nonBlankTextSchema3.max(256).optional()
15096
15141
  }).strict();
15097
- var codexAccountListResultSchema = external_exports.object({ accounts: external_exports.array(codexAccountSchema).max(128) }).strict();
15098
- var codexAccountCreateParamsSchema = external_exports.object({ label: nonBlankTextSchema3.max(256).optional() }).strict();
15099
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15100
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15101
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
15102
- var codexAccountMutationResultSchema = external_exports.object({ account: codexAccountSchema }).strict();
15103
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15104
- var codexAccountLoginStartResultSchema = external_exports.object({
15105
- accountId: accountIdSchema,
15106
- loginId: nonBlankTextSchema3.max(1024),
15107
- verificationUrl: external_exports.string().url().max(16384),
15108
- userCode: nonBlankTextSchema3.max(1024)
15142
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
15143
+ var codexAccountListResultSchema = external_exports.object({
15144
+ version: external_exports.literal(2),
15145
+ currentAccountId: accountIdSchema.nullable(),
15146
+ phase: codexAccountPhaseSchema,
15147
+ revision: external_exports.number().int().nonnegative(),
15148
+ instanceId: nonBlankTextSchema3.max(1024).optional(),
15149
+ accounts: external_exports.array(codexAccountSchema).max(1)
15109
15150
  }).strict();
15110
- var codexAccountLoginCancelParamsSchema = external_exports.object({ accountId: accountIdSchema.optional(), loginId: nonBlankTextSchema3.max(1024) }).strict();
15111
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
15112
- var codexAccountLoginCompletedSchema = external_exports.object({
15113
- accountId: accountIdSchema,
15114
- loginId: nonBlankTextSchema3.max(1024),
15115
- success: external_exports.boolean(),
15116
- error: external_exports.string().max(4096).nullable()
15117
- }).strict();
15118
- var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15151
+ var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
15119
15152
  var codexAccountUsageResultSchema = external_exports.object({
15120
15153
  accountId: accountIdSchema,
15121
15154
  usage: threadUsageSnapshotSchema.nullable(),
15122
- accountCredits: accountCreditsSnapshotSchema.optional()
15123
- }).strict();
15124
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
15125
- accountId: accountIdSchema,
15126
- idempotencyKey: external_exports.string().uuid().optional()
15127
- }).strict();
15128
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
15129
- "reset",
15130
- "nothingToReset",
15131
- "noCredit",
15132
- "alreadyRedeemed"
15133
- ]);
15134
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
15135
- accountId: accountIdSchema,
15136
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
15137
- accountCredits: accountCreditsSnapshotSchema.optional()
15155
+ accountCredits: accountCreditsSnapshotSchema.optional(),
15156
+ freshness: external_exports.enum(["live", "cached"]),
15157
+ observedAt: external_exports.string().datetime().nullable()
15138
15158
  }).strict();
15139
15159
 
15140
15160
  // ../../shared-contracts/dist/harness-session-import.js
@@ -21073,6 +21093,26 @@ function snapshotFromHistory(contents, ref, cwd) {
21073
21093
  const turns = [];
21074
21094
  let current;
21075
21095
  const tools = /* @__PURE__ */ new Map();
21096
+ const earlyResults = /* @__PURE__ */ new Map();
21097
+ const applyResult = (snapshot, row) => {
21098
+ snapshot.outcome = toolOutcome(row.status);
21099
+ if (snapshot.item.type === "subagentDelegation") {
21100
+ const childId = codeBuddyChildId(row);
21101
+ snapshot.item.subagents = snapshot.item.subagents.map((child) => ({
21102
+ ...child,
21103
+ ...childId ? { subagentId: childId, nativeSubagentId: childId } : {},
21104
+ status: snapshot.outcome.status === "failed" ? "failed" : child.background ? "interrupted" : "completed",
21105
+ resultSummary: child.background ? "Live background observation is unavailable after reload" : contentText(row.output).slice(0, 2e3)
21106
+ }));
21107
+ }
21108
+ if (snapshot.item.type === "toolExecution")
21109
+ snapshot.item.output = toolOutput(row.output);
21110
+ if (snapshot.item.type === "commandExecution") {
21111
+ const output = toolOutput(row.output);
21112
+ snapshot.item.output = contentText(output.content);
21113
+ snapshot.item.outputTruncated = Boolean(output.truncated);
21114
+ }
21115
+ };
21076
21116
  for (const row of nativeHistoryRows(contents)) {
21077
21117
  if (row.type === "message" && row.role === "user") {
21078
21118
  current = {
@@ -21089,6 +21129,7 @@ function snapshotFromHistory(contents, ref, cwd) {
21089
21129
  };
21090
21130
  turns.push(current);
21091
21131
  tools.clear();
21132
+ earlyResults.clear();
21092
21133
  continue;
21093
21134
  }
21094
21135
  if (!current)
@@ -21118,34 +21159,26 @@ function snapshotFromHistory(contents, ref, cwd) {
21118
21159
  throw new CodeBuddyError("protocolError", "Invalid native Tool arguments");
21119
21160
  }
21120
21161
  }
21162
+ const callId = text(row.callId);
21121
21163
  const snapshot = {
21122
- item: row.name === "Agent" ? codeBuddyDelegation(text(row.callId), input, "running") : toolItem(text(row.callId), text(row.name), input, cwd),
21164
+ item: row.name === "Agent" ? codeBuddyDelegation(callId, input, "running") : toolItem(callId, text(row.name), input, cwd),
21123
21165
  outcome: toolOutcome("unknown")
21124
21166
  };
21125
- tools.set(text(row.callId), snapshot);
21167
+ tools.set(callId, snapshot);
21126
21168
  current.items.push(snapshot);
21127
21169
  current.outcome = { status: "unknown", reason: "Native Tool has not completed" };
21128
- } else if (row.type === "function_call_result") {
21129
- const snapshot = tools.get(text(row.callId));
21130
- if (!snapshot)
21131
- throw new CodeBuddyError("protocolError", "Native Tool result has no call");
21132
- snapshot.outcome = toolOutcome(row.status);
21133
- if (snapshot.item.type === "subagentDelegation") {
21134
- const childId = codeBuddyChildId(row);
21135
- snapshot.item.subagents = snapshot.item.subagents.map((child) => ({
21136
- ...child,
21137
- ...childId ? { subagentId: childId, nativeSubagentId: childId } : {},
21138
- status: snapshot.outcome.status === "failed" ? "failed" : child.background ? "interrupted" : "completed",
21139
- resultSummary: child.background ? "Live background observation is unavailable after reload" : contentText(row.output).slice(0, 2e3)
21140
- }));
21141
- }
21142
- if (snapshot.item.type === "toolExecution")
21143
- snapshot.item.output = toolOutput(row.output);
21144
- if (snapshot.item.type === "commandExecution") {
21145
- const output = toolOutput(row.output);
21146
- snapshot.item.output = contentText(output.content);
21147
- snapshot.item.outputTruncated = Boolean(output.truncated);
21170
+ const early = earlyResults.get(callId);
21171
+ if (early) {
21172
+ earlyResults.delete(callId);
21173
+ applyResult(snapshot, early);
21148
21174
  }
21175
+ } else if (row.type === "function_call_result") {
21176
+ const callId = text(row.callId);
21177
+ const snapshot = tools.get(callId);
21178
+ if (snapshot)
21179
+ applyResult(snapshot, row);
21180
+ else
21181
+ earlyResults.set(callId, row);
21149
21182
  }
21150
21183
  }
21151
21184
  return { turns };
@@ -21885,7 +21918,7 @@ var CodeBuddySession = class {
21885
21918
  }
21886
21919
  return { ok: true, value: { cancellationRequested: true } };
21887
21920
  }
21888
- if (this.#busy || this.#active)
21921
+ if (this.#busy || this.#active && command.type !== "model.select" && command.type !== "thinking.select")
21889
21922
  return failure("sessionBusy", "Session is executing an operation");
21890
21923
  this.#busy = true;
21891
21924
  try {
@@ -14525,6 +14525,46 @@ config(en_default());
14525
14525
  // ../../shared-contracts/dist/version.js
14526
14526
  var WORKSPACE_CONTRACT_VERSION = 1;
14527
14527
 
14528
+ // ../../shared-contracts/dist/idle-release.js
14529
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
14530
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
14531
+ var idleReleaseSettingsSchema = external_exports.strictObject({
14532
+ enabled: external_exports.boolean(),
14533
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
14534
+ });
14535
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
14536
+ enabled: false,
14537
+ timeoutMinutes: 30
14538
+ });
14539
+
14540
+ // ../../shared-contracts/dist/loaded-sessions.js
14541
+ var loadedSessionStateSchema = external_exports.enum([
14542
+ "idle",
14543
+ "running",
14544
+ "busy",
14545
+ "closing",
14546
+ "failed",
14547
+ "blocked"
14548
+ ]);
14549
+ var loadedSessionReasonSchema = external_exports.enum([
14550
+ "none",
14551
+ "disabled",
14552
+ "timeout",
14553
+ "operation",
14554
+ "background",
14555
+ "identity",
14556
+ "persistence",
14557
+ "closeFailed"
14558
+ ]);
14559
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
14560
+ threadId: external_exports.string(),
14561
+ title: external_exports.string(),
14562
+ harnessId: external_exports.string(),
14563
+ state: loadedSessionStateSchema,
14564
+ reason: loadedSessionReasonSchema,
14565
+ inactiveMs: external_exports.number().nonnegative()
14566
+ }));
14567
+
14528
14568
  // ../../shared-contracts/dist/ids.js
14529
14569
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
14530
14570
  message: "Identifier must not be empty or whitespace"
@@ -14645,12 +14685,21 @@ var harnessAccountSnapshotSchema = external_exports.object({
14645
14685
  plan: external_exports.string().trim().min(1).max(128).optional(),
14646
14686
  credits: accountCreditsSnapshotSchema
14647
14687
  }).strict();
14648
- var harnessAccountListParamsSchema = external_exports.object({}).strict();
14688
+ var harnessAccountIdentityShape = {
14689
+ harnessId: harnessIdSchema,
14690
+ harnessName: external_exports.string().trim().min(1).max(128)
14691
+ };
14692
+ var harnessAccountSourceSchema = external_exports.object(harnessAccountIdentityShape).strict();
14693
+ var harnessAccountSourceListParamsSchema = external_exports.object({}).strict();
14694
+ var harnessAccountSourceListResultSchema = external_exports.object({ sources: external_exports.array(harnessAccountSourceSchema).max(128) }).strict();
14695
+ var harnessAccountInspectParamsSchema = external_exports.object({ harnessId: harnessIdSchema, refresh: external_exports.boolean().optional() }).strict();
14696
+ var harnessAccountInspectResultSchema = external_exports.object({
14697
+ ...harnessAccountIdentityShape,
14698
+ account: harnessAccountSnapshotSchema.nullable()
14699
+ }).strict();
14700
+ var harnessAccountListParamsSchema = external_exports.object({ refresh: external_exports.boolean().optional() }).strict();
14649
14701
  var harnessAccountListResultSchema = external_exports.object({
14650
- accounts: external_exports.array(harnessAccountSnapshotSchema.extend({
14651
- harnessId: harnessIdSchema,
14652
- harnessName: external_exports.string().min(1)
14653
- })).max(128)
14702
+ accounts: external_exports.array(harnessAccountSnapshotSchema.extend(harnessAccountIdentityShape)).max(128)
14654
14703
  }).strict();
14655
14704
 
14656
14705
  // ../../shared-contracts/dist/json-value.js
@@ -14946,7 +14995,6 @@ var threadInspectionParamsSchema = external_exports.object({
14946
14995
  }).strict();
14947
14996
  var codexThreadInspectionSchema = external_exports.object({
14948
14997
  owner: external_exports.literal("codex"),
14949
- accountId: nonBlankTextSchema2.optional(),
14950
14998
  locked: external_exports.literal(true)
14951
14999
  }).strict();
14952
15000
  var externalThreadInspectionSchema = external_exports.object({
@@ -15088,53 +15136,25 @@ var codexAccountSchema = external_exports.object({
15088
15136
  label: nonBlankTextSchema3.max(256),
15089
15137
  email: external_exports.string().email().max(320).optional(),
15090
15138
  planType: codexAccountPlanTypeSchema.optional(),
15091
- codexHome: nonBlankTextSchema3.max(16384),
15092
- active: external_exports.boolean(),
15093
- isDefault: external_exports.boolean(),
15094
15139
  authKind: codexAccountAuthKindSchema.optional(),
15095
15140
  authIdentity: nonBlankTextSchema3.max(256).optional()
15096
15141
  }).strict();
15097
- var codexAccountListResultSchema = external_exports.object({ accounts: external_exports.array(codexAccountSchema).max(128) }).strict();
15098
- var codexAccountCreateParamsSchema = external_exports.object({ label: nonBlankTextSchema3.max(256).optional() }).strict();
15099
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15100
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15101
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
15102
- var codexAccountMutationResultSchema = external_exports.object({ account: codexAccountSchema }).strict();
15103
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15104
- var codexAccountLoginStartResultSchema = external_exports.object({
15105
- accountId: accountIdSchema,
15106
- loginId: nonBlankTextSchema3.max(1024),
15107
- verificationUrl: external_exports.string().url().max(16384),
15108
- userCode: nonBlankTextSchema3.max(1024)
15142
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
15143
+ var codexAccountListResultSchema = external_exports.object({
15144
+ version: external_exports.literal(2),
15145
+ currentAccountId: accountIdSchema.nullable(),
15146
+ phase: codexAccountPhaseSchema,
15147
+ revision: external_exports.number().int().nonnegative(),
15148
+ instanceId: nonBlankTextSchema3.max(1024).optional(),
15149
+ accounts: external_exports.array(codexAccountSchema).max(1)
15109
15150
  }).strict();
15110
- var codexAccountLoginCancelParamsSchema = external_exports.object({ accountId: accountIdSchema.optional(), loginId: nonBlankTextSchema3.max(1024) }).strict();
15111
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
15112
- var codexAccountLoginCompletedSchema = external_exports.object({
15113
- accountId: accountIdSchema,
15114
- loginId: nonBlankTextSchema3.max(1024),
15115
- success: external_exports.boolean(),
15116
- error: external_exports.string().max(4096).nullable()
15117
- }).strict();
15118
- var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15151
+ var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
15119
15152
  var codexAccountUsageResultSchema = external_exports.object({
15120
15153
  accountId: accountIdSchema,
15121
15154
  usage: threadUsageSnapshotSchema.nullable(),
15122
- accountCredits: accountCreditsSnapshotSchema.optional()
15123
- }).strict();
15124
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
15125
- accountId: accountIdSchema,
15126
- idempotencyKey: external_exports.string().uuid().optional()
15127
- }).strict();
15128
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
15129
- "reset",
15130
- "nothingToReset",
15131
- "noCredit",
15132
- "alreadyRedeemed"
15133
- ]);
15134
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
15135
- accountId: accountIdSchema,
15136
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
15137
- accountCredits: accountCreditsSnapshotSchema.optional()
15155
+ accountCredits: accountCreditsSnapshotSchema.optional(),
15156
+ freshness: external_exports.enum(["live", "cached"]),
15157
+ observedAt: external_exports.string().datetime().nullable()
15138
15158
  }).strict();
15139
15159
 
15140
15160
  // ../../shared-contracts/dist/harness-session-import.js
@@ -21379,7 +21399,7 @@ var CursorAdapter = class {
21379
21399
  };
21380
21400
  const cwd = path5.resolve(input.cwd ?? process.cwd());
21381
21401
  const cached2 = this.#inspections.get(cwd);
21382
- if (cached2 && (cached2.pending || !input.refresh && cached2.expires > Date.now()))
21402
+ if (cached2 && (cached2.pending || !input.refresh))
21383
21403
  return cached2.result;
21384
21404
  const result = (async () => {
21385
21405
  const transport = new CursorTransport(this.transportOptions(cwd));
@@ -21401,11 +21421,10 @@ var CursorAdapter = class {
21401
21421
  await transport.close();
21402
21422
  }
21403
21423
  })();
21404
- const entry = { expires: Number.POSITIVE_INFINITY, pending: true, result };
21424
+ const entry = { pending: true, result };
21405
21425
  this.#inspections.set(cwd, entry);
21406
21426
  void result.finally(() => {
21407
21427
  entry.pending = false;
21408
- entry.expires = Date.now() + 5 * 6e4;
21409
21428
  });
21410
21429
  return result;
21411
21430
  }
@@ -21557,7 +21576,7 @@ var CursorSession = class {
21557
21576
  void active.task.finally(() => clearTimeout(timer));
21558
21577
  return { ok: true, value: { cancellationRequested: true } };
21559
21578
  }
21560
- if (this.#active || this.#configuring)
21579
+ if (this.#configuring || this.#active && command.type !== "model.select" && command.type !== "thinking.select")
21561
21580
  return rejected("sessionBusy", "Cursor session is busy");
21562
21581
  if (command.type === "turn.start") {
21563
21582
  if (this.#submitted.has(command.turnId))
@@ -18226,6 +18226,46 @@ config(en_default());
18226
18226
  // ../../shared-contracts/dist/version.js
18227
18227
  var WORKSPACE_CONTRACT_VERSION = 1;
18228
18228
 
18229
+ // ../../shared-contracts/dist/idle-release.js
18230
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
18231
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
18232
+ var idleReleaseSettingsSchema = external_exports.strictObject({
18233
+ enabled: external_exports.boolean(),
18234
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
18235
+ });
18236
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
18237
+ enabled: false,
18238
+ timeoutMinutes: 30
18239
+ });
18240
+
18241
+ // ../../shared-contracts/dist/loaded-sessions.js
18242
+ var loadedSessionStateSchema = external_exports.enum([
18243
+ "idle",
18244
+ "running",
18245
+ "busy",
18246
+ "closing",
18247
+ "failed",
18248
+ "blocked"
18249
+ ]);
18250
+ var loadedSessionReasonSchema = external_exports.enum([
18251
+ "none",
18252
+ "disabled",
18253
+ "timeout",
18254
+ "operation",
18255
+ "background",
18256
+ "identity",
18257
+ "persistence",
18258
+ "closeFailed"
18259
+ ]);
18260
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
18261
+ threadId: external_exports.string(),
18262
+ title: external_exports.string(),
18263
+ harnessId: external_exports.string(),
18264
+ state: loadedSessionStateSchema,
18265
+ reason: loadedSessionReasonSchema,
18266
+ inactiveMs: external_exports.number().nonnegative()
18267
+ }));
18268
+
18229
18269
  // ../../shared-contracts/dist/ids.js
18230
18270
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
18231
18271
  message: "Identifier must not be empty or whitespace"
@@ -18346,12 +18386,21 @@ var harnessAccountSnapshotSchema = external_exports.object({
18346
18386
  plan: external_exports.string().trim().min(1).max(128).optional(),
18347
18387
  credits: accountCreditsSnapshotSchema
18348
18388
  }).strict();
18349
- var harnessAccountListParamsSchema = external_exports.object({}).strict();
18389
+ var harnessAccountIdentityShape = {
18390
+ harnessId: harnessIdSchema,
18391
+ harnessName: external_exports.string().trim().min(1).max(128)
18392
+ };
18393
+ var harnessAccountSourceSchema = external_exports.object(harnessAccountIdentityShape).strict();
18394
+ var harnessAccountSourceListParamsSchema = external_exports.object({}).strict();
18395
+ var harnessAccountSourceListResultSchema = external_exports.object({ sources: external_exports.array(harnessAccountSourceSchema).max(128) }).strict();
18396
+ var harnessAccountInspectParamsSchema = external_exports.object({ harnessId: harnessIdSchema, refresh: external_exports.boolean().optional() }).strict();
18397
+ var harnessAccountInspectResultSchema = external_exports.object({
18398
+ ...harnessAccountIdentityShape,
18399
+ account: harnessAccountSnapshotSchema.nullable()
18400
+ }).strict();
18401
+ var harnessAccountListParamsSchema = external_exports.object({ refresh: external_exports.boolean().optional() }).strict();
18350
18402
  var harnessAccountListResultSchema = external_exports.object({
18351
- accounts: external_exports.array(harnessAccountSnapshotSchema.extend({
18352
- harnessId: harnessIdSchema,
18353
- harnessName: external_exports.string().min(1)
18354
- })).max(128)
18403
+ accounts: external_exports.array(harnessAccountSnapshotSchema.extend(harnessAccountIdentityShape)).max(128)
18355
18404
  }).strict();
18356
18405
 
18357
18406
  // ../../shared-contracts/dist/json-value.js
@@ -18647,7 +18696,6 @@ var threadInspectionParamsSchema = external_exports.object({
18647
18696
  }).strict();
18648
18697
  var codexThreadInspectionSchema = external_exports.object({
18649
18698
  owner: external_exports.literal("codex"),
18650
- accountId: nonBlankTextSchema2.optional(),
18651
18699
  locked: external_exports.literal(true)
18652
18700
  }).strict();
18653
18701
  var externalThreadInspectionSchema = external_exports.object({
@@ -18789,53 +18837,25 @@ var codexAccountSchema = external_exports.object({
18789
18837
  label: nonBlankTextSchema3.max(256),
18790
18838
  email: external_exports.string().email().max(320).optional(),
18791
18839
  planType: codexAccountPlanTypeSchema.optional(),
18792
- codexHome: nonBlankTextSchema3.max(16384),
18793
- active: external_exports.boolean(),
18794
- isDefault: external_exports.boolean(),
18795
18840
  authKind: codexAccountAuthKindSchema.optional(),
18796
18841
  authIdentity: nonBlankTextSchema3.max(256).optional()
18797
18842
  }).strict();
18798
- var codexAccountListResultSchema = external_exports.object({ accounts: external_exports.array(codexAccountSchema).max(128) }).strict();
18799
- var codexAccountCreateParamsSchema = external_exports.object({ label: nonBlankTextSchema3.max(256).optional() }).strict();
18800
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18801
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18802
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
18803
- var codexAccountMutationResultSchema = external_exports.object({ account: codexAccountSchema }).strict();
18804
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18805
- var codexAccountLoginStartResultSchema = external_exports.object({
18806
- accountId: accountIdSchema,
18807
- loginId: nonBlankTextSchema3.max(1024),
18808
- verificationUrl: external_exports.string().url().max(16384),
18809
- userCode: nonBlankTextSchema3.max(1024)
18843
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
18844
+ var codexAccountListResultSchema = external_exports.object({
18845
+ version: external_exports.literal(2),
18846
+ currentAccountId: accountIdSchema.nullable(),
18847
+ phase: codexAccountPhaseSchema,
18848
+ revision: external_exports.number().int().nonnegative(),
18849
+ instanceId: nonBlankTextSchema3.max(1024).optional(),
18850
+ accounts: external_exports.array(codexAccountSchema).max(1)
18810
18851
  }).strict();
18811
- var codexAccountLoginCancelParamsSchema = external_exports.object({ accountId: accountIdSchema.optional(), loginId: nonBlankTextSchema3.max(1024) }).strict();
18812
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
18813
- var codexAccountLoginCompletedSchema = external_exports.object({
18814
- accountId: accountIdSchema,
18815
- loginId: nonBlankTextSchema3.max(1024),
18816
- success: external_exports.boolean(),
18817
- error: external_exports.string().max(4096).nullable()
18818
- }).strict();
18819
- var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18852
+ var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
18820
18853
  var codexAccountUsageResultSchema = external_exports.object({
18821
18854
  accountId: accountIdSchema,
18822
18855
  usage: threadUsageSnapshotSchema.nullable(),
18823
- accountCredits: accountCreditsSnapshotSchema.optional()
18824
- }).strict();
18825
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
18826
- accountId: accountIdSchema,
18827
- idempotencyKey: external_exports.string().uuid().optional()
18828
- }).strict();
18829
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
18830
- "reset",
18831
- "nothingToReset",
18832
- "noCredit",
18833
- "alreadyRedeemed"
18834
- ]);
18835
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
18836
- accountId: accountIdSchema,
18837
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
18838
- accountCredits: accountCreditsSnapshotSchema.optional()
18856
+ accountCredits: accountCreditsSnapshotSchema.optional(),
18857
+ freshness: external_exports.enum(["live", "cached"]),
18858
+ observedAt: external_exports.string().datetime().nullable()
18839
18859
  }).strict();
18840
18860
 
18841
18861
  // ../../shared-contracts/dist/harness-session-import.js
@@ -19197,6 +19217,11 @@ var HarnessOutputChannel = class {
19197
19217
  var DIAGNOSTIC_TAIL_MAX_LENGTH = 8e3;
19198
19218
  var SENSITIVE_VALUE_PATTERN = /(api[_-]?key|access[_-]?token|auth(?:orization)?|password|secret)(\s*[:=]\s*)([^\s,;]+)/giu;
19199
19219
  var BEARER_PATTERN = /\bBearer\s+[A-Za-z0-9._~+/=-]+/giu;
19220
+ var NODE_WARNING_PREFIX_PATTERN = /^\(node:\d+\)\s+/u;
19221
+ var NODE_TRACE_WARNINGS_HINT_PATTERN = /^\(Use\s+`node\s+--trace-warnings/u;
19222
+ function filterAmbientNodeWarnings(output) {
19223
+ return output.split("\n").filter((line) => !NODE_WARNING_PREFIX_PATTERN.test(line) && !NODE_TRACE_WARNINGS_HINT_PATTERN.test(line)).join("\n");
19224
+ }
19200
19225
  function sanitizeDiagnosticTail(value) {
19201
19226
  const redacted = value.replace(BEARER_PATTERN, "Bearer [redacted]").replace(SENSITIVE_VALUE_PATTERN, "$1$2[redacted]");
19202
19227
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
@@ -19754,9 +19779,10 @@ async function probeDeepSeekExecutableGeneration(options = {}, dependencies = {
19754
19779
  cleanupTimeoutMs,
19755
19780
  outputLimitBytes
19756
19781
  }, dependencies);
19757
- if (output.stderr.length > 0) {
19782
+ const substantiveStderr = filterAmbientNodeWarnings(output.stderr);
19783
+ if (substantiveStderr.length > 0) {
19758
19784
  throw probeError("protocolError", "DeepSeek Harness --version wrote unexpected stderr", {
19759
- stderrTail: sanitizeDiagnosticTail(output.stderr)
19785
+ stderrTail: sanitizeDiagnosticTail(substantiveStderr)
19760
19786
  });
19761
19787
  }
19762
19788
  return { ...classifyDeepSeekVersionOutput(output.stdout), command };
@@ -21877,7 +21903,7 @@ function structuredDiffs(meta3) {
21877
21903
  const oldHeader = kind === "add" ? "/dev/null" : `a/${candidate.path}`;
21878
21904
  const newHeader = kind === "delete" ? "/dev/null" : `b/${candidate.path}`;
21879
21905
  const unifiedDiff = createTwoFilesPatch(oldHeader, newHeader, oldText ?? "", newText ?? "", "", "", { context: 3 });
21880
- changes.push({ path: candidate.path, kind, unifiedDiff });
21906
+ changes.push({ path: candidate.path, kind, unifiedDiff, diffScope: "fragment" });
21881
21907
  }
21882
21908
  return changes;
21883
21909
  }
@@ -27236,6 +27262,7 @@ function projectToolResultEvent(turn, sessionId, data, seq, limit) {
27236
27262
  const fileItem = {
27237
27263
  type: "fileChange",
27238
27264
  itemId: modernItemId(sessionId, `event:${seq}:file-change`),
27265
+ sourceItemIds: [item.itemId],
27239
27266
  changes
27240
27267
  };
27241
27268
  turn.items.push({ item: fileItem, outcome: { status: "succeeded" } });
@@ -28307,14 +28334,14 @@ ${question.detail}` : question.question;
28307
28334
  if (force || changed)
28308
28335
  this.#emit({ type: "session.state.changed", state: next });
28309
28336
  }
28310
- #configurationBusy(area) {
28311
- if (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0 || this.#configuring || this.#reading) {
28337
+ #configurationBusy(area, allowActiveTurn = false) {
28338
+ if (this.#configuring || this.#reading || !allowActiveTurn && (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0)) {
28312
28339
  return busyError(`select ${area}`);
28313
28340
  }
28314
28341
  return void 0;
28315
28342
  }
28316
28343
  async #selectModel(command) {
28317
- const busy = this.#configurationBusy("a Model");
28344
+ const busy = this.#configurationBusy("a Model", true);
28318
28345
  if (busy)
28319
28346
  return { ok: false, error: busy };
28320
28347
  let requested;
@@ -28329,7 +28356,7 @@ ${question.detail}` : question.question;
28329
28356
  });
28330
28357
  }
28331
28358
  async #selectThinking(command) {
28332
- const busy = this.#configurationBusy("Thinking");
28359
+ const busy = this.#configurationBusy("Thinking", true);
28333
28360
  if (busy)
28334
28361
  return { ok: false, error: busy };
28335
28362
  let requested;
@@ -29436,6 +29463,7 @@ ${question.detail}` : question.question;
29436
29463
  const fileItem = {
29437
29464
  type: "fileChange",
29438
29465
  itemId: modernItemId(this.#sessionId, `event:${seq}:file-change`),
29466
+ sourceItemIds: [item.itemId],
29439
29467
  changes
29440
29468
  };
29441
29469
  this.#emit({ type: "item.started", turnId: active.turnId, item: fileItem });
@@ -12,6 +12,8 @@
12
12
  "muse",
13
13
  "kiro-cli",
14
14
  "codebuddy",
15
- "cursor-cli"
15
+ "cursor-cli",
16
+ "qoder",
17
+ "qoder-cn"
16
18
  ]
17
19
  }