@nexart/ai-execution 0.3.0 → 0.4.1

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.
Files changed (79) hide show
  1. package/README.md +44 -9
  2. package/dist/index.cjs +696 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +56 -0
  5. package/dist/index.d.ts +55 -11
  6. package/dist/index.mjs +638 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/providers/anthropic.cjs +258 -0
  9. package/dist/providers/anthropic.cjs.map +1 -0
  10. package/dist/providers/anthropic.d.cts +24 -0
  11. package/dist/providers/anthropic.d.ts +7 -5
  12. package/dist/providers/anthropic.mjs +221 -0
  13. package/dist/providers/anthropic.mjs.map +1 -0
  14. package/dist/providers/openai.cjs +259 -0
  15. package/dist/providers/openai.cjs.map +1 -0
  16. package/dist/providers/openai.d.cts +24 -0
  17. package/dist/providers/openai.d.ts +7 -5
  18. package/dist/providers/openai.mjs +222 -0
  19. package/dist/providers/openai.mjs.map +1 -0
  20. package/dist/providers/wrap.cjs +221 -0
  21. package/dist/providers/wrap.cjs.map +1 -0
  22. package/dist/providers/wrap.d.cts +9 -0
  23. package/dist/providers/wrap.d.ts +5 -3
  24. package/dist/providers/wrap.mjs +186 -0
  25. package/dist/providers/wrap.mjs.map +1 -0
  26. package/dist/{types.d.ts → types-342Snbrb.d.cts} +31 -16
  27. package/dist/types-342Snbrb.d.ts +169 -0
  28. package/package.json +18 -11
  29. package/dist/archive.d.ts +0 -4
  30. package/dist/archive.d.ts.map +0 -1
  31. package/dist/archive.js +0 -28
  32. package/dist/archive.js.map +0 -1
  33. package/dist/attest.d.ts +0 -3
  34. package/dist/attest.d.ts.map +0 -1
  35. package/dist/attest.js +0 -79
  36. package/dist/attest.js.map +0 -1
  37. package/dist/canonicalJson.d.ts +0 -2
  38. package/dist/canonicalJson.d.ts.map +0 -1
  39. package/dist/canonicalJson.js +0 -38
  40. package/dist/canonicalJson.js.map +0 -1
  41. package/dist/cer.d.ts +0 -7
  42. package/dist/cer.d.ts.map +0 -1
  43. package/dist/cer.js +0 -61
  44. package/dist/cer.js.map +0 -1
  45. package/dist/certify.d.ts +0 -3
  46. package/dist/certify.d.ts.map +0 -1
  47. package/dist/certify.js +0 -27
  48. package/dist/certify.js.map +0 -1
  49. package/dist/errors.d.ts +0 -11
  50. package/dist/errors.d.ts.map +0 -1
  51. package/dist/errors.js +0 -21
  52. package/dist/errors.js.map +0 -1
  53. package/dist/hash.d.ts +0 -6
  54. package/dist/hash.d.ts.map +0 -1
  55. package/dist/hash.js +0 -32
  56. package/dist/hash.js.map +0 -1
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js +0 -11
  59. package/dist/index.js.map +0 -1
  60. package/dist/providers/anthropic.d.ts.map +0 -1
  61. package/dist/providers/anthropic.js +0 -61
  62. package/dist/providers/anthropic.js.map +0 -1
  63. package/dist/providers/openai.d.ts.map +0 -1
  64. package/dist/providers/openai.js +0 -62
  65. package/dist/providers/openai.js.map +0 -1
  66. package/dist/providers/wrap.d.ts.map +0 -1
  67. package/dist/providers/wrap.js +0 -28
  68. package/dist/providers/wrap.js.map +0 -1
  69. package/dist/run.d.ts +0 -14
  70. package/dist/run.d.ts.map +0 -1
  71. package/dist/run.js +0 -62
  72. package/dist/run.js.map +0 -1
  73. package/dist/snapshot.d.ts +0 -4
  74. package/dist/snapshot.d.ts.map +0 -1
  75. package/dist/snapshot.js +0 -113
  76. package/dist/snapshot.js.map +0 -1
  77. package/dist/types.d.ts.map +0 -1
  78. package/dist/types.js +0 -2
  79. package/dist/types.js.map +0 -1
package/dist/attest.js DELETED
@@ -1,79 +0,0 @@
1
- import { CerAttestationError } from './errors.js';
2
- const SHA256_PATTERN = /^sha256:[0-9a-f]{64}$/;
3
- const DEFAULT_TIMEOUT_MS = 10_000;
4
- function validateHashFormat(value, fieldName) {
5
- if (typeof value !== 'string')
6
- return null;
7
- if (!SHA256_PATTERN.test(value)) {
8
- return `${fieldName} is not in sha256:<64hex> format: "${value}"`;
9
- }
10
- return null;
11
- }
12
- export async function attest(bundle, options) {
13
- const url = `${options.nodeUrl.replace(/\/+$/, '')}/api/attest`;
14
- const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
15
- const controller = new AbortController();
16
- const timer = setTimeout(() => controller.abort(), timeoutMs);
17
- let response;
18
- try {
19
- response = await fetch(url, {
20
- method: 'POST',
21
- headers: {
22
- 'Content-Type': 'application/json',
23
- 'Authorization': `Bearer ${options.apiKey}`,
24
- },
25
- body: JSON.stringify(bundle),
26
- signal: controller.signal,
27
- });
28
- }
29
- catch (err) {
30
- clearTimeout(timer);
31
- const error = err;
32
- if (error.name === 'AbortError') {
33
- throw new CerAttestationError(`Attestation request timed out after ${timeoutMs}ms`);
34
- }
35
- throw new CerAttestationError(`Network error contacting attestation node: ${error.message}`);
36
- }
37
- finally {
38
- clearTimeout(timer);
39
- }
40
- let body;
41
- try {
42
- body = await response.json();
43
- }
44
- catch {
45
- const text = await response.text().catch(() => '');
46
- throw new CerAttestationError(`Attestation node returned non-JSON response (${response.status}): ${text}`, response.status);
47
- }
48
- if (!response.ok) {
49
- const result = body;
50
- const msg = typeof result.error === 'string'
51
- ? result.error
52
- : `HTTP ${response.status}`;
53
- const details = Array.isArray(result.details) ? result.details : undefined;
54
- throw new CerAttestationError(`Attestation failed: ${msg}`, response.status, body, details);
55
- }
56
- const result = body;
57
- const errors = [];
58
- if (typeof result.certificateHash === 'string' && result.certificateHash !== bundle.certificateHash) {
59
- errors.push(`Node returned certificateHash "${result.certificateHash}" but bundle has "${bundle.certificateHash}"`);
60
- }
61
- const certHashErr = validateHashFormat(result.certificateHash, 'response.certificateHash');
62
- if (certHashErr)
63
- errors.push(certHashErr);
64
- const runtimeHashErr = validateHashFormat(result.nodeRuntimeHash, 'response.nodeRuntimeHash');
65
- if (runtimeHashErr)
66
- errors.push(runtimeHashErr);
67
- if (errors.length > 0) {
68
- throw new CerAttestationError(`Attestation response validation failed: ${errors.join('; ')}`, response.status, body, errors);
69
- }
70
- return {
71
- ok: true,
72
- attestationId: typeof result.attestationId === 'string' ? result.attestationId : undefined,
73
- nodeRuntimeHash: typeof result.nodeRuntimeHash === 'string' ? result.nodeRuntimeHash : undefined,
74
- certificateHash: typeof result.certificateHash === 'string' ? result.certificateHash : undefined,
75
- protocolVersion: typeof result.protocolVersion === 'string' ? result.protocolVersion : undefined,
76
- raw: body,
77
- };
78
- }
79
- //# sourceMappingURL=attest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attest.js","sourceRoot":"","sources":["../src/attest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,SAAS,kBAAkB,CAAC,KAAc,EAAE,SAAiB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,SAAS,sCAAsC,KAAK,GAAG,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAA4B,EAC5B,OAAsB;IAEtB,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAE9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE;aAC5C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,GAAY,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,mBAAmB,CAC3B,uCAAuC,SAAS,IAAI,CACrD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,mBAAmB,CAC3B,8CAA8C,KAAK,CAAC,OAAO,EAAE,CAC9D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,mBAAmB,CAC3B,gDAAgD,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,EAC3E,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAC1C,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,GAAG,EAAE,EAC5B,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;QACpG,MAAM,CAAC,IAAI,CACT,kCAAkC,MAAM,CAAC,eAAe,qBAAqB,MAAM,CAAC,eAAe,GAAG,CACvG,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IAC3F,IAAI,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;IAC9F,IAAI,cAAc;QAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,mBAAmB,CAC3B,2CAA2C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC9D,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,MAAM,CACP,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,aAAa,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC1F,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function toCanonicalJson(value: unknown): string;
2
- //# sourceMappingURL=canonicalJson.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalJson.d.ts","sourceRoot":"","sources":["../src/canonicalJson.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD"}
@@ -1,38 +0,0 @@
1
- export function toCanonicalJson(value) {
2
- return canonicalize(value);
3
- }
4
- function canonicalize(value) {
5
- if (value === null) {
6
- return 'null';
7
- }
8
- if (typeof value === 'boolean') {
9
- return value ? 'true' : 'false';
10
- }
11
- if (typeof value === 'number') {
12
- if (!Number.isFinite(value)) {
13
- throw new Error(`Non-finite number not allowed in canonical JSON: ${value}`);
14
- }
15
- return JSON.stringify(value);
16
- }
17
- if (typeof value === 'string') {
18
- return JSON.stringify(value);
19
- }
20
- if (Array.isArray(value)) {
21
- const items = value.map(item => canonicalize(item));
22
- return '[' + items.join(',') + ']';
23
- }
24
- if (typeof value === 'object') {
25
- const obj = value;
26
- const keys = Object.keys(obj).sort();
27
- const entries = keys.map(key => {
28
- const val = obj[key];
29
- if (val === undefined) {
30
- return null;
31
- }
32
- return JSON.stringify(key) + ':' + canonicalize(val);
33
- }).filter(e => e !== null);
34
- return '{' + entries.join(',') + '}';
35
- }
36
- throw new Error(`Unsupported type for canonical JSON: ${typeof value}`);
37
- }
38
- //# sourceMappingURL=canonicalJson.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalJson.js","sourceRoot":"","sources":["../src/canonicalJson.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC3B,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC"}
package/dist/cer.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { AiExecutionSnapshotV1, CerAiExecutionBundle, CerMeta, VerificationResult } from './types.js';
2
- export declare function sealCer(snapshot: AiExecutionSnapshotV1, options?: {
3
- createdAt?: string;
4
- meta?: CerMeta;
5
- }): CerAiExecutionBundle;
6
- export declare function verifyCer(bundle: CerAiExecutionBundle): VerificationResult;
7
- //# sourceMappingURL=cer.d.ts.map
package/dist/cer.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cer.d.ts","sourceRoot":"","sources":["../src/cer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiB3G,wBAAgB,OAAO,CACrB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,oBAAoB,CAyBtB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,CAwC1E"}
package/dist/cer.js DELETED
@@ -1,61 +0,0 @@
1
- import { toCanonicalJson } from './canonicalJson.js';
2
- import { sha256Hex } from './hash.js';
3
- import { verifySnapshot } from './snapshot.js';
4
- function computeCertificateHash(payload) {
5
- const canonical = toCanonicalJson(payload);
6
- return `sha256:${sha256Hex(canonical)}`;
7
- }
8
- export function sealCer(snapshot, options) {
9
- const createdAt = options?.createdAt ?? new Date().toISOString();
10
- const payload = {
11
- bundleType: 'cer.ai.execution.v1',
12
- createdAt,
13
- snapshot,
14
- version: '0.1',
15
- };
16
- const certificateHash = computeCertificateHash(payload);
17
- const bundle = {
18
- bundleType: 'cer.ai.execution.v1',
19
- certificateHash,
20
- createdAt,
21
- version: '0.1',
22
- snapshot,
23
- };
24
- if (options?.meta) {
25
- bundle.meta = options.meta;
26
- }
27
- return bundle;
28
- }
29
- export function verifyCer(bundle) {
30
- const errors = [];
31
- if (bundle.bundleType !== 'cer.ai.execution.v1') {
32
- errors.push(`Expected bundleType "cer.ai.execution.v1", got "${bundle.bundleType}"`);
33
- }
34
- if (bundle.version !== '0.1') {
35
- errors.push(`Expected version "0.1", got "${bundle.version}"`);
36
- }
37
- if (!bundle.createdAt || typeof bundle.createdAt !== 'string') {
38
- errors.push('createdAt must be a non-empty string');
39
- }
40
- if (!bundle.certificateHash || !bundle.certificateHash.startsWith('sha256:')) {
41
- errors.push(`certificateHash must start with "sha256:", got "${bundle.certificateHash}"`);
42
- }
43
- if (!bundle.snapshot) {
44
- errors.push('snapshot is required');
45
- return { ok: false, errors };
46
- }
47
- const snapshotResult = verifySnapshot(bundle.snapshot);
48
- errors.push(...snapshotResult.errors);
49
- const payload = {
50
- bundleType: 'cer.ai.execution.v1',
51
- createdAt: bundle.createdAt,
52
- snapshot: bundle.snapshot,
53
- version: '0.1',
54
- };
55
- const expectedHash = computeCertificateHash(payload);
56
- if (bundle.certificateHash !== expectedHash) {
57
- errors.push(`certificateHash mismatch: expected ${expectedHash}, got ${bundle.certificateHash}`);
58
- }
59
- return { ok: errors.length === 0, errors };
60
- }
61
- //# sourceMappingURL=cer.js.map
package/dist/cer.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cer.js","sourceRoot":"","sources":["../src/cer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,SAAS,sBAAsB,CAAC,OAA2B;IACzD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,UAAU,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,QAA+B,EAC/B,OAAgD;IAEhD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEjE,MAAM,OAAO,GAAuB;QAClC,UAAU,EAAE,qBAAqB;QACjC,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,MAAM,GAAyB;QACnC,UAAU,EAAE,qBAAqB;QACjC,eAAe;QACf,SAAS;QACT,OAAO,EAAE,KAAK;QACd,QAAQ;KACT,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAA4B;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,UAAU,KAAK,qBAAqB,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAuB;QAClC,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,sCAAsC,YAAY,SAAS,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC"}
package/dist/certify.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { CerAiExecutionBundle, CertifyDecisionParams } from './types.js';
2
- export declare function certifyDecision(params: CertifyDecisionParams): CerAiExecutionBundle;
3
- //# sourceMappingURL=certify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../src/certify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAI9E,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,oBAAoB,CAwBnF"}
package/dist/certify.js DELETED
@@ -1,27 +0,0 @@
1
- import * as crypto from 'crypto';
2
- import { createSnapshot } from './snapshot.js';
3
- import { sealCer } from './cer.js';
4
- export function certifyDecision(params) {
5
- const executionId = params.executionId ?? crypto.randomUUID();
6
- const snapshot = createSnapshot({
7
- executionId,
8
- timestamp: params.timestamp,
9
- provider: params.provider,
10
- model: params.model,
11
- modelVersion: params.modelVersion,
12
- prompt: params.prompt,
13
- input: params.input,
14
- parameters: params.parameters,
15
- output: params.output,
16
- sdkVersion: params.sdkVersion,
17
- appId: params.appId,
18
- runId: params.runId,
19
- stepId: params.stepId,
20
- stepIndex: params.stepIndex,
21
- workflowId: params.workflowId,
22
- conversationId: params.conversationId,
23
- prevStepHash: params.prevStepHash,
24
- });
25
- return sealCer(snapshot, { meta: params.meta });
26
- }
27
- //# sourceMappingURL=certify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"certify.js","sourceRoot":"","sources":["../src/certify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAE9D,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC"}
package/dist/errors.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export declare class CerVerificationError extends Error {
2
- readonly errors: string[];
3
- constructor(errors: string[]);
4
- }
5
- export declare class CerAttestationError extends Error {
6
- readonly statusCode?: number;
7
- readonly responseBody?: unknown;
8
- readonly details?: string[];
9
- constructor(message: string, statusCode?: number, responseBody?: unknown, details?: string[]);
10
- }
11
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE;CAK7B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvC,SAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;CAO7F"}
package/dist/errors.js DELETED
@@ -1,21 +0,0 @@
1
- export class CerVerificationError extends Error {
2
- errors;
3
- constructor(errors) {
4
- super(`CER verification failed: ${errors.join('; ')}`);
5
- this.name = 'CerVerificationError';
6
- this.errors = errors;
7
- }
8
- }
9
- export class CerAttestationError extends Error {
10
- statusCode;
11
- responseBody;
12
- details;
13
- constructor(message, statusCode, responseBody, details) {
14
- super(message);
15
- this.name = 'CerAttestationError';
16
- this.statusCode = statusCode;
17
- this.responseBody = responseBody;
18
- this.details = details;
19
- }
20
- }
21
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7B,MAAM,CAAW;IAEjC,YAAY,MAAgB;QAC1B,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5B,UAAU,CAAU;IACpB,YAAY,CAAW;IACvB,OAAO,CAAY;IAEnC,YAAY,OAAe,EAAE,UAAmB,EAAE,YAAsB,EAAE,OAAkB;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
package/dist/hash.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export declare function sha256Hex(data: string | Uint8Array): string;
2
- export declare function hashUtf8(value: string): string;
3
- export declare function hashCanonicalJson(value: unknown): string;
4
- export declare function computeInputHash(input: string | Record<string, unknown>): string;
5
- export declare function computeOutputHash(output: string | Record<string, unknown>): string;
6
- //# sourceMappingURL=hash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAQ3D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKhF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKlF"}
package/dist/hash.js DELETED
@@ -1,32 +0,0 @@
1
- import * as crypto from 'crypto';
2
- import { toCanonicalJson } from './canonicalJson.js';
3
- export function sha256Hex(data) {
4
- const hash = crypto.createHash('sha256');
5
- if (typeof data === 'string') {
6
- hash.update(data, 'utf-8');
7
- }
8
- else {
9
- hash.update(data);
10
- }
11
- return hash.digest('hex');
12
- }
13
- export function hashUtf8(value) {
14
- return `sha256:${sha256Hex(value)}`;
15
- }
16
- export function hashCanonicalJson(value) {
17
- const canonical = toCanonicalJson(value);
18
- return `sha256:${sha256Hex(canonical)}`;
19
- }
20
- export function computeInputHash(input) {
21
- if (typeof input === 'string') {
22
- return hashUtf8(input);
23
- }
24
- return hashCanonicalJson(input);
25
- }
26
- export function computeOutputHash(output) {
27
- if (typeof output === 'string') {
28
- return hashUtf8(output);
29
- }
30
- return hashCanonicalJson(output);
31
- }
32
- //# sourceMappingURL=hash.js.map
package/dist/hash.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,SAAS,CAAC,IAAyB;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,UAAU,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,UAAU,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuC;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAwC;IACxE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js DELETED
@@ -1,11 +0,0 @@
1
- export { CerVerificationError, CerAttestationError } from './errors.js';
2
- export { toCanonicalJson } from './canonicalJson.js';
3
- export { sha256Hex, hashUtf8, hashCanonicalJson, computeInputHash, computeOutputHash } from './hash.js';
4
- export { createSnapshot, verifySnapshot } from './snapshot.js';
5
- export { sealCer, verifyCer, verifyCer as verify } from './cer.js';
6
- export { certifyDecision } from './certify.js';
7
- export { RunBuilder } from './run.js';
8
- export { attest } from './attest.js';
9
- export { exportCer, importCer } from './archive.js';
10
- export { wrapProvider } from './providers/wrap.js';
11
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAK/E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuErG"}
@@ -1,61 +0,0 @@
1
- import { createSnapshot } from '../snapshot.js';
2
- import { sealCer } from '../cer.js';
3
- import * as crypto from 'crypto';
4
- export async function runAnthropicExecution(params) {
5
- const apiKey = params.apiKey || process.env.ANTHROPIC_API_KEY;
6
- if (!apiKey) {
7
- throw new Error('Missing Anthropic API key. Set ANTHROPIC_API_KEY environment variable or pass apiKey in params.');
8
- }
9
- const model = params.model ?? 'claude-sonnet-4-20250514';
10
- const temperature = params.parameters?.temperature ?? 0.7;
11
- const maxTokens = params.parameters?.maxTokens ?? 1024;
12
- const topP = params.parameters?.topP ?? null;
13
- const seed = params.parameters?.seed ?? null;
14
- const requestBody = {
15
- model,
16
- max_tokens: maxTokens,
17
- messages: [
18
- { role: 'user', content: params.input },
19
- ],
20
- system: params.prompt,
21
- temperature,
22
- };
23
- if (topP !== null) {
24
- requestBody.top_p = topP;
25
- }
26
- const response = await fetch('https://api.anthropic.com/v1/messages', {
27
- method: 'POST',
28
- headers: {
29
- 'Content-Type': 'application/json',
30
- 'x-api-key': apiKey,
31
- 'anthropic-version': '2023-06-01',
32
- },
33
- body: JSON.stringify(requestBody),
34
- });
35
- if (!response.ok) {
36
- const errorText = await response.text();
37
- throw new Error(`Anthropic API error (${response.status}): ${errorText}`);
38
- }
39
- const json = await response.json();
40
- const textBlock = json.content.find(b => b.type === 'text');
41
- const output = textBlock?.text ?? '';
42
- const snapshot = createSnapshot({
43
- executionId: crypto.randomUUID(),
44
- provider: 'anthropic',
45
- model,
46
- modelVersion: params.modelVersion ?? json.model ?? null,
47
- prompt: params.prompt,
48
- input: params.input,
49
- parameters: {
50
- temperature,
51
- maxTokens,
52
- topP,
53
- seed,
54
- },
55
- output,
56
- appId: params.appId ?? null,
57
- });
58
- const bundle = sealCer(snapshot);
59
- return { output, snapshot, bundle };
60
- }
61
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAuBjC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAA2B;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,WAAW,IAAI,GAAG,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC;IAE7C,MAAM,WAAW,GAA4B;QAC3C,KAAK;QACL,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE;SACxC;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW;KACZ,CAAC;IAEF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,YAAY;SAClC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAG/B,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE;QAChC,QAAQ,EAAE,WAAW;QACrB,KAAK;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QACvD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE;YACV,WAAW;YACX,SAAS;YACT,IAAI;YACJ,IAAI;SACL;QACD,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;KAC5B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAK/E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwEhG"}
@@ -1,62 +0,0 @@
1
- import { createSnapshot } from '../snapshot.js';
2
- import { sealCer } from '../cer.js';
3
- import * as crypto from 'crypto';
4
- export async function runOpenAIChatExecution(params) {
5
- const apiKey = params.apiKey || process.env.OPENAI_API_KEY;
6
- if (!apiKey) {
7
- throw new Error('Missing OpenAI API key. Set OPENAI_API_KEY environment variable or pass apiKey in params.');
8
- }
9
- const model = params.model ?? 'gpt-4o';
10
- const temperature = params.parameters?.temperature ?? 0.7;
11
- const maxTokens = params.parameters?.maxTokens ?? 1024;
12
- const topP = params.parameters?.topP ?? null;
13
- const seed = params.parameters?.seed ?? null;
14
- const requestBody = {
15
- model,
16
- messages: [
17
- { role: 'system', content: params.prompt },
18
- { role: 'user', content: params.input },
19
- ],
20
- temperature,
21
- max_tokens: maxTokens,
22
- };
23
- if (topP !== null) {
24
- requestBody.top_p = topP;
25
- }
26
- if (seed !== null) {
27
- requestBody.seed = seed;
28
- }
29
- const response = await fetch('https://api.openai.com/v1/chat/completions', {
30
- method: 'POST',
31
- headers: {
32
- 'Content-Type': 'application/json',
33
- 'Authorization': `Bearer ${apiKey}`,
34
- },
35
- body: JSON.stringify(requestBody),
36
- });
37
- if (!response.ok) {
38
- const errorText = await response.text();
39
- throw new Error(`OpenAI API error (${response.status}): ${errorText}`);
40
- }
41
- const json = await response.json();
42
- const output = json.choices[0]?.message?.content ?? '';
43
- const snapshot = createSnapshot({
44
- executionId: crypto.randomUUID(),
45
- provider: 'openai',
46
- model,
47
- modelVersion: params.modelVersion ?? json.model ?? null,
48
- prompt: params.prompt,
49
- input: params.input,
50
- parameters: {
51
- temperature,
52
- maxTokens,
53
- topP,
54
- seed,
55
- },
56
- output,
57
- appId: params.appId ?? null,
58
- });
59
- const bundle = sealCer(snapshot);
60
- return { output, snapshot, bundle };
61
- }
62
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAuBjC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAwB;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,WAAW,IAAI,GAAG,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC;IAE7C,MAAM,WAAW,GAA4B;QAC3C,KAAK;QACL,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE;SACxC;QACD,WAAW;QACX,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,4CAA4C,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,MAAM,EAAE;SACpC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAG/B,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IAEvD,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE;QAChC,QAAQ,EAAE,QAAQ;QAClB,KAAK;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QACvD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE;YACV,WAAW;YACX,SAAS;YACT,IAAI;YACJ,IAAI;SACL;QACD,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;KAC5B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/providers/wrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAIrB,wBAAgB,YAAY,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC9D,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;oBAGf,sBAAsB,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;EAwB7G"}
@@ -1,28 +0,0 @@
1
- import * as crypto from 'crypto';
2
- import { createSnapshot } from '../snapshot.js';
3
- import { sealCer } from '../cer.js';
4
- export function wrapProvider(config) {
5
- return {
6
- async execute(params) {
7
- const raw = await config.callFn(params.providerInput);
8
- const output = config.extractOutput(raw);
9
- const modelVersion = config.extractModelVersion
10
- ? config.extractModelVersion(raw)
11
- : (params.modelVersion ?? null);
12
- const snapshot = createSnapshot({
13
- executionId: params.executionId ?? crypto.randomUUID(),
14
- provider: config.provider,
15
- model: params.model,
16
- modelVersion,
17
- prompt: params.prompt,
18
- input: params.input,
19
- parameters: params.parameters,
20
- output,
21
- appId: params.appId,
22
- });
23
- const bundle = sealCer(snapshot, { meta: params.meta });
24
- return { output, snapshot, bundle };
25
- },
26
- };
27
- }
28
- //# sourceMappingURL=wrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/providers/wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAMjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,YAAY,CAC1B,MAAuC;IAEvC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,MAA0D;YACtE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB;gBAC7C,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;YAElC,MAAM,QAAQ,GAAG,cAAc,CAAC;gBAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE;gBACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY;gBACZ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAExD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/run.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import type { CerAiExecutionBundle, RunBuilderOptions, StepParams, RunSummary } from './types.js';
2
- export declare class RunBuilder {
3
- private readonly runId;
4
- private readonly workflowId;
5
- private readonly conversationId;
6
- private readonly appId;
7
- private stepIndex;
8
- private prevStepHash;
9
- private steps;
10
- constructor(options?: RunBuilderOptions);
11
- step(params: StepParams): CerAiExecutionBundle;
12
- finalize(): RunSummary;
13
- }
14
- //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,KAAK,CAA2B;gBAE5B,OAAO,CAAC,EAAE,iBAAiB;IAOvC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,oBAAoB;IAuC9C,QAAQ,IAAI,UAAU;CAUvB"}