@open-everywhere/provider-teams 0.4.0 → 0.6.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 (45) hide show
  1. package/agent/app-manifest.ts +4 -2
  2. package/agent/app-package.ts +532 -0
  3. package/agent/approvals/teams-card.ts +189 -0
  4. package/agent/approvals/teams-flow.ts +467 -0
  5. package/agent/channels/teams-declared-target.ts +108 -0
  6. package/agent/channels/teams-front.ts +25 -2
  7. package/agent/docs-generated.ts +1 -1
  8. package/agent/ops.ts +36 -0
  9. package/agent/register.ts +28 -1
  10. package/agent/surface-parity.ts +19 -11
  11. package/dist/agent/app-manifest.d.ts.map +1 -1
  12. package/dist/agent/app-manifest.js +4 -2
  13. package/dist/agent/app-manifest.js.map +1 -1
  14. package/dist/agent/app-package.d.ts +74 -0
  15. package/dist/agent/app-package.d.ts.map +1 -0
  16. package/dist/agent/app-package.js +449 -0
  17. package/dist/agent/app-package.js.map +1 -0
  18. package/dist/agent/approvals/teams-card.d.ts +65 -0
  19. package/dist/agent/approvals/teams-card.d.ts.map +1 -0
  20. package/dist/agent/approvals/teams-card.js +135 -0
  21. package/dist/agent/approvals/teams-card.js.map +1 -0
  22. package/dist/agent/approvals/teams-flow.d.ts +144 -0
  23. package/dist/agent/approvals/teams-flow.d.ts.map +1 -0
  24. package/dist/agent/approvals/teams-flow.js +366 -0
  25. package/dist/agent/approvals/teams-flow.js.map +1 -0
  26. package/dist/agent/channels/teams-declared-target.d.ts +12 -0
  27. package/dist/agent/channels/teams-declared-target.d.ts.map +1 -0
  28. package/dist/agent/channels/teams-declared-target.js +96 -0
  29. package/dist/agent/channels/teams-declared-target.js.map +1 -0
  30. package/dist/agent/channels/teams-front.d.ts +5 -0
  31. package/dist/agent/channels/teams-front.d.ts.map +1 -1
  32. package/dist/agent/channels/teams-front.js +19 -2
  33. package/dist/agent/channels/teams-front.js.map +1 -1
  34. package/dist/agent/docs-generated.js +1 -1
  35. package/dist/agent/docs-generated.js.map +1 -1
  36. package/dist/agent/ops.d.ts.map +1 -1
  37. package/dist/agent/ops.js +31 -1
  38. package/dist/agent/ops.js.map +1 -1
  39. package/dist/agent/register.d.ts.map +1 -1
  40. package/dist/agent/register.js +26 -2
  41. package/dist/agent/register.js.map +1 -1
  42. package/dist/agent/surface-parity.d.ts.map +1 -1
  43. package/dist/agent/surface-parity.js +18 -11
  44. package/dist/agent/surface-parity.js.map +1 -1
  45. package/package.json +21 -3
@@ -38,8 +38,16 @@
38
38
  // and refuses an application identity the outbound WRITE, so the
39
39
  // feedback ingest is wired (channels/teams-reaction-feedback.ts) while
40
40
  // the capability manifest still reads `reactions: false`
41
+ // • approval-card poster — postTeamsApprovalCard (an Adaptive Card with Action.Execute buttons,
42
+ // sent through the Bot Connector; approvals/teams-flow.ts, OPE-2424). The
43
+ // TAP is answered by the front route (channels/teams-front.ts) after the
44
+ // Bot Framework JWT verify, through core's resolveApprovalClick
45
+ // • judge-lift notice poster — postTeamsJudgeLiftNotice (the trace of a judge-lifted act, with the
46
+ // "This should not have run" button)
47
+ // • decision feedback — teamsDecisionFeedback: the notice and the decision-wake target core's
48
+ // TTL sweep and session-grant release use for a Teams card
41
49
  // • NO attachment resolver — the Teams surface carries no attachment plane today
42
- import { registerIdentityMapper, registerCapabilityManifest, registerSurfaceParity, registerProviderEvents, registerReactionSurface, registerPostArm, registerWakeOriginCodec, registerReadAdapter, registerSeatCatchUp, registerRoutineDispatch, registerTeamsBridge, registerBotDisplayName, registerAccountDirectory, registerSurfaceMessageOps, registerProviderDocs, } from "@open-everywhere/core/agent/adapter-api.js";
50
+ import { registerIdentityMapper, registerCapabilityManifest, registerSurfaceParity, registerProviderEvents, registerReactionSurface, registerPostArm, registerWakeOriginCodec, registerReadAdapter, registerSeatCatchUp, registerRoutineDispatch, registerTeamsBridge, registerBotDisplayName, registerAccountDirectory, registerSurfaceMessageOps, registerCardPoster, registerJudgeLiftNoticePoster, registerDecisionFeedbackSurface, registerProviderDocs, } from "@open-everywhere/core/agent/adapter-api.js";
43
51
  import { PROVIDER_DOCS } from "./docs-generated.js";
44
52
  import { TEAMS_SURFACE_PARITY } from "./surface-parity.js";
45
53
  import { TEAMS_PROVIDER_EVENTS } from "./provider-events.js";
@@ -47,6 +55,7 @@ import { registerTeamsOps } from "./ops.js";
47
55
  import { teamsMessageOps } from "./channels/teams-message-ops.js";
48
56
  import teamsChannel from "./channels/teams.js";
49
57
  import { bindTeams, teamsMode } from "./channels/teams-identity.js";
58
+ import { resolveTeamsDeclaredTarget } from "./channels/teams-declared-target.js";
50
59
  import { teamsPostArm } from "./channels/teams-post-arm.js";
51
60
  import { teamsWakeOriginCodec } from "./channels/teams-origin-codec.js";
52
61
  import { teamsReadAdapter } from "./channels/teams-read.js";
@@ -54,6 +63,7 @@ import { teamsSeatCatchUpFetch, TEAMS_TIMESTAMP_PRECISION_MS } from "./channels/
54
63
  import { liveTeamsRoomMembership, liveTeamsAccountActive } from "./channels/teams-fire-eligibility.js";
55
64
  import { teamsBotDisplayName } from "./channels/teams-bot-name.js";
56
65
  import { fetchTeamsDirectory } from "./channels/teams-directory.js";
66
+ import { postTeamsApprovalCard, postTeamsJudgeLiftNotice, teamsDecisionFeedback } from "./approvals/teams-flow.js";
57
67
  /** One stored-target field as a non-empty string, or undefined (never a coerced non-string — the
58
68
  * store row is data, validated on the way out, not trusted). Local copy of the core dispatcher's
59
69
  * private helper (a two-line structural read; not a barrel port). */
@@ -159,7 +169,11 @@ export function registerTeamsProvider() {
159
169
  // bounds by it (OPE-1847). A wrong or missing unit bounds the seat out of its own window.
160
170
  registerSeatCatchUp("teams", teamsSeatCatchUpFetch, { timestampPrecisionMs: TEAMS_TIMESTAMP_PRECISION_MS });
161
171
  // Proactive routine fires on the teams surface (needs the captured Bot Framework reference).
162
- registerRoutineDispatch("teams", { resolveTarget: resolveTeamsTarget });
172
+ registerRoutineDispatch("teams", {
173
+ resolveTarget: resolveTeamsTarget,
174
+ // OPE-2419 — a webhook target on Teams, resolved off the conversation references captured inbound.
175
+ resolveDeclaredTarget: (spec) => resolveTeamsDeclaredTarget(spec),
176
+ });
163
177
  // The bundle→core bridge for the routine fire-eligibility leg's Graph checks (OPE-522) — core's
164
178
  // routines/fire-eligibility.ts consumes these through channels/teams-bridge.ts, never Graph
165
179
  // directly, mirroring the slack provider's own registerSlackBridge call.
@@ -180,6 +194,16 @@ export function registerTeamsProvider() {
180
194
  // postSurfaceText resolves a real send instead of undefined on a Teams turn. No postFiles (no
181
195
  // attachment plane) and no setReaction (no reaction primitive beyond the `angry` stop trigger).
182
196
  registerSurfaceMessageOps(teamsMessageOps);
197
+ // THE APPROVAL CARD (OPE-2424). The poster sends the Adaptive Card; the front route answers the tap
198
+ // after the JWT verify; core decides. Registering the poster makes `hasApprovalCardPath("teams")`
199
+ // true, so a Teams CHANNEL now hosts its own card instead of redirecting to a Slack or Discord room
200
+ // in the same domain. A personal or group chat carries no channel id (bindTeams' target.channelId),
201
+ // so the venue walk still redirects from there.
202
+ registerCardPoster("teams", (row, summaryLines) => postTeamsApprovalCard(row, summaryLines));
203
+ // The judge-lift notice gets its overrule BUTTON on Teams now. Without this poster the shared text
204
+ // render ran, which spells the overrule out in words.
205
+ registerJudgeLiftNoticePoster("teams", (row, summaryLines, outcomeLine) => postTeamsJudgeLiftNotice(row, summaryLines, outcomeLine));
206
+ registerDecisionFeedbackSurface("teams", teamsDecisionFeedback);
183
207
  // REACTION-FEEDBACK INGEST (OPE-1502) — INBOUND only, and that is not a contradiction with the
184
208
  // `reactions: false` manifest above. Teams refuses an application identity the outbound WRITE
185
209
  // (§7.3's probe), while it delivers `messageReaction` activities inbound freely. The arm that
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../agent/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../agent/register.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"surface-parity.d.ts","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAE3F,eAAO,MAAM,oBAAoB,EAAE,wBAiGlC,CAAC"}
1
+ {"version":3,"file":"surface-parity.d.ts","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAE3F,eAAO,MAAM,oBAAoB,EAAE,wBAyGlC,CAAC"}
@@ -41,6 +41,7 @@ export const TEAMS_SURFACE_PARITY = {
41
41
  // reads Slack's `threadTs`. A plain conversation send starts its own chain and stays top-level.
42
42
  // The personal/group-chat DM leg keeps the raw divert — it mints no reply-chain origin.
43
43
  "owned-thread-ingress": { supported: "the channel leg only — a reply chain is the thread; the DM leg mints no `replyToActivityId`, so it can own none" },
44
+ "thread-done-reaction": { unsupported: "Teams has no integration reaction primitive (no `setReaction` in the ancillary ops)" },
44
45
  // --- wake legs and conversation shapes -------------------------------------------------------
45
46
  "addressed-leg": "supported",
46
47
  // Not the engagement seam: the wake is the single-window front's Leg A, a different mechanism.
@@ -56,17 +57,23 @@ export const TEAMS_SURFACE_PARITY = {
56
57
  // to police. The seat's room context here is the catch-up read above and the carried tail, both of
57
58
  // which already pass the domain's policy in core.
58
59
  "seat-context-admission": { unsupported: "the hydration fills no context-line slot — the seat's room context is the catch-up read, which core already admits" },
59
- // The same missing invoke route the component-plane row above names: a card needs an Adaptive Card
60
- // PLUS a tap that resolves against the UNIFIED seat's parked request, and `teams-front.ts` forwards
61
- // every `invoke` to the native channel's own session, so nothing here can card in place. See the
62
- // roster row for what that costs and where it does NOT cost anything.
63
- "approval-card": { unsupported: "no invoke route resolves a tap against a unified seat's parked request. A governed act that takes the venue walk is redirected to a card-capable room in the SAME domain, or refused when the domain holds none. The paths OUTSIDE that walk do not: the spend checkpoint (spend/checkpoint.ts `requireSessionContinuation`) fails OPEN here and records the crossing in an audit row instead" },
64
- // THE TRACE ARRIVES EVEN THOUGH THE BUTTON CANNOT (OPE-1854). A judge-lifted act posts its
65
- // notice here as a plain message activity through the shared road (`postJudgeLiftNotice`), on this
66
- // surface's own `SurfaceMessageOps` transport. It carries the overrule as an INSTRUCTION in
67
- // words, with the action id a reviewer finds the act by, because no tap can land here.
68
- // 🔴 BARE, NOT `{ supported: "…" }`. A noted cell is exempt from the overclaim arm, and the
69
- // arm is the point: drop this bundle's text transport and the notice silently stops arriving.
60
+ // BUILT, NOT YET LIVE-PROVEN (OPE-2424). The bundle registers a `CardPoster` (an Adaptive Card with
61
+ // `Action.Execute` buttons), and the front route answers the `adaptiveCard/action` tap after the Bot
62
+ // Framework JWT verify, through core's `resolveApprovalClick`. The cell is noted rather than bare
63
+ // until a live leg (`S-CARD-teams`) proves the tap on a real tenant. ⚠️ A noted cell is EXEMPT from
64
+ // the overclaim arm (scripts/surface-parity.ts), so while the note stands nothing reds if the
65
+ // poster is dropped. scripts/teams-approvals-test.ts pins the registration instead. Make the cell
66
+ // bare `"supported"` when the live leg passes, and the arm guards it again.
67
+ // The noted half is the channel grain: a personal or group chat carries no channel id, so a governed
68
+ // act there still takes the venue walk to a card-capable room in the same domain.
69
+ "approval-card": {
70
+ supported: "built, not yet proven on a live tenant — a channel hosts its own Adaptive Card and the tap is answered after the Bot Framework JWT verify; a personal or group chat has no channel id, so its card still goes to a card-capable room in the same domain",
71
+ },
72
+ // THE TRACE CARRIES ITS BUTTON NOW (OPE-2424). The bundle registers a judge-lift notice poster, so
73
+ // a lifted act posts an Adaptive Card with the "This should not have run" action, answered by the
74
+ // same tap route as the approval card. Before OPE-2424 the shared text render (OPE-1854) spelled the
75
+ // overrule out in words. 🔴 BARE, NOT `{ supported: "…" }`: a noted cell is exempt from the overclaim
76
+ // arm, and the arm is the point — drop the poster AND the text transport and the notice stops.
70
77
  "judge-lift-notice": "supported",
71
78
  "name-drop-mention": { unsupported: "not built yet — Leg A wakes on an @mention or room chatter, never on a name-drop match" },
72
79
  // 🔴 THE ACTIVITY TYPE IS THE FILTER. Teams sends an edit as a `messageUpdate` activity, and the
@@ -1 +1 @@
1
- {"version":3,"file":"surface-parity.js","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wFAAwF;AACxF,EAAE;AACF,oGAAoG;AACpG,kGAAkG;AAClG,kGAAkG;AAClG,+FAA+F;AAI/F,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC5D,gGAAgG;IAChG,iBAAiB,EAAE,WAAW;IAC9B,qBAAqB,EAAE,WAAW;IAClC,UAAU,EAAE,WAAW;IACvB,mBAAmB,EAAE,WAAW;IAChC,wBAAwB,EAAE;QACxB,WAAW,EACT,2OAA2O;KAC9O;IACD,cAAc,EAAE,WAAW;IAC3B,gGAAgG;IAChG,mGAAmG;IACnG,8FAA8F;IAC9F,mGAAmG;IACnG,oDAAoD;IACpD,0BAA0B,EAAE,EAAE,SAAS,EAAE,kIAAkI,EAAE;IAC7K,eAAe,EAAE,WAAW;IAC5B,+FAA+F;IAC/F,+FAA+F;IAC/F,kGAAkG;IAClG,kGAAkG;IAClG,qFAAqF;IACrF,yBAAyB,EAAE;QACzB,SAAS,EAAE,+JAA+J;KAC3K;IACD,mGAAmG;IACnG,kGAAkG;IAClG,kGAAkG;IAClG,2BAA2B;IAC3B,uBAAuB,EAAE;QACvB,WAAW,EAAE,sIAAsI;KACpJ;IACD,6FAA6F;IAC7F,gGAAgG;IAChG,wFAAwF;IACxF,sBAAsB,EAAE,EAAE,SAAS,EAAE,iHAAiH,EAAE;IAExJ,gGAAgG;IAChG,eAAe,EAAE,WAAW;IAC5B,+FAA+F;IAC/F,+FAA+F;IAC/F,wDAAwD;IACxD,aAAa,EAAE,EAAE,SAAS,EAAE,mEAAmE,EAAE;IACjG,6FAA6F;IAC7F,oGAAoG;IACpG,mGAAmG;IACnG,6FAA6F;IAC7F,eAAe,EAAE,EAAE,SAAS,EAAE,2FAA2F,EAAE;IAC3H,oGAAoG;IACpG,mGAAmG;IACnG,kDAAkD;IAClD,wBAAwB,EAAE,EAAE,WAAW,EAAE,oHAAoH,EAAE;IAC/J,mGAAmG;IACnG,oGAAoG;IACpG,iGAAiG;IACjG,sEAAsE;IACtE,eAAe,EAAE,EAAE,WAAW,EAAE,+XAA+X,EAAE;IACja,2FAA2F;IAC3F,mGAAmG;IACnG,4FAA4F;IAC5F,uFAAuF;IACvF,4FAA4F;IAC5F,8FAA8F;IAC9F,mBAAmB,EAAE,WAAW;IAChC,mBAAmB,EAAE,EAAE,WAAW,EAAE,wFAAwF,EAAE;IAC9H,iGAAiG;IACjG,mGAAmG;IACnG,kGAAkG;IAClG,qFAAqF;IACrF,mBAAmB,EAAE,EAAE,WAAW,EAAE,gIAAgI,EAAE;IACtK,0CAA0C;IAC1C,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW;IAClB,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,WAAW;IAEjB,gGAAgG;IAChG,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,WAAW;IACvB,oFAAoF;IACpF,gGAAgG;IAChG,KAAK,EAAE,EAAE,WAAW,EAAE,qFAAqF,EAAE;IAC7G,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,EAAE,WAAW,EAAE,4EAA4E,EAAE;IACrG,YAAY,EAAE,WAAW;IACzB,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,WAAW;IAC5B,kGAAkG;IAClG,gEAAgE;IAChE,IAAI,EAAE,EAAE,SAAS,EAAE,2DAA2D,EAAE;IAChF,cAAc,EAAE,EAAE,WAAW,EAAE,8EAA8E,EAAE;IAC/G,eAAe,EAAE,WAAW;IAC5B,UAAU,EAAE,EAAE,SAAS,EAAE,qEAAqE,EAAE;IAChG,SAAS,EAAE,EAAE,WAAW,EAAE,+DAA+D,EAAE;CAC5F,CAAC"}
1
+ {"version":3,"file":"surface-parity.js","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-everywhere/provider-teams",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Open Everywhere Microsoft Teams provider — Teams channel and chat surfaces via Microsoft Graph.",
5
5
  "keywords": [
6
6
  "agent",
@@ -41,6 +41,18 @@
41
41
  "types": "./dist/agent/app-manifest.d.ts",
42
42
  "default": "./dist/agent/app-manifest.js"
43
43
  },
44
+ "./agent/app-package.js": {
45
+ "types": "./dist/agent/app-package.d.ts",
46
+ "default": "./dist/agent/app-package.js"
47
+ },
48
+ "./agent/approvals/teams-card.js": {
49
+ "types": "./dist/agent/approvals/teams-card.d.ts",
50
+ "default": "./dist/agent/approvals/teams-card.js"
51
+ },
52
+ "./agent/approvals/teams-flow.js": {
53
+ "types": "./dist/agent/approvals/teams-flow.d.ts",
54
+ "default": "./dist/agent/approvals/teams-flow.js"
55
+ },
44
56
  "./agent/channels/teams-bot-name.js": {
45
57
  "types": "./dist/agent/channels/teams-bot-name.d.ts",
46
58
  "default": "./dist/agent/channels/teams-bot-name.js"
@@ -57,6 +69,10 @@
57
69
  "types": "./dist/agent/channels/teams-conversation-ref.d.ts",
58
70
  "default": "./dist/agent/channels/teams-conversation-ref.js"
59
71
  },
72
+ "./agent/channels/teams-declared-target.js": {
73
+ "types": "./dist/agent/channels/teams-declared-target.d.ts",
74
+ "default": "./dist/agent/channels/teams-declared-target.js"
75
+ },
60
76
  "./agent/channels/teams-directory.js": {
61
77
  "types": "./dist/agent/channels/teams-directory.d.ts",
62
78
  "default": "./dist/agent/channels/teams-directory.js"
@@ -177,10 +193,12 @@
177
193
  "test:teams-engagement": "NODE_NO_WARNINGS=1 tsx scripts/teams-engagement-test.ts",
178
194
  "test:teams-message-ops": "NODE_NO_WARNINGS=1 tsx scripts/teams-message-ops-test.ts",
179
195
  "test:teams-id-restore": "NODE_NO_WARNINGS=1 tsx scripts/teams-id-restore-test.ts",
180
- "test:teams-spend-attribution": "NODE_NO_WARNINGS=1 tsx scripts/teams-spend-attribution-test.ts"
196
+ "test:teams-declared-target": "NODE_NO_WARNINGS=1 tsx scripts/teams-declared-target-test.ts",
197
+ "test:teams-spend-attribution": "NODE_NO_WARNINGS=1 tsx scripts/teams-spend-attribution-test.ts",
198
+ "test:teams-app-package": "NODE_NO_WARNINGS=1 tsx scripts/teams-app-package-test.ts"
181
199
  },
182
200
  "dependencies": {
183
- "@open-everywhere/core": "0.4.0",
201
+ "@open-everywhere/core": "0.6.0",
184
202
  "zod": "4.5.4"
185
203
  },
186
204
  "peerDependencies": {