@dcdr/contracts 2.5.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,6 +38,7 @@ On top of that, every failure can be reviewed, corrected, and turned into traini
38
38
  - **Public TypeScript contracts** (interfaces/enums) for DCDR Registries and runtime API payloads.
39
39
  - **`DcdrRuntimeClient`**: a strongly-typed TypeScript HTTP client for calling a DCDR Runtime instance.
40
40
  - **Tracked-call rating metadata**: a shared, versioned multimodal multiplier matrix that backend/UI can render and audit consistently with runtime behavior.
41
+ - **Governance contracts**: shared provider/model limit shapes (`provider-limits.contract`) for tenant-level enablement, call-window, and budget-window policy configuration.
41
42
 
42
43
  ## Who should use it
43
44
 
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export * from "./prompts.contract";
9
9
  export * from "./session.contract";
10
10
  export * from "./logs.contract";
11
11
  export * from "./provider.contract";
12
+ export * from "./provider-limits.contract";
13
+ export * from "./provider.catalog.contract";
12
14
  export * from "./credentials.contract";
13
15
  export * from "./http.contract";
14
16
  export * from "./entitlements.contract";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAM1C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAM1C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -26,6 +26,8 @@ __exportStar(require("./prompts.contract"), exports);
26
26
  __exportStar(require("./session.contract"), exports);
27
27
  __exportStar(require("./logs.contract"), exports);
28
28
  __exportStar(require("./provider.contract"), exports);
29
+ __exportStar(require("./provider-limits.contract"), exports);
30
+ __exportStar(require("./provider.catalog.contract"), exports);
29
31
  __exportStar(require("./credentials.contract"), exports);
30
32
  __exportStar(require("./http.contract"), exports);
31
33
  __exportStar(require("./entitlements.contract"), exports);
@@ -0,0 +1,39 @@
1
+ import { IntentProvider } from "./provider.contract";
2
+ import { DcdrServiceTokenLimitType } from "./service-tokens.contract";
3
+ /**
4
+ * Tenant-level provider/model limiting gate used by DCDR governance.
5
+ *
6
+ * Notes
7
+ * - Missing/undefined values preserve permissive behavior by default.
8
+ * - This contract carries configuration only; live metering/enforcement is a
9
+ * runtime/backend responsibility.
10
+ */
11
+ export interface DcdrProviderLimitGate {
12
+ /** Missing/true = allowed. `false` = fully blocked. */
13
+ enabled?: boolean;
14
+ /** Max execution calls allowed within `maxCallsPeriod`. `null` = unlimited. */
15
+ maxCalls?: number | null;
16
+ /** Window type for `maxCalls`. Only meaningful when `maxCalls` is set. */
17
+ maxCallsPeriod?: DcdrServiceTokenLimitType;
18
+ /** Max spend allowed within `maxBudgetPeriod`. `null` = unlimited. */
19
+ maxBudget?: number | null;
20
+ /** Window type for `maxBudget`. Only meaningful when `maxBudget` is set. */
21
+ maxBudgetPeriod?: DcdrServiceTokenLimitType;
22
+ }
23
+ /**
24
+ * Per-provider gate plus optional per-model overrides.
25
+ *
26
+ * Notes
27
+ * - Model ids remain free strings rather than a closed enum because the public
28
+ * provider catalog is large and versioned independently of tenant config.
29
+ */
30
+ export interface DcdrProviderLimitEntry extends DcdrProviderLimitGate {
31
+ models?: Record<string, DcdrProviderLimitGate>;
32
+ }
33
+ /**
34
+ * Tenant-scoped provider limits configuration.
35
+ */
36
+ export interface DcdrProviderLimitsConfig {
37
+ providers?: Partial<Record<IntentProvider, DcdrProviderLimitEntry>>;
38
+ }
39
+ //# sourceMappingURL=provider-limits.contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-limits.contract.d.ts","sourceRoot":"","sources":["../src/provider-limits.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAE3C,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC;CACrE"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -125,5 +125,4 @@ export type ProviderExecuteResult = {
125
125
  totalTokens?: number;
126
126
  };
127
127
  };
128
- export * from "./provider.catalog.contract";
129
128
  //# sourceMappingURL=provider.contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.contract.d.ts","sourceRoot":"","sources":["../src/provider.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,oBAAY,cAAc;IACxB;;;;;;OAMG;IACH,IAAI,SAAS;IAEb,0DAA0D;IAC1D,OAAO,YAAY;IAEnB,2BAA2B;IAC3B,MAAM,WAAW;IAEjB,sBAAsB;IACtB,IAAI,SAAS;IAEb,8BAA8B;IAC9B,SAAS,cAAc;IAEvB,4BAA4B;IAC5B,OAAO,YAAY;IAEnB,wCAAwC;IACxC,MAAM,WAAW;IAEjB;;;;;;OAMG;IACH,MAAM,WAAW;IAEjB;;;OAGG;IACH,MAAM,WAAW;IAEjB;;;;;;;;OAQG;IACH,kBAAkB,uBAAuB;IAEzC;;OAEG;IACH,GAAG,QAAQ;IAEX;;OAEG;IACH,IAAI,SAAS;IAEb;;;OAGG;IACH,SAAS,cAAc;IAEvB;;;OAGG;IACH,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,sBAAsB,CAAC;IACvC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAGxC,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGlC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,EAAE,OAAO,CAAC;IAEhB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"provider.contract.d.ts","sourceRoot":"","sources":["../src/provider.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,oBAAY,cAAc;IACxB;;;;;;OAMG;IACH,IAAI,SAAS;IAEb,0DAA0D;IAC1D,OAAO,YAAY;IAEnB,2BAA2B;IAC3B,MAAM,WAAW;IAEjB,sBAAsB;IACtB,IAAI,SAAS;IAEb,8BAA8B;IAC9B,SAAS,cAAc;IAEvB,4BAA4B;IAC5B,OAAO,YAAY;IAEnB,wCAAwC;IACxC,MAAM,WAAW;IAEjB;;;;;;OAMG;IACH,MAAM,WAAW;IAEjB;;;OAGG;IACH,MAAM,WAAW;IAEjB;;;;;;;;OAQG;IACH,kBAAkB,uBAAuB;IAEzC;;OAEG;IACH,GAAG,QAAQ;IAEX;;OAEG;IACH,IAAI,SAAS;IAEb;;;OAGG;IACH,SAAS,cAAc;IAEvB;;;OAGG;IACH,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,sBAAsB,CAAC;IACvC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAGxC,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGlC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,EAAE,OAAO,CAAC;IAEhB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC"}
@@ -1,18 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
3
  exports.IntentProvider = void 0;
18
4
  /**
@@ -90,4 +76,3 @@ var IntentProvider;
90
76
  */
91
77
  IntentProvider["RULES"] = "RULES";
92
78
  })(IntentProvider || (exports.IntentProvider = IntentProvider = {}));
93
- __exportStar(require("./provider.catalog.contract"), exports);
@@ -6,13 +6,38 @@
6
6
  * - Tokens are referenced by sha256(utf8(tokenString)) in hex.
7
7
  * - Backend should keep this snapshot stable & ordered for reproducible ETags.
8
8
  */
9
+ import { IntentProvider } from "./provider.contract";
9
10
  export type DcdrServiceTokenStatus = "ACTIVE" | "REVOKED";
11
+ /**
12
+ * Stable well-known scopes that can be attached to DCDR service tokens.
13
+ *
14
+ * Notes
15
+ * - `scopes` remains an open `string[]` surface for backward compatibility.
16
+ * - This enum only publishes shared canonical values that runtime/backend/UI
17
+ * may want to reference consistently.
18
+ */
19
+ export declare enum DcdrServiceTokenScope {
20
+ GATEWAY = "gateway"
21
+ }
10
22
  export declare enum DcdrServiceTokenLimitType {
11
23
  FIXED = "FIXED",
12
24
  LIMITED_BY_HOUR = "LIMITED_BY_HOUR",
13
25
  LIMITED_BY_DAY = "LIMITED_BY_DAY",
14
26
  LIMITED_BY_MONTH = "LIMITED_BY_MONTH"
15
27
  }
28
+ /**
29
+ * Gateway binding for one provider.
30
+ *
31
+ * Notes
32
+ * - `credentialRef` uses the same reference concept already used elsewhere in
33
+ * DCDR contracts.
34
+ * - Runtime/backend should treat `provider` as unique within one token's
35
+ * `gatewayBindings` array.
36
+ */
37
+ export interface DcdrServiceTokenGatewayProviderBinding {
38
+ provider: IntentProvider;
39
+ credentialRef: string;
40
+ }
16
41
  export interface DcdrServiceTokenLimit {
17
42
  /**
18
43
  * Maximum number of execution endpoint calls allowed for this limit window.
@@ -39,6 +64,16 @@ export type DcdrServiceTokenSnapshotItem = {
39
64
  exp?: number;
40
65
  /** Optional runtime-enforced execution limits for this token. */
41
66
  limits?: DcdrServiceTokenLimit[];
67
+ /**
68
+ * Optional OpenAI-compatible gateway bindings.
69
+ *
70
+ * Intended use
71
+ * - A token with `gateway` scope can be constrained to exactly one backend-
72
+ * managed credential reference per provider.
73
+ * - Runtime should resolve the selected credential by reference via backend
74
+ * before making the upstream provider call.
75
+ */
76
+ gatewayBindings?: DcdrServiceTokenGatewayProviderBinding[];
42
77
  /** Optional note for operators. */
43
78
  note?: string;
44
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"service-tokens.contract.d.ts","sourceRoot":"","sources":["../src/service-tokens.contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,yBAAyB,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IAEX,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,sBAAsB,CAAC;IAE/B,kGAAkG;IAClG,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,yGAAyG;IACzG,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEjC,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACvC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"service-tokens.contract.d.ts","sourceRoot":"","sources":["../src/service-tokens.contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;;;;;;GAOG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;CACpB;AAED,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACtC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sCAAsC;IACrD,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,yBAAyB,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IAEX,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,sBAAsB,CAAC;IAE/B,kGAAkG;IAClG,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,yGAAyG;IACzG,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEjC;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,sCAAsC,EAAE,CAAC;IAE3D,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACvC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DcdrServiceTokenLimitType = exports.DcdrServiceTokenScope = void 0;
2
4
  /**
3
- * Snapshot of allowed (and revoked) customer service tokens.
5
+ * Stable well-known scopes that can be attached to DCDR service tokens.
4
6
  *
5
- * IMPORTANT:
6
- * - Never include tokens in clear.
7
- * - Tokens are referenced by sha256(utf8(tokenString)) in hex.
8
- * - Backend should keep this snapshot stable & ordered for reproducible ETags.
7
+ * Notes
8
+ * - `scopes` remains an open `string[]` surface for backward compatibility.
9
+ * - This enum only publishes shared canonical values that runtime/backend/UI
10
+ * may want to reference consistently.
9
11
  */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.DcdrServiceTokenLimitType = void 0;
12
+ var DcdrServiceTokenScope;
13
+ (function (DcdrServiceTokenScope) {
14
+ DcdrServiceTokenScope["GATEWAY"] = "gateway";
15
+ })(DcdrServiceTokenScope || (exports.DcdrServiceTokenScope = DcdrServiceTokenScope = {}));
12
16
  var DcdrServiceTokenLimitType;
13
17
  (function (DcdrServiceTokenLimitType) {
14
18
  DcdrServiceTokenLimitType["FIXED"] = "FIXED";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcdr/contracts",
3
- "version": "2.5.2",
3
+ "version": "2.6.0",
4
4
  "homepage": "https://dcdr.ai",
5
5
  "description": "TypeScript contracts and runtime client for DCDR intent-based AI execution",
6
6
  "private": false,
@@ -31,11 +31,13 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "prepare": "npm run build",
34
- "check": "tsc --noEmit",
34
+ "prepublishOnly": "npm run check && npm test",
35
+ "check": "tsc --noEmit && npm run check:no-barrel-cycles",
36
+ "check:no-barrel-cycles": "node tools/check-no-barrel-cycles.js",
35
37
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
36
38
  "build": "npm run clean && tsc -p tsconfig.json",
37
- "test": "npm run build && jest",
38
- "test:ci": "npm run build && jest --runInBand"
39
+ "test": "npm run build && npm run check:no-barrel-cycles && jest",
40
+ "test:ci": "npm run build && npm run check:no-barrel-cycles && jest --runInBand"
39
41
  },
40
42
  "devDependencies": {
41
43
  "@types/jest": "^30.0.0",
@@ -72,6 +74,8 @@
72
74
  "./policies.contract": { "types": "./dist/policies.contract.d.ts", "default": "./dist/policies.contract.js" },
73
75
  "./prompts.contract": { "types": "./dist/prompts.contract.d.ts", "default": "./dist/prompts.contract.js" },
74
76
  "./provider.contract": { "types": "./dist/provider.contract.d.ts", "default": "./dist/provider.contract.js" },
77
+ "./provider-limits.contract": { "types": "./dist/provider-limits.contract.d.ts", "default": "./dist/provider-limits.contract.js" },
78
+ "./provider.catalog.contract": { "types": "./dist/provider.catalog.contract.d.ts", "default": "./dist/provider.catalog.contract.js" },
75
79
  "./service-tokens.contract": { "types": "./dist/service-tokens.contract.d.ts", "default": "./dist/service-tokens.contract.js" },
76
80
  "./session.contract": { "types": "./dist/session.contract.d.ts", "default": "./dist/session.contract.js" }
77
81
  },
@@ -100,6 +104,8 @@
100
104
  "policies.contract": ["dist/policies.contract.d.ts"],
101
105
  "prompts.contract": ["dist/prompts.contract.d.ts"],
102
106
  "provider.contract": ["dist/provider.contract.d.ts"],
107
+ "provider-limits.contract": ["dist/provider-limits.contract.d.ts"],
108
+ "provider.catalog.contract": ["dist/provider.catalog.contract.d.ts"],
103
109
  "service-tokens.contract": ["dist/service-tokens.contract.d.ts"],
104
110
  "session.contract": ["dist/session.contract.d.ts"]
105
111
  }