@armoriq/sdk-dev 0.3.5 → 0.3.6

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.
@@ -9,6 +9,7 @@
9
9
  export declare function cmdLogin(args: {
10
10
  backend?: string;
11
11
  org?: string;
12
+ product?: string;
12
13
  }): Promise<number>;
13
14
  export declare function cmdLogout(): number;
14
15
  export declare function cmdWhoami(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgHH,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0GxF;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAkBlC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgOH,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4GlB;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAkBlC"}
@@ -54,32 +54,130 @@ const child_process_1 = require("child_process");
54
54
  const axios_1 = __importDefault(require("axios"));
55
55
  const credentials_1 = require("../../credentials");
56
56
  const util_1 = require("../util");
57
- const SUCCESS_HTML = `<!DOCTYPE html>
58
- <html><head><meta charset="utf-8"><title>ArmorIQ</title>
57
+ const PRODUCT_LABELS = {
58
+ armorclaude: 'ArmorClaude',
59
+ armorcodex: 'ArmorCodex',
60
+ armorcopilot: 'ArmorCopilot',
61
+ armorclaw: 'ArmorClaw',
62
+ platform: 'ArmorIQ Platform',
63
+ sdk: 'ArmorIQ SDK',
64
+ };
65
+ function escapeHtml(s) {
66
+ return s.replace(/[&<>"']/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' })[c] ?? c);
67
+ }
68
+ function renderSuccessHtml(opts) {
69
+ const productKey = (opts.product ?? '').toLowerCase().trim();
70
+ const productLabel = PRODUCT_LABELS[productKey] ?? null;
71
+ const emailHtml = opts.email
72
+ ? `<div class="email">${escapeHtml(opts.email)}</div>`
73
+ : '';
74
+ const productHtml = productLabel
75
+ ? `<div class="chip">Connected to ${escapeHtml(productLabel)}</div>`
76
+ : '';
77
+ const year = new Date().getFullYear();
78
+ return `<!DOCTYPE html>
79
+ <html lang="en"><head>
80
+ <meta charset="utf-8">
81
+ <meta name="viewport" content="width=device-width, initial-scale=1">
82
+ <title>Authorized · ArmorIQ</title>
83
+ <link rel="icon" type="image/svg+xml" href="data:image/svg+xml;utf8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 27"><path d="M6.25 16.18 9.14 11.97 11.83 15.88 14.53 11.97 17.17 15.88 20.06 11.71" stroke="#D97D55" stroke-width="2" fill="none" stroke-linecap="round"/><circle cx="13.15" cy="13.85" r="12.15" stroke="#D97D55" stroke-width="2" fill="none"/></svg>`)}">
59
84
  <style>
60
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
61
- display: flex; align-items: center; justify-content: center; height: 100vh;
62
- margin: 0; background: #f8fafc; color: #1e293b; }
63
- .card { text-align: center; padding: 3rem; background: white;
64
- border-radius: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.1);
65
- max-width: 400px; }
66
- .check { width: 64px; height: 64px; background: #dcfce7; border-radius: 50%;
67
- display: flex; align-items: center; justify-content: center;
68
- margin: 0 auto 1.5rem; }
69
- .check svg { width: 32px; height: 32px; color: #16a34a; }
70
- h2 { margin: 0 0 0.5rem; font-size: 1.25rem; }
71
- p { margin: 0; font-size: 0.875rem; color: #64748b; }
72
- </style></head><body>
73
- <div class="card">
74
- <div class="check">
75
- <svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
76
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
77
- </svg>
85
+ :root { color-scheme: light dark; }
86
+ * { box-sizing: border-box; }
87
+ html, body { height: 100%; margin: 0; }
88
+ body {
89
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, system-ui, sans-serif;
90
+ background: #fafafa;
91
+ color: #111;
92
+ display: flex; flex-direction: column;
93
+ min-height: 100vh;
94
+ }
95
+ header {
96
+ padding: 28px 32px; display: flex; align-items: center; gap: 10px;
97
+ }
98
+ header svg.mark { width: 32px; height: 32px; }
99
+ header .wordmark { font-weight: 700; font-size: 18px; letter-spacing: -0.01em; }
100
+ main {
101
+ flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px;
102
+ }
103
+ .card {
104
+ background: #fff; border: 1px solid #e5e7eb; border-radius: 14px;
105
+ padding: 40px 36px; max-width: 460px; width: 100%; text-align: center;
106
+ box-shadow: 0 1px 2px rgba(0,0,0,0.04);
107
+ }
108
+ .check {
109
+ width: 64px; height: 64px; border-radius: 999px;
110
+ background: #dcfce7; color: #16a34a;
111
+ display: flex; align-items: center; justify-content: center;
112
+ margin: 0 auto 18px;
113
+ }
114
+ .check svg { width: 32px; height: 32px; }
115
+ h1 { margin: 0 0 8px; font-size: 22px; letter-spacing: -0.01em; }
116
+ p.lead { margin: 0 0 4px; color: #4b5563; font-size: 14px; line-height: 1.5; }
117
+ .email { font-size: 13px; color: #111; font-weight: 600; margin-top: 14px; }
118
+ .chip {
119
+ display: inline-block; margin-top: 10px;
120
+ padding: 4px 10px; border-radius: 999px;
121
+ background: #f3f4f6; color: #374151;
122
+ font-size: 12px; font-weight: 500;
123
+ }
124
+ .hint {
125
+ margin-top: 20px; padding-top: 18px; border-top: 1px solid #f1f5f9;
126
+ color: #6b7280; font-size: 12px;
127
+ }
128
+ footer {
129
+ padding: 22px 32px; color: #6b7280; font-size: 12px;
130
+ display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
131
+ border-top: 1px solid #eef0f3;
132
+ }
133
+ footer nav a { color: #6b7280; text-decoration: none; margin-left: 16px; }
134
+ footer nav a:hover { color: #111; text-decoration: underline; }
135
+ @media (prefers-color-scheme: dark) {
136
+ body { background: #0a0e1a; color: #e5e7eb; }
137
+ header .wordmark { color: #fff; }
138
+ .card { background: #111827; border-color: #1f2937; box-shadow: none; }
139
+ p.lead, .hint, footer { color: #9ca3af; }
140
+ .email { color: #f3f4f6; }
141
+ .chip { background: #1f2937; color: #d1d5db; }
142
+ footer { border-top-color: #1f2937; }
143
+ footer nav a { color: #9ca3af; }
144
+ footer nav a:hover { color: #fff; }
145
+ }
146
+ </style>
147
+ </head>
148
+ <body>
149
+ <header>
150
+ <svg class="mark" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
151
+ <path d="M6.25 16.18 9.14 11.97 11.83 15.88 14.53 11.97 17.17 15.88 20.06 11.71" stroke="#D97D55" stroke-width="2" stroke-linecap="round"/>
152
+ <circle cx="13.15" cy="13.85" r="12.15" stroke="#D97D55" stroke-width="2"/>
153
+ </svg>
154
+ <span class="wordmark">ArmorIQ</span>
155
+ </header>
156
+ <main>
157
+ <div class="card">
158
+ <div class="check">
159
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
160
+ <path d="M5 13l4 4L19 7"/>
161
+ </svg>
162
+ </div>
163
+ <h1>You're all set</h1>
164
+ <p class="lead">Your device is now connected to ArmorIQ.</p>
165
+ ${emailHtml}
166
+ ${productHtml}
167
+ <div class="hint">You can close this tab and return to your terminal.</div>
78
168
  </div>
79
- <h2>Authorized</h2>
80
- <p>You can close this tab and return to your terminal.</p>
81
- </div>
169
+ </main>
170
+ <footer>
171
+ <div>© ${year} ArmorIQ Inc.</div>
172
+ <nav>
173
+ <a href="https://docs.armoriq.ai" target="_blank" rel="noreferrer">Docs</a>
174
+ <a href="https://dev.armoriq.ai" target="_blank" rel="noreferrer">Dashboard</a>
175
+ <a href="https://armoriq.ai/privacy" target="_blank" rel="noreferrer">Privacy</a>
176
+ <a href="https://armoriq.ai/terms" target="_blank" rel="noreferrer">Terms</a>
177
+ </nav>
178
+ </footer>
82
179
  </body></html>`;
180
+ }
83
181
  function findFreePort() {
84
182
  return new Promise((resolve, reject) => {
85
183
  const server = net.createServer();
@@ -97,7 +195,7 @@ function findFreePort() {
97
195
  });
98
196
  });
99
197
  }
100
- function startCallbackServer(port) {
198
+ function startCallbackServer(port, product) {
101
199
  let resolveResult;
102
200
  const once = new Promise((resolve) => {
103
201
  resolveResult = resolve;
@@ -106,8 +204,13 @@ function startCallbackServer(port) {
106
204
  const url = new url_1.URL(req.url ?? '/', `http://localhost:${port}`);
107
205
  if (url.pathname === '/callback') {
108
206
  const params = Object.fromEntries(url.searchParams.entries());
207
+ const callbackProduct = params.product || product;
109
208
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
110
- res.end(SUCCESS_HTML);
209
+ res.end(renderSuccessHtml({
210
+ email: params.email,
211
+ product: callbackProduct,
212
+ orgId: params.org_id,
213
+ }));
111
214
  const result = {
112
215
  api_key: params.key,
113
216
  email: params.email,
@@ -141,12 +244,13 @@ function sleep(ms) {
141
244
  async function cmdLogin(args) {
142
245
  const backend = (args.backend ?? process.env.ARMORIQ_BACKEND_URL ?? (0, util_1.backendBase)()).replace(/\/+$/, '');
143
246
  const requestedOrg = (args.org ?? '').trim();
247
+ const product = (args.product ?? process.env.ARMORIQ_PRODUCT ?? '').trim();
144
248
  (0, util_1.out)('');
145
249
  (0, util_1.out)(' \x1b[1m\x1b[36m┃ ArmorIQ Login\x1b[0m');
146
250
  (0, util_1.out)('');
147
251
  const port = await findFreePort();
148
252
  const callbackUrl = `http://localhost:${port}/callback`;
149
- const { server, once: callbackOnce } = startCallbackServer(port);
253
+ const { server, once: callbackOnce } = startCallbackServer(port, product);
150
254
  let dc;
151
255
  try {
152
256
  const r = await axios_1.default.post(`${backend}/auth/device/code`, { callback_url: callbackUrl }, { timeout: 10000 });
@@ -164,6 +268,8 @@ async function cmdLogin(args) {
164
268
  let browserUrl = `${verification_uri_complete}${sep}callback=${encodeURIComponent(callbackUrl)}`;
165
269
  if (requestedOrg)
166
270
  browserUrl += `&org=${encodeURIComponent(requestedOrg)}`;
271
+ if (product)
272
+ browserUrl += `&product=${encodeURIComponent(product)}`;
167
273
  (0, util_1.out)(' Opening browser...\n');
168
274
  openBrowser(browserUrl);
169
275
  (0, util_1.out)(' If the browser didn\'t open, visit:');
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AA8BH,KAAK,IAAI,GAAG,MAAM,EAAE,CAAC;AAcrB,iBAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA2E9C;AAgBD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAiCH,KAAK,IAAI,GAAG,MAAM,EAAE,CAAC;AAcrB,iBAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E9C;AAgBD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -19,7 +19,10 @@ armoriq — ArmorIQ SDK CLI
19
19
  Usage: armoriq <command> [options]
20
20
 
21
21
  Commands:
22
- login [--org <name>] OAuth device-code login flow
22
+ login [--org <name>] [--product <name>]
23
+ OAuth device-code login flow. --product
24
+ (armorclaude|armorcodex|armorcopilot|...) shows
25
+ a product chip on the success page.
23
26
  logout Remove cached credentials
24
27
  whoami Show the currently logged-in account
25
28
 
@@ -61,7 +64,8 @@ async function run(argv) {
61
64
  const { cmdLogin } = await import('./commands/auth.js');
62
65
  const org = parseFlag(rest, 'org');
63
66
  const backend = parseFlag(rest, 'backend');
64
- return cmdLogin({ org, backend });
67
+ const product = parseFlag(rest, 'product');
68
+ return cmdLogin({ org, backend, product });
65
69
  }
66
70
  case 'logout': {
67
71
  const { cmdLogout } = await import('./commands/auth.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,126 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft_copilot.js","sourceRoot":"","sources":["../../src/integrations/microsoft_copilot.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,oEAyCC;AAeD,sEAeC;AAUD,0DAOC;AAtID,+CAAiC;AAEjC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAwC7B;;;GAGG;AACH,SAAgB,4BAA4B,CAC1C,IAA6B;IAE7B,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACvE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,gBAAgB,CAAC;IACxD,IAAI,KAAK,GAAG,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAEpE,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAC9B,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM;SACpB,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAEnB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7B,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvE,CAAC;AAWD;;;GAGG;AACH,SAAgB,6BAA6B,CAC3C,OAA6B;IAE7B,MAAM,QAAQ,GACZ,OAAO,CAAC,cAAc,EAAE,IAAI;QAC5B,OAAO,CAAC,cAAc,EAAE,EAAE;QAC1B,SAAS,CAAC;IACZ,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;KACnD,CAAC;AACJ,CAAC;AAOD;;GAEG;AACH,SAAgB,uBAAuB,CACrC,QAAgE;IAEhE,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armoriq/sdk-dev",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
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",