@zapier/zapier-sdk 0.76.0 → 0.76.2

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/index.mjs CHANGED
@@ -6400,6 +6400,14 @@ function createMemoryCache() {
6400
6400
 
6401
6401
  // src/auth.ts
6402
6402
  var DEFAULT_AUTH_BASE_URL = "https://zapier.com";
6403
+ var AuthMechanism = /* @__PURE__ */ ((AuthMechanism2) => {
6404
+ AuthMechanism2["ClientCredentials"] = "client_credentials";
6405
+ AuthMechanism2["Jwt"] = "jwt";
6406
+ AuthMechanism2["Token"] = "token";
6407
+ AuthMechanism2["Pkce"] = "pkce";
6408
+ AuthMechanism2["None"] = "none";
6409
+ return AuthMechanism2;
6410
+ })(AuthMechanism || {});
6403
6411
  var pendingExchanges = /* @__PURE__ */ new Map();
6404
6412
  var cachedDefaultCache;
6405
6413
  function buildCacheKey(options) {
@@ -6577,7 +6585,7 @@ async function getTokenFromCliLogin(options) {
6577
6585
  if (!cliLogin) return void 0;
6578
6586
  return await cliLogin.getToken(options);
6579
6587
  }
6580
- async function tryStoredClientCredentialToken(options) {
6588
+ async function tryStoredClientCredentialAuth(options) {
6581
6589
  const activeCredential = await getActiveCredentialsFromCli(options.baseUrl);
6582
6590
  if (!activeCredential) return void 0;
6583
6591
  const resolvedBaseUrl = activeCredential.baseUrl || options.baseUrl || DEFAULT_AUTH_BASE_URL;
@@ -6592,15 +6600,25 @@ async function tryStoredClientCredentialToken(options) {
6592
6600
  });
6593
6601
  const cache = await resolveCache(options);
6594
6602
  const pending = pendingExchanges.get(cacheKey);
6595
- if (pending) return pending;
6603
+ if (pending) {
6604
+ return {
6605
+ token: await pending,
6606
+ mechanism: "client_credentials" /* ClientCredentials */,
6607
+ clientId: activeCredential.clientId
6608
+ };
6609
+ }
6596
6610
  const cached = await readCachedToken(cacheKey, cache);
6597
6611
  if (cached !== void 0) {
6598
6612
  if (options.debug)
6599
6613
  console.error(
6600
6614
  `[auth] Using cached token (clientId: ${activeCredential.clientId})`
6601
6615
  );
6602
- emitAuthResolved(options.onEvent, "client_credentials");
6603
- return cached;
6616
+ emitAuthResolved(options.onEvent, "client_credentials" /* ClientCredentials */);
6617
+ return {
6618
+ token: cached,
6619
+ mechanism: "client_credentials" /* ClientCredentials */,
6620
+ clientId: activeCredential.clientId
6621
+ };
6604
6622
  }
6605
6623
  const storedCredential = await getStoredClientCredentialsFromCli(resolvedBaseUrl);
6606
6624
  if (!storedCredential) {
@@ -6618,24 +6636,25 @@ async function tryStoredClientCredentialToken(options) {
6618
6636
  console.error(
6619
6637
  `[auth] Using stored client credential (clientId: ${storedCredential.clientId})`
6620
6638
  );
6621
- const token = await resolveAuthTokenFromCredentials(
6622
- storedCredential,
6623
- options
6624
- );
6625
- emitAuthResolved(options.onEvent, "client_credentials");
6626
- return token;
6639
+ const auth = await resolveAuthFromCredentials(storedCredential, options);
6640
+ emitAuthResolved(options.onEvent, "client_credentials" /* ClientCredentials */);
6641
+ return {
6642
+ token: auth.token,
6643
+ mechanism: "client_credentials" /* ClientCredentials */,
6644
+ clientId: activeCredential.clientId
6645
+ };
6627
6646
  }
6628
- async function resolveAuthToken(options = {}) {
6647
+ async function resolveAuth(options = {}) {
6629
6648
  const credentials = await resolveCredentials({
6630
6649
  credentials: options.credentials,
6631
6650
  token: options.token,
6632
6651
  baseUrl: options.baseUrl
6633
6652
  });
6634
6653
  if (credentials !== void 0) {
6635
- return resolveAuthTokenFromCredentials(credentials, options);
6654
+ return resolveAuthFromCredentials(credentials, options);
6636
6655
  }
6637
- const storedToken = await tryStoredClientCredentialToken(options);
6638
- if (storedToken !== void 0) return storedToken;
6656
+ const storedAuth = await tryStoredClientCredentialAuth(options);
6657
+ if (storedAuth !== void 0) return storedAuth;
6639
6658
  if (options.debug) {
6640
6659
  console.error("[auth] Using JWT (no stored client credential found)");
6641
6660
  }
@@ -6645,14 +6664,30 @@ async function resolveAuthToken(options = {}) {
6645
6664
  debug: options.debug
6646
6665
  });
6647
6666
  if (jwtToken !== void 0) {
6648
- emitAuthResolved(options.onEvent, "jwt");
6667
+ emitAuthResolved(options.onEvent, "jwt" /* Jwt */);
6668
+ return {
6669
+ token: jwtToken,
6670
+ mechanism: "jwt" /* Jwt */,
6671
+ clientId: null
6672
+ };
6649
6673
  }
6650
- return jwtToken;
6674
+ return {
6675
+ token: void 0,
6676
+ mechanism: "none" /* None */,
6677
+ clientId: null
6678
+ };
6679
+ }
6680
+ async function resolveAuthToken(options = {}) {
6681
+ return (await resolveAuth(options)).token;
6651
6682
  }
6652
- async function resolveAuthTokenFromCredentials(credentials, options) {
6683
+ async function resolveAuthFromCredentials(credentials, options) {
6653
6684
  if (typeof credentials === "string") {
6654
- emitAuthResolved(options.onEvent, "token");
6655
- return credentials;
6685
+ emitAuthResolved(options.onEvent, "token" /* Token */);
6686
+ return {
6687
+ token: credentials,
6688
+ mechanism: "token" /* Token */,
6689
+ clientId: null
6690
+ };
6656
6691
  }
6657
6692
  if (isClientCredentials(credentials)) {
6658
6693
  const { clientId } = credentials;
@@ -6669,10 +6704,20 @@ async function resolveAuthTokenFromCredentials(credentials, options) {
6669
6704
  if (options.debug) {
6670
6705
  console.error(`[auth] Using cached token (clientId: ${clientId})`);
6671
6706
  }
6672
- return cached;
6707
+ return {
6708
+ token: cached,
6709
+ mechanism: "client_credentials" /* ClientCredentials */,
6710
+ clientId: credentials.clientId
6711
+ };
6673
6712
  }
6674
6713
  const pending = pendingExchanges.get(cacheKey);
6675
- if (pending) return pending;
6714
+ if (pending) {
6715
+ return {
6716
+ token: await pending,
6717
+ mechanism: "client_credentials" /* ClientCredentials */,
6718
+ clientId: credentials.clientId
6719
+ };
6720
+ }
6676
6721
  const runLocked = async () => {
6677
6722
  const recheck = await readCachedToken(cacheKey, cache);
6678
6723
  if (recheck !== void 0) {
@@ -6705,7 +6750,11 @@ async function resolveAuthTokenFromCredentials(credentials, options) {
6705
6750
  pendingExchanges.delete(cacheKey);
6706
6751
  });
6707
6752
  pendingExchanges.set(cacheKey, exchangePromise);
6708
- return exchangePromise;
6753
+ return {
6754
+ token: await exchangePromise,
6755
+ mechanism: "client_credentials" /* ClientCredentials */,
6756
+ clientId: credentials.clientId
6757
+ };
6709
6758
  }
6710
6759
  if (isPkceCredentials(credentials)) {
6711
6760
  const storedToken = await getTokenFromCliLogin({
@@ -6715,7 +6764,11 @@ async function resolveAuthTokenFromCredentials(credentials, options) {
6715
6764
  debug: options.debug
6716
6765
  });
6717
6766
  if (storedToken) {
6718
- return storedToken;
6767
+ return {
6768
+ token: storedToken,
6769
+ mechanism: "pkce" /* Pkce */,
6770
+ clientId: null
6771
+ };
6719
6772
  }
6720
6773
  throw new Error(
6721
6774
  "PKCE credentials require interactive login. Please run the 'login' command with the CLI first, or use client_credentials flow."
@@ -6758,6 +6811,38 @@ function getCallerContext() {
6758
6811
  }
6759
6812
  }
6760
6813
 
6814
+ // src/utils/agent.ts
6815
+ var isTruthy = (value) => {
6816
+ const lower = value.toLowerCase();
6817
+ return lower === "1" || lower === "true";
6818
+ };
6819
+ var isNonEmpty = (value) => value !== "";
6820
+ var agentDetectors = [
6821
+ { name: "claude-code", key: "CLAUDECODE", predicate: isTruthy },
6822
+ { name: "github-copilot", key: "COPILOT_AGENT", predicate: isTruthy },
6823
+ { name: "cursor", key: "CURSOR_AGENT", predicate: isTruthy },
6824
+ { name: "codex", key: "CODEX_SANDBOX", predicate: isNonEmpty },
6825
+ { name: "gemini-cli", key: "GEMINI_CLI", predicate: isTruthy },
6826
+ { name: "augment", key: "AUGMENT_AGENT", predicate: isTruthy },
6827
+ { name: "cline", key: "CLINE_ACTIVE", predicate: isTruthy },
6828
+ { name: "opencode", key: "OPENCODE_CLIENT", predicate: isNonEmpty }
6829
+ ];
6830
+ function getAgent() {
6831
+ try {
6832
+ const env = globalThis.process?.env;
6833
+ if (!env) return null;
6834
+ for (const detector of agentDetectors) {
6835
+ const value = env[detector.key];
6836
+ if (value !== void 0 && detector.predicate(value)) {
6837
+ return detector.name;
6838
+ }
6839
+ }
6840
+ return null;
6841
+ } catch {
6842
+ return null;
6843
+ }
6844
+ }
6845
+
6761
6846
  // src/api/sse-parser.ts
6762
6847
  async function* jsonFrames(source) {
6763
6848
  for await (const { data } of source) {
@@ -6909,7 +6994,7 @@ function parseApprovalReviewStreamPayload(parsed, toolNames) {
6909
6994
  }
6910
6995
 
6911
6996
  // src/sdk-version.ts
6912
- var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.76.0" : void 0) || "unknown";
6997
+ var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.76.2" : void 0) || "unknown";
6913
6998
 
6914
6999
  // src/utils/open-url.ts
6915
7000
  var nodePrefix = "node:";
@@ -7627,6 +7712,10 @@ var ZapierApiClient = class {
7627
7712
  headers.set("zapier-service", sdkService);
7628
7713
  headers.set("x-zapier-service", sdkService);
7629
7714
  }
7715
+ const agent = getAgent();
7716
+ if (agent) {
7717
+ headers.set("zapier-sdk-agent", agent);
7718
+ }
7630
7719
  const callerPackage = this.options.callerPackage;
7631
7720
  if (callerPackage) {
7632
7721
  headers.set("zapier-sdk-package", callerPackage.name);
@@ -9693,36 +9782,6 @@ function getTtyContext() {
9693
9782
  return { stdin_is_tty: null, stdout_is_tty: null };
9694
9783
  }
9695
9784
  }
9696
- var isTruthy = (value) => {
9697
- const lower = value.toLowerCase();
9698
- return lower === "1" || lower === "true";
9699
- };
9700
- var isNonEmpty = (value) => value !== "";
9701
- var agentDetectors = [
9702
- { name: "claude-code", key: "CLAUDECODE", predicate: isTruthy },
9703
- { name: "github-copilot", key: "COPILOT_AGENT", predicate: isTruthy },
9704
- { name: "cursor", key: "CURSOR_AGENT", predicate: isTruthy },
9705
- { name: "codex", key: "CODEX_SANDBOX", predicate: isNonEmpty },
9706
- { name: "gemini-cli", key: "GEMINI_CLI", predicate: isTruthy },
9707
- { name: "augment", key: "AUGMENT_AGENT", predicate: isTruthy },
9708
- { name: "cline", key: "CLINE_ACTIVE", predicate: isTruthy },
9709
- { name: "opencode", key: "OPENCODE_CLIENT", predicate: isNonEmpty }
9710
- ];
9711
- function getAgent() {
9712
- try {
9713
- const env = globalThis.process?.env;
9714
- if (!env) return null;
9715
- for (const detector of agentDetectors) {
9716
- const value = env[detector.key];
9717
- if (value !== void 0 && detector.predicate(value)) {
9718
- return detector.name;
9719
- }
9720
- }
9721
- return null;
9722
- } catch {
9723
- return null;
9724
- }
9725
- }
9726
9785
 
9727
9786
  // src/plugins/eventEmission/builders.ts
9728
9787
  function createBaseEvent(context = {}) {
@@ -9732,6 +9791,8 @@ function createBaseEvent(context = {}) {
9732
9791
  release_id: getReleaseId(),
9733
9792
  customuser_id: context.customuser_id,
9734
9793
  account_id: context.account_id,
9794
+ client_id: context.client_id ?? null,
9795
+ auth_mechanism: context.auth_mechanism ?? null,
9735
9796
  identity_id: context.identity_id,
9736
9797
  visitor_id: context.visitor_id,
9737
9798
  correlation_id: context.correlation_id
@@ -9885,6 +9946,20 @@ function cleanupEventListeners() {
9885
9946
  var APPLICATION_LIFECYCLE_EVENT_SUBJECT = "platform.sdk.ApplicationLifecycleEvent";
9886
9947
  var ERROR_OCCURRED_EVENT_SUBJECT = "platform.sdk.ErrorOccurredEvent";
9887
9948
  var METHOD_CALLED_EVENT_SUBJECT = "platform.sdk.MethodCalledEvent";
9949
+ var NULL_EVENT_CONTEXT = Object.freeze({
9950
+ customuser_id: null,
9951
+ account_id: null,
9952
+ client_id: null,
9953
+ auth_mechanism: null
9954
+ });
9955
+ function buildEventAuthContext(auth) {
9956
+ const userIds = auth.token ? extractUserIdsFromJwt(auth.token) : { customuser_id: null, account_id: null };
9957
+ return {
9958
+ ...userIds,
9959
+ client_id: auth.clientId,
9960
+ auth_mechanism: auth.mechanism
9961
+ };
9962
+ }
9888
9963
  async function emitWithTimeout(transport, subject, event) {
9889
9964
  try {
9890
9965
  await Promise.race([
@@ -9960,16 +10035,11 @@ var eventEmissionPlugin = definePlugin(
9960
10035
  const getUserContext = (async () => {
9961
10036
  if (config.enabled) {
9962
10037
  try {
9963
- const token = await resolveAuthToken({
9964
- ...options
9965
- });
9966
- if (token) {
9967
- return extractUserIdsFromJwt(token);
9968
- }
10038
+ return buildEventAuthContext(await resolveAuth({ ...options }));
9969
10039
  } catch {
9970
10040
  }
9971
10041
  }
9972
- return { customuser_id: null, account_id: null };
10042
+ return NULL_EVENT_CONTEXT;
9973
10043
  })();
9974
10044
  const startupTime = Date.now();
9975
10045
  let shutdownStartTime = null;
@@ -10002,6 +10072,8 @@ var eventEmissionPlugin = definePlugin(
10002
10072
  release_id: getReleaseId(),
10003
10073
  customuser_id: null,
10004
10074
  account_id: null,
10075
+ client_id: null,
10076
+ auth_mechanism: null,
10005
10077
  identity_id: null,
10006
10078
  visitor_id: null,
10007
10079
  correlation_id: null
@@ -10030,6 +10102,8 @@ var eventEmissionPlugin = definePlugin(
10030
10102
  release_id: getReleaseId(),
10031
10103
  customuser_id: null,
10032
10104
  account_id: null,
10105
+ client_id: null,
10106
+ auth_mechanism: null,
10033
10107
  identity_id: null,
10034
10108
  visitor_id: null,
10035
10109
  correlation_id: null
@@ -10311,4 +10385,4 @@ var registryPlugin = definePlugin((_sdk) => {
10311
10385
  return {};
10312
10386
  });
10313
10387
 
10314
- export { ActionKeyPropertySchema, ActionPropertySchema, ActionTimeoutMsPropertySchema, ActionTypePropertySchema, AppKeyPropertySchema, AppPropertySchema, AppsPropertySchema, AuthenticationIdPropertySchema, BaseSdkOptionsSchema, CONTEXT_CACHE_MAX_SIZE, CONTEXT_CACHE_TTL_MS, CORE_ERROR_SYMBOL, ClientCredentialsObjectSchema, ConnectionEntrySchema, ConnectionIdPropertySchema, ConnectionPropertySchema, ConnectionsMapSchema, ConnectionsPropertySchema, CoreErrorCode, CredentialsFunctionSchema, CredentialsObjectSchema, CredentialsSchema, DEFAULT_ACTION_TIMEOUT_MS, DEFAULT_APPROVAL_TIMEOUT_MS, DEFAULT_CONFIG_PATH, DEFAULT_MAX_APPROVAL_RETRIES, DEFAULT_PAGE_SIZE, DebugPropertySchema, FieldsPropertySchema, InputFieldPropertySchema, InputsPropertySchema, LeaseLimitPropertySchema, LeasePropertySchema, LeaseSecondsPropertySchema, LimitPropertySchema, MAX_CONCURRENCY_LIMIT, MAX_PAGE_LIMIT, OffsetPropertySchema, OutputPropertySchema, ParamsPropertySchema, PkceCredentialsObjectSchema, RecordPropertySchema, RecordsPropertySchema, RelayFetchSchema, RelayRequestSchema, ResolvedCredentialsSchema, TablePropertySchema, TablesPropertySchema, TriggerInboxNamePropertySchema, TriggerInboxPropertySchema, ZAPIER_BASE_URL, ZAPIER_MAX_CONCURRENT_REQUESTS, ZAPIER_MAX_NETWORK_RETRIES, ZAPIER_MAX_NETWORK_RETRY_DELAY_MS, ZapierAbortDrainSignal, ZapierActionError, ZapierApiError, ZapierAppNotFoundError, ZapierApprovalError, ZapierAuthenticationError, ZapierBundleError, ZapierConfigurationError, ZapierConflictError, ZapierError, ZapierNotFoundError, ZapierRateLimitError, ZapierRelayError, ZapierReleaseTriggerMessageSignal, ZapierResourceNotFoundError, ZapierSignal, ZapierTimeoutError, ZapierUnknownError, ZapierValidationError, actionKeyResolver, actionTypeResolver, addPlugin, apiPlugin, appKeyResolver, appsPlugin, connectionIdGenericResolver as authenticationIdGenericResolver, connectionIdResolver as authenticationIdResolver, batch, buildApplicationLifecycleEvent, buildCapabilityMessage, buildErrorEvent, buildErrorEventWithContext, buildMethodCalledEvent, cleanupEventListeners, clearTokenCache, clientCredentialsNameResolver, clientIdResolver, composePlugins, connectionIdGenericResolver, connectionIdResolver, connectionsPlugin, createBaseEvent, createClientCredentialsPlugin, createCorePlugin, createFunction, createMemoryCache, createOptionsPlugin, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createSdk, createTableFieldsPlugin, createTablePlugin, createTableRecordsPlugin, createZapierApi, createZapierCoreStack, createZapierSdk, createZapierSdkStack, createZapierSdkWithoutRegistry, definePlugin, deleteClientCredentialsPlugin, deleteTableFieldsPlugin, deleteTablePlugin, deleteTableRecordsPlugin, durableRunIdResolver, eventEmissionPlugin, fetchPlugin, findFirstConnectionPlugin, findManifestEntry, findUniqueConnectionPlugin, formatErrorMessage, generateEventId, getActionInputFieldsSchemaPlugin, getActionPlugin, getAgent, getAppPlugin, getBaseUrlFromCredentials, getCallerContext, getCiPlatform, getClientIdFromCredentials, getConnectionPlugin, getCoreErrorCause, getCoreErrorCode, getCpuTime, getCurrentTimestamp, getMemoryUsage, getOrCreateApiClient, getOsInfo, getPlatformVersions, getPreferredManifestEntryKey, getProfilePlugin, getReleaseId, getTablePlugin, getTableRecordPlugin, getTokenFromCliLogin, getTtyContext, getZapierApprovalMode, getZapierDefaultApprovalMode, getZapierOpenAutoModeApprovalsInBrowser, getZapierSdkService, injectCliLogin, inputFieldKeyResolver, inputsAllOptionalResolver, inputsResolver, invalidateCachedToken, invalidateCredentialsToken, isCi, isCliLoginAvailable, isClientCredentials, isCoreError, isCredentialsFunction, isCredentialsObject, isPermanentHttpError, isPkceCredentials, isPositional, listActionInputFieldChoicesPlugin, listActionInputFieldsPlugin, listActionsPlugin, listAppsPlugin, listClientCredentialsPlugin, listConnectionsPlugin, listTableFieldsPlugin, listTableRecordsPlugin, listTablesPlugin, logDeprecation2 as logDeprecation, manifestPlugin, parseConcurrencyEnvVar, readManifestFromFile, registryPlugin, requestPlugin, resetDeprecationWarnings2 as resetDeprecationWarnings, resolveAuthToken, resolveCredentials, resolveCredentialsFromEnv, runActionPlugin, runInMethodScope, runWithCallerContext, runWithTelemetryContext, tableFieldIdsResolver, tableFieldsResolver, tableFiltersResolver, tableIdResolver, tableNameResolver, tableRecordIdResolver, tableRecordIdsResolver, tableRecordsResolver, tableSortResolver, tableUpdateRecordsResolver, toSnakeCase, toTitleCase, triggerInboxResolver, triggerMessagesResolver, updateTableRecordsPlugin, workflowIdResolver, workflowRunIdResolver, workflowVersionIdResolver, zapierAdaptError };
10388
+ export { ActionKeyPropertySchema, ActionPropertySchema, ActionTimeoutMsPropertySchema, ActionTypePropertySchema, AppKeyPropertySchema, AppPropertySchema, AppsPropertySchema, AuthMechanism, AuthenticationIdPropertySchema, BaseSdkOptionsSchema, CONTEXT_CACHE_MAX_SIZE, CONTEXT_CACHE_TTL_MS, CORE_ERROR_SYMBOL, ClientCredentialsObjectSchema, ConnectionEntrySchema, ConnectionIdPropertySchema, ConnectionPropertySchema, ConnectionsMapSchema, ConnectionsPropertySchema, CoreErrorCode, CredentialsFunctionSchema, CredentialsObjectSchema, CredentialsSchema, DEFAULT_ACTION_TIMEOUT_MS, DEFAULT_APPROVAL_TIMEOUT_MS, DEFAULT_CONFIG_PATH, DEFAULT_MAX_APPROVAL_RETRIES, DEFAULT_PAGE_SIZE, DebugPropertySchema, FieldsPropertySchema, InputFieldPropertySchema, InputsPropertySchema, LeaseLimitPropertySchema, LeasePropertySchema, LeaseSecondsPropertySchema, LimitPropertySchema, MAX_CONCURRENCY_LIMIT, MAX_PAGE_LIMIT, OffsetPropertySchema, OutputPropertySchema, ParamsPropertySchema, PkceCredentialsObjectSchema, RecordPropertySchema, RecordsPropertySchema, RelayFetchSchema, RelayRequestSchema, ResolvedCredentialsSchema, TablePropertySchema, TablesPropertySchema, TriggerInboxNamePropertySchema, TriggerInboxPropertySchema, ZAPIER_BASE_URL, ZAPIER_MAX_CONCURRENT_REQUESTS, ZAPIER_MAX_NETWORK_RETRIES, ZAPIER_MAX_NETWORK_RETRY_DELAY_MS, ZapierAbortDrainSignal, ZapierActionError, ZapierApiError, ZapierAppNotFoundError, ZapierApprovalError, ZapierAuthenticationError, ZapierBundleError, ZapierConfigurationError, ZapierConflictError, ZapierError, ZapierNotFoundError, ZapierRateLimitError, ZapierRelayError, ZapierReleaseTriggerMessageSignal, ZapierResourceNotFoundError, ZapierSignal, ZapierTimeoutError, ZapierUnknownError, ZapierValidationError, actionKeyResolver, actionTypeResolver, addPlugin, apiPlugin, appKeyResolver, appsPlugin, connectionIdGenericResolver as authenticationIdGenericResolver, connectionIdResolver as authenticationIdResolver, batch, buildApplicationLifecycleEvent, buildCapabilityMessage, buildErrorEvent, buildErrorEventWithContext, buildMethodCalledEvent, cleanupEventListeners, clearTokenCache, clientCredentialsNameResolver, clientIdResolver, composePlugins, connectionIdGenericResolver, connectionIdResolver, connectionsPlugin, createBaseEvent, createClientCredentialsPlugin, createCorePlugin, createFunction, createMemoryCache, createOptionsPlugin, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createSdk, createTableFieldsPlugin, createTablePlugin, createTableRecordsPlugin, createZapierApi, createZapierCoreStack, createZapierSdk, createZapierSdkStack, createZapierSdkWithoutRegistry, definePlugin, deleteClientCredentialsPlugin, deleteTableFieldsPlugin, deleteTablePlugin, deleteTableRecordsPlugin, durableRunIdResolver, eventEmissionPlugin, fetchPlugin, findFirstConnectionPlugin, findManifestEntry, findUniqueConnectionPlugin, formatErrorMessage, generateEventId, getActionInputFieldsSchemaPlugin, getActionPlugin, getAgent, getAppPlugin, getBaseUrlFromCredentials, getCallerContext, getCiPlatform, getClientIdFromCredentials, getConnectionPlugin, getCoreErrorCause, getCoreErrorCode, getCpuTime, getCurrentTimestamp, getMemoryUsage, getOrCreateApiClient, getOsInfo, getPlatformVersions, getPreferredManifestEntryKey, getProfilePlugin, getReleaseId, getTablePlugin, getTableRecordPlugin, getTokenFromCliLogin, getTtyContext, getZapierApprovalMode, getZapierDefaultApprovalMode, getZapierOpenAutoModeApprovalsInBrowser, getZapierSdkService, injectCliLogin, inputFieldKeyResolver, inputsAllOptionalResolver, inputsResolver, invalidateCachedToken, invalidateCredentialsToken, isCi, isCliLoginAvailable, isClientCredentials, isCoreError, isCredentialsFunction, isCredentialsObject, isPermanentHttpError, isPkceCredentials, isPositional, listActionInputFieldChoicesPlugin, listActionInputFieldsPlugin, listActionsPlugin, listAppsPlugin, listClientCredentialsPlugin, listConnectionsPlugin, listTableFieldsPlugin, listTableRecordsPlugin, listTablesPlugin, logDeprecation2 as logDeprecation, manifestPlugin, parseConcurrencyEnvVar, readManifestFromFile, registryPlugin, requestPlugin, resetDeprecationWarnings2 as resetDeprecationWarnings, resolveAuth, resolveAuthToken, resolveCredentials, resolveCredentialsFromEnv, runActionPlugin, runInMethodScope, runWithCallerContext, runWithTelemetryContext, tableFieldIdsResolver, tableFieldsResolver, tableFiltersResolver, tableIdResolver, tableNameResolver, tableRecordIdResolver, tableRecordIdsResolver, tableRecordsResolver, tableSortResolver, tableUpdateRecordsResolver, toSnakeCase, toTitleCase, triggerInboxResolver, triggerMessagesResolver, updateTableRecordsPlugin, workflowIdResolver, workflowRunIdResolver, workflowVersionIdResolver, zapierAdaptError };
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/builders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACT,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAkBjB,wBAAgB,eAAe,CAAC,OAAO,GAAE,YAAiB,GAAG,SAAS,CAWrE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CAapB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,6BAA6B,EACnC,OAAO,GAAE,YAAiB,GACzB,yBAAyB,CA4B3B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CAmBpB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,YAAiB,GACzB,iBAAiB,CAiCnB"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/builders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACT,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAkBjB,wBAAgB,eAAe,CAAC,OAAO,GAAE,YAAiB,GAAG,SAAS,CAarE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CAapB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,6BAA6B,EACnC,OAAO,GAAE,YAAiB,GACzB,yBAAyB,CA4B3B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,EAC5B,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CAmBpB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,YAAiB,GACzB,iBAAiB,CAiCnB"}
@@ -4,8 +4,9 @@
4
4
  * Provides builder functions that auto-populate common fields and ensure
5
5
  * schema compliance for all event types.
6
6
  */
7
- import { generateEventId, getCurrentTimestamp, getReleaseId, getOsInfo, getPlatformVersions, getMemoryUsage, getCpuTime, isCi, getCiPlatform, getTtyContext, getAgent, } from "./utils";
7
+ import { generateEventId, getCurrentTimestamp, getReleaseId, getOsInfo, getPlatformVersions, getMemoryUsage, getCpuTime, isCi, getCiPlatform, getTtyContext, } from "./utils";
8
8
  import { SDK_VERSION } from "../../sdk-version";
9
+ import { getAgent } from "../../utils/agent";
9
10
  // Create base event with auto-populated common fields
10
11
  // Kept for backward compatibility but can be replaced with direct construction
11
12
  export function createBaseEvent(context = {}) {
@@ -15,6 +16,8 @@ export function createBaseEvent(context = {}) {
15
16
  release_id: getReleaseId(),
16
17
  customuser_id: context.customuser_id,
17
18
  account_id: context.account_id,
19
+ client_id: context.client_id ?? null,
20
+ auth_mechanism: context.auth_mechanism ?? null,
18
21
  identity_id: context.identity_id,
19
22
  visitor_id: context.visitor_id,
20
23
  correlation_id: context.correlation_id,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqDnE;;;GAGG;AACH,wBAAgB,qBAAqB,SAEpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;CACrC;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,SAAS,EAAE,cAAc,CAAC;QAC1B,MAAM,EAAE,mBAAmB,CAAC;QAE5B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAErD,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAIvB,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC;IACF,KAAK,EAAE;QACL,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;CACH;AAyFD,eAAO,MAAM,mBAAmB;aAEnB;QAAE,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE;;;;;;aACxB,oBAAoB;CA6VpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqDnE;;;GAGG;AACH,wBAAgB,qBAAqB,SAEpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;CACrC;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,SAAS,EAAE,cAAc,CAAC;QAC1B,MAAM,EAAE,mBAAmB,CAAC;QAE5B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAErD,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAIvB,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC;IACF,KAAK,EAAE;QACL,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;CACH;AA0GD,eAAO,MAAM,mBAAmB;aAEnB;QAAE,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE;;;;;;aACxB,oBAAoB;CA2VpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -8,7 +8,7 @@ import { definePlugin } from "kitcore";
8
8
  import { createTransport } from "./transport";
9
9
  import { generateEventId, getCurrentTimestamp, getReleaseId } from "./utils";
10
10
  import { extractUserIdsFromJwt } from "../../api/auth";
11
- import { resolveAuthToken } from "../../auth";
11
+ import { resolveAuth } from "../../auth";
12
12
  import { buildApplicationLifecycleEvent, buildErrorEventWithContext, buildMethodCalledEvent, } from "./builders";
13
13
  import { makeMethodEndHook } from "./event-emission-hook";
14
14
  import { getTrackingBaseUrl } from "../../utils/url-utils";
@@ -41,6 +41,22 @@ export function cleanupEventListeners() {
41
41
  const APPLICATION_LIFECYCLE_EVENT_SUBJECT = "platform.sdk.ApplicationLifecycleEvent";
42
42
  const ERROR_OCCURRED_EVENT_SUBJECT = "platform.sdk.ErrorOccurredEvent";
43
43
  const METHOD_CALLED_EVENT_SUBJECT = "platform.sdk.MethodCalledEvent";
44
+ const NULL_EVENT_CONTEXT = Object.freeze({
45
+ customuser_id: null,
46
+ account_id: null,
47
+ client_id: null,
48
+ auth_mechanism: null,
49
+ });
50
+ function buildEventAuthContext(auth) {
51
+ const userIds = auth.token
52
+ ? extractUserIdsFromJwt(auth.token)
53
+ : { customuser_id: null, account_id: null };
54
+ return {
55
+ ...userIds,
56
+ client_id: auth.clientId,
57
+ auth_mechanism: auth.mechanism,
58
+ };
59
+ }
44
60
  async function emitWithTimeout(transport, subject, event) {
45
61
  try {
46
62
  await Promise.race([
@@ -125,18 +141,13 @@ export const eventEmissionPlugin = definePlugin((sdk) => {
125
141
  const getUserContext = (async () => {
126
142
  if (config.enabled) {
127
143
  try {
128
- const token = await resolveAuthToken({
129
- ...options,
130
- });
131
- if (token) {
132
- return extractUserIdsFromJwt(token);
133
- }
144
+ return buildEventAuthContext(await resolveAuth({ ...options }));
134
145
  }
135
146
  catch {
136
147
  // Fall back to null context on any error
137
148
  }
138
149
  }
139
- return { customuser_id: null, account_id: null };
150
+ return NULL_EVENT_CONTEXT;
140
151
  })();
141
152
  const startupTime = Date.now();
142
153
  let shutdownStartTime = null;
@@ -168,6 +179,8 @@ export const eventEmissionPlugin = definePlugin((sdk) => {
168
179
  release_id: getReleaseId(),
169
180
  customuser_id: null,
170
181
  account_id: null,
182
+ client_id: null,
183
+ auth_mechanism: null,
171
184
  identity_id: null,
172
185
  visitor_id: null,
173
186
  correlation_id: null,
@@ -197,6 +210,8 @@ export const eventEmissionPlugin = definePlugin((sdk) => {
197
210
  release_id: getReleaseId(),
198
211
  customuser_id: null,
199
212
  account_id: null,
213
+ client_id: null,
214
+ auth_mechanism: null,
200
215
  identity_id: null,
201
216
  visitor_id: null,
202
217
  correlation_id: null,
@@ -1,6 +1,8 @@
1
1
  export interface EventContext {
2
2
  customuser_id?: number | null;
3
3
  account_id?: number | null;
4
+ client_id?: string | null;
5
+ auth_mechanism?: string | null;
4
6
  identity_id?: number | null;
5
7
  visitor_id?: string | null;
6
8
  correlation_id?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/types.ts"],"names":[],"mappings":"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"}
@@ -53,47 +53,4 @@ export declare function getTtyContext(): {
53
53
  stdin_is_tty: boolean | null;
54
54
  stdout_is_tty: boolean | null;
55
55
  };
56
- /**
57
- * Detects which AI coding agent is executing the current process by inspecting
58
- * well-known environment variables set by each agent's runtime.
59
- *
60
- * Claude Code
61
- * CLAUDECODE — set to "1" in all subprocesses spawned by Claude Code
62
- * https://code.claude.com/docs/en/env-vars
63
- *
64
- * GitHub Copilot
65
- * COPILOT_AGENT — set to "1" in VS Code agent terminal sessions
66
- * https://github.com/microsoft/vscode/pull/316267
67
- *
68
- * Cursor
69
- * CURSOR_AGENT — set to "1" by Cursor when executing terminal commands
70
- * https://cursor.com/docs/agent/tools/terminal
71
- *
72
- * Codex CLI
73
- * CODEX_SANDBOX — set to "seatbelt" (macOS) or a non-empty string (Linux/Windows)
74
- * https://github.com/openai/codex/blob/main/codex-rs/core/src/spawn.rs
75
- *
76
- * Gemini CLI
77
- * GEMINI_CLI — set to "1" in subprocesses spawned by Gemini CLI's shell tool
78
- * https://github.com/google-gemini/gemini-cli/blob/main/packages/core/src/services/shellExecutionService.ts
79
- *
80
- * Augment
81
- * AUGMENT_AGENT — set to "1" when Auggie executes shell commands via its launch-process tool
82
- * https://docs.augmentcode.com/cli/reference
83
- *
84
- * Cline
85
- * CLINE_ACTIVE — set to "true" when Cline is executing terminal commands
86
- * https://github.com/cline/cline/pull/5367
87
- *
88
- * OpenCode
89
- * OPENCODE_CLIENT — client identifier set by OpenCode (defaults to "cli")
90
- * https://anomalyco-opencode.mintlify.app/cli/overview#environment-variables
91
- *
92
- * Returns null if no known agent is detected or process is unavailable.
93
- *
94
- * Never throws: try/catch guards against exotic environments (e.g. a Proxy on
95
- * globalThis.process) where property access could unexpectedly fail. Event
96
- * emission must never cascade into a thrown exception.
97
- */
98
- export declare function getAgent(): string | null;
99
56
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAaA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAQnE;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAa9B;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAgB7C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAM9C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI;IAC/B,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B,CAWA;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAgBxC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAaA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAQnE;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAa9B;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAgB7C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAM9C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI;IAC/B,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B,CAWA"}
@@ -140,79 +140,3 @@ export function getTtyContext() {
140
140
  return { stdin_is_tty: null, stdout_is_tty: null };
141
141
  }
142
142
  }
143
- // Matches "1" or "true" (case-insensitive).
144
- const isTruthy = (value) => {
145
- const lower = value.toLowerCase();
146
- return lower === "1" || lower === "true";
147
- };
148
- // Any non-empty string — for vars whose value is meaningful rather than boolean.
149
- const isNonEmpty = (value) => value !== "";
150
- const agentDetectors = [
151
- { name: "claude-code", key: "CLAUDECODE", predicate: isTruthy },
152
- { name: "github-copilot", key: "COPILOT_AGENT", predicate: isTruthy },
153
- { name: "cursor", key: "CURSOR_AGENT", predicate: isTruthy },
154
- { name: "codex", key: "CODEX_SANDBOX", predicate: isNonEmpty },
155
- { name: "gemini-cli", key: "GEMINI_CLI", predicate: isTruthy },
156
- { name: "augment", key: "AUGMENT_AGENT", predicate: isTruthy },
157
- { name: "cline", key: "CLINE_ACTIVE", predicate: isTruthy },
158
- { name: "opencode", key: "OPENCODE_CLIENT", predicate: isNonEmpty },
159
- ];
160
- /**
161
- * Detects which AI coding agent is executing the current process by inspecting
162
- * well-known environment variables set by each agent's runtime.
163
- *
164
- * Claude Code
165
- * CLAUDECODE — set to "1" in all subprocesses spawned by Claude Code
166
- * https://code.claude.com/docs/en/env-vars
167
- *
168
- * GitHub Copilot
169
- * COPILOT_AGENT — set to "1" in VS Code agent terminal sessions
170
- * https://github.com/microsoft/vscode/pull/316267
171
- *
172
- * Cursor
173
- * CURSOR_AGENT — set to "1" by Cursor when executing terminal commands
174
- * https://cursor.com/docs/agent/tools/terminal
175
- *
176
- * Codex CLI
177
- * CODEX_SANDBOX — set to "seatbelt" (macOS) or a non-empty string (Linux/Windows)
178
- * https://github.com/openai/codex/blob/main/codex-rs/core/src/spawn.rs
179
- *
180
- * Gemini CLI
181
- * GEMINI_CLI — set to "1" in subprocesses spawned by Gemini CLI's shell tool
182
- * https://github.com/google-gemini/gemini-cli/blob/main/packages/core/src/services/shellExecutionService.ts
183
- *
184
- * Augment
185
- * AUGMENT_AGENT — set to "1" when Auggie executes shell commands via its launch-process tool
186
- * https://docs.augmentcode.com/cli/reference
187
- *
188
- * Cline
189
- * CLINE_ACTIVE — set to "true" when Cline is executing terminal commands
190
- * https://github.com/cline/cline/pull/5367
191
- *
192
- * OpenCode
193
- * OPENCODE_CLIENT — client identifier set by OpenCode (defaults to "cli")
194
- * https://anomalyco-opencode.mintlify.app/cli/overview#environment-variables
195
- *
196
- * Returns null if no known agent is detected or process is unavailable.
197
- *
198
- * Never throws: try/catch guards against exotic environments (e.g. a Proxy on
199
- * globalThis.process) where property access could unexpectedly fail. Event
200
- * emission must never cascade into a thrown exception.
201
- */
202
- export function getAgent() {
203
- try {
204
- const env = globalThis.process?.env;
205
- if (!env)
206
- return null;
207
- for (const detector of agentDetectors) {
208
- const value = env[detector.key];
209
- if (value !== undefined && detector.predicate(value)) {
210
- return detector.name;
211
- }
212
- }
213
- return null;
214
- }
215
- catch {
216
- return null;
217
- }
218
- }
@@ -13,6 +13,8 @@ export interface BaseEvent {
13
13
  release_id: string;
14
14
  customuser_id?: number | null;
15
15
  account_id?: number | null;
16
+ client_id?: string | null;
17
+ auth_mechanism?: string | null;
16
18
  identity_id?: number | null;
17
19
  visitor_id?: string | null;
18
20
  correlation_id?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-events.d.ts","sourceRoot":"","sources":["../../src/types/telemetry-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-events.d.ts","sourceRoot":"","sources":["../../src/types/telemetry-events.ts"],"names":[],"mappings":"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"}