From 3781da66ec71b6ab44cdd7e4602d88ad3a2275dd Mon Sep 17 00:00:00 2001 From: Pasha Zayko Date: Tue, 15 Jul 2025 14:42:46 -0400 Subject: [PATCH 1/8] Adding endpoint for chat communication Adding API endpoint to allow communication with AI Agent about license reports --- specs/Data-Gateway.json | 190 ++++++++++++++++++- src/dataGateway/TypeScript/package-lock.json | 4 +- src/dataGateway/TypeScript/package.json | 2 +- 3 files changed, 192 insertions(+), 4 deletions(-) diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index b1a8cf5..f662d2d 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -151,6 +151,99 @@ "title": "Core System - Health Report", "type": "object" }, + "Chat.MessageRecord": { + "title": "Chat - Message Record", + "description": "Object representing entity supplied to the AI agent or a response from the AI Agent", + "example": { + "role": "assistant", + "content": "What are the available IDs?", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "", + "name": "getCorrelationIDs" + } + } + ] + }, + "type": "object", + "properties": { + "content": { + "oneOf": [ + { + "type": "string", + "description": "The contents of the message" + }, + { + "type": "array", + "description": "The contents of the message", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "The text content" + }, + "type": { + "type": "string", + "description": "The type of the content part" + } + } + } + } + ] + }, + "role": { + "type": "string", + "description": "The role of the messages author" + }, + "name": { + "type": "string", + "description": "An optional name for the participant" + }, + "tool_calls": { + "type": "array", + "description": "The tool calls generated by the model, such as function calls", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call" + }, + "function": { + "type": "object", + "description": "The function that the model called", + "properties": { + "arguments": { + "type": "string", + "description": "The arguments to call the function with" + }, + "name": { + "type": "string", + "description": "The name of the function to call" + } + } + }, + "type": { + "type": "string", + "description": "The type of the tool. Currently, only `function` is supported" + } + } + } + }, + "tool_call_id": { + "type": "string", + "description": "Tool call that this message is responding to" + } + }, + "required": [ + "content", + "role" + ] + }, "LicenseReport.CorrelationRecord": { "description": "Metadata that describes the execution session (run) that is used to tie/relate all of the license report together.", "example": { @@ -913,7 +1006,7 @@ }, "description": "Collects data from the various SHI Lab products and makes it available in a standardized way.", "title": "SHI Data Gateway", - "version": "2.1.2" + "version": "2.1.3" }, "openapi": "3.0.0", "paths": { @@ -1475,6 +1568,97 @@ "summary": "Delete the Specified License Report for Specified Tenant" } }, + "/Api/Chat/LicenseGpt": { + "post": { + "summary": "Inquire License Data from AI Agent", + "description": "Enables a conversation mode with AI agent to request details of the available license reports for the tenant.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Chat/LicenseGpt/Post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "Collection of conversation parts provided by user to be ingested by the agent", + "type": "array", + "items": { + "$ref": "#/components/schemas/Chat.MessageRecord" + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "example": { + "messageList": [ + { + "role": "user", + "content": "Hello" + }, + { + "role": "assistant", + "content": "Hello, how can I assist you today?" + }, + { + "role": "user", + "content": "Can you show me what correlation records I have?" + }, + { + "role": "assistant", + "content": "", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "", + "name": "getCorrelationIDs" + } + } + ] + }, + { + "role": "tool", + "content": "{'825a9d7e-0b62-4392-b8ef-ab6951a46ebd':'2025-07-03T18:39:50.828Z','744c0878-3a82-48a7-b239-a1d4b9298a69':'2025-07-07T21:01:20.995Z'}", + "tool_call_id": "call_abc123" + }, + { + "role": "assistant", + "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + ], + "responseText": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + }, + "type": "object", + "properties": { + "responseText": { + "type": "string", + "description": "Most recent response text" + }, + "messageList": { + "type": "array", + "description": "List of message objects in current conversation", + "items": { + "$ref": "#/components/schemas/Chat.MessageRecord" + } + } + } + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + } + }, + "tags": [ + "Chat" + ] + } + }, "/Api/Entitlement/Shield": { "post": { "description": "Creates a new license entitlement (activation) for SHIELD.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", @@ -3053,6 +3237,10 @@ { "name": "SHIELD - Update", "description": "Update Service Configuration for SHIELD." + }, + { + "name": "Chat", + "description": "Enables query for available information (like tenant, license, etc) via conversation with OpenAI agent." } ] } diff --git a/src/dataGateway/TypeScript/package-lock.json b/src/dataGateway/TypeScript/package-lock.json index 19453bd..58cb1ee 100644 --- a/src/dataGateway/TypeScript/package-lock.json +++ b/src/dataGateway/TypeScript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.2", + "version": "2.1.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.2", + "version": "2.1.3", "license": "MIT", "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", diff --git a/src/dataGateway/TypeScript/package.json b/src/dataGateway/TypeScript/package.json index 0791af2..b4791eb 100644 --- a/src/dataGateway/TypeScript/package.json +++ b/src/dataGateway/TypeScript/package.json @@ -1,6 +1,6 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.2", + "version": "2.1.3", "type": "module", "main": "bin/index.js", "description": "SDK client used to interface with the SHI Data Gateway service.", From faeefa2fdd59b963fb21999671515891a041a2b8 Mon Sep 17 00:00:00 2001 From: Pasha Zayko Date: Tue, 15 Jul 2025 15:35:13 -0400 Subject: [PATCH 2/8] Updated common typo Fixed the same typo across entire spec --- specs/Data-Gateway.json | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index f662d2d..00b431c 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -1445,7 +1445,7 @@ }, "/Api/LicenseReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { "get": { - "description": "Retrieves the full license report for the specified correlation ID and tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Retrieves the full license report for the specified correlation ID and tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", "parameters": [ { @@ -1538,7 +1538,7 @@ "summary": "Retrieve the Specified License Report for Specified Tenant" }, "delete": { - "description": "Deletes the full license report for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Deletes the full license report for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/delete", "parameters": [ { @@ -1661,7 +1661,7 @@ }, "/Api/Entitlement/Shield": { "post": { - "description": "Creates a new license entitlement (activation) for SHIELD.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Creates a new license entitlement (activation) for SHIELD.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/Entitlement/Shield/Post", "requestBody": { "content": { @@ -1878,7 +1878,7 @@ }, "/Api/Entitlement/Shield/Tenant/{tenantId}": { "get": { - "description": "Retrieves the list of license entitlements that are assigned to the specified tenant.\n\nThis endpoint requires the `LicenseEntitlement.Read.All`, or `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Retrieves the list of license entitlements that are assigned to the specified tenant.\n\nThis endpoint requires the `LicenseEntitlement.Read.All`, or `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Get", "parameters": [ { @@ -1918,7 +1918,7 @@ }, "/Api/Entitlement/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { "delete": { - "description": "Deletes the requested SHIELD license entitlement record.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Deletes the requested SHIELD license entitlement record.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", "parameters": [ { @@ -2128,7 +2128,7 @@ }, "/Api/Telemetry/Shield/Tenant/{tenantId}": { "get": { - "description": "Retrieves the telemetry records that have been reported for the specified tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read.All`, or `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Retrieves the telemetry records that have been reported for the specified tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read.All`, or `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Get", "parameters": [ { @@ -2225,7 +2225,7 @@ }, "/Api/Telemetry/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { "delete": { - "description": "Deletes the specified telemetry record for the specified tenant.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "description": "Deletes the specified telemetry record for the specified tenant.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", "parameters": [ { @@ -2260,7 +2260,7 @@ }, "/Api/Update/Shield/Channel": { "get": { - "description": "Retrieves all of the channel configurations that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves all of the channel configurations that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/Get", "responses": { "200": { @@ -2294,7 +2294,7 @@ }, "/Api/Update/Shield/Channel/{channelName}": { "get": { - "description": "Retrieves configuration for the specific channel from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves configuration for the specific channel from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Get", "parameters": [ { @@ -2328,7 +2328,7 @@ ] }, "patch": { - "description": "Updates (or adds when missing) the specified channel configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Updates (or adds when missing) the specified channel configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Patch", "parameters": [ { @@ -2408,7 +2408,7 @@ ] }, "delete": { - "description": "Deletes the specified channel configuration and associated rings.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Deletes the specified channel configuration and associated rings.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Delete", "parameters": [ { @@ -2437,7 +2437,7 @@ }, "/Api/Update/Shield/Channel/{channelName}/Ring": { "get": { - "description": "Retrieves all of the ring configurations for a channel that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves all of the ring configurations for a channel that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/Get", "parameters": [ { @@ -2476,7 +2476,7 @@ }, "/Api/Update/Shield/Channel/{channelName}/Ring/{number}": { "get": { - "description": "Retrieves configuration for the specific channel ring from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves configuration for the specific channel ring from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Get", "parameters": [ { @@ -2513,7 +2513,7 @@ ] }, "patch": { - "description": "Updates (or adds when missing) channel ring configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Updates (or adds when missing) channel ring configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Patch", "parameters": [ { @@ -2588,7 +2588,7 @@ ] }, "delete": { - "description": "Deletes configuration of the specific channel ring.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Deletes configuration of the specific channel ring.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Delete", "parameters": [ { @@ -2620,7 +2620,7 @@ }, "/Api/Update/Shield/Channel/{channelName}/Version/{version}": { "post": { - "description": "Uploads new version of the update package for SHIELD in a specific channel.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Uploads new version of the update package for SHIELD in a specific channel.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Channel/:channelName/Version/:version/Post", "parameters": [ { @@ -2780,7 +2780,7 @@ }, "/Api/Update/Shield/Tenant": { "get": { - "description": "Retrieves all tenant configurations present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves all tenant configurations present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Tenant/Get", "responses": { "200": { @@ -2814,7 +2814,7 @@ }, "/Api/Update/Shield/Tenant/{tenantId}": { "get": { - "description": "Retrieves configuration for the specific tenant from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Retrieves configuration for the specific tenant from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Tenant/:tenantId/Get", "parameters": [ { @@ -2848,7 +2848,7 @@ ] }, "patch": { - "description": "Updates (or adds when missing) tenant configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Updates (or adds when missing) tenant configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Tenant/:tenantId/Patch", "parameters": [ { @@ -2934,7 +2934,7 @@ ] }, "delete": { - "description": "Deletes configuration for the specific tenant.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible form the `SHI Lab` tenant. End user access is restricted.", + "description": "Deletes configuration for the specific tenant.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", "operationId": "/Api/Update/Shield/Tenant/:tenantId/Delete", "parameters": [ { From f82db4ec6e252c8ddbb69eaa83ed9d65ca719cb8 Mon Sep 17 00:00:00 2001 From: Pasha Zayko Date: Tue, 15 Jul 2025 16:01:29 -0400 Subject: [PATCH 3/8] Updating to reflect proper character escaping Making sure the example string is valid json stringified value --- specs/Data-Gateway.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index 00b431c..57725e4 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -1621,7 +1621,7 @@ }, { "role": "tool", - "content": "{'825a9d7e-0b62-4392-b8ef-ab6951a46ebd':'2025-07-03T18:39:50.828Z','744c0878-3a82-48a7-b239-a1d4b9298a69':'2025-07-07T21:01:20.995Z'}", + "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", "tool_call_id": "call_abc123" }, { From 1f42c4156892fac7871261ac1e5daf4eff20070e Mon Sep 17 00:00:00 2001 From: Pasha Zayko Date: Wed, 16 Jul 2025 12:29:17 -0400 Subject: [PATCH 4/8] Updating example Enhancing example data to closer represent the real details of the request --- specs/Data-Gateway.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index 57725e4..257c522 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -162,7 +162,7 @@ "id": "call_abc123", "type": "function", "function": { - "arguments": "", + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", "name": "getCorrelationIDs" } } @@ -1607,13 +1607,13 @@ }, { "role": "assistant", - "content": "", + "content": "What are the available IDs?", "tool_calls": [ { "id": "call_abc123", "type": "function", "function": { - "arguments": "", + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", "name": "getCorrelationIDs" } } From bd0e0a1d84a1c48d3f0018aacb16631f079cc05f Mon Sep 17 00:00:00 2001 From: Elliot Huffman Date: Wed, 16 Jul 2025 15:30:36 -0400 Subject: [PATCH 5/8] Match Data Gateway Version Ensure that the Data Gateway API Spec version matches the published version of Data Gateway. --- src/dataGateway/TypeScript/package-lock.json | 4 ++-- src/dataGateway/TypeScript/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dataGateway/TypeScript/package-lock.json b/src/dataGateway/TypeScript/package-lock.json index 58cb1ee..756ff56 100644 --- a/src/dataGateway/TypeScript/package-lock.json +++ b/src/dataGateway/TypeScript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.3", + "version": "2.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.3", + "version": "2.2.0", "license": "MIT", "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", diff --git a/src/dataGateway/TypeScript/package.json b/src/dataGateway/TypeScript/package.json index b4791eb..87c9223 100644 --- a/src/dataGateway/TypeScript/package.json +++ b/src/dataGateway/TypeScript/package.json @@ -1,6 +1,6 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "2.1.3", + "version": "2.2.0", "type": "module", "main": "bin/index.js", "description": "SDK client used to interface with the SHI Data Gateway service.", From 6eb0e79776cf8039527504a998ec075f49ac610d Mon Sep 17 00:00:00 2001 From: Elliot Huffman Date: Wed, 16 Jul 2025 15:31:00 -0400 Subject: [PATCH 6/8] Update Packages Regenerate Lock --- src/dataGateway/TypeScript/package-lock.json | 53 ++++++++++---------- src/dataGateway/TypeScript/package.json | 6 +-- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/dataGateway/TypeScript/package-lock.json b/src/dataGateway/TypeScript/package-lock.json index 756ff56..773f9fd 100644 --- a/src/dataGateway/TypeScript/package-lock.json +++ b/src/dataGateway/TypeScript/package-lock.json @@ -11,11 +11,11 @@ "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", "@microsoft/kiota-bundle": "~1.0.0-preview.96", - "typia": "~9.4.0" + "typia": "~9.5.0" }, "devDependencies": { - "@azure/core-auth": "~1.9.0", - "@types/node": "~24.0.12", + "@azure/core-auth": "~1.10.0", + "@types/node": "~24.0.14", "ts-patch": "~3.3.0", "typescript": "~5.8.3" } @@ -33,9 +33,9 @@ } }, "node_modules/@azure/core-auth": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", - "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.0.tgz", + "integrity": "sha512-88Djs5vBvGbHQHf5ZZcaoNHo6Y8BKZkt3cw2iuJIQzLEgH4Ox6Tm4hjFhbqOxyYsgIG/eJbFEHpxRIfEEWv5Ow==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -43,21 +43,21 @@ "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-util": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.12.0.tgz", - "integrity": "sha512-13IyjTQgABPARvG90+N2dXpC+hwp466XCdQXPCRlbWHgd3SJd5Q1VvaBGv6k1BIa4MQm6hAF1UBU1m8QUxV8sQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.0.tgz", + "integrity": "sha512-o0psW8QWQ58fq3i24Q1K2XfS/jYTxr7O1HRcyUE9bV9NttLU+kYOH82Ixj8DGlMTOWgxm1Sss2QAfKK5UkSPxw==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", - "@typespec/ts-http-runtime": "^0.2.2", + "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@microsoft/kiota-abstractions": { @@ -159,9 +159,9 @@ } }, "node_modules/@samchon/openapi": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-4.4.1.tgz", - "integrity": "sha512-RMcHrR1Atw9XUhgMh1EAt81ZBnMXiOIEET7aGpW3c4PVUqJyCm8F5yFjWIp81yicGn5IgzkrOz68F4sSeAitew==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-4.5.0.tgz", + "integrity": "sha512-zowWJBjoKC7PUjHGIGUz6Ka3UFkvHagJ/LrdW8hGMp+4JlKmyuN9BPggK+VnH5bf8V68fPqSGVLZppcFQDBNPQ==", "license": "MIT" }, "node_modules/@standard-schema/spec": { @@ -177,9 +177,9 @@ "license": "Apache-2.0" }, "node_modules/@types/node": { - "version": "24.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.12.tgz", - "integrity": "sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==", + "version": "24.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.14.tgz", + "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==", "dev": true, "license": "MIT", "dependencies": { @@ -187,9 +187,9 @@ } }, "node_modules/@typespec/ts-http-runtime": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz", - "integrity": "sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.0.tgz", + "integrity": "sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==", "license": "MIT", "dependencies": { "http-proxy-agent": "^7.0.0", @@ -197,7 +197,7 @@ "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/agent-base": { @@ -1148,12 +1148,12 @@ } }, "node_modules/typia": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/typia/-/typia-9.4.0.tgz", - "integrity": "sha512-LfnK5xYvTJxBzAK40uU4TlE/1hRZAqGWWTivSYraGIDZAu4BJbPxNjtfzUIV71P30Le8ZpXMyYWbzHoBbApghQ==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/typia/-/typia-9.5.0.tgz", + "integrity": "sha512-HVQ5BR95NAmlEO+NGRqKz+EOEXktAqjKdelhms1rIj68mdDI1TzA7MUfNa4D6Ois95PcDdCgq9gwZiO+HXFC/g==", "license": "MIT", "dependencies": { - "@samchon/openapi": "^4.4.1", + "@samchon/openapi": "^4.5.0", "@standard-schema/spec": "^1.0.0", "commander": "^10.0.0", "comment-json": "^4.2.3", @@ -1165,7 +1165,6 @@ "typia": "lib/executable/typia.js" }, "peerDependencies": { - "@samchon/openapi": ">=4.4.1 <5.0.0", "typescript": ">=4.8.0 <5.9.0" } }, diff --git a/src/dataGateway/TypeScript/package.json b/src/dataGateway/TypeScript/package.json index 87c9223..819c871 100644 --- a/src/dataGateway/TypeScript/package.json +++ b/src/dataGateway/TypeScript/package.json @@ -29,14 +29,14 @@ "prepare": "ts-patch install" }, "devDependencies": { - "@azure/core-auth": "~1.9.0", - "@types/node": "~24.0.12", + "@azure/core-auth": "~1.10.0", + "@types/node": "~24.0.14", "ts-patch": "~3.3.0", "typescript": "~5.8.3" }, "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", "@microsoft/kiota-bundle": "~1.0.0-preview.96", - "typia": "~9.4.0" + "typia": "~9.5.0" } } From d80a3b6002d0768ce068d54631faa29f9c9dffd4 Mon Sep 17 00:00:00 2001 From: Elliot Huffman Date: Wed, 16 Jul 2025 15:32:35 -0400 Subject: [PATCH 7/8] Update Packages Regenerate lock --- src/shield/TypeScript/package-lock.json | 53 ++++++++++++------------- src/shield/TypeScript/package.json | 6 +-- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/shield/TypeScript/package-lock.json b/src/shield/TypeScript/package-lock.json index 3de984d..a4418ff 100644 --- a/src/shield/TypeScript/package-lock.json +++ b/src/shield/TypeScript/package-lock.json @@ -11,11 +11,11 @@ "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", "@microsoft/kiota-bundle": "~1.0.0-preview.96", - "typia": "~9.4.0" + "typia": "~9.5.0" }, "devDependencies": { - "@azure/core-auth": "~1.9.0", - "@types/node": "~24.0.12", + "@azure/core-auth": "~1.10.0", + "@types/node": "~24.0.14", "ts-patch": "~3.3.0", "typescript": "~5.8.3" } @@ -33,9 +33,9 @@ } }, "node_modules/@azure/core-auth": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", - "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.0.tgz", + "integrity": "sha512-88Djs5vBvGbHQHf5ZZcaoNHo6Y8BKZkt3cw2iuJIQzLEgH4Ox6Tm4hjFhbqOxyYsgIG/eJbFEHpxRIfEEWv5Ow==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -43,21 +43,21 @@ "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-util": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.12.0.tgz", - "integrity": "sha512-13IyjTQgABPARvG90+N2dXpC+hwp466XCdQXPCRlbWHgd3SJd5Q1VvaBGv6k1BIa4MQm6hAF1UBU1m8QUxV8sQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.0.tgz", + "integrity": "sha512-o0psW8QWQ58fq3i24Q1K2XfS/jYTxr7O1HRcyUE9bV9NttLU+kYOH82Ixj8DGlMTOWgxm1Sss2QAfKK5UkSPxw==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", - "@typespec/ts-http-runtime": "^0.2.2", + "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@microsoft/kiota-abstractions": { @@ -159,9 +159,9 @@ } }, "node_modules/@samchon/openapi": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-4.4.1.tgz", - "integrity": "sha512-RMcHrR1Atw9XUhgMh1EAt81ZBnMXiOIEET7aGpW3c4PVUqJyCm8F5yFjWIp81yicGn5IgzkrOz68F4sSeAitew==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@samchon/openapi/-/openapi-4.5.0.tgz", + "integrity": "sha512-zowWJBjoKC7PUjHGIGUz6Ka3UFkvHagJ/LrdW8hGMp+4JlKmyuN9BPggK+VnH5bf8V68fPqSGVLZppcFQDBNPQ==", "license": "MIT" }, "node_modules/@standard-schema/spec": { @@ -177,9 +177,9 @@ "license": "Apache-2.0" }, "node_modules/@types/node": { - "version": "24.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.12.tgz", - "integrity": "sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==", + "version": "24.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.14.tgz", + "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==", "dev": true, "license": "MIT", "dependencies": { @@ -187,9 +187,9 @@ } }, "node_modules/@typespec/ts-http-runtime": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz", - "integrity": "sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.0.tgz", + "integrity": "sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==", "license": "MIT", "dependencies": { "http-proxy-agent": "^7.0.0", @@ -197,7 +197,7 @@ "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/agent-base": { @@ -1148,12 +1148,12 @@ } }, "node_modules/typia": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/typia/-/typia-9.4.0.tgz", - "integrity": "sha512-LfnK5xYvTJxBzAK40uU4TlE/1hRZAqGWWTivSYraGIDZAu4BJbPxNjtfzUIV71P30Le8ZpXMyYWbzHoBbApghQ==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/typia/-/typia-9.5.0.tgz", + "integrity": "sha512-HVQ5BR95NAmlEO+NGRqKz+EOEXktAqjKdelhms1rIj68mdDI1TzA7MUfNa4D6Ois95PcDdCgq9gwZiO+HXFC/g==", "license": "MIT", "dependencies": { - "@samchon/openapi": "^4.4.1", + "@samchon/openapi": "^4.5.0", "@standard-schema/spec": "^1.0.0", "commander": "^10.0.0", "comment-json": "^4.2.3", @@ -1165,7 +1165,6 @@ "typia": "lib/executable/typia.js" }, "peerDependencies": { - "@samchon/openapi": ">=4.4.1 <5.0.0", "typescript": ">=4.8.0 <5.9.0" } }, diff --git a/src/shield/TypeScript/package.json b/src/shield/TypeScript/package.json index 3a1685e..0468a7e 100644 --- a/src/shield/TypeScript/package.json +++ b/src/shield/TypeScript/package.json @@ -30,14 +30,14 @@ "prepare": "ts-patch install" }, "devDependencies": { - "@azure/core-auth": "~1.9.0", - "@types/node": "~24.0.12", + "@azure/core-auth": "~1.10.0", + "@types/node": "~24.0.14", "ts-patch": "~3.3.0", "typescript": "~5.8.3" }, "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.96", "@microsoft/kiota-bundle": "~1.0.0-preview.96", - "typia": "~9.4.0" + "typia": "~9.5.0" } } From b6f61a81649b3c8b1c56088e887db9b7e6e83efb Mon Sep 17 00:00:00 2001 From: Elliot Huffman Date: Wed, 16 Jul 2025 15:41:23 -0400 Subject: [PATCH 8/8] Tweaks Update required properties for the Data Gateway response. There will always be those properties, they aren't optional. Update name of the schema to be able to be understood better when operating with Kiota generated SDKs. Order of properties. --- specs/Data-Gateway.json | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index 257c522..ad295c1 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -151,7 +151,7 @@ "title": "Core System - Health Report", "type": "object" }, - "Chat.MessageRecord": { + "Chat.OpenAIChatMessage": { "title": "Chat - Message Record", "description": "Object representing entity supplied to the AI agent or a response from the AI Agent", "example": { @@ -1580,7 +1580,7 @@ "description": "Collection of conversation parts provided by user to be ingested by the agent", "type": "array", "items": { - "$ref": "#/components/schemas/Chat.MessageRecord" + "$ref": "#/components/schemas/Chat.OpenAIChatMessage" } } } @@ -1633,18 +1633,22 @@ }, "type": "object", "properties": { - "responseText": { - "type": "string", - "description": "Most recent response text" - }, "messageList": { "type": "array", "description": "List of message objects in current conversation", "items": { - "$ref": "#/components/schemas/Chat.MessageRecord" + "$ref": "#/components/schemas/Chat.OpenAIChatMessage" } + }, + "responseText": { + "type": "string", + "description": "Most recent response text" } - } + }, + "required": [ + "messageList", + "responseText" + ] } } },