@xyo-network/xl1-protocol-sdk 2.2.3 → 3.0.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.
Files changed (103) hide show
  1. package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts +35 -2
  2. package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts.map +1 -1
  3. package/dist/neutral/CreatableProvider/CreatableProvider.d.ts +8 -0
  4. package/dist/neutral/CreatableProvider/CreatableProvider.d.ts.map +1 -1
  5. package/dist/neutral/capabilities/Capability.d.ts +1 -8
  6. package/dist/neutral/capabilities/Capability.d.ts.map +1 -1
  7. package/dist/neutral/capabilities/Provider.d.ts +20 -54
  8. package/dist/neutral/capabilities/Provider.d.ts.map +1 -1
  9. package/dist/neutral/capabilities/connectionTypes.d.ts +10 -0
  10. package/dist/neutral/capabilities/connectionTypes.d.ts.map +1 -0
  11. package/dist/neutral/capabilities/index.d.ts +4 -0
  12. package/dist/neutral/capabilities/index.d.ts.map +1 -1
  13. package/dist/neutral/capabilities/locatorFromConfig.d.ts +29 -0
  14. package/dist/neutral/capabilities/locatorFromConfig.d.ts.map +1 -0
  15. package/dist/neutral/capabilities/needsFromProviderBindings.d.ts +8 -0
  16. package/dist/neutral/capabilities/needsFromProviderBindings.d.ts.map +1 -0
  17. package/dist/neutral/capabilities/providerCandidateFromClass.d.ts +7 -0
  18. package/dist/neutral/capabilities/providerCandidateFromClass.d.ts.map +1 -0
  19. package/dist/neutral/capabilities/resolveProviders.d.ts +29 -22
  20. package/dist/neutral/capabilities/resolveProviders.d.ts.map +1 -1
  21. package/dist/neutral/config/Actor.d.ts +216 -12
  22. package/dist/neutral/config/Actor.d.ts.map +1 -1
  23. package/dist/neutral/config/Actors.d.ts +41 -2
  24. package/dist/neutral/config/Actors.d.ts.map +1 -1
  25. package/dist/neutral/config/Base.d.ts +41 -2
  26. package/dist/neutral/config/Base.d.ts.map +1 -1
  27. package/dist/neutral/config/Config.d.ts +152 -8
  28. package/dist/neutral/config/Config.d.ts.map +1 -1
  29. package/dist/neutral/config/HostActor.d.ts +216 -12
  30. package/dist/neutral/config/HostActor.d.ts.map +1 -1
  31. package/dist/neutral/config/ProviderBinding.d.ts +4 -5
  32. package/dist/neutral/config/ProviderBinding.d.ts.map +1 -1
  33. package/dist/neutral/config/adaptLegacyConfig.d.ts +2 -3
  34. package/dist/neutral/config/adaptLegacyConfig.d.ts.map +1 -1
  35. package/dist/neutral/config/connections/index.d.ts +6 -0
  36. package/dist/neutral/config/connections/index.d.ts.map +1 -0
  37. package/dist/neutral/config/index.d.ts +2 -0
  38. package/dist/neutral/config/index.d.ts.map +1 -1
  39. package/dist/neutral/config/normalizeConnectionsConfig.d.ts +20 -0
  40. package/dist/neutral/config/normalizeConnectionsConfig.d.ts.map +1 -0
  41. package/dist/neutral/config/transports/Transport.d.ts +18 -3
  42. package/dist/neutral/config/transports/Transport.d.ts.map +1 -1
  43. package/dist/neutral/context/Actor.d.ts +216 -12
  44. package/dist/neutral/context/Actor.d.ts.map +1 -1
  45. package/dist/neutral/context/HostActor.d.ts +216 -12
  46. package/dist/neutral/context/HostActor.d.ts.map +1 -1
  47. package/dist/neutral/getFileConfig.d.ts +70 -4
  48. package/dist/neutral/getFileConfig.d.ts.map +1 -1
  49. package/dist/neutral/getFileConfig.mjs +204 -191
  50. package/dist/neutral/getFileConfig.mjs.map +4 -4
  51. package/dist/neutral/index.mjs +1120 -822
  52. package/dist/neutral/index.mjs.map +4 -4
  53. package/dist/neutral/model/CreatableProviderContext.zod.d.ts +216 -12
  54. package/dist/neutral/model/CreatableProviderContext.zod.d.ts.map +1 -1
  55. package/dist/neutral/simple/StakeEventsViewer/SimpleStakeEventsViewer.d.ts +2 -0
  56. package/dist/neutral/simple/StakeEventsViewer/SimpleStakeEventsViewer.d.ts.map +1 -1
  57. package/dist/neutral/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.d.ts +2 -0
  58. package/dist/neutral/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.d.ts.map +1 -1
  59. package/dist/neutral/simple/StakeViewer/SimpleStakeViewer.d.ts +2 -0
  60. package/dist/neutral/simple/StakeViewer/SimpleStakeViewer.d.ts.map +1 -1
  61. package/dist/neutral/simple/TransactionViewer/SimpleTransactionViewer.d.ts +1 -0
  62. package/dist/neutral/simple/TransactionViewer/SimpleTransactionViewer.d.ts.map +1 -1
  63. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -0
  64. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
  65. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +2 -0
  66. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -1
  67. package/dist/neutral/simple/blockInvalidation/SimpleBlockInvalidationViewer.d.ts +2 -0
  68. package/dist/neutral/simple/blockInvalidation/SimpleBlockInvalidationViewer.d.ts.map +1 -1
  69. package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts +2 -0
  70. package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts.map +1 -1
  71. package/dist/neutral/simple/blockValidation/SimpleBlockValidationViewer.d.ts +2 -0
  72. package/dist/neutral/simple/blockValidation/SimpleBlockValidationViewer.d.ts.map +1 -1
  73. package/dist/neutral/simple/chainContractViewer/SimpleChainContractViewer.d.ts +2 -0
  74. package/dist/neutral/simple/chainContractViewer/SimpleChainContractViewer.d.ts.map +1 -1
  75. package/dist/neutral/simple/datalake/RestDataLakeRunner.d.ts +2 -0
  76. package/dist/neutral/simple/datalake/RestDataLakeRunner.d.ts.map +1 -1
  77. package/dist/neutral/simple/datalake/RestDataLakeViewer.d.ts +2 -0
  78. package/dist/neutral/simple/datalake/RestDataLakeViewer.d.ts.map +1 -1
  79. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +2 -0
  80. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -1
  81. package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +2 -0
  82. package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -1
  83. package/dist/neutral/simple/finalization/SimpleFinalizationRunner.d.ts +2 -0
  84. package/dist/neutral/simple/finalization/SimpleFinalizationRunner.d.ts.map +1 -1
  85. package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts +2 -0
  86. package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts.map +1 -1
  87. package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts +3 -1
  88. package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts.map +1 -1
  89. package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts +2 -0
  90. package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts.map +1 -1
  91. package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts +2 -0
  92. package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts.map +1 -1
  93. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +2 -0
  94. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -1
  95. package/dist/neutral/simple/timeSync2/SimpleTimeSyncViewer.d.ts +2 -0
  96. package/dist/neutral/simple/timeSync2/SimpleTimeSyncViewer.d.ts.map +1 -1
  97. package/dist/neutral/simple/transactionValidation/SimpleTransactionValidationViewer.d.ts +2 -0
  98. package/dist/neutral/simple/transactionValidation/SimpleTransactionValidationViewer.d.ts.map +1 -1
  99. package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts +2 -0
  100. package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts.map +1 -1
  101. package/dist/neutral/test/index.mjs +210 -191
  102. package/dist/neutral/test/index.mjs.map +4 -4
  103. package/package.json +9 -9
@@ -35,8 +35,39 @@ export declare abstract class AbstractCreatableProvider<TParams extends Creatabl
35
35
  logLevel: "error" | "warn" | "info" | "log" | "debug" | "trace";
36
36
  silent: boolean;
37
37
  };
38
+ connections: Record<string, {
39
+ root: string;
40
+ type: "lmdb";
41
+ access?: "read" | "write" | undefined;
42
+ store?: string | undefined;
43
+ } | {
44
+ type: "mongo";
45
+ connectionString?: string | undefined;
46
+ database?: string | undefined;
47
+ domain?: string | undefined;
48
+ password?: string | undefined;
49
+ username?: string | undefined;
50
+ } | {
51
+ protocol: string;
52
+ url: string;
53
+ type: "rpc";
54
+ } | {
55
+ type: "rest";
56
+ baseUrl: string;
57
+ } | {
58
+ type: "s3";
59
+ bucket?: string | undefined;
60
+ prefix?: string | undefined;
61
+ readUrl?: string | undefined;
62
+ accessKeyId?: string | undefined;
63
+ accountId?: string | undefined;
64
+ secretAccessKey?: string | undefined;
65
+ } | {
66
+ type: "evm-rpc";
67
+ url: string;
68
+ }>;
38
69
  providerBindings: Record<string, {
39
- implementation?: string | undefined;
70
+ connection?: string | undefined;
40
71
  transport?: string | undefined;
41
72
  }>;
42
73
  providers: {
@@ -55,8 +86,10 @@ export declare abstract class AbstractCreatableProvider<TParams extends Creatabl
55
86
  } | undefined;
56
87
  };
57
88
  transports: Record<string, {
58
- type: "lmdb";
59
89
  root: string;
90
+ type: "lmdb";
91
+ access?: "read" | "write" | undefined;
92
+ store?: string | undefined;
60
93
  } | {
61
94
  type: "mongo";
62
95
  connectionString?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCreatableProvider.d.ts","sourceRoot":"","sources":["../../../src/CreatableProvider/AbstractCreatableProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE9E,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAAE,yBAAyB,EAAE,uBAAuB,EAC9E,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,iEAAiE;AACjE,8BAAsB,yBAAyB,CAAC,OAAO,SAAS,uBAAuB,GAAG,uBAAuB,EAC/G,UAAU,SAAS,0BAA0B,GAAG,0BAA0B,CAAE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CACzH,YAAW,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC;IACrD,YAAY,EAAE,WAAW,CAAK;IAE9B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;IACvD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;IAE5C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IAE1C,IAAa,MAAM,uBAOlB;IAED,IAAa,KAAK,mDAEjB;IAED,IAAa,MAAM,oDAElB;IAED,SAAS,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEnB;IAED,SAAS,KAAK,OAAO,uDAEpB;IAED,SAAS,KAAK,OAAO,qIAEpB;IAED,MAAM,CAAC,OAAO,CAAC,SAAS,SAAS,yBAAyB,EAAE,aAAa,SAAS,eAAe,EAAE,GAAG,eAAe,EAAE,EACrH,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAClC,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;WAMxB,aAAa,CAAC,CAAC,SAAS,yBAAyB,EACrE,MAAM,GAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAM;IAgBpB,aAAa;IAUtB,eAAe,CAAC,SAAS,SAAS,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;IAI1F,kBAAkB,CAAC,SAAS,SAAS,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;CAGpG"}
1
+ {"version":3,"file":"AbstractCreatableProvider.d.ts","sourceRoot":"","sources":["../../../src/CreatableProvider/AbstractCreatableProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE9E,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAAE,yBAAyB,EAAE,uBAAuB,EAC9E,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,iEAAiE;AACjE,8BAAsB,yBAAyB,CAAC,OAAO,SAAS,uBAAuB,GAAG,uBAAuB,EAC/G,UAAU,SAAS,0BAA0B,GAAG,0BAA0B,CAAE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CACzH,YAAW,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC;IACrD,YAAY,EAAE,WAAW,CAAK;IAE9B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;IACvD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;IAE5C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IAE1C,IAAa,MAAM,uBAOlB;IAED,IAAa,KAAK,mDAEjB;IAED,IAAa,MAAM,oDAElB;IAED,SAAS,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEnB;IAED,SAAS,KAAK,OAAO,uDAEpB;IAED,SAAS,KAAK,OAAO,qIAEpB;IAED,MAAM,CAAC,OAAO,CAAC,SAAS,SAAS,yBAAyB,EAAE,aAAa,SAAS,eAAe,EAAE,GAAG,eAAe,EAAE,EACrH,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAClC,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;WAMxB,aAAa,CAAC,CAAC,SAAS,yBAAyB,EACrE,MAAM,GAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAM;IAgBpB,aAAa;IAUtB,eAAe,CAAC,SAAS,SAAS,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;IAI1F,kBAAkB,CAAC,SAAS,SAAS,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;CAGpG"}
@@ -1,6 +1,10 @@
1
1
  import type { Creatable, CreatableInstance, CreatableParams, EventData, Labels, WithOptionalLabels } from '@xylabs/sdk-js';
2
2
  import type { Provider, ProviderMoniker } from '@xyo-network/xl1-protocol-lib';
3
+ import type { Surface } from '../capabilities/Backing.ts';
4
+ import type { TransportKind } from '../config/transports/Transport.ts';
3
5
  import type { CreatableProviderContext } from '../model/index.ts';
6
+ /** Connection kinds declared on creatable provider statics (transports plus wallet). */
7
+ export type CreatableProviderConnectionType = TransportKind | 'wallet';
4
8
  import type { GetInstanceOptions } from './GetInstanceOptions.ts';
5
9
  import type { LabeledCreatableProviderFactory } from './LabeledCreatableProviderFactory.ts';
6
10
  /** Parameters for CreatableProvider. */
@@ -18,6 +22,7 @@ export type CreatableProviderInstance<TProvider extends Provider<ProviderMoniker
18
22
  export type ProviderFactoryScope = 'global' | 'context' | 'local';
19
23
  /** CreatableProviderFactory interface. */
20
24
  export interface CreatableProviderFactory<T extends CreatableProviderInstance = CreatableProviderInstance, TDependencies extends ProviderMoniker[] = ProviderMoniker[]> extends Omit<CreatableProvider<T>, 'create' | 'createHandler' | 'paramsHandler'> {
25
+ readonly connectionTypes?: readonly CreatableProviderConnectionType[];
21
26
  creatableProvider: CreatableProvider<T>;
22
27
  defaultParams: Omit<T['params'], 'context'>;
23
28
  readonly dependencies: TDependencies;
@@ -25,6 +30,7 @@ export interface CreatableProviderFactory<T extends CreatableProviderInstance =
25
30
  providerName: string;
26
31
  resolvedMoniker: string;
27
32
  scope: ProviderFactoryScope;
33
+ readonly surface?: Surface;
28
34
  uniqueId: symbol;
29
35
  getInstance(this: CreatableProviderFactory<T>, params: T['params'], options?: GetInstanceOptions): Promise<T>;
30
36
  tryGetInstance(this: CreatableProviderFactory<T>, params: T['params'], options?: GetInstanceOptions): Promise<T | undefined>;
@@ -37,9 +43,11 @@ export interface LabeledCreatableProvider<T extends CreatableProviderInstance =
37
43
  export type ProviderMap<T extends ProviderMoniker = ProviderMoniker> = Partial<Record<T, CreatableProviderInstance<Provider<T>>>>;
38
44
  /** CreatableProvider interface. */
39
45
  export interface CreatableProvider<T extends CreatableProviderInstance = CreatableProviderInstance, TDependencies extends ProviderMoniker[] = ProviderMoniker[]> extends Creatable<T> {
46
+ readonly connectionTypes?: readonly CreatableProviderConnectionType[];
40
47
  readonly defaultMoniker: ProviderMoniker;
41
48
  readonly dependencies: TDependencies;
42
49
  readonly monikers: ProviderMoniker[];
50
+ readonly surface?: Surface;
43
51
  factory(dependencies: TDependencies, params: Omit<T['params'], 'context'>): CreatableProviderFactory<T>;
44
52
  }
45
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableProvider.d.ts","sourceRoot":"","sources":["../../../src/CreatableProvider/CreatableProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreatableProvider.d.ts","sourceRoot":"","sources":["../../../src/CreatableProvider/CreatableProvider.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,11 @@ import type { Surface } from './Backing.ts';
5
5
  *
6
6
  * The capability registry is a sidecar to the moniker namespace — every
7
7
  * moniker that an actor consumes should have a corresponding `Capability`
8
- * entry. The registry is what lets the resolver walk transitive needs
9
- * (via `implies`) and produce useful diagnostics.
8
+ * entry. Plan-time transitive closure uses `ProviderDescriptor.dependencies`.
10
9
  */
11
10
  export interface Capability {
12
11
  /** Canonical id — equals the existing moniker constant string. */
13
12
  readonly id: ProviderMoniker;
14
- /**
15
- * Other capabilities a consumer of this one transitively requires.
16
- * Drives plan-time prerequisite walking — e.g. `BlockRunner` requires
17
- * `BlockViewer`, `MempoolRunner`, `MempoolViewer`, etc.
18
- */
19
- readonly implies?: readonly ProviderMoniker[];
20
13
  readonly kind: 'viewer' | 'runner' | 'gateway' | 'archivist' | 'signer';
21
14
  /** Human label for diagnostics. */
22
15
  readonly label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Capability.d.ts","sourceRoot":"","sources":["../../../src/capabilities/Capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACvE,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,EAAE,eAAe,GAAG,UAAU,CAAA;IACpC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;IAC/B,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;IACzD,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAA;CACpD;AAiCD,wBAAgB,wBAAwB,IAAI,0BAA0B,CAErE"}
1
+ {"version":3,"file":"Capability.d.ts","sourceRoot":"","sources":["../../../src/capabilities/Capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACvE,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,EAAE,eAAe,GAAG,UAAU,CAAA;IACpC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;IAC/B,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;IACzD,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAA;CACpD;AAiCD,wBAAgB,wBAAwB,IAAI,0BAA0B,CAErE"}
@@ -1,65 +1,31 @@
1
1
  import type { ProviderMoniker } from '@xyo-network/xl1-protocol-model';
2
- import type { CreatableProviderFactory } from '../CreatableProvider/index.ts';
3
- import type { BackingNeed, Surface } from './Backing.ts';
4
- import type { CapabilityRegistryInstance } from './Capability.ts';
2
+ import type { CreatableProvider, CreatableProviderConnectionType } from '../CreatableProvider/CreatableProvider.ts';
3
+ import type { Surface } from './Backing.ts';
5
4
  /**
6
- * Tier expresses *intrinsic strength* of a provider lower numbers win.
5
+ * Plan-time candidate for provider resolution (used by `resolveProviders`).
7
6
  *
8
- * - `1` In-process, direct backing-store access (Simple* providers reading/writing the local archivist).
9
- * - `2` Direct EVM contract access (Evm* providers calling Ethereum nodes for chain-of-truth data).
10
- * - `3` Remote JSON-RPC to another XL1 node (JsonRpc* providers).
11
- * - `4` — Stub/fallback (Simple* providers fed empty arrays — usable only when nothing better exists).
7
+ * Metadata (`connectionTypes`, `dependencies`, `surface`, `satisfies`) is
8
+ * derived from `CreatableProvider` class statics via `providerCandidateFromClass`.
9
+ * Selection is config-only: `providerBindings` + `connections` type matching.
12
10
  */
13
- export type ProviderTier = 1 | 2 | 3 | 4;
14
- /**
15
- * Sidecar metadata for a `CreatableProviderFactory`-producing class. Tells the
16
- * resolver which capability the provider satisfies, at what tier, under what
17
- * preconditions, and how to construct the factory at plan time.
18
- *
19
- * Descriptors are deliberately separated from the provider classes themselves
20
- * so the SDK packages stay un-coupled to the descriptor system — descriptors
21
- * live alongside the consumer that picks them.
22
- */
23
- export interface ProviderDescriptor<TCtx extends ResolutionContext = ResolutionContext> {
11
+ export interface ProviderDescriptor {
24
12
  /**
25
- * The backing resources this descriptor's `build()` reads from `ctx`. Used
26
- * by the resolver to filter out descriptors whose backings are not a subset
27
- * of the locator's `availableBackings`. Empty array means the descriptor
28
- * has no backing needs (pure stateless factory or function-only viewer).
13
+ * Connection kinds this candidate supports (e.g. `lmdb`, `rpc`). Empty array
14
+ * means wildcard matches any bound connection type.
29
15
  */
30
- readonly backings: readonly BackingNeed[];
31
- /** Globally-unique key, usually `<className>` used in snapshots and diagnostics. */
32
- readonly id: string;
33
- /** Soft tie-break inside a tier; higher wins. Default 0. */
34
- readonly priority?: number;
35
- /** Capabilities this provider satisfies (typically one moniker, occasionally several). */
36
- readonly satisfies: readonly ProviderMoniker[];
16
+ readonly connectionTypes: readonly CreatableProviderConnectionType[];
17
+ /** Implementation class selected when this candidate wins. */
18
+ readonly creatableProvider: CreatableProvider;
37
19
  /**
38
- * Which API surface this descriptor's capability is exposed under. Mirrors
39
- * the corresponding `Capability.surface`; declared on the descriptor too so
40
- * the resolver can filter candidates by surface without a registry lookup.
20
+ * Monikers this provider resolves at register/create time. Drives plan-time
21
+ * transitive closure and topological ordering.
41
22
  */
23
+ readonly dependencies?: readonly ProviderMoniker[];
24
+ /** Globally-unique key, usually the class name — used in snapshots and diagnostics. */
25
+ readonly id: string;
26
+ /** Capabilities this candidate satisfies (typically `monikers` from the class). */
27
+ readonly satisfies: readonly ProviderMoniker[];
28
+ /** Which API surface this capability is exposed under. */
42
29
  readonly surface: Surface;
43
- readonly tier: ProviderTier;
44
- /**
45
- * Build the factory args from the resolution context. Returning undefined
46
- * signals "skip me at runtime" (preconditions said yes, but a missing optional
47
- * resource was discovered during the build).
48
- */
49
- build(ctx: TCtx): CreatableProviderFactory | undefined;
50
- /**
51
- * Returns true iff the provider can be constructed in this process given `ctx`.
52
- * Pure & sync — must not read DB or do I/O.
53
- */
54
- preconditions(ctx: TCtx): boolean;
55
- }
56
- /**
57
- * Inputs the resolver hands to descriptors. `capabilities` is the registry
58
- * the resolver consults for `implies` walks. Subtypes may extend this with
59
- * live runtime resources — archivists, EVM provider, wallet — that descriptors
60
- * need at `build()` time.
61
- */
62
- export interface ResolutionContext {
63
- readonly capabilities: CapabilityRegistryInstance;
64
30
  }
65
31
  //# sourceMappingURL=Provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/capabilities/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAExC;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI,SAAS,iBAAiB,GAAG,iBAAiB;IACpF;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;IACzC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,wBAAwB,GAAG,SAAS,CAAA;IACtD;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAA;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAA;CAClD"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/capabilities/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAA;AACnH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,+BAA+B,EAAE,CAAA;IACpE,8DAA8D;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAC7C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAClD,uFAAuF;IACvF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B"}
@@ -0,0 +1,10 @@
1
+ import type { TransportKind } from '../config/transports/Transport.ts';
2
+ import type { CreatableProviderConnectionType } from '../CreatableProvider/CreatableProvider.ts';
3
+ import type { ProviderDescriptor } from './Provider.ts';
4
+ /**
5
+ * Connection types a descriptor supports. An empty array is a wildcard: the
6
+ * descriptor matches any bound connection type (used by in-process memory stubs).
7
+ */
8
+ export declare function descriptorConnectionTypes(descriptor: Pick<ProviderDescriptor, 'connectionTypes'>): readonly CreatableProviderConnectionType[];
9
+ export declare function descriptorMatchesConnectionType(descriptor: Pick<ProviderDescriptor, 'connectionTypes'>, connectionType: TransportKind): boolean;
10
+ //# sourceMappingURL=connectionTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionTypes.d.ts","sourceRoot":"","sources":["../../../src/capabilities/connectionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAA;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GACtD,SAAS,+BAA+B,EAAE,CAE5C;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACvD,cAAc,EAAE,aAAa,GAC5B,OAAO,CAMT"}
@@ -1,8 +1,12 @@
1
1
  export * from './Backing.ts';
2
2
  export * from './Capability.ts';
3
3
  export * from './connectionSubsetBySurface.ts';
4
+ export * from './connectionTypes.ts';
4
5
  export * from './factoryBrand.ts';
6
+ export * from './locatorFromConfig.ts';
7
+ export * from './needsFromProviderBindings.ts';
5
8
  export * from './Provider.ts';
9
+ export * from './providerCandidateFromClass.ts';
6
10
  export * from './resolveProviders.ts';
7
11
  export * from './surfaceMap.ts';
8
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import type { ProviderMoniker } from '@xyo-network/xl1-protocol-model';
2
+ import type { Config } from '../config/index.ts';
3
+ import { ProviderFactoryLocator } from '../CreatableProvider/ProviderFactoryLocator.ts';
4
+ import type { CreatableProviderContext } from '../model/index.ts';
5
+ import type { ProviderDescriptor } from './Provider.ts';
6
+ import { type ResolutionPlan } from './resolveProviders.ts';
7
+ /** Options for building a locator from config-driven provider resolution. */
8
+ export interface LocatorFromConfigOptions {
9
+ readonly candidates: readonly ProviderDescriptor[];
10
+ readonly config: Config;
11
+ readonly context?: Omit<CreatableProviderContext, 'config' | 'locator'>;
12
+ readonly needs: ReadonlySet<ProviderMoniker>;
13
+ }
14
+ /**
15
+ * Resolves which provider classes to register for the given config bindings.
16
+ * Selection uses only `providerBindings` + `connections` — no runtime preconditions.
17
+ */
18
+ export declare function resolveProvidersFromConfig(needs: ReadonlySet<ProviderMoniker>, candidates: readonly ProviderDescriptor[], config: Config): ResolutionPlan;
19
+ /**
20
+ * Registers factories for a resolution plan. Params are empty — implementations
21
+ * are expected to read their bound connection from `context.config` at runtime.
22
+ */
23
+ export declare function registerFactoriesFromPlan(locator: ProviderFactoryLocator, plan: ResolutionPlan): void;
24
+ /**
25
+ * Builds a `ProviderFactoryLocator` from config: resolve candidates, then register
26
+ * winning factories. Connection profiles come from config, not factory params.
27
+ */
28
+ export declare function locatorFromConfig(options: LocatorFromConfigOptions): ProviderFactoryLocator;
29
+ //# sourceMappingURL=locatorFromConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locatorFromConfig.d.ts","sourceRoot":"","sources":["../../../src/capabilities/locatorFromConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,KAAK,cAAc,EAAoB,MAAM,uBAAuB,CAAA;AAE7E,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EACnC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,MAAM,EAAE,MAAM,GACb,cAAc,CAMhB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,cAAc,GACnB,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,sBAAsB,CAWxB"}
@@ -0,0 +1,8 @@
1
+ import type { ProviderMoniker } from '@xyo-network/xl1-protocol-model';
2
+ import type { Config } from '../config/Config.ts';
3
+ import type { TransportKind } from '../config/transports/Transport.ts';
4
+ /** Derives resolution needs from every moniker declared in `providerBindings`. */
5
+ export declare function needsFromProviderBindings(config: Pick<Config, 'providerBindings'>): ReadonlySet<ProviderMoniker>;
6
+ /** Derives needs for monikers whose bound connection matches one of the given types. */
7
+ export declare function needsFromConnectionTypes(config: Pick<Config, 'connections' | 'providerBindings'>, connectionTypes: readonly TransportKind[]): ReadonlySet<ProviderMoniker>;
8
+ //# sourceMappingURL=needsFromProviderBindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"needsFromProviderBindings.d.ts","sourceRoot":"","sources":["../../../src/capabilities/needsFromProviderBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEtE,kFAAkF;AAClF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,GACvC,WAAW,CAAC,eAAe,CAAC,CAE9B;AAED,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAAC,EACxD,eAAe,EAAE,SAAS,aAAa,EAAE,GACxC,WAAW,CAAC,eAAe,CAAC,CAiB9B"}
@@ -0,0 +1,7 @@
1
+ import type { CreatableProvider } from '../CreatableProvider/CreatableProvider.ts';
2
+ import type { ProviderDescriptor } from './Provider.ts';
3
+ /** Derives a resolution candidate from a `CreatableProvider` implementation class. */
4
+ export declare function providerCandidateFromClass(creatableProvider: CreatableProvider, id?: string): ProviderDescriptor;
5
+ /** Derives resolution candidates from a list of provider implementation classes. */
6
+ export declare function providerCandidatesFromClasses(creatableProviders: readonly CreatableProvider[]): ProviderDescriptor[];
7
+ //# sourceMappingURL=providerCandidateFromClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerCandidateFromClass.d.ts","sourceRoot":"","sources":["../../../src/capabilities/providerCandidateFromClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,sFAAsF;AACtF,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,iBAAiB,EACpC,EAAE,GAAE,MAA+B,GAClC,kBAAkB,CASpB;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,GAC/C,kBAAkB,EAAE,CAEtB"}
@@ -1,6 +1,6 @@
1
1
  import type { ProviderMoniker } from '@xyo-network/xl1-protocol-model';
2
- import type { BackingNeed } from './Backing.ts';
3
- import type { ProviderDescriptor, ResolutionContext } from './Provider.ts';
2
+ import type { TransportConfig } from '../config/transports/Transport.ts';
3
+ import type { ProviderDescriptor } from './Provider.ts';
4
4
  export interface ResolutionPlan {
5
5
  /** Capability moniker -> winning descriptor id (for snapshot diffing). */
6
6
  readonly bindings: Readonly<Record<ProviderMoniker, string>>;
@@ -18,30 +18,37 @@ export declare class MissingCapabilityError extends Error {
18
18
  readonly reasons: readonly string[];
19
19
  constructor(moniker: ProviderMoniker, reasons: readonly string[]);
20
20
  }
21
+ export declare class AmbiguousProviderError extends Error {
22
+ readonly candidates: readonly string[];
23
+ readonly moniker: ProviderMoniker;
24
+ constructor(moniker: ProviderMoniker, candidates: readonly ProviderDescriptor[]);
25
+ }
26
+ export declare class UnboundProviderError extends Error {
27
+ readonly moniker: ProviderMoniker;
28
+ constructor(moniker: ProviderMoniker);
29
+ }
30
+ export declare class UnknownConnectionError extends Error {
31
+ readonly connectionName: string;
32
+ readonly moniker: ProviderMoniker;
33
+ constructor(moniker: ProviderMoniker, connectionName: string);
34
+ }
35
+ interface ProviderBindingLike {
36
+ connection?: string;
37
+ transport?: string;
38
+ }
21
39
  export interface ResolveProvidersOptions {
22
- /**
23
- * The backings the locator's process holds. If provided, the resolver filters
24
- * out any candidate whose `backings` are not a subset of `availableBackings`
25
- * (with mode compatibility — `read` is satisfied by either `read` or `write`;
26
- * `write` requires `write`). If omitted, no backing-based filtering happens.
27
- */
28
- readonly availableBackings?: readonly BackingNeed[];
29
- /**
30
- * Pin specific monikers to a descriptor id (`ProviderDescriptor.id`). When
31
- * set, only the named implementation is considered for that moniker; tier
32
- * selection is skipped.
33
- */
34
- readonly implementations?: Readonly<Partial<Record<ProviderMoniker, string>>>;
40
+ readonly connections?: Readonly<Record<string, TransportConfig>>;
41
+ readonly providerBindings?: Readonly<Partial<Record<ProviderMoniker, ProviderBindingLike>>>;
35
42
  }
36
43
  /**
37
44
  * Plans which providers to register for a given set of needs.
38
45
  *
39
- * 1. Walk `Capability.implies` from the needs set to fixed point.
40
- * 2. Filter candidates by backing requirements (if `availableBackings` provided).
41
- * 3. Filter remaining candidates by `preconditions(ctx)`.
42
- * 4. Pick the head of `(tier asc, priority desc, descriptor.id asc)` per moniker.
43
- * 5. Toposort selected descriptors using the registry's `implies`.
44
- * 6. Throw `MissingCapabilityError` if any wanted moniker has zero survivors.
46
+ * 1. Fixpoint-expand monikers from selected descriptor `dependencies`.
47
+ * 2. Require `providerBindings[moniker].connection` for every moniker.
48
+ * 3. Filter candidates by bound connection type.
49
+ * 4. Throw when zero or multiple candidates remain.
50
+ * 5. Toposort selected descriptors using `dependencies`.
45
51
  */
46
- export declare function resolveProviders<TCtx extends ResolutionContext>(needs: ReadonlySet<ProviderMoniker>, candidates: readonly ProviderDescriptor<TCtx>[], ctx: TCtx, options?: ResolveProvidersOptions): ResolutionPlan;
52
+ export declare function resolveProviders(needs: ReadonlySet<ProviderMoniker>, candidates: readonly ProviderDescriptor[], options?: ResolveProvidersOptions): ResolutionPlan;
53
+ export {};
47
54
  //# sourceMappingURL=resolveProviders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveProviders.d.ts","sourceRoot":"","sources":["../../../src/capabilities/resolveProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE1E,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAChD,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;gBAEvB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE;CAOjE;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACnD;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;CAC9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,iBAAiB,EAC7D,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EACnC,UAAU,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC/C,GAAG,EAAE,IAAI,EACT,OAAO,GAAE,uBAA4B,GACpC,cAAc,CAWhB"}
1
+ {"version":3,"file":"resolveProviders.d.ts","sourceRoot":"","sources":["../../../src/capabilities/resolveProviders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,mCAAmC,CAAA;AAEvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAChD,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;gBAEvB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE;CAOjE;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;gBAErB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,kBAAkB,EAAE;CAShF;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;gBAErB,OAAO,EAAE,eAAe;CAKrC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;gBAErB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM;CAQ7D;AAED,UAAU,mBAAmB;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;CAC5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EACnC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,OAAO,GAAE,uBAA4B,GACpC,cAAc,CAsBhB"}