@codexhost/cli-darwin-x64 0.8.0 → 0.9.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 (34) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.txt +12 -0
  3. package/app/codexhost-distribution.json +1 -1
  4. package/app/desktop-controller.mjs +67 -26
  5. package/app/host-runtime.mjs +3774 -6483
  6. package/app/plugins/antigravity/plugin.mjs +114 -93
  7. package/app/plugins/claude-code/plugin.mjs +480 -239
  8. package/app/plugins/codebuddy/plugin.mjs +2177 -846
  9. package/app/plugins/cursor-cli/plugin.mjs +35065 -10156
  10. package/app/plugins/deepseek-harness/plugin.mjs +72 -84
  11. package/app/plugins/enabled.json +4 -1
  12. package/app/plugins/grok/plugin.mjs +60 -78
  13. package/app/plugins/hermes/plugin.mjs +2431 -174
  14. package/app/plugins/kiro-cli/plugin.mjs +67 -80
  15. package/app/plugins/omp/plugin.mjs +106 -91
  16. package/app/plugins/opencode/plugin.mjs +109 -123
  17. package/app/plugins/pi/plugin.mjs +71 -84
  18. package/app/plugins/qoder/assets/icon.svg +1 -0
  19. package/app/plugins/qoder/manifest.json +12 -0
  20. package/app/plugins/qoder/plugin.mjs +52267 -0
  21. package/app/plugins/qoder-cn/assets/icon.svg +1 -0
  22. package/app/plugins/qoder-cn/manifest.json +12 -0
  23. package/app/plugins/qoder-cn/plugin.mjs +52265 -0
  24. package/app/plugins/workbuddy/assets/icon.svg +29 -0
  25. package/app/plugins/workbuddy/manifest.json +14 -0
  26. package/app/plugins/workbuddy/plugin.mjs +24818 -0
  27. package/app/renderer-extension.js +3182 -960
  28. package/bin/codexhost +0 -0
  29. package/libexec/codexhost-shim +0 -0
  30. package/libexec/codexhost-updater +0 -0
  31. package/licenses/Qoder-Agent-SDK-LICENSE.txt +7 -0
  32. package/licenses/QoderCN-Agent-SDK-LICENSE.txt +7 -0
  33. package/licenses/tailwindcss-LICENSE.txt +21 -0
  34. package/package.json +1 -1
@@ -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"
@@ -18711,6 +18751,8 @@ var pluginPresentationShape = {
18711
18751
  id: harnessPluginIdSchema,
18712
18752
  name: external_exports.string().trim().min(1).max(128),
18713
18753
  version: external_exports.string().min(1).max(128),
18754
+ /** The factory accepts a persisted local entrypoint through its construction context. */
18755
+ launchCommand: external_exports.literal(true).optional(),
18714
18756
  links: external_exports.object({
18715
18757
  documentation: documentationUrlSchema.optional(),
18716
18758
  installation: documentationUrlSchema.optional()
@@ -18748,6 +18790,19 @@ var harnessPluginRouteSchema = external_exports.object({
18748
18790
  permissionModeId: harnessPermissionModeIdSchema.optional()
18749
18791
  }).strict();
18750
18792
 
18793
+ // ../../shared-contracts/dist/harness-launch-settings.js
18794
+ var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
18795
+ var harnessLaunchSettingsGetSchema = external_exports.object({
18796
+ harnessId: harnessPluginIdSchema
18797
+ }).strict();
18798
+ var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
18799
+ path: harnessLaunchPathSchema.nullable()
18800
+ });
18801
+ var harnessLaunchSettingsSchema = external_exports.object({
18802
+ path: harnessLaunchPathSchema.nullable(),
18803
+ restartRequired: external_exports.boolean()
18804
+ }).strict();
18805
+
18751
18806
  // ../../shared-contracts/dist/codex-accounts.js
18752
18807
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
18753
18808
  var nonBlankTextSchema3 = external_exports.string().trim().min(1);
@@ -18776,75 +18831,15 @@ var codexAccountSchema = external_exports.object({
18776
18831
  email: external_exports.string().email().max(320).optional(),
18777
18832
  planType: codexAccountPlanTypeSchema.optional()
18778
18833
  }).strict();
18779
- var codexAccountPhaseSchema = external_exports.enum(["ready", "changing", "unavailable"]);
18780
- var codexAccountPendingOperationSchema = external_exports.object({
18781
- operationId: nonBlankTextSchema3.max(1024),
18782
- kind: external_exports.enum(["login", "switch", "logout", "recovery"])
18783
- }).strict();
18784
- var codexAccountCapabilitiesSchema = external_exports.object({
18785
- manage: external_exports.boolean(),
18786
- switch: external_exports.boolean(),
18787
- login: external_exports.boolean(),
18788
- delete: external_exports.boolean(),
18789
- recover: external_exports.boolean().optional(),
18790
- logout: external_exports.boolean().optional(),
18791
- reason: external_exports.enum([
18792
- "ssh-single-account",
18793
- "unsupported-storage",
18794
- "unsupported-version",
18795
- "recovery-required",
18796
- "keyring-unavailable",
18797
- "migration-required"
18798
- ]).optional()
18799
- }).strict();
18834
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
18800
18835
  var codexAccountListResultSchema = external_exports.object({
18801
18836
  version: external_exports.literal(2),
18802
18837
  currentAccountId: accountIdSchema.nullable(),
18803
18838
  phase: codexAccountPhaseSchema,
18804
18839
  revision: external_exports.number().int().nonnegative(),
18805
18840
  instanceId: nonBlankTextSchema3.max(1024).optional(),
18806
- cleanupRequired: external_exports.boolean().optional(),
18807
- /** Credentials were adopted; other native homes/history remain unmerged. */
18808
- legacyHistoryPreserved: external_exports.boolean().optional(),
18809
- pendingOperation: codexAccountPendingOperationSchema.optional(),
18810
- capabilities: codexAccountCapabilitiesSchema,
18811
- accounts: external_exports.array(codexAccountSchema).max(128)
18841
+ accounts: external_exports.array(codexAccountSchema).max(1)
18812
18842
  }).strict();
18813
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18814
- var codexAccountSwitchParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18815
- var codexAccountReadyMutationResultShape = {
18816
- phase: external_exports.literal("ready"),
18817
- revision: external_exports.number().int().nonnegative()
18818
- };
18819
- var codexAccountSwitchResultSchema = external_exports.object({
18820
- currentAccountId: accountIdSchema,
18821
- ...codexAccountReadyMutationResultShape
18822
- }).strict();
18823
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
18824
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
18825
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema.optional() }).strict();
18826
- var codexAccountLoginStartResultSchema = external_exports.object({
18827
- accountId: accountIdSchema,
18828
- loginId: nonBlankTextSchema3.max(1024),
18829
- verificationUrl: external_exports.string().url().max(16384),
18830
- userCode: nonBlankTextSchema3.max(1024)
18831
- }).strict();
18832
- var codexAccountLoginCancelParamsSchema = external_exports.object({ loginId: nonBlankTextSchema3.max(1024) }).strict();
18833
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
18834
- var codexAccountLoginCompletedSchema = external_exports.object({
18835
- accountId: accountIdSchema,
18836
- loginId: nonBlankTextSchema3.max(1024),
18837
- success: external_exports.boolean(),
18838
- error: external_exports.string().max(4096).nullable(),
18839
- saved: external_exports.boolean().optional(),
18840
- cleanupRequired: external_exports.boolean().optional()
18841
- }).strict();
18842
- var codexAccountLogoutParamsSchema = external_exports.object({}).strict();
18843
- var codexAccountLogoutResultSchema = external_exports.object({
18844
- currentAccountId: external_exports.null(),
18845
- ...codexAccountReadyMutationResultShape
18846
- }).strict();
18847
- var codexAccountRecoverParamsSchema = external_exports.object({}).strict();
18848
18843
  var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
18849
18844
  var codexAccountUsageResultSchema = external_exports.object({
18850
18845
  accountId: accountIdSchema,
@@ -18853,21 +18848,6 @@ var codexAccountUsageResultSchema = external_exports.object({
18853
18848
  freshness: external_exports.enum(["live", "cached"]),
18854
18849
  observedAt: external_exports.string().datetime().nullable()
18855
18850
  }).strict();
18856
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
18857
- accountId: accountIdSchema,
18858
- idempotencyKey: external_exports.string().uuid().optional()
18859
- }).strict();
18860
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
18861
- "reset",
18862
- "nothingToReset",
18863
- "noCredit",
18864
- "alreadyRedeemed"
18865
- ]);
18866
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
18867
- accountId: accountIdSchema,
18868
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
18869
- accountCredits: accountCreditsSnapshotSchema.optional()
18870
- }).strict();
18871
18851
 
18872
18852
  // ../../shared-contracts/dist/harness-session-import.js
18873
18853
  var HARNESS_SESSION_IMPORT_ID_MAX_LENGTH = 1024;
@@ -19228,6 +19208,11 @@ var HarnessOutputChannel = class {
19228
19208
  var DIAGNOSTIC_TAIL_MAX_LENGTH = 8e3;
19229
19209
  var SENSITIVE_VALUE_PATTERN = /(api[_-]?key|access[_-]?token|auth(?:orization)?|password|secret)(\s*[:=]\s*)([^\s,;]+)/giu;
19230
19210
  var BEARER_PATTERN = /\bBearer\s+[A-Za-z0-9._~+/=-]+/giu;
19211
+ var NODE_WARNING_PREFIX_PATTERN = /^\(node:\d+\)\s+/u;
19212
+ var NODE_TRACE_WARNINGS_HINT_PATTERN = /^\(Use\s+`node\s+--trace-warnings/u;
19213
+ function filterAmbientNodeWarnings(output) {
19214
+ return output.split("\n").filter((line) => !NODE_WARNING_PREFIX_PATTERN.test(line) && !NODE_TRACE_WARNINGS_HINT_PATTERN.test(line)).join("\n");
19215
+ }
19231
19216
  function sanitizeDiagnosticTail(value) {
19232
19217
  const redacted = value.replace(BEARER_PATTERN, "Bearer [redacted]").replace(SENSITIVE_VALUE_PATTERN, "$1$2[redacted]");
19233
19218
  return redacted.length <= DIAGNOSTIC_TAIL_MAX_LENGTH ? redacted : redacted.slice(-DIAGNOSTIC_TAIL_MAX_LENGTH);
@@ -19779,9 +19764,10 @@ async function probeDeepSeekExecutableGeneration(options = {}, dependencies = {
19779
19764
  cleanupTimeoutMs,
19780
19765
  outputLimitBytes
19781
19766
  }, dependencies);
19782
- if (output.stderr.length > 0) {
19767
+ const substantiveStderr = filterAmbientNodeWarnings(output.stderr);
19768
+ if (substantiveStderr.length > 0) {
19783
19769
  throw probeError("protocolError", "DeepSeek Harness --version wrote unexpected stderr", {
19784
- stderrTail: sanitizeDiagnosticTail(output.stderr)
19770
+ stderrTail: sanitizeDiagnosticTail(substantiveStderr)
19785
19771
  });
19786
19772
  }
19787
19773
  return { ...classifyDeepSeekVersionOutput(output.stdout), command };
@@ -21902,7 +21888,7 @@ function structuredDiffs(meta3) {
21902
21888
  const oldHeader = kind === "add" ? "/dev/null" : `a/${candidate.path}`;
21903
21889
  const newHeader = kind === "delete" ? "/dev/null" : `b/${candidate.path}`;
21904
21890
  const unifiedDiff = createTwoFilesPatch(oldHeader, newHeader, oldText ?? "", newText ?? "", "", "", { context: 3 });
21905
- changes.push({ path: candidate.path, kind, unifiedDiff });
21891
+ changes.push({ path: candidate.path, kind, unifiedDiff, diffScope: "fragment" });
21906
21892
  }
21907
21893
  return changes;
21908
21894
  }
@@ -27261,6 +27247,7 @@ function projectToolResultEvent(turn, sessionId, data, seq, limit) {
27261
27247
  const fileItem = {
27262
27248
  type: "fileChange",
27263
27249
  itemId: modernItemId(sessionId, `event:${seq}:file-change`),
27250
+ sourceItemIds: [item.itemId],
27264
27251
  changes
27265
27252
  };
27266
27253
  turn.items.push({ item: fileItem, outcome: { status: "succeeded" } });
@@ -28332,14 +28319,14 @@ ${question.detail}` : question.question;
28332
28319
  if (force || changed)
28333
28320
  this.#emit({ type: "session.state.changed", state: next });
28334
28321
  }
28335
- #configurationBusy(area) {
28336
- if (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0 || this.#configuring || this.#reading) {
28322
+ #configurationBusy(area, allowActiveTurn = false) {
28323
+ if (this.#configuring || this.#reading || !allowActiveTurn && (this.#active || this.#buffer || this.#pendingByRequestId.size > 0 || this.#activeCommand || this.#commandAdmission || this.#queuedDeliveries.size > 0)) {
28337
28324
  return busyError(`select ${area}`);
28338
28325
  }
28339
28326
  return void 0;
28340
28327
  }
28341
28328
  async #selectModel(command) {
28342
- const busy = this.#configurationBusy("a Model");
28329
+ const busy = this.#configurationBusy("a Model", true);
28343
28330
  if (busy)
28344
28331
  return { ok: false, error: busy };
28345
28332
  let requested;
@@ -28354,7 +28341,7 @@ ${question.detail}` : question.question;
28354
28341
  });
28355
28342
  }
28356
28343
  async #selectThinking(command) {
28357
- const busy = this.#configurationBusy("Thinking");
28344
+ const busy = this.#configurationBusy("Thinking", true);
28358
28345
  if (busy)
28359
28346
  return { ok: false, error: busy };
28360
28347
  let requested;
@@ -29418,6 +29405,7 @@ ${question.detail}` : question.question;
29418
29405
  const fileItem = {
29419
29406
  type: "fileChange",
29420
29407
  itemId: modernItemId(this.#sessionId, `event:${seq}:file-change`),
29408
+ sourceItemIds: [item.itemId],
29421
29409
  changes
29422
29410
  };
29423
29411
  this.#emit({ type: "item.started", turnId: active.turnId, item: fileItem });
@@ -10,7 +10,10 @@
10
10
  "antigravity",
11
11
  "kiro-cli",
12
12
  "codebuddy",
13
+ "workbuddy",
13
14
  "cursor-cli",
14
- "hermes"
15
+ "hermes",
16
+ "qoder",
17
+ "qoder-cn"
15
18
  ]
16
19
  }
@@ -14526,6 +14526,46 @@ config(en_default());
14526
14526
  // ../../shared-contracts/dist/version.js
14527
14527
  var WORKSPACE_CONTRACT_VERSION = 1;
14528
14528
 
14529
+ // ../../shared-contracts/dist/idle-release.js
14530
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
14531
+ var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
14532
+ var idleReleaseSettingsSchema = external_exports.strictObject({
14533
+ enabled: external_exports.boolean(),
14534
+ timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
14535
+ });
14536
+ var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
14537
+ enabled: false,
14538
+ timeoutMinutes: 30
14539
+ });
14540
+
14541
+ // ../../shared-contracts/dist/loaded-sessions.js
14542
+ var loadedSessionStateSchema = external_exports.enum([
14543
+ "idle",
14544
+ "running",
14545
+ "busy",
14546
+ "closing",
14547
+ "failed",
14548
+ "blocked"
14549
+ ]);
14550
+ var loadedSessionReasonSchema = external_exports.enum([
14551
+ "none",
14552
+ "disabled",
14553
+ "timeout",
14554
+ "operation",
14555
+ "background",
14556
+ "identity",
14557
+ "persistence",
14558
+ "closeFailed"
14559
+ ]);
14560
+ var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
14561
+ threadId: external_exports.string(),
14562
+ title: external_exports.string(),
14563
+ harnessId: external_exports.string(),
14564
+ state: loadedSessionStateSchema,
14565
+ reason: loadedSessionReasonSchema,
14566
+ inactiveMs: external_exports.number().nonnegative()
14567
+ }));
14568
+
14529
14569
  // ../../shared-contracts/dist/ids.js
14530
14570
  var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
14531
14571
  message: "Identifier must not be empty or whitespace"
@@ -15011,6 +15051,8 @@ var pluginPresentationShape = {
15011
15051
  id: harnessPluginIdSchema,
15012
15052
  name: external_exports.string().trim().min(1).max(128),
15013
15053
  version: external_exports.string().min(1).max(128),
15054
+ /** The factory accepts a persisted local entrypoint through its construction context. */
15055
+ launchCommand: external_exports.literal(true).optional(),
15014
15056
  links: external_exports.object({
15015
15057
  documentation: documentationUrlSchema.optional(),
15016
15058
  installation: documentationUrlSchema.optional()
@@ -15048,6 +15090,19 @@ var harnessPluginRouteSchema = external_exports.object({
15048
15090
  permissionModeId: harnessPermissionModeIdSchema.optional()
15049
15091
  }).strict();
15050
15092
 
15093
+ // ../../shared-contracts/dist/harness-launch-settings.js
15094
+ var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
15095
+ var harnessLaunchSettingsGetSchema = external_exports.object({
15096
+ harnessId: harnessPluginIdSchema
15097
+ }).strict();
15098
+ var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
15099
+ path: harnessLaunchPathSchema.nullable()
15100
+ });
15101
+ var harnessLaunchSettingsSchema = external_exports.object({
15102
+ path: harnessLaunchPathSchema.nullable(),
15103
+ restartRequired: external_exports.boolean()
15104
+ }).strict();
15105
+
15051
15106
  // ../../shared-contracts/dist/codex-accounts.js
15052
15107
  var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
15053
15108
  var nonBlankTextSchema3 = external_exports.string().trim().min(1);
@@ -15076,75 +15131,15 @@ var codexAccountSchema = external_exports.object({
15076
15131
  email: external_exports.string().email().max(320).optional(),
15077
15132
  planType: codexAccountPlanTypeSchema.optional()
15078
15133
  }).strict();
15079
- var codexAccountPhaseSchema = external_exports.enum(["ready", "changing", "unavailable"]);
15080
- var codexAccountPendingOperationSchema = external_exports.object({
15081
- operationId: nonBlankTextSchema3.max(1024),
15082
- kind: external_exports.enum(["login", "switch", "logout", "recovery"])
15083
- }).strict();
15084
- var codexAccountCapabilitiesSchema = external_exports.object({
15085
- manage: external_exports.boolean(),
15086
- switch: external_exports.boolean(),
15087
- login: external_exports.boolean(),
15088
- delete: external_exports.boolean(),
15089
- recover: external_exports.boolean().optional(),
15090
- logout: external_exports.boolean().optional(),
15091
- reason: external_exports.enum([
15092
- "ssh-single-account",
15093
- "unsupported-storage",
15094
- "unsupported-version",
15095
- "recovery-required",
15096
- "keyring-unavailable",
15097
- "migration-required"
15098
- ]).optional()
15099
- }).strict();
15134
+ var codexAccountPhaseSchema = external_exports.enum(["ready", "unavailable"]);
15100
15135
  var codexAccountListResultSchema = external_exports.object({
15101
15136
  version: external_exports.literal(2),
15102
15137
  currentAccountId: accountIdSchema.nullable(),
15103
15138
  phase: codexAccountPhaseSchema,
15104
15139
  revision: external_exports.number().int().nonnegative(),
15105
15140
  instanceId: nonBlankTextSchema3.max(1024).optional(),
15106
- cleanupRequired: external_exports.boolean().optional(),
15107
- /** Credentials were adopted; other native homes/history remain unmerged. */
15108
- legacyHistoryPreserved: external_exports.boolean().optional(),
15109
- pendingOperation: codexAccountPendingOperationSchema.optional(),
15110
- capabilities: codexAccountCapabilitiesSchema,
15111
- accounts: external_exports.array(codexAccountSchema).max(128)
15141
+ accounts: external_exports.array(codexAccountSchema).max(1)
15112
15142
  }).strict();
15113
- var codexAccountActivateParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15114
- var codexAccountSwitchParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15115
- var codexAccountReadyMutationResultShape = {
15116
- phase: external_exports.literal("ready"),
15117
- revision: external_exports.number().int().nonnegative()
15118
- };
15119
- var codexAccountSwitchResultSchema = external_exports.object({
15120
- currentAccountId: accountIdSchema,
15121
- ...codexAccountReadyMutationResultShape
15122
- }).strict();
15123
- var codexAccountDeleteParamsSchema = external_exports.object({ accountId: accountIdSchema }).strict();
15124
- var codexAccountDeleteResultSchema = external_exports.object({ deletedAccountId: accountIdSchema }).strict();
15125
- var codexAccountLoginStartParamsSchema = external_exports.object({ accountId: accountIdSchema.optional() }).strict();
15126
- var codexAccountLoginStartResultSchema = external_exports.object({
15127
- accountId: accountIdSchema,
15128
- loginId: nonBlankTextSchema3.max(1024),
15129
- verificationUrl: external_exports.string().url().max(16384),
15130
- userCode: nonBlankTextSchema3.max(1024)
15131
- }).strict();
15132
- var codexAccountLoginCancelParamsSchema = external_exports.object({ loginId: nonBlankTextSchema3.max(1024) }).strict();
15133
- var codexAccountLoginCancelResultSchema = external_exports.object({ cancelled: external_exports.boolean() }).strict();
15134
- var codexAccountLoginCompletedSchema = external_exports.object({
15135
- accountId: accountIdSchema,
15136
- loginId: nonBlankTextSchema3.max(1024),
15137
- success: external_exports.boolean(),
15138
- error: external_exports.string().max(4096).nullable(),
15139
- saved: external_exports.boolean().optional(),
15140
- cleanupRequired: external_exports.boolean().optional()
15141
- }).strict();
15142
- var codexAccountLogoutParamsSchema = external_exports.object({}).strict();
15143
- var codexAccountLogoutResultSchema = external_exports.object({
15144
- currentAccountId: external_exports.null(),
15145
- ...codexAccountReadyMutationResultShape
15146
- }).strict();
15147
- var codexAccountRecoverParamsSchema = external_exports.object({}).strict();
15148
15143
  var codexAccountUsageParamsSchema = external_exports.object({ accountId: accountIdSchema, refresh: external_exports.boolean().optional() }).strict();
15149
15144
  var codexAccountUsageResultSchema = external_exports.object({
15150
15145
  accountId: accountIdSchema,
@@ -15153,21 +15148,6 @@ var codexAccountUsageResultSchema = external_exports.object({
15153
15148
  freshness: external_exports.enum(["live", "cached"]),
15154
15149
  observedAt: external_exports.string().datetime().nullable()
15155
15150
  }).strict();
15156
- var codexAccountResetCreditConsumeParamsSchema = external_exports.object({
15157
- accountId: accountIdSchema,
15158
- idempotencyKey: external_exports.string().uuid().optional()
15159
- }).strict();
15160
- var codexAccountResetCreditConsumeOutcomeSchema = external_exports.enum([
15161
- "reset",
15162
- "nothingToReset",
15163
- "noCredit",
15164
- "alreadyRedeemed"
15165
- ]);
15166
- var codexAccountResetCreditConsumeResultSchema = external_exports.object({
15167
- accountId: accountIdSchema,
15168
- outcome: codexAccountResetCreditConsumeOutcomeSchema,
15169
- accountCredits: accountCreditsSnapshotSchema.optional()
15170
- }).strict();
15171
15151
 
15172
15152
  // ../../shared-contracts/dist/harness-session-import.js
15173
15153
  var HARNESS_SESSION_IMPORT_ID_MAX_LENGTH = 1024;
@@ -21499,6 +21479,7 @@ function mapGrokReplay(replay, harnessId, sessionId, cwd, knownTurnRefs = [], to
21499
21479
  const fileItem = {
21500
21480
  type: "fileChange",
21501
21481
  itemId: stableId("file-change", turnIndex, ++messageIndex),
21482
+ sourceItemIds: [tool.itemId],
21502
21483
  changes
21503
21484
  };
21504
21485
  items.push({ item: fileItem, outcome: { status: "succeeded" } });
@@ -23825,7 +23806,7 @@ var GrokHarnessSession = class {
23825
23806
  return this.#configure(model, parsed.data);
23826
23807
  }
23827
23808
  async #configure(model, thinkingOptionId) {
23828
- if (this.#active || this.#configuring) {
23809
+ if (this.#configuring) {
23829
23810
  return {
23830
23811
  ok: false,
23831
23812
  error: {
@@ -24211,6 +24192,7 @@ var GrokHarnessSession = class {
24211
24192
  const fileItem = {
24212
24193
  type: "fileChange",
24213
24194
  itemId: hostItemIdSchema.parse(this.#randomUUID()),
24195
+ sourceItemIds: [tool.item.itemId],
24214
24196
  changes
24215
24197
  };
24216
24198
  this.#event({ type: "item.started", turnId: active.command.turnId, item: fileItem });