arvo-core 1.0.25 → 1.0.27

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/CHANGELOG.md CHANGED
@@ -44,3 +44,7 @@
44
44
 
45
45
  - Updated OpenTelemetry propagation and fixed propagation in the event factory
46
46
 
47
+ ## [1.0.26] - 2024-09-08
48
+
49
+ - Added OpenTelemetry attributes for Arvo and OpenInference
50
+
package/README.md CHANGED
@@ -73,6 +73,7 @@ import {
73
73
  createArvoEvent,
74
74
  createArvoContract,
75
75
  createArvoContractLibrary,
76
+ createArvoEventFactory,
76
77
  } from 'arvo-core';
77
78
  ```
78
79
 
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { ArvoContractRecord, IArvoContract } from './types';
2
+ import { ArvoContractJSONSchema, ArvoContractRecord, IArvoContract } from './types';
3
3
  import { ArvoErrorSchema } from '../schema';
4
4
  /**
5
5
  * ArvoContract class represents a contract with defined input and output schemas.
@@ -39,7 +39,7 @@ export default class ArvoContract<TUri extends string = string, TType extends st
39
39
  get emits(): TEmits;
40
40
  get systemError(): ArvoContractRecord<`sys.${TType}.error`, typeof ArvoErrorSchema>;
41
41
  /**
42
- * Validates the contract bound handler's input against the
42
+ * Validates the contract bound handler's input/ accept event against the
43
43
  * contract's accept schema.
44
44
  * @template U - The type of the input to validate.
45
45
  * @param type - The type of the input event.
@@ -47,9 +47,9 @@ export default class ArvoContract<TUri extends string = string, TType extends st
47
47
  * @returns The validation result.
48
48
  * @throws If the accept type is not found in the contract.
49
49
  */
50
- validateInput<U>(type: TType, input: U): z.SafeParseReturnType<any, any>;
50
+ validateAccepts<U>(type: TType, input: U): z.SafeParseReturnType<any, any>;
51
51
  /**
52
- * Validates the contract bound handler's output against the
52
+ * Validates the contract bound handler's output/ emits against the
53
53
  * contract's emit schema.
54
54
  * @template U - The type of the output to validate.
55
55
  * @param type - The type of the output event.
@@ -57,21 +57,21 @@ export default class ArvoContract<TUri extends string = string, TType extends st
57
57
  * @returns The validation result.
58
58
  * @throws If the emit type is not found in the contract.
59
59
  */
60
- validateOutput<U extends keyof TEmits>(type: U, output: unknown): z.SafeParseReturnType<any, any>;
60
+ validateEmits<U extends keyof TEmits>(type: U, output: unknown): z.SafeParseReturnType<any, any>;
61
61
  /**
62
62
  * Validates the accepts record.
63
63
  * @param accepts - The accepts record to validate.
64
64
  * @returns The validated accepts record.
65
65
  * @private
66
66
  */
67
- private validateAccepts;
67
+ private _validateAccepts;
68
68
  /**
69
69
  * Validates the emits records.
70
70
  * @param emits - The emits records to validate.
71
71
  * @returns The validated emits records.
72
72
  * @private
73
73
  */
74
- private validateEmits;
74
+ private _validateEmits;
75
75
  /**
76
76
  * Exports the ArvoContract instance as a plain object conforming to the IArvoContract interface.
77
77
  * This method can be used to serialize the contract or to create a new instance with the same parameters.
@@ -90,5 +90,5 @@ export default class ArvoContract<TUri extends string = string, TType extends st
90
90
  * - accepts: An object containing the accepted input type and its JSON Schema representation
91
91
  * - emits: An array of objects, each containing an emitted event type and its JSON Schema representation
92
92
  */
93
- toJsonSchema(): Record<string, any>;
93
+ toJsonSchema(): ArvoContractJSONSchema;
94
94
  }
@@ -32,8 +32,8 @@ var ArvoContract = /** @class */ (function () {
32
32
  */
33
33
  function ArvoContract(params) {
34
34
  this._uri = validators_1.ArvoContractValidators.contract.uri.parse(params.uri);
35
- this._accepts = this.validateAccepts(params.accepts);
36
- this._emits = this.validateEmits(params.emits);
35
+ this._accepts = this._validateAccepts(params.accepts);
36
+ this._emits = this._validateEmits(params.emits);
37
37
  this.description = params.description || null;
38
38
  }
39
39
  Object.defineProperty(ArvoContract.prototype, "uri", {
@@ -79,7 +79,7 @@ var ArvoContract = /** @class */ (function () {
79
79
  configurable: true
80
80
  });
81
81
  /**
82
- * Validates the contract bound handler's input against the
82
+ * Validates the contract bound handler's input/ accept event against the
83
83
  * contract's accept schema.
84
84
  * @template U - The type of the input to validate.
85
85
  * @param type - The type of the input event.
@@ -87,14 +87,14 @@ var ArvoContract = /** @class */ (function () {
87
87
  * @returns The validation result.
88
88
  * @throws If the accept type is not found in the contract.
89
89
  */
90
- ArvoContract.prototype.validateInput = function (type, input) {
90
+ ArvoContract.prototype.validateAccepts = function (type, input) {
91
91
  if (type !== this._accepts.type) {
92
92
  throw new Error("Accept type \"".concat(type, "\" not found in contract"));
93
93
  }
94
94
  return this._accepts.schema.safeParse(input);
95
95
  };
96
96
  /**
97
- * Validates the contract bound handler's output against the
97
+ * Validates the contract bound handler's output/ emits against the
98
98
  * contract's emit schema.
99
99
  * @template U - The type of the output to validate.
100
100
  * @param type - The type of the output event.
@@ -102,7 +102,7 @@ var ArvoContract = /** @class */ (function () {
102
102
  * @returns The validation result.
103
103
  * @throws If the emit type is not found in the contract.
104
104
  */
105
- ArvoContract.prototype.validateOutput = function (type, output) {
105
+ ArvoContract.prototype.validateEmits = function (type, output) {
106
106
  var emit = this.emits[type];
107
107
  if (!emit) {
108
108
  throw new Error("Emit type \"".concat(type.toString(), "\" not found in contract"));
@@ -115,7 +115,7 @@ var ArvoContract = /** @class */ (function () {
115
115
  * @returns The validated accepts record.
116
116
  * @private
117
117
  */
118
- ArvoContract.prototype.validateAccepts = function (accepts) {
118
+ ArvoContract.prototype._validateAccepts = function (accepts) {
119
119
  return {
120
120
  type: validators_1.ArvoContractValidators.record.type.parse(accepts.type),
121
121
  schema: accepts.schema,
@@ -127,7 +127,7 @@ var ArvoContract = /** @class */ (function () {
127
127
  * @returns The validated emits records.
128
128
  * @private
129
129
  */
130
- ArvoContract.prototype.validateEmits = function (emits) {
130
+ ArvoContract.prototype._validateEmits = function (emits) {
131
131
  Object.entries(emits).forEach(function (_a) {
132
132
  var key = _a[0];
133
133
  return validators_1.ArvoContractValidators.record.type.parse(key);
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import zodToJsonSchema from 'zod-to-json-schema';
2
3
  /**
3
4
  * Represents a record in an Arvo contract.
4
5
  * @template TType - The type of the record, defaults to string.
@@ -33,3 +34,26 @@ export interface IArvoContract<TUri extends string = string, TType extends strin
33
34
  * @template T - The ArvoContractRecord to resolve.
34
35
  */
35
36
  export type ResolveArvoContractRecord<T extends ArvoContractRecord> = z.infer<T['schema']>;
37
+ /**
38
+ * Represents the JSON Schema representation of an ArvoContract.
39
+ */
40
+ export type ArvoContractJSONSchema = {
41
+ /** The unique identifier (URI) of the contract */
42
+ uri: string;
43
+ /** The description of the contract (null if not provided) */
44
+ description: string | null;
45
+ /** The accepted input schema for the contract */
46
+ accepts: {
47
+ /** The type identifier for the accepted input */
48
+ type: string;
49
+ /** The JSON Schema representation of the accepted input schema */
50
+ schema: ReturnType<typeof zodToJsonSchema>;
51
+ };
52
+ /** An array of emitted event schemas for the contract */
53
+ emits: {
54
+ /** The type identifier for the emitted event */
55
+ type: string;
56
+ /** The JSON Schema representation of the emitted event schema */
57
+ schema: ReturnType<typeof zodToJsonSchema>;
58
+ }[];
59
+ };
@@ -137,7 +137,7 @@ export default class ArvoEvent<TData extends ArvoEventData = ArvoEventData, TExt
137
137
  *
138
138
  * @remark
139
139
  * This is a convenience getter for the data in `this.extensions.traceparent` as this
140
- * is an ArvoEvent object which natively defined this extension on the CloudEvent
140
+ * is an ArvoEvent object which natively defines this extension on the CloudEvent
141
141
  * spec.
142
142
  */
143
143
  get traceparent(): string | null;
@@ -148,7 +148,7 @@ export default class ArvoEvent<TData extends ArvoEventData = ArvoEventData, TExt
148
148
  *
149
149
  * @remark
150
150
  * This is a convenience getter for the data in `this.extensions.tracestate` as this
151
- * is an ArvoEvent object which natively defined this extension on the CloudEvent
151
+ * is an ArvoEvent object which natively defines this extension on the CloudEvent
152
152
  * spec.
153
153
  */
154
154
  get tracestate(): string | null;
@@ -198,7 +198,7 @@ var ArvoEvent = /** @class */ (function () {
198
198
  *
199
199
  * @remark
200
200
  * This is a convenience getter for the data in `this.extensions.traceparent` as this
201
- * is an ArvoEvent object which natively defined this extension on the CloudEvent
201
+ * is an ArvoEvent object which natively defines this extension on the CloudEvent
202
202
  * spec.
203
203
  */
204
204
  get: function () {
@@ -215,7 +215,7 @@ var ArvoEvent = /** @class */ (function () {
215
215
  *
216
216
  * @remark
217
217
  * This is a convenience getter for the data in `this.extensions.tracestate` as this
218
- * is an ArvoEvent object which natively defined this extension on the CloudEvent
218
+ * is an ArvoEvent object which natively defines this extension on the CloudEvent
219
219
  * spec.
220
220
  */
221
221
  get: function () {
@@ -54,8 +54,8 @@ export default class ArvoEventFactory<TUri extends string = string, TType extend
54
54
  error: Error;
55
55
  to: string;
56
56
  }, extensions?: TExtension): import("..").ArvoEvent<{
57
- errorName: string;
58
57
  errorMessage: string;
58
+ errorName: string;
59
59
  errorStack: string | null;
60
60
  }, TExtension, `sys.${TType}.error`>;
61
61
  }
@@ -58,7 +58,7 @@ var ArvoEventFactory = /** @class */ (function () {
58
58
  return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), function () {
59
59
  span.setStatus({ code: api_1.SpanStatusCode.OK });
60
60
  try {
61
- var validationResult = _this.contract.validateInput(_this.contract.accepts.type, event.data);
61
+ var validationResult = _this.contract.validateAccepts(_this.contract.accepts.type, event.data);
62
62
  if (!validationResult.success) {
63
63
  throw new Error("Accept Event data validation failed: ".concat(validationResult.error.message));
64
64
  }
@@ -93,7 +93,7 @@ var ArvoEventFactory = /** @class */ (function () {
93
93
  return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), function () {
94
94
  span.setStatus({ code: api_1.SpanStatusCode.OK });
95
95
  try {
96
- var validationResult = _this.contract.validateOutput(event.type, event.data);
96
+ var validationResult = _this.contract.validateEmits(event.type, event.data);
97
97
  if (!validationResult.success) {
98
98
  throw new Error("Emit Event data validation failed: ".concat(validationResult.error.message));
99
99
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ArvoExection class containing attribute constants for OpenTelemetry.
3
+ */
4
+ export default class ArvoExecution {
5
+ static readonly ATTR_SPAN_KIND = "arvo.span.kind";
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * ArvoExection class containing attribute constants for OpenTelemetry.
5
+ */
6
+ var ArvoExecution = /** @class */ (function () {
7
+ function ArvoExecution() {
8
+ }
9
+ ArvoExecution.ATTR_SPAN_KIND = "arvo.span.kind";
10
+ return ArvoExecution;
11
+ }());
12
+ exports.default = ArvoExecution;
@@ -0,0 +1,4 @@
1
+ export declare enum ArvoExecutionSpanKind {
2
+ EVENT_HANDLER = "EVENT_HANDLER",
3
+ COMMANDER = "COMMANDER"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArvoExecutionSpanKind = void 0;
4
+ var ArvoExecutionSpanKind;
5
+ (function (ArvoExecutionSpanKind) {
6
+ ArvoExecutionSpanKind["EVENT_HANDLER"] = "EVENT_HANDLER";
7
+ ArvoExecutionSpanKind["COMMANDER"] = "COMMANDER";
8
+ })(ArvoExecutionSpanKind || (exports.ArvoExecutionSpanKind = ArvoExecutionSpanKind = {}));
@@ -0,0 +1,62 @@
1
+ /**
2
+ * OpenInference class containing attribute constants for OpenTelemetry OpenInference.
3
+ * These attribute names are defined as per the OpenInference specification:
4
+ * @see https://github.com/Arize-ai/openinference/blob/main/spec/semantic_conventions.md
5
+ */
6
+ export default class OpenInference {
7
+ static readonly ATTR_SPAN_KIND = "openinference.span.kind";
8
+ static readonly ATTR_DOCUMENT_CONTENT = "document.content";
9
+ static readonly ATTR_DOCUMENT_ID = "document.id";
10
+ static readonly ATTR_DOCUMENT_METADATA = "document.metadata";
11
+ static readonly ATTR_DOCUMENT_SCORE = "document.score";
12
+ static readonly ATTR_EMBEDDING_EMBEDDINGS = "embedding.embeddings";
13
+ static readonly ATTR_EMBEDDING_MODEL_NAME = "embedding.model_name";
14
+ static readonly ATTR_EMBEDDING_TEXT = "embedding.text";
15
+ static readonly ATTR_EMBEDDING_VECTOR = "embedding.vector";
16
+ static readonly ATTR_EXCEPTION_ESCAPED = "exception.escaped";
17
+ static readonly ATTR_EXCEPTION_MESSAGE = "exception.message";
18
+ static readonly ATTR_EXCEPTION_STACKTRACE = "exception.stacktrace";
19
+ static readonly ATTR_EXCEPTION_TYPE = "exception.type";
20
+ static readonly ATTR_IMAGE_URL = "image.url";
21
+ static readonly ATTR_INPUT_MIME_TYPE = "input.mime_type";
22
+ static readonly ATTR_INPUT_VALUE = "input.value";
23
+ static readonly ATTR_LLM_FUNCTION_CALL = "llm.function_call";
24
+ static readonly ATTR_LLM_INPUT_MESSAGES = "llm.input_messages";
25
+ static readonly ATTR_LLM_INVOCATION_PARAMETERS = "llm.invocation_parameters";
26
+ static readonly ATTR_LLM_MODEL_NAME = "llm.model_name";
27
+ static readonly ATTR_LLM_OUTPUT_MESSAGES = "llm.output_messages";
28
+ static readonly ATTR_LLM_PROMPT_TEMPLATE_TEMPLATE = "llm.prompt_template.template";
29
+ static readonly ATTR_LLM_PROMPT_TEMPLATE_VARIABLES = "llm.prompt_template.variables";
30
+ static readonly ATTR_LLM_PROMPT_TEMPLATE_VERSION = "llm.prompt_template.version";
31
+ static readonly ATTR_LLM_TOKEN_COUNT_COMPLETION = "llm.token_count.completion";
32
+ static readonly ATTR_LLM_TOKEN_COUNT_PROMPT = "llm.token_count.prompt";
33
+ static readonly ATTR_LLM_TOKEN_COUNT_TOTAL = "llm.token_count.total";
34
+ static readonly ATTR_LLM_TOOLS = "llm.tools";
35
+ static readonly ATTR_MESSAGE_CONTENT = "message.content";
36
+ static readonly ATTR_MESSAGE_CONTENTS = "message.contents";
37
+ static readonly ATTR_MESSAGE_FUNCTION_CALL_ARGUMENTS_JSON = "message.function_call_arguments_json";
38
+ static readonly ATTR_MESSAGE_FUNCTION_CALL_NAME = "message.function_call_name";
39
+ static readonly ATTR_MESSAGE_ROLE = "message.role";
40
+ static readonly ATTR_MESSAGE_TOOL_CALLS = "message.tool_calls";
41
+ static readonly ATTR_MESSAGE_CONTENT_TYPE = "messagecontent.type";
42
+ static readonly ATTR_MESSAGE_CONTENT_TEXT = "messagecontent.text";
43
+ static readonly ATTR_MESSAGE_CONTENT_IMAGE = "messagecontent.image";
44
+ static readonly ATTR_METADATA = "metadata";
45
+ static readonly ATTR_OUTPUT_MIME_TYPE = "output.mime_type";
46
+ static readonly ATTR_OUTPUT_VALUE = "output.value";
47
+ static readonly ATTR_RERANKER_INPUT_DOCUMENTS = "reranker.input_documents";
48
+ static readonly ATTR_RERANKER_MODEL_NAME = "reranker.model_name";
49
+ static readonly ATTR_RERANKER_OUTPUT_DOCUMENTS = "reranker.output_documents";
50
+ static readonly ATTR_RERANKER_QUERY = "reranker.query";
51
+ static readonly ATTR_RERANKER_TOP_K = "reranker.top_k";
52
+ static readonly ATTR_RETRIEVAL_DOCUMENTS = "retrieval.documents";
53
+ static readonly ATTR_SESSION_ID = "session.id";
54
+ static readonly ATTR_TAG_TAGS = "tag.tags";
55
+ static readonly ATTR_TOOL_DESCRIPTION = "tool.description";
56
+ static readonly ATTR_TOOL_JSON_SCHEMA = "tool.json_schema";
57
+ static readonly ATTR_TOOL_NAME = "tool.name";
58
+ static readonly ATTR_TOOL_PARAMETERS = "tool.parameters";
59
+ static readonly ATTR_TOOL_CALL_FUNCTION_ARGUMENTS = "tool_call.function.arguments";
60
+ static readonly ATTR_TOOL_CALL_FUNCTION_NAME = "tool_call.function.name";
61
+ static readonly ATTR_USER_ID = "user.id";
62
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * OpenInference class containing attribute constants for OpenTelemetry OpenInference.
5
+ * These attribute names are defined as per the OpenInference specification:
6
+ * @see https://github.com/Arize-ai/openinference/blob/main/spec/semantic_conventions.md
7
+ */
8
+ var OpenInference = /** @class */ (function () {
9
+ function OpenInference() {
10
+ }
11
+ OpenInference.ATTR_SPAN_KIND = "openinference.span.kind";
12
+ // Document attributes
13
+ OpenInference.ATTR_DOCUMENT_CONTENT = "document.content";
14
+ OpenInference.ATTR_DOCUMENT_ID = "document.id";
15
+ OpenInference.ATTR_DOCUMENT_METADATA = "document.metadata";
16
+ OpenInference.ATTR_DOCUMENT_SCORE = "document.score";
17
+ // Embedding attributes
18
+ OpenInference.ATTR_EMBEDDING_EMBEDDINGS = "embedding.embeddings";
19
+ OpenInference.ATTR_EMBEDDING_MODEL_NAME = "embedding.model_name";
20
+ OpenInference.ATTR_EMBEDDING_TEXT = "embedding.text";
21
+ OpenInference.ATTR_EMBEDDING_VECTOR = "embedding.vector";
22
+ // Exception attributes
23
+ OpenInference.ATTR_EXCEPTION_ESCAPED = "exception.escaped";
24
+ OpenInference.ATTR_EXCEPTION_MESSAGE = "exception.message";
25
+ OpenInference.ATTR_EXCEPTION_STACKTRACE = "exception.stacktrace";
26
+ OpenInference.ATTR_EXCEPTION_TYPE = "exception.type";
27
+ // Image attribute
28
+ OpenInference.ATTR_IMAGE_URL = "image.url";
29
+ // Input attributes
30
+ OpenInference.ATTR_INPUT_MIME_TYPE = "input.mime_type";
31
+ OpenInference.ATTR_INPUT_VALUE = "input.value";
32
+ // LLM attributes
33
+ OpenInference.ATTR_LLM_FUNCTION_CALL = "llm.function_call";
34
+ OpenInference.ATTR_LLM_INPUT_MESSAGES = "llm.input_messages";
35
+ OpenInference.ATTR_LLM_INVOCATION_PARAMETERS = "llm.invocation_parameters";
36
+ OpenInference.ATTR_LLM_MODEL_NAME = "llm.model_name";
37
+ OpenInference.ATTR_LLM_OUTPUT_MESSAGES = "llm.output_messages";
38
+ OpenInference.ATTR_LLM_PROMPT_TEMPLATE_TEMPLATE = "llm.prompt_template.template";
39
+ OpenInference.ATTR_LLM_PROMPT_TEMPLATE_VARIABLES = "llm.prompt_template.variables";
40
+ OpenInference.ATTR_LLM_PROMPT_TEMPLATE_VERSION = "llm.prompt_template.version";
41
+ OpenInference.ATTR_LLM_TOKEN_COUNT_COMPLETION = "llm.token_count.completion";
42
+ OpenInference.ATTR_LLM_TOKEN_COUNT_PROMPT = "llm.token_count.prompt";
43
+ OpenInference.ATTR_LLM_TOKEN_COUNT_TOTAL = "llm.token_count.total";
44
+ OpenInference.ATTR_LLM_TOOLS = "llm.tools";
45
+ // Message attributes
46
+ OpenInference.ATTR_MESSAGE_CONTENT = "message.content";
47
+ OpenInference.ATTR_MESSAGE_CONTENTS = "message.contents";
48
+ OpenInference.ATTR_MESSAGE_FUNCTION_CALL_ARGUMENTS_JSON = "message.function_call_arguments_json";
49
+ OpenInference.ATTR_MESSAGE_FUNCTION_CALL_NAME = "message.function_call_name";
50
+ OpenInference.ATTR_MESSAGE_ROLE = "message.role";
51
+ OpenInference.ATTR_MESSAGE_TOOL_CALLS = "message.tool_calls";
52
+ // Message content attributes
53
+ OpenInference.ATTR_MESSAGE_CONTENT_TYPE = "messagecontent.type";
54
+ OpenInference.ATTR_MESSAGE_CONTENT_TEXT = "messagecontent.text";
55
+ OpenInference.ATTR_MESSAGE_CONTENT_IMAGE = "messagecontent.image";
56
+ // Metadata attribute
57
+ OpenInference.ATTR_METADATA = "metadata";
58
+ // Output attributes
59
+ OpenInference.ATTR_OUTPUT_MIME_TYPE = "output.mime_type";
60
+ OpenInference.ATTR_OUTPUT_VALUE = "output.value";
61
+ // Reranker attributes
62
+ OpenInference.ATTR_RERANKER_INPUT_DOCUMENTS = "reranker.input_documents";
63
+ OpenInference.ATTR_RERANKER_MODEL_NAME = "reranker.model_name";
64
+ OpenInference.ATTR_RERANKER_OUTPUT_DOCUMENTS = "reranker.output_documents";
65
+ OpenInference.ATTR_RERANKER_QUERY = "reranker.query";
66
+ OpenInference.ATTR_RERANKER_TOP_K = "reranker.top_k";
67
+ // Retrieval attribute
68
+ OpenInference.ATTR_RETRIEVAL_DOCUMENTS = "retrieval.documents";
69
+ // Session attribute
70
+ OpenInference.ATTR_SESSION_ID = "session.id";
71
+ // Tag attribute
72
+ OpenInference.ATTR_TAG_TAGS = "tag.tags";
73
+ // Tool attributes
74
+ OpenInference.ATTR_TOOL_DESCRIPTION = "tool.description";
75
+ OpenInference.ATTR_TOOL_JSON_SCHEMA = "tool.json_schema";
76
+ OpenInference.ATTR_TOOL_NAME = "tool.name";
77
+ OpenInference.ATTR_TOOL_PARAMETERS = "tool.parameters";
78
+ // Tool call attributes
79
+ OpenInference.ATTR_TOOL_CALL_FUNCTION_ARGUMENTS = "tool_call.function.arguments";
80
+ OpenInference.ATTR_TOOL_CALL_FUNCTION_NAME = "tool_call.function.name";
81
+ // User attribute
82
+ OpenInference.ATTR_USER_ID = "user.id";
83
+ return OpenInference;
84
+ }());
85
+ exports.default = OpenInference;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The open inference span kind as per
3
+ * https://github.com/Arize-ai/openinference/blob/main/spec/traces.md#span-kind
4
+ */
5
+ export declare enum OpenInferenceSpanKind {
6
+ CHAIN = "CHAIN",
7
+ RETRIEVER = "RETRIEVER",
8
+ RERANKER = "RERANKER",
9
+ LLM = "LLM",
10
+ EMBEDDING = "EMBEDDING",
11
+ TOOL = "TOOL",
12
+ GUARDRAIL = "GUARDRAIL",
13
+ EVALUATOR = "EVALUATOR"
14
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenInferenceSpanKind = void 0;
4
+ /**
5
+ * The open inference span kind as per
6
+ * https://github.com/Arize-ai/openinference/blob/main/spec/traces.md#span-kind
7
+ */
8
+ var OpenInferenceSpanKind;
9
+ (function (OpenInferenceSpanKind) {
10
+ OpenInferenceSpanKind["CHAIN"] = "CHAIN";
11
+ OpenInferenceSpanKind["RETRIEVER"] = "RETRIEVER";
12
+ OpenInferenceSpanKind["RERANKER"] = "RERANKER";
13
+ OpenInferenceSpanKind["LLM"] = "LLM";
14
+ OpenInferenceSpanKind["EMBEDDING"] = "EMBEDDING";
15
+ OpenInferenceSpanKind["TOOL"] = "TOOL";
16
+ OpenInferenceSpanKind["GUARDRAIL"] = "GUARDRAIL";
17
+ OpenInferenceSpanKind["EVALUATOR"] = "EVALUATOR";
18
+ })(OpenInferenceSpanKind || (exports.OpenInferenceSpanKind = OpenInferenceSpanKind = {}));
package/dist/index.d.ts CHANGED
@@ -8,12 +8,16 @@ import { validateURI, cleanString } from './utils';
8
8
  import ArvoContract from './ArvoContract';
9
9
  import { createArvoContract, InferArvoContract } from './ArvoContract/helpers';
10
10
  import { ArvoContractValidators } from './ArvoContract/validators';
11
- import { ArvoContractRecord, IArvoContract, ResolveArvoContractRecord } from './ArvoContract/types';
11
+ import { ArvoContractRecord, IArvoContract, ResolveArvoContractRecord, ArvoContractJSONSchema } from './ArvoContract/types';
12
12
  import ArvoContractLibrary from './ArvoContractLibrary';
13
13
  import { createArvoContractLibrary } from './ArvoContractLibrary/helpers';
14
14
  import ArvoEventFactory from './ArvoEventFactory';
15
15
  import { createArvoEventFactory } from './ArvoEventFactory/helpers';
16
16
  import { ArvoErrorSchema } from './schema';
17
+ import OpenInference from './OpenTelemetry/OpenInference';
18
+ import ArvoExecution from './OpenTelemetry/ArvoExecution';
19
+ import { ArvoExecutionSpanKind } from './OpenTelemetry/ArvoExecution/types';
20
+ import { OpenInferenceSpanKind } from './OpenTelemetry/OpenInference/types';
17
21
  /**
18
22
  * Collection of Zod schemas for validating various aspects of Arvo events.
19
23
  * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
@@ -80,4 +84,4 @@ declare const ArvoEventSchemas: {
80
84
  tracestate: string | null;
81
85
  }>;
82
86
  };
83
- export { ArvoEvent, createArvoEvent, ArvoDataContentType, ArvoEventData, CloudEventExtension, ArvoEventSchemas, CloudEventContext, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent, exceptionToSpan, logToSpan, OpenTelemetryHeaders, TelemetryLogLevel, OTelNull, validateURI, cleanString, ArvoContract, createArvoContract, ArvoContractValidators, ArvoContractRecord, InferArvoContract, IArvoContract, ResolveArvoContractRecord, ArvoContractLibrary, createArvoContractLibrary, ArvoEventFactory, createArvoEventFactory, ArvoErrorSchema, currentOpenTelemetryHeaders, };
87
+ export { ArvoEvent, createArvoEvent, ArvoDataContentType, ArvoEventData, CloudEventExtension, ArvoEventSchemas, CloudEventContext, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent, exceptionToSpan, logToSpan, OpenTelemetryHeaders, TelemetryLogLevel, OTelNull, validateURI, cleanString, ArvoContract, createArvoContract, ArvoContractValidators, ArvoContractRecord, InferArvoContract, IArvoContract, ResolveArvoContractRecord, ArvoContractLibrary, createArvoContractLibrary, ArvoEventFactory, createArvoEventFactory, ArvoErrorSchema, currentOpenTelemetryHeaders, OpenInference, OpenInferenceSpanKind, ArvoExecution, ArvoExecutionSpanKind, ArvoContractJSONSchema, };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.currentOpenTelemetryHeaders = exports.ArvoErrorSchema = exports.createArvoEventFactory = exports.ArvoEventFactory = exports.createArvoContractLibrary = exports.ArvoContractLibrary = exports.ArvoContractValidators = exports.createArvoContract = exports.ArvoContract = exports.cleanString = exports.validateURI = exports.OTelNull = exports.logToSpan = exports.exceptionToSpan = exports.ArvoEventSchemas = exports.ArvoDataContentType = exports.createArvoEvent = exports.ArvoEvent = void 0;
6
+ exports.ArvoExecutionSpanKind = exports.ArvoExecution = exports.OpenInferenceSpanKind = exports.OpenInference = exports.currentOpenTelemetryHeaders = exports.ArvoErrorSchema = exports.createArvoEventFactory = exports.ArvoEventFactory = exports.createArvoContractLibrary = exports.ArvoContractLibrary = exports.ArvoContractValidators = exports.createArvoContract = exports.ArvoContract = exports.cleanString = exports.validateURI = exports.OTelNull = exports.logToSpan = exports.exceptionToSpan = exports.ArvoEventSchemas = exports.ArvoDataContentType = exports.createArvoEvent = exports.ArvoEvent = void 0;
7
7
  var ArvoEvent_1 = __importDefault(require("./ArvoEvent"));
8
8
  exports.ArvoEvent = ArvoEvent_1.default;
9
9
  var schema_1 = require("./ArvoEvent/schema");
@@ -34,6 +34,14 @@ var helpers_4 = require("./ArvoEventFactory/helpers");
34
34
  Object.defineProperty(exports, "createArvoEventFactory", { enumerable: true, get: function () { return helpers_4.createArvoEventFactory; } });
35
35
  var schema_2 = require("./schema");
36
36
  Object.defineProperty(exports, "ArvoErrorSchema", { enumerable: true, get: function () { return schema_2.ArvoErrorSchema; } });
37
+ var OpenInference_1 = __importDefault(require("./OpenTelemetry/OpenInference"));
38
+ exports.OpenInference = OpenInference_1.default;
39
+ var ArvoExecution_1 = __importDefault(require("./OpenTelemetry/ArvoExecution"));
40
+ exports.ArvoExecution = ArvoExecution_1.default;
41
+ var types_1 = require("./OpenTelemetry/ArvoExecution/types");
42
+ Object.defineProperty(exports, "ArvoExecutionSpanKind", { enumerable: true, get: function () { return types_1.ArvoExecutionSpanKind; } });
43
+ var types_2 = require("./OpenTelemetry/OpenInference/types");
44
+ Object.defineProperty(exports, "OpenInferenceSpanKind", { enumerable: true, get: function () { return types_2.OpenInferenceSpanKind; } });
37
45
  /**
38
46
  * Collection of Zod schemas for validating various aspects of Arvo events.
39
47
  * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
package/dist/schema.d.ts CHANGED
@@ -10,11 +10,11 @@ export declare const ArvoErrorSchema: z.ZodObject<{
10
10
  errorMessage: z.ZodString;
11
11
  errorStack: z.ZodNullable<z.ZodString>;
12
12
  }, "strip", z.ZodTypeAny, {
13
- errorName: string;
14
13
  errorMessage: string;
14
+ errorName: string;
15
15
  errorStack: string | null;
16
16
  }, {
17
- errorName: string;
18
17
  errorMessage: string;
18
+ errorName: string;
19
19
  errorStack: string | null;
20
20
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arvo-core",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "This core package contains all the core classes and components of the Arvo Event Driven System",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {