openmates 0.27.0-alpha.47 → 0.27.0-alpha.49

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.
@@ -414,7 +414,7 @@ function loadSession() {
414
414
  switch (onDisk.masterKeyStorage) {
415
415
  case "keychain":
416
416
  masterKey = retrieveMasterKey("keychain", resolveKeyStorageId(onDisk.hashedEmail));
417
- if (!masterKey) throw new Error("Existing OS keyring entry is unavailable; local session was preserved.");
417
+ if (!masterKey) throw new Error("Existing OS keyring entry is unavailable; local session was preserved. Unlock your OS keyring or run `openmates login` to pair again.");
418
418
  break;
419
419
  case "encrypted":
420
420
  masterKey = retrieveMasterKey(
@@ -437,6 +437,10 @@ function loadSession() {
437
437
  }
438
438
  return buildSession(onDisk, masterKey, getEmailEncryptionKeyFromDisk(onDisk));
439
439
  }
440
+ function loadStoredSessionApiUrl() {
441
+ const onDisk = readJsonFile(join(getStateDir(), "session.json"));
442
+ return typeof onDisk?.apiUrl === "string" && onDisk.apiUrl ? onDisk.apiUrl : void 0;
443
+ }
440
444
  function getCredentialStorageMode() {
441
445
  const onDisk = readJsonFile(join(getStateDir(), "session.json"));
442
446
  if (!onDisk) return "none";
@@ -531,7 +535,7 @@ function getEmailEncryptionKeyFromDisk(onDisk) {
531
535
  switch (onDisk.emailEncryptionKeyStorage) {
532
536
  case "keychain": {
533
537
  const key = retrieveMasterKey("keychain", resolveKeyStorageId(`${onDisk.hashedEmail}:email`));
534
- if (!key) throw new Error("Existing email keyring entry is unavailable; local session was preserved.");
538
+ if (!key) throw new Error("Existing email keyring entry is unavailable; local session was preserved. Unlock your OS keyring or run `openmates login` to pair again.");
535
539
  return key;
536
540
  }
537
541
  case "encrypted":
@@ -1194,6 +1198,7 @@ export {
1194
1198
  saveSession,
1195
1199
  persistSessionRefreshCookie,
1196
1200
  loadSession,
1201
+ loadStoredSessionApiUrl,
1197
1202
  getCredentialStorageMode,
1198
1203
  purgeLocalPrivateData,
1199
1204
  saveLocalTeamKey,
@@ -11,6 +11,7 @@ import {
11
11
  loadAnonymousId,
12
12
  loadLocalTeamKey,
13
13
  loadSession,
14
+ loadStoredSessionApiUrl,
14
15
  loadSyncCache,
15
16
  loadTrustedAccountId,
16
17
  persistSessionRefreshCookie,
@@ -34,7 +35,7 @@ import {
34
35
  verifyInstalledModel,
35
36
  verifyPrivacyRuntime,
36
37
  withSessionRefreshLock
37
- } from "./chunk-B4UXKGH3.js";
38
+ } from "./chunk-5HWC6OTW.js";
38
39
  import {
39
40
  RemoteAccessReplayGuard,
40
41
  createRemoteAccessHandshake,
@@ -11222,8 +11223,8 @@ var OpenMatesClient = class _OpenMatesClient {
11222
11223
  explicitSession;
11223
11224
  constructor(options = {}) {
11224
11225
  this.explicitSession = options.session !== void 0;
11225
- const diskSession = options.session ?? this.getValidSessionFromDisk();
11226
- this.apiUrl = (options.apiUrl ?? process.env.OPENMATES_API_URL ?? diskSession?.apiUrl ?? loadDefaultServerApiUrl() ?? DEFAULT_API_URL).replace(/\/$/, "");
11226
+ const diskSession = options.session ?? (options.loadStoredSession === false ? null : this.getValidSessionFromDisk());
11227
+ this.apiUrl = (options.apiUrl ?? process.env.OPENMATES_API_URL ?? diskSession?.apiUrl ?? (options.loadStoredSession === false ? loadStoredSessionApiUrl() : void 0) ?? loadDefaultServerApiUrl() ?? DEFAULT_API_URL).replace(/\/$/, "");
11227
11228
  this.session = diskSession;
11228
11229
  this.http = new OpenMatesHttpClient({
11229
11230
  apiUrl: this.apiUrl,
@@ -21416,6 +21417,7 @@ Required: ${schema.required.join(", ")}`
21416
21417
  return { canceled: false, cleanup: () => void 0 };
21417
21418
  }
21418
21419
  const wasRaw = stdin2.isRaw === true;
21420
+ const wasFlowing = stdin2.readableFlowing === true;
21419
21421
  stdin2.setRawMode(true);
21420
21422
  stdin2.resume();
21421
21423
  const onData = (raw) => {
@@ -21425,13 +21427,17 @@ Required: ${schema.required.join(", ")}`
21425
21427
  if (value === "") state.canceled = true;
21426
21428
  };
21427
21429
  stdin2.on("data", onData);
21430
+ let cleanedUp = false;
21428
21431
  return {
21429
21432
  get canceled() {
21430
21433
  return state.canceled;
21431
21434
  },
21432
21435
  cleanup: () => {
21436
+ if (cleanedUp) return;
21437
+ cleanedUp = true;
21433
21438
  stdin2.off("data", onData);
21434
21439
  stdin2.setRawMode(wasRaw);
21440
+ if (!wasFlowing) stdin2.pause();
21435
21441
  }
21436
21442
  };
21437
21443
  }
@@ -106997,7 +107003,9 @@ async function main() {
106997
107003
  }
106998
107004
  process.env.OPENMATES_PROFILE = profile;
106999
107005
  }
107006
+ const sessionFree = parsed.flags.help === true || ["help", "version", "update", "upgrade", "login"].includes(command ?? "") || !command && parsed.flags.version !== void 0;
107000
107007
  const client2 = OpenMatesClient.load({
107008
+ loadStoredSession: !sessionFree,
107001
107009
  apiUrl: typeof parsed.flags["api-url"] === "string" ? parsed.flags["api-url"] : void 0
107002
107010
  });
107003
107011
  if (accountGuardRequired && parsed.flags.help !== true && shouldRequireTrustedAccountGuard(command)) {
@@ -107236,6 +107244,9 @@ async function main() {
107236
107244
  console.log("Login successful.");
107237
107245
  const storageMode = getCredentialStorageMode();
107238
107246
  console.log(storageMode === "os-keyring" ? "Credential storage: OS keyring." : "Credential storage: owner-only local file (this host can read chat keys).");
107247
+ const profile = process.env.OPENMATES_PROFILE?.trim();
107248
+ const nextCommand = profile ? `openmates --profile ${profile}` : "openmates";
107249
+ console.log(`Run \`${nextCommand}\` to start chatting.`);
107239
107250
  return;
107240
107251
  }
107241
107252
  if (command === "signup") {
@@ -2268,6 +2268,8 @@ interface DecryptedMemoryEntry {
2268
2268
  }
2269
2269
  interface OpenMatesClientOptions {
2270
2270
  apiUrl?: string;
2271
+ /** Skip saved credentials for fresh pairing or session-free maintenance. */
2272
+ loadStoredSession?: boolean;
2271
2273
  session?: OpenMatesSession;
2272
2274
  }
2273
2275
  interface InvoiceListItem {
package/dist/cli.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export { ak as ImagesAiDetectionClassification, al as ImagesAiDetectionSummary, aK as assertTrustedAccountCommandAllowed, aL as assertTrustedAccountGuardEnvironment, aC as buildImagesAiDetectionSummary, aM as buildProjectDefaultFocus, aN as buildTravelConnectionsRequest, aD as classifyImagesAiDetection, aO as extractExplicitProjectMentions, aF as formatImagesAiDetectionLabel, aG as getExtForLang, aP as handleWiki, aQ as printWhoAmI, aR as readRootProjectInstructions, aS as renderProjectReadApprovalRequest, aT as renderProjectWriteApprovalRequest, aU as renderRemoteCommandEvent, aV as requireExactConfirmation, aW as resolveProjectContext, aJ as serializeToYaml, aX as shouldRequireTrustedAccountGuard, aY as waitForSafeE2ETotpWindow, aZ as waitForWorkflowRun } from './cli-CM2HlOYK.js';
2
+ export { ak as ImagesAiDetectionClassification, al as ImagesAiDetectionSummary, aK as assertTrustedAccountCommandAllowed, aL as assertTrustedAccountGuardEnvironment, aC as buildImagesAiDetectionSummary, aM as buildProjectDefaultFocus, aN as buildTravelConnectionsRequest, aD as classifyImagesAiDetection, aO as extractExplicitProjectMentions, aF as formatImagesAiDetectionLabel, aG as getExtForLang, aP as handleWiki, aQ as printWhoAmI, aR as readRootProjectInstructions, aS as renderProjectReadApprovalRequest, aT as renderProjectWriteApprovalRequest, aU as renderRemoteCommandEvent, aV as requireExactConfirmation, aW as resolveProjectContext, aJ as serializeToYaml, aX as shouldRequireTrustedAccountGuard, aY as waitForSafeE2ETotpWindow, aZ as waitForWorkflowRun } from './cli-CNsuzfYG.js';
package/dist/cli.js CHANGED
@@ -21,8 +21,8 @@ import {
21
21
  shouldRequireTrustedAccountGuard,
22
22
  waitForSafeE2ETotpWindow,
23
23
  waitForWorkflowRun
24
- } from "./chunk-WKEUTPBX.js";
25
- import "./chunk-B4UXKGH3.js";
24
+ } from "./chunk-6RPAEA3D.js";
25
+ import "./chunk-5HWC6OTW.js";
26
26
  import "./chunk-IWKP55ZB.js";
27
27
  import "./chunk-FC27KZIW.js";
28
28
  import "./chunk-TMYEFC7M.js";
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OpenMatesSession, U as UserPlanStatus, a as UserPlanRecord, b as UserPlanVerificationStatus, c as UserPlanLearningType, d as UserPlanLearningTargetKind, e as UserPlanLearningStatus, f as UserPlanLearningLevel, g as UserPlanLearningRecord, h as UserPlanCriterionRecord, i as UserPlanVerificationRecord, j as UserPlanCreateInput, k as UserPlanUpdateInput, B as BuyerAddress, P as ProjectItemRecord, T as TaskCreateOptions, l as TaskUpdateOptions, m as UserPlanLearningCreateTasksInput, n as UserPlanLearningCreateTasksResult, o as UserTaskStatus, E as ExternalChatContext, p as TaskPriorityLevel, D as DecryptedUserTask, q as DecryptedTaskActivityEntry, r as TaskActivityCreateOptions, s as UserTaskReorderInput, W as WorkflowSummary, t as WorkflowCapability, u as WorkflowDetail, v as WorkflowAuthoringWarning, w as WorkflowInputStartParams, x as WorkflowInputSessionResult, y as WorkflowInputSessionDetail, z as WorkflowInputEvent, A as WorkflowGraph, C as WorkflowRunContentRetention, F as WorkflowRunOnceOptions, G as WorkflowRunDetail, H as WorkflowRunOptions, I as WorkflowNode, J as WorkflowRunCancellationResult, K as WorkflowTemplateProjectionUpsertParams, L as WorkflowTemplateProjectionResult, M as PublicWorkflowTemplateProjection, N as WorkflowTemplateProjectionRevocationResult, Q as WorkflowTemplateBindingCompletionParams, R as WorkflowTemplateBindingCompletionResult, S as WorkflowTemplateShortUrlParams, V as WorkflowTemplateShortUrlResult, X as ShortUrlRevokeResult, Y as WorkflowTemplateImportPayload, Z as ImportedWorkflowTemplate, _ as WikipediaLearningBundle } from './cli-CM2HlOYK.js';
2
- export { $ as AuthMethodsStatus, a0 as AuthoritativeChatReconciliation, a1 as BackupCodesResult, a2 as BankTransferOrderDetails, a3 as BankTransferStatus, a4 as CachedChat, a5 as CachedNewChatSuggestion, a6 as ChatListPage, a7 as CliSignupResult, a8 as DecryptedDraft, a9 as DecryptedEmbed, aa as DecryptedMemoryEntry, ab as DecryptedMessage, ac as DecryptedNewChatSuggestion, ad as DocsFile, ae as DocsFolder, af as DocsSearchResult, ag as DocsTree, ah as EncryptedDraft, ai as GiftCardBankTransferStatus, aj as INTEREST_TAG_IDS, ak as ImagesAiDetectionClassification, al as ImagesAiDetectionSummary, am as InterestTagId, an as MATE_NAMES, ao as MEMORY_TYPE_REGISTRY, ap as MemoryFieldDef, aq as MemoryTypeDef, ar as OpenMatesClient, as as OpenMatesClientOptions, at as SyncCache, au as TopicPreferencesPayload, av as TotpSetupStartResult, aw as WorkflowEdge, ax as WorkflowNodeRun, ay as WorkflowNodeType, az as WorkflowReturnedOutputReference, aA as WorkflowRunContentStorage, aB as WorkflowRunRouting, aC as buildImagesAiDetectionSummary, aD as classifyImagesAiDetection, aE as deriveAppUrl, aF as formatImagesAiDetectionLabel, aG as getExtForLang, aH as normalizeInterestTagIds, aI as reconcileAuthoritativeChats, aJ as serializeToYaml } from './cli-CM2HlOYK.js';
1
+ import { O as OpenMatesSession, U as UserPlanStatus, a as UserPlanRecord, b as UserPlanVerificationStatus, c as UserPlanLearningType, d as UserPlanLearningTargetKind, e as UserPlanLearningStatus, f as UserPlanLearningLevel, g as UserPlanLearningRecord, h as UserPlanCriterionRecord, i as UserPlanVerificationRecord, j as UserPlanCreateInput, k as UserPlanUpdateInput, B as BuyerAddress, P as ProjectItemRecord, T as TaskCreateOptions, l as TaskUpdateOptions, m as UserPlanLearningCreateTasksInput, n as UserPlanLearningCreateTasksResult, o as UserTaskStatus, E as ExternalChatContext, p as TaskPriorityLevel, D as DecryptedUserTask, q as DecryptedTaskActivityEntry, r as TaskActivityCreateOptions, s as UserTaskReorderInput, W as WorkflowSummary, t as WorkflowCapability, u as WorkflowDetail, v as WorkflowAuthoringWarning, w as WorkflowInputStartParams, x as WorkflowInputSessionResult, y as WorkflowInputSessionDetail, z as WorkflowInputEvent, A as WorkflowGraph, C as WorkflowRunContentRetention, F as WorkflowRunOnceOptions, G as WorkflowRunDetail, H as WorkflowRunOptions, I as WorkflowNode, J as WorkflowRunCancellationResult, K as WorkflowTemplateProjectionUpsertParams, L as WorkflowTemplateProjectionResult, M as PublicWorkflowTemplateProjection, N as WorkflowTemplateProjectionRevocationResult, Q as WorkflowTemplateBindingCompletionParams, R as WorkflowTemplateBindingCompletionResult, S as WorkflowTemplateShortUrlParams, V as WorkflowTemplateShortUrlResult, X as ShortUrlRevokeResult, Y as WorkflowTemplateImportPayload, Z as ImportedWorkflowTemplate, _ as WikipediaLearningBundle } from './cli-CNsuzfYG.js';
2
+ export { $ as AuthMethodsStatus, a0 as AuthoritativeChatReconciliation, a1 as BackupCodesResult, a2 as BankTransferOrderDetails, a3 as BankTransferStatus, a4 as CachedChat, a5 as CachedNewChatSuggestion, a6 as ChatListPage, a7 as CliSignupResult, a8 as DecryptedDraft, a9 as DecryptedEmbed, aa as DecryptedMemoryEntry, ab as DecryptedMessage, ac as DecryptedNewChatSuggestion, ad as DocsFile, ae as DocsFolder, af as DocsSearchResult, ag as DocsTree, ah as EncryptedDraft, ai as GiftCardBankTransferStatus, aj as INTEREST_TAG_IDS, ak as ImagesAiDetectionClassification, al as ImagesAiDetectionSummary, am as InterestTagId, an as MATE_NAMES, ao as MEMORY_TYPE_REGISTRY, ap as MemoryFieldDef, aq as MemoryTypeDef, ar as OpenMatesClient, as as OpenMatesClientOptions, at as SyncCache, au as TopicPreferencesPayload, av as TotpSetupStartResult, aw as WorkflowEdge, ax as WorkflowNodeRun, ay as WorkflowNodeType, az as WorkflowReturnedOutputReference, aA as WorkflowRunContentStorage, aB as WorkflowRunRouting, aC as buildImagesAiDetectionSummary, aD as classifyImagesAiDetection, aE as deriveAppUrl, aF as formatImagesAiDetectionLabel, aG as getExtForLang, aH as normalizeInterestTagIds, aI as reconcileAuthoritativeChats, aJ as serializeToYaml } from './cli-CNsuzfYG.js';
3
3
 
4
4
  type ChatModelSelection = "auto" | (string & {});
5
5
  interface ChatModelCatalogEntry {
package/dist/index.js CHANGED
@@ -44,8 +44,8 @@ import {
44
44
  selectAssistantMessagesForSpeech,
45
45
  serializeToYaml,
46
46
  summarizeAssistantSpeech
47
- } from "./chunk-WKEUTPBX.js";
48
- import "./chunk-B4UXKGH3.js";
47
+ } from "./chunk-6RPAEA3D.js";
48
+ import "./chunk-5HWC6OTW.js";
49
49
  import "./chunk-IWKP55ZB.js";
50
50
  import "./chunk-FC27KZIW.js";
51
51
  import "./chunk-TMYEFC7M.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runPrivacyDaemon
3
- } from "./chunk-B4UXKGH3.js";
3
+ } from "./chunk-5HWC6OTW.js";
4
4
 
5
5
  // src/privacyDaemon.ts
6
6
  void runPrivacyDaemon().catch(() => process.exit(1));
@@ -17,47 +17,47 @@
17
17
  {
18
18
  "name": "libggml-base.so",
19
19
  "bytes": 1110088,
20
- "sha256": "0e032b2501ba3798235d23a65b7d84f628496b860503b22d02f190e7351ae546"
20
+ "sha256": "bbd916045da45ebaa7ffde6eaf09c0d8c105dd960fa93a6cebb10301795d0d44"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "0e032b2501ba3798235d23a65b7d84f628496b860503b22d02f190e7351ae546"
25
+ "sha256": "bbd916045da45ebaa7ffde6eaf09c0d8c105dd960fa93a6cebb10301795d0d44"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "0e032b2501ba3798235d23a65b7d84f628496b860503b22d02f190e7351ae546"
30
+ "sha256": "bbd916045da45ebaa7ffde6eaf09c0d8c105dd960fa93a6cebb10301795d0d44"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "c792362ba1e6d5e704eaa9047013ca028e99d9b0ea525e61c9b4ccfb6ae64aa4"
35
+ "sha256": "e09cf657784e2874ab5e9e8fa7471d0021ac4d2daaf1567453f60dfa1d509c9b"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "c792362ba1e6d5e704eaa9047013ca028e99d9b0ea525e61c9b4ccfb6ae64aa4"
40
+ "sha256": "e09cf657784e2874ab5e9e8fa7471d0021ac4d2daaf1567453f60dfa1d509c9b"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "c792362ba1e6d5e704eaa9047013ca028e99d9b0ea525e61c9b4ccfb6ae64aa4"
45
+ "sha256": "e09cf657784e2874ab5e9e8fa7471d0021ac4d2daaf1567453f60dfa1d509c9b"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "8f3c50d871e737ff72187c4c72b3633940f9f9056f8efd9e1cc49d33ff436d76"
50
+ "sha256": "07083192668e60a7f63a9b5057a17411236cc7526fb5b850dff22ee2e9a68f07"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "8f3c50d871e737ff72187c4c72b3633940f9f9056f8efd9e1cc49d33ff436d76"
55
+ "sha256": "07083192668e60a7f63a9b5057a17411236cc7526fb5b850dff22ee2e9a68f07"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "8f3c50d871e737ff72187c4c72b3633940f9f9056f8efd9e1cc49d33ff436d76"
60
+ "sha256": "07083192668e60a7f63a9b5057a17411236cc7526fb5b850dff22ee2e9a68f07"
61
61
  },
62
62
  {
63
63
  "name": "openmates-pii-worker",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmates",
3
- "version": "0.27.0-alpha.47",
3
+ "version": "0.27.0-alpha.49",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -44,7 +44,7 @@
44
44
  "test:unit:billing": "node --test tests/billing.test.ts",
45
45
  "test:unit:account-delete": "node --test tests/account-delete.test.ts",
46
46
  "test:unit:ideabucket": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/ideabucket.test.ts",
47
- "test:unit:cli": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/cli.test.ts tests/imagesDetectAi.test.ts tests/uploadService.test.ts",
47
+ "test:unit:cli": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/cli.test.ts tests/loginTerminal.test.ts tests/imagesDetectAi.test.ts tests/uploadService.test.ts",
48
48
  "test:unit:projects-cli": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/projectRequester.test.ts && node --test --experimental-strip-types --loader ./tests/loader.mjs --test-name-pattern 'routes deterministic Project CRUD' tests/client.test.ts && node --test --test-name-pattern 'projects deterministic commands' tests/cli.test.ts",
49
49
  "test:t-cli-recovery": "node --test --experimental-strip-types --loader ./tests/loader.mjs --test-name-pattern recovery tests/client.test.ts",
50
50
  "test:t-cli-update-required": "npm run build && node --test --test-name-pattern update-required tests/cli.test.ts",
@@ -53,7 +53,7 @@
53
53
  "test:unit:tui": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/tui.test.ts tests/tuiExampleContinuation.test.ts tests/tuiWorkflowInteraction.test.ts tests/tuiWorkspaceInteraction.test.ts tests/tuiLayout.test.ts tests/tuiTerminal.test.ts tests/tuiStartup.test.ts tests/tuiTasksWorkspace.test.ts tests/tuiProjectsWorkspace.test.ts tests/tuiWorkflowWorkspace.test.ts tests/tuiAttachments.test.ts tests/tuiCancellation.test.ts tests/tuiWorkflowVersion.test.ts tests/tuiAppsWorkspace.test.ts tests/tuiHome.test.ts tests/tuiEmbeds.test.ts tests/tuiEmbedPreviews.test.ts tests/tuiMarkdown.test.ts tests/tuiResultsViews.test.ts tests/tuiRichChatInteraction.test.ts tests/tuiInteractiveQuestions.test.ts tests/tuiCachedWorkspaces.test.ts tests/tuiWorkspaceCache.test.ts tests/tuiProjectCacheInteraction.test.ts tests/tuiChatSidebar.test.ts tests/tuiPointer.test.ts tests/tuiPointerWorkspaces.test.ts tests/tuiPointerChat.test.ts tests/tuiHeaderActions.test.ts tests/tuiSettings.test.ts tests/tuiChromeShell.test.ts tests/tuiModelSelector.test.ts tests/tuiModelSelectorShell.test.ts",
54
54
  "test:unit:connected-account-import": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/connectedAccountImport.test.ts",
55
55
  "test:unit:benchmark": "node --test --experimental-strip-types --loader ./tests/loader.mjs src/__tests__/benchmark.test.ts",
56
- "test": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/wiki.test.ts tests/privacy.test.ts tests/crypto.test.ts tests/storage.test.ts tests/keychain.test.ts tests/mentions.test.ts tests/outputRedactor.test.ts tests/fileEmbed.test.ts tests/embedCreator.test.ts tests/shareEncryption.test.ts tests/server.test.ts tests/serverCaddyUpdate.test.ts tests/serverCaddyUpgrade.test.ts tests/serverQuickTest.test.ts tests/ws.test.ts tests/urlEmbed.test.ts tests/tui.test.ts tests/tuiExampleContinuation.test.ts tests/tuiWorkflowInteraction.test.ts tests/tuiWorkspaceInteraction.test.ts tests/tuiLayout.test.ts tests/tuiTerminal.test.ts tests/tuiStartup.test.ts tests/tuiTasksWorkspace.test.ts tests/tuiProjectsWorkspace.test.ts tests/tuiWorkflowWorkspace.test.ts tests/tuiAttachments.test.ts tests/tuiCancellation.test.ts tests/tuiWorkflowVersion.test.ts tests/tuiAppsWorkspace.test.ts tests/tuiHome.test.ts tests/tuiEmbeds.test.ts tests/tuiEmbedPreviews.test.ts tests/tuiMarkdown.test.ts tests/tuiResultsViews.test.ts tests/tuiRichChatInteraction.test.ts tests/tuiInteractiveQuestions.test.ts tests/tuiCachedWorkspaces.test.ts tests/tuiWorkspaceCache.test.ts tests/tuiProjectCacheInteraction.test.ts tests/tuiChatSidebar.test.ts tests/sdk-chat-sidebar.test.ts tests/workflows.test.ts tests/workflow-file.test.ts tests/sdk-workflows.test.ts tests/draft-sync.test.ts tests/sdk-draft-sync.test.ts tests/ideabucket.test.ts tests/teams-permissions.test.ts src/__tests__/benchmark.test.ts && node --test --experimental-strip-types --loader ./tests/loader.mjs tests/embedRenderers.test.ts tests/connectedAccountImport.test.ts && node --test --experimental-strip-types --loader ./tests/loader.mjs tests/cli.test.ts tests/imagesDetectAi.test.ts tests/uploadService.test.ts tests/billing.test.ts tests/account-delete.test.ts tests/signup.test.ts tests/security-setup.test.ts tests/e2e-provisioning.test.ts && npm run test:unit:session && npm run test:unit:task-sync",
56
+ "test": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/wiki.test.ts tests/privacy.test.ts tests/crypto.test.ts tests/storage.test.ts tests/keychain.test.ts tests/mentions.test.ts tests/outputRedactor.test.ts tests/fileEmbed.test.ts tests/embedCreator.test.ts tests/shareEncryption.test.ts tests/server.test.ts tests/serverCaddyUpdate.test.ts tests/serverCaddyUpgrade.test.ts tests/serverQuickTest.test.ts tests/ws.test.ts tests/urlEmbed.test.ts tests/tui.test.ts tests/tuiExampleContinuation.test.ts tests/tuiWorkflowInteraction.test.ts tests/tuiWorkspaceInteraction.test.ts tests/tuiLayout.test.ts tests/tuiTerminal.test.ts tests/tuiStartup.test.ts tests/tuiTasksWorkspace.test.ts tests/tuiProjectsWorkspace.test.ts tests/tuiWorkflowWorkspace.test.ts tests/tuiAttachments.test.ts tests/tuiCancellation.test.ts tests/tuiWorkflowVersion.test.ts tests/tuiAppsWorkspace.test.ts tests/tuiHome.test.ts tests/tuiEmbeds.test.ts tests/tuiEmbedPreviews.test.ts tests/tuiMarkdown.test.ts tests/tuiResultsViews.test.ts tests/tuiRichChatInteraction.test.ts tests/tuiInteractiveQuestions.test.ts tests/tuiCachedWorkspaces.test.ts tests/tuiWorkspaceCache.test.ts tests/tuiProjectCacheInteraction.test.ts tests/tuiChatSidebar.test.ts tests/sdk-chat-sidebar.test.ts tests/workflows.test.ts tests/workflow-file.test.ts tests/sdk-workflows.test.ts tests/draft-sync.test.ts tests/sdk-draft-sync.test.ts tests/ideabucket.test.ts tests/teams-permissions.test.ts src/__tests__/benchmark.test.ts && node --test --experimental-strip-types --loader ./tests/loader.mjs tests/embedRenderers.test.ts tests/connectedAccountImport.test.ts && node --test --experimental-strip-types --loader ./tests/loader.mjs tests/cli.test.ts tests/loginTerminal.test.ts tests/imagesDetectAi.test.ts tests/uploadService.test.ts tests/billing.test.ts tests/account-delete.test.ts tests/signup.test.ts tests/security-setup.test.ts tests/e2e-provisioning.test.ts && npm run test:unit:session && npm run test:unit:task-sync",
57
57
  "test:unit:session": "node --test --experimental-strip-types --loader ./tests/loader.mjs --test-name-pattern \"serializes refreshes|session refresh|rotated|gateway\" tests/client.test.ts",
58
58
  "test:unit:task-sync": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/projectTaskSync.test.ts tests/taskActivityDelivery.test.ts tests/taskCommandDelivery.test.ts tests/taskDelivery.test.ts tests/taskMutationDelivery.test.ts tests/claimConflict.test.ts tests/cliTaskQueue.test.ts tests/codexConnection.test.ts tests/remoteSources.test.ts tests/remoteAccess.test.ts tests/remoteAccessCrypto.test.ts",
59
59
  "test:unit:sdk-sidebar": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/sdk-chat-sidebar.test.ts"