@fluidframework/type-factory 2.93.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.
Files changed (64) hide show
  1. package/.mocharc.cjs +11 -0
  2. package/CHANGELOG.md +3 -0
  3. package/LICENSE +21 -0
  4. package/README.md +133 -0
  5. package/alpha.d.ts +11 -0
  6. package/api-extractor/api-extractor-lint-alpha.cjs.json +5 -0
  7. package/api-extractor/api-extractor-lint-alpha.esm.json +5 -0
  8. package/api-extractor/api-extractor-lint-bundle.json +5 -0
  9. package/api-extractor/api-extractor-lint-index.cjs.json +5 -0
  10. package/api-extractor/api-extractor-lint-index.esm.json +5 -0
  11. package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
  12. package/api-extractor/api-extractor-lint-public.esm.json +5 -0
  13. package/api-extractor.json +14 -0
  14. package/api-report/type-factory.alpha.api.md +208 -0
  15. package/api-report/type-factory.beta.api.md +7 -0
  16. package/api-report/type-factory.public.api.md +7 -0
  17. package/dist/alpha.d.ts +57 -0
  18. package/dist/index.d.ts +14 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +21 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/methodBinding.d.ts +101 -0
  23. package/dist/methodBinding.d.ts.map +1 -0
  24. package/dist/methodBinding.js +26 -0
  25. package/dist/methodBinding.js.map +1 -0
  26. package/dist/package.json +4 -0
  27. package/dist/propertyBinding.d.ts +50 -0
  28. package/dist/propertyBinding.d.ts.map +1 -0
  29. package/dist/propertyBinding.js +13 -0
  30. package/dist/propertyBinding.js.map +1 -0
  31. package/dist/public.d.ts +16 -0
  32. package/dist/treeAgentTypes.d.ts +428 -0
  33. package/dist/treeAgentTypes.d.ts.map +1 -0
  34. package/dist/treeAgentTypes.js +218 -0
  35. package/dist/treeAgentTypes.js.map +1 -0
  36. package/eslint.config.mts +43 -0
  37. package/internal.d.ts +11 -0
  38. package/lib/alpha.d.ts +57 -0
  39. package/lib/index.d.ts +14 -0
  40. package/lib/index.d.ts.map +1 -0
  41. package/lib/index.js +13 -0
  42. package/lib/index.js.map +1 -0
  43. package/lib/methodBinding.d.ts +101 -0
  44. package/lib/methodBinding.d.ts.map +1 -0
  45. package/lib/methodBinding.js +22 -0
  46. package/lib/methodBinding.js.map +1 -0
  47. package/lib/propertyBinding.d.ts +50 -0
  48. package/lib/propertyBinding.d.ts.map +1 -0
  49. package/lib/propertyBinding.js +10 -0
  50. package/lib/propertyBinding.js.map +1 -0
  51. package/lib/public.d.ts +16 -0
  52. package/lib/treeAgentTypes.d.ts +428 -0
  53. package/lib/treeAgentTypes.d.ts.map +1 -0
  54. package/lib/treeAgentTypes.js +214 -0
  55. package/lib/treeAgentTypes.js.map +1 -0
  56. package/lib/tsdoc-metadata.json +11 -0
  57. package/package.json +142 -0
  58. package/src/index.ts +57 -0
  59. package/src/methodBinding.ts +139 -0
  60. package/src/propertyBinding.ts +62 -0
  61. package/src/treeAgentTypes.ts +601 -0
  62. package/tsconfig.cjs.json +7 -0
  63. package/tsconfig.json +14 -0
  64. package/tsdoc.json +4 -0
@@ -0,0 +1,101 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { TypeFactoryType } from "./treeAgentTypes.js";
6
+ /**
7
+ * A utility type that extracts the method keys from a given type.
8
+ * @alpha
9
+ */
10
+ export type MethodKeys<T> = {
11
+ [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;
12
+ };
13
+ /**
14
+ * A type that represents a constructor function.
15
+ * @alpha
16
+ */
17
+ export type Ctor<T = any> = new (...args: any[]) => T;
18
+ /**
19
+ * A type that represents a function argument.
20
+ * @alpha
21
+ */
22
+ export type Arg<T extends TypeFactoryType = TypeFactoryType> = readonly [
23
+ name: string,
24
+ type: T
25
+ ];
26
+ /**
27
+ * A utility type that extracts the argument types from a function definition.
28
+ * @alpha
29
+ */
30
+ export type ArgsTuple<T extends readonly Arg[]> = T extends readonly [infer Single extends Arg] ? [Single[1]] : T extends readonly [infer Head extends Arg, ...infer Tail extends readonly Arg[]] ? [Head[1], ...ArgsTuple<Tail>] : never;
31
+ /**
32
+ * A function definition interface that describes the structure of a function.
33
+ * @alpha
34
+ */
35
+ export interface FunctionDef<Args extends readonly Arg[], Return extends TypeFactoryType, Rest extends TypeFactoryType | null = null> {
36
+ /**
37
+ * Optional description of the function.
38
+ */
39
+ description?: string;
40
+ /**
41
+ * The function's parameters.
42
+ */
43
+ args: Args;
44
+ /**
45
+ * Optional rest parameter type.
46
+ */
47
+ rest?: Rest;
48
+ /**
49
+ * The function's return type.
50
+ */
51
+ returns: Return;
52
+ }
53
+ /**
54
+ * A utility function to build a function definition.
55
+ * @alpha
56
+ */
57
+ export declare function buildFunc<const Return extends TypeFactoryType, const Args extends readonly Arg[], const Rest extends TypeFactoryType | null = null>(def: {
58
+ description?: string;
59
+ returns: Return;
60
+ rest?: Rest;
61
+ }, ...args: Args): FunctionDef<Args, Return, Rest>;
62
+ /**
63
+ * An interface for exposing methods of classes to an agent.
64
+ * @alpha
65
+ */
66
+ export interface ExposedMethods {
67
+ /**
68
+ * Expose a method with type factory types.
69
+ */
70
+ exposeMethod<const K extends string & keyof MethodKeys<InstanceType<S>>, S extends Ctor & IExposedMethods, Z extends FunctionDef<readonly Arg[], TypeFactoryType, TypeFactoryType | null>>(constructor: S, methodName: K, tfFunction: Z): void;
71
+ /**
72
+ * Expose a method with type factory types.
73
+ */
74
+ expose<const K extends string & keyof MethodKeys<InstanceType<S>>, S extends Ctor & IExposedMethods, Z extends FunctionDef<readonly Arg[], TypeFactoryType, TypeFactoryType | null>>(constructor: S, methodName: K, tfFunction: Z): void;
75
+ }
76
+ /**
77
+ * A symbol used to expose methods to the LLM.
78
+ * @alpha
79
+ */
80
+ export declare const exposeMethodsSymbol: unique symbol;
81
+ /**
82
+ * An interface that classes should implement to expose their methods to the LLM.
83
+ *
84
+ * @remarks
85
+ * The `getExposedMethods` free function will cause the method here to be called on the class passed to it.
86
+ *
87
+ * @privateremarks
88
+ * Implementing this interface correctly seems tricky?
89
+ * To actually implement it in a way that satisfies TypeScript,
90
+ * classes need to declare both a static version and an instance version of the method
91
+ * (the instance one can just delegate to the static one).
92
+ *
93
+ * @alpha
94
+ */
95
+ export interface IExposedMethods {
96
+ /**
97
+ * Static method that exposes methods of this class to an agent.
98
+ */
99
+ [exposeMethodsSymbol](methods: ExposedMethods): void;
100
+ }
101
+ //# sourceMappingURL=methodBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methodBinding.d.ts","sourceRoot":"","sources":["../src/methodBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.exposeMethodsSymbol = exports.buildFunc = void 0;
8
+ /**
9
+ * A utility function to build a function definition.
10
+ * @alpha
11
+ */
12
+ function buildFunc(def, ...args) {
13
+ return {
14
+ description: def.description,
15
+ returns: def.returns,
16
+ args,
17
+ rest: def.rest,
18
+ };
19
+ }
20
+ exports.buildFunc = buildFunc;
21
+ /**
22
+ * A symbol used to expose methods to the LLM.
23
+ * @alpha
24
+ */
25
+ exports.exposeMethodsSymbol = Symbol("Type factory expose method/symbol");
26
+ //# sourceMappingURL=methodBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methodBinding.js","sourceRoot":"","sources":["../src/methodBinding.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkEH;;;GAGG;AACH,SAAgB,SAAS,CAKxB,GAA2D,EAC3D,GAAG,IAAU;IAEb,OAAO;QACN,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI;KACd,CAAC;AACH,CAAC;AAdD,8BAcC;AA0BD;;;GAGG;AACU,QAAA,mBAAmB,GAAkB,MAAM,CAAC,mCAAmC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { TypeFactoryType } from \"./treeAgentTypes.js\";\n\n/**\n * A utility type that extracts the method keys from a given type.\n * @alpha\n */\nexport type MethodKeys<T> = {\n\t[K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;\n};\n\n/**\n * A type that represents a constructor function.\n * @alpha\n */\nexport type Ctor<T = any> = new (...args: any[]) => T;\n\n/**\n * A type that represents a function argument.\n * @alpha\n */\nexport type Arg<T extends TypeFactoryType = TypeFactoryType> = readonly [\n\tname: string,\n\ttype: T,\n];\n\n/**\n * A utility type that extracts the argument types from a function definition.\n * @alpha\n */\nexport type ArgsTuple<T extends readonly Arg[]> = T extends readonly [infer Single extends Arg]\n\t? [Single[1]]\n\t: T extends readonly [infer Head extends Arg, ...infer Tail extends readonly Arg[]]\n\t\t? [Head[1], ...ArgsTuple<Tail>]\n\t\t: never;\n\n/**\n * A function definition interface that describes the structure of a function.\n * @alpha\n */\nexport interface FunctionDef<\n\tArgs extends readonly Arg[],\n\tReturn extends TypeFactoryType,\n\tRest extends TypeFactoryType | null = null,\n> {\n\t/**\n\t * Optional description of the function.\n\t */\n\tdescription?: string;\n\t/**\n\t * The function's parameters.\n\t */\n\targs: Args;\n\t/**\n\t * Optional rest parameter type.\n\t */\n\trest?: Rest;\n\t/**\n\t * The function's return type.\n\t */\n\treturns: Return;\n}\n\n/**\n * A utility function to build a function definition.\n * @alpha\n */\nexport function buildFunc<\n\tconst Return extends TypeFactoryType,\n\tconst Args extends readonly Arg[],\n\tconst Rest extends TypeFactoryType | null = null,\n>(\n\tdef: { description?: string; returns: Return; rest?: Rest },\n\t...args: Args\n): FunctionDef<Args, Return, Rest> {\n\treturn {\n\t\tdescription: def.description,\n\t\treturns: def.returns,\n\t\targs,\n\t\trest: def.rest,\n\t};\n}\n\n/**\n * An interface for exposing methods of classes to an agent.\n * @alpha\n */\nexport interface ExposedMethods {\n\t/**\n\t * Expose a method with type factory types.\n\t */\n\texposeMethod<\n\t\tconst K extends string & keyof MethodKeys<InstanceType<S>>,\n\t\tS extends Ctor & IExposedMethods,\n\t\tZ extends FunctionDef<readonly Arg[], TypeFactoryType, TypeFactoryType | null>,\n\t>(constructor: S, methodName: K, tfFunction: Z): void;\n\n\t/**\n\t * Expose a method with type factory types.\n\t */\n\texpose<\n\t\tconst K extends string & keyof MethodKeys<InstanceType<S>>,\n\t\tS extends Ctor & IExposedMethods,\n\t\tZ extends FunctionDef<readonly Arg[], TypeFactoryType, TypeFactoryType | null>,\n\t>(constructor: S, methodName: K, tfFunction: Z): void;\n}\n\n/**\n * A symbol used to expose methods to the LLM.\n * @alpha\n */\nexport const exposeMethodsSymbol: unique symbol = Symbol(\"Type factory expose method/symbol\");\n\n/**\n * An interface that classes should implement to expose their methods to the LLM.\n *\n * @remarks\n * The `getExposedMethods` free function will cause the method here to be called on the class passed to it.\n *\n * @privateremarks\n * Implementing this interface correctly seems tricky?\n * To actually implement it in a way that satisfies TypeScript,\n * classes need to declare both a static version and an instance version of the method\n * (the instance one can just delegate to the static one).\n *\n * @alpha\n */\nexport interface IExposedMethods {\n\t/**\n\t * Static method that exposes methods of this class to an agent.\n\t */\n\t[exposeMethodsSymbol](methods: ExposedMethods): void;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "commonjs",
3
+ "sideEffects": false
4
+ }
@@ -0,0 +1,50 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { Ctor } from "./methodBinding.js";
6
+ import type { TypeFactoryType } from "./treeAgentTypes.js";
7
+ /**
8
+ * A symbol used to expose properties to the LLM.
9
+ * @alpha
10
+ */
11
+ export declare const exposePropertiesSymbol: unique symbol;
12
+ /**
13
+ * An interface for exposing properties of classes to an agent.
14
+ * @alpha
15
+ */
16
+ export interface ExposedProperties {
17
+ /**
18
+ * Expose a property with type factory type and metadata.
19
+ */
20
+ exposeProperty<S extends Ctor, K extends string>(constructor: S, name: K, def: {
21
+ schema: TypeFactoryType;
22
+ description?: string;
23
+ readOnly?: boolean;
24
+ }): void;
25
+ /**
26
+ * Expose a property with type factory type (simple form).
27
+ */
28
+ exposeProperty<S extends Ctor, K extends string>(constructor: S, name: K, tfType: TypeFactoryType): void;
29
+ }
30
+ /**
31
+ * An interface that classes should implement to expose their properties to the LLM.
32
+ *
33
+ * @remarks
34
+ * The `getExposedProperties` free function will cause the method here to be called on the class passed to it.
35
+ *
36
+ * @privateremarks
37
+ * Implementing this interface correctly seems tricky?
38
+ * To actually implement it in a way that satisfies TypeScript,
39
+ * classes need to declare both a static version and an instance version of the method
40
+ * (the instance one can just delegate to the static one).
41
+ *
42
+ * @alpha
43
+ */
44
+ export interface IExposedProperties {
45
+ /**
46
+ * Static method that exposes properties of this class to an agent.
47
+ */
48
+ [exposePropertiesSymbol]?(properties: ExposedProperties): void;
49
+ }
50
+ //# sourceMappingURL=propertyBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyBinding.d.ts","sourceRoot":"","sources":["../src/propertyBinding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAO,MAE3C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,MAAM,EAC9C,WAAW,EAAE,CAAC,EACd,IAAI,EAAE,CAAC,EACP,GAAG,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACxE,IAAI,CAAC;IAER;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,MAAM,EAC9C,WAAW,EAAE,CAAC,EACd,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,eAAe,GACrB,IAAI,CAAC;CACR;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/D"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.exposePropertiesSymbol = void 0;
8
+ /**
9
+ * A symbol used to expose properties to the LLM.
10
+ * @alpha
11
+ */
12
+ exports.exposePropertiesSymbol = Symbol("Type factory expose property/symbol");
13
+ //# sourceMappingURL=propertyBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyBinding.js","sourceRoot":"","sources":["../src/propertyBinding.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH;;;GAGG;AACU,QAAA,sBAAsB,GAAkB,MAAM,CAC1D,qCAAqC,CACrC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Ctor } from \"./methodBinding.js\";\nimport type { TypeFactoryType } from \"./treeAgentTypes.js\";\n\n/**\n * A symbol used to expose properties to the LLM.\n * @alpha\n */\nexport const exposePropertiesSymbol: unique symbol = Symbol(\n\t\"Type factory expose property/symbol\",\n);\n\n/**\n * An interface for exposing properties of classes to an agent.\n * @alpha\n */\nexport interface ExposedProperties {\n\t/**\n\t * Expose a property with type factory type and metadata.\n\t */\n\texposeProperty<S extends Ctor, K extends string>(\n\t\tconstructor: S,\n\t\tname: K,\n\t\tdef: { schema: TypeFactoryType; description?: string; readOnly?: boolean },\n\t): void;\n\n\t/**\n\t * Expose a property with type factory type (simple form).\n\t */\n\texposeProperty<S extends Ctor, K extends string>(\n\t\tconstructor: S,\n\t\tname: K,\n\t\ttfType: TypeFactoryType,\n\t): void;\n}\n\n/**\n * An interface that classes should implement to expose their properties to the LLM.\n *\n * @remarks\n * The `getExposedProperties` free function will cause the method here to be called on the class passed to it.\n *\n * @privateremarks\n * Implementing this interface correctly seems tricky?\n * To actually implement it in a way that satisfies TypeScript,\n * classes need to declare both a static version and an instance version of the method\n * (the instance one can just delegate to the static one).\n *\n * @alpha\n */\nexport interface IExposedProperties {\n\t/**\n\t * Static method that exposes properties of this class to an agent.\n\t */\n\t[exposePropertiesSymbol]?(properties: ExposedProperties): void;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ /*
7
+ * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
8
+ * Generated by "flub generate entrypoints --resolutionConditions require --outFileLegacyBeta legacy --outDir ./dist" in @fluid-tools/build-cli.
9
+ */
10
+
11
+ /**
12
+ * Shared types for exposing schema methods and properties to an LLM agent.
13
+ *
14
+ * @packageDocumentation
15
+ */export {}
16
+
@@ -0,0 +1,428 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Type kinds for the type factory type system.
7
+ * @alpha
8
+ */
9
+ export type TypeFactoryTypeKind = "string" | "number" | "boolean" | "void" | "undefined" | "null" | "unknown" | "date" | "promise" | "array" | "object" | "record" | "map" | "tuple" | "union" | "intersection" | "literal" | "optional" | "readonly" | "function" | "instanceof";
10
+ /**
11
+ * Base interface for type factory types.
12
+ * @alpha
13
+ */
14
+ export interface TypeFactoryType {
15
+ /**
16
+ * The kind of type this represents.
17
+ */
18
+ readonly _kind: TypeFactoryTypeKind;
19
+ }
20
+ /**
21
+ * Type guard to check if a value is a type factory type.
22
+ * @alpha
23
+ */
24
+ export declare function isTypeFactoryType(value: unknown): value is TypeFactoryType;
25
+ /**
26
+ * Represents a string type in the type factory system.
27
+ * @alpha
28
+ */
29
+ export interface TypeFactoryString extends TypeFactoryType {
30
+ /**
31
+ * {@inheritDoc TypeFactoryType._kind}
32
+ */
33
+ readonly _kind: "string";
34
+ }
35
+ /**
36
+ * Represents a number type in the type factory system.
37
+ * @alpha
38
+ */
39
+ export interface TypeFactoryNumber extends TypeFactoryType {
40
+ /**
41
+ * {@inheritDoc TypeFactoryType._kind}
42
+ */
43
+ readonly _kind: "number";
44
+ }
45
+ /**
46
+ * Represents a boolean type in the type factory system.
47
+ * @alpha
48
+ */
49
+ export interface TypeFactoryBoolean extends TypeFactoryType {
50
+ /**
51
+ * {@inheritDoc TypeFactoryType._kind}
52
+ */
53
+ readonly _kind: "boolean";
54
+ }
55
+ /**
56
+ * Represents a Date type in the type factory system.
57
+ * @alpha
58
+ */
59
+ export interface TypeFactoryDate extends TypeFactoryType {
60
+ /**
61
+ * {@inheritDoc TypeFactoryType._kind}
62
+ */
63
+ readonly _kind: "date";
64
+ }
65
+ /**
66
+ * Represents a void type in the type factory system.
67
+ * @alpha
68
+ */
69
+ export interface TypeFactoryVoid extends TypeFactoryType {
70
+ /**
71
+ * {@inheritDoc TypeFactoryType._kind}
72
+ */
73
+ readonly _kind: "void";
74
+ }
75
+ /**
76
+ * Represents an undefined type in the type factory system.
77
+ * @alpha
78
+ */
79
+ export interface TypeFactoryUndefined extends TypeFactoryType {
80
+ /**
81
+ * {@inheritDoc TypeFactoryType._kind}
82
+ */
83
+ readonly _kind: "undefined";
84
+ }
85
+ /**
86
+ * Represents a null type in the type factory system.
87
+ * @alpha
88
+ */
89
+ export interface TypeFactoryNull extends TypeFactoryType {
90
+ /**
91
+ * {@inheritDoc TypeFactoryType._kind}
92
+ */
93
+ readonly _kind: "null";
94
+ }
95
+ /**
96
+ * Represents an unknown type in the type factory system.
97
+ * @alpha
98
+ */
99
+ export interface TypeFactoryUnknown extends TypeFactoryType {
100
+ /**
101
+ * {@inheritDoc TypeFactoryType._kind}
102
+ */
103
+ readonly _kind: "unknown";
104
+ }
105
+ /**
106
+ * Represents an array type in the type factory system.
107
+ * @alpha
108
+ */
109
+ export interface TypeFactoryArray extends TypeFactoryType {
110
+ /**
111
+ * {@inheritDoc TypeFactoryType._kind}
112
+ */
113
+ readonly _kind: "array";
114
+ /**
115
+ * The type of elements in the array.
116
+ */
117
+ readonly element: TypeFactoryType;
118
+ }
119
+ /**
120
+ * Represents a Promise type in the type factory system.
121
+ * @alpha
122
+ */
123
+ export interface TypeFactoryPromise extends TypeFactoryType {
124
+ /**
125
+ * {@inheritDoc TypeFactoryType._kind}
126
+ */
127
+ readonly _kind: "promise";
128
+ /**
129
+ * The type that the Promise resolves to.
130
+ */
131
+ readonly innerType: TypeFactoryType;
132
+ }
133
+ /**
134
+ * Represents an object type with a fixed shape in the type factory system.
135
+ * @alpha
136
+ */
137
+ export interface TypeFactoryObject extends TypeFactoryType {
138
+ /**
139
+ * {@inheritDoc TypeFactoryType._kind}
140
+ */
141
+ readonly _kind: "object";
142
+ /**
143
+ * The shape of the object, mapping property names to their types.
144
+ */
145
+ readonly shape: Record<string, TypeFactoryType>;
146
+ }
147
+ /**
148
+ * Represents a record type (index signature) in the type factory system.
149
+ * @alpha
150
+ */
151
+ export interface TypeFactoryRecord extends TypeFactoryType {
152
+ /**
153
+ * {@inheritDoc TypeFactoryType._kind}
154
+ */
155
+ readonly _kind: "record";
156
+ /**
157
+ * The type of the record's keys.
158
+ */
159
+ readonly keyType: TypeFactoryType;
160
+ /**
161
+ * The type of the record's values.
162
+ */
163
+ readonly valueType: TypeFactoryType;
164
+ }
165
+ /**
166
+ * Represents a Map type in the type factory system.
167
+ * @alpha
168
+ */
169
+ export interface TypeFactoryMap extends TypeFactoryType {
170
+ /**
171
+ * {@inheritDoc TypeFactoryType._kind}
172
+ */
173
+ readonly _kind: "map";
174
+ /**
175
+ * The type of the map's keys.
176
+ */
177
+ readonly keyType: TypeFactoryType;
178
+ /**
179
+ * The type of the map's values.
180
+ */
181
+ readonly valueType: TypeFactoryType;
182
+ }
183
+ /**
184
+ * Represents a tuple type with fixed-length items and optional rest elements in the type factory system.
185
+ * @alpha
186
+ */
187
+ export interface TypeFactoryTuple extends TypeFactoryType {
188
+ /**
189
+ * {@inheritDoc TypeFactoryType._kind}
190
+ */
191
+ readonly _kind: "tuple";
192
+ /**
193
+ * The fixed-length items in the tuple.
194
+ */
195
+ readonly items: readonly TypeFactoryType[];
196
+ /**
197
+ * Optional rest element type for variable-length tuples.
198
+ */
199
+ readonly rest?: TypeFactoryType;
200
+ }
201
+ /**
202
+ * Represents a union type in the type factory system.
203
+ * @alpha
204
+ */
205
+ export interface TypeFactoryUnion extends TypeFactoryType {
206
+ /**
207
+ * {@inheritDoc TypeFactoryType._kind}
208
+ */
209
+ readonly _kind: "union";
210
+ /**
211
+ * The possible types in the union.
212
+ */
213
+ readonly options: readonly TypeFactoryType[];
214
+ }
215
+ /**
216
+ * Represents an intersection type in the type factory system.
217
+ * @alpha
218
+ */
219
+ export interface TypeFactoryIntersection extends TypeFactoryType {
220
+ /**
221
+ * {@inheritDoc TypeFactoryType._kind}
222
+ */
223
+ readonly _kind: "intersection";
224
+ /**
225
+ * The types to intersect.
226
+ */
227
+ readonly types: readonly TypeFactoryType[];
228
+ }
229
+ /**
230
+ * Represents a literal type (specific string, number, or boolean value) in the type factory system.
231
+ * @alpha
232
+ */
233
+ export interface TypeFactoryLiteral extends TypeFactoryType {
234
+ /**
235
+ * {@inheritDoc TypeFactoryType._kind}
236
+ */
237
+ readonly _kind: "literal";
238
+ /**
239
+ * The specific literal value.
240
+ */
241
+ readonly value: string | number | boolean;
242
+ }
243
+ /**
244
+ * Represents an optional type modifier in the type factory system.
245
+ * @alpha
246
+ */
247
+ export interface TypeFactoryOptional extends TypeFactoryType {
248
+ /**
249
+ * {@inheritDoc TypeFactoryType._kind}
250
+ */
251
+ readonly _kind: "optional";
252
+ /**
253
+ * The inner type that is optional.
254
+ */
255
+ readonly innerType: TypeFactoryType;
256
+ }
257
+ /**
258
+ * Represents a readonly type modifier in the type factory system.
259
+ * @alpha
260
+ */
261
+ export interface TypeFactoryReadonly extends TypeFactoryType {
262
+ /**
263
+ * {@inheritDoc TypeFactoryType._kind}
264
+ */
265
+ readonly _kind: "readonly";
266
+ /**
267
+ * The inner type that is readonly.
268
+ */
269
+ readonly innerType: TypeFactoryType;
270
+ }
271
+ /**
272
+ * Represents a function parameter as a tuple of [name, type].
273
+ * @alpha
274
+ */
275
+ export type TypeFactoryFunctionParameter = readonly [name: string, type: TypeFactoryType];
276
+ /**
277
+ * Represents a function type in the type factory system.
278
+ * @alpha
279
+ */
280
+ export interface TypeFactoryFunction extends TypeFactoryType {
281
+ /**
282
+ * {@inheritDoc TypeFactoryType._kind}
283
+ */
284
+ readonly _kind: "function";
285
+ /**
286
+ * The function parameters.
287
+ */
288
+ readonly parameters: readonly TypeFactoryFunctionParameter[];
289
+ /**
290
+ * The function return type.
291
+ */
292
+ readonly returnType: TypeFactoryType;
293
+ /**
294
+ * Optional rest parameter for variable-length argument lists.
295
+ */
296
+ readonly restParameter?: TypeFactoryFunctionParameter;
297
+ }
298
+ /**
299
+ * Represents an instanceof type that references a class in the type factory system.
300
+ * @alpha
301
+ */
302
+ export interface TypeFactoryInstanceOf extends TypeFactoryType {
303
+ /**
304
+ * The kind of type this represents.
305
+ */
306
+ readonly _kind: "instanceof";
307
+ /**
308
+ * The constructor to reference.
309
+ */
310
+ readonly constructor: new (...args: any[]) => unknown;
311
+ }
312
+ /**
313
+ * Namespace containing type factory functions for building type definitions
314
+ * that describe method signatures and property types to an LLM agent.
315
+ *
316
+ * @internal
317
+ */
318
+ export declare const typeFactory: {
319
+ /**
320
+ * Create a string type.
321
+ * @alpha
322
+ */
323
+ string(): TypeFactoryString;
324
+ /**
325
+ * Create a number type.
326
+ * @alpha
327
+ */
328
+ number(): TypeFactoryNumber;
329
+ /**
330
+ * Create a boolean type.
331
+ * @alpha
332
+ */
333
+ boolean(): TypeFactoryBoolean;
334
+ /**
335
+ * Create a Date type.
336
+ * @alpha
337
+ */
338
+ date(): TypeFactoryDate;
339
+ /**
340
+ * Create a void type.
341
+ * @alpha
342
+ */
343
+ void(): TypeFactoryVoid;
344
+ /**
345
+ * Create an undefined type.
346
+ * @alpha
347
+ */
348
+ undefined(): TypeFactoryUndefined;
349
+ /**
350
+ * Create a null type.
351
+ * @alpha
352
+ */
353
+ null(): TypeFactoryNull;
354
+ /**
355
+ * Create an unknown type.
356
+ * @alpha
357
+ */
358
+ unknown(): TypeFactoryUnknown;
359
+ /**
360
+ * Create an array type.
361
+ * @alpha
362
+ */
363
+ array(element: TypeFactoryType): TypeFactoryArray;
364
+ /**
365
+ * Create a Promise type.
366
+ * @alpha
367
+ */
368
+ promise(innerType: TypeFactoryType): TypeFactoryPromise;
369
+ /**
370
+ * Create an object type.
371
+ * @alpha
372
+ */
373
+ object(shape: Record<string, TypeFactoryType>): TypeFactoryObject;
374
+ /**
375
+ * Create a record type.
376
+ * @alpha
377
+ */
378
+ record(keyType: TypeFactoryType, valueType: TypeFactoryType): TypeFactoryRecord;
379
+ /**
380
+ * Create a map type.
381
+ * @alpha
382
+ */
383
+ map(keyType: TypeFactoryType, valueType: TypeFactoryType): TypeFactoryMap;
384
+ /**
385
+ * Create a tuple type.
386
+ * @alpha
387
+ */
388
+ tuple(items: readonly TypeFactoryType[], rest?: TypeFactoryType): TypeFactoryTuple;
389
+ /**
390
+ * Create a union type.
391
+ * @alpha
392
+ */
393
+ union(options: readonly TypeFactoryType[]): TypeFactoryUnion;
394
+ /**
395
+ * Create an intersection type.
396
+ * @alpha
397
+ */
398
+ intersection(types: readonly TypeFactoryType[]): TypeFactoryIntersection;
399
+ /**
400
+ * Create a literal type.
401
+ * @alpha
402
+ */
403
+ literal(value: string | number | boolean): TypeFactoryLiteral;
404
+ /**
405
+ * Create an optional type.
406
+ * @alpha
407
+ */
408
+ optional(innerType: TypeFactoryType): TypeFactoryOptional;
409
+ /**
410
+ * Create a readonly type.
411
+ * @alpha
412
+ */
413
+ readonly(innerType: TypeFactoryType): TypeFactoryReadonly;
414
+ /**
415
+ * Create a function type.
416
+ * @alpha
417
+ */
418
+ function(parameters: readonly TypeFactoryFunctionParameter[], returnType: TypeFactoryType, restParameter?: TypeFactoryFunctionParameter): TypeFactoryFunction;
419
+ /**
420
+ * Create an instanceOf type for a class.
421
+ * @remarks
422
+ * This is an untyped version. `@fluidframework/tree-agent` re-exports a
423
+ * narrower override that constrains the constructor to `ObjectNodeSchema`.
424
+ * @internal
425
+ */
426
+ instanceOf(constructor: new (...args: any[]) => unknown): TypeFactoryInstanceOf;
427
+ };
428
+ //# sourceMappingURL=treeAgentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeAgentTypes.d.ts","sourceRoot":"","sources":["../src/treeAgentTypes.ts"],"names":[],"mappings":"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"}