@skaile/workspaces 1.14.0 → 1.15.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.
Files changed (195) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/NOTICE +13 -0
  3. package/dist/app-sdk/index.js +1 -1
  4. package/dist/{asset-feeds-ZQLJ2DCP.js → asset-feeds-MWEMXMZA.js} +5 -5
  5. package/dist/{asset-feeds-ZQLJ2DCP.js.map → asset-feeds-MWEMXMZA.js.map} +1 -1
  6. package/dist/asset-manager/index.js +5 -5
  7. package/dist/asset-manager/installer.js +1 -1
  8. package/dist/bridge/drivers/claude-sdk.js +19 -2
  9. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  10. package/dist/bridge/drivers/codex.js +1 -1
  11. package/dist/bridge/drivers/continue.js +2 -2
  12. package/dist/bridge/drivers/echo.js +1 -1
  13. package/dist/bridge/drivers/gemini.js +3 -3
  14. package/dist/bridge/drivers/goose.js +2 -2
  15. package/dist/bridge/drivers/omp.js +1 -1
  16. package/dist/bridge/drivers/opencode.js +2 -2
  17. package/dist/bridge/drivers/qwen.js +3 -3
  18. package/dist/bridge/index.js +2 -2
  19. package/dist/bridge/src/drivers/claude-sdk.d.ts +6 -0
  20. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  21. package/dist/bridge/src/runtime.d.ts.map +1 -1
  22. package/dist/channels/adapters/msteams/activity.d.ts +70 -0
  23. package/dist/channels/adapters/msteams/activity.d.ts.map +1 -0
  24. package/dist/channels/adapters/msteams/client.d.ts +46 -0
  25. package/dist/channels/adapters/msteams/client.d.ts.map +1 -0
  26. package/dist/channels/adapters/msteams/index.d.ts +81 -0
  27. package/dist/channels/adapters/msteams/index.d.ts.map +1 -0
  28. package/dist/channels/adapters/msteams/jwt.d.ts +27 -0
  29. package/dist/channels/adapters/msteams/jwt.d.ts.map +1 -0
  30. package/dist/channels/adapters/msteams.d.ts +2 -0
  31. package/dist/channels/adapters/msteams.js +595 -0
  32. package/dist/channels/adapters/msteams.js.map +1 -0
  33. package/dist/channels/index.d.ts +2 -0
  34. package/dist/channels/index.js +1069 -0
  35. package/dist/channels/index.js.map +1 -0
  36. package/dist/channels/src/adapter.d.ts +54 -0
  37. package/dist/channels/src/adapter.d.ts.map +1 -0
  38. package/dist/channels/src/dedupe.d.ts +67 -0
  39. package/dist/channels/src/dedupe.d.ts.map +1 -0
  40. package/dist/channels/src/egress/output-mirror.d.ts +63 -0
  41. package/dist/channels/src/egress/output-mirror.d.ts.map +1 -0
  42. package/dist/channels/src/egress/vendor/auto-close-streaming.d.ts +26 -0
  43. package/dist/channels/src/egress/vendor/auto-close-streaming.d.ts.map +1 -0
  44. package/dist/channels/src/egress/vendor/chunked-message-stream.d.ts +79 -0
  45. package/dist/channels/src/egress/vendor/chunked-message-stream.d.ts.map +1 -0
  46. package/dist/channels/src/egress/vendor/markdown-to-mrkdwn.d.ts +21 -0
  47. package/dist/channels/src/egress/vendor/markdown-to-mrkdwn.d.ts.map +1 -0
  48. package/dist/channels/src/egress/vendor/message-stream.d.ts +57 -0
  49. package/dist/channels/src/egress/vendor/message-stream.d.ts.map +1 -0
  50. package/dist/channels/src/engine.d.ts +125 -0
  51. package/dist/channels/src/engine.d.ts.map +1 -0
  52. package/dist/channels/src/format/adaptive-card.d.ts +17 -0
  53. package/dist/channels/src/format/adaptive-card.d.ts.map +1 -0
  54. package/dist/channels/src/format/mrkdwn.d.ts +4 -0
  55. package/dist/channels/src/format/mrkdwn.d.ts.map +1 -0
  56. package/dist/channels/src/format/types.d.ts +9 -0
  57. package/dist/channels/src/format/types.d.ts.map +1 -0
  58. package/dist/channels/src/index.d.ts +17 -0
  59. package/dist/channels/src/index.d.ts.map +1 -0
  60. package/dist/channels/src/mention/lookup-tool.d.ts +23 -0
  61. package/dist/channels/src/mention/lookup-tool.d.ts.map +1 -0
  62. package/dist/channels/src/mention/normalize.d.ts +27 -0
  63. package/dist/channels/src/mention/normalize.d.ts.map +1 -0
  64. package/dist/channels/src/mention/render.d.ts +10 -0
  65. package/dist/channels/src/mention/render.d.ts.map +1 -0
  66. package/dist/channels/src/ports.d.ts +71 -0
  67. package/dist/channels/src/ports.d.ts.map +1 -0
  68. package/dist/channels/src/types.d.ts +169 -0
  69. package/dist/channels/src/types.d.ts.map +1 -0
  70. package/dist/{chunk-A7GDV5BV.js → chunk-2BQBWWFX.js} +2 -2
  71. package/dist/{chunk-A7GDV5BV.js.map → chunk-2BQBWWFX.js.map} +1 -1
  72. package/dist/{chunk-MWE7DEGC.js → chunk-344DEXZS.js} +3 -3
  73. package/dist/{chunk-MWE7DEGC.js.map → chunk-344DEXZS.js.map} +1 -1
  74. package/dist/{chunk-6GFQ3GXI.js → chunk-6ZLMG5GR.js} +4 -4
  75. package/dist/{chunk-6GFQ3GXI.js.map → chunk-6ZLMG5GR.js.map} +1 -1
  76. package/dist/{chunk-T2H2ZCU4.js → chunk-73HV7RV3.js} +3 -3
  77. package/dist/{chunk-T2H2ZCU4.js.map → chunk-73HV7RV3.js.map} +1 -1
  78. package/dist/{chunk-P5VLR3L7.js → chunk-BI2NKPA4.js} +8 -4
  79. package/dist/chunk-BI2NKPA4.js.map +1 -0
  80. package/dist/{chunk-IIGWJE5T.js → chunk-DPUZJI45.js} +3 -3
  81. package/dist/{chunk-IIGWJE5T.js.map → chunk-DPUZJI45.js.map} +1 -1
  82. package/dist/chunk-F2IBDVBP.js +72 -0
  83. package/dist/chunk-F2IBDVBP.js.map +1 -0
  84. package/dist/{chunk-7FXOOC7N.js → chunk-F3ET4UGP.js} +4 -3
  85. package/dist/chunk-F3ET4UGP.js.map +1 -0
  86. package/dist/{chunk-LMY6XW6P.js → chunk-HA53HVIS.js} +336 -100
  87. package/dist/chunk-HA53HVIS.js.map +1 -0
  88. package/dist/{chunk-N3OB2YY6.js → chunk-LTQOZIJO.js} +2 -2
  89. package/dist/{chunk-N3OB2YY6.js.map → chunk-LTQOZIJO.js.map} +1 -1
  90. package/dist/{chunk-CS6NFRNQ.js → chunk-MJEUK6VJ.js} +2 -2
  91. package/dist/{chunk-CS6NFRNQ.js.map → chunk-MJEUK6VJ.js.map} +1 -1
  92. package/dist/{chunk-AF2NTM4B.js → chunk-NRXVS7E4.js} +6 -6
  93. package/dist/{chunk-AF2NTM4B.js.map → chunk-NRXVS7E4.js.map} +1 -1
  94. package/dist/{chunk-UDUFMVJD.js → chunk-RADBQ5XJ.js} +7 -7
  95. package/dist/{chunk-UDUFMVJD.js.map → chunk-RADBQ5XJ.js.map} +1 -1
  96. package/dist/{chunk-TSB46BHR.js → chunk-RDE43ORT.js} +4 -4
  97. package/dist/{chunk-TSB46BHR.js.map → chunk-RDE43ORT.js.map} +1 -1
  98. package/dist/{chunk-Q44OUGYC.js → chunk-SELNYOEO.js} +2 -2
  99. package/dist/{chunk-Q44OUGYC.js.map → chunk-SELNYOEO.js.map} +1 -1
  100. package/dist/{chunk-KECY74AL.js → chunk-SRWIVMJI.js} +4 -4
  101. package/dist/{chunk-KECY74AL.js.map → chunk-SRWIVMJI.js.map} +1 -1
  102. package/dist/{chunk-VK24PIAB.js → chunk-TFIFNDT2.js} +3 -3
  103. package/dist/{chunk-VK24PIAB.js.map → chunk-TFIFNDT2.js.map} +1 -1
  104. package/dist/{chunk-2PFS666T.js → chunk-XW3SWH7C.js} +3 -3
  105. package/dist/{chunk-2PFS666T.js.map → chunk-XW3SWH7C.js.map} +1 -1
  106. package/dist/{chunk-BIAA3N2A.js → chunk-Z6NGK5YC.js} +3 -3
  107. package/dist/{chunk-BIAA3N2A.js.map → chunk-Z6NGK5YC.js.map} +1 -1
  108. package/dist/cli/index.js +41 -41
  109. package/dist/connectors/config.js +1 -1
  110. package/dist/connectors/index.js +1 -1
  111. package/dist/core/index.js +1 -1
  112. package/dist/deploy/index.js +1 -1
  113. package/dist/{ensure-sources-O7X3LYLG.js → ensure-sources-QGL44IRI.js} +8 -8
  114. package/dist/{ensure-sources-O7X3LYLG.js.map → ensure-sources-QGL44IRI.js.map} +1 -1
  115. package/dist/factory-assets/connectors/box.js +1 -1
  116. package/dist/factory-assets/connectors/deploy.js +1 -1
  117. package/dist/factory-assets/connectors/devserver.js +1 -1
  118. package/dist/factory-assets/connectors/flow/adapter.js +1 -1
  119. package/dist/factory-assets/connectors/flow/engine.js +1 -1
  120. package/dist/factory-assets/connectors/flow/run-flow.js +2 -2
  121. package/dist/factory-assets/connectors/flow.js +1 -1
  122. package/dist/factory-assets/connectors/git.js +1 -1
  123. package/dist/factory-assets/connectors/gmail.js +1 -1
  124. package/dist/factory-assets/connectors/googledrive.js +1 -1
  125. package/dist/factory-assets/connectors/local.js +1 -1
  126. package/dist/factory-assets/connectors/mattermost.js +1 -1
  127. package/dist/factory-assets/connectors/memory.js +1 -1
  128. package/dist/factory-assets/connectors/minio.js +1 -1
  129. package/dist/factory-assets/connectors/postgres.js +1 -1
  130. package/dist/factory-assets/connectors/s3.js +1 -1
  131. package/dist/factory-assets/connectors/sharepoint.js +1 -1
  132. package/dist/factory-assets/connectors/sqlite.js +1 -1
  133. package/dist/factory-assets/connectors/static-server.js +1 -1
  134. package/dist/factory-assets/connectors/tunnel.js +1 -1
  135. package/dist/factory-assets/connectors/webdav.js +1 -1
  136. package/dist/factory-assets/connectors/xstate-store.js +1 -1
  137. package/dist/factory-assets/connectors/xstate.js +1 -1
  138. package/dist/{flows-TIUWM7SZ.js → flows-FHWBCLXF.js} +3 -3
  139. package/dist/{flows-TIUWM7SZ.js.map → flows-FHWBCLXF.js.map} +1 -1
  140. package/dist/{helpers-DNTGJSA5.js → helpers-FMWODXTW.js} +8 -8
  141. package/dist/{helpers-DNTGJSA5.js.map → helpers-FMWODXTW.js.map} +1 -1
  142. package/dist/library/index.js +4 -4
  143. package/dist/library/install.js +1 -1
  144. package/dist/{library-publish-XKQN6RTR.js → library-publish-7YDHQGBN.js} +10 -10
  145. package/dist/{library-publish-XKQN6RTR.js.map → library-publish-7YDHQGBN.js.map} +1 -1
  146. package/dist/{open-library-2BWIUK4F.js → open-library-O6T3ELPK.js} +9 -9
  147. package/dist/{open-library-2BWIUK4F.js.map → open-library-O6T3ELPK.js.map} +1 -1
  148. package/dist/{paths-KOKCMBL5.js → paths-5QJJBAND.js} +7 -7
  149. package/dist/{paths-KOKCMBL5.js.map → paths-5QJJBAND.js.map} +1 -1
  150. package/dist/{plugin-store-QMJ2B3VM.js → plugin-store-ZBJZ7F6D.js} +3 -3
  151. package/dist/{plugin-store-QMJ2B3VM.js.map → plugin-store-ZBJZ7F6D.js.map} +1 -1
  152. package/dist/{project-4NPDM7R3.js → project-HAMLHLD5.js} +9 -9
  153. package/dist/{project-4NPDM7R3.js.map → project-HAMLHLD5.js.map} +1 -1
  154. package/dist/runner/index.js +8 -8
  155. package/dist/runner/src/serve.d.ts +138 -1
  156. package/dist/runner/src/serve.d.ts.map +1 -1
  157. package/dist/sdk/asset-manager.js +5 -5
  158. package/dist/sdk/bridge.js +2 -2
  159. package/dist/sdk/core.js +1 -1
  160. package/dist/sdk/flow.js +1 -1
  161. package/dist/sdk/index.js +8 -8
  162. package/dist/sdk/runner.js +8 -8
  163. package/dist/sdk/session.js +2 -2
  164. package/dist/sdk/transport/ws.js +1 -1
  165. package/dist/sdk/transport.js +1 -1
  166. package/dist/sdk/types.js +1 -1
  167. package/dist/session/index.js +2 -2
  168. package/dist/session/src/dispatcher.d.ts.map +1 -1
  169. package/dist/{setup-HN6POGOA.js → setup-OJC74Q2Q.js} +5 -5
  170. package/dist/{setup-HN6POGOA.js.map → setup-OJC74Q2Q.js.map} +1 -1
  171. package/dist/{source-HVMQJZU7.js → source-ITDH4367.js} +10 -10
  172. package/dist/{source-HVMQJZU7.js.map → source-ITDH4367.js.map} +1 -1
  173. package/dist/{source-manifest-publish-JN62UMZD.js → source-manifest-publish-RMHC7R6M.js} +11 -11
  174. package/dist/{source-manifest-publish-JN62UMZD.js.map → source-manifest-publish-RMHC7R6M.js.map} +1 -1
  175. package/dist/transport/index.js +1 -1
  176. package/dist/transport/ws.js +1 -1
  177. package/dist/tui/index.js +8 -8
  178. package/dist/types/index.js +1 -1
  179. package/dist/types/src/events.d.ts +74 -1
  180. package/dist/types/src/events.d.ts.map +1 -1
  181. package/dist/types/src/flow.d.ts +34 -0
  182. package/dist/types/src/flow.d.ts.map +1 -1
  183. package/dist/types/src/index.d.ts +2 -2
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/types/src/protocol.d.ts +6 -0
  186. package/dist/types/src/protocol.d.ts.map +1 -1
  187. package/dist/types/src/version.d.ts +23 -1
  188. package/dist/types/src/version.d.ts.map +1 -1
  189. package/dist/workspace-plugin/adapters/mcp.js +1 -1
  190. package/dist/workspace-plugin/adapters/omp.js +3 -3
  191. package/dist/workspace-plugin/index.js +1 -1
  192. package/package.json +15 -2
  193. package/dist/chunk-7FXOOC7N.js.map +0 -1
  194. package/dist/chunk-LMY6XW6P.js.map +0 -1
  195. package/dist/chunk-P5VLR3L7.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { fetchProviderModels } from '../../chunk-BMQKMOQY.js';
2
2
  import { classifyGenericErrorMessage } from '../../chunk-GAH4YRCI.js';
3
- import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
3
+ import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
4
4
  import '../../chunk-6E6PKKAD.js';
5
5
  import '../../chunk-JB35MVBN.js';
6
6
  import '../../chunk-NSBPE2FW.js';
@@ -1,6 +1,6 @@
1
- import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-2PFS666T.js';
1
+ import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-XW3SWH7C.js';
2
2
  import '../../chunk-GAH4YRCI.js';
3
- import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
3
+ import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
4
4
  import '../../chunk-6E6PKKAD.js';
5
5
  import '../../chunk-JB35MVBN.js';
6
6
  import '../../chunk-NSBPE2FW.js';
@@ -1,5 +1,5 @@
1
1
  import { dispatchCapability } from '../../chunk-RRVQAE5D.js';
2
- import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
2
+ import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
3
3
  import '../../chunk-6E6PKKAD.js';
4
4
  import '../../chunk-JB35MVBN.js';
5
5
  import '../../chunk-NSBPE2FW.js';
@@ -1,8 +1,8 @@
1
- export { GeminiDriver, GeminiFamilyDriver, geminiDriverTarget } from '../../chunk-6GFQ3GXI.js';
2
- import '../../chunk-2PFS666T.js';
1
+ export { GeminiDriver, GeminiFamilyDriver, geminiDriverTarget } from '../../chunk-6ZLMG5GR.js';
2
+ import '../../chunk-XW3SWH7C.js';
3
3
  import '../../chunk-BMQKMOQY.js';
4
4
  import '../../chunk-GAH4YRCI.js';
5
- import '../../chunk-N3OB2YY6.js';
5
+ import '../../chunk-LTQOZIJO.js';
6
6
  import '../../chunk-6E6PKKAD.js';
7
7
  import '../../chunk-JB35MVBN.js';
8
8
  import '../../chunk-NSBPE2FW.js';
@@ -1,6 +1,6 @@
1
- import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-2PFS666T.js';
1
+ import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-XW3SWH7C.js';
2
2
  import '../../chunk-GAH4YRCI.js';
3
- import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
3
+ import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
4
4
  import '../../chunk-6E6PKKAD.js';
5
5
  import '../../chunk-JB35MVBN.js';
6
6
  import '../../chunk-NSBPE2FW.js';
@@ -1,5 +1,5 @@
1
1
  import { classifyGenericErrorMessage } from '../../chunk-GAH4YRCI.js';
2
- import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
2
+ import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
3
3
  import '../../chunk-6E6PKKAD.js';
4
4
  import '../../chunk-JB35MVBN.js';
5
5
  import '../../chunk-NSBPE2FW.js';
@@ -1,6 +1,6 @@
1
- import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-2PFS666T.js';
1
+ import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-XW3SWH7C.js';
2
2
  import '../../chunk-GAH4YRCI.js';
3
- import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
3
+ import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
4
4
  import '../../chunk-6E6PKKAD.js';
5
5
  import '../../chunk-JB35MVBN.js';
6
6
  import '../../chunk-NSBPE2FW.js';
@@ -1,8 +1,8 @@
1
- import { GeminiFamilyDriver } from '../../chunk-6GFQ3GXI.js';
2
- import '../../chunk-2PFS666T.js';
1
+ import { GeminiFamilyDriver } from '../../chunk-6ZLMG5GR.js';
2
+ import '../../chunk-XW3SWH7C.js';
3
3
  import { fetchProviderModels } from '../../chunk-BMQKMOQY.js';
4
4
  import '../../chunk-GAH4YRCI.js';
5
- import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-N3OB2YY6.js';
5
+ import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-LTQOZIJO.js';
6
6
  import '../../chunk-6E6PKKAD.js';
7
7
  import '../../chunk-JB35MVBN.js';
8
8
  import '../../chunk-NSBPE2FW.js';
@@ -1,9 +1,9 @@
1
- export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-7FXOOC7N.js';
1
+ export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-F3ET4UGP.js';
2
2
  export { CLOUD_SECRET_ENV_KEYS, SUPPORTED_CLOUDS, buildClaudeCloudEnv } from '../chunk-ISQWMBKD.js';
3
3
  export { dispatchCapability, filterRenderCapabilities, renderFallback } from '../chunk-RRVQAE5D.js';
4
4
  export { STATIC_MODELS, fetchProviderModels, getModels, getStaticModels } from '../chunk-BMQKMOQY.js';
5
5
  export { AccountUnavailableError, AuthError, classifyClaudeSdkError, reclassifyAuthAsAccountUnavailable } from '../chunk-GAH4YRCI.js';
6
- export { AgentDriver, BUILTIN_DRIVER_CATALOG, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, registerBuiltinDrivers } from '../chunk-N3OB2YY6.js';
6
+ export { AgentDriver, BUILTIN_DRIVER_CATALOG, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, registerBuiltinDrivers } from '../chunk-LTQOZIJO.js';
7
7
  import '../chunk-6E6PKKAD.js';
8
8
  import '../chunk-JB35MVBN.js';
9
9
  import '../chunk-NSBPE2FW.js';
@@ -74,6 +74,12 @@ export declare class ClaudeSdkDriver extends AgentDriver {
74
74
  private turnResolve;
75
75
  /** Rejects when the current turn errors. */
76
76
  private turnReject;
77
+ /**
78
+ * The in-flight turn's promise, awaited when a new prompt supersedes a pending question.
79
+ * Deliberately outlives {@link completeTurn} / {@link failTurn} — only {@link prompt}'s
80
+ * `finally` clears it, and not on a retry recursion. Nulling it earlier reopens #436.
81
+ */
82
+ private turnPromise;
77
83
  /** Guards against duplicate agent_end emissions per turn. */
78
84
  private turnCompleted;
79
85
  /** `Date.now()` of the most recent SDK message — the watchdog's liveness signal. */
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../../../bridge/src/drivers/claude-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../../../bridge/src/drivers/claude-sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../bridge/src/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,GAAE,MAAqB;IAIrC,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChD,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAInD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAqB,GAAG,aAAa,CAE5E"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../bridge/src/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,GAAE,MAAqB;IAIrC,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChD,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAInD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAqB,GAAG,aAAa,CAE5E"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Minimal hand-rolled Bot Framework activity types and their normalization
3
+ * into the channels core's {@link ChannelMessage} (spec §7.1.2). No botbuilder:
4
+ * only the fields the adapter actually reads are typed.
5
+ */
6
+ import type { IdentityPort } from "../../src/ports.js";
7
+ import type { ChannelActor, ChannelMessage, ConversationKey } from "../../src/types.js";
8
+ /** A Bot Framework activity, reduced to the fields the Teams adapter consumes. */
9
+ export type TeamsActivity = {
10
+ /** "message", "messageReaction", "conversationUpdate", … */
11
+ type: string;
12
+ id: string;
13
+ timestamp?: string;
14
+ serviceUrl: string;
15
+ /** Always "msteams" for Teams traffic. */
16
+ channelId: string;
17
+ from: {
18
+ id: string;
19
+ name?: string;
20
+ aadObjectId?: string;
21
+ };
22
+ conversation: {
23
+ id: string;
24
+ tenantId?: string;
25
+ conversationType?: string;
26
+ };
27
+ /** The bot the activity was addressed to. */
28
+ recipient: {
29
+ id: string;
30
+ name?: string;
31
+ };
32
+ text?: string;
33
+ entities?: Array<{
34
+ type: string;
35
+ mentioned?: {
36
+ id: string;
37
+ name?: string;
38
+ };
39
+ text?: string;
40
+ }>;
41
+ replyToId?: string;
42
+ /** Action.Submit payload, e.g. `{ option }` from a question card. */
43
+ value?: unknown;
44
+ channelData?: {
45
+ tenant?: {
46
+ id: string;
47
+ };
48
+ };
49
+ };
50
+ /**
51
+ * `"19:x@thread;messageid=123"` → key `msteams:19:x@thread/123`; no messageid →
52
+ * channel-level key.
53
+ */
54
+ export declare function conversationKeyFromActivity(a: TeamsActivity): ConversationKey;
55
+ /** Teams tenant id — `conversation.tenantId` with the channelData fallback. */
56
+ export declare function tenantIdOfActivity(a: TeamsActivity): string | undefined;
57
+ /** The sending user as a {@link ChannelActor} (AAD object id preferred as externalId). */
58
+ export declare function actorOfActivity(a: TeamsActivity): ChannelActor;
59
+ /**
60
+ * Normalizes a message activity into a ChannelMessage (spec §7.1.2):
61
+ * payload { type:"prompt", prompt: textWithMentionTokensStripped },
62
+ * meta.channel { platform:"msteams", conversationKey, eventId: a.id, tenantId,
63
+ * actor, messageRef }, meta.mentions via normalize (bot recipient id ⇒ isBot
64
+ * entity). A text-less Action.Submit (question-card answer) uses its `option`
65
+ * as the prompt. Returns null for non-message activities and for the bot's own
66
+ * messages (a.from.id === a.recipient.id — the adapter-level loop filter,
67
+ * spec §8).
68
+ */
69
+ export declare function activityToChannelMessage(a: TeamsActivity, identity: IdentityPort): Promise<ChannelMessage | null>;
70
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../../channels/adapters/msteams/activity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAMpG,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC1B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,6CAA6C;IAC7C,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe,CAQ7E;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAO9D;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA2ChC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The shared bottom-layer Bot Framework REST client (spec §4.1) — written once
3
+ * here, reused by the later agent-side tool-face step. Raw fetch only; no
4
+ * botbuilder.
5
+ */
6
+ /** Options for {@link MsTeamsClient}. */
7
+ export type MsTeamsClientOptions = {
8
+ appId: string;
9
+ clientSecret: string;
10
+ /** Default "https://login.microsoftonline.com/botframework.com" — injectable for mocks. */
11
+ loginBaseUrl?: string;
12
+ fetchImpl?: typeof fetch;
13
+ now?: () => number;
14
+ };
15
+ /** A failed connector-service call, with the HTTP status for callers to branch on. */
16
+ export declare class MsTeamsApiError extends Error {
17
+ readonly status: number;
18
+ constructor(status: number, message: string);
19
+ }
20
+ /**
21
+ * Minimal Bot Framework connector-service client: client_credentials token
22
+ * acquisition (cached) plus activity post/update against a channel-provided
23
+ * serviceUrl. Honors 429 Retry-After with jittered backoff, max 3 tries.
24
+ */
25
+ export declare class MsTeamsClient {
26
+ private readonly opts;
27
+ private readonly fetchImpl;
28
+ private readonly now;
29
+ private token?;
30
+ constructor(opts: MsTeamsClientOptions);
31
+ /** client_credentials token for scope https://api.botframework.com/.default; cached until exp-60s. */
32
+ getToken(): Promise<string>;
33
+ /** POST {serviceUrl}/v3/conversations/{conversationId}/activities[/{replyToId}] → { id }. */
34
+ postActivity(serviceUrl: string, conversationId: string, activity: Record<string, unknown>, replyToId?: string): Promise<{
35
+ id: string;
36
+ }>;
37
+ /** PUT {serviceUrl}/v3/conversations/{conversationId}/activities/{activityId}. Same retry policy. */
38
+ updateActivity(serviceUrl: string, conversationId: string, activityId: string, activity: Record<string, unknown>): Promise<void>;
39
+ private activitiesUrl;
40
+ /**
41
+ * Authorized JSON request honoring 429 Retry-After with jittered backoff,
42
+ * max 3 tries. One 401 forces a fresh token and a single immediate retry.
43
+ */
44
+ private request;
45
+ }
46
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../channels/adapters/msteams/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;CAKlB;AAID;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,KAAK,CAAC,CAAuC;gBAEzC,IAAI,EAAE,oBAAoB;IAMtC,sGAAsG;IAChG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBjC,6FAA6F;IACvF,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAW1B,qGAAqG;IAC/F,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAKhB,OAAO,CAAC,aAAa;IAKrB;;;OAGG;YACW,OAAO;CA6BtB"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * MS Teams {@link ChannelAdapter}: Bot Framework webhook ingress (JWT-verified,
3
+ * fast-acked) + connector-service egress via {@link MsTeamsClient}. Raw fetch
4
+ * only — no botbuilder. Identity stays with the engine: the adapter only tags
5
+ * `isBot` mention entities and never resolves users itself (Decision 16).
6
+ */
7
+ import type { AdapterContext, ChannelAdapter } from "../../src/adapter.js";
8
+ import type { ActorQuery, ChannelActor, ConversationHealth, ConversationKey, MessageRef, OutboundMessage, ReplyTarget, SurfaceCapabilities } from "../../src/types.js";
9
+ export * from "./activity.js";
10
+ export * from "./client.js";
11
+ export * from "./jwt.js";
12
+ /** Options for {@link MsTeamsAdapter}. */
13
+ export type MsTeamsAdapterOptions = {
14
+ /** Skaile's multi-tenant Entra app id (non-secret; the secret comes via CredentialPort). */
15
+ appId: string;
16
+ /** Default "/channels/msteams/messages". */
17
+ ingressPath?: string;
18
+ openIdMetadataUrl?: string;
19
+ loginBaseUrl?: string;
20
+ fetchImpl?: typeof fetch;
21
+ };
22
+ /**
23
+ * The MS Teams adapter (spec §6, plan Task 10). Webhook-style: `start` only
24
+ * registers the ingress route — there is no outbound socket. Egress posting
25
+ * requires the conversation to have been seen on ingress (serviceUrl + tenant
26
+ * are remembered per conversationKey; Bot Framework provides no directory).
27
+ */
28
+ export declare class MsTeamsAdapter implements ChannelAdapter {
29
+ readonly platform: "msteams";
30
+ readonly capabilities: SurfaceCapabilities;
31
+ private readonly opts;
32
+ private ctx?;
33
+ /** tenantId → lazily-created provider client (promise-cached to collapse races). */
34
+ private readonly clients;
35
+ /** Ingress-observed conversation facts, keyed by conversationKey (thread AND channel level). */
36
+ private readonly conversations;
37
+ /** Ingress-observed actors by externalId — the lookupActor roster. */
38
+ private readonly roster;
39
+ /** post() idempotency: dedupeKey → prior ref, TTL {@link DEDUPE_TTL_MS}. */
40
+ private readonly posted;
41
+ constructor(opts: MsTeamsAdapterOptions);
42
+ /** Registers the ingress route on the host; no connection is opened. */
43
+ start(ctx: AdapterContext): Promise<void>;
44
+ /** Drops the context and per-tenant clients; the host owns route teardown. */
45
+ stop(): Promise<void>;
46
+ /**
47
+ * The Bot Framework messaging endpoint. Guarded by a `Promise.race` at
48
+ * `ackDeadlineMs - 1000`: if processing overruns, Teams still gets its 200
49
+ * and at-least-once redelivery covers the rest.
50
+ */
51
+ readonly handleRequest: (req: Request) => Promise<Response>;
52
+ private processRequest;
53
+ /** Records serviceUrl + tenant under the thread key AND its channel-level key. */
54
+ private rememberConversation;
55
+ /** Grows the lookupActor roster from the sender and mention entities (bot excluded). */
56
+ private rememberActors;
57
+ /** Maps a messageReaction activity onto InboundReaction events (one per emoji). */
58
+ private forwardReactions;
59
+ /** Posts a message; a repeated `dedupeKey` returns the prior ref with no second side effect. */
60
+ post(target: ReplyTarget, msg: OutboundMessage, dedupeKey: string): Promise<MessageRef>;
61
+ /** Replaces a previously posted activity's content in place. */
62
+ update(ref: MessageRef, msg: OutboundMessage): Promise<void>;
63
+ /** Native Teams typing indicator — fire-and-forget, never deduped. */
64
+ indicateTyping(target: ReplyTarget): Promise<void>;
65
+ /** Preflight: a typing probe proves the bot can post; 403/404 → actionable problem. */
66
+ verifyConversation(key: ConversationKey): Promise<ConversationHealth>;
67
+ /** Resolves from the ingress-observed roster only (Graph lookup is platform glue, later). */
68
+ lookupActor(query: ActorQuery): Promise<ChannelActor | undefined>;
69
+ /** Decision 11: Adaptive Card for questions with options; markdown text otherwise. */
70
+ private buildActivity;
71
+ /** serviceUrl + native conversation id for a target — threadRef.raw first, ingress memory else. */
72
+ private resolveTarget;
73
+ /** Conversation facts under the exact key, falling back to its channel-level key. */
74
+ private infoFor;
75
+ /** One MsTeamsClient per tenant, built from CredentialPort (kind must be "msteams"). */
76
+ private clientForConversation;
77
+ private clientForTenant;
78
+ /** Live dedupe hit for `key`, sweeping expired entries opportunistically. */
79
+ private dedupeGet;
80
+ }
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../channels/adapters/msteams/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAEf,UAAU,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAa5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAiBzB,0CAA0C;AAC1C,MAAM,MAAM,qBAAqB,GAAG;IAClC,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,CAAC;AASF;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAYxC;IAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,GAAG,CAAC,CAAiB;IAC7B,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAC9E,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6D;gBAExE,IAAI,EAAE,qBAAqB;IAIvC,wEAAwE;IAClE,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,8EAA8E;IACxE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,GAAU,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAU9D;YAEY,cAAc;IA0C5B,kFAAkF;IAClF,OAAO,CAAC,oBAAoB;IAQ5B,wFAAwF;IACxF,OAAO,CAAC,cAAc;IAgBtB,mFAAmF;YACrE,gBAAgB;IA6B9B,gGAAgG;IAC1F,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB7F,gEAAgE;IAC1D,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,sEAAsE;IAChE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,uFAAuF;IACjF,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmB3E,6FAA6F;IACvF,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWvE,sFAAsF;IACtF,OAAO,CAAC,aAAa;IAoBrB,mGAAmG;IACnG,OAAO,CAAC,aAAa;IAgBrB,qFAAqF;IACrF,OAAO,CAAC,OAAO;IAOf,wFAAwF;IACxF,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,eAAe;IAuBvB,6EAA6E;IAC7E,OAAO,CAAC,SAAS;CAOlB"}
@@ -0,0 +1,27 @@
1
+ /** Options for {@link validateBotFrameworkJwt}. */
2
+ export type JwtValidationOptions = {
3
+ /** The Skaile-published multi-tenant Entra app id — the expected `aud`. */
4
+ appId: string;
5
+ /** Default "https://login.botframework.com/v1/.well-known/openidconfiguration". */
6
+ openIdMetadataUrl?: string;
7
+ /** Default 300_000 (5 min). */
8
+ clockSkewMs?: number;
9
+ fetchImpl?: typeof fetch;
10
+ now?: () => number;
11
+ };
12
+ /** Outcome of {@link validateBotFrameworkJwt} — `reason` is safe to log, never secret. */
13
+ export type JwtValidationResult = {
14
+ ok: true;
15
+ } | {
16
+ ok: false;
17
+ reason: string;
18
+ };
19
+ /**
20
+ * Validates a Bot Framework channel→bot JWT (RS256 via the published JWKS):
21
+ * Bearer present, alg RS256, iss "https://api.botframework.com", aud === appId,
22
+ * exp/nbf within skew, serviceurl claim === the activity's serviceUrl.
23
+ * JWKS keys cached in-module by kid for 24h; an unknown kid forces one
24
+ * rate-limited refetch (key rotation) before the token is rejected.
25
+ */
26
+ export declare function validateBotFrameworkJwt(authorizationHeader: string | undefined, activityServiceUrl: string, opts: JwtValidationOptions): Promise<JwtValidationResult>;
27
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../channels/adapters/msteams/jwt.ts"],"names":[],"mappings":"AAuBA,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA0E/E;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAkD9B"}
@@ -0,0 +1,2 @@
1
+ // Auto-generated by _scripts/emit-dts-sidecars.ts — do not edit by hand.
2
+ export * from "./msteams/index.js";