@agentvault/agentvault 0.19.57 → 0.19.59

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.
Files changed (66) hide show
  1. package/dist/_cp.d.ts +10 -0
  2. package/dist/_cp.d.ts.map +1 -0
  3. package/dist/account-config.d.ts +20 -0
  4. package/dist/account-config.d.ts.map +1 -0
  5. package/dist/channel.d.ts +389 -0
  6. package/dist/channel.d.ts.map +1 -0
  7. package/dist/cli.d.ts +2 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +47 -416
  10. package/dist/cli.js.map +2 -2
  11. package/dist/create-agent.d.ts +28 -0
  12. package/dist/create-agent.d.ts.map +1 -0
  13. package/dist/credential-store.d.ts +62 -0
  14. package/dist/credential-store.d.ts.map +1 -0
  15. package/dist/crypto-helpers.d.ts +2 -0
  16. package/dist/crypto-helpers.d.ts.map +1 -0
  17. package/dist/doctor.d.ts +41 -0
  18. package/dist/doctor.d.ts.map +1 -0
  19. package/dist/fetch-interceptor.d.ts +32 -0
  20. package/dist/fetch-interceptor.d.ts.map +1 -0
  21. package/dist/gateway-send.d.ts +98 -0
  22. package/dist/gateway-send.d.ts.map +1 -0
  23. package/dist/http-handlers.d.ts +53 -0
  24. package/dist/http-handlers.d.ts.map +1 -0
  25. package/dist/index.d.ts +27 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +47 -416
  28. package/dist/index.js.map +2 -2
  29. package/dist/mcp-handlers.d.ts +26 -0
  30. package/dist/mcp-handlers.d.ts.map +1 -0
  31. package/dist/mcp-proxy-helpers.d.ts +9 -0
  32. package/dist/mcp-proxy-helpers.d.ts.map +1 -0
  33. package/dist/mcp-server.d.ts +91 -0
  34. package/dist/mcp-server.d.ts.map +1 -0
  35. package/dist/mls-state.d.ts +16 -0
  36. package/dist/mls-state.d.ts.map +1 -0
  37. package/dist/openclaw-compat.d.ts +33 -0
  38. package/dist/openclaw-compat.d.ts.map +1 -0
  39. package/dist/openclaw-entry.d.ts +32 -0
  40. package/dist/openclaw-entry.d.ts.map +1 -0
  41. package/dist/openclaw-plugin.d.ts +102 -0
  42. package/dist/openclaw-plugin.d.ts.map +1 -0
  43. package/dist/openclaw-types.d.ts +186 -0
  44. package/dist/openclaw-types.d.ts.map +1 -0
  45. package/dist/policy-enforcer.d.ts +78 -0
  46. package/dist/policy-enforcer.d.ts.map +1 -0
  47. package/dist/setup.d.ts +27 -0
  48. package/dist/setup.d.ts.map +1 -0
  49. package/dist/skill-invoker.d.ts +30 -0
  50. package/dist/skill-invoker.d.ts.map +1 -0
  51. package/dist/skill-manifest.d.ts +30 -0
  52. package/dist/skill-manifest.d.ts.map +1 -0
  53. package/dist/skill-telemetry.d.ts +36 -0
  54. package/dist/skill-telemetry.d.ts.map +1 -0
  55. package/dist/skills-publish.d.ts +8 -0
  56. package/dist/skills-publish.d.ts.map +1 -0
  57. package/dist/state.d.ts +32 -0
  58. package/dist/state.d.ts.map +1 -0
  59. package/dist/transport.d.ts +24 -0
  60. package/dist/transport.d.ts.map +1 -0
  61. package/dist/types.d.ts +421 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/workspace-handlers.d.ts +62 -0
  64. package/dist/workspace-handlers.d.ts.map +1 -0
  65. package/openclaw.plugin.json +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Skill invocation lifecycle — auth, execute, record, bill.
3
+ *
4
+ * Sets _instrument.skillName so all child spans are attributed to the skill.
5
+ */
6
+ export interface InvocationResult {
7
+ success: boolean;
8
+ data?: unknown;
9
+ error?: string;
10
+ latencyMs: number;
11
+ toolsUsed?: string[];
12
+ }
13
+ export interface InvocationOpts {
14
+ skillName: string;
15
+ skillVersion?: string;
16
+ args: Record<string, unknown>;
17
+ sptToken?: string;
18
+ apiUrl: string;
19
+ apiKey?: string;
20
+ }
21
+ /**
22
+ * Execute a skill invocation with full lifecycle tracking.
23
+ *
24
+ * 1. Validates SPT token (if provided)
25
+ * 2. Dispatches to the skill handler
26
+ * 3. Records invocation via POST /capabilities/invocations
27
+ * 4. Returns result with timing data
28
+ */
29
+ export declare function invokeSkill(opts: InvocationOpts, handler: (skillName: string, args: Record<string, unknown>) => Promise<unknown>): Promise<InvocationResult>;
30
+ //# sourceMappingURL=skill-invoker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-invoker.d.ts","sourceRoot":"","sources":["../src/skill-invoker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAC9E,OAAO,CAAC,gBAAgB,CAAC,CA6C3B"}
@@ -0,0 +1,30 @@
1
+ import type { SkillDefinition } from "./mcp-server.js";
2
+ export interface SkillManifest {
3
+ skills: SkillDefinition[];
4
+ source: "local" | "remote" | "merged";
5
+ }
6
+ /**
7
+ * Parse a SKILL.md file into a SkillDefinition.
8
+ *
9
+ * Extracts YAML frontmatter between --- delimiters.
10
+ * Everything after the closing --- is treated as instructions.
11
+ */
12
+ export declare function parseSkillMd(content: string): SkillDefinition | null;
13
+ /**
14
+ * Load skills from a directory by scanning for SKILL.md files.
15
+ *
16
+ * Matches:
17
+ * - SKILL.md (exact match)
18
+ * - *-SKILL.md or *_SKILL.md (e.g., Cortina-SKILL.md)
19
+ * - Subdirectories containing SKILL.md (one level deep)
20
+ */
21
+ export declare function loadSkillsFromDirectory(dir: string): SkillDefinition[];
22
+ /**
23
+ * Load skills from backend API.
24
+ */
25
+ export declare function loadSkillsFromApi(apiUrl: string, apiKey: string, hubId: string): Promise<SkillDefinition[]>;
26
+ /**
27
+ * Merge local and remote skills. Local definitions take precedence.
28
+ */
29
+ export declare function mergeSkills(local: SkillDefinition[], remote: SkillDefinition[]): SkillManifest;
30
+ //# sourceMappingURL=skill-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../src/skill-manifest.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACvC;AAoCD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmDpE;AAsFD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCtE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CA+B5B;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EAAE,EACxB,MAAM,EAAE,eAAe,EAAE,GACxB,aAAa,CAwBf"}
@@ -0,0 +1,36 @@
1
+ import type { TelemetrySpan, InstrumentationContext } from "@agentvault/crypto";
2
+ /**
3
+ * Get and clear the buffered spans (for batch reporting).
4
+ */
5
+ export declare function drainSkillSpans(): TelemetrySpan[];
6
+ /**
7
+ * Wrap a skill execution with lifecycle telemetry spans.
8
+ *
9
+ * Creates two spans:
10
+ * 1. start — emitted immediately when invocation begins
11
+ * 2. completion — emitted when execution completes (success or error)
12
+ *
13
+ * @param skillName — name of the skill being executed
14
+ * @param version — semver version of the skill
15
+ * @param fn — the async function to execute
16
+ * @param instrument — optional InstrumentationContext for direct reporting
17
+ * @returns The result of fn()
18
+ */
19
+ export declare function wrapSkillExecution<T>(skillName: string, version: string | undefined, fn: () => Promise<T>, instrument?: InstrumentationContext): Promise<T>;
20
+ /**
21
+ * Report a completed skill invocation with full metadata.
22
+ * Used for post-hoc reporting when the caller has already collected metrics.
23
+ */
24
+ export declare function reportSkillInvocation(opts: {
25
+ skillName: string;
26
+ version?: string;
27
+ latencyMs: number;
28
+ success: boolean;
29
+ inputTokens?: number;
30
+ outputTokens?: number;
31
+ costCents?: number;
32
+ toolsUsed?: string[];
33
+ schemaMatch?: boolean;
34
+ errorMessage?: string;
35
+ }): TelemetrySpan;
36
+ //# sourceMappingURL=skill-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-telemetry.d.ts","sourceRoot":"","sources":["../src/skill-telemetry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIhF;;GAEG;AACH,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAIjD;AAeD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,sBAAsB,GAClC,OAAO,CAAC,CAAC,CAAC,CAsFZ;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,aAAa,CAkBhB"}
@@ -0,0 +1,8 @@
1
+ interface PublishOpts {
2
+ manifest?: string;
3
+ apiKey?: string;
4
+ apiUrl: string;
5
+ }
6
+ export declare function publishSkills(opts: PublishOpts): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=skills-publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-publish.d.ts","sourceRoot":"","sources":["../src/skills-publish.ts"],"names":[],"mappings":"AAiCA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkJpE"}
@@ -0,0 +1,32 @@
1
+ import type { PersistedState } from "./types.js";
2
+ export declare function saveState(dataDir: string, state: PersistedState): Promise<void>;
3
+ /**
4
+ * Load raw persisted state from disk.
5
+ * Returns the raw parsed JSON — caller is responsible for migration
6
+ * from legacy format to current PersistedState.
7
+ *
8
+ * Checks agentvault.json first, falls back to secure-channel.json
9
+ * for backward compatibility. Auto-migrates on first legacy load.
10
+ */
11
+ export declare function loadState(dataDir: string): Promise<any | null>;
12
+ /**
13
+ * Check whether persisted state is valid and usable (has deviceId, deviceJwt, and at least one session).
14
+ */
15
+ export declare function isStateValid(dataDir: string): Promise<boolean>;
16
+ /**
17
+ * Create a backup of the state file (atomic write via tmp + rename).
18
+ * Silent no-op if no state file exists.
19
+ */
20
+ export declare function backupState(dataDir: string): Promise<void>;
21
+ /**
22
+ * Restore state from backup if primary state is missing/empty/invalid but .bak exists and is valid.
23
+ * Returns true if state was successfully restored.
24
+ */
25
+ export declare function restoreState(dataDir: string): Promise<boolean>;
26
+ /**
27
+ * Upload encrypted backup to server. Converts PersistedState → BackupBundle,
28
+ * encrypts with backup code, and PUTs to the backend.
29
+ */
30
+ export declare function uploadBackupToServer(state: PersistedState, backupCode: string, apiUrl: string, deviceJwt: string): Promise<void>;
31
+ export declare function clearState(dataDir: string): Promise<void>;
32
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASjD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,GAEd,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAuBrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAepE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBpE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/D"}
@@ -0,0 +1,24 @@
1
+ export interface EnrollResponse {
2
+ device_id: string;
3
+ fingerprint: string;
4
+ status: string;
5
+ }
6
+ export interface StatusResponse {
7
+ device_id: string;
8
+ status: string;
9
+ fingerprint: string;
10
+ }
11
+ export interface ActivateResponse {
12
+ device_id: string;
13
+ conversation_id: string;
14
+ status: string;
15
+ device_jwt: string;
16
+ owner_identity_public_key: string;
17
+ owner_ephemeral_public_key: string | null;
18
+ }
19
+ export declare function enrollDevice(apiUrl: string, inviteToken: string, identityPkHex: string, ephemeralPkHex: string, proofHex: string, platform?: string): Promise<EnrollResponse>;
20
+ export declare function pollDeviceStatus(apiUrl: string, deviceId: string): Promise<StatusResponse & {
21
+ rateLimited?: boolean;
22
+ }>;
23
+ export declare function activateDevice(apiUrl: string, deviceId: string): Promise<ActivateResponse>;
24
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAiBzB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAWrD;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAW3B"}
@@ -0,0 +1,421 @@
1
+ export interface SecureChannelConfig {
2
+ inviteToken: string;
3
+ dataDir: string;
4
+ apiUrl: string;
5
+ agentName?: string;
6
+ agentVersion?: string;
7
+ platform?: string;
8
+ maxHistorySize?: number;
9
+ webhookUrl?: string;
10
+ httpPort?: number;
11
+ onMessage?: (plaintext: string, metadata: MessageMetadata) => void;
12
+ onStateChange?: (state: ChannelState) => void;
13
+ onA2AMessage?: (msg: A2AMessage) => void;
14
+ /** Called when an A2A channel becomes ready (approved or activated). */
15
+ onA2AChannelReady?: (info: {
16
+ channelId: string;
17
+ peerHubAddress: string;
18
+ role: "initiator" | "responder";
19
+ conversationId: string;
20
+ topic?: string;
21
+ }) => void;
22
+ /** Enable client-side policy scanning. If true, rules are fetched on connect. */
23
+ enableScanning?: boolean;
24
+ /** If set, auto-backup encrypted state to server after state changes. */
25
+ backupCode?: string;
26
+ }
27
+ export type ChannelState = "idle" | "enrolling" | "polling" | "activating" | "connecting" | "ready" | "disconnected" | "error";
28
+ export interface AttachmentData {
29
+ filename: string;
30
+ mime: string;
31
+ size: number;
32
+ filePath: string;
33
+ /** Base64-encoded decrypted content (for images passed to LLM vision) */
34
+ base64?: string;
35
+ /** Extracted text content (for text-based files) */
36
+ textContent?: string;
37
+ }
38
+ export interface MessageMetadata {
39
+ messageId: string;
40
+ conversationId: string;
41
+ timestamp: string;
42
+ topicId?: string;
43
+ attachment?: AttachmentData;
44
+ spanId?: string;
45
+ parentSpanId?: string;
46
+ messageType?: string;
47
+ priority?: string;
48
+ envelopeVersion?: string;
49
+ /** Set when the message originated from a multi-agent room */
50
+ roomId?: string;
51
+ /** Device ID of the sender (room messages only) */
52
+ senderDeviceId?: string;
53
+ /** Whether the sender is an agent (vs owner) — room messages only */
54
+ senderIsAgent?: boolean;
55
+ /** Display name of the sender (room messages only) */
56
+ senderName?: string;
57
+ /** Human-readable room name (room messages only) */
58
+ roomName?: string;
59
+ }
60
+ export interface SendOptions {
61
+ /** Target a specific conversation instead of broadcasting to all sessions */
62
+ conversationId?: string;
63
+ topicId?: string;
64
+ messageType?: string;
65
+ priority?: string;
66
+ parentSpanId?: string;
67
+ metadata?: Record<string, unknown>;
68
+ }
69
+ export interface DecisionOption {
70
+ option_id: string;
71
+ label: string;
72
+ risk_level: "low" | "medium" | "high" | "critical";
73
+ is_default?: boolean;
74
+ }
75
+ export interface ContextRef {
76
+ type: string;
77
+ uri: string;
78
+ label: string;
79
+ }
80
+ export interface DecisionRequest {
81
+ title: string;
82
+ description?: string;
83
+ options: DecisionOption[];
84
+ context_refs?: ContextRef[];
85
+ deadline?: string;
86
+ auto_action?: {
87
+ option_id: string;
88
+ trigger: string;
89
+ description?: string;
90
+ };
91
+ }
92
+ export interface DecisionResponse {
93
+ decision_id: string;
94
+ selected_option_id?: string;
95
+ resolved_at?: string;
96
+ action?: "approve" | "deny" | "defer";
97
+ defer_until?: string;
98
+ defer_reason?: string;
99
+ }
100
+ export interface HistoryEntry {
101
+ sender: "owner" | "agent";
102
+ text: string;
103
+ ts: string;
104
+ topicId?: string;
105
+ }
106
+ export interface DeviceSession {
107
+ ownerDeviceId: string;
108
+ ratchetState: string;
109
+ activated?: boolean;
110
+ epoch?: number;
111
+ }
112
+ export interface PersistedState {
113
+ deviceId: string;
114
+ deviceJwt: string;
115
+ primaryConversationId: string;
116
+ sessions: Record<string, DeviceSession>;
117
+ identityKeypair: {
118
+ publicKey: string;
119
+ privateKey: string;
120
+ };
121
+ ephemeralKeypair: {
122
+ publicKey: string;
123
+ privateKey: string;
124
+ };
125
+ fingerprint: string;
126
+ lastMessageTimestamp?: string;
127
+ messageHistory?: HistoryEntry[];
128
+ topics?: Array<{
129
+ id: string;
130
+ name: string;
131
+ isDefault: boolean;
132
+ }>;
133
+ defaultTopicId?: string;
134
+ groupId?: string;
135
+ hubAddress?: string;
136
+ hubId?: string;
137
+ agentHubId?: string;
138
+ agentRole?: "lead" | "peer";
139
+ ownerHubId?: string;
140
+ /** A2A channel state (agent-to-agent communication) */
141
+ a2aChannels?: Record<string, {
142
+ channelId: string;
143
+ hubAddress: string;
144
+ conversationId: string;
145
+ role?: "initiator" | "responder";
146
+ topic?: string;
147
+ mlsGroupId?: string;
148
+ }>;
149
+ /** Outbound messages queued while disconnected */
150
+ outboundQueue?: Array<{
151
+ convId: string;
152
+ headerBlob: string;
153
+ ciphertext: string;
154
+ messageGroupId: string;
155
+ topicId?: string;
156
+ }>;
157
+ /** Multi-agent room state */
158
+ rooms?: Record<string, RoomState>;
159
+ /** Last inbound room ID for sticky room routing across restarts */
160
+ lastInboundRoomId?: string;
161
+ /** Persisted message dedup IDs — survives restarts to prevent double-decrypt */
162
+ seenMessageIds?: string[];
163
+ /** Persisted A2A message dedup IDs */
164
+ seenA2AMessageIds?: string[];
165
+ /** Shadow mode skill configurations (synced from backend via WS) */
166
+ shadowSkills?: Record<string, {
167
+ sessionId: string;
168
+ autonomyLevel: "shadow" | "supervised" | "autonomous";
169
+ decisionClass: string;
170
+ }>;
171
+ /** MLS group state for 1:1 conversations (conversationId -> {mlsGroupId}) */
172
+ mlsConversations?: Record<string, {
173
+ mlsGroupId: string;
174
+ }>;
175
+ }
176
+ /** Legacy state format for backward compatibility */
177
+ export interface LegacyPersistedState {
178
+ deviceId: string;
179
+ deviceJwt: string;
180
+ conversationId: string;
181
+ identityKeypair: {
182
+ publicKey: string;
183
+ privateKey: string;
184
+ };
185
+ ephemeralKeypair: {
186
+ publicKey: string;
187
+ privateKey: string;
188
+ };
189
+ fingerprint: string;
190
+ ratchetState: string;
191
+ lastMessageTimestamp?: string;
192
+ }
193
+ export interface RoomMemberInfo {
194
+ deviceId: string;
195
+ entityType: string;
196
+ displayName: string;
197
+ identityPublicKey?: string;
198
+ ephemeralPublicKey?: string;
199
+ }
200
+ export interface RoomConversationInfo {
201
+ id: string;
202
+ participantA: string;
203
+ participantB: string;
204
+ }
205
+ export interface RoomInfo {
206
+ roomId: string;
207
+ name: string;
208
+ members: RoomMemberInfo[];
209
+ conversationIds: string[];
210
+ }
211
+ export interface RoomState {
212
+ roomId: string;
213
+ name: string;
214
+ conversationIds: string[];
215
+ members: RoomMemberInfo[];
216
+ /** MLS group identifier (set when room uses MLS encryption) */
217
+ mlsGroupId?: string;
218
+ /** ISO timestamp of last MLS message received in this room (for sync catch-up) */
219
+ lastMlsMessageTs?: string;
220
+ }
221
+ export interface HeartbeatStatus {
222
+ agent_status: string;
223
+ current_task: string;
224
+ }
225
+ export interface StatusAlert {
226
+ title: string;
227
+ message: string;
228
+ severity: "info" | "warning" | "error" | "critical";
229
+ detail?: string;
230
+ detailFormat?: "markdown" | "json" | "text";
231
+ category?: "performance" | "security" | "error" | "info";
232
+ }
233
+ export interface RoomParticipantEvent {
234
+ roomId: string;
235
+ participant: {
236
+ deviceId: string;
237
+ participantType: "human" | "agent";
238
+ displayName?: string;
239
+ };
240
+ }
241
+ export interface A2AChannel {
242
+ channelId: string;
243
+ initiatorHubAddress: string;
244
+ responderHubAddress: string;
245
+ conversationId: string | null;
246
+ status: "pending" | "approved" | "active" | "rejected" | "revoked";
247
+ createdAt: string;
248
+ }
249
+ export interface A2AMessage {
250
+ text: string;
251
+ fromHubAddress: string;
252
+ channelId: string;
253
+ conversationId: string;
254
+ parentSpanId?: string;
255
+ timestamp: string;
256
+ }
257
+ /** Explicit routing target for outbound messages. */
258
+ export type DeliveryTarget = {
259
+ kind: "owner";
260
+ } | {
261
+ kind: "room";
262
+ roomId: string;
263
+ } | {
264
+ kind: "a2a";
265
+ hubAddress: string;
266
+ } | {
267
+ kind: "context";
268
+ };
269
+ export interface ShadowRecommendation {
270
+ sessionId: string;
271
+ skillName: string;
272
+ decisionClass: string;
273
+ recommendedAction: string;
274
+ reasoningTrace?: string;
275
+ observationId: string;
276
+ }
277
+ /** Structured message content for the deliver() dispatcher. */
278
+ export type DeliveryContent = {
279
+ type: "text";
280
+ text: string;
281
+ } | {
282
+ type: "decision_request";
283
+ request: DecisionRequest;
284
+ } | {
285
+ type: "status_alert";
286
+ alert: StatusAlert;
287
+ } | {
288
+ type: "action_confirmation";
289
+ confirmation: ActionConfirmation;
290
+ } | {
291
+ type: "artifact";
292
+ artifact: ArtifactPayload;
293
+ } | {
294
+ type: "attachment";
295
+ text: string;
296
+ filePath: string;
297
+ } | {
298
+ type: "policy_alert";
299
+ alert: PolicyAlert;
300
+ } | {
301
+ type: "approval_request";
302
+ request: ApprovalRequest;
303
+ } | {
304
+ type: "approval_response";
305
+ response: ApprovalResponse;
306
+ } | {
307
+ type: "shadow_recommendation";
308
+ recommendation: ShadowRecommendation;
309
+ };
310
+ export interface ActionConfirmation {
311
+ action: string;
312
+ status: "completed" | "failed" | "partial";
313
+ decisionId?: string;
314
+ detail?: string;
315
+ estimated_cost?: number;
316
+ }
317
+ export interface ArtifactPayload {
318
+ filePath: string;
319
+ filename: string;
320
+ mimeType: string;
321
+ description?: string;
322
+ }
323
+ /** Notify agent owner of a policy violation. */
324
+ export interface PolicyAlert {
325
+ ruleId: string;
326
+ scope: "tool" | "model" | "rate" | "network" | "custom";
327
+ action: "block" | "warn" | "log";
328
+ violationType: string;
329
+ message: string;
330
+ skillName?: string;
331
+ toolName?: string;
332
+ model?: string;
333
+ timestamp?: string;
334
+ }
335
+ /** Human-in-the-loop gate for sensitive operations. */
336
+ export interface ApprovalRequest {
337
+ approvalId: string;
338
+ category: string;
339
+ title: string;
340
+ description: string;
341
+ details?: Record<string, unknown>;
342
+ expiresAt?: string;
343
+ requiredTier?: string;
344
+ }
345
+ /** Owner response to an approval request. */
346
+ export interface ApprovalResponse {
347
+ approvalId: string;
348
+ approved: boolean;
349
+ reason?: string;
350
+ conditions?: string[];
351
+ signature?: string;
352
+ }
353
+ export interface CredentialGrantPayload {
354
+ type: "credential_grant";
355
+ agreement_id: string;
356
+ credentials: Array<{
357
+ key: string;
358
+ value: string;
359
+ type: string;
360
+ scope: string;
361
+ }>;
362
+ timestamp: string;
363
+ nonce: string;
364
+ }
365
+ export interface CredentialRevokePayload {
366
+ type: "credential_revoke";
367
+ agreement_id: string;
368
+ credential_keys: string[];
369
+ reason?: string;
370
+ timestamp: string;
371
+ }
372
+ export interface CredentialAckPayload {
373
+ type: "credential_ack";
374
+ agreement_id: string;
375
+ acknowledged_keys: string[];
376
+ status: "stored" | "revoked";
377
+ timestamp: string;
378
+ }
379
+ export interface CredentialRequestPayload {
380
+ type: "credential_request";
381
+ agreement_id: string;
382
+ requested_keys: string[];
383
+ reason?: string;
384
+ timestamp: string;
385
+ }
386
+ export interface DeliveryOptions {
387
+ conversationId?: string;
388
+ topicId?: string;
389
+ priority?: string;
390
+ parentSpanId?: string;
391
+ metadata?: Record<string, unknown>;
392
+ }
393
+ export interface DeliveryReceipt {
394
+ ok: boolean;
395
+ destination: {
396
+ kind: "owner" | "room" | "a2a";
397
+ id?: string;
398
+ };
399
+ error?: string;
400
+ queued?: boolean;
401
+ decisionId?: string;
402
+ timestamp: string;
403
+ }
404
+ export interface TargetInfo {
405
+ kind: "owner" | "room" | "a2a";
406
+ id: string;
407
+ label: string;
408
+ available: boolean;
409
+ }
410
+ /**
411
+ * Parse a string target into a DeliveryTarget.
412
+ * Handles: "owner", "default", "room:<uuid>", "a2a:<hubAddr>", "context",
413
+ * "agentvault:room:<uuid>" (channel-prefixed), "agent:<name>" (→ a2a).
414
+ */
415
+ export declare function parseTarget(raw: string): DeliveryTarget;
416
+ export interface TrustTokenState {
417
+ token: string | null;
418
+ tier: string | null;
419
+ expiresAt: string | null;
420
+ }
421
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}