@elizaos/shared 2.0.0-alpha.215 → 2.0.0-alpha.333
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/app-hero-art.d.ts +13 -0
- package/app-hero-art.d.ts.map +1 -0
- package/app-hero-art.js +378 -0
- package/app-hero-art.js.map +1 -0
- package/config/types.agent-defaults.d.ts +2 -23
- package/config/types.agent-defaults.d.ts.map +1 -1
- package/config/types.eliza.d.ts +1 -1
- package/config/types.messages.d.ts +3 -3
- package/contracts/apps.d.ts +3 -2
- package/contracts/apps.d.ts.map +1 -1
- package/contracts/apps.js.map +1 -1
- package/contracts/index.d.ts +1 -1
- package/contracts/index.d.ts.map +1 -1
- package/contracts/index.js +1 -1
- package/contracts/index.js.map +1 -1
- package/contracts/lifeops-extensions.d.ts +2 -0
- package/contracts/lifeops-extensions.d.ts.map +1 -1
- package/contracts/lifeops-extensions.js.map +1 -1
- package/contracts/lifeops.d.ts +791 -240
- package/contracts/lifeops.d.ts.map +1 -1
- package/contracts/lifeops.js +121 -18
- package/contracts/lifeops.js.map +1 -1
- package/contracts/onboarding.d.ts +1 -51
- package/contracts/onboarding.d.ts.map +1 -1
- package/contracts/onboarding.js +1 -1
- package/contracts/onboarding.js.map +1 -1
- package/contracts/service-routing.d.ts.map +1 -1
- package/contracts/service-routing.js +1 -5
- package/contracts/service-routing.js.map +1 -1
- package/contracts/wallet.d.ts +117 -55
- package/contracts/wallet.d.ts.map +1 -1
- package/contracts/wallet.js.map +1 -1
- package/eliza-core-roles.d.ts.map +1 -1
- package/eliza-core-roles.js +2 -6
- package/eliza-core-roles.js.map +1 -1
- package/i18n/generated/validation-keyword-data.d.ts +13 -0
- package/i18n/generated/validation-keyword-data.d.ts.map +1 -1
- package/i18n/generated/validation-keyword-data.js +13 -0
- package/i18n/generated/validation-keyword-data.js.map +1 -1
- package/i18n/keyword-matching.d.ts +2 -2
- package/i18n/keyword-matching.js +2 -2
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +27 -7
- package/recent-messages-state.d.ts +10 -0
- package/recent-messages-state.d.ts.map +1 -0
- package/recent-messages-state.js +12 -0
- package/recent-messages-state.js.map +1 -0
- package/type-guards.d.ts +29 -0
- package/type-guards.d.ts.map +1 -0
- package/type-guards.js +44 -0
- package/type-guards.js.map +1 -0
package/contracts/lifeops.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type LifeOpsWorkflowTriggerType = (typeof LIFEOPS_WORKFLOW_TRIGGER_TYPES)
|
|
|
24
24
|
* publishes matching occurrences to `runDueEventWorkflows`, and — optionally —
|
|
25
25
|
* a filter shape under {@link LifeOpsEventFilters}.
|
|
26
26
|
*/
|
|
27
|
-
export declare const LIFEOPS_EVENT_KINDS: readonly ["calendar.event.ended"];
|
|
27
|
+
export declare const LIFEOPS_EVENT_KINDS: readonly ["calendar.event.ended", "gmail.message.received", "gmail.thread.needs_response", "lifeops.sleep.onset_candidate", "lifeops.sleep.detected", "lifeops.sleep.ended", "lifeops.wake.observed", "lifeops.wake.confirmed", "lifeops.nap.detected", "lifeops.bedtime.imminent", "lifeops.regularity.changed"];
|
|
28
28
|
export type LifeOpsEventKind = (typeof LIFEOPS_EVENT_KINDS)[number];
|
|
29
29
|
export interface LifeOpsCalendarEventEndedFilters {
|
|
30
30
|
/** Only fire for events on these calendar ids (e.g. "primary"). */
|
|
@@ -36,9 +36,80 @@ export interface LifeOpsCalendarEventEndedFilters {
|
|
|
36
36
|
/** Only fire when one attendee email contains one of these substrings. */
|
|
37
37
|
attendeeEmailIncludesAny?: string[];
|
|
38
38
|
}
|
|
39
|
+
export interface LifeOpsGmailEventFilters {
|
|
40
|
+
/** Only fire for these Google connector grant ids. */
|
|
41
|
+
grantIds?: string[];
|
|
42
|
+
/** Only fire when the sender email/display contains one of these substrings. */
|
|
43
|
+
fromIncludesAny?: string[];
|
|
44
|
+
/** Only fire when the subject contains one of these case-insensitive substrings. */
|
|
45
|
+
subjectIncludesAny?: string[];
|
|
46
|
+
/** Only fire when at least one Gmail label id is present. */
|
|
47
|
+
labelIds?: string[];
|
|
48
|
+
/** Only fire when LifeOps classified the message/thread as needing a reply. */
|
|
49
|
+
requiresReplyNeeded?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface LifeOpsSleepOnsetCandidateFilters {
|
|
52
|
+
minConfidence?: number;
|
|
53
|
+
}
|
|
54
|
+
export interface LifeOpsSleepDetectedFilters {
|
|
55
|
+
minConfidence?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface LifeOpsSleepEndedFilters {
|
|
58
|
+
minConfidence?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface LifeOpsWakeObservedFilters {
|
|
61
|
+
offsetMinutes?: number;
|
|
62
|
+
minConfidence?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface LifeOpsWakeConfirmedFilters {
|
|
65
|
+
offsetMinutes?: number;
|
|
66
|
+
minConfidence?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface LifeOpsNapDetectedFilters {
|
|
69
|
+
minConfidence?: number;
|
|
70
|
+
maxDurationMinutes?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface LifeOpsBedtimeImminentFilters {
|
|
73
|
+
minutesBefore?: number;
|
|
74
|
+
minConfidence?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface LifeOpsRegularityChangedFilters {
|
|
77
|
+
/** Fires when regularity class transitions into this value. */
|
|
78
|
+
becomes?: LifeOpsRegularityClass;
|
|
79
|
+
}
|
|
39
80
|
export type LifeOpsEventFilters = {
|
|
40
81
|
kind: "calendar.event.ended";
|
|
41
82
|
filters?: LifeOpsCalendarEventEndedFilters;
|
|
83
|
+
} | {
|
|
84
|
+
kind: "gmail.message.received";
|
|
85
|
+
filters?: LifeOpsGmailEventFilters;
|
|
86
|
+
} | {
|
|
87
|
+
kind: "gmail.thread.needs_response";
|
|
88
|
+
filters?: LifeOpsGmailEventFilters;
|
|
89
|
+
} | {
|
|
90
|
+
kind: "lifeops.sleep.onset_candidate";
|
|
91
|
+
filters?: LifeOpsSleepOnsetCandidateFilters;
|
|
92
|
+
} | {
|
|
93
|
+
kind: "lifeops.sleep.detected";
|
|
94
|
+
filters?: LifeOpsSleepDetectedFilters;
|
|
95
|
+
} | {
|
|
96
|
+
kind: "lifeops.sleep.ended";
|
|
97
|
+
filters?: LifeOpsSleepEndedFilters;
|
|
98
|
+
} | {
|
|
99
|
+
kind: "lifeops.wake.observed";
|
|
100
|
+
filters?: LifeOpsWakeObservedFilters;
|
|
101
|
+
} | {
|
|
102
|
+
kind: "lifeops.wake.confirmed";
|
|
103
|
+
filters?: LifeOpsWakeConfirmedFilters;
|
|
104
|
+
} | {
|
|
105
|
+
kind: "lifeops.nap.detected";
|
|
106
|
+
filters?: LifeOpsNapDetectedFilters;
|
|
107
|
+
} | {
|
|
108
|
+
kind: "lifeops.bedtime.imminent";
|
|
109
|
+
filters?: LifeOpsBedtimeImminentFilters;
|
|
110
|
+
} | {
|
|
111
|
+
kind: "lifeops.regularity.changed";
|
|
112
|
+
filters?: LifeOpsRegularityChangedFilters;
|
|
42
113
|
};
|
|
43
114
|
export declare const LIFEOPS_NEGOTIATION_STATES: readonly ["initiated", "proposals_sent", "awaiting_response", "confirmed", "cancelled"];
|
|
44
115
|
export type LifeOpsNegotiationState = (typeof LIFEOPS_NEGOTIATION_STATES)[number];
|
|
@@ -83,9 +154,9 @@ export declare const LIFEOPS_CONNECTOR_EXECUTION_TARGETS: readonly ["local", "cl
|
|
|
83
154
|
export type LifeOpsConnectorExecutionTarget = (typeof LIFEOPS_CONNECTOR_EXECUTION_TARGETS)[number];
|
|
84
155
|
export declare const LIFEOPS_CONNECTOR_SOURCES_OF_TRUTH: readonly ["local_storage", "cloud_connection"];
|
|
85
156
|
export type LifeOpsConnectorSourceOfTruth = (typeof LIFEOPS_CONNECTOR_SOURCES_OF_TRUTH)[number];
|
|
86
|
-
export declare const LIFEOPS_GOOGLE_CAPABILITIES: readonly ["google.basic_identity", "google.calendar.read", "google.calendar.write", "google.gmail.triage", "google.gmail.send"];
|
|
157
|
+
export declare const LIFEOPS_GOOGLE_CAPABILITIES: readonly ["google.basic_identity", "google.calendar.read", "google.calendar.write", "google.gmail.triage", "google.gmail.send", "google.gmail.manage"];
|
|
87
158
|
export type LifeOpsGoogleCapability = (typeof LIFEOPS_GOOGLE_CAPABILITIES)[number];
|
|
88
|
-
export declare const LIFEOPS_X_CAPABILITIES: readonly ["x.read", "x.write"];
|
|
159
|
+
export declare const LIFEOPS_X_CAPABILITIES: readonly ["x.read", "x.write", "x.dm.read", "x.dm.write"];
|
|
89
160
|
export type LifeOpsXCapability = (typeof LIFEOPS_X_CAPABILITIES)[number];
|
|
90
161
|
export declare const LIFEOPS_SIGNAL_CAPABILITIES: readonly ["signal.read", "signal.send"];
|
|
91
162
|
export type LifeOpsSignalCapability = (typeof LIFEOPS_SIGNAL_CAPABILITIES)[number];
|
|
@@ -94,9 +165,9 @@ export type LifeOpsDiscordCapability = (typeof LIFEOPS_DISCORD_CAPABILITIES)[num
|
|
|
94
165
|
export declare const LIFEOPS_TELEGRAM_CAPABILITIES: readonly ["telegram.read", "telegram.send"];
|
|
95
166
|
export type LifeOpsTelegramCapability = (typeof LIFEOPS_TELEGRAM_CAPABILITIES)[number];
|
|
96
167
|
export declare function capabilitiesForSide<T extends string>(allCapabilities: readonly T[], side: LifeOpsConnectorSide): T[];
|
|
97
|
-
export declare const LIFEOPS_REMINDER_CHANNELS: readonly ["in_app", "sms", "voice", "telegram", "discord", "signal", "whatsapp", "imessage"];
|
|
168
|
+
export declare const LIFEOPS_REMINDER_CHANNELS: readonly ["in_app", "sms", "voice", "telegram", "discord", "signal", "whatsapp", "imessage", "email", "push"];
|
|
98
169
|
export type LifeOpsReminderChannel = (typeof LIFEOPS_REMINDER_CHANNELS)[number];
|
|
99
|
-
export declare const LIFEOPS_CHANNEL_TYPES: readonly ["in_app", "sms", "voice", "telegram", "discord", "signal", "whatsapp", "imessage", "x", "browser"];
|
|
170
|
+
export declare const LIFEOPS_CHANNEL_TYPES: readonly ["in_app", "sms", "voice", "telegram", "discord", "signal", "whatsapp", "imessage", "x", "browser", "email", "push"];
|
|
100
171
|
export type LifeOpsChannelType = (typeof LIFEOPS_CHANNEL_TYPES)[number];
|
|
101
172
|
export declare const LIFEOPS_PRIVACY_CLASSES: readonly ["private", "shared", "public"];
|
|
102
173
|
export type LifeOpsPrivacyClass = (typeof LIFEOPS_PRIVACY_CLASSES)[number];
|
|
@@ -117,9 +188,9 @@ export type LifeOpsReminderIntensityCompatibility = (typeof LIFEOPS_REMINDER_INT
|
|
|
117
188
|
export type LifeOpsReminderIntensityInput = LifeOpsReminderIntensity | LifeOpsReminderIntensityCompatibility;
|
|
118
189
|
export declare const LIFEOPS_REMINDER_PREFERENCE_SOURCES: readonly ["default", "global_policy", "definition_metadata"];
|
|
119
190
|
export type LifeOpsReminderPreferenceSource = (typeof LIFEOPS_REMINDER_PREFERENCE_SOURCES)[number];
|
|
120
|
-
export declare const LIFEOPS_OWNER_TYPES: readonly ["definition", "occurrence", "goal", "workflow", "calendar_event", "gmail_message", "connector", "channel_policy", "browser_session"];
|
|
191
|
+
export declare const LIFEOPS_OWNER_TYPES: readonly ["definition", "occurrence", "goal", "workflow", "calendar_event", "gmail_message", "connector", "channel_policy", "browser_session", "circadian_state"];
|
|
121
192
|
export type LifeOpsOwnerType = (typeof LIFEOPS_OWNER_TYPES)[number];
|
|
122
|
-
export declare const LIFEOPS_AUDIT_EVENT_TYPES: readonly ["definition_created", "definition_updated", "definition_deleted", "occurrence_generated", "occurrence_completed", "occurrence_skipped", "occurrence_snoozed", "goal_created", "goal_updated", "goal_deleted", "goal_reviewed", "calendar_event_created", "calendar_event_updated", "calendar_event_deleted", "gmail_triage_synced", "gmail_reply_drafted", "gmail_reply_sent", "gmail_message_sent", "reminder_due", "reminder_delivered", "reminder_blocked", "reminder_escalation_started", "reminder_escalation_resolved", "workflow_created", "workflow_updated", "workflow_run", "connector_grant_updated", "channel_policy_updated", "browser_session_created", "browser_session_updated", "x_post_sent", "seeding_offered"];
|
|
193
|
+
export declare const LIFEOPS_AUDIT_EVENT_TYPES: readonly ["definition_created", "definition_updated", "definition_deleted", "occurrence_generated", "occurrence_completed", "occurrence_skipped", "occurrence_snoozed", "goal_created", "goal_updated", "goal_deleted", "goal_reviewed", "calendar_event_created", "calendar_event_updated", "calendar_event_deleted", "gmail_triage_synced", "gmail_reply_drafted", "gmail_reply_sent", "gmail_message_sent", "reminder_due", "reminder_delivered", "reminder_blocked", "reminder_escalation_started", "reminder_escalation_resolved", "workflow_created", "workflow_updated", "workflow_run", "connector_grant_updated", "channel_policy_updated", "browser_session_created", "browser_session_updated", "x_post_sent", "seeding_offered", "circadian_event_emitted", "manual_override_accepted"];
|
|
123
194
|
export type LifeOpsAuditEventType = (typeof LIFEOPS_AUDIT_EVENT_TYPES)[number];
|
|
124
195
|
export declare const LIFEOPS_ACTORS: readonly ["agent", "user", "workflow", "connector"];
|
|
125
196
|
export type LifeOpsActor = (typeof LIFEOPS_ACTORS)[number];
|
|
@@ -356,6 +427,50 @@ export type LifeOpsWorkflowSchedule = {
|
|
|
356
427
|
kind: "cron";
|
|
357
428
|
cronExpression: string;
|
|
358
429
|
timezone: string;
|
|
430
|
+
} | {
|
|
431
|
+
kind: "relative_to_wake";
|
|
432
|
+
/** Minutes offset from wake anchor (wake.confirmed). Negative = before. */
|
|
433
|
+
offsetMinutes: number;
|
|
434
|
+
timezone: string;
|
|
435
|
+
onDays?: number[];
|
|
436
|
+
/** Minimum regularity required before projecting an anchor. Default: `regular`. */
|
|
437
|
+
requireRegularityAtLeast?: LifeOpsRegularityClass;
|
|
438
|
+
/**
|
|
439
|
+
* Minutes of sustained awake state after `wake.observed` required before
|
|
440
|
+
* the workflow fires. When set, the resolver waits for a `wake.confirmed`
|
|
441
|
+
* event rather than using the raw wake anchor.
|
|
442
|
+
*/
|
|
443
|
+
stabilityWindowMinutes?: number;
|
|
444
|
+
} | {
|
|
445
|
+
kind: "relative_to_bedtime";
|
|
446
|
+
offsetMinutes: number;
|
|
447
|
+
timezone: string;
|
|
448
|
+
onDays?: number[];
|
|
449
|
+
requireRegularityAtLeast?: LifeOpsRegularityClass;
|
|
450
|
+
} | {
|
|
451
|
+
/**
|
|
452
|
+
* Fires during the canonical "morning" window anchored on the latest
|
|
453
|
+
* wake.confirmed. The window starts at `wakeConfirmedAt` and ends
|
|
454
|
+
* `windowMinutesFromWake` later (default 240). Workflow scheduler emits
|
|
455
|
+
* exactly once per morning window when the workflow becomes eligible.
|
|
456
|
+
*/
|
|
457
|
+
kind: "during_morning";
|
|
458
|
+
timezone: string;
|
|
459
|
+
windowMinutesFromWake?: number;
|
|
460
|
+
onDays?: number[];
|
|
461
|
+
requireRegularityAtLeast?: LifeOpsRegularityClass;
|
|
462
|
+
} | {
|
|
463
|
+
/**
|
|
464
|
+
* Fires during the canonical "night" window anchored on the projected
|
|
465
|
+
* bedtime target. The window starts `windowMinutesBeforeSleepTarget`
|
|
466
|
+
* before the bedtime target and ends at `sleep.detected`. Fires exactly
|
|
467
|
+
* once per night window when the workflow becomes eligible.
|
|
468
|
+
*/
|
|
469
|
+
kind: "during_night";
|
|
470
|
+
timezone: string;
|
|
471
|
+
windowMinutesBeforeSleepTarget?: number;
|
|
472
|
+
onDays?: number[];
|
|
473
|
+
requireRegularityAtLeast?: LifeOpsRegularityClass;
|
|
359
474
|
} | {
|
|
360
475
|
kind: "event";
|
|
361
476
|
eventKind: LifeOpsEventKind;
|
|
@@ -371,12 +486,6 @@ export interface LifeOpsWorkflowPermissionPolicy {
|
|
|
371
486
|
}
|
|
372
487
|
export declare const LIFEOPS_BROWSER_KINDS: readonly ["chrome", "safari"];
|
|
373
488
|
export type LifeOpsBrowserKind = (typeof LIFEOPS_BROWSER_KINDS)[number];
|
|
374
|
-
export declare const LIFEOPS_BROWSER_TRACKING_MODES: readonly ["off", "current_tab", "active_tabs"];
|
|
375
|
-
export type LifeOpsBrowserTrackingMode = (typeof LIFEOPS_BROWSER_TRACKING_MODES)[number];
|
|
376
|
-
export declare const LIFEOPS_BROWSER_SITE_ACCESS_MODES: readonly ["current_site_only", "granted_sites", "all_sites"];
|
|
377
|
-
export type LifeOpsBrowserSiteAccessMode = (typeof LIFEOPS_BROWSER_SITE_ACCESS_MODES)[number];
|
|
378
|
-
export declare const LIFEOPS_BROWSER_COMPANION_CONNECTION_STATES: readonly ["disconnected", "connected", "paused", "permission_blocked"];
|
|
379
|
-
export type LifeOpsBrowserCompanionConnectionState = (typeof LIFEOPS_BROWSER_COMPANION_CONNECTION_STATES)[number];
|
|
380
489
|
export declare const LIFEOPS_BROWSER_ACTION_KINDS: readonly ["open", "navigate", "focus_tab", "back", "forward", "reload", "click", "type", "submit", "read_page", "extract_links", "extract_forms"];
|
|
381
490
|
export type LifeOpsBrowserActionKind = (typeof LIFEOPS_BROWSER_ACTION_KINDS)[number];
|
|
382
491
|
export interface LifeOpsBrowserAction {
|
|
@@ -393,230 +502,6 @@ export interface LifeOpsBrowserAction {
|
|
|
393
502
|
requiresConfirmation: boolean;
|
|
394
503
|
metadata: Record<string, unknown>;
|
|
395
504
|
}
|
|
396
|
-
export interface LifeOpsBrowserPermissionState {
|
|
397
|
-
tabs: boolean;
|
|
398
|
-
scripting: boolean;
|
|
399
|
-
activeTab: boolean;
|
|
400
|
-
allOrigins: boolean;
|
|
401
|
-
grantedOrigins: string[];
|
|
402
|
-
incognitoEnabled: boolean;
|
|
403
|
-
}
|
|
404
|
-
export interface LifeOpsBrowserSettings {
|
|
405
|
-
enabled: boolean;
|
|
406
|
-
trackingMode: LifeOpsBrowserTrackingMode;
|
|
407
|
-
allowBrowserControl: boolean;
|
|
408
|
-
requireConfirmationForAccountAffecting: boolean;
|
|
409
|
-
incognitoEnabled: boolean;
|
|
410
|
-
siteAccessMode: LifeOpsBrowserSiteAccessMode;
|
|
411
|
-
grantedOrigins: string[];
|
|
412
|
-
blockedOrigins: string[];
|
|
413
|
-
maxRememberedTabs: number;
|
|
414
|
-
pauseUntil: string | null;
|
|
415
|
-
metadata: Record<string, unknown>;
|
|
416
|
-
updatedAt: string | null;
|
|
417
|
-
}
|
|
418
|
-
export interface UpdateLifeOpsBrowserSettingsRequest {
|
|
419
|
-
enabled?: boolean;
|
|
420
|
-
trackingMode?: LifeOpsBrowserTrackingMode;
|
|
421
|
-
allowBrowserControl?: boolean;
|
|
422
|
-
requireConfirmationForAccountAffecting?: boolean;
|
|
423
|
-
incognitoEnabled?: boolean;
|
|
424
|
-
siteAccessMode?: LifeOpsBrowserSiteAccessMode;
|
|
425
|
-
grantedOrigins?: string[];
|
|
426
|
-
blockedOrigins?: string[];
|
|
427
|
-
maxRememberedTabs?: number;
|
|
428
|
-
pauseUntil?: string | null;
|
|
429
|
-
metadata?: Record<string, unknown>;
|
|
430
|
-
}
|
|
431
|
-
export interface LifeOpsBrowserCompanionStatus {
|
|
432
|
-
id: string;
|
|
433
|
-
agentId: string;
|
|
434
|
-
browser: LifeOpsBrowserKind;
|
|
435
|
-
profileId: string;
|
|
436
|
-
profileLabel: string;
|
|
437
|
-
label: string;
|
|
438
|
-
extensionVersion: string | null;
|
|
439
|
-
connectionState: LifeOpsBrowserCompanionConnectionState;
|
|
440
|
-
permissions: LifeOpsBrowserPermissionState;
|
|
441
|
-
lastSeenAt: string | null;
|
|
442
|
-
pairedAt: string | null;
|
|
443
|
-
metadata: Record<string, unknown>;
|
|
444
|
-
createdAt: string;
|
|
445
|
-
updatedAt: string;
|
|
446
|
-
}
|
|
447
|
-
export interface LifeOpsBrowserTabSummary {
|
|
448
|
-
id: string;
|
|
449
|
-
agentId: string;
|
|
450
|
-
companionId: string | null;
|
|
451
|
-
browser: LifeOpsBrowserKind;
|
|
452
|
-
profileId: string;
|
|
453
|
-
windowId: string;
|
|
454
|
-
tabId: string;
|
|
455
|
-
url: string;
|
|
456
|
-
title: string;
|
|
457
|
-
activeInWindow: boolean;
|
|
458
|
-
focusedWindow: boolean;
|
|
459
|
-
focusedActive: boolean;
|
|
460
|
-
incognito: boolean;
|
|
461
|
-
faviconUrl: string | null;
|
|
462
|
-
lastSeenAt: string;
|
|
463
|
-
lastFocusedAt: string | null;
|
|
464
|
-
metadata: Record<string, unknown>;
|
|
465
|
-
createdAt: string;
|
|
466
|
-
updatedAt: string;
|
|
467
|
-
}
|
|
468
|
-
export interface LifeOpsBrowserPageContext {
|
|
469
|
-
id: string;
|
|
470
|
-
agentId: string;
|
|
471
|
-
browser: LifeOpsBrowserKind;
|
|
472
|
-
profileId: string;
|
|
473
|
-
windowId: string;
|
|
474
|
-
tabId: string;
|
|
475
|
-
url: string;
|
|
476
|
-
title: string;
|
|
477
|
-
selectionText: string | null;
|
|
478
|
-
mainText: string | null;
|
|
479
|
-
headings: string[];
|
|
480
|
-
links: Array<{
|
|
481
|
-
text: string;
|
|
482
|
-
href: string;
|
|
483
|
-
}>;
|
|
484
|
-
forms: Array<{
|
|
485
|
-
action: string | null;
|
|
486
|
-
fields: string[];
|
|
487
|
-
}>;
|
|
488
|
-
capturedAt: string;
|
|
489
|
-
metadata: Record<string, unknown>;
|
|
490
|
-
}
|
|
491
|
-
export interface UpsertLifeOpsBrowserCompanionRequest {
|
|
492
|
-
browser: LifeOpsBrowserKind;
|
|
493
|
-
profileId: string;
|
|
494
|
-
profileLabel?: string | null;
|
|
495
|
-
label: string;
|
|
496
|
-
extensionVersion?: string | null;
|
|
497
|
-
connectionState?: LifeOpsBrowserCompanionConnectionState;
|
|
498
|
-
permissions?: Partial<LifeOpsBrowserPermissionState>;
|
|
499
|
-
lastSeenAt?: string | null;
|
|
500
|
-
metadata?: Record<string, unknown>;
|
|
501
|
-
}
|
|
502
|
-
export interface SyncLifeOpsBrowserStateRequest {
|
|
503
|
-
companion: UpsertLifeOpsBrowserCompanionRequest;
|
|
504
|
-
tabs: Array<{
|
|
505
|
-
browser: LifeOpsBrowserKind;
|
|
506
|
-
profileId: string;
|
|
507
|
-
windowId: string;
|
|
508
|
-
tabId: string;
|
|
509
|
-
url: string;
|
|
510
|
-
title: string;
|
|
511
|
-
activeInWindow: boolean;
|
|
512
|
-
focusedWindow: boolean;
|
|
513
|
-
focusedActive: boolean;
|
|
514
|
-
incognito?: boolean;
|
|
515
|
-
faviconUrl?: string | null;
|
|
516
|
-
lastSeenAt?: string;
|
|
517
|
-
lastFocusedAt?: string | null;
|
|
518
|
-
metadata?: Record<string, unknown>;
|
|
519
|
-
}>;
|
|
520
|
-
pageContexts?: Array<{
|
|
521
|
-
browser: LifeOpsBrowserKind;
|
|
522
|
-
profileId: string;
|
|
523
|
-
windowId: string;
|
|
524
|
-
tabId: string;
|
|
525
|
-
url: string;
|
|
526
|
-
title: string;
|
|
527
|
-
selectionText?: string | null;
|
|
528
|
-
mainText?: string | null;
|
|
529
|
-
headings?: string[];
|
|
530
|
-
links?: Array<{
|
|
531
|
-
text: string;
|
|
532
|
-
href: string;
|
|
533
|
-
}>;
|
|
534
|
-
forms?: Array<{
|
|
535
|
-
action: string | null;
|
|
536
|
-
fields: string[];
|
|
537
|
-
}>;
|
|
538
|
-
capturedAt?: string;
|
|
539
|
-
metadata?: Record<string, unknown>;
|
|
540
|
-
}>;
|
|
541
|
-
}
|
|
542
|
-
export interface CreateLifeOpsBrowserCompanionPairingRequest {
|
|
543
|
-
browser: LifeOpsBrowserKind;
|
|
544
|
-
profileId: string;
|
|
545
|
-
profileLabel?: string | null;
|
|
546
|
-
label?: string | null;
|
|
547
|
-
extensionVersion?: string | null;
|
|
548
|
-
metadata?: Record<string, unknown>;
|
|
549
|
-
}
|
|
550
|
-
export interface LifeOpsBrowserCompanionPairingResponse {
|
|
551
|
-
companion: LifeOpsBrowserCompanionStatus;
|
|
552
|
-
pairingToken: string;
|
|
553
|
-
}
|
|
554
|
-
export interface LifeOpsBrowserCompanionConfig {
|
|
555
|
-
apiBaseUrl: string;
|
|
556
|
-
companionId: string;
|
|
557
|
-
pairingToken: string;
|
|
558
|
-
browser: LifeOpsBrowserKind;
|
|
559
|
-
profileId: string;
|
|
560
|
-
profileLabel: string;
|
|
561
|
-
label: string;
|
|
562
|
-
}
|
|
563
|
-
export interface CreateLifeOpsBrowserCompanionAutoPairRequest {
|
|
564
|
-
browser: LifeOpsBrowserKind;
|
|
565
|
-
profileId?: string | null;
|
|
566
|
-
profileLabel?: string | null;
|
|
567
|
-
label?: string | null;
|
|
568
|
-
extensionVersion?: string | null;
|
|
569
|
-
metadata?: Record<string, unknown>;
|
|
570
|
-
}
|
|
571
|
-
export interface LifeOpsBrowserCompanionAutoPairResponse {
|
|
572
|
-
companion: LifeOpsBrowserCompanionStatus;
|
|
573
|
-
config: LifeOpsBrowserCompanionConfig;
|
|
574
|
-
}
|
|
575
|
-
export interface UpdateLifeOpsBrowserSessionProgressRequest {
|
|
576
|
-
currentActionIndex?: number;
|
|
577
|
-
result?: Record<string, unknown>;
|
|
578
|
-
metadata?: Record<string, unknown>;
|
|
579
|
-
}
|
|
580
|
-
export interface LifeOpsBrowserCompanionSyncResponse {
|
|
581
|
-
companion: LifeOpsBrowserCompanionStatus;
|
|
582
|
-
tabs: LifeOpsBrowserTabSummary[];
|
|
583
|
-
currentPage: LifeOpsBrowserPageContext | null;
|
|
584
|
-
settings: LifeOpsBrowserSettings;
|
|
585
|
-
session: LifeOpsBrowserSession | null;
|
|
586
|
-
}
|
|
587
|
-
export interface LifeOpsBrowserCompanionPackageStatus {
|
|
588
|
-
extensionPath: string | null;
|
|
589
|
-
chromeBuildPath: string | null;
|
|
590
|
-
chromePackagePath: string | null;
|
|
591
|
-
safariWebExtensionPath: string | null;
|
|
592
|
-
safariAppPath: string | null;
|
|
593
|
-
safariPackagePath: string | null;
|
|
594
|
-
releaseManifest: LifeOpsBrowserCompanionReleaseManifest | null;
|
|
595
|
-
}
|
|
596
|
-
export interface LifeOpsBrowserCompanionReleaseAsset {
|
|
597
|
-
fileName: string;
|
|
598
|
-
downloadUrl: string | null;
|
|
599
|
-
}
|
|
600
|
-
export interface LifeOpsBrowserCompanionReleaseTarget {
|
|
601
|
-
installKind: "chrome_web_store" | "apple_app_store" | "github_release" | "local_download";
|
|
602
|
-
installUrl: string | null;
|
|
603
|
-
storeListingUrl: string | null;
|
|
604
|
-
asset: LifeOpsBrowserCompanionReleaseAsset;
|
|
605
|
-
}
|
|
606
|
-
export interface LifeOpsBrowserCompanionReleaseManifest {
|
|
607
|
-
schema: "lifeops_browser_release_v2";
|
|
608
|
-
releaseTag: string;
|
|
609
|
-
releaseVersion: string;
|
|
610
|
-
repository: string | null;
|
|
611
|
-
releasePageUrl: string | null;
|
|
612
|
-
chromeVersion: string;
|
|
613
|
-
chromeVersionName: string;
|
|
614
|
-
safariMarketingVersion: string;
|
|
615
|
-
safariBuildVersion: string;
|
|
616
|
-
chrome: LifeOpsBrowserCompanionReleaseTarget;
|
|
617
|
-
safari: LifeOpsBrowserCompanionReleaseTarget;
|
|
618
|
-
generatedAt: string;
|
|
619
|
-
}
|
|
620
505
|
export interface LifeOpsWorkflowActionBase {
|
|
621
506
|
id?: string;
|
|
622
507
|
resultKey?: string;
|
|
@@ -640,6 +525,13 @@ export type LifeOpsWorkflowAction = (LifeOpsWorkflowActionBase & {
|
|
|
640
525
|
}) | (LifeOpsWorkflowActionBase & {
|
|
641
526
|
kind: "get_gmail_triage";
|
|
642
527
|
request?: GetLifeOpsGmailTriageRequest;
|
|
528
|
+
}) | (LifeOpsWorkflowActionBase & {
|
|
529
|
+
kind: "get_gmail_unresponded";
|
|
530
|
+
request?: GetLifeOpsGmailUnrespondedRequest;
|
|
531
|
+
}) | (LifeOpsWorkflowActionBase & {
|
|
532
|
+
kind: "dispatch_n8n_workflow";
|
|
533
|
+
workflowId: string;
|
|
534
|
+
payload?: Record<string, unknown>;
|
|
643
535
|
}) | (LifeOpsWorkflowActionBase & {
|
|
644
536
|
kind: "summarize";
|
|
645
537
|
sourceKey?: string;
|
|
@@ -702,7 +594,7 @@ export interface LifeOpsChannelPolicy {
|
|
|
702
594
|
createdAt: string;
|
|
703
595
|
updatedAt: string;
|
|
704
596
|
}
|
|
705
|
-
export declare const LIFEOPS_ACTIVITY_SIGNAL_SOURCES: readonly ["app_lifecycle", "page_visibility", "desktop_power", "mobile_device", "mobile_health"];
|
|
597
|
+
export declare const LIFEOPS_ACTIVITY_SIGNAL_SOURCES: readonly ["app_lifecycle", "page_visibility", "desktop_power", "desktop_interaction", "connector_activity", "imessage_outbound", "mobile_device", "mobile_health"];
|
|
706
598
|
export type LifeOpsActivitySignalSource = (typeof LIFEOPS_ACTIVITY_SIGNAL_SOURCES)[number];
|
|
707
599
|
export declare const LIFEOPS_ACTIVITY_SIGNAL_STATES: readonly ["active", "idle", "background", "locked", "sleeping"];
|
|
708
600
|
export type LifeOpsActivitySignalState = (typeof LIFEOPS_ACTIVITY_SIGNAL_STATES)[number];
|
|
@@ -748,6 +640,113 @@ export interface LifeOpsActivitySignal {
|
|
|
748
640
|
metadata: Record<string, unknown>;
|
|
749
641
|
createdAt: string;
|
|
750
642
|
}
|
|
643
|
+
export type LifeOpsDevicePlatform = "macos_desktop" | "macos_electrobun" | "ios_capacitor" | "ipados_capacitor" | "browser_web";
|
|
644
|
+
export interface LifeOpsDevicePresencePayload {
|
|
645
|
+
family: "device_presence_event";
|
|
646
|
+
platform: LifeOpsDevicePlatform;
|
|
647
|
+
state: LifeOpsActivitySignalState;
|
|
648
|
+
deviceId: string;
|
|
649
|
+
isTransition: boolean;
|
|
650
|
+
sequence: number;
|
|
651
|
+
}
|
|
652
|
+
export type LifeOpsDesktopPowerEventKind = "system_wake" | "system_sleep" | "screen_wake" | "screen_sleep" | "session_lock" | "session_unlock" | "ac_plug" | "ac_unplug";
|
|
653
|
+
export interface LifeOpsDesktopPowerPayload {
|
|
654
|
+
family: "desktop_power_event";
|
|
655
|
+
platform: "macos_desktop" | "macos_electrobun";
|
|
656
|
+
kind: LifeOpsDesktopPowerEventKind;
|
|
657
|
+
batteryPercent: number | null;
|
|
658
|
+
}
|
|
659
|
+
export interface LifeOpsDesktopIdleSamplePayload {
|
|
660
|
+
family: "desktop_idle_sample";
|
|
661
|
+
platform: "macos_desktop" | "macos_electrobun";
|
|
662
|
+
idleSeconds: number;
|
|
663
|
+
source: "iokit_hid" | "cgevent" | "collector_synthesized";
|
|
664
|
+
isThresholdCrossing: boolean;
|
|
665
|
+
}
|
|
666
|
+
export interface LifeOpsBrowserFocusPayload {
|
|
667
|
+
family: "browser_focus_window";
|
|
668
|
+
platform: "browser_web" | "macos_electrobun";
|
|
669
|
+
startAt: string;
|
|
670
|
+
endAt: string;
|
|
671
|
+
domain: string;
|
|
672
|
+
tabId: string;
|
|
673
|
+
focusedSeconds: number;
|
|
674
|
+
}
|
|
675
|
+
export interface LifeOpsMobileHealthPayload {
|
|
676
|
+
family: "mobile_health_snapshot";
|
|
677
|
+
platform: "ios_capacitor" | "ipados_capacitor";
|
|
678
|
+
signal: LifeOpsHealthSignal;
|
|
679
|
+
sampleId: string | null;
|
|
680
|
+
}
|
|
681
|
+
export type LifeOpsMobileDeviceTelemetrySource = "capacitor_mobile_signals" | "macos_continuity_probe";
|
|
682
|
+
export interface LifeOpsMobileDevicePayload {
|
|
683
|
+
family: "mobile_device_snapshot";
|
|
684
|
+
platform: "ios_capacitor" | "ipados_capacitor" | "macos_desktop";
|
|
685
|
+
source: LifeOpsMobileDeviceTelemetrySource;
|
|
686
|
+
locked: boolean;
|
|
687
|
+
idleTimeSeconds: number | null;
|
|
688
|
+
onBattery: boolean | null;
|
|
689
|
+
batteryPercent: number | null;
|
|
690
|
+
pairedDeviceId: string | null;
|
|
691
|
+
}
|
|
692
|
+
export type LifeOpsTelemetryMessageChannel = "gmail" | "x_dm" | "discord" | "telegram" | "signal" | "imessage" | "whatsapp" | "sms" | "milady_chat";
|
|
693
|
+
export type LifeOpsMessageDirection = "inbound" | "outbound_by_owner";
|
|
694
|
+
export interface LifeOpsMessageActivityPayload {
|
|
695
|
+
family: "message_activity_event";
|
|
696
|
+
platform: LifeOpsDevicePlatform;
|
|
697
|
+
channel: LifeOpsTelemetryMessageChannel;
|
|
698
|
+
direction: LifeOpsMessageDirection;
|
|
699
|
+
externalMessageId: string;
|
|
700
|
+
senderHash: string;
|
|
701
|
+
conversationHash: string;
|
|
702
|
+
}
|
|
703
|
+
export type LifeOpsStatusPlatform = "slack" | "discord" | "telegram" | "x";
|
|
704
|
+
export type LifeOpsStatusTransition = "online" | "offline" | "away" | "do_not_disturb" | "custom_set" | "custom_cleared";
|
|
705
|
+
export interface LifeOpsStatusActivityPayload {
|
|
706
|
+
family: "status_activity_event";
|
|
707
|
+
platform: LifeOpsStatusPlatform;
|
|
708
|
+
transition: LifeOpsStatusTransition;
|
|
709
|
+
}
|
|
710
|
+
export interface LifeOpsChargingPayload {
|
|
711
|
+
family: "charging_event";
|
|
712
|
+
platform: LifeOpsDevicePlatform;
|
|
713
|
+
connected: boolean;
|
|
714
|
+
batteryPercent: number;
|
|
715
|
+
}
|
|
716
|
+
export interface LifeOpsScreenTimePerAppUsage {
|
|
717
|
+
appBundleId: string;
|
|
718
|
+
minutesUsed: number;
|
|
719
|
+
}
|
|
720
|
+
export interface LifeOpsScreenTimeSummaryPayload {
|
|
721
|
+
family: "screen_time_summary";
|
|
722
|
+
platform: "ios_capacitor" | "ipados_capacitor" | "macos_desktop";
|
|
723
|
+
intervalStartAt: string;
|
|
724
|
+
intervalEndAt: string;
|
|
725
|
+
totalMinutesUsed: number;
|
|
726
|
+
apps: LifeOpsScreenTimePerAppUsage[];
|
|
727
|
+
}
|
|
728
|
+
export type LifeOpsManualOverrideTelemetryKind = "going_to_bed" | "just_woke_up";
|
|
729
|
+
export interface LifeOpsManualOverridePayload {
|
|
730
|
+
family: "manual_override_event";
|
|
731
|
+
platform: LifeOpsDevicePlatform;
|
|
732
|
+
kind: LifeOpsManualOverrideTelemetryKind;
|
|
733
|
+
note: string | null;
|
|
734
|
+
}
|
|
735
|
+
export type LifeOpsTelemetryPayload = LifeOpsDevicePresencePayload | LifeOpsDesktopPowerPayload | LifeOpsDesktopIdleSamplePayload | LifeOpsBrowserFocusPayload | LifeOpsMobileHealthPayload | LifeOpsMobileDevicePayload | LifeOpsMessageActivityPayload | LifeOpsStatusActivityPayload | LifeOpsChargingPayload | LifeOpsScreenTimeSummaryPayload | LifeOpsManualOverridePayload;
|
|
736
|
+
export type LifeOpsTelemetryFamily = LifeOpsTelemetryPayload["family"];
|
|
737
|
+
export declare const LIFEOPS_TELEMETRY_FAMILIES: readonly LifeOpsTelemetryFamily[];
|
|
738
|
+
export interface LifeOpsTelemetryEnvelope {
|
|
739
|
+
id: string;
|
|
740
|
+
agentId: string;
|
|
741
|
+
family: LifeOpsTelemetryFamily;
|
|
742
|
+
occurredAt: string;
|
|
743
|
+
ingestedAt: string;
|
|
744
|
+
dedupeKey: string;
|
|
745
|
+
sourceReliability: number;
|
|
746
|
+
}
|
|
747
|
+
export type LifeOpsTelemetryEvent = LifeOpsTelemetryEnvelope & {
|
|
748
|
+
payload: LifeOpsTelemetryPayload;
|
|
749
|
+
};
|
|
751
750
|
export interface LifeOpsReminderPreferenceSetting {
|
|
752
751
|
intensity: LifeOpsReminderIntensity;
|
|
753
752
|
source: LifeOpsReminderPreferenceSource;
|
|
@@ -799,6 +798,193 @@ export interface LifeOpsOverviewSummary {
|
|
|
799
798
|
activeReminderCount: number;
|
|
800
799
|
activeGoalCount: number;
|
|
801
800
|
}
|
|
801
|
+
export declare const LIFEOPS_CIRCADIAN_STATES: readonly ["awake", "winding_down", "sleeping", "waking", "napping", "unclear"];
|
|
802
|
+
export type LifeOpsCircadianState = (typeof LIFEOPS_CIRCADIAN_STATES)[number];
|
|
803
|
+
export declare const LIFEOPS_UNCLEAR_REASONS: readonly ["no_signals", "contradictory_signals", "insufficient_history", "permission_blocked", "signal_outage", "boot_cold_start", "stale_state"];
|
|
804
|
+
export type LifeOpsUnclearReason = (typeof LIFEOPS_UNCLEAR_REASONS)[number];
|
|
805
|
+
export type LifeOpsScheduleSleepStatus = "sleeping_now" | "slept" | "likely_missed" | "unknown";
|
|
806
|
+
export type LifeOpsSleepCycleEvidenceSource = "health" | "activity_gap";
|
|
807
|
+
export type LifeOpsSleepCycleType = "nap" | "overnight" | "unknown";
|
|
808
|
+
export type LifeOpsRegularityClass = "very_regular" | "regular" | "irregular" | "very_irregular" | "insufficient_data";
|
|
809
|
+
export interface LifeOpsScheduleRegularity {
|
|
810
|
+
sri: number;
|
|
811
|
+
bedtimeStddevMin: number;
|
|
812
|
+
wakeStddevMin: number;
|
|
813
|
+
midSleepStddevMin: number;
|
|
814
|
+
regularityClass: LifeOpsRegularityClass;
|
|
815
|
+
sampleCount: number;
|
|
816
|
+
windowDays: number;
|
|
817
|
+
}
|
|
818
|
+
/**
|
|
819
|
+
* Personal baseline derived from persisted sleep episodes over `windowDays`.
|
|
820
|
+
* Medians are computed via circular mean (sin/cos projection) so bedtimes
|
|
821
|
+
* crossing midnight produce correct answers. Returned as `null` on
|
|
822
|
+
* `LifeOpsScheduleInsight` when `sampleCount < 5` — the scalar typical hours
|
|
823
|
+
* that previously existed are deleted from the contract.
|
|
824
|
+
*/
|
|
825
|
+
export interface LifeOpsPersonalBaseline {
|
|
826
|
+
/** Local wake hour in [0, 24). Circular mean over episode end instants. */
|
|
827
|
+
medianWakeLocalHour: number;
|
|
828
|
+
/** Local bedtime hour in [12, 36) (normalized so evening hours are next-day). Circular mean. */
|
|
829
|
+
medianBedtimeLocalHour: number;
|
|
830
|
+
/** Median sleep episode duration in minutes. */
|
|
831
|
+
medianSleepDurationMin: number;
|
|
832
|
+
/** Circular stddev of bedtime in minutes. */
|
|
833
|
+
bedtimeStddevMin: number;
|
|
834
|
+
/** Circular stddev of wake time in minutes. */
|
|
835
|
+
wakeStddevMin: number;
|
|
836
|
+
/** Number of persisted episodes that fed the computation. */
|
|
837
|
+
sampleCount: number;
|
|
838
|
+
/** Size of the look-back window in days (default 28). */
|
|
839
|
+
windowDays: number;
|
|
840
|
+
}
|
|
841
|
+
export type LifeOpsAwakeProbabilitySource = LifeOpsActivitySignalSource | "prior" | "health" | "activity_gap";
|
|
842
|
+
export interface LifeOpsAwakeProbabilityContributor {
|
|
843
|
+
source: LifeOpsAwakeProbabilitySource;
|
|
844
|
+
logLikelihoodRatio: number;
|
|
845
|
+
}
|
|
846
|
+
export interface LifeOpsAwakeProbability {
|
|
847
|
+
pAwake: number;
|
|
848
|
+
pAsleep: number;
|
|
849
|
+
pUnknown: number;
|
|
850
|
+
contributingSources: LifeOpsAwakeProbabilityContributor[];
|
|
851
|
+
computedAt: string;
|
|
852
|
+
}
|
|
853
|
+
export interface LifeOpsSleepCycleEvidence {
|
|
854
|
+
startAt: string;
|
|
855
|
+
endAt: string | null;
|
|
856
|
+
source: LifeOpsSleepCycleEvidenceSource;
|
|
857
|
+
confidence: number;
|
|
858
|
+
}
|
|
859
|
+
export interface LifeOpsSleepCycle {
|
|
860
|
+
cycleType: LifeOpsSleepCycleType;
|
|
861
|
+
sleepStatus: LifeOpsScheduleSleepStatus;
|
|
862
|
+
isProbablySleeping: boolean;
|
|
863
|
+
sleepConfidence: number;
|
|
864
|
+
currentSleepStartedAt: string | null;
|
|
865
|
+
lastSleepStartedAt: string | null;
|
|
866
|
+
lastSleepEndedAt: string | null;
|
|
867
|
+
lastSleepDurationMinutes: number | null;
|
|
868
|
+
evidence: LifeOpsSleepCycleEvidence[];
|
|
869
|
+
}
|
|
870
|
+
export type LifeOpsDayBoundaryAnchor = "start_of_day" | "end_of_day" | "before_sleep";
|
|
871
|
+
export interface LifeOpsDayBoundary {
|
|
872
|
+
effectiveDayKey: string;
|
|
873
|
+
localDate: string;
|
|
874
|
+
timezone: string;
|
|
875
|
+
anchor: LifeOpsDayBoundaryAnchor;
|
|
876
|
+
startOfDayAt: string;
|
|
877
|
+
endOfDayAt: string;
|
|
878
|
+
beforeSleepAt: string | null;
|
|
879
|
+
confidence: number;
|
|
880
|
+
}
|
|
881
|
+
export type LifeOpsRelativeTimeAnchorSource = "sleep_cycle" | "activity" | "typical_sleep" | "day_boundary";
|
|
882
|
+
export interface LifeOpsRelativeTime {
|
|
883
|
+
computedAt: string;
|
|
884
|
+
localNowAt: string;
|
|
885
|
+
circadianState: LifeOpsCircadianState;
|
|
886
|
+
stateConfidence: number;
|
|
887
|
+
uncertaintyReason: LifeOpsUnclearReason | null;
|
|
888
|
+
awakeProbability: LifeOpsAwakeProbability;
|
|
889
|
+
wakeAnchorAt: string | null;
|
|
890
|
+
wakeAnchorSource: LifeOpsRelativeTimeAnchorSource | null;
|
|
891
|
+
minutesSinceWake: number | null;
|
|
892
|
+
minutesAwake: number | null;
|
|
893
|
+
bedtimeTargetAt: string | null;
|
|
894
|
+
bedtimeTargetSource: LifeOpsRelativeTimeAnchorSource | null;
|
|
895
|
+
minutesUntilBedtimeTarget: number | null;
|
|
896
|
+
minutesSinceBedtimeTarget: number | null;
|
|
897
|
+
dayBoundaryStartAt: string;
|
|
898
|
+
dayBoundaryEndAt: string;
|
|
899
|
+
minutesSinceDayBoundaryStart: number;
|
|
900
|
+
minutesUntilDayBoundaryEnd: number;
|
|
901
|
+
confidence: number;
|
|
902
|
+
}
|
|
903
|
+
export type LifeOpsScheduleMealLabel = "breakfast" | "lunch" | "dinner";
|
|
904
|
+
export type LifeOpsScheduleMealSource = "activity_gap" | "expected_window" | "health";
|
|
905
|
+
export interface LifeOpsScheduleMealInsight {
|
|
906
|
+
label: LifeOpsScheduleMealLabel;
|
|
907
|
+
detectedAt: string;
|
|
908
|
+
confidence: number;
|
|
909
|
+
source: LifeOpsScheduleMealSource;
|
|
910
|
+
}
|
|
911
|
+
/**
|
|
912
|
+
* A single rule firing from `scoreCircadianRules`. Persisted on the schedule
|
|
913
|
+
* insight so the inspection UI can explain *why* the state machine landed
|
|
914
|
+
* where it did without re-running inference.
|
|
915
|
+
*/
|
|
916
|
+
export interface LifeOpsCircadianRuleFiring {
|
|
917
|
+
name: string;
|
|
918
|
+
contributes: LifeOpsCircadianState;
|
|
919
|
+
weight: number;
|
|
920
|
+
observedAt: string;
|
|
921
|
+
reason: string;
|
|
922
|
+
}
|
|
923
|
+
export interface LifeOpsScheduleInsight {
|
|
924
|
+
effectiveDayKey: string;
|
|
925
|
+
localDate: string;
|
|
926
|
+
timezone: string;
|
|
927
|
+
inferredAt: string;
|
|
928
|
+
circadianState: LifeOpsCircadianState;
|
|
929
|
+
stateConfidence: number;
|
|
930
|
+
uncertaintyReason: LifeOpsUnclearReason | null;
|
|
931
|
+
relativeTime: LifeOpsRelativeTime;
|
|
932
|
+
awakeProbability: LifeOpsAwakeProbability;
|
|
933
|
+
regularity: LifeOpsScheduleRegularity;
|
|
934
|
+
baseline: LifeOpsPersonalBaseline | null;
|
|
935
|
+
/**
|
|
936
|
+
* Named-rules evidence from the circadian scorer. Ordered by descending
|
|
937
|
+
* weight. Empty when `circadianState === "unclear"` and no rules fired.
|
|
938
|
+
*/
|
|
939
|
+
circadianRuleFirings: LifeOpsCircadianRuleFiring[];
|
|
940
|
+
sleepStatus: LifeOpsScheduleSleepStatus;
|
|
941
|
+
sleepConfidence: number;
|
|
942
|
+
currentSleepStartedAt: string | null;
|
|
943
|
+
lastSleepStartedAt: string | null;
|
|
944
|
+
lastSleepEndedAt: string | null;
|
|
945
|
+
lastSleepDurationMinutes: number | null;
|
|
946
|
+
wakeAt: string | null;
|
|
947
|
+
firstActiveAt: string | null;
|
|
948
|
+
lastActiveAt: string | null;
|
|
949
|
+
meals: LifeOpsScheduleMealInsight[];
|
|
950
|
+
lastMealAt: string | null;
|
|
951
|
+
nextMealLabel: LifeOpsScheduleMealLabel | null;
|
|
952
|
+
nextMealWindowStartAt: string | null;
|
|
953
|
+
nextMealWindowEndAt: string | null;
|
|
954
|
+
nextMealConfidence: number;
|
|
955
|
+
}
|
|
956
|
+
export type LifeOpsCapabilityDomain = "core" | "schedule" | "reminders" | "activity" | "connectors" | "profile";
|
|
957
|
+
export type LifeOpsCapabilityState = "working" | "degraded" | "blocked" | "not_configured";
|
|
958
|
+
export interface LifeOpsCapabilityEvidence {
|
|
959
|
+
label: string;
|
|
960
|
+
state: LifeOpsCapabilityState;
|
|
961
|
+
detail: string | null;
|
|
962
|
+
observedAt: string | null;
|
|
963
|
+
}
|
|
964
|
+
export interface LifeOpsCapabilityStatus {
|
|
965
|
+
id: string;
|
|
966
|
+
domain: LifeOpsCapabilityDomain;
|
|
967
|
+
label: string;
|
|
968
|
+
state: LifeOpsCapabilityState;
|
|
969
|
+
summary: string;
|
|
970
|
+
confidence: number;
|
|
971
|
+
lastCheckedAt: string;
|
|
972
|
+
evidence: LifeOpsCapabilityEvidence[];
|
|
973
|
+
}
|
|
974
|
+
export interface LifeOpsCapabilitiesSummary {
|
|
975
|
+
totalCount: number;
|
|
976
|
+
workingCount: number;
|
|
977
|
+
degradedCount: number;
|
|
978
|
+
blockedCount: number;
|
|
979
|
+
notConfiguredCount: number;
|
|
980
|
+
}
|
|
981
|
+
export interface LifeOpsCapabilitiesStatus {
|
|
982
|
+
generatedAt: string;
|
|
983
|
+
appEnabled: boolean;
|
|
984
|
+
relativeTime: LifeOpsRelativeTime | null;
|
|
985
|
+
capabilities: LifeOpsCapabilityStatus[];
|
|
986
|
+
summary: LifeOpsCapabilitiesSummary;
|
|
987
|
+
}
|
|
802
988
|
export interface LifeOpsOverviewSection {
|
|
803
989
|
occurrences: LifeOpsOccurrenceView[];
|
|
804
990
|
goals: LifeOpsGoalDefinition[];
|
|
@@ -812,6 +998,7 @@ export interface LifeOpsOverview {
|
|
|
812
998
|
summary: LifeOpsOverviewSummary;
|
|
813
999
|
owner: LifeOpsOverviewSection;
|
|
814
1000
|
agentOps: LifeOpsOverviewSection;
|
|
1001
|
+
schedule: LifeOpsScheduleInsight | null;
|
|
815
1002
|
}
|
|
816
1003
|
export interface LifeOpsCalendarEventAttendee {
|
|
817
1004
|
email: string | null;
|
|
@@ -934,6 +1121,7 @@ export interface GetLifeOpsGmailSearchRequest {
|
|
|
934
1121
|
maxResults?: number;
|
|
935
1122
|
query: string;
|
|
936
1123
|
replyNeededOnly?: boolean;
|
|
1124
|
+
includeSpamTrash?: boolean;
|
|
937
1125
|
grantId?: string;
|
|
938
1126
|
}
|
|
939
1127
|
export interface LifeOpsGmailSearchSummary {
|
|
@@ -949,6 +1137,176 @@ export interface LifeOpsGmailSearchFeed {
|
|
|
949
1137
|
syncedAt: string | null;
|
|
950
1138
|
summary: LifeOpsGmailSearchSummary;
|
|
951
1139
|
}
|
|
1140
|
+
export declare const LIFEOPS_GMAIL_RECOMMENDATION_KINDS: readonly ["reply", "archive", "mark_read", "review_spam"];
|
|
1141
|
+
export type LifeOpsGmailRecommendationKind = (typeof LIFEOPS_GMAIL_RECOMMENDATION_KINDS)[number];
|
|
1142
|
+
export declare const LIFEOPS_GMAIL_BULK_OPERATIONS: readonly ["archive", "trash", "delete", "report_spam", "mark_read", "mark_unread", "apply_label", "remove_label"];
|
|
1143
|
+
export type LifeOpsGmailBulkOperation = (typeof LIFEOPS_GMAIL_BULK_OPERATIONS)[number];
|
|
1144
|
+
export interface ManageLifeOpsGmailMessagesRequest {
|
|
1145
|
+
side?: LifeOpsConnectorSide;
|
|
1146
|
+
mode?: LifeOpsConnectorMode;
|
|
1147
|
+
grantId?: string;
|
|
1148
|
+
operation: LifeOpsGmailBulkOperation;
|
|
1149
|
+
messageIds?: string[];
|
|
1150
|
+
query?: string;
|
|
1151
|
+
maxResults?: number;
|
|
1152
|
+
labelIds?: string[];
|
|
1153
|
+
confirmDestructive?: boolean;
|
|
1154
|
+
}
|
|
1155
|
+
export interface LifeOpsGmailManageResult {
|
|
1156
|
+
ok: true;
|
|
1157
|
+
operation: LifeOpsGmailBulkOperation;
|
|
1158
|
+
messageIds: string[];
|
|
1159
|
+
affectedCount: number;
|
|
1160
|
+
labelIds: string[];
|
|
1161
|
+
destructive: boolean;
|
|
1162
|
+
grantId?: string;
|
|
1163
|
+
accountEmail?: string;
|
|
1164
|
+
}
|
|
1165
|
+
export interface LifeOpsGmailRecommendationMessage {
|
|
1166
|
+
messageId: string;
|
|
1167
|
+
subject: string;
|
|
1168
|
+
from: string;
|
|
1169
|
+
fromEmail: string | null;
|
|
1170
|
+
receivedAt: string;
|
|
1171
|
+
snippet: string;
|
|
1172
|
+
labels: string[];
|
|
1173
|
+
}
|
|
1174
|
+
export interface LifeOpsGmailRecommendation {
|
|
1175
|
+
id: string;
|
|
1176
|
+
kind: LifeOpsGmailRecommendationKind;
|
|
1177
|
+
title: string;
|
|
1178
|
+
rationale: string;
|
|
1179
|
+
operation: LifeOpsGmailBulkOperation | null;
|
|
1180
|
+
messageIds: string[];
|
|
1181
|
+
query: string | null;
|
|
1182
|
+
labelIds: string[];
|
|
1183
|
+
affectedCount: number;
|
|
1184
|
+
destructive: boolean;
|
|
1185
|
+
requiresConfirmation: boolean;
|
|
1186
|
+
confidence: number;
|
|
1187
|
+
sampleMessages: LifeOpsGmailRecommendationMessage[];
|
|
1188
|
+
}
|
|
1189
|
+
export interface LifeOpsGmailRecommendationsSummary {
|
|
1190
|
+
totalCount: number;
|
|
1191
|
+
replyCount: number;
|
|
1192
|
+
archiveCount: number;
|
|
1193
|
+
markReadCount: number;
|
|
1194
|
+
spamReviewCount: number;
|
|
1195
|
+
destructiveCount: number;
|
|
1196
|
+
}
|
|
1197
|
+
export interface LifeOpsGmailRecommendationsFeed {
|
|
1198
|
+
recommendations: LifeOpsGmailRecommendation[];
|
|
1199
|
+
source: "cache" | "synced";
|
|
1200
|
+
syncedAt: string | null;
|
|
1201
|
+
summary: LifeOpsGmailRecommendationsSummary;
|
|
1202
|
+
}
|
|
1203
|
+
export interface GetLifeOpsGmailRecommendationsRequest {
|
|
1204
|
+
side?: LifeOpsConnectorSide;
|
|
1205
|
+
mode?: LifeOpsConnectorMode;
|
|
1206
|
+
grantId?: string;
|
|
1207
|
+
forceSync?: boolean;
|
|
1208
|
+
maxResults?: number;
|
|
1209
|
+
query?: string;
|
|
1210
|
+
replyNeededOnly?: boolean;
|
|
1211
|
+
includeSpamTrash?: boolean;
|
|
1212
|
+
}
|
|
1213
|
+
export declare const LIFEOPS_GMAIL_SPAM_REVIEW_STATUSES: readonly ["pending", "confirmed_spam", "not_spam", "dismissed"];
|
|
1214
|
+
export type LifeOpsGmailSpamReviewStatus = (typeof LIFEOPS_GMAIL_SPAM_REVIEW_STATUSES)[number];
|
|
1215
|
+
export interface LifeOpsGmailSpamReviewItem {
|
|
1216
|
+
id: string;
|
|
1217
|
+
agentId: string;
|
|
1218
|
+
provider: "google";
|
|
1219
|
+
side: LifeOpsConnectorSide;
|
|
1220
|
+
grantId: string;
|
|
1221
|
+
accountEmail: string | null;
|
|
1222
|
+
messageId: string;
|
|
1223
|
+
externalMessageId: string;
|
|
1224
|
+
threadId: string;
|
|
1225
|
+
subject: string;
|
|
1226
|
+
from: string;
|
|
1227
|
+
fromEmail: string | null;
|
|
1228
|
+
receivedAt: string;
|
|
1229
|
+
snippet: string;
|
|
1230
|
+
labels: string[];
|
|
1231
|
+
rationale: string;
|
|
1232
|
+
confidence: number;
|
|
1233
|
+
status: LifeOpsGmailSpamReviewStatus;
|
|
1234
|
+
createdAt: string;
|
|
1235
|
+
updatedAt: string;
|
|
1236
|
+
reviewedAt: string | null;
|
|
1237
|
+
}
|
|
1238
|
+
export interface LifeOpsGmailSpamReviewSummary {
|
|
1239
|
+
totalCount: number;
|
|
1240
|
+
pendingCount: number;
|
|
1241
|
+
confirmedSpamCount: number;
|
|
1242
|
+
notSpamCount: number;
|
|
1243
|
+
dismissedCount: number;
|
|
1244
|
+
}
|
|
1245
|
+
export interface LifeOpsGmailSpamReviewFeed {
|
|
1246
|
+
items: LifeOpsGmailSpamReviewItem[];
|
|
1247
|
+
summary: LifeOpsGmailSpamReviewSummary;
|
|
1248
|
+
}
|
|
1249
|
+
export interface GetLifeOpsGmailSpamReviewRequest {
|
|
1250
|
+
side?: LifeOpsConnectorSide;
|
|
1251
|
+
mode?: LifeOpsConnectorMode;
|
|
1252
|
+
grantId?: string;
|
|
1253
|
+
status?: LifeOpsGmailSpamReviewStatus;
|
|
1254
|
+
maxResults?: number;
|
|
1255
|
+
}
|
|
1256
|
+
export interface UpdateLifeOpsGmailSpamReviewItemRequest {
|
|
1257
|
+
status: LifeOpsGmailSpamReviewStatus;
|
|
1258
|
+
}
|
|
1259
|
+
export interface LifeOpsGmailUnrespondedThread {
|
|
1260
|
+
threadId: string;
|
|
1261
|
+
messageId: string;
|
|
1262
|
+
subject: string;
|
|
1263
|
+
to: string[];
|
|
1264
|
+
cc: string[];
|
|
1265
|
+
lastOutboundAt: string;
|
|
1266
|
+
lastInboundAt: string | null;
|
|
1267
|
+
daysWaiting: number;
|
|
1268
|
+
snippet: string;
|
|
1269
|
+
labels: string[];
|
|
1270
|
+
htmlLink: string | null;
|
|
1271
|
+
grantId?: string;
|
|
1272
|
+
accountEmail?: string;
|
|
1273
|
+
}
|
|
1274
|
+
export interface LifeOpsGmailUnrespondedSummary {
|
|
1275
|
+
totalCount: number;
|
|
1276
|
+
oldestDaysWaiting: number | null;
|
|
1277
|
+
}
|
|
1278
|
+
export interface LifeOpsGmailUnrespondedFeed {
|
|
1279
|
+
threads: LifeOpsGmailUnrespondedThread[];
|
|
1280
|
+
source: "synced";
|
|
1281
|
+
syncedAt: string;
|
|
1282
|
+
summary: LifeOpsGmailUnrespondedSummary;
|
|
1283
|
+
}
|
|
1284
|
+
export interface GetLifeOpsGmailUnrespondedRequest {
|
|
1285
|
+
side?: LifeOpsConnectorSide;
|
|
1286
|
+
mode?: LifeOpsConnectorMode;
|
|
1287
|
+
grantId?: string;
|
|
1288
|
+
olderThanDays?: number;
|
|
1289
|
+
maxResults?: number;
|
|
1290
|
+
}
|
|
1291
|
+
export interface IngestLifeOpsGmailEventRequest {
|
|
1292
|
+
side?: LifeOpsConnectorSide;
|
|
1293
|
+
mode?: LifeOpsConnectorMode;
|
|
1294
|
+
grantId?: string;
|
|
1295
|
+
messageId: string;
|
|
1296
|
+
eventKind?: "gmail.message.received" | "gmail.thread.needs_response";
|
|
1297
|
+
occurredAt?: string;
|
|
1298
|
+
maxWorkflowRuns?: number;
|
|
1299
|
+
}
|
|
1300
|
+
export interface LifeOpsGmailEventIngestResult {
|
|
1301
|
+
ok: true;
|
|
1302
|
+
event: {
|
|
1303
|
+
id: string;
|
|
1304
|
+
kind: "gmail.message.received" | "gmail.thread.needs_response";
|
|
1305
|
+
occurredAt: string;
|
|
1306
|
+
payload: Record<string, unknown>;
|
|
1307
|
+
};
|
|
1308
|
+
workflowRunIds: string[];
|
|
1309
|
+
}
|
|
952
1310
|
export declare const LIFEOPS_GMAIL_DRAFT_TONES: readonly ["brief", "neutral", "warm"];
|
|
953
1311
|
export type LifeOpsGmailDraftTone = (typeof LIFEOPS_GMAIL_DRAFT_TONES)[number];
|
|
954
1312
|
export interface CreateLifeOpsGmailReplyDraftRequest {
|
|
@@ -1078,8 +1436,69 @@ export interface LifeOpsNextCalendarEventContext {
|
|
|
1078
1436
|
linkedMailError: string | null;
|
|
1079
1437
|
linkedMail: Array<Pick<LifeOpsGmailMessageSummary, "id" | "subject" | "from" | "receivedAt" | "snippet" | "htmlLink">>;
|
|
1080
1438
|
}
|
|
1439
|
+
export interface LifeOpsCalendarEventReminderOverride {
|
|
1440
|
+
minutesBefore: number;
|
|
1441
|
+
}
|
|
1442
|
+
export interface LifeOpsCalendarEventUpdate {
|
|
1443
|
+
title?: string;
|
|
1444
|
+
startAt?: string;
|
|
1445
|
+
endAt?: string;
|
|
1446
|
+
notes?: string;
|
|
1447
|
+
reminders?: LifeOpsCalendarEventReminderOverride[];
|
|
1448
|
+
}
|
|
1449
|
+
export interface LifeOpsCalendarEventMutationResult {
|
|
1450
|
+
event: LifeOpsCalendarEvent;
|
|
1451
|
+
}
|
|
1452
|
+
export declare const LIFEOPS_INBOX_CHANNELS: readonly ["gmail", "x_dm", "discord", "telegram", "signal", "imessage", "whatsapp", "sms"];
|
|
1453
|
+
export type LifeOpsInboxChannel = (typeof LIFEOPS_INBOX_CHANNELS)[number];
|
|
1454
|
+
export interface LifeOpsInboxMessageSender {
|
|
1455
|
+
id: string;
|
|
1456
|
+
displayName: string;
|
|
1457
|
+
avatarUrl: string | null;
|
|
1458
|
+
}
|
|
1459
|
+
export interface LifeOpsInboxMessageSourceRef {
|
|
1460
|
+
channel: LifeOpsInboxChannel;
|
|
1461
|
+
externalId: string;
|
|
1462
|
+
}
|
|
1463
|
+
export interface LifeOpsInboxMessage {
|
|
1464
|
+
/** Channel-prefixed, globally unique identifier. */
|
|
1465
|
+
id: string;
|
|
1466
|
+
channel: LifeOpsInboxChannel;
|
|
1467
|
+
sender: LifeOpsInboxMessageSender;
|
|
1468
|
+
/** Gmail-style subject; `null` for chat channels. */
|
|
1469
|
+
subject: string | null;
|
|
1470
|
+
snippet: string;
|
|
1471
|
+
/** ISO-8601 timestamp. */
|
|
1472
|
+
receivedAt: string;
|
|
1473
|
+
unread: boolean;
|
|
1474
|
+
deepLink: string | null;
|
|
1475
|
+
sourceRef: LifeOpsInboxMessageSourceRef;
|
|
1476
|
+
}
|
|
1477
|
+
export interface LifeOpsInboxChannelCount {
|
|
1478
|
+
total: number;
|
|
1479
|
+
unread: number;
|
|
1480
|
+
}
|
|
1481
|
+
export interface LifeOpsInbox {
|
|
1482
|
+
messages: LifeOpsInboxMessage[];
|
|
1483
|
+
channelCounts: Record<LifeOpsInboxChannel, LifeOpsInboxChannelCount>;
|
|
1484
|
+
fetchedAt: string;
|
|
1485
|
+
}
|
|
1486
|
+
export interface GetLifeOpsInboxRequest {
|
|
1487
|
+
/** Cap on the total number of messages returned. Defaults to 100. */
|
|
1488
|
+
limit?: number;
|
|
1489
|
+
/** If omitted, all connected channels are included. */
|
|
1490
|
+
channels?: LifeOpsInboxChannel[];
|
|
1491
|
+
}
|
|
1081
1492
|
export declare const LIFEOPS_GOOGLE_CONNECTOR_REASONS: readonly ["connected", "disconnected", "config_missing", "token_missing", "needs_reauth"];
|
|
1082
1493
|
export type LifeOpsGoogleConnectorReason = (typeof LIFEOPS_GOOGLE_CONNECTOR_REASONS)[number];
|
|
1494
|
+
export declare const LIFEOPS_CONNECTOR_DEGRADATION_AXES: readonly ["missing-scope", "rate-limited", "disconnected", "auth-expired", "session-revoked", "delivery-degraded", "helper-disconnected", "retry-idempotent", "hold-expired", "transport-offline", "blocked-resume"];
|
|
1495
|
+
export type LifeOpsConnectorDegradationAxis = (typeof LIFEOPS_CONNECTOR_DEGRADATION_AXES)[number];
|
|
1496
|
+
export interface LifeOpsConnectorDegradation {
|
|
1497
|
+
axis: LifeOpsConnectorDegradationAxis;
|
|
1498
|
+
code: string;
|
|
1499
|
+
message: string;
|
|
1500
|
+
retryable: boolean;
|
|
1501
|
+
}
|
|
1083
1502
|
export interface LifeOpsGoogleConnectorStatus {
|
|
1084
1503
|
provider: "google";
|
|
1085
1504
|
side: LifeOpsConnectorSide;
|
|
@@ -1099,22 +1518,37 @@ export interface LifeOpsGoogleConnectorStatus {
|
|
|
1099
1518
|
expiresAt: string | null;
|
|
1100
1519
|
hasRefreshToken: boolean;
|
|
1101
1520
|
grant: LifeOpsConnectorGrant | null;
|
|
1521
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1102
1522
|
}
|
|
1103
1523
|
export interface LifeOpsXConnectorStatus {
|
|
1104
1524
|
provider: "x";
|
|
1525
|
+
side?: LifeOpsConnectorSide;
|
|
1105
1526
|
mode: LifeOpsConnectorMode;
|
|
1527
|
+
defaultMode?: LifeOpsConnectorMode;
|
|
1528
|
+
availableModes?: LifeOpsConnectorMode[];
|
|
1529
|
+
executionTarget?: LifeOpsConnectorExecutionTarget;
|
|
1530
|
+
sourceOfTruth?: LifeOpsConnectorSourceOfTruth;
|
|
1531
|
+
configured?: boolean;
|
|
1106
1532
|
connected: boolean;
|
|
1533
|
+
reason?: "connected" | "disconnected" | "config_missing" | "needs_reauth";
|
|
1534
|
+
preferredByAgent?: boolean;
|
|
1535
|
+
cloudConnectionId?: string | null;
|
|
1107
1536
|
grantedCapabilities: LifeOpsXCapability[];
|
|
1108
1537
|
grantedScopes: string[];
|
|
1109
1538
|
identity: Record<string, unknown> | null;
|
|
1110
1539
|
hasCredentials: boolean;
|
|
1540
|
+
feedRead: boolean;
|
|
1541
|
+
feedWrite: boolean;
|
|
1542
|
+
dmRead: boolean;
|
|
1543
|
+
dmWrite: boolean;
|
|
1111
1544
|
/**
|
|
1112
|
-
* DM inbound read is supported when `x.read` capability is granted.
|
|
1545
|
+
* DM inbound read is supported when `x.dm.read` capability is granted.
|
|
1113
1546
|
* Use `syncXDms()` to pull and persist, then `getXDms()` or
|
|
1114
1547
|
* `readXInboundDms()` to retrieve.
|
|
1115
1548
|
*/
|
|
1116
1549
|
dmInbound: boolean;
|
|
1117
1550
|
grant: LifeOpsConnectorGrant | null;
|
|
1551
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1118
1552
|
}
|
|
1119
1553
|
export declare const LIFEOPS_MESSAGING_CONNECTOR_REASONS: readonly ["connected", "disconnected", "pairing", "auth_pending", "auth_expired", "session_revoked"];
|
|
1120
1554
|
export type LifeOpsMessagingConnectorReason = (typeof LIFEOPS_MESSAGING_CONNECTOR_REASONS)[number];
|
|
@@ -1132,6 +1566,29 @@ export interface LifeOpsSignalConnectorStatus {
|
|
|
1132
1566
|
grantedCapabilities: LifeOpsSignalCapability[];
|
|
1133
1567
|
pairing: LifeOpsSignalPairingStatus | null;
|
|
1134
1568
|
grant: LifeOpsConnectorGrant | null;
|
|
1569
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1570
|
+
}
|
|
1571
|
+
/**
|
|
1572
|
+
* A single inbound Signal message as returned by {@link readSignalInbound} and
|
|
1573
|
+
* the signal-local-client reader.
|
|
1574
|
+
*/
|
|
1575
|
+
export interface LifeOpsSignalInboundMessage {
|
|
1576
|
+
/** Stable message ID (from the Signal service memory store or signal-cli). */
|
|
1577
|
+
id: string;
|
|
1578
|
+
/** elizaOS room ID this message was placed into. */
|
|
1579
|
+
roomId: string;
|
|
1580
|
+
/** Signal channel ID (typically the sender's phone number or group ID). */
|
|
1581
|
+
channelId: string;
|
|
1582
|
+
/** Display name of the sender. */
|
|
1583
|
+
speakerName: string;
|
|
1584
|
+
/** Plain-text body of the message. */
|
|
1585
|
+
text: string;
|
|
1586
|
+
/** Unix millisecond timestamp of the message. */
|
|
1587
|
+
createdAt: number;
|
|
1588
|
+
/** True when the message was sent by a contact (not by the agent's account). */
|
|
1589
|
+
isInbound: boolean;
|
|
1590
|
+
/** True when the message was received in a group conversation. */
|
|
1591
|
+
isGroup: boolean;
|
|
1135
1592
|
}
|
|
1136
1593
|
export interface LifeOpsDiscordDmPreview {
|
|
1137
1594
|
channelId: string | null;
|
|
@@ -1194,11 +1651,18 @@ export interface LifeOpsDiscordConnectorStatus {
|
|
|
1194
1651
|
/** Owner-side browser options for reaching the user's real Discord session. */
|
|
1195
1652
|
browserAccess?: LifeOpsOwnerBrowserAccessStatus[];
|
|
1196
1653
|
grant: LifeOpsConnectorGrant | null;
|
|
1654
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1197
1655
|
}
|
|
1198
1656
|
export declare const LIFEOPS_TELEGRAM_AUTH_STATES: readonly ["idle", "waiting_for_provisioning_code", "waiting_for_code", "waiting_for_password", "connected", "error"];
|
|
1199
1657
|
export type LifeOpsTelegramAuthState = (typeof LIFEOPS_TELEGRAM_AUTH_STATES)[number];
|
|
1200
1658
|
export interface LifeOpsWhatsAppConnectorStatus {
|
|
1201
1659
|
provider: "whatsapp";
|
|
1660
|
+
/**
|
|
1661
|
+
* `connected` here means credentials are present in env; it does NOT imply
|
|
1662
|
+
* a live network probe has been performed. A live send can still fail if
|
|
1663
|
+
* the token has been revoked upstream. Callers that need true liveness
|
|
1664
|
+
* must catch errors from the actual send/receive methods.
|
|
1665
|
+
*/
|
|
1202
1666
|
connected: boolean;
|
|
1203
1667
|
/**
|
|
1204
1668
|
* Inbound is always true for WhatsApp. Messages arrive via webhook push and
|
|
@@ -1207,6 +1671,7 @@ export interface LifeOpsWhatsAppConnectorStatus {
|
|
|
1207
1671
|
inbound: true;
|
|
1208
1672
|
phoneNumberId?: string;
|
|
1209
1673
|
lastCheckedAt: string;
|
|
1674
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1210
1675
|
}
|
|
1211
1676
|
export interface LifeOpsTelegramConnectorStatus {
|
|
1212
1677
|
provider: "telegram";
|
|
@@ -1226,6 +1691,7 @@ export interface LifeOpsTelegramConnectorStatus {
|
|
|
1226
1691
|
managedCredentialsAvailable: boolean;
|
|
1227
1692
|
storedCredentialsAvailable: boolean;
|
|
1228
1693
|
grant: LifeOpsConnectorGrant | null;
|
|
1694
|
+
degradations?: LifeOpsConnectorDegradation[];
|
|
1229
1695
|
}
|
|
1230
1696
|
export interface LifeOpsTelegramDialogSummary {
|
|
1231
1697
|
id: string;
|
|
@@ -1322,13 +1788,32 @@ export interface DisconnectLifeOpsGoogleConnectorRequest {
|
|
|
1322
1788
|
mode?: LifeOpsConnectorMode;
|
|
1323
1789
|
}
|
|
1324
1790
|
export interface UpsertLifeOpsXConnectorRequest {
|
|
1791
|
+
side?: LifeOpsConnectorSide;
|
|
1325
1792
|
mode?: LifeOpsConnectorMode;
|
|
1326
1793
|
capabilities: LifeOpsXCapability[];
|
|
1327
1794
|
grantedScopes?: string[];
|
|
1328
1795
|
identity?: Record<string, unknown>;
|
|
1329
1796
|
metadata?: Record<string, unknown>;
|
|
1330
1797
|
}
|
|
1798
|
+
export interface StartLifeOpsXConnectorRequest {
|
|
1799
|
+
side?: LifeOpsConnectorSide;
|
|
1800
|
+
mode?: LifeOpsConnectorMode;
|
|
1801
|
+
redirectUrl?: string;
|
|
1802
|
+
}
|
|
1803
|
+
export interface StartLifeOpsXConnectorResponse {
|
|
1804
|
+
provider: "x";
|
|
1805
|
+
side: LifeOpsConnectorSide;
|
|
1806
|
+
mode: LifeOpsConnectorMode;
|
|
1807
|
+
requestedCapabilities: LifeOpsXCapability[];
|
|
1808
|
+
redirectUri: string;
|
|
1809
|
+
authUrl: string;
|
|
1810
|
+
}
|
|
1811
|
+
export interface DisconnectLifeOpsXConnectorRequest {
|
|
1812
|
+
side?: LifeOpsConnectorSide;
|
|
1813
|
+
mode?: LifeOpsConnectorMode;
|
|
1814
|
+
}
|
|
1331
1815
|
export interface CreateLifeOpsXPostRequest {
|
|
1816
|
+
side?: LifeOpsConnectorSide;
|
|
1332
1817
|
mode?: LifeOpsConnectorMode;
|
|
1333
1818
|
text: string;
|
|
1334
1819
|
confirmPost?: boolean;
|
|
@@ -1338,7 +1823,7 @@ export interface LifeOpsXPostResponse {
|
|
|
1338
1823
|
status: number | null;
|
|
1339
1824
|
postId?: string;
|
|
1340
1825
|
error?: string;
|
|
1341
|
-
category: "success" | "auth" | "rate_limit" | "network" | "unknown";
|
|
1826
|
+
category: "success" | "auth" | "rate_limit" | "network" | "invalid" | "unknown";
|
|
1342
1827
|
}
|
|
1343
1828
|
export interface CreateLifeOpsDefinitionRequest {
|
|
1344
1829
|
ownership?: LifeOpsOwnershipInput;
|
|
@@ -1447,6 +1932,47 @@ export interface LifeOpsGoalReview {
|
|
|
1447
1932
|
semanticReviewedAt?: string | null;
|
|
1448
1933
|
};
|
|
1449
1934
|
}
|
|
1935
|
+
export interface LifeOpsGoalExperienceLoopSuggestion {
|
|
1936
|
+
sourceGoalId: string;
|
|
1937
|
+
definitionId: string | null;
|
|
1938
|
+
title: string;
|
|
1939
|
+
detail: string;
|
|
1940
|
+
}
|
|
1941
|
+
export interface LifeOpsGoalExperienceLoopMatch {
|
|
1942
|
+
goalId: string;
|
|
1943
|
+
title: string;
|
|
1944
|
+
description: string;
|
|
1945
|
+
score: number;
|
|
1946
|
+
status: LifeOpsGoalStatus;
|
|
1947
|
+
reviewState: LifeOpsGoalReviewState;
|
|
1948
|
+
linkedDefinitionCount: number;
|
|
1949
|
+
completedLast7Days: number;
|
|
1950
|
+
lastActivityAt: string | null;
|
|
1951
|
+
explanation: string;
|
|
1952
|
+
carryForwardSuggestions: LifeOpsGoalExperienceLoopSuggestion[];
|
|
1953
|
+
}
|
|
1954
|
+
export interface LifeOpsGoalExperienceLoop {
|
|
1955
|
+
referenceGoalId: string | null;
|
|
1956
|
+
referenceTitle: string;
|
|
1957
|
+
similarGoals: LifeOpsGoalExperienceLoopMatch[];
|
|
1958
|
+
suggestedCarryForward: LifeOpsGoalExperienceLoopSuggestion[];
|
|
1959
|
+
summary: string | null;
|
|
1960
|
+
}
|
|
1961
|
+
export interface LifeOpsWeeklyGoalReview {
|
|
1962
|
+
generatedAt: string;
|
|
1963
|
+
reviewWindow: "this_week";
|
|
1964
|
+
summary: {
|
|
1965
|
+
totalGoals: number;
|
|
1966
|
+
onTrackCount: number;
|
|
1967
|
+
atRiskCount: number;
|
|
1968
|
+
needsAttentionCount: number;
|
|
1969
|
+
idleCount: number;
|
|
1970
|
+
};
|
|
1971
|
+
onTrack: LifeOpsGoalReview[];
|
|
1972
|
+
atRisk: LifeOpsGoalReview[];
|
|
1973
|
+
needsAttention: LifeOpsGoalReview[];
|
|
1974
|
+
idle: LifeOpsGoalReview[];
|
|
1975
|
+
}
|
|
1450
1976
|
export interface LifeOpsDefinitionPerformanceWindow {
|
|
1451
1977
|
scheduledCount: number;
|
|
1452
1978
|
completedCount: number;
|
|
@@ -1530,6 +2056,26 @@ export interface CaptureLifeOpsActivitySignalRequest {
|
|
|
1530
2056
|
health?: LifeOpsHealthSignal | null;
|
|
1531
2057
|
metadata?: Record<string, unknown>;
|
|
1532
2058
|
}
|
|
2059
|
+
/**
|
|
2060
|
+
* User-attested circadian override. Emitted with maximum reliability weight;
|
|
2061
|
+
* force-transitions the state machine. See `sleep-wake-spec.md` §2 (manual
|
|
2062
|
+
* override row in the transition table).
|
|
2063
|
+
*/
|
|
2064
|
+
export declare const LIFEOPS_MANUAL_OVERRIDE_KINDS: readonly ["going_to_bed", "just_woke_up"];
|
|
2065
|
+
export type LifeOpsManualOverrideKind = (typeof LIFEOPS_MANUAL_OVERRIDE_KINDS)[number];
|
|
2066
|
+
export interface CaptureLifeOpsManualOverrideRequest {
|
|
2067
|
+
kind: LifeOpsManualOverrideKind;
|
|
2068
|
+
occurredAt?: string;
|
|
2069
|
+
/** Optional user note capped at 500 chars. */
|
|
2070
|
+
note?: string;
|
|
2071
|
+
}
|
|
2072
|
+
export interface LifeOpsManualOverrideResult {
|
|
2073
|
+
accepted: true;
|
|
2074
|
+
kind: LifeOpsManualOverrideKind;
|
|
2075
|
+
occurredAt: string;
|
|
2076
|
+
circadianState: LifeOpsCircadianState;
|
|
2077
|
+
stateConfidence: number;
|
|
2078
|
+
}
|
|
1533
2079
|
export interface ProcessLifeOpsRemindersRequest {
|
|
1534
2080
|
now?: string;
|
|
1535
2081
|
limit?: number;
|
|
@@ -1627,6 +2173,11 @@ export interface CreateLifeOpsBrowserSessionRequest {
|
|
|
1627
2173
|
export interface ConfirmLifeOpsBrowserSessionRequest {
|
|
1628
2174
|
confirmed: boolean;
|
|
1629
2175
|
}
|
|
2176
|
+
export interface UpdateLifeOpsBrowserSessionProgressRequest {
|
|
2177
|
+
currentActionIndex?: number;
|
|
2178
|
+
result?: Record<string, unknown>;
|
|
2179
|
+
metadata?: Record<string, unknown>;
|
|
2180
|
+
}
|
|
1630
2181
|
export interface CompleteLifeOpsBrowserSessionRequest {
|
|
1631
2182
|
status?: Extract<LifeOpsBrowserSessionStatus, "done" | "failed">;
|
|
1632
2183
|
result?: Record<string, unknown>;
|