@armoriq/sdk-dev 0.6.1 → 0.6.3
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.map +1 -1
- package/dist/_build_env.js +1 -1
- package/dist/_build_env.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +4 -1
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/client.d.ts +35 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +77 -1
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -1
- package/dist/config.js.map +1 -1
- package/dist/crypto_verify.d.ts +3 -0
- package/dist/crypto_verify.d.ts.map +1 -1
- package/dist/crypto_verify.js +77 -0
- package/dist/crypto_verify.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/integrations/microsoft_copilot.d.ts +84 -0
- package/dist/integrations/microsoft_copilot.d.ts.map +1 -0
- package/dist/integrations/microsoft_copilot.js +126 -0
- package/dist/integrations/microsoft_copilot.js.map +1 -0
- package/dist/models.d.ts +17 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/observability/handle.d.ts +41 -0
- package/dist/observability/handle.d.ts.map +1 -0
- package/dist/observability/handle.js +54 -0
- package/dist/observability/handle.js.map +1 -0
- package/dist/observability/index.d.ts +15 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +39 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/model-prices.d.ts +39 -0
- package/dist/observability/model-prices.d.ts.map +1 -0
- package/dist/observability/model-prices.js +127 -0
- package/dist/observability/model-prices.js.map +1 -0
- package/dist/observability/recorder.d.ts +245 -0
- package/dist/observability/recorder.d.ts.map +1 -0
- package/dist/observability/recorder.js +475 -0
- package/dist/observability/recorder.js.map +1 -0
- package/dist/observability/schema.d.ts +163 -0
- package/dist/observability/schema.d.ts.map +1 -0
- package/dist/observability/schema.js +291 -0
- package/dist/observability/schema.js.map +1 -0
- package/dist/observability/shipper.d.ts +84 -0
- package/dist/observability/shipper.d.ts.map +1 -0
- package/dist/observability/shipper.js +206 -0
- package/dist/observability/shipper.js.map +1 -0
- package/dist/observability/trace-summary.d.ts +34 -0
- package/dist/observability/trace-summary.d.ts.map +1 -0
- package/dist/observability/trace-summary.js +108 -0
- package/dist/observability/trace-summary.js.map +1 -0
- package/dist/session.d.ts +168 -3
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1093 -204
- package/dist/session.js.map +1 -1
- package/dist/token_usage.d.ts +18 -1
- package/dist/token_usage.d.ts.map +1 -1
- package/dist/token_usage.js +112 -2
- package/dist/token_usage.js.map +1 -1
- package/package.json +3 -2
- package/dist/integrations/google_adk_mcp_toolset.d.ts +0 -64
- package/dist/integrations/google_adk_mcp_toolset.d.ts.map +0 -1
- package/dist/integrations/google_adk_mcp_toolset.js +0 -91
- package/dist/integrations/google_adk_mcp_toolset.js.map +0 -1
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto_verify.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import * as crypto from 'crypto';
|
|
1
2
|
export declare function canonicalJson(value: unknown): string;
|
|
2
3
|
export declare function verifyIntentTokenSignature(rawToken: any): boolean;
|
|
3
4
|
export declare function verifyEd25519(publicKeyHex: string, message: Buffer, signatureHex: string): boolean;
|
|
5
|
+
export declare function loadEd25519PublicKey(source: unknown): crypto.KeyObject | null;
|
|
6
|
+
export declare function verifyEdDSAJwt(jwt: string, publicKey: crypto.KeyObject): boolean;
|
|
4
7
|
//# sourceMappingURL=crypto_verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_verify.d.ts","sourceRoot":"","sources":["../src/crypto_verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto_verify.d.ts","sourceRoot":"","sources":["../src/crypto_verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAwBjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAkBpD;AAKD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAiBjE;AAKD,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAYlG;AAoBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CA2B7E;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAehF"}
|
package/dist/crypto_verify.js
CHANGED
|
@@ -36,6 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.canonicalJson = canonicalJson;
|
|
37
37
|
exports.verifyIntentTokenSignature = verifyIntentTokenSignature;
|
|
38
38
|
exports.verifyEd25519 = verifyEd25519;
|
|
39
|
+
exports.loadEd25519PublicKey = loadEd25519PublicKey;
|
|
40
|
+
exports.verifyEdDSAJwt = verifyEdDSAJwt;
|
|
39
41
|
const crypto = __importStar(require("crypto"));
|
|
40
42
|
// Canonical JSON that byte-for-byte matches the IAP signer's
|
|
41
43
|
// json.dumps(payload, sort_keys=True, separators=(",", ":"), ensure_ascii=True).
|
|
@@ -132,4 +134,79 @@ function verifyEd25519(publicKeyHex, message, signatureHex) {
|
|
|
132
134
|
return false;
|
|
133
135
|
}
|
|
134
136
|
}
|
|
137
|
+
// ─── #519: EdDSA (Ed25519) JWT verification against a configured public key ──
|
|
138
|
+
// The backend (conmap) mints intent tokens as JWTs with header alg:"EdDSA" and
|
|
139
|
+
// exposes its Ed25519 public key at GET {backend}/iap/public-key. The SDK
|
|
140
|
+
// verifies the JWT against that trusted key — never against a key embedded in
|
|
141
|
+
// the token itself — so a forged token cannot assert its own allowlist.
|
|
142
|
+
// Wrap a raw 32-byte Ed25519 public key in the standard SPKI DER prefix so
|
|
143
|
+
// Node's crypto.createPublicKey accepts it. Returns null on wrong length.
|
|
144
|
+
function rawEd25519ToKeyObject(raw) {
|
|
145
|
+
if (raw.length !== 32)
|
|
146
|
+
return null;
|
|
147
|
+
const der = Buffer.concat([Buffer.from('302a300506032b6570032100', 'hex'), raw]);
|
|
148
|
+
return crypto.createPublicKey({ key: der, format: 'der', type: 'spki' });
|
|
149
|
+
}
|
|
150
|
+
// Load an Ed25519 public key from any of the shapes the backend / config may
|
|
151
|
+
// supply: a PEM string, a JWK object (OKP/Ed25519 with base64url `x`), a
|
|
152
|
+
// base64/base64url-encoded DER (SPKI) or raw 32-byte key, or a 64-char hex raw
|
|
153
|
+
// key. Returns a KeyObject, or null if the input cannot be parsed as Ed25519.
|
|
154
|
+
function loadEd25519PublicKey(source) {
|
|
155
|
+
try {
|
|
156
|
+
if (source == null)
|
|
157
|
+
return null;
|
|
158
|
+
// JWK object.
|
|
159
|
+
if (typeof source === 'object' && !Buffer.isBuffer(source)) {
|
|
160
|
+
const jwk = source;
|
|
161
|
+
if (jwk.kty === 'OKP' && typeof jwk.x === 'string') {
|
|
162
|
+
return rawEd25519ToKeyObject(Buffer.from(jwk.x, 'base64url'));
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
let str = Buffer.isBuffer(source) ? source.toString('utf8') : String(source);
|
|
167
|
+
str = str.trim();
|
|
168
|
+
if (!str)
|
|
169
|
+
return null;
|
|
170
|
+
if (str.includes('-----BEGIN')) {
|
|
171
|
+
return crypto.createPublicKey({ key: str, format: 'pem' });
|
|
172
|
+
}
|
|
173
|
+
if (/^[0-9a-fA-F]{64}$/.test(str)) {
|
|
174
|
+
return rawEd25519ToKeyObject(Buffer.from(str, 'hex'));
|
|
175
|
+
}
|
|
176
|
+
// base64 / base64url — could be a raw 32-byte key or a DER SPKI blob.
|
|
177
|
+
const b = Buffer.from(str, 'base64');
|
|
178
|
+
if (b.length === 32)
|
|
179
|
+
return rawEd25519ToKeyObject(b);
|
|
180
|
+
return crypto.createPublicKey({ key: b, format: 'der', type: 'spki' });
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Verify a compact JWS/JWT signed with EdDSA (Ed25519) against `publicKey`.
|
|
187
|
+
// Asserts the header alg is exactly "EdDSA", recomputes the signing input
|
|
188
|
+
// (`${headerB64url}.${payloadB64url}`) and checks the Ed25519 signature.
|
|
189
|
+
// Returns false on any malformed input or bad signature. Does NOT check expiry
|
|
190
|
+
// (the session enforces expiry separately from the signed timestamps).
|
|
191
|
+
function verifyEdDSAJwt(jwt, publicKey) {
|
|
192
|
+
try {
|
|
193
|
+
if (!jwt || typeof jwt !== 'string')
|
|
194
|
+
return false;
|
|
195
|
+
const parts = jwt.split('.');
|
|
196
|
+
if (parts.length !== 3)
|
|
197
|
+
return false;
|
|
198
|
+
const [headerB64, payloadB64, sigB64] = parts;
|
|
199
|
+
const header = JSON.parse(Buffer.from(headerB64, 'base64url').toString('utf8'));
|
|
200
|
+
if (header.alg !== 'EdDSA')
|
|
201
|
+
return false;
|
|
202
|
+
const signingInput = Buffer.from(`${headerB64}.${payloadB64}`, 'ascii');
|
|
203
|
+
const sig = Buffer.from(sigB64, 'base64url');
|
|
204
|
+
if (sig.length !== 64)
|
|
205
|
+
return false;
|
|
206
|
+
return crypto.verify(null, signingInput, publicKey, sig);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
135
212
|
//# sourceMappingURL=crypto_verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_verify.js","sourceRoot":"","sources":["../src/crypto_verify.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,sCAkBC;AAKD,gEAiBC;AAKD,sCAYC;
|
|
1
|
+
{"version":3,"file":"crypto_verify.js","sourceRoot":"","sources":["../src/crypto_verify.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* tool invocation with built-in security.
|
|
7
7
|
*
|
|
8
8
|
* @author ArmorIQ Team <license@armoriq.io>
|
|
9
|
-
* @version 0.3
|
|
9
|
+
* @version 0.6.3
|
|
10
10
|
*/
|
|
11
11
|
export { ArmorIQClient, ArmorIQUserScope } from './client';
|
|
12
12
|
export { summarizeTranscriptUsage, type TokenUsageEntry, type RecordTokenUsagePayload, } from './token_usage';
|
|
@@ -14,8 +14,9 @@ export { ArmorIQSession, SessionOptions, SessionMode, EnforceResult, ReportOptio
|
|
|
14
14
|
export { ArmorIQException, InvalidTokenException, IntentMismatchException, MCPInvocationException, TokenExpiredException, DelegationException, RevokedTokenError, ConfigurationException, PolicyBlockedException, PolicyHoldException, } from './exceptions';
|
|
15
15
|
export { IntentToken, PlanCapture, MCPInvocation, MCPInvocationResult, DelegationRequest, DelegationResult, SDKConfig, MCPSemanticMetadata, ToolSemanticEntry, PolicyContext, InvokeOptions, HoldInfo, DelegationRequestParams, DelegationRequestResult, ApprovedDelegation, ToolCall, McpCredential, McpCredentialMap, } from './models';
|
|
16
16
|
export { defaultToolNameParser, buildPlanFromToolCalls, hashToolCalls, ToolNameParser, PlanStep, BuiltPlan, } from './plan_builder';
|
|
17
|
-
export { ArmorIQConfig, ArmorIQConfigError, IdentityConfig, ProxyConfig, MCPAuthConfig, MCPAuthType, MCPServerConfig, PolicyConfig, IntentConfig, Environment, loadArmorIQConfig, parseArmorIQConfig, resolveEnvReference, resolveEnvReferences, saveArmorIQConfig, DEFAULT_PROXY_URL, } from './config';
|
|
18
|
-
export
|
|
17
|
+
export { ArmorIQConfig, ArmorIQConfigError, IdentityConfig, ProxyConfig, MCPAuthConfig, MCPAuthType, MCPServerConfig, PolicyConfig, IntentConfig, Environment, loadArmorIQConfig, parseArmorIQConfig, resolveEnvReference, resolveEnvReferences, saveArmorIQConfig, DEFAULT_PROXY_URL, ObservabilityConfig, defaultObservabilityConfig, } from './config';
|
|
18
|
+
export { ObservabilityRecorder, startTrace, endTrace, openSpan, closeSpan, recordSpan, recordEvent, recordPolicyCall, recordGeneration, flushObservability, computeCostUsd, isValidUuid, MODEL_PRICES, type TraceContext, type TraceRecord, type SpanRecord, type SpanKind, type PolicyCallAttributes, type GenerationAttributes, type PolicyDecision, type PolicySource, type EnforcementAction, __setObservabilitySinkForTests, } from './observability';
|
|
19
|
+
export declare const VERSION = "0.6.3";
|
|
19
20
|
export declare const AUTHOR = "ArmorIQ Team";
|
|
20
21
|
export declare const EMAIL = "license@armoriq.io";
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,eAAO,MAAM,KAAK,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* tool invocation with built-in security.
|
|
8
8
|
*
|
|
9
9
|
* @author ArmorIQ Team <license@armoriq.io>
|
|
10
|
-
* @version 0.3
|
|
10
|
+
* @version 0.6.3
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.EMAIL = exports.AUTHOR = exports.VERSION = exports.DEFAULT_PROXY_URL = exports.saveArmorIQConfig = exports.resolveEnvReferences = exports.resolveEnvReference = exports.parseArmorIQConfig = exports.loadArmorIQConfig = exports.ArmorIQConfigError = exports.hashToolCalls = exports.buildPlanFromToolCalls = exports.defaultToolNameParser = exports.IntentToken = exports.PolicyHoldException = exports.PolicyBlockedException = exports.ConfigurationException = exports.RevokedTokenError = exports.DelegationException = exports.TokenExpiredException = exports.MCPInvocationException = exports.IntentMismatchException = exports.InvalidTokenException = exports.ArmorIQException = exports.ArmorIQSession = exports.summarizeTranscriptUsage = exports.ArmorIQUserScope = exports.ArmorIQClient = void 0;
|
|
13
|
+
exports.EMAIL = exports.AUTHOR = exports.VERSION = exports.__setObservabilitySinkForTests = exports.MODEL_PRICES = exports.isValidUuid = exports.computeCostUsd = exports.flushObservability = exports.recordGeneration = exports.recordPolicyCall = exports.recordEvent = exports.recordSpan = exports.closeSpan = exports.openSpan = exports.endTrace = exports.startTrace = exports.ObservabilityRecorder = exports.defaultObservabilityConfig = exports.DEFAULT_PROXY_URL = exports.saveArmorIQConfig = exports.resolveEnvReferences = exports.resolveEnvReference = exports.parseArmorIQConfig = exports.loadArmorIQConfig = exports.ArmorIQConfigError = exports.hashToolCalls = exports.buildPlanFromToolCalls = exports.defaultToolNameParser = exports.IntentToken = exports.PolicyHoldException = exports.PolicyBlockedException = exports.ConfigurationException = exports.RevokedTokenError = exports.DelegationException = exports.TokenExpiredException = exports.MCPInvocationException = exports.IntentMismatchException = exports.InvalidTokenException = exports.ArmorIQException = exports.ArmorIQSession = exports.summarizeTranscriptUsage = exports.ArmorIQUserScope = exports.ArmorIQClient = void 0;
|
|
14
14
|
var client_1 = require("./client");
|
|
15
15
|
Object.defineProperty(exports, "ArmorIQClient", { enumerable: true, get: function () { return client_1.ArmorIQClient; } });
|
|
16
16
|
Object.defineProperty(exports, "ArmorIQUserScope", { enumerable: true, get: function () { return client_1.ArmorIQUserScope; } });
|
|
@@ -43,7 +43,23 @@ Object.defineProperty(exports, "resolveEnvReference", { enumerable: true, get: f
|
|
|
43
43
|
Object.defineProperty(exports, "resolveEnvReferences", { enumerable: true, get: function () { return config_1.resolveEnvReferences; } });
|
|
44
44
|
Object.defineProperty(exports, "saveArmorIQConfig", { enumerable: true, get: function () { return config_1.saveArmorIQConfig; } });
|
|
45
45
|
Object.defineProperty(exports, "DEFAULT_PROXY_URL", { enumerable: true, get: function () { return config_1.DEFAULT_PROXY_URL; } });
|
|
46
|
-
exports
|
|
46
|
+
Object.defineProperty(exports, "defaultObservabilityConfig", { enumerable: true, get: function () { return config_1.defaultObservabilityConfig; } });
|
|
47
|
+
var observability_1 = require("./observability");
|
|
48
|
+
Object.defineProperty(exports, "ObservabilityRecorder", { enumerable: true, get: function () { return observability_1.ObservabilityRecorder; } });
|
|
49
|
+
Object.defineProperty(exports, "startTrace", { enumerable: true, get: function () { return observability_1.startTrace; } });
|
|
50
|
+
Object.defineProperty(exports, "endTrace", { enumerable: true, get: function () { return observability_1.endTrace; } });
|
|
51
|
+
Object.defineProperty(exports, "openSpan", { enumerable: true, get: function () { return observability_1.openSpan; } });
|
|
52
|
+
Object.defineProperty(exports, "closeSpan", { enumerable: true, get: function () { return observability_1.closeSpan; } });
|
|
53
|
+
Object.defineProperty(exports, "recordSpan", { enumerable: true, get: function () { return observability_1.recordSpan; } });
|
|
54
|
+
Object.defineProperty(exports, "recordEvent", { enumerable: true, get: function () { return observability_1.recordEvent; } });
|
|
55
|
+
Object.defineProperty(exports, "recordPolicyCall", { enumerable: true, get: function () { return observability_1.recordPolicyCall; } });
|
|
56
|
+
Object.defineProperty(exports, "recordGeneration", { enumerable: true, get: function () { return observability_1.recordGeneration; } });
|
|
57
|
+
Object.defineProperty(exports, "flushObservability", { enumerable: true, get: function () { return observability_1.flushObservability; } });
|
|
58
|
+
Object.defineProperty(exports, "computeCostUsd", { enumerable: true, get: function () { return observability_1.computeCostUsd; } });
|
|
59
|
+
Object.defineProperty(exports, "isValidUuid", { enumerable: true, get: function () { return observability_1.isValidUuid; } });
|
|
60
|
+
Object.defineProperty(exports, "MODEL_PRICES", { enumerable: true, get: function () { return observability_1.MODEL_PRICES; } });
|
|
61
|
+
Object.defineProperty(exports, "__setObservabilitySinkForTests", { enumerable: true, get: function () { return observability_1.__setObservabilitySinkForTests; } });
|
|
62
|
+
exports.VERSION = '0.6.3';
|
|
47
63
|
exports.AUTHOR = 'ArmorIQ Team';
|
|
48
64
|
exports.EMAIL = 'license@armoriq.io';
|
|
49
65
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAA2D;AAAlD,uGAAA,aAAa,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AACxC,6CAIuB;AAHrB,uHAAA,wBAAwB,OAAA;AAI1B,qCAMmB;AALjB,yGAAA,cAAc,OAAA;AAMhB,2CAWsB;AAVpB,8GAAA,gBAAgB,OAAA;AAChB,mHAAA,qBAAqB,OAAA;AACrB,qHAAA,uBAAuB,OAAA;AACvB,oHAAA,sBAAsB,OAAA;AACtB,mHAAA,qBAAqB,OAAA;AACrB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,iHAAA,mBAAmB,OAAA;AAErB,mCAmBkB;AAlBhB,qGAAA,WAAW,OAAA;AAoBb,+CAOwB;AANtB,qHAAA,qBAAqB,OAAA;AACrB,sHAAA,sBAAsB,OAAA;AACtB,6GAAA,aAAa,OAAA;AAMf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAA2D;AAAlD,uGAAA,aAAa,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AACxC,6CAIuB;AAHrB,uHAAA,wBAAwB,OAAA;AAI1B,qCAMmB;AALjB,yGAAA,cAAc,OAAA;AAMhB,2CAWsB;AAVpB,8GAAA,gBAAgB,OAAA;AAChB,mHAAA,qBAAqB,OAAA;AACrB,qHAAA,uBAAuB,OAAA;AACvB,oHAAA,sBAAsB,OAAA;AACtB,mHAAA,qBAAqB,OAAA;AACrB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,iHAAA,mBAAmB,OAAA;AAErB,mCAmBkB;AAlBhB,qGAAA,WAAW,OAAA;AAoBb,+CAOwB;AANtB,qHAAA,qBAAqB,OAAA;AACrB,sHAAA,sBAAsB,OAAA;AACtB,6GAAA,aAAa,OAAA;AAMf,mCAmBkB;AAjBhB,4GAAA,kBAAkB,OAAA;AASlB,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAClB,6GAAA,mBAAmB,OAAA;AACnB,8GAAA,oBAAoB,OAAA;AACpB,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AAEjB,oHAAA,0BAA0B,OAAA;AAG5B,iDAwByB;AAvBvB,sHAAA,qBAAqB,OAAA;AACrB,2GAAA,UAAU,OAAA;AACV,yGAAA,QAAQ,OAAA;AACR,yGAAA,QAAQ,OAAA;AACR,0GAAA,SAAS,OAAA;AACT,2GAAA,UAAU,OAAA;AACV,4GAAA,WAAW,OAAA;AACX,iHAAA,gBAAgB,OAAA;AAChB,iHAAA,gBAAgB,OAAA;AAChB,mHAAA,kBAAkB,OAAA;AAClB,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AACX,6GAAA,YAAY,OAAA;AAUZ,+HAAA,8BAA8B,OAAA;AAGnB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,MAAM,GAAG,cAAc,CAAC;AACxB,QAAA,KAAK,GAAG,oBAAoB,CAAC"}
|
|
@@ -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":"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"}
|
package/dist/models.d.ts
CHANGED
|
@@ -312,6 +312,14 @@ export interface SDKConfig {
|
|
|
312
312
|
apiKey?: string;
|
|
313
313
|
/** Use production endpoints */
|
|
314
314
|
useProduction: boolean;
|
|
315
|
+
/**
|
|
316
|
+
* #519 — trusted Ed25519 public key used to verify EdDSA-signed intent
|
|
317
|
+
* tokens in local mode. PEM, JWK, base64/base64url (DER or raw 32-byte), or
|
|
318
|
+
* hex. When unset, defaults to ARMORIQ_IAP_PUBLIC_KEY env, else the key is
|
|
319
|
+
* fetched (once, cached) from GET {backendEndpoint}/iap/public-key. Only a
|
|
320
|
+
* PUBLIC key ever lives in the SDK — never a private key or shared secret.
|
|
321
|
+
*/
|
|
322
|
+
iapPublicKey?: string;
|
|
315
323
|
/**
|
|
316
324
|
* Per-MCP credentials. Merged with ARMORIQ_MCP_CREDENTIALS env JSON and
|
|
317
325
|
* ARMORIQ_MCP_<SAFE_NAME>_* per-MCP env vars; constructor option wins.
|
|
@@ -329,6 +337,15 @@ export interface SDKConfig {
|
|
|
329
337
|
* returns decision:'accepted' so dev iteration isn't blocked.
|
|
330
338
|
*/
|
|
331
339
|
papFailMode?: 'open' | 'closed';
|
|
340
|
+
/**
|
|
341
|
+
* Per-session observability overrides. When the consumer does not pass an
|
|
342
|
+
* `observability` block to `ArmorIQClient.startSession(...)`, the session
|
|
343
|
+
* inherits the client's `SDKConfig.observability`. Setting `enabled: false`
|
|
344
|
+
* disables all SDK-side observability emission for sessions derived from
|
|
345
|
+
* this client (zero HTTP calls, zero buffers, zero perf cost beyond a
|
|
346
|
+
* single null check per chokepoint).
|
|
347
|
+
*/
|
|
348
|
+
observability?: import('./config').ObservabilityConfig;
|
|
332
349
|
}
|
|
333
350
|
export interface PapToolCall {
|
|
334
351
|
name: string;
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone helper API for the chokepoints.
|
|
3
|
+
*
|
|
4
|
+
* The session chokepoints (in `src/session.ts`, owned by the peer subagent)
|
|
5
|
+
* call these helpers instead of going through `ObservabilityRecorder` methods
|
|
6
|
+
* directly. The wrapper signature is uniform:
|
|
7
|
+
*
|
|
8
|
+
* const ctx = startTrace(obs, 'iap.enforce', { toolName });
|
|
9
|
+
* recordPolicyCall(obs, ctx, { ... });
|
|
10
|
+
* endTrace(obs, ctx, { status: 'ok' });
|
|
11
|
+
*
|
|
12
|
+
* All helpers are thin pass-throughs to the recorder — they're the
|
|
13
|
+
* stable interface the chokepoints can import without needing to know
|
|
14
|
+
* about the recorder's internal class shape.
|
|
15
|
+
*/
|
|
16
|
+
import { type ObservabilityRecorder } from './recorder';
|
|
17
|
+
import type { TraceContext, SpanRecord } from './schema';
|
|
18
|
+
export declare function startTrace(recorder: ObservabilityRecorder, name: string, attributes?: Record<string, unknown>, sessionId?: string | null): TraceContext;
|
|
19
|
+
export declare function recordSpan(recorder: ObservabilityRecorder, ctx: TraceContext, span: SpanRecord): void;
|
|
20
|
+
export declare function recordPolicyCall(recorder: ObservabilityRecorder, ctx: TraceContext, attrs: Parameters<ObservabilityRecorder['recordPolicyCall']>[1], parentSpanId?: string | null): SpanRecord;
|
|
21
|
+
export declare function recordGeneration(recorder: ObservabilityRecorder, ctx: TraceContext, attrs: Parameters<ObservabilityRecorder['recordGeneration']>[1], parentSpanId?: string | null): SpanRecord;
|
|
22
|
+
export declare function recordEvent(recorder: ObservabilityRecorder, ctx: TraceContext, attrs: {
|
|
23
|
+
message: string;
|
|
24
|
+
level?: 'info' | 'warn' | 'error';
|
|
25
|
+
}, parentSpanId?: string | null): SpanRecord;
|
|
26
|
+
export declare function openSpan(recorder: ObservabilityRecorder, ctx: TraceContext, opts: {
|
|
27
|
+
name: string;
|
|
28
|
+
attributes?: Record<string, unknown>;
|
|
29
|
+
parentSpanId?: string | null;
|
|
30
|
+
}): string;
|
|
31
|
+
export declare function closeSpan(recorder: ObservabilityRecorder, ctx: TraceContext, spanId: string, opts?: {
|
|
32
|
+
status?: 'ok' | 'error' | 'denied';
|
|
33
|
+
durationMs?: number;
|
|
34
|
+
errorMessage?: string;
|
|
35
|
+
}): void;
|
|
36
|
+
export declare function endTrace(recorder: ObservabilityRecorder, ctx: TraceContext, opts?: {
|
|
37
|
+
status?: 'ok' | 'error' | 'denied';
|
|
38
|
+
errorMessage?: string;
|
|
39
|
+
}): void;
|
|
40
|
+
export declare function flushObservability(recorder: ObservabilityRecorder): Promise<void>;
|
|
41
|
+
//# sourceMappingURL=handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../src/observability/handle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,wBAAgB,UAAU,CACxB,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,YAAY,CAEd;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,UAAU,GACf,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,UAAU,CAEZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,UAAU,CAEZ;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,EAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,UAAU,CAEZ;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzF,MAAM,CAER;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACxF,IAAI,CAEN;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,YAAY,EACjB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,IAAI,CAEN;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|