@dcdr/contracts 2.2.0 → 2.3.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.
- package/dist/asset.contract.d.ts +195 -0
- package/dist/asset.contract.d.ts.map +1 -0
- package/dist/asset.contract.js +60 -0
- package/dist/catalog/anthropic.contract.d.ts +11 -0
- package/dist/catalog/anthropic.contract.d.ts.map +1 -0
- package/dist/catalog/anthropic.contract.js +342 -0
- package/dist/catalog/clip.contract.d.ts +10 -0
- package/dist/catalog/clip.contract.d.ts.map +1 -0
- package/dist/catalog/clip.contract.js +16 -0
- package/dist/catalog/cohere.contract.d.ts +10 -0
- package/dist/catalog/cohere.contract.d.ts.map +1 -0
- package/dist/catalog/cohere.contract.js +16 -0
- package/dist/catalog/dcdr.contract.d.ts +10 -0
- package/dist/catalog/dcdr.contract.d.ts.map +1 -0
- package/dist/catalog/dcdr.contract.js +16 -0
- package/dist/catalog/gemini.contract.d.ts +10 -0
- package/dist/catalog/gemini.contract.d.ts.map +1 -0
- package/dist/catalog/gemini.contract.js +1067 -0
- package/dist/catalog/grok.contract.d.ts +10 -0
- package/dist/catalog/grok.contract.d.ts.map +1 -0
- package/dist/catalog/grok.contract.js +194 -0
- package/dist/catalog/http-tool.contract.d.ts +10 -0
- package/dist/catalog/http-tool.contract.d.ts.map +1 -0
- package/dist/catalog/http-tool.contract.js +16 -0
- package/dist/catalog/mistral.contract.d.ts +10 -0
- package/dist/catalog/mistral.contract.d.ts.map +1 -0
- package/dist/catalog/mistral.contract.js +234 -0
- package/dist/catalog/ocr.contract.d.ts +10 -0
- package/dist/catalog/ocr.contract.d.ts.map +1 -0
- package/dist/catalog/ocr.contract.js +16 -0
- package/dist/catalog/office.contract.d.ts +10 -0
- package/dist/catalog/office.contract.d.ts.map +1 -0
- package/dist/catalog/office.contract.js +53 -0
- package/dist/catalog/ollama.contract.d.ts +10 -0
- package/dist/catalog/ollama.contract.d.ts.map +1 -0
- package/dist/catalog/ollama.contract.js +16 -0
- package/dist/catalog/openai-compatible.contract.d.ts +10 -0
- package/dist/catalog/openai-compatible.contract.d.ts.map +1 -0
- package/dist/catalog/openai-compatible.contract.js +16 -0
- package/dist/catalog/openai.contract.d.ts +11 -0
- package/dist/catalog/openai.contract.d.ts.map +1 -0
- package/dist/catalog/openai.contract.js +2654 -0
- package/dist/catalog/rules.contract.d.ts +10 -0
- package/dist/catalog/rules.contract.d.ts.map +1 -0
- package/dist/catalog/rules.contract.js +16 -0
- package/dist/entitlements.contract.d.ts +3 -0
- package/dist/entitlements.contract.d.ts.map +1 -1
- package/dist/execution.contract.d.ts +122 -0
- package/dist/execution.contract.d.ts.map +1 -1
- package/dist/execution.contract.js +17 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/policies.contract.d.ts +19 -0
- package/dist/policies.contract.d.ts.map +1 -1
- package/dist/policies.contract.js +24 -1
- package/dist/prompt-variable-schema.contract.d.ts +8 -1
- package/dist/prompt-variable-schema.contract.d.ts.map +1 -1
- package/dist/prompt-variable-schema.contract.js +109 -4
- package/dist/prompts.contract.d.ts +14 -8
- package/dist/prompts.contract.d.ts.map +1 -1
- package/dist/prompts.contract.js +12 -1
- package/dist/provider.catalog.contract.d.ts +459 -0
- package/dist/provider.catalog.contract.d.ts.map +1 -0
- package/dist/provider.catalog.contract.js +765 -0
- package/dist/provider.contract.d.ts +4 -352
- package/dist/provider.contract.d.ts.map +1 -1
- package/dist/provider.contract.js +16 -3634
- package/dist/runtime.client.d.ts +54 -1
- package/dist/runtime.client.d.ts.map +1 -1
- package/dist/runtime.client.js +185 -0
- package/dist/utils.contract.d.ts +33 -0
- package/dist/utils.contract.d.ts.map +1 -1
- package/dist/utils.contract.js +35 -0
- package/package.json +52 -24
package/dist/runtime.client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ExecuteIntentEvalRequest, ExecuteIntentEvalResponse, ExecuteIntentRequest, ExecuteIntentResponse, ExecutionStreamDeltaEvent, ExecutionStreamErrorEvent, ExecutionStreamFinalEvent, ExecutionStreamMetaEvent } from "./execution.contract";
|
|
1
|
+
import { ExecutionInputPart, ExecutionPartType, ExecuteIntentEvalRequest, ExecuteIntentEvalResponse, ExecuteIntentRequest, ExecuteIntentResponse, ExecutionStreamDeltaEvent, ExecutionStreamErrorEvent, ExecutionStreamFinalEvent, ExecutionStreamMetaEvent } from "./execution.contract";
|
|
2
|
+
import { DcdrAssetMetadata, DcdrAssetDeleteRequest, DcdrAssetDeleteResponse, DcdrAssetGetRequest, DcdrAssetGetResponse, DcdrAssetUploadRequest, DcdrAssetUploadResponse } from "./asset.contract";
|
|
2
3
|
import { DcdrEntitlementsContract } from "./entitlements.contract";
|
|
3
4
|
/**
|
|
4
5
|
* Options for `DcdrRuntimeClient.executeIntentStream`.
|
|
@@ -9,6 +10,38 @@ export interface DcdrRuntimeClientStreamOptions {
|
|
|
9
10
|
/** Optional abort signal for client-side cancellation. */
|
|
10
11
|
signal?: AbortSignal;
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Simplified client-side upload input.
|
|
15
|
+
*/
|
|
16
|
+
export interface DcdrRuntimeAssetUploadInput {
|
|
17
|
+
intent?: string;
|
|
18
|
+
partType?: ExecutionPartType;
|
|
19
|
+
mimeType?: string;
|
|
20
|
+
dataBase64: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
metadata?: DcdrAssetMetadata;
|
|
23
|
+
storageId?: string;
|
|
24
|
+
assetCacheKey?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Input used to build an asset-backed execution input part.
|
|
28
|
+
*/
|
|
29
|
+
export interface DcdrRuntimeAssetInputPartSource {
|
|
30
|
+
asset: DcdrAssetUploadResponse["asset"];
|
|
31
|
+
variableName?: string;
|
|
32
|
+
mimeType?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
partType?: ExecutionPartType;
|
|
35
|
+
sizeBytes?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Builds a complete runtime upload payload from a simplified client request.
|
|
39
|
+
*/
|
|
40
|
+
export declare function prepareAssetUploadRequest(input: DcdrRuntimeAssetUploadInput): DcdrAssetUploadRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Converts a managed asset reference into an execution input part.
|
|
43
|
+
*/
|
|
44
|
+
export declare function prepareAssetInputPart(input: DcdrRuntimeAssetInputPartSource): ExecutionInputPart;
|
|
12
45
|
/**
|
|
13
46
|
* Runtime healthcheck response shape.
|
|
14
47
|
*
|
|
@@ -222,6 +255,22 @@ export declare class DcdrRuntimeClient {
|
|
|
222
255
|
* @returns Execution result.
|
|
223
256
|
*/
|
|
224
257
|
executeIntent(intent: string, request: ExecuteIntentRequest): Promise<ExecuteIntentResponse>;
|
|
258
|
+
/**
|
|
259
|
+
* Calls `POST /api/assets/upload`.
|
|
260
|
+
*
|
|
261
|
+
* Notes
|
|
262
|
+
* - Cloud-only managed feature.
|
|
263
|
+
* - When `storageId` is omitted, runtime resolves the tenant default storage.
|
|
264
|
+
*/
|
|
265
|
+
uploadAsset(request: DcdrRuntimeAssetUploadInput): Promise<DcdrAssetUploadResponse>;
|
|
266
|
+
/**
|
|
267
|
+
* Calls `GET /api/assets?assetPath=...&storageId=...`.
|
|
268
|
+
*/
|
|
269
|
+
getAsset(request: DcdrAssetGetRequest): Promise<DcdrAssetGetResponse>;
|
|
270
|
+
/**
|
|
271
|
+
* Calls `DELETE /api/assets?assetPath=...&storageId=...`.
|
|
272
|
+
*/
|
|
273
|
+
deleteAsset(request: DcdrAssetDeleteRequest): Promise<DcdrAssetDeleteResponse>;
|
|
225
274
|
/**
|
|
226
275
|
* Calls `POST /api/execution/stream/:intent` and yields SSE events.
|
|
227
276
|
*
|
|
@@ -353,5 +402,9 @@ export declare class DcdrRuntimeClient {
|
|
|
353
402
|
* HTTP method, path, status code, and a bounded preview of the response body.
|
|
354
403
|
*/
|
|
355
404
|
private requestText;
|
|
405
|
+
/**
|
|
406
|
+
* Builds a stable query string for asset get/delete operations.
|
|
407
|
+
*/
|
|
408
|
+
private buildAssetQuery;
|
|
356
409
|
}
|
|
357
410
|
//# sourceMappingURL=runtime.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.client.d.ts","sourceRoot":"","sources":["../src/runtime.client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EAEzB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"runtime.client.d.ts","sourceRoot":"","sources":["../src/runtime.client.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.client.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DcdrRuntimeClient = exports.DcdrRuntimeAuthCheckEntitlementsStatus = void 0;
|
|
4
|
+
exports.prepareAssetUploadRequest = prepareAssetUploadRequest;
|
|
5
|
+
exports.prepareAssetInputPart = prepareAssetInputPart;
|
|
4
6
|
const execution_contract_1 = require("./execution.contract");
|
|
5
7
|
/**
|
|
6
8
|
* Max characters to include when embedding a response body preview inside an Error message.
|
|
@@ -10,6 +12,88 @@ const execution_contract_1 = require("./execution.contract");
|
|
|
10
12
|
* - Reduces the chance of leaking large/sensitive upstream HTML or debug payloads.
|
|
11
13
|
*/
|
|
12
14
|
const ERROR_BODY_PREVIEW_MAX_CHARS = 4000;
|
|
15
|
+
const DEFAULT_ASSET_UPLOAD_MIME_TYPE = "application/octet-stream";
|
|
16
|
+
const EXTENSION_TO_MIME_TYPE = {
|
|
17
|
+
csv: "text/csv",
|
|
18
|
+
doc: "application/msword",
|
|
19
|
+
docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
20
|
+
gif: "image/gif",
|
|
21
|
+
jpg: "image/jpeg",
|
|
22
|
+
jpeg: "image/jpeg",
|
|
23
|
+
json: "application/json",
|
|
24
|
+
m4a: "audio/mp4",
|
|
25
|
+
md: "text/markdown",
|
|
26
|
+
mov: "video/quicktime",
|
|
27
|
+
mp3: "audio/mpeg",
|
|
28
|
+
mp4: "video/mp4",
|
|
29
|
+
pdf: "application/pdf",
|
|
30
|
+
png: "image/png",
|
|
31
|
+
ppt: "application/vnd.ms-powerpoint",
|
|
32
|
+
pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
33
|
+
svg: "image/svg+xml",
|
|
34
|
+
txt: "text/plain",
|
|
35
|
+
wav: "audio/wav",
|
|
36
|
+
webm: "video/webm",
|
|
37
|
+
webp: "image/webp",
|
|
38
|
+
xls: "application/vnd.ms-excel",
|
|
39
|
+
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Builds a complete runtime upload payload from a simplified client request.
|
|
43
|
+
*/
|
|
44
|
+
function prepareAssetUploadRequest(input) {
|
|
45
|
+
const name = normalizeOptionalString(input.name);
|
|
46
|
+
const mimeType = normalizeOptionalString(input.mimeType) ||
|
|
47
|
+
inferMimeTypeFromAssetName(name) ||
|
|
48
|
+
DEFAULT_ASSET_UPLOAD_MIME_TYPE;
|
|
49
|
+
const partType = input.partType || inferExecutionPartTypeForAsset({ mimeType, name });
|
|
50
|
+
const request = {
|
|
51
|
+
partType,
|
|
52
|
+
mimeType,
|
|
53
|
+
dataBase64: String(input.dataBase64 ?? "").trim(),
|
|
54
|
+
};
|
|
55
|
+
const intent = normalizeOptionalString(input.intent);
|
|
56
|
+
const storageId = normalizeOptionalString(input.storageId);
|
|
57
|
+
const assetCacheKey = normalizeOptionalString(input.assetCacheKey);
|
|
58
|
+
if (intent)
|
|
59
|
+
request.intent = intent;
|
|
60
|
+
if (name)
|
|
61
|
+
request.name = name;
|
|
62
|
+
if (input.metadata)
|
|
63
|
+
request.metadata = cloneAssetMetadata(input.metadata);
|
|
64
|
+
if (storageId)
|
|
65
|
+
request.storageId = storageId;
|
|
66
|
+
if (assetCacheKey)
|
|
67
|
+
request.assetCacheKey = assetCacheKey;
|
|
68
|
+
return request;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Converts a managed asset reference into an execution input part.
|
|
72
|
+
*/
|
|
73
|
+
function prepareAssetInputPart(input) {
|
|
74
|
+
const name = normalizeOptionalString(input.name);
|
|
75
|
+
const mimeType = normalizeOptionalString(input.mimeType) ||
|
|
76
|
+
inferMimeTypeFromAssetName(name) ||
|
|
77
|
+
inferMimeTypeFromAssetName(normalizeOptionalString(input.asset.assetPath)) ||
|
|
78
|
+
DEFAULT_ASSET_UPLOAD_MIME_TYPE;
|
|
79
|
+
const partType = input.partType || inferExecutionPartTypeForAsset({ mimeType, name });
|
|
80
|
+
return {
|
|
81
|
+
variableName: normalizeOptionalString(input.variableName),
|
|
82
|
+
type: partType,
|
|
83
|
+
mimeType,
|
|
84
|
+
name,
|
|
85
|
+
sizeBytes: input.sizeBytes ?? input.asset.sizeBytes,
|
|
86
|
+
source: {
|
|
87
|
+
kind: execution_contract_1.ExecutionPartSourceKind.ASSET,
|
|
88
|
+
asset: {
|
|
89
|
+
...input.asset,
|
|
90
|
+
datasource: input.asset.datasource
|
|
91
|
+
? { ...input.asset.datasource }
|
|
92
|
+
: undefined,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
13
97
|
/**
|
|
14
98
|
* Status for optional entitlements data returned by the auth check endpoint.
|
|
15
99
|
*/
|
|
@@ -133,6 +217,43 @@ class DcdrRuntimeClient {
|
|
|
133
217
|
timeoutMs: this.timeoutMs,
|
|
134
218
|
});
|
|
135
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Calls `POST /api/assets/upload`.
|
|
222
|
+
*
|
|
223
|
+
* Notes
|
|
224
|
+
* - Cloud-only managed feature.
|
|
225
|
+
* - When `storageId` is omitted, runtime resolves the tenant default storage.
|
|
226
|
+
*/
|
|
227
|
+
async uploadAsset(request) {
|
|
228
|
+
return this.requestJson({
|
|
229
|
+
method: "POST",
|
|
230
|
+
path: "/api/assets/upload",
|
|
231
|
+
body: prepareAssetUploadRequest(request),
|
|
232
|
+
timeoutMs: this.timeoutMs,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Calls `GET /api/assets?assetPath=...&storageId=...`.
|
|
237
|
+
*/
|
|
238
|
+
async getAsset(request) {
|
|
239
|
+
const query = this.buildAssetQuery(request.assetPath, request.storageId);
|
|
240
|
+
return this.requestJson({
|
|
241
|
+
method: "GET",
|
|
242
|
+
path: `/api/assets${query}`,
|
|
243
|
+
timeoutMs: this.timeoutMs,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Calls `DELETE /api/assets?assetPath=...&storageId=...`.
|
|
248
|
+
*/
|
|
249
|
+
async deleteAsset(request) {
|
|
250
|
+
const query = this.buildAssetQuery(request.assetPath, request.storageId);
|
|
251
|
+
return this.requestJson({
|
|
252
|
+
method: "DELETE",
|
|
253
|
+
path: `/api/assets${query}`,
|
|
254
|
+
timeoutMs: this.timeoutMs,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
136
257
|
/**
|
|
137
258
|
* Calls `POST /api/execution/stream/:intent` and yields SSE events.
|
|
138
259
|
*
|
|
@@ -554,6 +675,18 @@ class DcdrRuntimeClient {
|
|
|
554
675
|
clearTimeout(timeout);
|
|
555
676
|
}
|
|
556
677
|
}
|
|
678
|
+
/**
|
|
679
|
+
* Builds a stable query string for asset get/delete operations.
|
|
680
|
+
*/
|
|
681
|
+
buildAssetQuery(assetPath, storageId) {
|
|
682
|
+
const safeAssetPath = encodeURIComponent(String(assetPath ?? "").trim());
|
|
683
|
+
const qp = [`assetPath=${safeAssetPath}`];
|
|
684
|
+
const safeStorageId = String(storageId ?? "").trim();
|
|
685
|
+
if (safeStorageId) {
|
|
686
|
+
qp.push(`storageId=${encodeURIComponent(safeStorageId)}`);
|
|
687
|
+
}
|
|
688
|
+
return `?${qp.join("&")}`;
|
|
689
|
+
}
|
|
557
690
|
}
|
|
558
691
|
exports.DcdrRuntimeClient = DcdrRuntimeClient;
|
|
559
692
|
/**
|
|
@@ -567,3 +700,55 @@ function buildBodyPreview(text) {
|
|
|
567
700
|
? t.slice(0, ERROR_BODY_PREVIEW_MAX_CHARS) + "…"
|
|
568
701
|
: t;
|
|
569
702
|
}
|
|
703
|
+
/**
|
|
704
|
+
* Infers a likely MIME type from a common file extension.
|
|
705
|
+
*/
|
|
706
|
+
function inferMimeTypeFromAssetName(name) {
|
|
707
|
+
const trimmed = normalizeOptionalString(name);
|
|
708
|
+
if (!trimmed)
|
|
709
|
+
return undefined;
|
|
710
|
+
const lastDot = trimmed.lastIndexOf(".");
|
|
711
|
+
if (lastDot < 0 || lastDot === trimmed.length - 1)
|
|
712
|
+
return undefined;
|
|
713
|
+
const extension = trimmed
|
|
714
|
+
.slice(lastDot + 1)
|
|
715
|
+
.trim()
|
|
716
|
+
.toLowerCase();
|
|
717
|
+
return EXTENSION_TO_MIME_TYPE[extension];
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* Infers the execution part type from MIME type or common file naming.
|
|
721
|
+
*/
|
|
722
|
+
function inferExecutionPartTypeForAsset(args) {
|
|
723
|
+
const mimeType = normalizeOptionalString(args.mimeType) ||
|
|
724
|
+
inferMimeTypeFromAssetName(args.name) ||
|
|
725
|
+
DEFAULT_ASSET_UPLOAD_MIME_TYPE;
|
|
726
|
+
if (mimeType.startsWith("image/"))
|
|
727
|
+
return execution_contract_1.ExecutionPartType.IMAGE;
|
|
728
|
+
if (mimeType.startsWith("audio/"))
|
|
729
|
+
return execution_contract_1.ExecutionPartType.AUDIO;
|
|
730
|
+
if (mimeType.startsWith("video/"))
|
|
731
|
+
return execution_contract_1.ExecutionPartType.VIDEO;
|
|
732
|
+
if (mimeType.startsWith("text/"))
|
|
733
|
+
return execution_contract_1.ExecutionPartType.TEXT;
|
|
734
|
+
return execution_contract_1.ExecutionPartType.DOCUMENT;
|
|
735
|
+
}
|
|
736
|
+
/**
|
|
737
|
+
* Trims optional strings and collapses empty values to `undefined`.
|
|
738
|
+
*/
|
|
739
|
+
function normalizeOptionalString(value) {
|
|
740
|
+
const normalized = String(value ?? "").trim();
|
|
741
|
+
return normalized || undefined;
|
|
742
|
+
}
|
|
743
|
+
/**
|
|
744
|
+
* Clones semantic asset metadata so callers can safely reuse their objects.
|
|
745
|
+
*/
|
|
746
|
+
function cloneAssetMetadata(metadata) {
|
|
747
|
+
return {
|
|
748
|
+
title: metadata.title,
|
|
749
|
+
description: metadata.description,
|
|
750
|
+
alt: metadata.alt,
|
|
751
|
+
tags: Array.isArray(metadata.tags) ? [...metadata.tags] : undefined,
|
|
752
|
+
attributes: metadata.attributes ? { ...metadata.attributes } : undefined,
|
|
753
|
+
};
|
|
754
|
+
}
|
package/dist/utils.contract.d.ts
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared utilities for `@dcdr/contracts`.
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Hash dependency used by helpers that need a stable SHA-256 hex digest.
|
|
6
|
+
*/
|
|
7
|
+
export interface Sha256HexDeps {
|
|
8
|
+
/** Returns the lowercase hex SHA-256 digest for the provided UTF-8 string. */
|
|
9
|
+
sha256Hex: (value: string) => string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Inputs used to derive the default DCDR asset cache key.
|
|
13
|
+
*
|
|
14
|
+
* Notes
|
|
15
|
+
* - `cid` is intentionally excluded because tenant isolation already exists in the asset path prefix.
|
|
16
|
+
* - `intent` is intentionally excluded so the same tenant asset can be reused across intents.
|
|
17
|
+
*/
|
|
18
|
+
export interface DcdrAssetCacheKeyInput {
|
|
19
|
+
/** Stable semantic family for the asset. */
|
|
20
|
+
partType: string;
|
|
21
|
+
/** Canonical lowercase hex content hash for the payload bytes. */
|
|
22
|
+
sha256: string;
|
|
23
|
+
/** Optional technical MIME type. */
|
|
24
|
+
mimeType?: string;
|
|
25
|
+
/** Optional human-friendly asset name. */
|
|
26
|
+
name?: string;
|
|
27
|
+
}
|
|
4
28
|
/**
|
|
5
29
|
* Stable JSON stringify with deterministic object key ordering.
|
|
6
30
|
*
|
|
@@ -18,4 +42,13 @@
|
|
|
18
42
|
* - Circular references throw.
|
|
19
43
|
*/
|
|
20
44
|
export declare function stableJsonStringify(value: unknown): string;
|
|
45
|
+
/**
|
|
46
|
+
* Builds the default DCDR asset cache key from stable semantic inputs.
|
|
47
|
+
*
|
|
48
|
+
* Notes
|
|
49
|
+
* - The result is deterministic and path-safe (`sha256` hex).
|
|
50
|
+
* - The same tenant asset can be reused across intents because `intent` is not part of this identity.
|
|
51
|
+
* - Callers may still provide an explicit override when they intentionally want a different logical cache identity.
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildDcdrAssetCacheKey(deps: Sha256HexDeps, input: DcdrAssetCacheKeyInput): string;
|
|
21
54
|
//# sourceMappingURL=utils.contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.contract.d.ts","sourceRoot":"","sources":["../src/utils.contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmE1D"}
|
|
1
|
+
{"version":3,"file":"utils.contract.d.ts","sourceRoot":"","sources":["../src/utils.contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAmBR"}
|
package/dist/utils.contract.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.stableJsonStringify = stableJsonStringify;
|
|
7
|
+
exports.buildDcdrAssetCacheKey = buildDcdrAssetCacheKey;
|
|
7
8
|
/**
|
|
8
9
|
* Stable JSON stringify with deterministic object key ordering.
|
|
9
10
|
*
|
|
@@ -77,3 +78,37 @@ function stableJsonStringify(value) {
|
|
|
77
78
|
};
|
|
78
79
|
return walk(value);
|
|
79
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Builds the default DCDR asset cache key from stable semantic inputs.
|
|
83
|
+
*
|
|
84
|
+
* Notes
|
|
85
|
+
* - The result is deterministic and path-safe (`sha256` hex).
|
|
86
|
+
* - The same tenant asset can be reused across intents because `intent` is not part of this identity.
|
|
87
|
+
* - Callers may still provide an explicit override when they intentionally want a different logical cache identity.
|
|
88
|
+
*/
|
|
89
|
+
function buildDcdrAssetCacheKey(deps, input) {
|
|
90
|
+
const partType = normalizeAssetCacheKeyField(input.partType);
|
|
91
|
+
const sha256 = normalizeAssetCacheKeyField(input.sha256);
|
|
92
|
+
if (!partType) {
|
|
93
|
+
throw new Error("buildDcdrAssetCacheKey: partType is required");
|
|
94
|
+
}
|
|
95
|
+
if (!sha256) {
|
|
96
|
+
throw new Error("buildDcdrAssetCacheKey: sha256 is required");
|
|
97
|
+
}
|
|
98
|
+
const normalized = stableJsonStringify({
|
|
99
|
+
v: 1,
|
|
100
|
+
partType,
|
|
101
|
+
mimeType: normalizeAssetCacheKeyField(input.mimeType) || null,
|
|
102
|
+
name: normalizeAssetCacheKeyField(input.name) || null,
|
|
103
|
+
sha256,
|
|
104
|
+
});
|
|
105
|
+
return deps.sha256Hex(normalized);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Normalizes a semantic cache-key field into a stable comparison form.
|
|
109
|
+
*/
|
|
110
|
+
function normalizeAssetCacheKeyField(value) {
|
|
111
|
+
return String(value ?? "")
|
|
112
|
+
.trim()
|
|
113
|
+
.toLowerCase();
|
|
114
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcdr/contracts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"homepage": "https://dcdr.ai",
|
|
5
5
|
"description": "TypeScript contracts and runtime client for DCDR intent-based AI execution",
|
|
6
6
|
"private": false,
|
|
@@ -48,29 +48,57 @@
|
|
|
48
48
|
"node": "22.22.0"
|
|
49
49
|
},
|
|
50
50
|
"exports": {
|
|
51
|
-
".": "./dist/index.js",
|
|
52
|
-
"./
|
|
53
|
-
"./
|
|
54
|
-
"./
|
|
55
|
-
"./
|
|
56
|
-
"./
|
|
57
|
-
"./
|
|
58
|
-
"./
|
|
59
|
-
"./
|
|
60
|
-
"./
|
|
61
|
-
"./
|
|
62
|
-
"./
|
|
63
|
-
"./
|
|
64
|
-
"./
|
|
65
|
-
"./
|
|
66
|
-
"./
|
|
67
|
-
"./
|
|
68
|
-
"./
|
|
69
|
-
"./
|
|
70
|
-
"./
|
|
71
|
-
"./
|
|
72
|
-
"./
|
|
73
|
-
"./
|
|
51
|
+
".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" },
|
|
52
|
+
"./asset.contract": { "types": "./dist/asset.contract.d.ts", "default": "./dist/asset.contract.js" },
|
|
53
|
+
"./runtime.client": { "types": "./dist/runtime.client.d.ts", "default": "./dist/runtime.client.js" },
|
|
54
|
+
"./cache.contract": { "types": "./dist/cache.contract.d.ts", "default": "./dist/cache.contract.js" },
|
|
55
|
+
"./capabilities.contract": { "types": "./dist/capabilities.contract.d.ts", "default": "./dist/capabilities.contract.js" },
|
|
56
|
+
"./control.contract": { "types": "./dist/control.contract.d.ts", "default": "./dist/control.contract.js" },
|
|
57
|
+
"./credentials.contract": { "types": "./dist/credentials.contract.d.ts", "default": "./dist/credentials.contract.js" },
|
|
58
|
+
"./subscription.contract": { "types": "./dist/subscription.contract.d.ts", "default": "./dist/subscription.contract.js" },
|
|
59
|
+
"./utils.contract": { "types": "./dist/utils.contract.d.ts", "default": "./dist/utils.contract.js" },
|
|
60
|
+
"./prompt-variable-schema.contract": { "types": "./dist/prompt-variable-schema.contract.d.ts", "default": "./dist/prompt-variable-schema.contract.js" },
|
|
61
|
+
"./registry.stats.contract": { "types": "./dist/registry.stats.contract.d.ts", "default": "./dist/registry.stats.contract.js" },
|
|
62
|
+
"./http.contract": { "types": "./dist/http.contract.d.ts", "default": "./dist/http.contract.js" },
|
|
63
|
+
"./entitlements.contract": { "types": "./dist/entitlements.contract.d.ts", "default": "./dist/entitlements.contract.js" },
|
|
64
|
+
"./errors.contract": { "types": "./dist/errors.contract.d.ts", "default": "./dist/errors.contract.js" },
|
|
65
|
+
"./execution.contract": { "types": "./dist/execution.contract.d.ts", "default": "./dist/execution.contract.js" },
|
|
66
|
+
"./implementations.contract": { "types": "./dist/implementations.contract.d.ts", "default": "./dist/implementations.contract.js" },
|
|
67
|
+
"./intent.contract": { "types": "./dist/intent.contract.d.ts", "default": "./dist/intent.contract.js" },
|
|
68
|
+
"./logs.contract": { "types": "./dist/logs.contract.d.ts", "default": "./dist/logs.contract.js" },
|
|
69
|
+
"./messages.contract": { "types": "./dist/messages.contract.d.ts", "default": "./dist/messages.contract.js" },
|
|
70
|
+
"./policies.contract": { "types": "./dist/policies.contract.d.ts", "default": "./dist/policies.contract.js" },
|
|
71
|
+
"./prompts.contract": { "types": "./dist/prompts.contract.d.ts", "default": "./dist/prompts.contract.js" },
|
|
72
|
+
"./provider.contract": { "types": "./dist/provider.contract.d.ts", "default": "./dist/provider.contract.js" },
|
|
73
|
+
"./service-tokens.contract": { "types": "./dist/service-tokens.contract.d.ts", "default": "./dist/service-tokens.contract.js" },
|
|
74
|
+
"./session.contract": { "types": "./dist/session.contract.d.ts", "default": "./dist/session.contract.js" }
|
|
75
|
+
},
|
|
76
|
+
"typesVersions": {
|
|
77
|
+
"*": {
|
|
78
|
+
"asset.contract": ["dist/asset.contract.d.ts"],
|
|
79
|
+
"runtime.client": ["dist/runtime.client.d.ts"],
|
|
80
|
+
"cache.contract": ["dist/cache.contract.d.ts"],
|
|
81
|
+
"capabilities.contract": ["dist/capabilities.contract.d.ts"],
|
|
82
|
+
"control.contract": ["dist/control.contract.d.ts"],
|
|
83
|
+
"credentials.contract": ["dist/credentials.contract.d.ts"],
|
|
84
|
+
"subscription.contract": ["dist/subscription.contract.d.ts"],
|
|
85
|
+
"utils.contract": ["dist/utils.contract.d.ts"],
|
|
86
|
+
"prompt-variable-schema.contract": ["dist/prompt-variable-schema.contract.d.ts"],
|
|
87
|
+
"registry.stats.contract": ["dist/registry.stats.contract.d.ts"],
|
|
88
|
+
"http.contract": ["dist/http.contract.d.ts"],
|
|
89
|
+
"entitlements.contract": ["dist/entitlements.contract.d.ts"],
|
|
90
|
+
"errors.contract": ["dist/errors.contract.d.ts"],
|
|
91
|
+
"execution.contract": ["dist/execution.contract.d.ts"],
|
|
92
|
+
"implementations.contract": ["dist/implementations.contract.d.ts"],
|
|
93
|
+
"intent.contract": ["dist/intent.contract.d.ts"],
|
|
94
|
+
"logs.contract": ["dist/logs.contract.d.ts"],
|
|
95
|
+
"messages.contract": ["dist/messages.contract.d.ts"],
|
|
96
|
+
"policies.contract": ["dist/policies.contract.d.ts"],
|
|
97
|
+
"prompts.contract": ["dist/prompts.contract.d.ts"],
|
|
98
|
+
"provider.contract": ["dist/provider.contract.d.ts"],
|
|
99
|
+
"service-tokens.contract": ["dist/service-tokens.contract.d.ts"],
|
|
100
|
+
"session.contract": ["dist/session.contract.d.ts"]
|
|
101
|
+
}
|
|
74
102
|
},
|
|
75
103
|
"dependencies": {
|
|
76
104
|
"class-validator": "^0.15.1"
|