@inkeep/agents-core 0.78.0 → 0.78.1

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 (38) hide show
  1. package/dist/auth/auth-schema.d.ts +163 -163
  2. package/dist/auth/auth-validation-schemas.d.ts +154 -154
  3. package/dist/constants/otel-attributes.d.ts +1 -0
  4. package/dist/constants/otel-attributes.js +1 -0
  5. package/dist/data-access/manage/agents.d.ts +32 -32
  6. package/dist/data-access/manage/artifactComponents.d.ts +6 -6
  7. package/dist/data-access/manage/contextConfigs.d.ts +12 -12
  8. package/dist/data-access/manage/dataComponents.d.ts +2 -2
  9. package/dist/data-access/manage/functionTools.d.ts +8 -8
  10. package/dist/data-access/manage/skills.d.ts +7 -7
  11. package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +6 -6
  12. package/dist/data-access/manage/subAgentRelations.d.ts +8 -8
  13. package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +6 -6
  14. package/dist/data-access/manage/subAgents.d.ts +12 -12
  15. package/dist/data-access/manage/tools.d.ts +12 -12
  16. package/dist/data-access/manage/triggers.d.ts +3 -3
  17. package/dist/data-access/runtime/apiKeys.d.ts +8 -8
  18. package/dist/data-access/runtime/apps.d.ts +17 -17
  19. package/dist/data-access/runtime/conversations.d.ts +20 -20
  20. package/dist/data-access/runtime/events.d.ts +7 -7
  21. package/dist/data-access/runtime/feedback.d.ts +4 -4
  22. package/dist/data-access/runtime/messages.d.ts +12 -12
  23. package/dist/data-access/runtime/tasks.d.ts +3 -3
  24. package/dist/db/manage/manage-schema.d.ts +383 -383
  25. package/dist/db/runtime/runtime-schema.d.ts +417 -417
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js +2 -2
  28. package/dist/utils/cache-debug-walk.d.ts +4 -9
  29. package/dist/utils/cache-debug-walk.js +4 -23
  30. package/dist/utils/cache-state.d.ts +1 -5
  31. package/dist/utils/cache-state.js +3 -4
  32. package/dist/utils/index.d.ts +2 -2
  33. package/dist/utils/index.js +2 -2
  34. package/dist/utils/usage-cost-middleware.d.ts +7 -1
  35. package/dist/utils/usage-cost-middleware.js +21 -2
  36. package/dist/validation/schemas/skills.d.ts +42 -42
  37. package/dist/validation/schemas.d.ts +844 -844
  38. package/package.json +1 -1
@@ -7,12 +7,6 @@ import { deriveCacheState, isProviderSupportedForCaching, resolveCachingProvider
7
7
  * `buildCacheDebugQuery` into a chronologically ordered list of `CacheDebugCall`
8
8
  * records — each carrying the derived `CacheState`.
9
9
  *
10
- * Per-agent priorSignature tracking (mirrors the per-agent walk in
11
- * agents-manage-ui/.../[conversationId]/route.ts). A single global cursor
12
- * cross-contaminates `priorSignature` between sub-agents in multi-agent
13
- * conversations and reports false MISS-expected / MISS-regression states; the
14
- * Map<subAgentId, signature> keeps each agent's cursor independent.
15
- *
16
10
  * This is the pure, testable core of the `pnpm cache-debug` CLI. The CLI itself
17
11
  * remains a thin shell that fetches from SigNoz and prints these records.
18
12
  */
@@ -31,25 +25,16 @@ function getNumber(row, key) {
31
25
  const n = typeof value === "number" ? value : Number(value);
32
26
  return Number.isFinite(n) ? n : 0;
33
27
  }
34
- function subAgentKey(row) {
35
- return getString(row, SPAN_KEYS.AI_TELEMETRY_SUB_AGENT_ID) || getString(row, SPAN_KEYS.AGENT_ID) || "_default";
36
- }
37
28
  /**
38
- * Walk the LLM-span rows chronologically, deriving each call's cache state with
39
- * a per-agent prior-signature cursor.
29
+ * Walk the LLM-span rows chronologically, deriving each call's cache state.
40
30
  *
41
- * The walk:
42
- * 1. Sorts rows by `SPAN_KEYS.TIMESTAMP` (ascending).
43
- * 2. For each row, resolves the sub-agent key via fallback chain
44
- * `AI_TELEMETRY_SUB_AGENT_ID -> AGENT_ID -> '_default'`.
45
- * 3. Looks up that agent's prior signature in `priorSignatureByAgent`.
46
- * 4. Calls `deriveCacheState` and, if the row's `prefix_signature` is non-empty,
47
- * updates the agent's cursor.
31
+ * The walk sorts rows by `SPAN_KEYS.TIMESTAMP` (ascending) and derives each
32
+ * call's `CacheState` from its own attributes (marker count, cache-read tokens,
33
+ * provider support).
48
34
  */
49
35
  function deriveCacheDebugCalls(rows) {
50
36
  const sorted = [...rows].sort((a, b) => getString(a, SPAN_KEYS.TIMESTAMP).localeCompare(getString(b, SPAN_KEYS.TIMESTAMP)));
51
37
  const calls = [];
52
- const priorSignatureByAgent = /* @__PURE__ */ new Map();
53
38
  for (const row of sorted) {
54
39
  const prefixSignature = getString(row, SPAN_KEYS.CACHE_INTENT_PREFIX_SIGNATURE) || null;
55
40
  const cacheReadTokens = getNumber(row, SPAN_KEYS.GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS);
@@ -59,15 +44,11 @@ function deriveCacheDebugCalls(rows) {
59
44
  requestProvider,
60
45
  responseProvider: getString(row, SPAN_KEYS.GEN_AI_RESPONSE_PROVIDER)
61
46
  });
62
- const subAgentId = subAgentKey(row);
63
47
  const cacheState = deriveCacheState({
64
48
  markerCount,
65
- prefixSignature,
66
49
  cacheRead: cacheReadTokens,
67
- priorSignature: priorSignatureByAgent.get(subAgentId) ?? null,
68
50
  providerSupportsCaching: cachingProvider ? isProviderSupportedForCaching(cachingProvider) : true
69
51
  });
70
- if (prefixSignature) priorSignatureByAgent.set(subAgentId, prefixSignature);
71
52
  calls.push({
72
53
  spanId: getString(row, SPAN_KEYS.SPAN_ID),
73
54
  timestamp: getString(row, SPAN_KEYS.TIMESTAMP),
@@ -1,5 +1,5 @@
1
1
  //#region src/utils/cache-state.d.ts
2
- type CacheState = 'HIT' | 'MISS-regression' | 'MISS-expected' | 'NOT-ATTEMPTED' | 'NOT-SUPPORTED-BY-PROVIDER';
2
+ type CacheState = 'HIT' | 'MISS' | 'NOT-ATTEMPTED' | 'NOT-SUPPORTED-BY-PROVIDER';
3
3
  declare function isProviderSupportedForCaching(provider: string): boolean;
4
4
  /**
5
5
  * Resolve the provider to use for the caching-support gate.
@@ -20,16 +20,12 @@ declare function resolveCachingProvider({
20
20
  }): string;
21
21
  interface DeriveCacheStateInput {
22
22
  markerCount: number;
23
- prefixSignature: string | null;
24
23
  cacheRead: number;
25
- priorSignature?: string | null;
26
24
  providerSupportsCaching?: boolean;
27
25
  }
28
26
  declare function deriveCacheState({
29
27
  markerCount,
30
- prefixSignature,
31
28
  cacheRead,
32
- priorSignature,
33
29
  providerSupportsCaching
34
30
  }: DeriveCacheStateInput): CacheState;
35
31
  //#endregion
@@ -21,12 +21,11 @@ function isProviderSupportedForCaching(provider) {
21
21
  function resolveCachingProvider({ requestProvider, responseProvider }) {
22
22
  return (responseProvider || requestProvider || "").trim();
23
23
  }
24
- function deriveCacheState({ markerCount, prefixSignature, cacheRead, priorSignature = null, providerSupportsCaching = true }) {
24
+ function deriveCacheState({ markerCount, cacheRead, providerSupportsCaching = true }) {
25
25
  if (!providerSupportsCaching) return "NOT-SUPPORTED-BY-PROVIDER";
26
- if (markerCount <= 0) return "NOT-ATTEMPTED";
27
26
  if (cacheRead > 0) return "HIT";
28
- if (priorSignature && prefixSignature && prefixSignature === priorSignature) return "MISS-regression";
29
- return "MISS-expected";
27
+ if (markerCount <= 0) return "NOT-ATTEMPTED";
28
+ return "MISS";
30
29
  }
31
30
 
32
31
  //#endregion
@@ -34,9 +34,9 @@ import "./third-party-mcp-servers/index.js";
34
34
  import { AssembleResult, estimateTokens } from "./token-estimator.js";
35
35
  import { flushTraces, getTracer, setSpanWithError, unwrapError } from "./tracer-factory.js";
36
36
  import { HashedHeaderValue, SignatureVerificationErrorCode, SignatureVerificationResult, TriggerAuthResult, hashAuthenticationHeaders, hashTriggerHeaderValue, validateTriggerHeaderValue, verifySignatureWithConfig, verifyTriggerAuth } from "./trigger-auth.js";
37
- import { computePrefixSignature, countCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId } from "./usage-cost-middleware.js";
37
+ import { computePrefixSignature, countCacheMarkers, countHistoryCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId } from "./usage-cost-middleware.js";
38
38
  import "./usage-tracker.js";
39
39
  import { ValidatePublicKeyResult, validatePublicKey } from "./validate-public-key.js";
40
40
  import { _resetWaitUntilCache, getWaitUntil } from "./wait-until.js";
41
41
  import { TRUSTED_WORK_APP_MCP_PATHS, isTrustedWorkAppMcpUrl } from "./work-app-mcp.js";
42
- export { ApiKeyGenerationResult, AppCredentialResult, AssembleResult, CommonCreateErrorResponses, CommonDeleteErrorResponses, CommonGetErrorResponses, CommonUpdateErrorResponses, ComposioAuthResult, CredentialScope, ERROR_DOCS_BASE_URL, ErrorCode, ErrorCodes, ErrorResponse, GenerateInternalServiceTokenParams, GenerateServiceTokenParams, GenerationType, HashedHeaderValue, InternalServiceId, InternalServiceTokenPayload, InternalServices, JsonTransformer, JwtVerifyResult, LLMMessage, LoggerFactoryConfig, McpClient, McpClientOptions, McpOAuthFlowResult, McpSSEConfig, McpServerConfig, McpStreamableHttpConfig, McpTokenExchangeResult, MockLanguageModel, ModelFactory, OAuthConfig, ParsedSSEResponse, PinoLogger, PinoLoggerConfig, PoWError, PoWResult, ProblemDetails, SKILL_ENTRY_FILE_PATH, SentinelError, SentinelVerifyResult, ServiceTokenPayload, SignJwtOptions, SignSlackLinkTokenParams, SignSlackUserTokenParams, SignatureVerificationErrorCode, SignatureVerificationResult, SlackAccessTokenPayload, SlackAccessTokenPayloadSchema, SlackLinkIntent, SlackLinkIntentSchema, SlackLinkTokenPayload, SlackLinkTokenPayloadSchema, TRUSTED_WORK_APP_MCP_PATHS, TempTokenPayload, TriggerAuthResult, ValidatePublicKeyResult, VerifyInternalServiceTokenResult, VerifyJwtOptions, VerifyServiceTokenResult, VerifySlackLinkTokenResult, VerifySlackUserTokenResult, _resetWaitUntilCache, activeMcpClients, buildConversationMetadata, buildConversationUserProperties, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, computeNextRunAt, computePrefixSignature, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, countCacheMarkers, createApiError, createMockModel, decodeJwtPayload, deleteComposioConnectedAccount, deriveKidFromPublicKey, deriveRelationId, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, estimateTokens, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, extractUsageTokens, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, gatewayCostMiddleware, generateApiKey, generateAppCredential, generateId, generateInternalServiceToken, generateServiceToken, getComposioInstance, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getConversationProperties, getConversationUserProperties, getCredentialStoreLookupKeyFromRetrievalParams, getDatabaseErrorLogContext, getInProcessFetch, getJwtSecret, getLogger, getMessageUserProperties, getMetadataFromApiKey, getPoWErrorMessage, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isDevelopment, isInternalServiceToken, isPoWEnabled, isProduction, isSentinelEnabled, isSentinelUpstreamUnavailable, isSlackUserToken, isTest, isThirdPartyMCPServerAuthenticated, isTrustedWorkAppMcpUrl, isUniqueConstraintError, isZodSchema, loggerFactory, makeAllPropertiesRequired, maskApiKey, normalizeDataComponentSchema, normalizeDateString, normalizeModelId, parseEmbeddedJson, parseSSEResponse, parseSkillFromMarkdown, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, runWithLogContext, sanitizeAppConfig, serializeSkillToMarkdown, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, stripUnsupportedConstraints, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateOrigin, validatePublicKey, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyPoW, verifySentinelPayload, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
42
+ export { ApiKeyGenerationResult, AppCredentialResult, AssembleResult, CommonCreateErrorResponses, CommonDeleteErrorResponses, CommonGetErrorResponses, CommonUpdateErrorResponses, ComposioAuthResult, CredentialScope, ERROR_DOCS_BASE_URL, ErrorCode, ErrorCodes, ErrorResponse, GenerateInternalServiceTokenParams, GenerateServiceTokenParams, GenerationType, HashedHeaderValue, InternalServiceId, InternalServiceTokenPayload, InternalServices, JsonTransformer, JwtVerifyResult, LLMMessage, LoggerFactoryConfig, McpClient, McpClientOptions, McpOAuthFlowResult, McpSSEConfig, McpServerConfig, McpStreamableHttpConfig, McpTokenExchangeResult, MockLanguageModel, ModelFactory, OAuthConfig, ParsedSSEResponse, PinoLogger, PinoLoggerConfig, PoWError, PoWResult, ProblemDetails, SKILL_ENTRY_FILE_PATH, SentinelError, SentinelVerifyResult, ServiceTokenPayload, SignJwtOptions, SignSlackLinkTokenParams, SignSlackUserTokenParams, SignatureVerificationErrorCode, SignatureVerificationResult, SlackAccessTokenPayload, SlackAccessTokenPayloadSchema, SlackLinkIntent, SlackLinkIntentSchema, SlackLinkTokenPayload, SlackLinkTokenPayloadSchema, TRUSTED_WORK_APP_MCP_PATHS, TempTokenPayload, TriggerAuthResult, ValidatePublicKeyResult, VerifyInternalServiceTokenResult, VerifyJwtOptions, VerifyServiceTokenResult, VerifySlackLinkTokenResult, VerifySlackUserTokenResult, _resetWaitUntilCache, activeMcpClients, buildConversationMetadata, buildConversationUserProperties, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, computeNextRunAt, computePrefixSignature, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, countCacheMarkers, countHistoryCacheMarkers, createApiError, createMockModel, decodeJwtPayload, deleteComposioConnectedAccount, deriveKidFromPublicKey, deriveRelationId, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, estimateTokens, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, extractUsageTokens, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, gatewayCostMiddleware, generateApiKey, generateAppCredential, generateId, generateInternalServiceToken, generateServiceToken, getComposioInstance, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getConversationProperties, getConversationUserProperties, getCredentialStoreLookupKeyFromRetrievalParams, getDatabaseErrorLogContext, getInProcessFetch, getJwtSecret, getLogger, getMessageUserProperties, getMetadataFromApiKey, getPoWErrorMessage, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isDevelopment, isInternalServiceToken, isPoWEnabled, isProduction, isSentinelEnabled, isSentinelUpstreamUnavailable, isSlackUserToken, isTest, isThirdPartyMCPServerAuthenticated, isTrustedWorkAppMcpUrl, isUniqueConstraintError, isZodSchema, loggerFactory, makeAllPropertiesRequired, maskApiKey, normalizeDataComponentSchema, normalizeDateString, normalizeModelId, parseEmbeddedJson, parseSSEResponse, parseSkillFromMarkdown, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, runWithLogContext, sanitizeAppConfig, serializeSkillToMarkdown, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, stripUnsupportedConstraints, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateOrigin, validatePublicKey, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyPoW, verifySentinelPayload, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
@@ -21,7 +21,7 @@ import { JsonTransformer } from "./JsonTransformer.js";
21
21
  import { parseEmbeddedJson } from "./json-parser.js";
22
22
  import { McpClient, activeMcpClients } from "./mcp-client.js";
23
23
  import { MockLanguageModel, createMockModel } from "./mock-provider.js";
24
- import { computePrefixSignature, countCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId } from "./usage-cost-middleware.js";
24
+ import { computePrefixSignature, countCacheMarkers, countHistoryCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId } from "./usage-cost-middleware.js";
25
25
  import { ModelFactory } from "./model-factory.js";
26
26
  import { getPoWErrorMessage, isPoWEnabled, isSentinelEnabled, isSentinelUpstreamUnavailable, verifyPoW, verifySentinelPayload } from "./pow.js";
27
27
  import { retryWithBackoff } from "./retry.js";
@@ -38,4 +38,4 @@ import { validatePublicKey } from "./validate-public-key.js";
38
38
  import { _resetWaitUntilCache, getWaitUntil } from "./wait-until.js";
39
39
  import { TRUSTED_WORK_APP_MCP_PATHS, isTrustedWorkAppMcpUrl } from "./work-app-mcp.js";
40
40
 
41
- export { ERROR_DOCS_BASE_URL, ErrorCode, InternalServices, JsonTransformer, McpClient, MockLanguageModel, ModelFactory, PinoLogger, SKILL_ENTRY_FILE_PATH, SlackAccessTokenPayloadSchema, SlackLinkIntentSchema, SlackLinkTokenPayloadSchema, TRUSTED_WORK_APP_MCP_PATHS, _resetWaitUntilCache, activeMcpClients, buildConversationMetadata, buildConversationUserProperties, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, computeNextRunAt, computePrefixSignature, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, countCacheMarkers, createApiError, createMockModel, decodeJwtPayload, deleteComposioConnectedAccount, deriveKidFromPublicKey, deriveRelationId, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, estimateTokens, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, extractUsageTokens, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, gatewayCostMiddleware, generateApiKey, generateAppCredential, generateId, generateInternalServiceToken, generateServiceToken, getComposioInstance, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getConversationProperties, getConversationUserProperties, getCredentialStoreLookupKeyFromRetrievalParams, getDatabaseErrorLogContext, getInProcessFetch, getJwtSecret, getLogger, getMessageUserProperties, getMetadataFromApiKey, getPoWErrorMessage, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isDevelopment, isInternalServiceToken, isPoWEnabled, isProduction, isSentinelEnabled, isSentinelUpstreamUnavailable, isSlackUserToken, isTest, isThirdPartyMCPServerAuthenticated, isTrustedWorkAppMcpUrl, isUniqueConstraintError, isZodSchema, loggerFactory, makeAllPropertiesRequired, maskApiKey, normalizeDataComponentSchema, normalizeDateString, normalizeModelId, parseEmbeddedJson, parseSSEResponse, parseSkillFromMarkdown, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, runWithLogContext, sanitizeAppConfig, serializeSkillToMarkdown, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, stripUnsupportedConstraints, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateOrigin, validatePublicKey, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyPoW, verifySentinelPayload, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
41
+ export { ERROR_DOCS_BASE_URL, ErrorCode, InternalServices, JsonTransformer, McpClient, MockLanguageModel, ModelFactory, PinoLogger, SKILL_ENTRY_FILE_PATH, SlackAccessTokenPayloadSchema, SlackLinkIntentSchema, SlackLinkTokenPayloadSchema, TRUSTED_WORK_APP_MCP_PATHS, _resetWaitUntilCache, activeMcpClients, buildConversationMetadata, buildConversationUserProperties, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, computeNextRunAt, computePrefixSignature, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, countCacheMarkers, countHistoryCacheMarkers, createApiError, createMockModel, decodeJwtPayload, deleteComposioConnectedAccount, deriveKidFromPublicKey, deriveRelationId, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, estimateTokens, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, extractUsageTokens, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, gatewayCostMiddleware, generateApiKey, generateAppCredential, generateId, generateInternalServiceToken, generateServiceToken, getComposioInstance, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getConversationProperties, getConversationUserProperties, getCredentialStoreLookupKeyFromRetrievalParams, getDatabaseErrorLogContext, getInProcessFetch, getJwtSecret, getLogger, getMessageUserProperties, getMetadataFromApiKey, getPoWErrorMessage, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isDevelopment, isInternalServiceToken, isPoWEnabled, isProduction, isSentinelEnabled, isSentinelUpstreamUnavailable, isSlackUserToken, isTest, isThirdPartyMCPServerAuthenticated, isTrustedWorkAppMcpUrl, isUniqueConstraintError, isZodSchema, loggerFactory, makeAllPropertiesRequired, maskApiKey, normalizeDataComponentSchema, normalizeDateString, normalizeModelId, parseEmbeddedJson, parseSSEResponse, parseSkillFromMarkdown, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, runWithLogContext, sanitizeAppConfig, serializeSkillToMarkdown, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, stripUnsupportedConstraints, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateOrigin, validatePublicKey, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyPoW, verifySentinelPayload, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
@@ -10,7 +10,13 @@ declare function extractUsageTokens(usage: any): {
10
10
  };
11
11
  declare function normalizeModelId(modelId: string): string;
12
12
  declare function countCacheMarkers(prompt: readonly any[], callProviderOptions?: Record<string, any>): number;
13
+ /**
14
+ * Count of part-level (conversation-history / BP2) cache markers only — the distinct BP2 signal.
15
+ * BP1 (system + tools) is message-level and tracked via the prefix signature; this isolates the
16
+ * history boundary so cross-turn cache participation can be attributed to it.
17
+ */
18
+ declare function countHistoryCacheMarkers(prompt: readonly any[]): number;
13
19
  declare function computePrefixSignature(prompt: readonly any[], tools?: readonly any[]): string;
14
20
  declare const gatewayCostMiddleware: LanguageModelMiddleware;
15
21
  //#endregion
16
- export { computePrefixSignature, countCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId };
22
+ export { computePrefixSignature, countCacheMarkers, countHistoryCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId };
@@ -57,9 +57,26 @@ function countCacheMarkers(prompt, callProviderOptions) {
57
57
  let count = 0;
58
58
  const caching = callProviderOptions?.gateway?.caching;
59
59
  if (caching && caching !== "off" && caching !== "disabled") count++;
60
- for (const msg of prompt) if (msg.providerOptions?.anthropic?.cacheControl) count++;
60
+ for (const msg of prompt) {
61
+ if (msg.providerOptions?.anthropic?.cacheControl) count++;
62
+ if (Array.isArray(msg.content)) {
63
+ for (const part of msg.content) if (part?.providerOptions?.anthropic?.cacheControl) count++;
64
+ }
65
+ }
61
66
  return Math.min(count, 4);
62
67
  }
68
+ /**
69
+ * Count of part-level (conversation-history / BP2) cache markers only — the distinct BP2 signal.
70
+ * BP1 (system + tools) is message-level and tracked via the prefix signature; this isolates the
71
+ * history boundary so cross-turn cache participation can be attributed to it.
72
+ */
73
+ function countHistoryCacheMarkers(prompt) {
74
+ let count = 0;
75
+ for (const msg of prompt) if (Array.isArray(msg.content)) {
76
+ for (const part of msg.content) if (part?.providerOptions?.anthropic?.cacheControl) count++;
77
+ }
78
+ return count;
79
+ }
63
80
  function computePrefixSignature(prompt, tools) {
64
81
  const systemParts = [];
65
82
  for (const msg of prompt) {
@@ -88,6 +105,8 @@ function setCacheAttributesOnSpan(params, usage) {
88
105
  activeSpan.setAttribute(SPAN_KEYS.CACHE_INTENT_MARKER_COUNT, markerCount);
89
106
  const prefixSignature = computePrefixSignature(prompt, params.tools);
90
107
  activeSpan.setAttribute(SPAN_KEYS.CACHE_INTENT_PREFIX_SIGNATURE, prefixSignature);
108
+ const historyMarkerCount = countHistoryCacheMarkers(prompt);
109
+ activeSpan.setAttribute(SPAN_KEYS.CACHE_INTENT_HISTORY_MARKER_COUNT, historyMarkerCount);
91
110
  }
92
111
  const gatewayCostMiddleware = {
93
112
  specificationVersion: "v3",
@@ -132,4 +151,4 @@ const gatewayCostMiddleware = {
132
151
  };
133
152
 
134
153
  //#endregion
135
- export { computePrefixSignature, countCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId };
154
+ export { computePrefixSignature, countCacheMarkers, countHistoryCacheMarkers, extractUsageTokens, gatewayCostMiddleware, normalizeModelId };
@@ -1,6 +1,6 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import * as drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
3
- import * as drizzle_zod0 from "drizzle-zod";
2
+ import * as drizzle_orm_pg_core1079 from "drizzle-orm/pg-core";
3
+ import * as drizzle_zod15 from "drizzle-zod";
4
4
 
5
5
  //#region src/validation/schemas/skills.d.ts
6
6
  declare const SkillIndexSchema: z.ZodInt;
@@ -27,8 +27,8 @@ declare const SkillFileContentInputSchema: z.ZodObject<{
27
27
  filePath: z.ZodString;
28
28
  content: z.ZodString;
29
29
  }, z.core.$strip>;
30
- declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
31
- createdAt: drizzle_orm_pg_core0.PgColumn<{
30
+ declare const SkillFileSelectSchema: drizzle_zod15.BuildSchema<"select", {
31
+ createdAt: drizzle_orm_pg_core1079.PgColumn<{
32
32
  name: "created_at";
33
33
  tableName: "skill_files";
34
34
  dataType: "string";
@@ -45,7 +45,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
45
45
  identity: undefined;
46
46
  generated: undefined;
47
47
  }, {}, {}>;
48
- updatedAt: drizzle_orm_pg_core0.PgColumn<{
48
+ updatedAt: drizzle_orm_pg_core1079.PgColumn<{
49
49
  name: "updated_at";
50
50
  tableName: "skill_files";
51
51
  dataType: "string";
@@ -62,7 +62,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
62
62
  identity: undefined;
63
63
  generated: undefined;
64
64
  }, {}, {}>;
65
- skillId: drizzle_orm_pg_core0.PgColumn<{
65
+ skillId: drizzle_orm_pg_core1079.PgColumn<{
66
66
  name: "skill_id";
67
67
  tableName: "skill_files";
68
68
  dataType: "string";
@@ -81,7 +81,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
81
81
  }, {}, {
82
82
  length: 64;
83
83
  }>;
84
- filePath: drizzle_orm_pg_core0.PgColumn<{
84
+ filePath: drizzle_orm_pg_core1079.PgColumn<{
85
85
  name: "file_path";
86
86
  tableName: "skill_files";
87
87
  dataType: "string";
@@ -100,7 +100,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
100
100
  }, {}, {
101
101
  length: 1024;
102
102
  }>;
103
- content: drizzle_orm_pg_core0.PgColumn<{
103
+ content: drizzle_orm_pg_core1079.PgColumn<{
104
104
  name: "content";
105
105
  tableName: "skill_files";
106
106
  dataType: "string";
@@ -117,7 +117,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
117
117
  identity: undefined;
118
118
  generated: undefined;
119
119
  }, {}, {}>;
120
- projectId: drizzle_orm_pg_core0.PgColumn<{
120
+ projectId: drizzle_orm_pg_core1079.PgColumn<{
121
121
  name: "project_id";
122
122
  tableName: "skill_files";
123
123
  dataType: "string";
@@ -136,7 +136,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
136
136
  }, {}, {
137
137
  length: 256;
138
138
  }>;
139
- tenantId: drizzle_orm_pg_core0.PgColumn<{
139
+ tenantId: drizzle_orm_pg_core1079.PgColumn<{
140
140
  name: "tenant_id";
141
141
  tableName: "skill_files";
142
142
  dataType: "string";
@@ -155,7 +155,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
155
155
  }, {}, {
156
156
  length: 256;
157
157
  }>;
158
- id: drizzle_orm_pg_core0.PgColumn<{
158
+ id: drizzle_orm_pg_core1079.PgColumn<{
159
159
  name: "id";
160
160
  tableName: "skill_files";
161
161
  dataType: "string";
@@ -174,8 +174,8 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
174
174
  }, {}, {
175
175
  length: 256;
176
176
  }>;
177
- }, drizzle_zod0.BuildRefine<{
178
- createdAt: drizzle_orm_pg_core0.PgColumn<{
177
+ }, drizzle_zod15.BuildRefine<{
178
+ createdAt: drizzle_orm_pg_core1079.PgColumn<{
179
179
  name: "created_at";
180
180
  tableName: "skill_files";
181
181
  dataType: "string";
@@ -192,7 +192,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
192
192
  identity: undefined;
193
193
  generated: undefined;
194
194
  }, {}, {}>;
195
- updatedAt: drizzle_orm_pg_core0.PgColumn<{
195
+ updatedAt: drizzle_orm_pg_core1079.PgColumn<{
196
196
  name: "updated_at";
197
197
  tableName: "skill_files";
198
198
  dataType: "string";
@@ -209,7 +209,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
209
209
  identity: undefined;
210
210
  generated: undefined;
211
211
  }, {}, {}>;
212
- skillId: drizzle_orm_pg_core0.PgColumn<{
212
+ skillId: drizzle_orm_pg_core1079.PgColumn<{
213
213
  name: "skill_id";
214
214
  tableName: "skill_files";
215
215
  dataType: "string";
@@ -228,7 +228,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
228
228
  }, {}, {
229
229
  length: 64;
230
230
  }>;
231
- filePath: drizzle_orm_pg_core0.PgColumn<{
231
+ filePath: drizzle_orm_pg_core1079.PgColumn<{
232
232
  name: "file_path";
233
233
  tableName: "skill_files";
234
234
  dataType: "string";
@@ -247,7 +247,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
247
247
  }, {}, {
248
248
  length: 1024;
249
249
  }>;
250
- content: drizzle_orm_pg_core0.PgColumn<{
250
+ content: drizzle_orm_pg_core1079.PgColumn<{
251
251
  name: "content";
252
252
  tableName: "skill_files";
253
253
  dataType: "string";
@@ -264,7 +264,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
264
264
  identity: undefined;
265
265
  generated: undefined;
266
266
  }, {}, {}>;
267
- projectId: drizzle_orm_pg_core0.PgColumn<{
267
+ projectId: drizzle_orm_pg_core1079.PgColumn<{
268
268
  name: "project_id";
269
269
  tableName: "skill_files";
270
270
  dataType: "string";
@@ -283,7 +283,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
283
283
  }, {}, {
284
284
  length: 256;
285
285
  }>;
286
- tenantId: drizzle_orm_pg_core0.PgColumn<{
286
+ tenantId: drizzle_orm_pg_core1079.PgColumn<{
287
287
  name: "tenant_id";
288
288
  tableName: "skill_files";
289
289
  dataType: "string";
@@ -302,7 +302,7 @@ declare const SkillFileSelectSchema: drizzle_zod0.BuildSchema<"select", {
302
302
  }, {}, {
303
303
  length: 256;
304
304
  }>;
305
- id: drizzle_orm_pg_core0.PgColumn<{
305
+ id: drizzle_orm_pg_core1079.PgColumn<{
306
306
  name: "id";
307
307
  tableName: "skill_files";
308
308
  dataType: "string";
@@ -351,12 +351,12 @@ declare const SkillUpdateSchema: z.ZodObject<{
351
351
  }, z.core.$strip>>;
352
352
  }, z.core.$strip>;
353
353
  declare const SkillApiSelectSchema: z.ZodObject<{
354
- name: z.ZodString;
355
- description: z.ZodString;
356
354
  id: z.ZodString;
357
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
358
355
  createdAt: z.ZodString;
356
+ name: z.ZodString;
359
357
  updatedAt: z.ZodString;
358
+ description: z.ZodString;
359
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
360
360
  content: z.ZodString;
361
361
  }, z.core.$strip>;
362
362
  declare const SkillApiInsertSchema: z.ZodPipe<z.ZodPipe<z.ZodObject<{
@@ -413,8 +413,8 @@ declare const SkillFileApiSelectSchema: z.ZodObject<{
413
413
  createdAt: z.ZodString;
414
414
  updatedAt: z.ZodString;
415
415
  content: z.ZodString;
416
- filePath: z.ZodString;
417
416
  skillId: z.ZodString;
417
+ filePath: z.ZodString;
418
418
  }, z.core.$strip>;
419
419
  declare const SkillFileApiInsertSchema: z.ZodObject<{
420
420
  filePath: z.ZodString;
@@ -424,20 +424,20 @@ declare const SkillFileApiUpdateSchema: z.ZodObject<{
424
424
  content: z.ZodString;
425
425
  }, z.core.$strip>;
426
426
  declare const SkillWithFilesApiSelectSchema: z.ZodObject<{
427
- name: z.ZodString;
428
- description: z.ZodString;
429
427
  id: z.ZodString;
430
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
431
428
  createdAt: z.ZodString;
429
+ name: z.ZodString;
432
430
  updatedAt: z.ZodString;
431
+ description: z.ZodString;
432
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
433
433
  content: z.ZodString;
434
434
  files: z.ZodArray<z.ZodObject<{
435
435
  id: z.ZodString;
436
436
  createdAt: z.ZodString;
437
437
  updatedAt: z.ZodString;
438
438
  content: z.ZodString;
439
- filePath: z.ZodString;
440
439
  skillId: z.ZodString;
440
+ filePath: z.ZodString;
441
441
  }, z.core.$strip>>;
442
442
  }, z.core.$strip>;
443
443
  declare const SubAgentSkillSelectSchema: z.ZodObject<{
@@ -514,12 +514,12 @@ declare const SubAgentSkillApiUpdateSchema: z.ZodObject<{
514
514
  alwaysLoaded: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
515
515
  }, z.core.$strip>;
516
516
  declare const SubAgentSkillWithIndexSchema: z.ZodObject<{
517
- name: z.ZodString;
518
- description: z.ZodString;
519
517
  id: z.ZodString;
520
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
521
518
  createdAt: z.ZodString;
519
+ name: z.ZodString;
522
520
  updatedAt: z.ZodString;
521
+ description: z.ZodString;
522
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
523
523
  content: z.ZodString;
524
524
  subAgentSkillId: z.ZodString;
525
525
  subAgentId: z.ZodString;
@@ -532,37 +532,37 @@ declare const SkillFileResponse: z.ZodObject<{
532
532
  createdAt: z.ZodString;
533
533
  updatedAt: z.ZodString;
534
534
  content: z.ZodString;
535
- filePath: z.ZodString;
536
535
  skillId: z.ZodString;
536
+ filePath: z.ZodString;
537
537
  }, z.core.$strip>;
538
538
  }, z.core.$strip>;
539
539
  declare const SkillWithFilesResponse: z.ZodObject<{
540
540
  data: z.ZodObject<{
541
- name: z.ZodString;
542
- description: z.ZodString;
543
541
  id: z.ZodString;
544
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
545
542
  createdAt: z.ZodString;
543
+ name: z.ZodString;
546
544
  updatedAt: z.ZodString;
545
+ description: z.ZodString;
546
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
547
547
  content: z.ZodString;
548
548
  files: z.ZodArray<z.ZodObject<{
549
549
  id: z.ZodString;
550
550
  createdAt: z.ZodString;
551
551
  updatedAt: z.ZodString;
552
552
  content: z.ZodString;
553
- filePath: z.ZodString;
554
553
  skillId: z.ZodString;
554
+ filePath: z.ZodString;
555
555
  }, z.core.$strip>>;
556
556
  }, z.core.$strip>;
557
557
  }, z.core.$strip>;
558
558
  declare const SkillListResponse: z.ZodObject<{
559
559
  data: z.ZodArray<z.ZodObject<{
560
- name: z.ZodString;
561
- description: z.ZodString;
562
560
  id: z.ZodString;
563
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
564
561
  createdAt: z.ZodString;
562
+ name: z.ZodString;
565
563
  updatedAt: z.ZodString;
564
+ description: z.ZodString;
565
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
566
566
  content: z.ZodString;
567
567
  }, z.core.$strip>>;
568
568
  pagination: z.ZodObject<{
@@ -585,12 +585,12 @@ declare const SubAgentSkillResponse: z.ZodObject<{
585
585
  }, z.core.$strip>;
586
586
  declare const SubAgentSkillWithIndexArrayResponse: z.ZodObject<{
587
587
  data: z.ZodArray<z.ZodObject<{
588
- name: z.ZodString;
589
- description: z.ZodString;
590
588
  id: z.ZodString;
591
- metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
592
589
  createdAt: z.ZodString;
590
+ name: z.ZodString;
593
591
  updatedAt: z.ZodString;
592
+ description: z.ZodString;
593
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>;
594
594
  content: z.ZodString;
595
595
  subAgentSkillId: z.ZodString;
596
596
  subAgentId: z.ZodString;