openmates 0.29.0-alpha.4 → 0.29.0-alpha.5

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.
@@ -740,7 +740,8 @@ var DEFAULT_STANDALONE_PREFIX = "TASK";
740
740
  var PRIORITY_LEVELS = ["none", "low", "medium", "high", "urgent"];
741
741
  var LABEL_INDEX_INFO = "openmates-task-label-index-v1";
742
742
  var EXTERNAL_CHAT_INDEX_INFO = "openmates-task-external-chat-index-v1";
743
- var EXTERNAL_CHAT_PROVIDERS = ["codex"];
743
+ var EXTERNAL_CHAT_PROVIDERS = ["codex", "claude"];
744
+ var CLAUDE_SESSION_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
744
745
  var BLOCKED_REASON_CODES = [
745
746
  "needs_user_input",
746
747
  "waiting_for_approval",
@@ -773,10 +774,15 @@ function parseExternalChatRef(value) {
773
774
  const provider = value.slice(0, separator).trim().toLowerCase();
774
775
  const id = value.slice(separator + 1).trim();
775
776
  if (separator <= 0 || !id) throw new Error("--external-chat requires provider:id.");
776
- if (!EXTERNAL_CHAT_PROVIDERS.includes(provider)) throw new Error(`Unsupported external chat provider '${provider}'. Use codex.`);
777
- return { provider, id };
777
+ return assertExternalChatRef({ provider, id });
778
+ }
779
+ function assertExternalChatRef(ref) {
780
+ if (!EXTERNAL_CHAT_PROVIDERS.includes(ref.provider)) throw new Error(`Unsupported external chat provider '${ref.provider}'. Use codex or claude.`);
781
+ if (ref.provider === "claude" && !CLAUDE_SESSION_ID.test(ref.id)) throw new Error("Claude Code external chat ids must be session UUIDs (CLAUDE_CODE_SESSION_ID).");
782
+ return ref;
778
783
  }
779
784
  function externalChatLookupHash(masterKey, context) {
785
+ assertExternalChatRef(context);
780
786
  const indexKey = Buffer.from(hkdfSync2("sha256", Buffer.from(masterKey), Buffer.alloc(0), EXTERNAL_CHAT_INDEX_INFO, 32));
781
787
  return createHmac3("sha256", indexKey).update(`${context.provider}\0${context.id}`).digest("hex");
782
788
  }
@@ -1345,6 +1351,7 @@ export {
1345
1351
  taskEditLookupScope,
1346
1352
  workflowProjectionDeleteGuidance,
1347
1353
  parseExternalChatRef,
1354
+ assertExternalChatRef,
1348
1355
  externalChatLookupHash,
1349
1356
  normalizeBlockedReasonCode,
1350
1357
  normalizeTaskStatus,
@@ -65,7 +65,7 @@ import {
65
65
  unwrapApiKeyMasterKey,
66
66
  unwrapPasswordMasterKey,
67
67
  workflowProjectionDeleteGuidance
68
- } from "./chunk-5OCI636P.js";
68
+ } from "./chunk-67U3XD2B.js";
69
69
  import {
70
70
  PII_TYPE_TO_CATEGORY,
71
71
  ProjectFilePrivacy,
@@ -682,6 +682,9 @@ var CONNECTION_TIMEOUT_MS = 1e4;
682
682
  var MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
683
683
  var THREAD_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
684
684
  function codexResumeArguments(context) {
685
+ if (context.provider === "claude") {
686
+ throw new Error("This Task is linked to a Claude Code session. Tasks connect, connection and resume support Codex threads only; resume it in Claude Code with: claude --resume " + context.id);
687
+ }
685
688
  if (context.provider !== "codex") throw new Error("Codex connection requires the codex provider.");
686
689
  if (!THREAD_ID.test(context.id)) throw new Error("Codex connection requires a valid thread UUID.");
687
690
  return ["resume", context.id];
@@ -769,7 +772,7 @@ async function resumeCodexTask(context) {
769
772
  }
770
773
  function taskOwnerConflict(owner2) {
771
774
  const title = JSON.stringify(owner2.title || "Untitled chat");
772
- const location = owner2.provider === "openmates" ? `OpenMates chat ID: ${owner2.id}. View: openmates chats show ${owner2.id}` : `Codex chat ID: ${owner2.id}`;
775
+ const location = owner2.provider === "openmates" ? `OpenMates chat ID: ${owner2.id}. View: openmates chats show ${owner2.id}` : owner2.provider === "claude" ? `Claude Code session ID: ${owner2.id}` : `Codex chat ID: ${owner2.id}`;
773
776
  return `Task is already linked to ${title}. ${location}. Release that link before claiming the task in another chat.`;
774
777
  }
775
778
  function assertCodexClaimCaller(threadId, currentThread = process.env.CODEX_THREAD_ID) {
@@ -778,6 +781,17 @@ function assertCodexClaimCaller(threadId, currentThread = process.env.CODEX_THRE
778
781
  throw new Error("Only the owning Codex chat can claim a Task. Run this command inside Codex chat ID: " + threadId + ". Ordinary CLI creation can omit --external-chat to leave the Task unlinked.");
779
782
  }
780
783
  }
784
+ function assertClaudeClaimCaller(sessionId, currentSession = process.env.CLAUDE_CODE_SESSION_ID) {
785
+ if (!THREAD_ID.test(sessionId)) throw new Error("Claude Code external chat ids must be session UUIDs (CLAUDE_CODE_SESSION_ID).");
786
+ if (!currentSession || currentSession !== sessionId) {
787
+ throw new Error("Only the owning Claude Code session can claim a Task. Run this command inside Claude Code session ID: " + sessionId + " (CLAUDE_CODE_SESSION_ID). Ordinary CLI creation can omit --external-chat to leave the Task unlinked.");
788
+ }
789
+ }
790
+ function currentExternalChatCaller(environment = process.env) {
791
+ if (environment.CODEX_THREAD_ID) return { provider: "codex", id: environment.CODEX_THREAD_ID };
792
+ if (environment.CLAUDE_CODE_SESSION_ID) return { provider: "claude", id: environment.CLAUDE_CODE_SESSION_ID };
793
+ return void 0;
794
+ }
781
795
 
782
796
  // src/chatMetadataRecovery.ts
783
797
  import { randomUUID as randomUUID3 } from "crypto";
@@ -20847,7 +20861,7 @@ var OpenMatesClient = class _OpenMatesClient {
20847
20861
  return documents;
20848
20862
  }
20849
20863
  async decryptTaskContextRecord(record11, options = {}) {
20850
- const { decryptUserTask: decryptUserTask2 } = await import("./tasksCli-NXIDMIL6.js");
20864
+ const { decryptUserTask: decryptUserTask2 } = await import("./tasksCli-V2INK4CH.js");
20851
20865
  const teamId = this.resolveTeamContext(options);
20852
20866
  if (!teamId || record11.source === "workflow_run") return decryptUserTask2(record11, this.getMasterKeyBytes());
20853
20867
  this.requireSession();
@@ -108380,7 +108394,8 @@ async function handleTasks(client2, subcommand, rest, flags, redactor) {
108380
108394
  printTaskOutput(task, flags);
108381
108395
  return;
108382
108396
  }
108383
- if (process.env.CODEX_THREAD_ID && (task.externalChat?.provider !== "codex" || task.externalChat.id !== process.env.CODEX_THREAD_ID)) {
108397
+ const caller = currentExternalChatCaller();
108398
+ if (caller && (task.externalChat?.provider !== caller.provider || task.externalChat.id !== caller.id)) {
108384
108399
  if (task.primaryChatId) {
108385
108400
  const owner2 = await client2.getChatMetadata(task.primaryChatId, scope2);
108386
108401
  throw new Error(taskOwnerConflict({ provider: "openmates", id: owner2.id, title: owner2.title }));
@@ -108794,11 +108809,17 @@ async function resolveTaskScope(client2, masterKey, flags, scope2) {
108794
108809
  if (planId) planId = (await requiredResolvedPlan(client2, masterKey, planId, { teamId: scope2.teamId, personal: scope2.personal }, "scope")).planId;
108795
108810
  return { ...scope2, chatId, projectId, planId };
108796
108811
  }
108812
+ function claimClaudeExternalChat(context) {
108813
+ assertClaudeClaimCaller(context.id);
108814
+ return { provider: "claude", id: context.id, title: context.title?.trim() || "Claude Code session" };
108815
+ }
108797
108816
  async function resolveTaskCreateOptions(client2, masterKey, flags, input) {
108798
108817
  if (input.externalChat?.provider === "codex") {
108799
108818
  assertCodexClaimCaller(input.externalChat.id);
108800
108819
  const connection = await readCodexThread(input.externalChat.id);
108801
108820
  input = { ...input, assign: input.assign ?? "codex", externalChat: { provider: "codex", id: connection.id, title: connection.title } };
108821
+ } else if (input.externalChat?.provider === "claude") {
108822
+ input = { ...input, externalChat: claimClaudeExternalChat(input.externalChat) };
108802
108823
  }
108803
108824
  const chatId = input.chatId ? (await client2.resolveChatKeyForContext(input.chatId, teamContextFromFlags(flags))).chatId : input.chatId;
108804
108825
  const projectIds = [];
@@ -108813,6 +108834,8 @@ async function resolveTaskUpdateOptions(client2, masterKey, flags, input) {
108813
108834
  assertCodexClaimCaller(input.externalChat.id);
108814
108835
  const connection = await readCodexThread(input.externalChat.id);
108815
108836
  input = { ...input, externalChat: { provider: "codex", id: connection.id, title: connection.title } };
108837
+ } else if (input.externalChat?.provider === "claude") {
108838
+ input = { ...input, externalChat: claimClaudeExternalChat(input.externalChat) };
108816
108839
  }
108817
108840
  const chatId = input.chatId ? (await client2.resolveChatKeyForContext(input.chatId, teamContextFromFlags(flags))).chatId : input.chatId;
108818
108841
  const projectIds = input.projectIds ? await Promise.all(input.projectIds.map(async (projectId) => (await requiredResolvedProject(client2, masterKey, projectId, flags)).projectId)) : input.projectIds;
@@ -120162,15 +120185,15 @@ Examples:
120162
120185
  }
120163
120186
  function printTasksHelp() {
120164
120187
  console.log(`Tasks commands:
120165
- openmates tasks list [--status <status>] [--chat <id>|--external-chat codex:<thread-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120166
- openmates tasks board [--chat <id>|--external-chat codex:<thread-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120188
+ openmates tasks list [--status <status>] [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120189
+ openmates tasks board [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120167
120190
  openmates tasks show <task-id|short-id> [--json]
120168
120191
  openmates tasks <task-id|short-id> add-to-project <project-id> [--json]
120169
120192
  openmates tasks <task-id|short-id> remove-from-project <project-id> [--json]
120170
120193
  openmates tasks history <task-id|short-id> [--limit <n>] [--json]
120171
120194
  openmates tasks restore <task-id|short-id> --entry <history-entry-id> [--state before|after] [--json]
120172
- openmates tasks create --title <title> [--description <text>] [--assign user|openmates|external-ai|unassigned] [--chat <id>|--external-chat codex:<thread-uuid> [--external-chat-title <title>]] [--project <id>] [--label <label>] [--priority <level>] [--status <status>] [--due <date>] [--json]
120173
- openmates tasks edit <task-id|short-id> [--title <title>] [--description <text>] [--chat <id>|--external-chat codex:<thread-uuid> [--external-chat-title <title>]] [--label <label>] [--add-label <label>] [--remove-label <label>] [--priority <level>] [--assign user|openmates|external-ai|unassigned] [--status <status>] [--json]
120195
+ openmates tasks create --title <title> [--description <text>] [--assign user|openmates|external-ai|unassigned] [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid> [--external-chat-title <title>]] [--project <id>] [--label <label>] [--priority <level>] [--status <status>] [--due <date>] [--json]
120196
+ openmates tasks edit <task-id|short-id> [--title <title>] [--description <text>] [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid> [--external-chat-title <title>]] [--label <label>] [--add-label <label>] [--remove-label <label>] [--priority <level>] [--assign user|openmates|external-ai|unassigned] [--status <status>] [--json]
120174
120197
  openmates tasks delete <task-id|short-id> --confirm [--json]
120175
120198
  openmates tasks start <task-id|short-id> [--json]
120176
120199
  openmates tasks status [<task-id|short-id>] [--json]
@@ -120192,6 +120215,10 @@ function printTasksHelp() {
120192
120215
 
120193
120216
  Context: use --personal or --team <team-id> for Task create, list, show, and delete.
120194
120217
 
120218
+ External chats: codex:<thread-uuid> links a Codex thread (CODEX_THREAD_ID); claude:<session-uuid>
120219
+ links a Claude Code session and must run inside that session (CLAUDE_CODE_SESSION_ID).
120220
+ Claude links do not change assignment; connect, connection and resume support Codex only.
120221
+
120195
120222
  Chat-scoped aliases:
120196
120223
  openmates chats <chat-id> tasks list
120197
120224
  openmates chats <chat-id> tasks board
@@ -974,6 +974,8 @@ interface ProtonLocalConnectorRegistration {
974
974
  }
975
975
 
976
976
  declare const PRIORITY_LEVELS: readonly ["none", "low", "medium", "high", "urgent"];
977
+ declare const EXTERNAL_CHAT_PROVIDERS: readonly ["codex", "claude"];
978
+ type ExternalChatProvider = typeof EXTERNAL_CHAT_PROVIDERS[number];
977
979
  type TaskPriorityLevel = typeof PRIORITY_LEVELS[number];
978
980
  interface DecryptedUserTask {
979
981
  taskId: string;
@@ -1077,7 +1079,7 @@ interface TaskUpdateOptions {
1077
1079
  slug?: string;
1078
1080
  }
1079
1081
  interface ExternalChatRef {
1080
- provider: "codex";
1082
+ provider: ExternalChatProvider;
1081
1083
  id: string;
1082
1084
  }
1083
1085
  interface ExternalChatContext extends ExternalChatRef {
@@ -1633,7 +1635,7 @@ interface UserTaskRecord {
1633
1635
  assignee_identity?: UserTaskAssigneeIdentity | null;
1634
1636
  assignee_hash?: string | null;
1635
1637
  primary_chat_id?: string | null;
1636
- external_chat_provider?: "codex" | null;
1638
+ external_chat_provider?: "codex" | "claude" | null;
1637
1639
  external_chat_lookup_hash?: string | null;
1638
1640
  encrypted_external_chat_id?: string | null;
1639
1641
  encrypted_external_chat_title?: string | null;
@@ -3615,7 +3617,7 @@ declare class OpenMatesClient {
3615
3617
  chatId?: string;
3616
3618
  projectId?: string;
3617
3619
  labelHashes?: string[];
3618
- externalChatProvider?: "codex";
3620
+ externalChatProvider?: "codex" | "claude";
3619
3621
  externalChatLookupHash?: string;
3620
3622
  priority?: number;
3621
3623
  limit?: number;
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export { al as ImagesAiDetectionClassification, am as ImagesAiDetectionSummary, aL as assertTrustedAccountCommandAllowed, aM as assertTrustedAccountGuardEnvironment, aD as buildImagesAiDetectionSummary, aN as buildProjectDefaultFocus, aO as buildTravelConnectionsRequest, aE as classifyImagesAiDetection, aP as extractExplicitProjectMentions, aG as formatImagesAiDetectionLabel, aH as getExtForLang, aQ as handleWiki, aR as printWhoAmI, aS as readRootProjectInstructions, aT as renderProjectReadApprovalRequest, aU as renderProjectWriteApprovalRequest, aV as renderRemoteCommandEvent, aW as requireExactConfirmation, aX as resolveProjectContext, aK as serializeToYaml, aY as shouldRequireTrustedAccountGuard, aZ as waitForSafeE2ETotpWindow, a_ as waitForWorkflowRun } from './cli-fJnu1wIs.js';
2
+ export { al as ImagesAiDetectionClassification, am as ImagesAiDetectionSummary, aL as assertTrustedAccountCommandAllowed, aM as assertTrustedAccountGuardEnvironment, aD as buildImagesAiDetectionSummary, aN as buildProjectDefaultFocus, aO as buildTravelConnectionsRequest, aE as classifyImagesAiDetection, aP as extractExplicitProjectMentions, aG as formatImagesAiDetectionLabel, aH as getExtForLang, aQ as handleWiki, aR as printWhoAmI, aS as readRootProjectInstructions, aT as renderProjectReadApprovalRequest, aU as renderProjectWriteApprovalRequest, aV as renderRemoteCommandEvent, aW as requireExactConfirmation, aX as resolveProjectContext, aK as serializeToYaml, aY as shouldRequireTrustedAccountGuard, aZ as waitForSafeE2ETotpWindow, a_ as waitForWorkflowRun } from './cli-CcjnGBnI.js';
3
3
  import '@repo/pairing-crypto/direct-chat';
package/dist/cli.js CHANGED
@@ -21,9 +21,9 @@ import {
21
21
  shouldRequireTrustedAccountGuard,
22
22
  waitForSafeE2ETotpWindow,
23
23
  waitForWorkflowRun
24
- } from "./chunk-TETCOYG2.js";
24
+ } from "./chunk-XS5ZINO3.js";
25
25
  import "./chunk-IWKP55ZB.js";
26
- import "./chunk-5OCI636P.js";
26
+ import "./chunk-67U3XD2B.js";
27
27
  import "./chunk-QRCAXXAL.js";
28
28
  import "./chunk-7EFG6NPD.js";
29
29
  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-fJnu1wIs.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 CliTurnMetadata, a9 as DecryptedDraft, aa as DecryptedEmbed, ab as DecryptedMemoryEntry, ac as DecryptedMessage, ad as DecryptedNewChatSuggestion, ae as DocsFile, af as DocsFolder, ag as DocsSearchResult, ah as DocsTree, ai as EncryptedDraft, aj as GiftCardBankTransferStatus, ak as INTEREST_TAG_IDS, al as ImagesAiDetectionClassification, am as ImagesAiDetectionSummary, an as InterestTagId, ao as MATE_NAMES, ap as MEMORY_TYPE_REGISTRY, aq as MemoryFieldDef, ar as MemoryTypeDef, as as OpenMatesClient, at as OpenMatesClientOptions, au as SyncCache, av as TopicPreferencesPayload, aw as TotpSetupStartResult, ax as WorkflowEdge, ay as WorkflowNodeRun, az as WorkflowNodeType, aA as WorkflowReturnedOutputReference, aB as WorkflowRunContentStorage, aC as WorkflowRunRouting, aD as buildImagesAiDetectionSummary, aE as classifyImagesAiDetection, aF as deriveAppUrl, aG as formatImagesAiDetectionLabel, aH as getExtForLang, aI as normalizeInterestTagIds, aJ as reconcileAuthoritativeChats, aK as serializeToYaml } from './cli-fJnu1wIs.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-CcjnGBnI.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 CliTurnMetadata, a9 as DecryptedDraft, aa as DecryptedEmbed, ab as DecryptedMemoryEntry, ac as DecryptedMessage, ad as DecryptedNewChatSuggestion, ae as DocsFile, af as DocsFolder, ag as DocsSearchResult, ah as DocsTree, ai as EncryptedDraft, aj as GiftCardBankTransferStatus, ak as INTEREST_TAG_IDS, al as ImagesAiDetectionClassification, am as ImagesAiDetectionSummary, an as InterestTagId, ao as MATE_NAMES, ap as MEMORY_TYPE_REGISTRY, aq as MemoryFieldDef, ar as MemoryTypeDef, as as OpenMatesClient, at as OpenMatesClientOptions, au as SyncCache, av as TopicPreferencesPayload, aw as TotpSetupStartResult, ax as WorkflowEdge, ay as WorkflowNodeRun, az as WorkflowNodeType, aA as WorkflowReturnedOutputReference, aB as WorkflowRunContentStorage, aC as WorkflowRunRouting, aD as buildImagesAiDetectionSummary, aE as classifyImagesAiDetection, aF as deriveAppUrl, aG as formatImagesAiDetectionLabel, aH as getExtForLang, aI as normalizeInterestTagIds, aJ as reconcileAuthoritativeChats, aK as serializeToYaml } from './cli-CcjnGBnI.js';
3
3
  import { DirectChatKeyPair } from '@repo/pairing-crypto/direct-chat';
4
4
 
5
5
  type ChatModelSelection = "auto" | (string & {});
package/dist/index.js CHANGED
@@ -46,9 +46,9 @@ import {
46
46
  selectAssistantMessagesForSpeech,
47
47
  serializeToYaml,
48
48
  summarizeAssistantSpeech
49
- } from "./chunk-TETCOYG2.js";
49
+ } from "./chunk-XS5ZINO3.js";
50
50
  import "./chunk-IWKP55ZB.js";
51
- import "./chunk-5OCI636P.js";
51
+ import "./chunk-67U3XD2B.js";
52
52
  import "./chunk-QRCAXXAL.js";
53
53
  import "./chunk-7EFG6NPD.js";
54
54
  import "./chunk-TMYEFC7M.js";
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  TASK_STATUSES,
3
+ assertExternalChatRef,
3
4
  buildBlockUserTaskInput,
4
5
  buildCreateTaskActivityInput,
5
6
  buildCreateUserTaskInput,
@@ -30,9 +31,10 @@ import {
30
31
  taskLookupScopes,
31
32
  taskPriorityLevel,
32
33
  workflowProjectionDeleteGuidance
33
- } from "./chunk-5OCI636P.js";
34
+ } from "./chunk-67U3XD2B.js";
34
35
  export {
35
36
  TASK_STATUSES,
37
+ assertExternalChatRef,
36
38
  buildBlockUserTaskInput,
37
39
  buildCreateTaskActivityInput,
38
40
  buildCreateUserTaskInput,
@@ -17,47 +17,47 @@
17
17
  {
18
18
  "name": "libggml-base.so",
19
19
  "bytes": 1110088,
20
- "sha256": "f0f233129803322cd2664ef4009ab151e3a221870681237a488e177ebb48318f"
20
+ "sha256": "842ddb2c926c1670227964d4bafa0618383d8dfb56ff9b92ea849d1a4778d8e1"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "f0f233129803322cd2664ef4009ab151e3a221870681237a488e177ebb48318f"
25
+ "sha256": "842ddb2c926c1670227964d4bafa0618383d8dfb56ff9b92ea849d1a4778d8e1"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "f0f233129803322cd2664ef4009ab151e3a221870681237a488e177ebb48318f"
30
+ "sha256": "842ddb2c926c1670227964d4bafa0618383d8dfb56ff9b92ea849d1a4778d8e1"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
35
+ "sha256": "006e079accf4e7379f60215184451c2aadfa941b878078e734fbd6aa6ddd6344"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
40
+ "sha256": "006e079accf4e7379f60215184451c2aadfa941b878078e734fbd6aa6ddd6344"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
45
+ "sha256": "006e079accf4e7379f60215184451c2aadfa941b878078e734fbd6aa6ddd6344"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
50
+ "sha256": "ce9b1164ac60ed2d5188bc57b1f71c53f940ed024f2f27cbd39242a0fcb2e2e5"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
55
+ "sha256": "ce9b1164ac60ed2d5188bc57b1f71c53f940ed024f2f27cbd39242a0fcb2e2e5"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
60
+ "sha256": "ce9b1164ac60ed2d5188bc57b1f71c53f940ed024f2f27cbd39242a0fcb2e2e5"
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.29.0-alpha.4",
3
+ "version": "0.29.0-alpha.5",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "test:unit:benchmark": "node --test --experimental-strip-types --loader ./tests/loader.mjs src/__tests__/benchmark.test.ts",
57
57
  "test": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/wiki.test.ts tests/privacy.test.ts tests/crypto.test.ts tests/cryptoBatch.test.ts tests/clientStartup.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/tuiTeamsSettings.test.ts tests/tuiTeamChat.test.ts tests/tuiExampleContinuation.test.ts tests/tuiWorkflowInteraction.test.ts tests/tuiWorkspaceInteraction.test.ts tests/tuiLayout.test.ts tests/tuiTerminal.test.ts tests/tuiRenderCache.test.ts tests/tuiStreamingRender.test.ts tests/tuiStreamingSend.test.ts tests/tuiTerminalFrame.test.ts tests/tuiPrototypeBridge.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/tuiAppsRequests.test.ts tests/tuiHome.test.ts tests/tuiMentionCatalog.test.ts tests/tuiMentions.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/tuiTaskList.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 tests/sdk-teams.test.ts tests/team-ai-trigger.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 && npm run test:unit:task-pagination && npm run test:unit:chat-preparation && npm run test:unit:direct-chats",
58
58
  "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",
59
- "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
+ "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/cliTaskClaudeLink.test.ts tests/codexConnection.test.ts tests/remoteSources.test.ts tests/remoteAccess.test.ts tests/remoteAccessCrypto.test.ts",
60
60
  "test:unit:sdk-sidebar": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/sdk-chat-sidebar.test.ts",
61
61
  "test:unit:task-pagination": "node --test --experimental-strip-types --loader ./tests/loader.mjs tests/task-pagination.test.ts tests/taskDiscovery.test.ts",
62
62
  "benchmark:tui": "node --experimental-strip-types scripts/tui-render-benchmark.mjs",