@mondaydotcomorg/atp-provenance 0.17.14
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/README.md +417 -0
- package/dist/ast/instrumentor.d.ts +37 -0
- package/dist/ast/instrumentor.d.ts.map +1 -0
- package/dist/ast/instrumentor.js +299 -0
- package/dist/ast/instrumentor.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/policies/engine.d.ts +71 -0
- package/dist/policies/engine.d.ts.map +1 -0
- package/dist/policies/engine.js +433 -0
- package/dist/policies/engine.js.map +1 -0
- package/dist/registry.d.ts +94 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +445 -0
- package/dist/registry.js.map +1 -0
- package/dist/tokens.d.ts +49 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +239 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +150 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +47 -0
- package/dist/types.js.map +1 -0
- package/package.json +51 -0
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance Token System
|
|
3
|
+
*
|
|
4
|
+
* Cryptographically-signed tokens for multi-step provenance tracking
|
|
5
|
+
*/
|
|
6
|
+
import crypto from 'crypto';
|
|
7
|
+
import { nanoid } from 'nanoid';
|
|
8
|
+
const MAX_VALUE_SIZE = 1024 * 1024; // 1MB
|
|
9
|
+
/**
|
|
10
|
+
* Deterministic JSON stringification with sorted keys
|
|
11
|
+
*/
|
|
12
|
+
export function stableStringify(value) {
|
|
13
|
+
try {
|
|
14
|
+
if (value === null || value === undefined) {
|
|
15
|
+
return String(value);
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
18
|
+
return JSON.stringify(value);
|
|
19
|
+
}
|
|
20
|
+
if (typeof value === 'function' || typeof value === 'symbol') {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const seen = new WeakSet();
|
|
24
|
+
const replacer = (_key, val) => {
|
|
25
|
+
if (val !== null && typeof val === 'object') {
|
|
26
|
+
if (seen.has(val)) {
|
|
27
|
+
return '[Circular]';
|
|
28
|
+
}
|
|
29
|
+
seen.add(val);
|
|
30
|
+
if (!Array.isArray(val)) {
|
|
31
|
+
const sorted = {};
|
|
32
|
+
const keys = Object.keys(val).sort();
|
|
33
|
+
for (const k of keys) {
|
|
34
|
+
sorted[k] = val[k];
|
|
35
|
+
}
|
|
36
|
+
return sorted;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return val;
|
|
40
|
+
};
|
|
41
|
+
const result = JSON.stringify(value, replacer);
|
|
42
|
+
if (result.length > MAX_VALUE_SIZE) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Compute SHA-256 digest of value
|
|
53
|
+
*/
|
|
54
|
+
export function computeDigest(value) {
|
|
55
|
+
const serialized = stableStringify(value);
|
|
56
|
+
if (!serialized) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return crypto.createHash('sha256').update(serialized).digest('base64url');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get client secret (Phase 1: single secret from env)
|
|
63
|
+
*/
|
|
64
|
+
export function getClientSecret(clientId) {
|
|
65
|
+
const secret = process.env.PROVENANCE_SECRET;
|
|
66
|
+
if (!secret) {
|
|
67
|
+
throw new Error('PROVENANCE_SECRET environment variable is required for provenance tracking. ' +
|
|
68
|
+
'Generate a strong secret with: openssl rand -base64 32');
|
|
69
|
+
}
|
|
70
|
+
// Validate secret length - must be at least 32 bytes
|
|
71
|
+
// Base64 encoding: 32 bytes = 44 chars, but we'll check raw byte length
|
|
72
|
+
const secretBytes = Buffer.from(secret, 'utf-8').length;
|
|
73
|
+
if (secretBytes < 32) {
|
|
74
|
+
throw new Error(`PROVENANCE_SECRET must be at least 32 bytes (currently ${secretBytes} bytes). ` +
|
|
75
|
+
'Generate a strong secret with: openssl rand -base64 32');
|
|
76
|
+
}
|
|
77
|
+
return secret;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Generate HMAC signature
|
|
81
|
+
*/
|
|
82
|
+
function hmacSign(data, secret) {
|
|
83
|
+
return crypto.createHmac('sha256', secret).update(data).digest('base64url');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Issue a provenance token for a value
|
|
87
|
+
*/
|
|
88
|
+
export async function issueProvenanceToken(metadata, value, clientId, executionId, cacheProvider, ttl = 3600) {
|
|
89
|
+
const valueDigest = computeDigest(value);
|
|
90
|
+
if (!valueDigest) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const metaId = nanoid();
|
|
94
|
+
const cacheKey = `prov:meta:${clientId}:${metaId}`;
|
|
95
|
+
try {
|
|
96
|
+
await cacheProvider.set(cacheKey, JSON.stringify(metadata), ttl);
|
|
97
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
98
|
+
const valueKey = `prov:value:${clientId}:${valueDigest}`;
|
|
99
|
+
await cacheProvider.set(valueKey, JSON.stringify({ value: String(value), metaId }), ttl);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('Failed to store provenance metadata in cache:', error);
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
const payload = {
|
|
107
|
+
v: 1,
|
|
108
|
+
clientId,
|
|
109
|
+
executionId,
|
|
110
|
+
createdAt: Date.now(),
|
|
111
|
+
expiresAt: Date.now() + ttl * 1000,
|
|
112
|
+
valueDigest,
|
|
113
|
+
metaId,
|
|
114
|
+
};
|
|
115
|
+
const payloadStr = JSON.stringify(payload);
|
|
116
|
+
const payloadB64 = Buffer.from(payloadStr).toString('base64url');
|
|
117
|
+
const secret = getClientSecret(clientId);
|
|
118
|
+
const signature = hmacSign(payloadB64, secret);
|
|
119
|
+
return `${payloadB64}.${signature}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Verify and extract provenance from a token
|
|
123
|
+
*/
|
|
124
|
+
export async function verifyProvenanceToken(token, value, clientId, executionId, cacheProvider) {
|
|
125
|
+
try {
|
|
126
|
+
const parts = token.split('.');
|
|
127
|
+
if (parts.length !== 2) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const [payloadB64, signature] = parts;
|
|
131
|
+
if (!payloadB64 || !signature) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const secret = getClientSecret(clientId);
|
|
135
|
+
const expectedSig = hmacSign(payloadB64, secret);
|
|
136
|
+
// Use constant-time comparison to prevent timing attacks
|
|
137
|
+
try {
|
|
138
|
+
const sigBuf = Buffer.from(signature, 'base64url');
|
|
139
|
+
const expectedBuf = Buffer.from(expectedSig, 'base64url');
|
|
140
|
+
if (sigBuf.length !== expectedBuf.length || !crypto.timingSafeEqual(sigBuf, expectedBuf)) {
|
|
141
|
+
console.error('Token signature verification failed');
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error('Token signature comparison error:', error);
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const payloadStr = Buffer.from(payloadB64, 'base64url').toString();
|
|
150
|
+
const payload = JSON.parse(payloadStr);
|
|
151
|
+
if (payload.v !== 1) {
|
|
152
|
+
console.error('Unsupported token version:', payload.v);
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
if (payload.clientId !== clientId) {
|
|
156
|
+
console.error('Token clientId mismatch:', payload.clientId, 'vs', clientId);
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
if (payload.executionId !== executionId) {
|
|
160
|
+
console.error('Token executionId mismatch:', payload.executionId, 'vs', executionId);
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
if (Date.now() > payload.expiresAt) {
|
|
164
|
+
console.warn('Token expired');
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const valueDigest = computeDigest(value);
|
|
168
|
+
if (!valueDigest || valueDigest !== payload.valueDigest) {
|
|
169
|
+
console.warn('Token value digest mismatch (value may have been modified)');
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
const cacheKey = `prov:meta:${payload.clientId}:${payload.metaId}`;
|
|
173
|
+
const metaStr = await cacheProvider.get(cacheKey);
|
|
174
|
+
if (!metaStr || typeof metaStr !== 'string') {
|
|
175
|
+
console.warn('Token metadata not found in cache (expired or evicted)');
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const metadata = JSON.parse(metaStr);
|
|
179
|
+
return metadata;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
console.error('Token verification error:', error);
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Verify multiple hints and build a digest → metadata map
|
|
188
|
+
* Returns map for O(1) lookup during re-attachment
|
|
189
|
+
* ALSO returns a value → metadata map for substring matching
|
|
190
|
+
*/
|
|
191
|
+
export async function verifyProvenanceHints(hints, clientId, executionId, cacheProvider, maxHints = 1000) {
|
|
192
|
+
const map = new Map();
|
|
193
|
+
const hintsToProcess = hints.slice(0, maxHints);
|
|
194
|
+
if (hints.length > maxHints) {
|
|
195
|
+
console.warn(`Capped provenance hints from ${hints.length} to ${maxHints}`);
|
|
196
|
+
}
|
|
197
|
+
const timeout = 100;
|
|
198
|
+
const promises = hintsToProcess.map(async (token) => {
|
|
199
|
+
try {
|
|
200
|
+
const parts = token.split('.');
|
|
201
|
+
if (parts.length !== 2)
|
|
202
|
+
return;
|
|
203
|
+
const [payloadB64] = parts;
|
|
204
|
+
if (!payloadB64)
|
|
205
|
+
return;
|
|
206
|
+
const payloadStr = Buffer.from(payloadB64, 'base64url').toString();
|
|
207
|
+
const payload = JSON.parse(payloadStr);
|
|
208
|
+
const cacheKey = `prov:meta:${payload.clientId}:${payload.metaId}`;
|
|
209
|
+
const fetchPromise = cacheProvider.get(cacheKey);
|
|
210
|
+
const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve(null), timeout));
|
|
211
|
+
const metaStr = await Promise.race([fetchPromise, timeoutPromise]);
|
|
212
|
+
if (metaStr && typeof metaStr === 'string') {
|
|
213
|
+
const metadata = JSON.parse(metaStr);
|
|
214
|
+
map.set(payload.valueDigest, metadata);
|
|
215
|
+
const valueKey = `prov:value:${payload.clientId}:${payload.valueDigest}`;
|
|
216
|
+
const valueStr = await Promise.race([
|
|
217
|
+
cacheProvider.get(valueKey),
|
|
218
|
+
new Promise((resolve) => setTimeout(() => resolve(null), timeout)),
|
|
219
|
+
]);
|
|
220
|
+
if (valueStr && typeof valueStr === 'string') {
|
|
221
|
+
try {
|
|
222
|
+
const { value } = JSON.parse(valueStr);
|
|
223
|
+
map.__valueMap = map.__valueMap || new Map();
|
|
224
|
+
map.__valueMap.set(value, metadata);
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
// Value parsing failed, skip
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
// Skip invalid tokens silently
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
await Promise.all(promises);
|
|
237
|
+
return map;
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance Tracking Types
|
|
3
|
+
*
|
|
4
|
+
* Implements CAMEL-inspired data provenance tracking for prompt injection defense.
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Provenance tracking mode enum
|
|
8
|
+
*/
|
|
9
|
+
export declare enum ProvenanceMode {
|
|
10
|
+
/** No provenance tracking - zero overhead */
|
|
11
|
+
NONE = "none",
|
|
12
|
+
/** Proxy-based tracking - runtime tracking */
|
|
13
|
+
PROXY = "proxy",
|
|
14
|
+
/** AST instrumentation - compile-time tracking */
|
|
15
|
+
AST = "ast"
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Data source types
|
|
19
|
+
*/
|
|
20
|
+
export declare enum ProvenanceSource {
|
|
21
|
+
/** Direct from user input (trusted) */
|
|
22
|
+
USER = "user",
|
|
23
|
+
/** From LLM generation */
|
|
24
|
+
LLM = "llm",
|
|
25
|
+
/** From tool execution */
|
|
26
|
+
TOOL = "tool",
|
|
27
|
+
/** Generated by runtime/system */
|
|
28
|
+
SYSTEM = "system"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Tool source metadata
|
|
32
|
+
*/
|
|
33
|
+
export interface ToolSource {
|
|
34
|
+
type: ProvenanceSource.TOOL;
|
|
35
|
+
toolName: string;
|
|
36
|
+
apiGroup: string;
|
|
37
|
+
timestamp: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* LLM source metadata
|
|
41
|
+
*/
|
|
42
|
+
export interface LLMSource {
|
|
43
|
+
type: ProvenanceSource.LLM;
|
|
44
|
+
operation: 'call' | 'extract' | 'classify';
|
|
45
|
+
timestamp: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* User source metadata
|
|
49
|
+
*/
|
|
50
|
+
export interface UserSource {
|
|
51
|
+
type: ProvenanceSource.USER;
|
|
52
|
+
timestamp: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* System source metadata
|
|
56
|
+
*/
|
|
57
|
+
export interface SystemSource {
|
|
58
|
+
type: ProvenanceSource.SYSTEM;
|
|
59
|
+
operation: string;
|
|
60
|
+
timestamp: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Source metadata union
|
|
64
|
+
*/
|
|
65
|
+
export type SourceMetadata = ToolSource | LLMSource | UserSource | SystemSource;
|
|
66
|
+
/**
|
|
67
|
+
* Reader permissions - who can access this data
|
|
68
|
+
*/
|
|
69
|
+
export type ReaderPermissions = {
|
|
70
|
+
type: 'public';
|
|
71
|
+
} | {
|
|
72
|
+
type: 'restricted';
|
|
73
|
+
readers: string[];
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Complete provenance metadata
|
|
77
|
+
*/
|
|
78
|
+
export interface ProvenanceMetadata {
|
|
79
|
+
/** Where this data came from */
|
|
80
|
+
source: SourceMetadata;
|
|
81
|
+
/** Who can read this data */
|
|
82
|
+
readers: ReaderPermissions;
|
|
83
|
+
/** Chain of dependencies (for tracking data flow) */
|
|
84
|
+
dependencies?: string[];
|
|
85
|
+
/** Unique identifier for this provenance record */
|
|
86
|
+
id: string;
|
|
87
|
+
/** Additional context */
|
|
88
|
+
context?: Record<string, unknown>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Serialized provenance state for pause/resume
|
|
92
|
+
*/
|
|
93
|
+
export interface ProvenanceState {
|
|
94
|
+
registry: Array<[string, ProvenanceMetadata]>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Enhanced provenance snapshot including primitive taints
|
|
98
|
+
* Used for cross-execution token persistence
|
|
99
|
+
*/
|
|
100
|
+
export interface ProvenanceSnapshot {
|
|
101
|
+
/** Object provenance registry */
|
|
102
|
+
registry: Array<[string, ProvenanceMetadata]>;
|
|
103
|
+
/** Primitive taint mappings */
|
|
104
|
+
primitives: Array<[string, ProvenanceMetadata]>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Policy action types
|
|
108
|
+
* - log: Allow operation but log security event for audit
|
|
109
|
+
* - approve: Pause and request human approval
|
|
110
|
+
* - block: Deny operation immediately
|
|
111
|
+
*/
|
|
112
|
+
export type PolicyAction = 'log' | 'approve' | 'block';
|
|
113
|
+
/**
|
|
114
|
+
* Security policy result
|
|
115
|
+
*/
|
|
116
|
+
export interface PolicyResult {
|
|
117
|
+
/** @deprecated Use action instead */
|
|
118
|
+
allowed?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Action to take:
|
|
121
|
+
* - log: Allow but audit (permissive monitoring)
|
|
122
|
+
* - approve: Request human approval (interactive gating)
|
|
123
|
+
* - block: Deny immediately (maximum security)
|
|
124
|
+
*/
|
|
125
|
+
action: PolicyAction;
|
|
126
|
+
/** Human-readable reason for the action */
|
|
127
|
+
reason?: string;
|
|
128
|
+
/** Policy name that produced this result */
|
|
129
|
+
policy?: string;
|
|
130
|
+
/** Additional context for approval UI (when action='approve') or audit log */
|
|
131
|
+
context?: Record<string, unknown>;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Security policy interface
|
|
135
|
+
*/
|
|
136
|
+
export interface SecurityPolicy {
|
|
137
|
+
name: string;
|
|
138
|
+
description?: string;
|
|
139
|
+
check: (toolName: string, args: Record<string, unknown>, getProvenance: (value: unknown) => ProvenanceMetadata | null) => PolicyResult | Promise<PolicyResult>;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Provenance security policy violation error
|
|
143
|
+
*/
|
|
144
|
+
export declare class ProvenanceSecurityError extends Error {
|
|
145
|
+
policy: string;
|
|
146
|
+
toolName: string;
|
|
147
|
+
details?: Record<string, unknown> | undefined;
|
|
148
|
+
constructor(message: string, policy: string, toolName: string, details?: Record<string, unknown> | undefined);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance Tracking Types
|
|
3
|
+
*
|
|
4
|
+
* Implements CAMEL-inspired data provenance tracking for prompt injection defense.
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Provenance tracking mode enum
|
|
8
|
+
*/
|
|
9
|
+
export var ProvenanceMode;
|
|
10
|
+
(function (ProvenanceMode) {
|
|
11
|
+
/** No provenance tracking - zero overhead */
|
|
12
|
+
ProvenanceMode["NONE"] = "none";
|
|
13
|
+
/** Proxy-based tracking - runtime tracking */
|
|
14
|
+
ProvenanceMode["PROXY"] = "proxy";
|
|
15
|
+
/** AST instrumentation - compile-time tracking */
|
|
16
|
+
ProvenanceMode["AST"] = "ast";
|
|
17
|
+
})(ProvenanceMode || (ProvenanceMode = {}));
|
|
18
|
+
/**
|
|
19
|
+
* Data source types
|
|
20
|
+
*/
|
|
21
|
+
export var ProvenanceSource;
|
|
22
|
+
(function (ProvenanceSource) {
|
|
23
|
+
/** Direct from user input (trusted) */
|
|
24
|
+
ProvenanceSource["USER"] = "user";
|
|
25
|
+
/** From LLM generation */
|
|
26
|
+
ProvenanceSource["LLM"] = "llm";
|
|
27
|
+
/** From tool execution */
|
|
28
|
+
ProvenanceSource["TOOL"] = "tool";
|
|
29
|
+
/** Generated by runtime/system */
|
|
30
|
+
ProvenanceSource["SYSTEM"] = "system";
|
|
31
|
+
})(ProvenanceSource || (ProvenanceSource = {}));
|
|
32
|
+
/**
|
|
33
|
+
* Provenance security policy violation error
|
|
34
|
+
*/
|
|
35
|
+
export class ProvenanceSecurityError extends Error {
|
|
36
|
+
policy;
|
|
37
|
+
toolName;
|
|
38
|
+
details;
|
|
39
|
+
constructor(message, policy, toolName, details) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.policy = policy;
|
|
42
|
+
this.toolName = toolName;
|
|
43
|
+
this.details = details;
|
|
44
|
+
this.name = 'ProvenanceSecurityError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACzB,6CAA6C;IAC7C,+BAAa,CAAA;IACb,8CAA8C;IAC9C,iCAAe,CAAA;IACf,kDAAkD;IAClD,6BAAW,CAAA;AACZ,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC3B,uCAAuC;IACvC,iCAAa,CAAA;IACb,0BAA0B;IAC1B,+BAAW,CAAA;IACX,0BAA0B;IAC1B,iCAAa,CAAA;IACb,kCAAkC;IAClC,qCAAiB,CAAA;AAClB,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAoID;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAGzC;IACA;IACA;IAJR,YACC,OAAe,EACR,MAAc,EACd,QAAgB,EAChB,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACvC,CAAC;CACD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mondaydotcomorg/atp-provenance",
|
|
3
|
+
"version": "0.17.14",
|
|
4
|
+
"description": "CAMEL-inspired provenance security for LLM applications - track data origin and enforce security policies",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"lint": "tsc --noEmit",
|
|
22
|
+
"clean": "rm -rf dist"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"provenance",
|
|
26
|
+
"security",
|
|
27
|
+
"llm",
|
|
28
|
+
"prompt-injection",
|
|
29
|
+
"camel",
|
|
30
|
+
"agent",
|
|
31
|
+
"capability-based-security"
|
|
32
|
+
],
|
|
33
|
+
"author": "Agent Tool Protocol Team",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"acorn": "^8.11.0",
|
|
37
|
+
"acorn-walk": "^8.3.0",
|
|
38
|
+
"escodegen": "^2.1.0",
|
|
39
|
+
"nanoid": "^5.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/escodegen": "^0.0.10",
|
|
43
|
+
"@types/node": "^20.10.0",
|
|
44
|
+
"typescript": "^5.3.0"
|
|
45
|
+
},
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "https://github.com/your-org/agent-tool-protocol.git",
|
|
49
|
+
"directory": "packages/provenance"
|
|
50
|
+
}
|
|
51
|
+
}
|