openmates 0.27.0-alpha.46 → 0.27.0-alpha.48

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,
@@ -2748,6 +2749,9 @@ async function requestProjectRemoteOperation(options) {
2748
2749
  if (options.source.status !== "connected") {
2749
2750
  throw new ProjectRequesterError("source_offline", "The selected Project source is offline.");
2750
2751
  }
2752
+ if (options.operation === "search" && options.arguments.include_content === true && options.source.capabilities && !options.source.capabilities.includes("read")) {
2753
+ throw new ProjectRequesterError("source_capability_denied", "This Project source does not allow file reads.");
2754
+ }
2751
2755
  const timeoutMs = options.timeoutMs ?? REMOTE_PROTOCOL_TIMEOUT_MS;
2752
2756
  let sourceSessionId = stringField(options.source, "source_session_id");
2753
2757
  let keyEpoch = numberField(options.source, "key_epoch");
@@ -3071,11 +3075,16 @@ function createProjectFileJobExecutor(options) {
3071
3075
  }
3072
3076
  approved.delete(job.operation_id);
3073
3077
  const safeOutput = context.privacy ? await context.privacy.redactResult(output) : output;
3078
+ const sourceId = context.sourceId !== void 0 ? context.sourceId : job.source_id ?? null;
3079
+ const resultBody = safeOutput && typeof safeOutput === "object" && !Array.isArray(safeOutput) ? { ...safeOutput } : { value: safeOutput };
3080
+ if (job.operation === "search" && job.arguments.include_content === true && Array.isArray(resultBody.contents)) {
3081
+ resultBody.contents = resultBody.contents.map((item2) => item2 && typeof item2 === "object" && !Array.isArray(item2) ? { ...item2, source_id: sourceId } : item2);
3082
+ }
3074
3083
  await result("completed", {
3075
- ...safeOutput && typeof safeOutput === "object" ? safeOutput : { value: safeOutput },
3084
+ ...resultBody,
3076
3085
  // Preserve the resolver-selected source so a chat can reopen the
3077
3086
  // original remote file without uploading its contents as an embed.
3078
- source_id: context.sourceId !== void 0 ? context.sourceId : job.source_id ?? null,
3087
+ source_id: sourceId,
3079
3088
  ...proposalCommitment ? { proposal_commitment: proposalCommitment } : {}
3080
3089
  });
3081
3090
  if (mutation) {
@@ -3119,6 +3128,9 @@ var PROJECT_SEARCH_DEFAULT_MAX_RESULTS = 20;
3119
3128
  var PROJECT_SEARCH_MAX_RESULTS = 100;
3120
3129
  var PROJECT_SEARCH_MAX_QUERY_CHARS = 2e3;
3121
3130
  var PROJECT_SEARCH_MAX_GLOB_CHARS = 512;
3131
+ var PROJECT_SEARCH_CONTENT_MAX_FILES = 8;
3132
+ var PROJECT_SEARCH_CONTENT_MAX_FILE_BYTES = 24 * 1024;
3133
+ var PROJECT_SEARCH_CONTENT_MAX_TOTAL_BYTES = 96 * 1024;
3122
3134
  var PROJECT_CREDENTIAL_GLOBS = [
3123
3135
  ".env",
3124
3136
  ".env.*",
@@ -3180,7 +3192,9 @@ function normalizeProjectSearchRequest(args) {
3180
3192
  const path2 = args.path ?? ".";
3181
3193
  const glob = args.glob;
3182
3194
  const maxResults = args.max_results ?? PROJECT_SEARCH_DEFAULT_MAX_RESULTS;
3195
+ const includeContent = args.include_content ?? false;
3183
3196
  if (target !== "files" && target !== "content") fail2("invalid_search_target");
3197
+ if (typeof includeContent !== "boolean" || includeContent && target !== "files") fail2("invalid_search_content_option");
3184
3198
  if (mode !== "literal" && mode !== "regex") fail2("invalid_search_mode");
3185
3199
  if (typeof query !== "string" || !query.trim() || query.length > PROJECT_SEARCH_MAX_QUERY_CHARS || hasControlCharacters(query)) fail2("invalid_search_query");
3186
3200
  if (typeof path2 !== "string") fail2("invalid_search_path");
@@ -3195,7 +3209,8 @@ function normalizeProjectSearchRequest(args) {
3195
3209
  query,
3196
3210
  path: normalizedPath,
3197
3211
  ...typeof glob === "string" ? { glob } : {},
3198
- maxResults
3212
+ maxResults,
3213
+ includeContent
3199
3214
  };
3200
3215
  }
3201
3216
  function matchesProjectSearchQuery(value, request) {
@@ -3593,17 +3608,43 @@ async function executeHostedProjectFileJob(adapter, job, mutation) {
3593
3608
  }
3594
3609
  }
3595
3610
  const matches2 = [];
3611
+ const contents = [];
3612
+ const contentOmissions = [];
3613
+ let contentBytes = 0;
3596
3614
  const limit = search.maxResults;
3597
3615
  const byName = search.target === "files";
3598
3616
  let examined = 0;
3599
3617
  let omitted = 0;
3600
3618
  let incomplete = false;
3601
- for (const file of candidates.slice(0, 100)) {
3619
+ for (const file of (search.includeContent ? candidates.sort((a, b) => a.path.localeCompare(b.path)) : candidates).slice(0, 100)) {
3602
3620
  examined++;
3603
3621
  if (byName) {
3604
3622
  if (matchesProjectSearchQuery(file.path, search)) {
3605
- if (matches2.length < limit) matches2.push({ path: file.path, embed_id: file.embedId });
3606
- else omitted++;
3623
+ if (matches2.length < limit) {
3624
+ const match = { path: file.path, embed_id: file.embedId };
3625
+ matches2.push(match);
3626
+ if (search.includeContent) {
3627
+ let reason;
3628
+ if (contents.length >= PROJECT_SEARCH_CONTENT_MAX_FILES) reason = "file_limit";
3629
+ else {
3630
+ try {
3631
+ const content2 = textContent(await adapter.readHead(file.embedId));
3632
+ const size = bytes(content2).length;
3633
+ if (size > PROJECT_SEARCH_CONTENT_MAX_FILE_BYTES) reason = "file_too_large";
3634
+ else if (contentBytes + size > PROJECT_SEARCH_CONTENT_MAX_TOTAL_BYTES) reason = "total_bytes_limit";
3635
+ else {
3636
+ const expectedBase = await projectFileContentHash(content2);
3637
+ match.expected_base = expectedBase;
3638
+ contents.push({ path: file.path, embed_id: file.embedId, content: content2, expected_base: expectedBase, size_bytes: size });
3639
+ contentBytes += size;
3640
+ }
3641
+ } catch {
3642
+ reason = "unreadable_or_unsupported";
3643
+ }
3644
+ }
3645
+ if (reason) contentOmissions.push({ path: file.path, reason });
3646
+ }
3647
+ } else omitted++;
3607
3648
  }
3608
3649
  } else {
3609
3650
  let content2;
@@ -3627,6 +3668,7 @@ async function executeHostedProjectFileJob(adapter, job, mutation) {
3627
3668
  }
3628
3669
  return {
3629
3670
  matches: matches2,
3671
+ ...search.includeContent ? { contents, content_omissions: contentOmissions, content_incomplete: contentOmissions.length > 0 } : {},
3630
3672
  excluded,
3631
3673
  omitted,
3632
3674
  truncated: omitted > 0 || incomplete || candidates.length > examined
@@ -6291,7 +6333,13 @@ async function discoverCliProjectCandidates(client2, options) {
6291
6333
  typeof record10.encrypted_name === "string" ? decryptWithAesGcmCombined(record10.encrypted_name, key) : null,
6292
6334
  typeof record10.encrypted_description === "string" ? decryptWithAesGcmCombined(record10.encrypted_description, key) : null
6293
6335
  ]);
6294
- return name ? { project_id: record10.project_id, name: name.slice(0, 160), summary: (summary ?? "").slice(0, 640), auto_selection: settings.auto_selection !== false } : null;
6336
+ return name ? {
6337
+ project_id: record10.project_id,
6338
+ name: name.slice(0, 160),
6339
+ summary: (summary ?? "").slice(0, 640),
6340
+ auto_selection: settings.auto_selection !== false,
6341
+ focus_activation_policy: settings.focus_activation_policy === "immediate" || settings.focus_activation_policy === "approval" ? settings.focus_activation_policy : "delayed"
6342
+ } : null;
6295
6343
  } catch {
6296
6344
  return null;
6297
6345
  }
@@ -10911,6 +10959,20 @@ function buildInferenceHistoryMessage(historyMessage, chatId) {
10911
10959
  category: historyMessage.role === "assistant" ? historyMessage.category : void 0
10912
10960
  };
10913
10961
  }
10962
+ function canonicalSavedChatMessageId(message) {
10963
+ return message.clientMessageId || message.id;
10964
+ }
10965
+ function buildSavedChatMessageHistory(messages, chatId) {
10966
+ return messages.map((message) => ({
10967
+ message_id: canonicalSavedChatMessageId(message),
10968
+ chat_id: chatId,
10969
+ role: message.role,
10970
+ sender_name: message.senderName ?? message.role,
10971
+ content: message.content,
10972
+ created_at: message.createdAt,
10973
+ category: message.category
10974
+ }));
10975
+ }
10914
10976
  var MATE_NAMES = {
10915
10977
  software_development: "Sophia",
10916
10978
  business_development: "Burton",
@@ -11161,8 +11223,8 @@ var OpenMatesClient = class _OpenMatesClient {
11161
11223
  explicitSession;
11162
11224
  constructor(options = {}) {
11163
11225
  this.explicitSession = options.session !== void 0;
11164
- const diskSession = options.session ?? this.getValidSessionFromDisk();
11165
- 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(/\/$/, "");
11166
11228
  this.session = diskSession;
11167
11229
  this.http = new OpenMatesHttpClient({
11168
11230
  apiUrl: this.apiUrl,
@@ -15153,15 +15215,7 @@ var OpenMatesClient = class _OpenMatesClient {
15153
15215
  let messageHistoryForRequest = params.messageHistory;
15154
15216
  if (!params.incognito && !isNewChat && !messageHistoryForRequest) {
15155
15217
  const { messages } = savedPrivacyHistory;
15156
- messageHistoryForRequest = messages.map((message) => ({
15157
- message_id: message.id,
15158
- chat_id: chatId,
15159
- role: message.role,
15160
- sender_name: message.senderName ?? message.role,
15161
- content: message.content,
15162
- created_at: message.createdAt,
15163
- category: message.category
15164
- }));
15218
+ messageHistoryForRequest = buildSavedChatMessageHistory(messages, chatId);
15165
15219
  }
15166
15220
  ws.send("set_active_chat", { chat_id: chatId, ...teamId ? { team_id: teamId } : {} });
15167
15221
  const connectedAccountDirectory = buildConnectedAccountDirectoryPayload(
@@ -15241,7 +15295,7 @@ var OpenMatesClient = class _OpenMatesClient {
15241
15295
  ws,
15242
15296
  chatId,
15243
15297
  chatKey: chatKeyBytes,
15244
- existingMessageIds: savedPrivacyHistory?.messages.map((message) => message.id) ?? [],
15298
+ existingMessageIds: savedPrivacyHistory?.messages.map(canonicalSavedChatMessageId) ?? [],
15245
15299
  previousRulesSetKey: savedPrivacyHistory?.messages.filter((message) => message.role === "system").map((message) => parseChatContextContent(message.content)).filter((event) => event?.type === "rules_loaded").at(-1)?.set_key,
15246
15300
  onApplied: params.onChatContextApplied
15247
15301
  }) : null;
@@ -63395,6 +63449,12 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
63395
63449
  feature_notice: {
63396
63450
  text: "You are using free anonymous credits. File uploads, memories, chat sync, and some other features require creating an account."
63397
63451
  },
63452
+ signup_now: {
63453
+ text: "Signup now"
63454
+ },
63455
+ signup_benefits: {
63456
+ text: "to unlock all features and to keep your chats and access them across your devices."
63457
+ },
63398
63458
  daily_credits_exhausted: {
63399
63459
  text: "You used up your free daily credits. Sign up & buy credits to make full use of OpenMates."
63400
63460
  }
@@ -65407,6 +65467,20 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
65407
65467
  }
65408
65468
  },
65409
65469
  email: {
65470
+ workflow_completion: {
65471
+ subject: {
65472
+ text: "Your scheduled Workflow completed"
65473
+ },
65474
+ heading: {
65475
+ text: "Your scheduled Workflow completed"
65476
+ },
65477
+ detail: {
65478
+ text: "Run {run_id} completed at {completed_time}."
65479
+ },
65480
+ view: {
65481
+ text: "Open result"
65482
+ }
65483
+ },
65410
65484
  account_created: {
65411
65485
  text: "Account created"
65412
65486
  },
@@ -68457,6 +68531,9 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
68457
68531
  source_unavailable: {
68458
68532
  text: "Connected source is unavailable. Open it when the source is online."
68459
68533
  },
68534
+ changed_since_answer: {
68535
+ text: "This file changed since the answer. Showing the current version."
68536
+ },
68460
68537
  preview_unavailable: {
68461
68538
  text: "A preview is unavailable for this file."
68462
68539
  },
@@ -68845,6 +68922,9 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
68845
68922
  text: "Selects the fastest AI model"
68846
68923
  }
68847
68924
  }
68925
+ },
68926
+ openmates_description: {
68927
+ text: "Ask OpenMates to help"
68848
68928
  }
68849
68929
  },
68850
68930
  pii: {
@@ -75228,6 +75308,11 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
75228
75308
  buy_credits: {
75229
75309
  text: "Buy Credits"
75230
75310
  }
75311
+ },
75312
+ workflow_run: {
75313
+ completed: {
75314
+ text: "Your scheduled Workflow completed"
75315
+ }
75231
75316
  }
75232
75317
  },
75233
75318
  platforms: {
@@ -75272,7 +75357,22 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
75272
75357
  text: "Manage Rule guides"
75273
75358
  },
75274
75359
  auto_selection_description: {
75275
- text: "Suggested Project work starts after a cancellable four-second countdown. When off, mention the Project to activate it yourself."
75360
+ text: "When off, inferred Project mentions do not activate focus. A direct Project mention can still activate it."
75361
+ },
75362
+ focus_activation_policy_label: {
75363
+ text: "Inferred Project focus"
75364
+ },
75365
+ focus_activation_policy_delayed: {
75366
+ text: "After a four-second countdown"
75367
+ },
75368
+ focus_activation_policy_immediate: {
75369
+ text: "Immediately"
75370
+ },
75371
+ focus_activation_policy_approval: {
75372
+ text: "Ask me to approve"
75373
+ },
75374
+ focus_activation_policy_description: {
75375
+ text: "Choose how a suggested Project focus starts. A direct Project mention activates it when you send the message."
75276
75376
  },
75277
75377
  auto_selection_saved: {
75278
75378
  text: "Project focus preference saved."
@@ -75298,6 +75398,12 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
75298
75398
  focus_access_grant: {
75299
75399
  text: "Grant access"
75300
75400
  },
75401
+ focus_access_decline: {
75402
+ text: "Decline"
75403
+ },
75404
+ focus_access_activating: {
75405
+ text: "Activating\u2026"
75406
+ },
75301
75407
  focus_access_failed: {
75302
75408
  text: "Access could not be activated. Check your connection or send a new request."
75303
75409
  },
@@ -78763,13 +78869,13 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
78763
78869
  text: "Saving..."
78764
78870
  },
78765
78871
  email_chat_how_it_works: {
78766
- text: "Chat emails are sent when you're away. Workflow runs are summarized in one daily email."
78872
+ text: "Chat emails are sent when you're away. Successful scheduled Workflow runs get a completion email and a daily summary."
78767
78873
  },
78768
78874
  email_workflow_runs: {
78769
78875
  text: "Workflow runs"
78770
78876
  },
78771
78877
  email_workflow_runs_desc: {
78772
- text: "One daily email summarizing your workflow runs"
78878
+ text: "Completion emails for successful scheduled Workflow runs, plus a daily summary"
78773
78879
  },
78774
78880
  email_include_content: {
78775
78881
  text: "Include titles and previews in email"
@@ -83621,6 +83727,9 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
83621
83727
  },
83622
83728
  untitled_team: {
83623
83729
  text: "Untitled team"
83730
+ },
83731
+ chat_ai_reminder: {
83732
+ text: "Mention @openmates or a specific Mate to involve AI in this conversation."
83624
83733
  }
83625
83734
  },
83626
83735
  watch_whisper: {
@@ -84918,9 +85027,6 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
84918
85027
  elapsed: {
84919
85028
  text: "{time} elapsed"
84920
85029
  },
84921
- remaining: {
84922
- text: "{time} left"
84923
- },
84924
85030
  visual: {
84925
85031
  text: "Call visual"
84926
85032
  },
@@ -86022,6 +86128,20 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
86022
86128
  text: "Too many changes are waiting for evaluation or delivery. The last successful version was kept."
86023
86129
  }
86024
86130
  },
86131
+ completion: {
86132
+ opening_message: {
86133
+ text: "Opening the Workflow message\u2026"
86134
+ },
86135
+ message_unavailable: {
86136
+ text: "This Workflow message is unavailable."
86137
+ },
86138
+ review_run_or: {
86139
+ text: "You can review the run or"
86140
+ },
86141
+ retry_message: {
86142
+ text: "retry opening the message"
86143
+ }
86144
+ },
86025
86145
  sidebar: {
86026
86146
  loading: {
86027
86147
  text: "Loading workflows..."
@@ -86298,6 +86418,9 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
86298
86418
  content_unavailable: {
86299
86419
  text: "Saved inputs and results are no longer available. Run and step statuses remain visible."
86300
86420
  },
86421
+ target_unavailable: {
86422
+ text: "This Workflow run is unavailable."
86423
+ },
86301
86424
  execution_failed: {
86302
86425
  text: "This run failed. Check the highlighted step before trying again."
86303
86426
  },
@@ -105645,6 +105768,14 @@ async function handleLiveRemoteAccessRequest(client2, ws, ownerId2, sourceSessio
105645
105768
  authorize
105646
105769
  });
105647
105770
  } else {
105771
+ if (frame.operation === "search" && bootstrap.arguments.include_content === true) {
105772
+ const context = binding.teamId ? { teamId: binding.teamId } : { personal: true };
105773
+ const currentSources = await client2.listProjectSources(frame.project_id, context);
105774
+ const currentSource = currentSources.find((source) => source.source_id === frame.source_id);
105775
+ if (!currentSource?.capabilities?.includes("search") || !currentSource.capabilities.includes("read")) {
105776
+ throw Object.assign(new Error("source_capability_denied"), { code: "source_capability_denied" });
105777
+ }
105778
+ }
105648
105779
  let approvedIgnoredPath = null;
105649
105780
  const requestedPath = typeof bootstrap.arguments.path === "string" ? bootstrap.arguments.path : ".";
105650
105781
  const ignoredReadContext = bootstrap.ignored_read_context;
@@ -105724,10 +105855,12 @@ async function executeRemoteAccessOperation(sourceRoot, operation, args, trusted
105724
105855
  priorityPath: args.priority_path,
105725
105856
  glob: typeof args.glob === "string" ? args.glob : void 0,
105726
105857
  maxResults: typeof args.max_results === "number" ? args.max_results : void 0,
105858
+ includeContent: args.include_content,
105727
105859
  runRg: runRgCommand
105728
105860
  });
105729
105861
  }
105730
105862
  function remoteAccessOperationErrorCode(error) {
105863
+ if (error?.code === "source_capability_denied") return "source_capability_denied";
105731
105864
  if (error instanceof RemoteFileMutationError) return error.code;
105732
105865
  if (error instanceof RemoteFileTransferError) return error.code;
105733
105866
  if (error instanceof ProjectSearchProtocolError) return error.code;
@@ -105816,7 +105949,8 @@ async function searchRemoteSource(options) {
105816
105949
  mode: options.mode,
105817
105950
  path: options.path,
105818
105951
  glob: options.glob,
105819
- max_results: options.maxResults
105952
+ max_results: options.maxResults,
105953
+ include_content: options.includeContent
105820
105954
  });
105821
105955
  const policy = loadProjectPathPolicy(sourceRoot, {
105822
105956
  trustedPrivatePaths: options.userProtectedPatterns,
@@ -105853,9 +105987,9 @@ async function searchRemoteSource(options) {
105853
105987
  try {
105854
105988
  if (request.target === "files") {
105855
105989
  if (metadataTruncated) {
105856
- return searchRemoteFileNamesWithoutRg(request, sourceRoot, targetPath2, policy, priorityPath, priorityAbsolute);
105990
+ return includeRemoteSearchContent(searchRemoteFileNamesWithoutRg(request, sourceRoot, targetPath2, policy, priorityPath, priorityAbsolute), sourceRoot, request);
105857
105991
  }
105858
- return await searchRemoteFileNamesWithRg(options.runRg, sourceRoot, searchPath, request, policy, hardlinkExclusions, directories, priorityPath);
105992
+ return includeRemoteSearchContent(await searchRemoteFileNamesWithRg(options.runRg, sourceRoot, searchPath, request, policy, hardlinkExclusions, directories, priorityPath), sourceRoot, request);
105859
105993
  }
105860
105994
  const output = await options.runRg(
105861
105995
  buildRgContentSearchArgs(request, searchPath, policy, hardlinkExclusions),
@@ -105867,11 +106001,45 @@ async function searchRemoteSource(options) {
105867
106001
  if (error.code !== "ENOENT") throw error;
105868
106002
  if (request.mode === "regex") throw new ProjectSearchProtocolError("regex_search_unavailable");
105869
106003
  if (request.target === "files") {
105870
- return searchRemoteFileNamesWithoutRg(request, sourceRoot, targetPath2, policy, priorityPath, priorityAbsolute);
106004
+ return includeRemoteSearchContent(searchRemoteFileNamesWithoutRg(request, sourceRoot, targetPath2, policy, priorityPath, priorityAbsolute), sourceRoot, request);
105871
106005
  }
105872
106006
  return searchRemoteSourceWithoutRg(request, sourceRoot, targetPath2, policy);
105873
106007
  }
105874
106008
  }
106009
+ function includeRemoteSearchContent(result, sourceRoot, request) {
106010
+ if (!request.includeContent) return result;
106011
+ const contents = [];
106012
+ const contentOmissions = [];
106013
+ let totalBytes = 0;
106014
+ for (const match of result.matches) {
106015
+ let reason;
106016
+ if (match.kind === "directory") reason = "directory";
106017
+ else if (contents.length >= PROJECT_SEARCH_CONTENT_MAX_FILES) reason = "file_limit";
106018
+ else if (isBinaryPath(match.path)) reason = "binary_or_unsupported";
106019
+ else {
106020
+ try {
106021
+ const read = readRemoteAccessTextFile({
106022
+ sourceRoot,
106023
+ relativePath: match.path,
106024
+ maxBytes: PROJECT_SEARCH_CONTENT_MAX_FILE_BYTES,
106025
+ maxLines: DEFAULT_MAX_READ_LINES,
106026
+ isIgnoredReadApproved: () => false
106027
+ });
106028
+ if (read.truncated || !read.expected_base) reason = "file_too_large_or_line_limit";
106029
+ else if (totalBytes + read.sizeBytes > PROJECT_SEARCH_CONTENT_MAX_TOTAL_BYTES) reason = "total_bytes_limit";
106030
+ else {
106031
+ match.expected_base = read.expected_base;
106032
+ contents.push({ path: match.path, content: read.content, expected_base: read.expected_base, size_bytes: read.sizeBytes });
106033
+ totalBytes += read.sizeBytes;
106034
+ }
106035
+ } catch {
106036
+ reason = "unreadable_or_unsupported";
106037
+ }
106038
+ }
106039
+ if (reason) contentOmissions.push({ path: match.path, reason });
106040
+ }
106041
+ return { ...result, contents, content_omissions: contentOmissions, content_incomplete: contentOmissions.length > 0 };
106042
+ }
105875
106043
  function collectRgContentMatches(output, sourceRoot, request, policy) {
105876
106044
  const matches2 = [];
105877
106045
  let omitted = 0;
@@ -106830,7 +106998,9 @@ async function main() {
106830
106998
  }
106831
106999
  process.env.OPENMATES_PROFILE = profile;
106832
107000
  }
107001
+ const sessionFree = parsed.flags.help === true || ["help", "version", "update", "upgrade", "login"].includes(command ?? "") || !command && parsed.flags.version !== void 0;
106833
107002
  const client2 = OpenMatesClient.load({
107003
+ loadStoredSession: !sessionFree,
106834
107004
  apiUrl: typeof parsed.flags["api-url"] === "string" ? parsed.flags["api-url"] : void 0
106835
107005
  });
106836
107006
  if (accountGuardRequired && parsed.flags.help !== true && shouldRequireTrustedAccountGuard(command)) {
@@ -109569,25 +109739,31 @@ async function handleProjects(client2, subcommand, rest, flags, redactor) {
109569
109739
  else console.log(`Project focus activated for ${project.name} in chat ${chatId}.`);
109570
109740
  return;
109571
109741
  }
109572
- if (flags["write-policy"] === void 0 && flags["auto-selection"] === void 0) {
109742
+ if (flags["write-policy"] === void 0 && flags["auto-selection"] === void 0 && flags["focus-activation"] === void 0) {
109573
109743
  const settings2 = await client2.getProjectSettings(project.projectId, context);
109574
109744
  if (flags.json === true) printJson2({ project_id: project.projectId, settings: settings2 });
109575
109745
  else console.log(`Write policy: ${settings2.write_mode ?? "selection required"}
109576
- Automatic focus selection: ${settings2.auto_selection === false ? "off" : "on"}`);
109746
+ Automatic focus selection: ${settings2.auto_selection === false ? "off" : "on"}
109747
+ Focus activation: ${settings2.focus_activation_policy ?? "delayed"}`);
109577
109748
  return;
109578
109749
  }
109579
109750
  const autoSelectionFlag = flags["auto-selection"];
109580
109751
  if (autoSelectionFlag !== void 0 && autoSelectionFlag !== "on" && autoSelectionFlag !== "off") {
109581
109752
  throw new CliContractError("invalid_auto_selection", "--auto-selection must be on or off.");
109582
109753
  }
109754
+ const focusActivationFlag = flags["focus-activation"];
109755
+ if (focusActivationFlag !== void 0 && focusActivationFlag !== "delayed" && focusActivationFlag !== "immediate" && focusActivationFlag !== "approval") {
109756
+ throw new CliContractError("invalid_focus_activation", "--focus-activation must be delayed, immediate, or approval.");
109757
+ }
109583
109758
  const writeMode = flags["write-policy"] === void 0 ? void 0 : await resolveProjectWriteMode(flags, "Choose the Project write policy:");
109584
109759
  const settings = await client2.updateProjectSettings(project.projectId, {
109585
109760
  ...writeMode === void 0 ? {} : { write_mode: writeMode },
109586
109761
  ...autoSelectionFlag === void 0 ? {} : { auto_selection: autoSelectionFlag === "on" },
109762
+ ...focusActivationFlag === void 0 ? {} : { focus_activation_policy: focusActivationFlag },
109587
109763
  updated_at: nowSeconds2()
109588
109764
  }, context);
109589
109765
  if (flags.json === true) printJson2({ project_id: project.projectId, settings });
109590
- else console.log(`Project settings saved. Write policy: ${settings.write_mode}; automatic focus selection: ${settings.auto_selection === false ? "off" : "on"}.`);
109766
+ else console.log(`Project settings saved. Write policy: ${settings.write_mode}; automatic focus selection: ${settings.auto_selection === false ? "off" : "on"}; focus activation: ${settings.focus_activation_policy ?? "delayed"}.`);
109591
109767
  return;
109592
109768
  }
109593
109769
  if (["update", "archive", "unarchive"].includes(subcommand)) {
@@ -109757,6 +109933,9 @@ async function handleProjectFiles(client2, masterKey, rest, flags, context) {
109757
109933
  if (flags["include-ignored"] === true && action2 !== "read") {
109758
109934
  throw new CliContractError("include_ignored_read_only", "--include-ignored is allowed only for one exact file read.");
109759
109935
  }
109936
+ if (flags["include-content"] === true && action2 !== "search") {
109937
+ throw new CliContractError("include_content_search_only", "--include-content is allowed only for filename search.");
109938
+ }
109760
109939
  const project = await requiredResolvedProject(client2, masterKey, requiredStringFlag(rest[1], "project"), flags, context);
109761
109940
  const sources = await client2.listProjectSources(project.projectId, context);
109762
109941
  const source = await selectProjectSource(sources, flags);
@@ -109771,7 +109950,7 @@ async function handleProjectFiles(client2, masterKey, rest, flags, context) {
109771
109950
  operation = "search";
109772
109951
  const query = requiredStringFlag(rest[2], "search query");
109773
109952
  if (Buffer.byteLength(query, "utf8") > 256) throw new CliContractError("query_too_large", "Search query exceeds 256 bytes.");
109774
- argumentsValue = { query, target: "files", mode: "literal", path: "." };
109953
+ argumentsValue = { query, target: "files", mode: "literal", path: ".", include_content: flags["include-content"] === true };
109775
109954
  } else {
109776
109955
  operation = "read_text";
109777
109956
  argumentsValue = { path: safeRelativeProjectPath(requiredStringFlag(rest[2], "relative path")) };
@@ -119182,7 +119361,7 @@ function printProjectsHelp() {
119182
119361
  openmates projects show <project> [--personal|--team <team>] [--json]
119183
119362
  openmates projects open <project> [--personal|--team <team>] [--json]
119184
119363
  openmates projects create <name> [--write-policy apply_and_show|always_ask] [--description <text>] [--icon <name>] [--color <token>] [--pinned] [--personal|--team <team>] [--json]
119185
- openmates projects settings <project> [--write-policy apply_and_show|always_ask] [--auto-selection on|off] [--personal|--team <team>] [--json]
119364
+ openmates projects settings <project> [--write-policy apply_and_show|always_ask] [--auto-selection on|off] [--focus-activation delayed|immediate|approval] [--personal|--team <team>] [--json]
119186
119365
  openmates projects settings <project> focus activate|deactivate --chat <chat-id> [--personal|--team <team>] [--json]
119187
119366
  openmates projects settings <project> command-presets list|enable|disable [<preset-id>] [--source <source-id>|--path <folder>] [--json]
119188
119367
  openmates projects settings <project> command-resources list [--source <source-id>|--path <folder>] [--json]
@@ -633,6 +633,7 @@ interface CliJevContext {
633
633
  name: string;
634
634
  summary: string;
635
635
  auto_selection: boolean;
636
+ focus_activation_policy: "delayed" | "immediate" | "approval";
636
637
  }>;
637
638
  custom_memory_documents?: CustomRuleDocument[];
638
639
  /** Legacy input alias, never a personal consent bypass. */
@@ -1382,6 +1383,7 @@ interface ProjectSettingsRecord {
1382
1383
  encrypted_settings: string | null;
1383
1384
  updated_at: number | null;
1384
1385
  auto_selection?: boolean;
1386
+ focus_activation_policy?: "delayed" | "immediate" | "approval";
1385
1387
  }
1386
1388
  interface ActiveProjectFocus {
1387
1389
  active: true;
@@ -2266,6 +2268,8 @@ interface DecryptedMemoryEntry {
2266
2268
  }
2267
2269
  interface OpenMatesClientOptions {
2268
2270
  apiUrl?: string;
2271
+ /** Skip saved credentials for fresh pairing or session-free maintenance. */
2272
+ loadStoredSession?: boolean;
2269
2273
  session?: OpenMatesSession;
2270
2274
  }
2271
2275
  interface InvoiceListItem {
@@ -3186,6 +3190,7 @@ declare class OpenMatesClient {
3186
3190
  encrypted_settings?: string;
3187
3191
  updated_at?: number;
3188
3192
  auto_selection?: boolean;
3193
+ focus_activation_policy?: "delayed" | "immediate" | "approval";
3189
3194
  }, options?: TeamContextOptions): Promise<ProjectSettingsRecord>;
3190
3195
  activateProjectFocus(projectId: string, input: {
3191
3196
  chat_id: string;
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-D-jTGCjY.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-WCND4GFX.js";
25
- import "./chunk-B4UXKGH3.js";
24
+ } from "./chunk-TYME6DVO.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-D-jTGCjY.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-D-jTGCjY.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-WCND4GFX.js";
48
- import "./chunk-B4UXKGH3.js";
47
+ } from "./chunk-TYME6DVO.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": "3d3b5f5729c23afbd1ddae2e4dca2a37c010ad8b2f67227dff147a070cc35313"
20
+ "sha256": "b3410088aeb5fd4d3210e8d9969f8ee7322b464bb249615551fa166221050e68"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "3d3b5f5729c23afbd1ddae2e4dca2a37c010ad8b2f67227dff147a070cc35313"
25
+ "sha256": "b3410088aeb5fd4d3210e8d9969f8ee7322b464bb249615551fa166221050e68"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "3d3b5f5729c23afbd1ddae2e4dca2a37c010ad8b2f67227dff147a070cc35313"
30
+ "sha256": "b3410088aeb5fd4d3210e8d9969f8ee7322b464bb249615551fa166221050e68"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "f823b482cb87acd8e9ba3ec0272c3092a9fcb68cf93eecd20c2ab4c4d27889cf"
35
+ "sha256": "f4ace9a11f1642764f721f4772ede90acad6521b81329435553ed1a3c693957b"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "f823b482cb87acd8e9ba3ec0272c3092a9fcb68cf93eecd20c2ab4c4d27889cf"
40
+ "sha256": "f4ace9a11f1642764f721f4772ede90acad6521b81329435553ed1a3c693957b"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "f823b482cb87acd8e9ba3ec0272c3092a9fcb68cf93eecd20c2ab4c4d27889cf"
45
+ "sha256": "f4ace9a11f1642764f721f4772ede90acad6521b81329435553ed1a3c693957b"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "b24c630710e35e68d38c99c8d3af584299269fd031807ee7efc5cebb1a51fa69"
50
+ "sha256": "07e384deb7dd55891c72c378e1d09aa8056f2f9d348708970cf44f1db09971b2"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "b24c630710e35e68d38c99c8d3af584299269fd031807ee7efc5cebb1a51fa69"
55
+ "sha256": "07e384deb7dd55891c72c378e1d09aa8056f2f9d348708970cf44f1db09971b2"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "b24c630710e35e68d38c99c8d3af584299269fd031807ee7efc5cebb1a51fa69"
60
+ "sha256": "07e384deb7dd55891c72c378e1d09aa8056f2f9d348708970cf44f1db09971b2"
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.46",
3
+ "version": "0.27.0-alpha.48",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",