@dcdr/contracts 1.9.6 → 1.9.8

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  > ⚙️ Intent-based AI runtime + control plane for production systems
4
4
 
5
- [![version](https://img.shields.io/badge/version-1.9.6-blue.svg)](https://www.npmjs.com/package/@dcdr/contracts)
5
+ [![version](https://img.shields.io/npm/v/@dcdr/contracts?label=version&color=blue)](https://www.npmjs.com/package/@dcdr/contracts)
6
6
  [![license](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
7
7
  [![typescript](https://img.shields.io/badge/language-TypeScript-blue.svg)](https://www.typescriptlang.org/)
8
8
 
@@ -150,7 +150,13 @@ Docker image:
150
150
  Copy the example file and edit it:
151
151
 
152
152
  ```bash
153
- cp ./src/contracts/examples/registry.hello_world.json ./registry.json
153
+ cp ./examples/registry.hello_world.json ./registry.json
154
+ ```
155
+
156
+ Or start from the minimal sample registry at the repo root:
157
+
158
+ ```bash
159
+ cp ./sample_registry.json ./registry.json
154
160
  ```
155
161
 
156
162
  Then replace:
@@ -392,8 +398,10 @@ See full feature matrix: [docs/TIERS_FEATURE_MATRIX.md](docs/TIERS_FEATURE_MATRI
392
398
  ### Core concepts
393
399
 
394
400
  - [docs/CONTRACTS.md](docs/CONTRACTS.md) — How Registries, Intents, implementations, policies, and capabilities fit together.
401
+ - [docs/EXECUTION_POLICY.md](docs/EXECUTION_POLICY.md) — ExecutionPolicy reference (availability matrix + tie-breakers).
395
402
  - [docs/PLATFORM_OVERVIEW.md](docs/PLATFORM_OVERVIEW.md) — Runtime (self-hosted) vs Cloud vs Cloud Pro (what runs where, who owns what).
396
403
  - [docs/TIERS_FEATURE_MATRIX.md](docs/TIERS_FEATURE_MATRIX.md) — One-page feature/tier reference.
404
+ - [docs/SUPPORTED_MODELS.md](docs/SUPPORTED_MODELS.md) — Provider model IDs currently marked as runtime-supported.
397
405
 
398
406
  ### Development
399
407
 
@@ -408,4 +416,4 @@ See full feature matrix: [docs/TIERS_FEATURE_MATRIX.md](docs/TIERS_FEATURE_MATRI
408
416
  - [docs/OPENAPI_SDKS.md](docs/OPENAPI_SDKS.md) — Generate Python/C#/Java SDKs from `openapi.runtime.json`.
409
417
  - [docs/PROMETHEUS_METRICS.md](docs/PROMETHEUS_METRICS.md) — Metrics endpoint + the Prometheus gauges/counters we expose.
410
418
  - [docs/EXAMPLES.md](docs/EXAMPLES.md) — End-to-end examples and small recipes.
411
- - [CHANGELOG.md](CHANGELOG.md) — Release notes (synced from the runtime repo changelog; entries start with <kbd>RUNTIME</kbd> / <kbd>CONTRACTS</kbd>).
419
+ - [CHANGELOG.md](CHANGELOG.md) — Release notes (synced from the runtime repo changelog; entries start with `RUNTIME` / `CONTRACTS`).
@@ -1,5 +1,57 @@
1
1
  import { IntentProvider } from "./provider.contract";
2
2
  import { HttpRequestParams } from "./http.contract";
3
+ /**
4
+ * Condition operators for conditioned routing.
5
+ *
6
+ * Notes
7
+ * - Used by conditioned execution policies (context/input).
8
+ * - Keep values stable (wire-level behavior).
9
+ */
10
+ export declare enum ConditionOp {
11
+ /** Incorrect type (based on operator expectations and/or value1 type). */
12
+ INCORRECT = "INCORRECT",
13
+ TRUE = "TRUE",
14
+ FALSE = "FALSE",
15
+ LENGTH_MIN = "LENGTH_MIN",
16
+ LENGTH_MAX = "LENGTH_MAX",
17
+ CONTAINS = "CONTAINS",
18
+ NOT_CONTAINS = "NOT_CONTAINS",
19
+ STARTS_WITH = "STARTS_WITH",
20
+ ENDS_WITH = "ENDS_WITH",
21
+ EMPTY = "EMPTY",
22
+ NOT_EMPTY = "NOT_EMPTY",
23
+ MORE_THAN = "MORE_THAN",
24
+ MORE_THAN_EQUAL = "MORE_THAN_EQUAL",
25
+ LESS_THAN = "LESS_THAN",
26
+ LESS_THAN_EQUAL = "LESS_THAN_EQUAL",
27
+ BETWEEN_RANGE = "BETWEEN_RANGE",
28
+ OUTSIDE_RANGE = "OUTSIDE_RANGE",
29
+ NULL = "NULL",
30
+ EQUALS = "EQUALS",
31
+ NOT_EQUALS = "NOT_EQUALS",
32
+ VALID_URL = "VALID_URL"
33
+ }
34
+ /**
35
+ * Minimal condition contract for conditioned routing.
36
+ *
37
+ * Semantics
38
+ * - `path` is a dot-path relative to the evaluation scope.
39
+ * - `value1` and `value2` are generic operator parameters.
40
+ */
41
+ export interface ImplementationCondition {
42
+ /** Dot-path relative to the evaluation scope (context or vars). */
43
+ path: string;
44
+ /** Operator to apply to the resolved value at `path`. */
45
+ op: ConditionOp;
46
+ /** Primary operator parameter. */
47
+ value1?: string | number | boolean | null;
48
+ /** Secondary operator parameter (e.g. max in a range). */
49
+ value2?: string | number | boolean | null;
50
+ /** Optional normalization for string operators. */
51
+ caseInsensitive?: boolean;
52
+ /** Optional trim for string operators. */
53
+ trim?: boolean;
54
+ }
3
55
  /**
4
56
  * Time window constraints for an implementation.
5
57
  * If present, the implementation is eligible ONLY within these windows.
@@ -116,5 +168,12 @@ export interface ImplementationContract {
116
168
  cacheTTLSeconds?: number;
117
169
  /** Execution window constraints. */
118
170
  executionWindow?: ExecutionWindow;
171
+ /**
172
+ * Optional condition used by conditioned execution policies.
173
+ *
174
+ * Notes
175
+ * - Only evaluated when the intent executionPolicy type is CONDITION_ON_CONTEXT or CONDITION_ON_INPUT.
176
+ */
177
+ condition?: ImplementationCondition;
119
178
  }
120
179
  //# sourceMappingURL=implementations.contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"implementations.contract.d.ts","sourceRoot":"","sources":["../src/implementations.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IAErC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IAEX,gDAAgD;IAChD,QAAQ,EAAE,cAAc,CAAC;IAEzB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAG/B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB;;;OAGG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC;IAEpB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAEhB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oCAAoC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC"}
1
+ {"version":3,"file":"implementations.contract.d.ts","sourceRoot":"","sources":["../src/implementations.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,0EAA0E;IAC1E,SAAS,cAAc;IAGvB,IAAI,SAAS;IACb,KAAK,UAAU;IAGf,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,SAAS,cAAc;IAGvB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAG/B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IAEb,yDAAyD;IACzD,EAAE,EAAE,WAAW,CAAC;IAEhB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1C,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1C,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IAEX,gDAAgD;IAChD,QAAQ,EAAE,cAAc,CAAC;IAEzB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IAEb,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC;IAEpB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAEhB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oCAAoC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC"}
@@ -1,2 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConditionOp = void 0;
4
+ /**
5
+ * Condition operators for conditioned routing.
6
+ *
7
+ * Notes
8
+ * - Used by conditioned execution policies (context/input).
9
+ * - Keep values stable (wire-level behavior).
10
+ */
11
+ var ConditionOp;
12
+ (function (ConditionOp) {
13
+ /** Incorrect type (based on operator expectations and/or value1 type). */
14
+ ConditionOp["INCORRECT"] = "INCORRECT";
15
+ // Boolean
16
+ ConditionOp["TRUE"] = "TRUE";
17
+ ConditionOp["FALSE"] = "FALSE";
18
+ // Text
19
+ ConditionOp["LENGTH_MIN"] = "LENGTH_MIN";
20
+ ConditionOp["LENGTH_MAX"] = "LENGTH_MAX";
21
+ ConditionOp["CONTAINS"] = "CONTAINS";
22
+ ConditionOp["NOT_CONTAINS"] = "NOT_CONTAINS";
23
+ ConditionOp["STARTS_WITH"] = "STARTS_WITH";
24
+ ConditionOp["ENDS_WITH"] = "ENDS_WITH";
25
+ ConditionOp["EMPTY"] = "EMPTY";
26
+ ConditionOp["NOT_EMPTY"] = "NOT_EMPTY";
27
+ // Numeric
28
+ ConditionOp["MORE_THAN"] = "MORE_THAN";
29
+ ConditionOp["MORE_THAN_EQUAL"] = "MORE_THAN_EQUAL";
30
+ ConditionOp["LESS_THAN"] = "LESS_THAN";
31
+ ConditionOp["LESS_THAN_EQUAL"] = "LESS_THAN_EQUAL";
32
+ ConditionOp["BETWEEN_RANGE"] = "BETWEEN_RANGE";
33
+ ConditionOp["OUTSIDE_RANGE"] = "OUTSIDE_RANGE";
34
+ // Generic
35
+ ConditionOp["NULL"] = "NULL";
36
+ ConditionOp["EQUALS"] = "EQUALS";
37
+ ConditionOp["NOT_EQUALS"] = "NOT_EQUALS";
38
+ ConditionOp["VALID_URL"] = "VALID_URL";
39
+ })(ConditionOp || (exports.ConditionOp = ConditionOp = {}));
@@ -146,7 +146,23 @@ export declare enum ExecutionPolicyType {
146
146
  * Prefer the highest-quality implementations first.
147
147
  * Requires each implementation to expose a quality score.
148
148
  */
149
- QUALITY_FIRST = "QUALITY_FIRST"
149
+ QUALITY_FIRST = "QUALITY_FIRST",
150
+ /**
151
+ * Conditioned routing based on request context.
152
+ *
153
+ * Notes
154
+ * - Implementations must define `ImplementationContract.condition`.
155
+ * - When no conditions match, runtime should fail explicitly.
156
+ */
157
+ CONDITION_ON_CONTEXT = "CONDITION_ON_CONTEXT",
158
+ /**
159
+ * Conditioned routing based on interpolated input variables (`ExecuteIntentRequest.vars`).
160
+ *
161
+ * Notes
162
+ * - Implementations must define `ImplementationContract.condition`.
163
+ * - When no conditions match, runtime should fail explicitly.
164
+ */
165
+ CONDITION_ON_INPUT = "CONDITION_ON_INPUT"
150
166
  }
151
167
  /**
152
168
  * Optional behavior when the selected policy cannot be fully evaluated.
@@ -1 +1 @@
1
- {"version":3,"file":"policies.contract.d.ts","sourceRoot":"","sources":["../src/policies.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;GAGG;AACH;;;GAGG;AACH,qBAAa,WAAW;IACpB;;;OAGG;IAGH,WAAW,EAAE,MAAM,CAAK;IAExB;;;;OAIG;IAIH,eAAe,CAAC,EAAE,MAAM,CAAK;IAE7B;;;OAGG;IAGH,gBAAgB,CAAC,EAAE,MAAM,CAAS;IAElC;;;OAGG;IAEH,aAAa,EAAE,OAAO,CAAQ;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IAGH,iBAAiB,CAAC,EAAE,OAAO,CAAS;IAGpC;;;;OAIG;IAEH,oBAAoB,CAAC,EAAE,OAAO,GAAG,aAAa,CAAiB;IAE/D;;;OAGG;IAIH,cAAc,CAAC,EAAE,MAAM,CAAO;IAE9B;;OAEG;IAIH,iBAAiB,CAAC,EAAE,MAAM,CAAQ;IAElC;;OAEG;IAIH,aAAa,CAAC,EAAE,MAAM,CAAO;IAG7B;;;OAGG;IAEH,OAAO,CAAC,EAAE,KAAK,CACT,SAAS,GACT,YAAY,GACZ,cAAc,GACd,SAAS,GACT,YAAY,GACZ,aAAa,CAClB,CAAC;CACL;AAID,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAG1F,qBAAa,gBAAgB;IACzB;;OAEG;IAIH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IAIH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IAIH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IAIH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,eAAe,CAAC,EAAE,cAAc,CAAA;IAEhC;;OAEG;IAIH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IAIH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD;;;;;;;;;GASG;AACH,oBAAY,mBAAmB;IAC3B;;;OAGG;IACH,QAAQ,aAAa;IAErB;;;OAGG;IACH,cAAc,mBAAmB;IAEjC;;;OAGG;IACH,WAAW,gBAAgB;IAE3B;;;OAGG;IACH,cAAc,mBAAmB;IAEjC;;;OAGG;IACH,aAAa,kBAAkB;IAE/B;;;OAGG;IACH,aAAa,kBAAkB;CAClC;AAED;;;;;GAKG;AACH,oBAAY,2BAA2B;IACnC;;OAEG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,cAAc,mBAAmB;IAEjC;;OAEG;IACH,KAAK,UAAU;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,eAAe;IACvB;;;;;OAKG;IACH,oBAAoB,yBAAyB;CAChD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,wBAAwB;IACxB,IAAI,EAAE,eAAe,CAAC;IAEtB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAEhB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAG5B,mBAAmB;IACnB,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEtC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAE3C;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
1
+ {"version":3,"file":"policies.contract.d.ts","sourceRoot":"","sources":["../src/policies.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;GAGG;AACH;;;GAGG;AACH,qBAAa,WAAW;IACpB;;;OAGG;IAGH,WAAW,EAAE,MAAM,CAAK;IAExB;;;;OAIG;IAIH,eAAe,CAAC,EAAE,MAAM,CAAK;IAE7B;;;OAGG;IAGH,gBAAgB,CAAC,EAAE,MAAM,CAAS;IAElC;;;OAGG;IAEH,aAAa,EAAE,OAAO,CAAQ;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IAGH,iBAAiB,CAAC,EAAE,OAAO,CAAS;IAGpC;;;;OAIG;IAEH,oBAAoB,CAAC,EAAE,OAAO,GAAG,aAAa,CAAiB;IAE/D;;;OAGG;IAIH,cAAc,CAAC,EAAE,MAAM,CAAO;IAE9B;;OAEG;IAIH,iBAAiB,CAAC,EAAE,MAAM,CAAQ;IAElC;;OAEG;IAIH,aAAa,CAAC,EAAE,MAAM,CAAO;IAG7B;;;OAGG;IAEH,OAAO,CAAC,EAAE,KAAK,CACT,SAAS,GACT,YAAY,GACZ,cAAc,GACd,SAAS,GACT,YAAY,GACZ,aAAa,CAClB,CAAC;CACL;AAID,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAG1F,qBAAa,gBAAgB;IACzB;;OAEG;IAIH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IAIH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IAIH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IAIH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,eAAe,CAAC,EAAE,cAAc,CAAA;IAEhC;;OAEG;IAIH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IAIH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD;;;;;;;;;GASG;AACH,oBAAY,mBAAmB;IAC3B;;;OAGG;IACH,QAAQ,aAAa;IAErB;;;OAGG;IACH,cAAc,mBAAmB;IAEjC;;;OAGG;IACH,WAAW,gBAAgB;IAE3B;;;OAGG;IACH,cAAc,mBAAmB;IAEjC;;;OAGG;IACH,aAAa,kBAAkB;IAE/B;;;OAGG;IACH,aAAa,kBAAkB;IAE/B;;;;;;OAMG;IACH,oBAAoB,yBAAyB;IAE7C;;;;;;OAMG;IACH,kBAAkB,uBAAuB;CAC5C;AAED;;;;;GAKG;AACH,oBAAY,2BAA2B;IACnC;;OAEG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,cAAc,mBAAmB;IAEjC;;OAEG;IACH,KAAK,UAAU;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,eAAe;IACvB;;;;;OAKG;IACH,oBAAoB,yBAAyB;CAChD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,wBAAwB;IACxB,IAAI,EAAE,eAAe,CAAC;IAEtB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAEhB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAG5B,mBAAmB;IACnB,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEtC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAE3C;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
@@ -240,6 +240,22 @@ var ExecutionPolicyType;
240
240
  * Requires each implementation to expose a quality score.
241
241
  */
242
242
  ExecutionPolicyType["QUALITY_FIRST"] = "QUALITY_FIRST";
243
+ /**
244
+ * Conditioned routing based on request context.
245
+ *
246
+ * Notes
247
+ * - Implementations must define `ImplementationContract.condition`.
248
+ * - When no conditions match, runtime should fail explicitly.
249
+ */
250
+ ExecutionPolicyType["CONDITION_ON_CONTEXT"] = "CONDITION_ON_CONTEXT";
251
+ /**
252
+ * Conditioned routing based on interpolated input variables (`ExecuteIntentRequest.vars`).
253
+ *
254
+ * Notes
255
+ * - Implementations must define `ImplementationContract.condition`.
256
+ * - When no conditions match, runtime should fail explicitly.
257
+ */
258
+ ExecutionPolicyType["CONDITION_ON_INPUT"] = "CONDITION_ON_INPUT";
243
259
  })(ExecutionPolicyType || (exports.ExecutionPolicyType = ExecutionPolicyType = {}));
244
260
  /**
245
261
  * Optional behavior when the selected policy cannot be fully evaluated.
package/package.json CHANGED
@@ -1,9 +1,29 @@
1
1
  {
2
2
  "name": "@dcdr/contracts",
3
- "version": "1.9.6",
4
- "description": "Interfaces for Dcdr Platform",
3
+ "version": "1.9.8",
4
+ "homepage": "https://dcdr.ai",
5
+ "description": "TypeScript contracts and runtime client for DCDR intent-based AI execution",
5
6
  "private": false,
6
7
  "license": "Apache-2.0",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/dcdr-ai/contracts.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/dcdr-ai/contracts/issues"
14
+ },
15
+ "keywords": [
16
+ "dcdr",
17
+ "ai",
18
+ "llm",
19
+ "runtime",
20
+ "intent",
21
+ "typescript",
22
+ "contracts",
23
+ "registry",
24
+ "prompt-management",
25
+ "model-routing"
26
+ ],
7
27
  "main": "dist/index.js",
8
28
  "types": "dist/index.d.ts",
9
29
  "files": [