@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.
- package/agent/app-manifest.ts +4 -2
- package/agent/app-package.ts +532 -0
- package/agent/approvals/teams-card.ts +189 -0
- package/agent/approvals/teams-flow.ts +467 -0
- package/agent/channels/teams-declared-target.ts +108 -0
- package/agent/channels/teams-front.ts +25 -2
- package/agent/docs-generated.ts +1 -1
- package/agent/ops.ts +36 -0
- package/agent/register.ts +28 -1
- package/agent/surface-parity.ts +19 -11
- package/dist/agent/app-manifest.d.ts.map +1 -1
- package/dist/agent/app-manifest.js +4 -2
- package/dist/agent/app-manifest.js.map +1 -1
- package/dist/agent/app-package.d.ts +74 -0
- package/dist/agent/app-package.d.ts.map +1 -0
- package/dist/agent/app-package.js +449 -0
- package/dist/agent/app-package.js.map +1 -0
- package/dist/agent/approvals/teams-card.d.ts +65 -0
- package/dist/agent/approvals/teams-card.d.ts.map +1 -0
- package/dist/agent/approvals/teams-card.js +135 -0
- package/dist/agent/approvals/teams-card.js.map +1 -0
- package/dist/agent/approvals/teams-flow.d.ts +144 -0
- package/dist/agent/approvals/teams-flow.d.ts.map +1 -0
- package/dist/agent/approvals/teams-flow.js +366 -0
- package/dist/agent/approvals/teams-flow.js.map +1 -0
- package/dist/agent/channels/teams-declared-target.d.ts +12 -0
- package/dist/agent/channels/teams-declared-target.d.ts.map +1 -0
- package/dist/agent/channels/teams-declared-target.js +96 -0
- package/dist/agent/channels/teams-declared-target.js.map +1 -0
- package/dist/agent/channels/teams-front.d.ts +5 -0
- package/dist/agent/channels/teams-front.d.ts.map +1 -1
- package/dist/agent/channels/teams-front.js +19 -2
- package/dist/agent/channels/teams-front.js.map +1 -1
- package/dist/agent/docs-generated.js +1 -1
- package/dist/agent/docs-generated.js.map +1 -1
- package/dist/agent/ops.d.ts.map +1 -1
- package/dist/agent/ops.js +31 -1
- package/dist/agent/ops.js.map +1 -1
- package/dist/agent/register.d.ts.map +1 -1
- package/dist/agent/register.js +26 -2
- package/dist/agent/register.js.map +1 -1
- package/dist/agent/surface-parity.d.ts.map +1 -1
- package/dist/agent/surface-parity.js +18 -11
- package/dist/agent/surface-parity.js.map +1 -1
- package/package.json +21 -3
package/dist/agent/register.js
CHANGED
|
@@ -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", {
|
|
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":"AAAA,2FAA2F;AAC3F,mGAAmG;AACnG,kGAAkG;AAClG,gGAAgG;AAChG,iGAAiG;AACjG,EAAE;AACF,4DAA4D;AAC5D,0FAA0F;AAC1F,kFAAkF;AAClF,8FAA8F;AAC9F,oGAAoG;AACpG,6DAA6D;AAC7D,qGAAqG;AACrG,qGAAqG;AACrG,+FAA+F;AAC/F,iGAAiG;AACjG,oGAAoG;AACpG,8FAA8F;AAC9F,iGAAiG;AACjG,4FAA4F;AAC5F,oGAAoG;AACpG,6FAA6F;AAC7F,gDAAgD;AAChD,oGAAoG;AACpG,6FAA6F;AAC7F,8FAA8F;AAC9F,mGAAmG;AACnG,kFAAkF;AAClF,sGAAsG;AACtG,oGAAoG;AACpG,wCAAwC;AACxC,qGAAqG;AACrG,mGAAmG;AACnG,8FAA8F;AAC9F,kGAAkG;AAClG,oEAAoE;AACpE,oGAAoG;AACpG,8FAA8F;AAC9F,oGAAoG;AACpG,sFAAsF;AACtF,mFAAmF;AAEnF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,
|
|
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,
|
|
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
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
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;
|
|
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.
|
|
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-
|
|
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.
|
|
201
|
+
"@open-everywhere/core": "0.6.0",
|
|
184
202
|
"zod": "4.5.4"
|
|
185
203
|
},
|
|
186
204
|
"peerDependencies": {
|