openmates 0.29.0-alpha.4 → 0.29.0-alpha.6

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OpenMates contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -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();
@@ -61435,6 +61449,9 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
61435
61449
  },
61436
61450
  remember: {
61437
61451
  text: "Remember"
61452
+ },
61453
+ more_options: {
61454
+ text: "Show more options"
61438
61455
  }
61439
61456
  },
61440
61457
  explain_in_new_chat: {
@@ -108380,7 +108397,8 @@ async function handleTasks(client2, subcommand, rest, flags, redactor) {
108380
108397
  printTaskOutput(task, flags);
108381
108398
  return;
108382
108399
  }
108383
- if (process.env.CODEX_THREAD_ID && (task.externalChat?.provider !== "codex" || task.externalChat.id !== process.env.CODEX_THREAD_ID)) {
108400
+ const caller = currentExternalChatCaller();
108401
+ if (caller && (task.externalChat?.provider !== caller.provider || task.externalChat.id !== caller.id)) {
108384
108402
  if (task.primaryChatId) {
108385
108403
  const owner2 = await client2.getChatMetadata(task.primaryChatId, scope2);
108386
108404
  throw new Error(taskOwnerConflict({ provider: "openmates", id: owner2.id, title: owner2.title }));
@@ -108794,11 +108812,17 @@ async function resolveTaskScope(client2, masterKey, flags, scope2) {
108794
108812
  if (planId) planId = (await requiredResolvedPlan(client2, masterKey, planId, { teamId: scope2.teamId, personal: scope2.personal }, "scope")).planId;
108795
108813
  return { ...scope2, chatId, projectId, planId };
108796
108814
  }
108815
+ function claimClaudeExternalChat(context) {
108816
+ assertClaudeClaimCaller(context.id);
108817
+ return { provider: "claude", id: context.id, title: context.title?.trim() || "Claude Code session" };
108818
+ }
108797
108819
  async function resolveTaskCreateOptions(client2, masterKey, flags, input) {
108798
108820
  if (input.externalChat?.provider === "codex") {
108799
108821
  assertCodexClaimCaller(input.externalChat.id);
108800
108822
  const connection = await readCodexThread(input.externalChat.id);
108801
108823
  input = { ...input, assign: input.assign ?? "codex", externalChat: { provider: "codex", id: connection.id, title: connection.title } };
108824
+ } else if (input.externalChat?.provider === "claude") {
108825
+ input = { ...input, externalChat: claimClaudeExternalChat(input.externalChat) };
108802
108826
  }
108803
108827
  const chatId = input.chatId ? (await client2.resolveChatKeyForContext(input.chatId, teamContextFromFlags(flags))).chatId : input.chatId;
108804
108828
  const projectIds = [];
@@ -108813,6 +108837,8 @@ async function resolveTaskUpdateOptions(client2, masterKey, flags, input) {
108813
108837
  assertCodexClaimCaller(input.externalChat.id);
108814
108838
  const connection = await readCodexThread(input.externalChat.id);
108815
108839
  input = { ...input, externalChat: { provider: "codex", id: connection.id, title: connection.title } };
108840
+ } else if (input.externalChat?.provider === "claude") {
108841
+ input = { ...input, externalChat: claimClaudeExternalChat(input.externalChat) };
108816
108842
  }
108817
108843
  const chatId = input.chatId ? (await client2.resolveChatKeyForContext(input.chatId, teamContextFromFlags(flags))).chatId : input.chatId;
108818
108844
  const projectIds = input.projectIds ? await Promise.all(input.projectIds.map(async (projectId) => (await requiredResolvedProject(client2, masterKey, projectId, flags)).projectId)) : input.projectIds;
@@ -120162,15 +120188,15 @@ Examples:
120162
120188
  }
120163
120189
  function printTasksHelp() {
120164
120190
  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]
120191
+ openmates tasks list [--status <status>] [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120192
+ openmates tasks board [--chat <id>|--external-chat codex:<thread-uuid>|claude:<session-uuid>] [--project <id>] [--label <label>] [--priority <level>] [--json]
120167
120193
  openmates tasks show <task-id|short-id> [--json]
120168
120194
  openmates tasks <task-id|short-id> add-to-project <project-id> [--json]
120169
120195
  openmates tasks <task-id|short-id> remove-from-project <project-id> [--json]
120170
120196
  openmates tasks history <task-id|short-id> [--limit <n>] [--json]
120171
120197
  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]
120198
+ 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]
120199
+ 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
120200
  openmates tasks delete <task-id|short-id> --confirm [--json]
120175
120201
  openmates tasks start <task-id|short-id> [--json]
120176
120202
  openmates tasks status [<task-id|short-id>] [--json]
@@ -120192,6 +120218,10 @@ function printTasksHelp() {
120192
120218
 
120193
120219
  Context: use --personal or --team <team-id> for Task create, list, show, and delete.
120194
120220
 
120221
+ External chats: codex:<thread-uuid> links a Codex thread (CODEX_THREAD_ID); claude:<session-uuid>
120222
+ links a Claude Code session and must run inside that session (CLAUDE_CODE_SESSION_ID).
120223
+ Claude links do not change assignment; connect, connection and resume support Codex only.
120224
+
120195
120225
  Chat-scoped aliases:
120196
120226
  openmates chats <chat-id> tasks list
120197
120227
  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-VTGCYH26.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-VTGCYH26.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": "3988f397114718bb75d4106482f8d3ba526976f9350cc5cc3f2a0e57d2128505"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "f0f233129803322cd2664ef4009ab151e3a221870681237a488e177ebb48318f"
25
+ "sha256": "3988f397114718bb75d4106482f8d3ba526976f9350cc5cc3f2a0e57d2128505"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "f0f233129803322cd2664ef4009ab151e3a221870681237a488e177ebb48318f"
30
+ "sha256": "3988f397114718bb75d4106482f8d3ba526976f9350cc5cc3f2a0e57d2128505"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
35
+ "sha256": "0907b133d978497983b6970ed58aebb3376a025f81d63eaff15ffff296f7158f"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
40
+ "sha256": "0907b133d978497983b6970ed58aebb3376a025f81d63eaff15ffff296f7158f"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "24bab8926dce3f62456f0e5c37ff4854267fdc35869b9b58677d26e6101c1fd7"
45
+ "sha256": "0907b133d978497983b6970ed58aebb3376a025f81d63eaff15ffff296f7158f"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
50
+ "sha256": "5f4e769a1c8a1314982ab1732014581745e08bea960f94107c44afdc0e13d17b"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
55
+ "sha256": "5f4e769a1c8a1314982ab1732014581745e08bea960f94107c44afdc0e13d17b"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "f8858b839633cbf0c6ef60035bbfa990312c0e9ccdc2959bf9d6066eac8e934c"
60
+ "sha256": "5f4e769a1c8a1314982ab1732014581745e08bea960f94107c44afdc0e13d17b"
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.6",
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",