@haex-space/vault-sdk 2.6.5 → 2.7.0

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/dist/react.mjs CHANGED
@@ -384,6 +384,8 @@ var HAEXTENSION_EVENTS = {
384
384
  var EXTERNAL_EVENTS = {
385
385
  /** External request from authorized client */
386
386
  REQUEST: "haextension:external:request",
387
+ /** AI action request (tool calls from AI assistant) */
388
+ ACTION_REQUEST: "haextension:action:request",
387
389
  /** New external client requesting authorization */
388
390
  AUTHORIZATION_REQUEST: "external:authorization-request"
389
391
  };
@@ -1724,6 +1726,24 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1724
1726
  } catch (error) {
1725
1727
  log("Failed to setup external request listener:", error);
1726
1728
  }
1729
+ try {
1730
+ await listen(EXTERNAL_EVENTS.ACTION_REQUEST, (event) => {
1731
+ log("====== AI ACTION REQUEST RECEIVED ======");
1732
+ log("Payload:", JSON.stringify(event.payload));
1733
+ if (event.payload) {
1734
+ onEvent({
1735
+ type: EXTERNAL_EVENTS.ACTION_REQUEST,
1736
+ data: event.payload,
1737
+ timestamp: Date.now()
1738
+ });
1739
+ } else {
1740
+ log("AI action request event has no payload!");
1741
+ }
1742
+ });
1743
+ log("AI action request listener registered successfully");
1744
+ } catch (error) {
1745
+ log("Failed to setup AI action request listener:", error);
1746
+ }
1727
1747
  log("Registering file change listener for:", HAEXTENSION_EVENTS.FILE_CHANGED);
1728
1748
  try {
1729
1749
  await listen(HAEXTENSION_EVENTS.FILE_CHANGED, (event) => {
@@ -2043,7 +2063,7 @@ function createMessageHandler(config, pendingRequests, extensionInfo, onEvent) {
2043
2063
  }
2044
2064
  };
2045
2065
  }
2046
- function processEvent(event, log, eventListeners, onContextChanged, onExternalRequest) {
2066
+ function processEvent(event, log, eventListeners, onContextChanged, onExternalRequest, onActionRequest) {
2047
2067
  if (event.type === HAEXTENSION_EVENTS.CONTEXT_CHANGED) {
2048
2068
  const contextEvent = event;
2049
2069
  onContextChanged(contextEvent.data.context);
@@ -2054,6 +2074,13 @@ function processEvent(event, log, eventListeners, onContextChanged, onExternalRe
2054
2074
  onExternalRequest(externalEvent);
2055
2075
  return;
2056
2076
  }
2077
+ if (event.type === EXTERNAL_EVENTS.ACTION_REQUEST) {
2078
+ const actionEvent = event;
2079
+ if (onActionRequest) {
2080
+ onActionRequest(actionEvent);
2081
+ }
2082
+ return;
2083
+ }
2057
2084
  emitEvent(event, log, eventListeners);
2058
2085
  }
2059
2086
  function emitEvent(event, log, eventListeners) {
@@ -2190,6 +2217,12 @@ async function respondToExternalRequest(response, request) {
2190
2217
  await request(EXTERNAL_BRIDGE_COMMANDS.respond, response);
2191
2218
  }
2192
2219
 
2220
+ // src/commands/ai.ts
2221
+ var AI_COMMANDS = {
2222
+ /** Respond to an AI action request */
2223
+ actionRespond: "ai_action_respond"
2224
+ };
2225
+
2193
2226
  // src/client.ts
2194
2227
  var HaexVaultSdk = class {
2195
2228
  constructor(config = {}) {
@@ -2211,6 +2244,12 @@ var HaexVaultSdk = class {
2211
2244
  this.setupHook = null;
2212
2245
  // Public APIs
2213
2246
  this.orm = null;
2247
+ /** Unified action system - register handlers that work for both Bridge and AI requests */
2248
+ this.actions = {
2249
+ register: (action, handler) => {
2250
+ return this.onExternalRequest(action, handler);
2251
+ }
2252
+ };
2214
2253
  this.config = {
2215
2254
  debug: config.debug ?? false,
2216
2255
  timeout: config.timeout ?? DEFAULT_TIMEOUT,
@@ -2500,12 +2539,23 @@ var HaexVaultSdk = class {
2500
2539
  this._context = ctx;
2501
2540
  this.notifySubscribersInternal();
2502
2541
  },
2503
- (extEvent) => this.handleExternalRequestInternal(extEvent.data)
2542
+ (extEvent) => this.handleExternalRequestInternal(extEvent.data),
2543
+ (actionEvent) => this.handleActionRequestInternal(actionEvent.data)
2504
2544
  );
2505
2545
  }
2506
2546
  async handleExternalRequestInternal(request) {
2507
2547
  await handleExternalRequest(request, this.externalRequestHandlers, this.respondToExternalRequest.bind(this), this.log.bind(this));
2508
2548
  }
2549
+ async handleActionRequestInternal(request) {
2550
+ await handleExternalRequest(
2551
+ request,
2552
+ this.externalRequestHandlers,
2553
+ async (response) => {
2554
+ await this.request(AI_COMMANDS.actionRespond, response);
2555
+ },
2556
+ this.log.bind(this)
2557
+ );
2558
+ }
2509
2559
  // ==========================================================================
2510
2560
  // Private: Setup
2511
2561
  // ==========================================================================