openmates 0.27.0-alpha.67 → 0.27.0-alpha.69

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.
@@ -6134,7 +6134,7 @@ async function prepareCliJevContext(client2, chatId, options, supplied = {}, tex
6134
6134
  }).catch(() => {
6135
6135
  }).finally(() => resolveCatalog([]));
6136
6136
  await Promise.all([
6137
- (discovery.verifiedProjectCandidates ? Promise.resolve(discovery.verifiedProjectCandidates) : discoverCliProjectCandidates(client2, options, Boolean(discovery.onProjectRouting))).then((value) => {
6137
+ (discovery.verifiedProjectCandidates ? Promise.resolve(discovery.verifiedProjectCandidates) : discovery.usePersonalRoutingDirectory ? client2.listPersonalProjectRoutingDirectory().then((rows2) => decodePersonalProjectCandidates(client2, rows2)) : discoverCliProjectCandidates(client2, options, Boolean(discovery.onProjectRouting))).then((value) => {
6138
6138
  candidates = value;
6139
6139
  discovery.onProjectRouting?.({ project_focus_candidates: (discovery.verifiedProjectCandidates ?? supplied.project_focus_candidates ?? value).slice(0, 40) });
6140
6140
  }).catch((error) => {
@@ -15519,6 +15519,12 @@ var OpenMatesClient = class _OpenMatesClient {
15519
15519
  }
15520
15520
  async sendMessage(params) {
15521
15521
  const preWsStartedAt = performance.now();
15522
+ const traceSendTiming = (phase) => {
15523
+ if (process.env.OPENMATES_TRACE_SEND_TIMING === "1") {
15524
+ console.error(`[chat send timing] phase=${phase} elapsed_ms=${Math.round(performance.now() - preWsStartedAt)}`);
15525
+ }
15526
+ };
15527
+ traceSendTiming("send_begin");
15522
15528
  if (this.preparedSendSocket && !this.preparedSendSocket.opened) this.closePreparedSendSocket();
15523
15529
  const teamId = this.resolveTeamContext({ teamId: params.teamId, personal: params.personal });
15524
15530
  const teamSenderName = teamId ? await this.ownTeamSenderName(teamId) : "User";
@@ -15572,6 +15578,8 @@ var OpenMatesClient = class _OpenMatesClient {
15572
15578
  let socketSnapshotResultRows = null;
15573
15579
  let socketProjectCandidateRows = null;
15574
15580
  let verifiedProjectCandidates = null;
15581
+ let deferredProjectDirectory = false;
15582
+ let usePersonalRoutingDirectory = false;
15575
15583
  let projectCandidatesReadyFromSendStartMs = null;
15576
15584
  let socketMemoryReceipt = null;
15577
15585
  const socketMemoryOptionsKey = () => JSON.stringify([
@@ -15602,8 +15610,13 @@ var OpenMatesClient = class _OpenMatesClient {
15602
15610
  const combinedSupported = await memorySocket.ws.waitForServerCapability("personal_send_context_snapshot_v1");
15603
15611
  const supported = combinedSupported || await memorySocket.ws.waitForServerCapability("personal_memory_snapshot_v1");
15604
15612
  if (supported) {
15605
- const combined = combinedSupported ? await memorySocket.ws.requestPersonalSendContextSnapshot(randomUUID9()) : null;
15613
+ const deferProjectDirectory = sdkMintedChatId && !teamId && !params.incognito && !params.projectId && shouldWaitForAi && memorySocket.ws.supportsServerCapability("personal_memory_snapshot_v1") && memorySocket.ws.supportsServerCapability("chat_turn_admit_v1") && memorySocket.ws.supportsServerCapability("chat_turn_context_v1");
15614
+ deferredProjectDirectory = deferProjectDirectory;
15615
+ usePersonalRoutingDirectory = deferProjectDirectory && memorySocket.ws.supportsServerCapability("personal_project_routing_directory_v1");
15616
+ traceSendTiming("snapshot_request");
15617
+ const combined = combinedSupported && !deferProjectDirectory ? await memorySocket.ws.requestPersonalSendContextSnapshot(randomUUID9()) : null;
15606
15618
  const snapshot2 = combined?.personal_memories ?? await memorySocket.ws.requestPersonalMemorySnapshot(randomUUID9());
15619
+ traceSendTiming("snapshot_ready");
15607
15620
  if (combined) {
15608
15621
  socketProjectCandidateRows = combined.project_candidates;
15609
15622
  verifiedProjectCandidates = await decodePersonalProjectCandidates(this, combined.project_candidates);
@@ -15611,6 +15624,7 @@ var OpenMatesClient = class _OpenMatesClient {
15611
15624
  }
15612
15625
  socketSnapshotResultRows = snapshot2.memories;
15613
15626
  availableMemories = await this.listMemoriesUnshared({ personal: true }, snapshot2);
15627
+ traceSendTiming("memory_decrypt_ready");
15614
15628
  if (!memorySocket.ws.isOpen() || JSON.stringify([
15615
15629
  this.sendSocketOwnerKey(this.requireSession(), teamId),
15616
15630
  authCookieFingerprint(this.http.getCookieMap())
@@ -15660,6 +15674,7 @@ var OpenMatesClient = class _OpenMatesClient {
15660
15674
  const personalSendAuthHandoff = !teamId && !params.incognito ? snapshotAuthHandoff : null;
15661
15675
  const memoryPrepMs = Math.round(performance.now() - memoryStartedAt);
15662
15676
  const privacyStartedAt = performance.now();
15677
+ traceSendTiming("privacy_begin");
15663
15678
  const savedPrivacyHistory = !params.incognito && params.chatId ? await this.getChatMessages(chatId, teamId ? { teamId } : { personal: true }) : null;
15664
15679
  let piiMappings = [...savedPrivacyHistory?.messages.flatMap((message) => (message.piiMappings ?? []).map((mapping) => ({ ...mapping, type: mapping.type ?? "OTHER" }))) ?? [], ...params.piiMappings ?? []];
15665
15680
  try {
@@ -15689,6 +15704,7 @@ var OpenMatesClient = class _OpenMatesClient {
15689
15704
  throw error;
15690
15705
  }
15691
15706
  const privacyPrepMs = Math.round(performance.now() - privacyStartedAt);
15707
+ traceSendTiming("privacy_ready");
15692
15708
  const preWsMs = Math.round(performance.now() - preWsStartedAt);
15693
15709
  const contextSession = this.requireSession();
15694
15710
  const {
@@ -15700,6 +15716,7 @@ var OpenMatesClient = class _OpenMatesClient {
15700
15716
  activeTeamId: contextActiveTeamId
15701
15717
  } = contextSession;
15702
15718
  const contextScope = { teamId, personal: !teamId };
15719
+ const suppliedContext = deferredProjectDirectory ? { ...params.jevContext, project_focus_candidates: void 0 } : params.jevContext;
15703
15720
  const contextStartedAt = Date.now();
15704
15721
  let publishRouting;
15705
15722
  const routingContext = new Promise((resolve20) => {
@@ -15715,7 +15732,7 @@ var OpenMatesClient = class _OpenMatesClient {
15715
15732
  });
15716
15733
  const publishProjectRoutingTimed = (context) => {
15717
15734
  projectCandidatesReadyFromSendStartMs ??= Math.round(performance.now() - preWsStartedAt);
15718
- publishProjectRouting(context);
15735
+ publishProjectRouting(deferredProjectDirectory ? { ...context, project_focus_candidates: context.project_focus_candidates?.filter((candidate) => candidate.auto_selection === true) } : context);
15719
15736
  };
15720
15737
  let recoveryMs = 0;
15721
15738
  const contextOwnerIsCurrent = () => {
@@ -15723,10 +15740,11 @@ var OpenMatesClient = class _OpenMatesClient {
15723
15740
  return Boolean(current2 && current2.apiUrl === contextApiUrl && current2.hashedEmail === contextHashedEmail && current2.sessionId === contextSessionId && current2.createdAt === contextSessionCreatedAt && current2.masterKeyExportedB64 === contextMasterKey && current2.activeTeamId === contextActiveTeamId);
15724
15741
  };
15725
15742
  const earlyContextAbort = new AbortController();
15726
- const earlyContext = !params.incognito && !params.chatId && !params.projectId ? withHttpAbortSignal(earlyContextAbort.signal, () => prepareCliJevContext(this, chatId, contextScope, params.jevContext, finalMessage, {
15743
+ const earlyContext = !params.incognito && !params.chatId && !params.projectId ? withHttpAbortSignal(earlyContextAbort.signal, () => prepareCliJevContext(this, chatId, contextScope, suppliedContext, finalMessage, {
15727
15744
  sdkMintedChatId,
15728
15745
  onRouting: publishRouting,
15729
15746
  verifiedProjectCandidates: verifiedProjectCandidates ?? void 0,
15747
+ usePersonalRoutingDirectory,
15730
15748
  onProjectRouting: publishProjectRoutingTimed,
15731
15749
  onProjectRoutingError: rejectProjectRouting
15732
15750
  })).then(
@@ -15830,6 +15848,7 @@ var OpenMatesClient = class _OpenMatesClient {
15830
15848
  let terminalExpectedMessagesV = 1;
15831
15849
  let savedTurnId = null;
15832
15850
  if (!params.incognito) {
15851
+ traceSendTiming("key_begin");
15833
15852
  const masterKey = this.getMasterKeyBytes();
15834
15853
  const preparedKey = isNewChat && ownsPreparedId && this.preparedChatKey?.chatId === chatId && this.preparedChatOwnerCurrent(this.preparedChatKey.owner, teamId) ? this.preparedChatKey : null;
15835
15854
  if (preparedKey) this.preparedChatKey = null;
@@ -15888,6 +15907,7 @@ var OpenMatesClient = class _OpenMatesClient {
15888
15907
  throw new Error(`Encrypted chat key not found for chat '${chatId}'. Sync and try again.`);
15889
15908
  }
15890
15909
  }
15910
+ traceSendTiming("key_ready");
15891
15911
  }
15892
15912
  let focusPersistence = Promise.resolve();
15893
15913
  let focusPersistenceError = null;
@@ -16023,10 +16043,11 @@ var OpenMatesClient = class _OpenMatesClient {
16023
16043
  messagePayload.client_context_request_id = contextRequestId;
16024
16044
  }
16025
16045
  pendingContext = (async () => {
16026
- const prepared = earlyContext ? await earlyContext : { ok: true, value: await withHttpAbortSignal(earlyContextAbort.signal, () => prepareCliJevContext(this, chatId, contextScope, params.jevContext, finalMessage, {
16046
+ const prepared = earlyContext ? await earlyContext : { ok: true, value: await withHttpAbortSignal(earlyContextAbort.signal, () => prepareCliJevContext(this, chatId, contextScope, suppliedContext, finalMessage, {
16027
16047
  sdkMintedChatId,
16028
16048
  onRouting: publishRouting,
16029
16049
  verifiedProjectCandidates: verifiedProjectCandidates ?? void 0,
16050
+ usePersonalRoutingDirectory,
16030
16051
  onProjectRouting: publishProjectRoutingTimed,
16031
16052
  onProjectRoutingError: rejectProjectRouting
16032
16053
  })), elapsedMs: Date.now() - contextStartedAt };
@@ -16035,7 +16056,7 @@ var OpenMatesClient = class _OpenMatesClient {
16035
16056
  if (process.env.OPENMATES_DEBUG === "1") {
16036
16057
  console.error(`[chat preparation] pre_ws_ms=${preWsMs} memory_ms=${memoryPrepMs} privacy_ms=${privacyPrepMs} auth_ws_ms=${authSocketMs} recovery_ms=${recoveryMs} context_ms=${prepared.elapsedMs} project_candidates_ready_from_send_start_ms=${projectCandidatesReadyFromSendStartMs ?? "pending"}`);
16037
16058
  }
16038
- return prepared.value;
16059
+ return deferredProjectDirectory ? { ...prepared.value, project_focus_candidates: prepared.value.project_focus_candidates?.filter((candidate) => candidate.auto_selection === true) } : prepared.value;
16039
16060
  })();
16040
16061
  void pendingContext.catch(() => {
16041
16062
  });
@@ -16159,6 +16180,7 @@ var OpenMatesClient = class _OpenMatesClient {
16159
16180
  let admissionPayload = null;
16160
16181
  let precollectedResponse = params.precollectResponse && params.incognito && shouldWaitForAi ? ws.collectAiResponse(messageId2, chatId, { onStream: params.onStream, timeoutMs: params.responseTimeoutMs }) : null;
16161
16182
  if (!params.incognito && chatKeyBytes && encryptedChatKey) {
16183
+ traceSendTiming("preflight_begin");
16162
16184
  const protocolVersion = 1;
16163
16185
  const chatKeyVersion = 1;
16164
16186
  const turnId = randomUUID9();
@@ -16295,6 +16317,7 @@ var OpenMatesClient = class _OpenMatesClient {
16295
16317
  pendingContext = Promise.resolve(focusedContext);
16296
16318
  }
16297
16319
  admissionPayload = preflightPayload;
16320
+ traceSendTiming("preflight_ready");
16298
16321
  } catch (error) {
16299
16322
  ws.close();
16300
16323
  throw error;
@@ -16360,10 +16383,12 @@ var OpenMatesClient = class _OpenMatesClient {
16360
16383
  admissionContinuationPhase = "await_ack";
16361
16384
  await consumeSocketMemoryReceipt();
16362
16385
  await ws.sendAsync(useCombinedAdmission ? "chat_turn_admit" : "chat_turn_preflight", admissionPayload);
16386
+ traceSendTiming("admission_frame");
16363
16387
  if (process.env.OPENMATES_DEBUG === "1") {
16364
16388
  console.error(`[chat admission preparation] sdk_minted=${sdkMintedChatId} defer_recovery=${mayDeferRecovery} combined_admission=${useCombinedAdmission} caps_wait_ms=${capabilitiesWaitMs} key_wait_ms=${keyWaitMs} recovery_keypair_ms=${recoveryKeypairMs} encrypt_payload_ms=${encryptPayloadMs} socket_ready_to_frame_dispatch_ms=${Math.round(frameDispatchAt - socketReadyForSendAt)} frame_dispatch_from_send_start_ms=${Math.round(frameDispatchAt - preWsStartedAt)} wire_send_ms=${Math.round(performance.now() - frameDispatchAt)}`);
16365
16389
  }
16366
16390
  const ackPayload = (await admissionAck).payload;
16391
+ traceSendTiming("admission_ack");
16367
16392
  admissionAckObserved = true;
16368
16393
  if (typeof ackPayload.preflight_id !== "string" || !ackPayload.preflight_id) {
16369
16394
  throw new Error("Encrypted chat admission acknowledgement omitted preflight_id.");
@@ -16405,7 +16430,7 @@ var OpenMatesClient = class _OpenMatesClient {
16405
16430
  };
16406
16431
  let routing;
16407
16432
  try {
16408
- routing = useSelectionDetailsV2 ? await projectRoutingContext : params.projectId ? await pendingContext : await Promise.race([routingContext, pendingContext]);
16433
+ routing = useSelectionDetailsV2 ? await projectRoutingContext : deferredProjectDirectory ? (await Promise.all([pendingContext, projectRoutingContext]))[0] : params.projectId ? await pendingContext : await Promise.race([routingContext, pendingContext]);
16409
16434
  } catch (error) {
16410
16435
  try {
16411
16436
  await notifyContextFailure(useSelectionDetailsV2 ? "project_discovery_failed" : "context_preparation_failed");
@@ -16423,7 +16448,12 @@ var OpenMatesClient = class _OpenMatesClient {
16423
16448
  let rejectedPhaseSeen = false;
16424
16449
  const attemptedContextPhases = /* @__PURE__ */ new Set();
16425
16450
  removeContextAckWatcher = ws.onMessageType("chat_turn_context_ack", (event) => {
16426
- if (rejectedPhaseSeen || event.chat_id !== chatId || event.turn_id !== savedTurnId || event.message_id !== messageId2 || event.request_id !== contextRequestId || event.phase !== "routing" && event.phase !== "details" || !attemptedContextPhases.has(event.phase) || event.status !== "rejected") return;
16451
+ if (rejectedPhaseSeen || event.chat_id !== chatId || event.turn_id !== savedTurnId || event.message_id !== messageId2 || event.request_id !== contextRequestId || event.phase !== "routing" && event.phase !== "details" || !attemptedContextPhases.has(event.phase)) return;
16452
+ if (event.status === "accepted" || event.status === "duplicate") {
16453
+ traceSendTiming(event.phase === "routing" ? "routing_ack" : "details_ack");
16454
+ return;
16455
+ }
16456
+ if (event.status !== "rejected") return;
16427
16457
  rejectedPhaseSeen = true;
16428
16458
  if (!contextOwnerIsCurrent()) {
16429
16459
  rejectContextAck(new Error("Chat workspace changed while preparing context."));
@@ -16435,9 +16465,11 @@ var OpenMatesClient = class _OpenMatesClient {
16435
16465
  });
16436
16466
  });
16437
16467
  const { project_focus_candidates, related_task_candidates, project_focus_catalog, accepted_plan_context } = routing;
16468
+ traceSendTiming("routing_prepared");
16438
16469
  attemptedContextPhases.add("routing");
16439
16470
  await ws.sendAsync("chat_turn_context_ready", { ...identity3, phase: "routing", context: useSelectionDetailsV2 ? { project_focus_candidates } : { project_focus_candidates, related_task_candidates, project_focus_catalog, accepted_plan_context } });
16440
16471
  routingFrameSent = true;
16472
+ traceSendTiming("routing_frame");
16441
16473
  admissionContinuationPhase = "await_details";
16442
16474
  let context;
16443
16475
  try {
@@ -16450,6 +16482,7 @@ var OpenMatesClient = class _OpenMatesClient {
16450
16482
  throw error;
16451
16483
  }
16452
16484
  if (!contextOwnerIsCurrent()) throw new Error("Chat workspace changed while preparing context.");
16485
+ traceSendTiming("details_prepared");
16453
16486
  attemptedContextPhases.add("details");
16454
16487
  await ws.sendAsync("chat_turn_context_ready", { ...identity3, phase: "details", context: {
16455
16488
  custom_memory_documents: context.custom_memory_documents ?? [],
@@ -16463,6 +16496,7 @@ var OpenMatesClient = class _OpenMatesClient {
16463
16496
  } : {}
16464
16497
  } });
16465
16498
  detailsFrameSent = true;
16499
+ traceSendTiming("details_frame");
16466
16500
  }
16467
16501
  admissionContinuationPhase = "await_confirmation";
16468
16502
  } else {
@@ -18792,6 +18826,18 @@ var OpenMatesClient = class _OpenMatesClient {
18792
18826
  if (!response.ok) throw new Error(`Project list failed with HTTP ${response.status}`);
18793
18827
  return response.data.projects ?? [];
18794
18828
  }
18829
+ /** Fresh Personal-only encrypted routing directory; server verifies owner and current Project settings. */
18830
+ async listPersonalProjectRoutingDirectory() {
18831
+ this.requireSession();
18832
+ const response = await this.http.get(
18833
+ "/v1/projects/routing-directory",
18834
+ this.getCliRequestHeaders()
18835
+ );
18836
+ if (!response.ok) throw new Error(`Personal Project routing directory failed with HTTP ${response.status}`);
18837
+ const rows2 = response.data?.project_candidates;
18838
+ if (!Array.isArray(rows2) || rows2.length > 40) throw new Error("Personal Project routing directory is invalid.");
18839
+ return rows2;
18840
+ }
18795
18841
  async getProject(projectId, options = {}) {
18796
18842
  this.requireSession();
18797
18843
  const response = await this.http.get(
@@ -689,6 +689,14 @@ interface CliJevContext {
689
689
  related_task_candidates?: RelatedTaskCandidate[];
690
690
  }
691
691
  type FocusAuthoringDocument = ProjectFocusDocument;
692
+ interface EncryptedPersonalProjectCandidate {
693
+ project_id: string;
694
+ encrypted_project_key: string;
695
+ encrypted_name: string;
696
+ encrypted_description: string | null;
697
+ auto_selection: true;
698
+ focus_activation_policy: "delayed" | "immediate" | "approval";
699
+ }
692
700
 
693
701
  /** Server-authorized cancellable Project activation; discovery never decrypts private context. */
694
702
 
@@ -3313,6 +3321,8 @@ declare class OpenMatesClient {
3313
3321
  teamId?: string | null;
3314
3322
  personal?: boolean;
3315
3323
  }): Promise<ProjectRecord[]>;
3324
+ /** Fresh Personal-only encrypted routing directory; server verifies owner and current Project settings. */
3325
+ listPersonalProjectRoutingDirectory(): Promise<EncryptedPersonalProjectCandidate[]>;
3316
3326
  getProject(projectId: string, options?: TeamContextOptions): Promise<ProjectDetail>;
3317
3327
  createProject(input: Record<string, unknown>, options?: TeamContextOptions): Promise<Record<string, unknown>>;
3318
3328
  getProjectSettings(projectId: string, options?: TeamContextOptions): Promise<ProjectSettingsRecord>;
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
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-DW9YpJSQ.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-BE11sFys.js';
3
3
  import '@repo/pairing-crypto/direct-chat';
package/dist/cli.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  shouldRequireTrustedAccountGuard,
22
22
  waitForSafeE2ETotpWindow,
23
23
  waitForWorkflowRun
24
- } from "./chunk-UMSBFCU7.js";
24
+ } from "./chunk-ORSPTA2W.js";
25
25
  import "./chunk-IWKP55ZB.js";
26
26
  import "./chunk-F2U6KIMR.js";
27
27
  import "./chunk-YMVXTMTD.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-DW9YpJSQ.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-DW9YpJSQ.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-BE11sFys.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-BE11sFys.js';
3
3
  import { DirectChatKeyPair } from '@repo/pairing-crypto/direct-chat';
4
4
 
5
5
  type ChatModelSelection = "auto" | (string & {});
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ import {
44
44
  selectAssistantMessagesForSpeech,
45
45
  serializeToYaml,
46
46
  summarizeAssistantSpeech
47
- } from "./chunk-UMSBFCU7.js";
47
+ } from "./chunk-ORSPTA2W.js";
48
48
  import "./chunk-IWKP55ZB.js";
49
49
  import "./chunk-F2U6KIMR.js";
50
50
  import "./chunk-YMVXTMTD.js";
@@ -17,47 +17,47 @@
17
17
  {
18
18
  "name": "libggml-base.so",
19
19
  "bytes": 1110088,
20
- "sha256": "a1462e9b6092da94454b95e89f6ad5f484ad2a575cc8540ba0cf7a9e1e1738b4"
20
+ "sha256": "28d9e0b260a7959fca182331a132c7a86a0730219d3352389b332ba0673fa0d9"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "a1462e9b6092da94454b95e89f6ad5f484ad2a575cc8540ba0cf7a9e1e1738b4"
25
+ "sha256": "28d9e0b260a7959fca182331a132c7a86a0730219d3352389b332ba0673fa0d9"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "a1462e9b6092da94454b95e89f6ad5f484ad2a575cc8540ba0cf7a9e1e1738b4"
30
+ "sha256": "28d9e0b260a7959fca182331a132c7a86a0730219d3352389b332ba0673fa0d9"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "218bcbda8fd7104175977d2b4abc348fdb0408d82504e68ef8fc4afc22aff00a"
35
+ "sha256": "81ebe3a00e92fefdcb8989bc29ac830edae15e68f2ed5d264f9ef347650f05ab"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "218bcbda8fd7104175977d2b4abc348fdb0408d82504e68ef8fc4afc22aff00a"
40
+ "sha256": "81ebe3a00e92fefdcb8989bc29ac830edae15e68f2ed5d264f9ef347650f05ab"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "218bcbda8fd7104175977d2b4abc348fdb0408d82504e68ef8fc4afc22aff00a"
45
+ "sha256": "81ebe3a00e92fefdcb8989bc29ac830edae15e68f2ed5d264f9ef347650f05ab"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "411d925c74de58a3640686b56010f211d42ed7aab64c420c9e6493f733c3eae0"
50
+ "sha256": "086f5722d3f5f94f4ed423fbb38783775c376bd06cfe8486abfea130be382f9b"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "411d925c74de58a3640686b56010f211d42ed7aab64c420c9e6493f733c3eae0"
55
+ "sha256": "086f5722d3f5f94f4ed423fbb38783775c376bd06cfe8486abfea130be382f9b"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "411d925c74de58a3640686b56010f211d42ed7aab64c420c9e6493f733c3eae0"
60
+ "sha256": "086f5722d3f5f94f4ed423fbb38783775c376bd06cfe8486abfea130be382f9b"
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.67",
3
+ "version": "0.27.0-alpha.69",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",