@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.
@@ -18,6 +18,8 @@ var HAEXTENSION_EVENTS = {
18
18
  var EXTERNAL_EVENTS = {
19
19
  /** External request from authorized client */
20
20
  REQUEST: "haextension:external:request",
21
+ /** AI action request (tool calls from AI assistant) */
22
+ ACTION_REQUEST: "haextension:action:request",
21
23
  /** New external client requesting authorization */
22
24
  AUTHORIZATION_REQUEST: "external:authorization-request"
23
25
  };
@@ -1457,6 +1459,24 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1457
1459
  } catch (error) {
1458
1460
  log("Failed to setup external request listener:", error);
1459
1461
  }
1462
+ try {
1463
+ await listen(EXTERNAL_EVENTS.ACTION_REQUEST, (event) => {
1464
+ log("====== AI ACTION REQUEST RECEIVED ======");
1465
+ log("Payload:", JSON.stringify(event.payload));
1466
+ if (event.payload) {
1467
+ onEvent({
1468
+ type: EXTERNAL_EVENTS.ACTION_REQUEST,
1469
+ data: event.payload,
1470
+ timestamp: Date.now()
1471
+ });
1472
+ } else {
1473
+ log("AI action request event has no payload!");
1474
+ }
1475
+ });
1476
+ log("AI action request listener registered successfully");
1477
+ } catch (error) {
1478
+ log("Failed to setup AI action request listener:", error);
1479
+ }
1460
1480
  log("Registering file change listener for:", HAEXTENSION_EVENTS.FILE_CHANGED);
1461
1481
  try {
1462
1482
  await listen(HAEXTENSION_EVENTS.FILE_CHANGED, (event) => {
@@ -1776,7 +1796,7 @@ function createMessageHandler(config, pendingRequests, extensionInfo, onEvent) {
1776
1796
  }
1777
1797
  };
1778
1798
  }
1779
- function processEvent(event, log, eventListeners, onContextChanged, onExternalRequest) {
1799
+ function processEvent(event, log, eventListeners, onContextChanged, onExternalRequest, onActionRequest) {
1780
1800
  if (event.type === HAEXTENSION_EVENTS.CONTEXT_CHANGED) {
1781
1801
  const contextEvent = event;
1782
1802
  onContextChanged(contextEvent.data.context);
@@ -1787,6 +1807,13 @@ function processEvent(event, log, eventListeners, onContextChanged, onExternalRe
1787
1807
  onExternalRequest(externalEvent);
1788
1808
  return;
1789
1809
  }
1810
+ if (event.type === EXTERNAL_EVENTS.ACTION_REQUEST) {
1811
+ const actionEvent = event;
1812
+ if (onActionRequest) {
1813
+ onActionRequest(actionEvent);
1814
+ }
1815
+ return;
1816
+ }
1790
1817
  emitEvent(event, log, eventListeners);
1791
1818
  }
1792
1819
  function emitEvent(event, log, eventListeners) {
@@ -1923,6 +1950,12 @@ async function respondToExternalRequest(response, request) {
1923
1950
  await request(EXTERNAL_BRIDGE_COMMANDS.respond, response);
1924
1951
  }
1925
1952
 
1953
+ // src/commands/ai.ts
1954
+ var AI_COMMANDS = {
1955
+ /** Respond to an AI action request */
1956
+ actionRespond: "ai_action_respond"
1957
+ };
1958
+
1926
1959
  // src/client.ts
1927
1960
  var HaexVaultSdk = class {
1928
1961
  constructor(config = {}) {
@@ -1944,6 +1977,12 @@ var HaexVaultSdk = class {
1944
1977
  this.setupHook = null;
1945
1978
  // Public APIs
1946
1979
  this.orm = null;
1980
+ /** Unified action system - register handlers that work for both Bridge and AI requests */
1981
+ this.actions = {
1982
+ register: (action, handler) => {
1983
+ return this.onExternalRequest(action, handler);
1984
+ }
1985
+ };
1947
1986
  this.config = {
1948
1987
  debug: config.debug ?? false,
1949
1988
  timeout: config.timeout ?? DEFAULT_TIMEOUT,
@@ -2233,12 +2272,23 @@ var HaexVaultSdk = class {
2233
2272
  this._context = ctx;
2234
2273
  this.notifySubscribersInternal();
2235
2274
  },
2236
- (extEvent) => this.handleExternalRequestInternal(extEvent.data)
2275
+ (extEvent) => this.handleExternalRequestInternal(extEvent.data),
2276
+ (actionEvent) => this.handleActionRequestInternal(actionEvent.data)
2237
2277
  );
2238
2278
  }
2239
2279
  async handleExternalRequestInternal(request) {
2240
2280
  await handleExternalRequest(request, this.externalRequestHandlers, this.respondToExternalRequest.bind(this), this.log.bind(this));
2241
2281
  }
2282
+ async handleActionRequestInternal(request) {
2283
+ await handleExternalRequest(
2284
+ request,
2285
+ this.externalRequestHandlers,
2286
+ async (response) => {
2287
+ await this.request(AI_COMMANDS.actionRespond, response);
2288
+ },
2289
+ this.log.bind(this)
2290
+ );
2291
+ }
2242
2292
  // ==========================================================================
2243
2293
  // Private: Setup
2244
2294
  // ==========================================================================