@armoriq/sdk-dev 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_build_env.d.ts +13 -5
- package/dist/_build_env.d.ts.map +1 -1
- package/dist/_build_env.js +13 -5
- package/dist/_build_env.js.map +1 -1
- package/package.json +2 -2
- package/dist/integrations/microsoft_copilot.d.ts +0 -84
- package/dist/integrations/microsoft_copilot.d.ts.map +0 -1
- package/dist/integrations/microsoft_copilot.js +0 -126
- package/dist/integrations/microsoft_copilot.js.map +0 -1
package/dist/_build_env.d.ts
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build-time environment marker (matches armoriq-sdk-customer/_build_env.py).
|
|
3
3
|
*
|
|
4
|
-
* This file is
|
|
5
|
-
* Merging dev → main
|
|
6
|
-
*
|
|
4
|
+
* This file is one of two intentional divergence points between the
|
|
5
|
+
* `dev` and `main` branches. Merging dev → main will conflict here and
|
|
6
|
+
* in `package.json` (different `version` + `bin` name) — that's
|
|
7
|
+
* intentional, so the release owner consciously flips both defaults
|
|
7
8
|
* before publishing prod.
|
|
8
9
|
*
|
|
9
|
-
* main branch → ARMORIQ_ENV = "production" (prod URLs; published as
|
|
10
|
-
*
|
|
10
|
+
* main branch → ARMORIQ_ENV = "production" (prod URLs; published as @armoriq/sdk)
|
|
11
|
+
* package.json bin = "armoriq"
|
|
12
|
+
* dev branch → ARMORIQ_ENV = "staging" (staging URLs; published as @armoriq/sdk-dev)
|
|
13
|
+
* package.json bin = "armoriq-dev"
|
|
14
|
+
*
|
|
15
|
+
* The dev branch's bin is renamed to `armoriq-dev` so it can coexist
|
|
16
|
+
* with the prod `@armoriq/sdk` on the same machine without npm-bin
|
|
17
|
+
* collisions (which would otherwise cause silent PATH shadowing — a
|
|
18
|
+
* staging-targeted plugin would mint prod-scoped credentials).
|
|
11
19
|
*
|
|
12
20
|
* The baked constant is the branch-baked default. Set ARMORIQ_ENV=local
|
|
13
21
|
* (or staging/production) in your shell to override at runtime. Per-
|
package/dist/_build_env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_build_env.d.ts","sourceRoot":"","sources":["../src/_build_env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"_build_env.d.ts","sourceRoot":"","sources":["../src/_build_env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,eAAO,MAAM,WAAW,EAAE,OAAmB,CAAC;AAY9C,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgBtF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;AAUvD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE1D"}
|
package/dist/_build_env.js
CHANGED
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Build-time environment marker (matches armoriq-sdk-customer/_build_env.py).
|
|
4
4
|
*
|
|
5
|
-
* This file is
|
|
6
|
-
* Merging dev → main
|
|
7
|
-
*
|
|
5
|
+
* This file is one of two intentional divergence points between the
|
|
6
|
+
* `dev` and `main` branches. Merging dev → main will conflict here and
|
|
7
|
+
* in `package.json` (different `version` + `bin` name) — that's
|
|
8
|
+
* intentional, so the release owner consciously flips both defaults
|
|
8
9
|
* before publishing prod.
|
|
9
10
|
*
|
|
10
|
-
* main branch → ARMORIQ_ENV = "production" (prod URLs; published as
|
|
11
|
-
*
|
|
11
|
+
* main branch → ARMORIQ_ENV = "production" (prod URLs; published as @armoriq/sdk)
|
|
12
|
+
* package.json bin = "armoriq"
|
|
13
|
+
* dev branch → ARMORIQ_ENV = "staging" (staging URLs; published as @armoriq/sdk-dev)
|
|
14
|
+
* package.json bin = "armoriq-dev"
|
|
15
|
+
*
|
|
16
|
+
* The dev branch's bin is renamed to `armoriq-dev` so it can coexist
|
|
17
|
+
* with the prod `@armoriq/sdk` on the same machine without npm-bin
|
|
18
|
+
* collisions (which would otherwise cause silent PATH shadowing — a
|
|
19
|
+
* staging-targeted plugin would mint prod-scoped credentials).
|
|
12
20
|
*
|
|
13
21
|
* The baked constant is the branch-baked default. Set ARMORIQ_ENV=local
|
|
14
22
|
* (or staging/production) in your shell to override at runtime. Per-
|
package/dist/_build_env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_build_env.js","sourceRoot":"","sources":["../src/_build_env.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"_build_env.js","sourceRoot":"","sources":["../src/_build_env.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AA4CH,0CAEC;AA1CY,QAAA,WAAW,GAAY,SAAS,CAAC;AAE9C,oEAAoE;AACpE,UAAU;AACV,gEAAgE;AAChE,gEAAgE;AAChE,gEAAgE;AAChE,aAAa;AACb,qFAAqF;AACrF,qFAAqF;AACrF,sFAAsF;AACtF,2CAA2C;AAC9B,QAAA,SAAS,GAAqE;IACzF,UAAU,EAAE;QACV,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,0BAA0B;QACjC,GAAG,EAAE,wBAAwB;KAC9B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,gCAAgC;QACzC,KAAK,EAAE,oCAAoC;QAC3C,GAAG,EAAE,gCAAgC;KACtC;IACD,KAAK,EAAE;QACL,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,uBAAuB;QAC9B,GAAG,EAAE,uBAAuB;KAC7B;CACF,CAAC;AAIF,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtE,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,mBAAW,CAAC;AACrB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAkB;IAChD,OAAO,iBAAS,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@armoriq/sdk-dev",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "ArmorIQ SDK - Build secure AI agents with cryptographic intent verification.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
|
-
"armoriq": "dist/cli/index.js"
|
|
8
|
+
"armoriq-dev": "dist/cli/index.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ArmorIQ - Microsoft Copilot Studio integration (TypeScript).
|
|
3
|
-
*
|
|
4
|
-
* Provides the building blocks for hosting an ArmorCopilot webhook
|
|
5
|
-
* receiver that fronts the Microsoft Copilot Studio external security
|
|
6
|
-
* webhook (`POST /analyze-tool-execution`).
|
|
7
|
-
*
|
|
8
|
-
* import {
|
|
9
|
-
* verifyCopilotStudioSignature,
|
|
10
|
-
* translateCopilotStudioPayload,
|
|
11
|
-
* } from '@armoriq/sdk/integrations/microsoft_copilot';
|
|
12
|
-
*
|
|
13
|
-
* The MS side sends each tool invocation with an HMAC-SHA256 signature
|
|
14
|
-
* computed over `<timestamp>.<rawBody>` using a shared secret the tenant
|
|
15
|
-
* configured in Copilot Studio admin. We verify, translate the payload
|
|
16
|
-
* to our internal tool-call shape, then run the request through
|
|
17
|
-
* ArmorIQ policy enforcement.
|
|
18
|
-
*
|
|
19
|
-
* The verifier here is pure crypto: it does not call the backend. The
|
|
20
|
-
* caller is responsible for routing the verified request through the
|
|
21
|
-
* regular SDK enforce path (or future plan-less enforce endpoint) once
|
|
22
|
-
* the signature has been confirmed.
|
|
23
|
-
*/
|
|
24
|
-
export interface CopilotStudioPayload {
|
|
25
|
-
userMessage?: string;
|
|
26
|
-
chatHistory?: Record<string, unknown>;
|
|
27
|
-
toolDefinition: {
|
|
28
|
-
name?: string;
|
|
29
|
-
id?: string;
|
|
30
|
-
description?: string;
|
|
31
|
-
[key: string]: unknown;
|
|
32
|
-
};
|
|
33
|
-
toolInputValues?: Record<string, unknown>;
|
|
34
|
-
agentMetadata?: Record<string, unknown>;
|
|
35
|
-
userMetadata?: Record<string, unknown>;
|
|
36
|
-
conversationMetadata?: Record<string, unknown>;
|
|
37
|
-
}
|
|
38
|
-
export interface CopilotStudioVerifyArgs {
|
|
39
|
-
/** Raw HTTP body bytes — must be the exact bytes MS signed, before any JSON re-serialization. */
|
|
40
|
-
rawBody: Buffer | string;
|
|
41
|
-
/** Value of `X-ArmorCopilot-Signature` header. Hex string, optionally prefixed `sha256=`. */
|
|
42
|
-
signature: string;
|
|
43
|
-
/** Value of `X-ArmorCopilot-Timestamp` header. Unix seconds. */
|
|
44
|
-
timestamp: string | number;
|
|
45
|
-
/** Per-tenant shared secret configured in Copilot Studio admin. */
|
|
46
|
-
secret: string;
|
|
47
|
-
/** Maximum allowed clock skew in seconds. Defaults to 300 (5 min). */
|
|
48
|
-
maxSkewSeconds?: number;
|
|
49
|
-
}
|
|
50
|
-
export interface CopilotStudioVerifyResult {
|
|
51
|
-
ok: boolean;
|
|
52
|
-
reason?: 'missing-signature' | 'missing-timestamp' | 'invalid-timestamp' | 'timestamp-skew' | 'bad-signature';
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Verify the HMAC signature MS Copilot Studio attaches to a webhook
|
|
56
|
-
* request. Pure crypto — no backend calls. Constant-time comparison.
|
|
57
|
-
*/
|
|
58
|
-
export declare function verifyCopilotStudioSignature(args: CopilotStudioVerifyArgs): CopilotStudioVerifyResult;
|
|
59
|
-
export interface TranslatedToolCall {
|
|
60
|
-
toolName: string;
|
|
61
|
-
args: Record<string, unknown>;
|
|
62
|
-
userMessage?: string;
|
|
63
|
-
agentMetadata?: Record<string, unknown>;
|
|
64
|
-
userMetadata?: Record<string, unknown>;
|
|
65
|
-
conversationMetadata?: Record<string, unknown>;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Translate a Copilot Studio webhook payload into the
|
|
69
|
-
* `{ toolName, args, ...meta }` shape ArmorIQ enforce paths expect.
|
|
70
|
-
*/
|
|
71
|
-
export declare function translateCopilotStudioPayload(payload: CopilotStudioPayload): TranslatedToolCall;
|
|
72
|
-
export interface CopilotStudioDecision {
|
|
73
|
-
action: 'allow' | 'block';
|
|
74
|
-
reason?: string;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Sentinel mapping: a non-allow enforce result -> Copilot Studio response.
|
|
78
|
-
*/
|
|
79
|
-
export declare function toCopilotStudioDecision(enforced: {
|
|
80
|
-
allowed: boolean;
|
|
81
|
-
action?: string;
|
|
82
|
-
reason?: string;
|
|
83
|
-
}): CopilotStudioDecision;
|
|
84
|
-
//# sourceMappingURL=microsoft_copilot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microsoft_copilot.d.ts","sourceRoot":"","sources":["../../src/integrations/microsoft_copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,cAAc,EAAE;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,uBAAuB;IACtC,iGAAiG;IACjG,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EACH,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,uBAAuB,GAC5B,yBAAyB,CAuC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oBAAoB,GAC5B,kBAAkB,CAapB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,qBAAqB,CAKvB"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ArmorIQ - Microsoft Copilot Studio integration (TypeScript).
|
|
4
|
-
*
|
|
5
|
-
* Provides the building blocks for hosting an ArmorCopilot webhook
|
|
6
|
-
* receiver that fronts the Microsoft Copilot Studio external security
|
|
7
|
-
* webhook (`POST /analyze-tool-execution`).
|
|
8
|
-
*
|
|
9
|
-
* import {
|
|
10
|
-
* verifyCopilotStudioSignature,
|
|
11
|
-
* translateCopilotStudioPayload,
|
|
12
|
-
* } from '@armoriq/sdk/integrations/microsoft_copilot';
|
|
13
|
-
*
|
|
14
|
-
* The MS side sends each tool invocation with an HMAC-SHA256 signature
|
|
15
|
-
* computed over `<timestamp>.<rawBody>` using a shared secret the tenant
|
|
16
|
-
* configured in Copilot Studio admin. We verify, translate the payload
|
|
17
|
-
* to our internal tool-call shape, then run the request through
|
|
18
|
-
* ArmorIQ policy enforcement.
|
|
19
|
-
*
|
|
20
|
-
* The verifier here is pure crypto: it does not call the backend. The
|
|
21
|
-
* caller is responsible for routing the verified request through the
|
|
22
|
-
* regular SDK enforce path (or future plan-less enforce endpoint) once
|
|
23
|
-
* the signature has been confirmed.
|
|
24
|
-
*/
|
|
25
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
26
|
-
if (k2 === undefined) k2 = k;
|
|
27
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
28
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
29
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
30
|
-
}
|
|
31
|
-
Object.defineProperty(o, k2, desc);
|
|
32
|
-
}) : (function(o, m, k, k2) {
|
|
33
|
-
if (k2 === undefined) k2 = k;
|
|
34
|
-
o[k2] = m[k];
|
|
35
|
-
}));
|
|
36
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
37
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
38
|
-
}) : function(o, v) {
|
|
39
|
-
o["default"] = v;
|
|
40
|
-
});
|
|
41
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
42
|
-
var ownKeys = function(o) {
|
|
43
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
44
|
-
var ar = [];
|
|
45
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
46
|
-
return ar;
|
|
47
|
-
};
|
|
48
|
-
return ownKeys(o);
|
|
49
|
-
};
|
|
50
|
-
return function (mod) {
|
|
51
|
-
if (mod && mod.__esModule) return mod;
|
|
52
|
-
var result = {};
|
|
53
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
54
|
-
__setModuleDefault(result, mod);
|
|
55
|
-
return result;
|
|
56
|
-
};
|
|
57
|
-
})();
|
|
58
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
-
exports.verifyCopilotStudioSignature = verifyCopilotStudioSignature;
|
|
60
|
-
exports.translateCopilotStudioPayload = translateCopilotStudioPayload;
|
|
61
|
-
exports.toCopilotStudioDecision = toCopilotStudioDecision;
|
|
62
|
-
const crypto = __importStar(require("crypto"));
|
|
63
|
-
const MAX_SKEW_SECONDS = 300;
|
|
64
|
-
/**
|
|
65
|
-
* Verify the HMAC signature MS Copilot Studio attaches to a webhook
|
|
66
|
-
* request. Pure crypto — no backend calls. Constant-time comparison.
|
|
67
|
-
*/
|
|
68
|
-
function verifyCopilotStudioSignature(args) {
|
|
69
|
-
if (!args.signature)
|
|
70
|
-
return { ok: false, reason: 'missing-signature' };
|
|
71
|
-
if (args.timestamp === undefined || args.timestamp === null) {
|
|
72
|
-
return { ok: false, reason: 'missing-timestamp' };
|
|
73
|
-
}
|
|
74
|
-
const tsNum = typeof args.timestamp === 'number'
|
|
75
|
-
? args.timestamp
|
|
76
|
-
: Number(args.timestamp);
|
|
77
|
-
if (Number.isNaN(tsNum)) {
|
|
78
|
-
return { ok: false, reason: 'invalid-timestamp' };
|
|
79
|
-
}
|
|
80
|
-
const drift = Math.abs(Date.now() / 1000 - tsNum);
|
|
81
|
-
const maxSkew = args.maxSkewSeconds ?? MAX_SKEW_SECONDS;
|
|
82
|
-
if (drift > maxSkew)
|
|
83
|
-
return { ok: false, reason: 'timestamp-skew' };
|
|
84
|
-
const body = typeof args.rawBody === 'string'
|
|
85
|
-
? args.rawBody
|
|
86
|
-
: args.rawBody.toString('utf8');
|
|
87
|
-
const expected = crypto
|
|
88
|
-
.createHmac('sha256', args.secret)
|
|
89
|
-
.update(`${tsNum}.${body}`)
|
|
90
|
-
.digest('hex');
|
|
91
|
-
const provided = args.signature.startsWith('sha256=')
|
|
92
|
-
? args.signature.slice(7)
|
|
93
|
-
: args.signature;
|
|
94
|
-
if (provided.length !== expected.length) {
|
|
95
|
-
return { ok: false, reason: 'bad-signature' };
|
|
96
|
-
}
|
|
97
|
-
const match = crypto.timingSafeEqual(Buffer.from(provided, 'hex'), Buffer.from(expected, 'hex'));
|
|
98
|
-
return match ? { ok: true } : { ok: false, reason: 'bad-signature' };
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Translate a Copilot Studio webhook payload into the
|
|
102
|
-
* `{ toolName, args, ...meta }` shape ArmorIQ enforce paths expect.
|
|
103
|
-
*/
|
|
104
|
-
function translateCopilotStudioPayload(payload) {
|
|
105
|
-
const toolName = payload.toolDefinition?.name ??
|
|
106
|
-
payload.toolDefinition?.id ??
|
|
107
|
-
'unknown';
|
|
108
|
-
return {
|
|
109
|
-
toolName: String(toolName),
|
|
110
|
-
args: payload.toolInputValues ?? {},
|
|
111
|
-
userMessage: payload.userMessage,
|
|
112
|
-
agentMetadata: payload.agentMetadata,
|
|
113
|
-
userMetadata: payload.userMetadata,
|
|
114
|
-
conversationMetadata: payload.conversationMetadata,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Sentinel mapping: a non-allow enforce result -> Copilot Studio response.
|
|
119
|
-
*/
|
|
120
|
-
function toCopilotStudioDecision(enforced) {
|
|
121
|
-
if (enforced.allowed && enforced.action !== 'block') {
|
|
122
|
-
return { action: 'allow' };
|
|
123
|
-
}
|
|
124
|
-
return { action: 'block', reason: enforced.reason };
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=microsoft_copilot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microsoft_copilot.js","sourceRoot":"","sources":["../../src/integrations/microsoft_copilot.ts"],"names":[],"mappings":"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"}
|