@takeshape/schema 10.52.5 → 11.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 (89) hide show
  1. package/dist/migration/index.d.ts +1 -0
  2. package/dist/migration/index.d.ts.map +1 -1
  3. package/dist/migration/index.js +3 -1
  4. package/dist/migration/to/v3.46.0.d.ts +5 -0
  5. package/dist/migration/to/v3.46.0.d.ts.map +1 -0
  6. package/dist/migration/to/v3.46.0.js +37 -0
  7. package/dist/project-schema/index.d.ts +4 -1
  8. package/dist/project-schema/index.d.ts.map +1 -1
  9. package/dist/project-schema/index.js +17 -3
  10. package/dist/project-schema/latest.d.ts +56 -3
  11. package/dist/project-schema/latest.d.ts.map +1 -1
  12. package/dist/project-schema/migrate.d.ts.map +1 -1
  13. package/dist/project-schema/migrate.js +3 -0
  14. package/dist/project-schema/v3.46.0.d.ts +1704 -0
  15. package/dist/project-schema/v3.46.0.d.ts.map +1 -0
  16. package/dist/project-schema/v3.46.0.js +5 -0
  17. package/dist/refs.d.ts.map +1 -1
  18. package/dist/refs.js +2 -2
  19. package/dist/schemas/index.d.ts +2 -2
  20. package/dist/schemas/index.d.ts.map +1 -1
  21. package/dist/schemas/index.js +5 -4
  22. package/dist/schemas/index.ts +4 -2
  23. package/dist/schemas/project-schema/latest.json +81 -4
  24. package/dist/schemas/project-schema/v3.46.0.json +3565 -0
  25. package/dist/schemas/project-schema.json +3 -0
  26. package/dist/types/utils.d.ts +5 -1
  27. package/dist/types/utils.d.ts.map +1 -1
  28. package/dist/types/utils.js +17 -0
  29. package/dist/validate.d.ts.map +1 -1
  30. package/dist/validate.js +32 -2
  31. package/es/migration/index.js +3 -1
  32. package/es/migration/to/v3.46.0.js +31 -0
  33. package/es/project-schema/index.js +3 -1
  34. package/es/project-schema/migrate.js +4 -1
  35. package/es/project-schema/v3.46.0.js +1 -0
  36. package/es/refs.js +2 -2
  37. package/es/schemas/index.js +4 -3
  38. package/es/schemas/index.ts +4 -2
  39. package/es/schemas/project-schema/latest.json +81 -4
  40. package/es/schemas/project-schema/v3.46.0.json +3565 -0
  41. package/es/schemas/project-schema.json +3 -0
  42. package/es/types/utils.js +13 -0
  43. package/es/validate.js +33 -3
  44. package/examples/latest/all-fields-shapes-inline.json +1 -1
  45. package/examples/latest/all-fields-shapes.json +1 -1
  46. package/examples/latest/betzino.json +1 -1
  47. package/examples/latest/blog-schema.json +1 -1
  48. package/examples/latest/brewery-schema.json +1 -1
  49. package/examples/latest/clear-cache-schema.json +1 -1
  50. package/examples/latest/complex-project-schema.json +1 -1
  51. package/examples/latest/complex-schema.json +1 -1
  52. package/examples/latest/edit-schema.json +1 -1
  53. package/examples/latest/fabric-ecommerce.json +1 -1
  54. package/examples/latest/frank-and-fred-schema.json +1 -1
  55. package/examples/latest/klirr-schema.json +1 -1
  56. package/examples/latest/massive-schema.json +1 -1
  57. package/examples/latest/mill-components-schema.json +1 -1
  58. package/examples/latest/nested-shape-arrays.json +1 -1
  59. package/examples/latest/one-earth.json +1 -1
  60. package/examples/latest/pet-oneof-array.json +1 -1
  61. package/examples/latest/post-schema.json +1 -1
  62. package/examples/latest/pruned-shopify-product-schema.json +1 -1
  63. package/examples/latest/rag-example.json +2 -2
  64. package/examples/latest/real-world-schema.json +1 -1
  65. package/examples/latest/recursive-repeater-schema.json +1 -1
  66. package/examples/latest/recursive-schema.json +1 -1
  67. package/examples/latest/rick-and-morty-ast.json +1 -1
  68. package/examples/latest/rick-and-morty-graphql.json +1 -1
  69. package/examples/latest/rick-and-morty-rest.json +1 -1
  70. package/examples/latest/rick-and-morty-with-indexing.json +1 -1
  71. package/examples/latest/schema-where-filter.json +1 -1
  72. package/examples/latest/schema-with-repeater-draftjs.json +1 -1
  73. package/examples/latest/schema-with-rick-and-morty.json +1 -1
  74. package/examples/latest/shape-books-v3_2_0.json +1 -1
  75. package/examples/latest/shape-books.json +1 -1
  76. package/examples/latest/shape-editor-schema-edited.json +1 -1
  77. package/examples/latest/shape-editor-schema-initial.json +1 -1
  78. package/examples/latest/shapedb-crud-every-prop-type.json +1 -1
  79. package/examples/latest/shopify-lookbook.json +1 -1
  80. package/examples/latest/shopify-product-2022-07.json +1 -1
  81. package/examples/latest/shopify-product-2023-04.json +1 -1
  82. package/examples/latest/shopify-store-with-widget.json +1 -1
  83. package/examples/latest/stripe-product-runtime-schema.json +1 -1
  84. package/examples/latest/stripe-starter-resolved.json +1 -1
  85. package/examples/latest/user-schema-no-required.json +1 -1
  86. package/examples/latest/user-schema-with-defaults.json +1 -1
  87. package/examples/latest/valvoline-ai-demo.json +2 -2
  88. package/examples/latest/vector-search-schema.json +1 -1
  89. package/package.json +6 -6
@@ -165,6 +165,9 @@
165
165
  {
166
166
  "$ref": "https://schema.takeshape.io/project-schema/v3.45.0#"
167
167
  },
168
+ {
169
+ "$ref": "https://schema.takeshape.io/project-schema/v3.46.0#"
170
+ },
168
171
  {
169
172
  "$ref": "https://schema.takeshape.io/project-schema/v4.0.0#"
170
173
  }
@@ -1,5 +1,5 @@
1
1
  import type { Maybe } from '@takeshape/util';
2
- import type { ProjectSchemaJSON, DirectiveMappingArray, DirectiveMappingMap, DirectiveConfig, ParameterSerializeOptions, ParameterSerializeContentOptions, ParameterSerializeStyleOptions, BasicResolver, ComposeResolver, GraphqlResolver, TakeshapeResolver, ShapedbResolver, RestResolver, AwsLambdaResolver, UtilResolver, ObjectSchema, ReturnShapeArraySchema, ShapeSchemaEnum, RefSchema, RefSchemaLegacy, PropertySchema, AnyServiceConfig, ServiceAuthentication, BearerAuthentication, BasicAuthentication, OAuth2Authentication, OAuth2BearerAuthentication, SearchParamsAuthentication, CustomAuthentication, ParameterOp, ParameterOpNested, ParameterOpMapping, ParameterOpValue, ParameterOpOp, ParameterSerializeStyleOptionsForSearchParams, ParameterSerializeStyleOptionsForPathParams, OneOfSchema, AllOfSchema, ExtendsSchema, ServiceResolver, ReturnShape, ShapeMap, ShapeJSON } from '../project-schema';
2
+ import { type ProjectSchemaJSON, type DirectiveMappingArray, type DirectiveMappingMap, type DirectiveConfig, type ParameterSerializeOptions, type ParameterSerializeContentOptions, type ParameterSerializeStyleOptions, type BasicResolver, type ComposeResolver, type GraphqlResolver, type TakeshapeResolver, type ShapedbResolver, type RestResolver, type AwsLambdaResolver, type UtilResolver, type ObjectSchema, type ReturnShapeArraySchema, type ShapeSchemaEnum, type RefSchema, type RefSchemaLegacy, type PropertySchema, type AnyServiceConfig, type ServiceAuthentication, type BearerAuthentication, type BasicAuthentication, type OAuth2Authentication, type OAuth2BearerAuthentication, type SearchParamsAuthentication, type CustomAuthentication, type ParameterOp, type ParameterOpNested, type ParameterOpMapping, type ParameterOpValue, type ParameterOpOp, type ParameterSerializeStyleOptionsForSearchParams, type ParameterSerializeStyleOptionsForPathParams, type OneOfSchema, type AllOfSchema, type ExtendsSchema, type ServiceResolver, type ReturnShape, type ShapeMap, type ShapeJSON, type AIGenerateTextResolver, type AIResolverName, type Resolver } from '../project-schema';
3
3
  import { ArgsType, RefType } from './types';
4
4
  import type { ShopifyServiceConfig, RESTServiceConfig, GraphQLServiceConfig, OpenAPIServiceConfig, EncryptedServiceConfig, SchemaWithArgs, SchemaWithRef, ServiceConfigWithOAuth2Authentication, ServiceConfigWithCustomAuthentication, LatestProjectSchemaWithServices, PropertySchemaWithRelationship, CachedShape, MeshShape } from './types';
5
5
  /** Resolver Type Utils **/
@@ -15,7 +15,11 @@ export declare function isGraphqlResolver(resolver: unknown): resolver is Graphq
15
15
  export declare function isRestResolver(resolver: unknown): resolver is RestResolver;
16
16
  export declare function isAwsLambdaResolver(resolver: unknown): resolver is AwsLambdaResolver;
17
17
  export declare function isUtilResolver(resolver: unknown): resolver is UtilResolver;
18
+ export declare const aiResolverNames: AIResolverName[];
19
+ export declare function isAIResolverName(name: string | undefined): name is AIResolverName;
20
+ export declare function isAIGenerateTextResolver(resolver: unknown): resolver is AIGenerateTextResolver;
18
21
  export declare function isProjectSchemaWithServices(schema: ProjectSchemaJSON): schema is LatestProjectSchemaWithServices;
22
+ export declare function containsResolver(resolver: Resolver, predicate: (resolver: BasicResolver) => boolean): boolean;
19
23
  /** Directive Mapping Utils **/
20
24
  /**
21
25
  * Determine whether the ambiguous Directive structure is a DirectiveMappingMap
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.aiResolverNames = void 0;
7
+ exports.containsResolver = containsResolver;
6
8
  exports.getArgsType = void 0;
7
9
  exports.getCachedShapeMap = getCachedShapeMap;
8
10
  exports.getRefType = void 0;
11
+ exports.isAIGenerateTextResolver = isAIGenerateTextResolver;
12
+ exports.isAIResolverName = isAIResolverName;
9
13
  exports.isAllOfSchema = isAllOfSchema;
10
14
  exports.isAnyServiceConfig = isAnyServiceConfig;
11
15
  exports.isArraySchema = isArraySchema;
@@ -107,9 +111,22 @@ function isAwsLambdaResolver(resolver) {
107
111
  function isUtilResolver(resolver) {
108
112
  return isBasicResolver(resolver) && utilResolver.properties.name.enum.includes(resolver.name);
109
113
  }
114
+ const aiResolverNames = exports.aiResolverNames = ['ai:generateText', 'ai:chat'];
115
+ function isAIResolverName(name) {
116
+ return name ? aiResolverNames.includes(name) : false;
117
+ }
118
+ function isAIGenerateTextResolver(resolver) {
119
+ return isBasicResolver(resolver) && isAIResolverName(resolver.name);
120
+ }
110
121
  function isProjectSchemaWithServices(schema) {
111
122
  return !(0, _isUndefined.default)(schema.services);
112
123
  }
124
+ function containsResolver(resolver, predicate) {
125
+ if (isBasicResolver(resolver)) {
126
+ return predicate(resolver);
127
+ }
128
+ return Boolean(resolver.compose.find(resolver => containsResolver(resolver, predicate)));
129
+ }
113
130
 
114
131
  /** Directive Mapping Utils **/
115
132
 
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAC,MAAM,KAAK,CAAC;AAGvD,OAAO,EAAwB,KAAK,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAKxF,OAAO,EAEL,KAAK,YAAY,EAKlB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AA4B3C,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAelB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAC,mBAAmB,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAM1D,eAAO,MAAM,iBAAiB,aAAiE,CAAC;AA+7BhG,MAAM,MAAM,sBAAsB,GAC9B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,GAC9D;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CAAC,CAAC;AAE3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,yBAAyB,CAuBzE;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,sBAAsB,CAAC;CACxF,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG;IAClC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,qBAAqB,CAAC;AAE1B,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAmHrF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,qBAA0B,GAAG,sBAAsB,CAW9G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgC5G;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAgB7E;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAQpE;AAgBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAQrE;AAED,MAAM,MAAM,mCAAmC,GAC3C;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,GAC7D;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CAAC,CAAC;AAE3E;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,mCAAmC,CAIrG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB,CAQxF"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
package/dist/validate.js CHANGED
@@ -240,6 +240,36 @@ function validateResolver(projectSchema, basePath, baseResolver) {
240
240
  pushErrors(errors, validateAITGuardrail(resolver.guardrails[i], path.concat(['guardrails', i])));
241
241
  }
242
242
  }
243
+ const {
244
+ toolChoice
245
+ } = resolver.options ?? {};
246
+ if (toolChoice === 'required') {
247
+ if (!resolver.tools?.length) {
248
+ errors.push({
249
+ type: 'notFound',
250
+ path: path.concat(['options', 'toolChoice']),
251
+ message: `Must have at least one tool configured to specify "required"`
252
+ });
253
+ }
254
+ } else if (toolChoice && toolChoice !== 'auto' && toolChoice !== 'none') {
255
+ const parsed = (0, _refs.parsePropertyRef)(toolChoice);
256
+ if (parsed) {
257
+ const matchingTool = resolver.tools?.find(tool => (0, _isEqual.default)(parsed, (0, _refs.parsePropertyRef)((0, _util2.getToolRef)(tool))));
258
+ if (!matchingTool) {
259
+ errors.push({
260
+ type: 'notFound',
261
+ path: path.concat(['options', 'toolChoice']),
262
+ message: `Missing tool "${toolChoice}" must be specified in "tools" array`
263
+ });
264
+ }
265
+ } else {
266
+ errors.push({
267
+ type: 'conflict',
268
+ path: path.concat(['options', 'toolChoice']),
269
+ message: `Unable to parse property ref "${toolChoice}"`
270
+ });
271
+ }
272
+ }
243
273
  };
244
274
  const getNamespace = (0, _refs.createGetNamespace)(projectSchema);
245
275
  for (const [resolver, path] of enumerateBasicResolvers(baseResolver, basePath)) {
@@ -265,7 +295,7 @@ function validateResolver(projectSchema, basePath, baseResolver) {
265
295
  }
266
296
  if (resolver.name === 'delegate') {
267
297
  pushErrors(errors, validateDeletgateResolver(resolver, path));
268
- } else if (resolver.name === 'ai:generateText') {
298
+ } else if ((0, _utils.isAIGenerateTextResolver)(resolver)) {
269
299
  validateAIGenerateTextResolver(resolver, path);
270
300
  }
271
301
  } else {
@@ -337,7 +367,7 @@ async function validateResolverReferences(context, projectSchema, basePath, base
337
367
  message: `Missing resolver config at property ref "${resolver.to}"`
338
368
  });
339
369
  }
340
- } else if (resolver.name === 'ai:generateText') {
370
+ } else if ((0, _utils.isAIGenerateTextResolver)(resolver)) {
341
371
  if (resolver.tools) {
342
372
  await (0, _pMap.default)(resolver.tools, async (tool, i) => {
343
373
  const toolRef = (0, _util2.getToolRef)(tool);
@@ -51,6 +51,7 @@ import migrateToV3_42_0 from './to/v3.42.0';
51
51
  import migrateToV3_43_0 from './to/v3.43.0';
52
52
  import migrateToV3_44_0 from './to/v3.44.0';
53
53
  import migrateToV3_45_0 from './to/v3.45.0';
54
+ import migrateToV3_46_0 from './to/v3.46.0';
54
55
  export const migrateTo = {
55
56
  'v3.0.0': migrateToV3_0_0,
56
57
  'v3.1.0': migrateToV3_1_0,
@@ -104,7 +105,8 @@ export const migrateTo = {
104
105
  'v3.42.0': migrateToV3_42_0,
105
106
  'v3.43.0': migrateToV3_43_0,
106
107
  'v3.44.0': migrateToV3_44_0,
107
- 'v3.45.0': migrateToV3_45_0
108
+ 'v3.45.0': migrateToV3_45_0,
109
+ 'v3.46.0': migrateToV3_46_0
108
110
  };
109
111
  export * from './utils';
110
112
  export const listTypePrefix = 'PaginatedList';
@@ -0,0 +1,31 @@
1
+ import { isRecord, visit } from '@takeshape/util';
2
+ // copied in case we update these in the latest version
3
+ function isBasicResolver(resolver) {
4
+ return isRecord(resolver) && typeof resolver.name === 'string';
5
+ }
6
+ function isComposeResolver(resolver) {
7
+ return Boolean(isRecord(resolver) && Array.isArray(resolver.compose) && resolver.compose.length && resolver.compose.every(isBasicResolver));
8
+ }
9
+ function renameResolver(resolver) {
10
+ // Replace ai:generateText with ai:chat unless history was disabled
11
+ if (resolver.name === 'ai:generateText' && (resolver.options?.history ?? true)) {
12
+ resolver.name = 'ai:chat';
13
+ }
14
+ }
15
+ const migrate = async (_, projectSchema) => {
16
+ /**
17
+ * Function will visit each resolver in the schema and mutate them.
18
+ */
19
+ visit(projectSchema, ['resolver', '@resolver'], maybeResolver => {
20
+ if (isComposeResolver(maybeResolver)) {
21
+ maybeResolver.compose.forEach(renameResolver);
22
+ } else if (isBasicResolver(maybeResolver)) {
23
+ renameResolver(maybeResolver);
24
+ }
25
+ });
26
+ return {
27
+ ...projectSchema,
28
+ schemaVersion: '3.46.0'
29
+ };
30
+ };
31
+ export default migrate;
@@ -54,6 +54,7 @@ export * from './v3.42.0';
54
54
  export * from './v3.43.0';
55
55
  export * from './v3.44.0';
56
56
  export * from './v3.45.0';
57
+ export * from './v3.46.0';
57
58
  export * from './v4.0.0';
58
59
  // Schema type utilities
59
60
  function createVersionPredicate(expectedVersion) {
@@ -124,5 +125,6 @@ export const isProjectSchemaJSONV3_42_0 = createVersionPredicate('3.42.0');
124
125
  export const isProjectSchemaJSONV3_43_0 = createVersionPredicate('3.43.0');
125
126
  export const isProjectSchemaJSONV3_44_0 = createVersionPredicate('3.44.0');
126
127
  export const isProjectSchemaJSONV3_45_0 = createVersionPredicate('3.45.0');
127
- export const isLatestProjectSchemaJSON = createVersionPredicate('3.45.0');
128
+ export const isProjectSchemaJSONV3_46_0 = createVersionPredicate('3.46.0');
129
+ export const isLatestProjectSchemaJSON = createVersionPredicate('3.46.0');
128
130
  export const isProjectSchemaJSONV4_0_0 = createVersionPredicate('4.0.0');
@@ -1,7 +1,7 @@
1
1
  // This file is generated by "pnpm json2ts"
2
2
 
3
3
  import { migrateTo } from '../migration';
4
- import { isProjectSchemaJSONV1_0_0, isProjectSchemaJSONV3_0_0, isProjectSchemaJSONV3_1_0, isProjectSchemaJSONV3_2_0, isProjectSchemaJSONV3_3_0, isProjectSchemaJSONV3_4_0, isProjectSchemaJSONV3_5_0, isProjectSchemaJSONV3_5_1, isProjectSchemaJSONV3_6_0, isProjectSchemaJSONV3_7_0, isProjectSchemaJSONV3_8_0, isProjectSchemaJSONV3_9_0, isProjectSchemaJSONV3_10_0, isProjectSchemaJSONV3_11_0, isProjectSchemaJSONV3_12_0, isProjectSchemaJSONV3_12_1, isProjectSchemaJSONV3_12_2, isProjectSchemaJSONV3_12_3, isProjectSchemaJSONV3_13_0, isProjectSchemaJSONV3_14_0, isProjectSchemaJSONV3_15_0, isProjectSchemaJSONV3_16_0, isProjectSchemaJSONV3_17_0, isProjectSchemaJSONV3_17_1, isProjectSchemaJSONV3_18_0, isProjectSchemaJSONV3_18_1, isProjectSchemaJSONV3_18_2, isProjectSchemaJSONV3_19_0, isProjectSchemaJSONV3_20_0, isProjectSchemaJSONV3_21_0, isProjectSchemaJSONV3_22_0, isProjectSchemaJSONV3_23_0, isProjectSchemaJSONV3_24_0, isProjectSchemaJSONV3_25_0, isProjectSchemaJSONV3_26_0, isProjectSchemaJSONV3_27_0, isProjectSchemaJSONV3_28_0, isProjectSchemaJSONV3_29_0, isProjectSchemaJSONV3_30_0, isProjectSchemaJSONV3_31_0, isProjectSchemaJSONV3_32_0, isProjectSchemaJSONV3_33_0, isProjectSchemaJSONV3_34_0, isProjectSchemaJSONV3_35_0, isProjectSchemaJSONV3_36_0, isProjectSchemaJSONV3_37_0, isProjectSchemaJSONV3_38_0, isProjectSchemaJSONV3_39_0, isProjectSchemaJSONV3_40_0, isProjectSchemaJSONV3_41_0, isProjectSchemaJSONV3_42_0, isProjectSchemaJSONV3_43_0, isProjectSchemaJSONV3_44_0, isProjectSchemaJSONV4_0_0, isLatestProjectSchemaJSON } from './index';
4
+ import { isProjectSchemaJSONV1_0_0, isProjectSchemaJSONV3_0_0, isProjectSchemaJSONV3_1_0, isProjectSchemaJSONV3_2_0, isProjectSchemaJSONV3_3_0, isProjectSchemaJSONV3_4_0, isProjectSchemaJSONV3_5_0, isProjectSchemaJSONV3_5_1, isProjectSchemaJSONV3_6_0, isProjectSchemaJSONV3_7_0, isProjectSchemaJSONV3_8_0, isProjectSchemaJSONV3_9_0, isProjectSchemaJSONV3_10_0, isProjectSchemaJSONV3_11_0, isProjectSchemaJSONV3_12_0, isProjectSchemaJSONV3_12_1, isProjectSchemaJSONV3_12_2, isProjectSchemaJSONV3_12_3, isProjectSchemaJSONV3_13_0, isProjectSchemaJSONV3_14_0, isProjectSchemaJSONV3_15_0, isProjectSchemaJSONV3_16_0, isProjectSchemaJSONV3_17_0, isProjectSchemaJSONV3_17_1, isProjectSchemaJSONV3_18_0, isProjectSchemaJSONV3_18_1, isProjectSchemaJSONV3_18_2, isProjectSchemaJSONV3_19_0, isProjectSchemaJSONV3_20_0, isProjectSchemaJSONV3_21_0, isProjectSchemaJSONV3_22_0, isProjectSchemaJSONV3_23_0, isProjectSchemaJSONV3_24_0, isProjectSchemaJSONV3_25_0, isProjectSchemaJSONV3_26_0, isProjectSchemaJSONV3_27_0, isProjectSchemaJSONV3_28_0, isProjectSchemaJSONV3_29_0, isProjectSchemaJSONV3_30_0, isProjectSchemaJSONV3_31_0, isProjectSchemaJSONV3_32_0, isProjectSchemaJSONV3_33_0, isProjectSchemaJSONV3_34_0, isProjectSchemaJSONV3_35_0, isProjectSchemaJSONV3_36_0, isProjectSchemaJSONV3_37_0, isProjectSchemaJSONV3_38_0, isProjectSchemaJSONV3_39_0, isProjectSchemaJSONV3_40_0, isProjectSchemaJSONV3_41_0, isProjectSchemaJSONV3_42_0, isProjectSchemaJSONV3_43_0, isProjectSchemaJSONV3_44_0, isProjectSchemaJSONV3_45_0, isProjectSchemaJSONV4_0_0, isLatestProjectSchemaJSON } from './index';
5
5
 
6
6
  // eslint-disable-next-line complexity
7
7
  export async function migrateToLatestProjectSchema(context, projectSchema) {
@@ -167,6 +167,9 @@ export async function migrateToLatestProjectSchema(context, projectSchema) {
167
167
  if (isProjectSchemaJSONV3_44_0(projectSchema)) {
168
168
  projectSchema = await migrateTo['v3.45.0'](context, projectSchema);
169
169
  }
170
+ if (isProjectSchemaJSONV3_45_0(projectSchema)) {
171
+ projectSchema = await migrateTo['v3.46.0'](context, projectSchema);
172
+ }
170
173
  if (isProjectSchemaJSONV4_0_0(projectSchema)) {
171
174
  throw new Error('You are using an unreleased schema version. Migration is not possible');
172
175
  }
@@ -0,0 +1 @@
1
+ export {};
package/es/refs.js CHANGED
@@ -615,7 +615,7 @@ export function getAllPropertyRefs(projectSchema) {
615
615
  const result = [];
616
616
  const parentIsResolver = (path, resolverName) => {
617
617
  const parent = get(projectSchema, path.slice(0, -1));
618
- return isRecord(parent) && parent.name === resolverName;
618
+ return isRecord(parent) && (Array.isArray(resolverName) ? resolverName.some(name => name === parent.name) : parent.name === resolverName);
619
619
  };
620
620
  const pushRef = refStr => {
621
621
  const parsed = parsePropertyRef(refStr);
@@ -627,7 +627,7 @@ export function getAllPropertyRefs(projectSchema) {
627
627
  const propName = path[path.length - 1];
628
628
  if (propName === 'to' && isString(value) && parentIsResolver(path, 'delegate')) {
629
629
  pushRef(value);
630
- } else if (propName === 'tools' && Array.isArray(value) && parentIsResolver(path, 'ai:generateText')) {
630
+ } else if (propName === 'tools' && Array.isArray(value) && parentIsResolver(path, ['ai:generateText', 'ai:chat'])) {
631
631
  const tools = value;
632
632
  for (const tool of tools) {
633
633
  pushRef(getToolRef(tool));
@@ -1,7 +1,7 @@
1
1
  // This file is generated by "pnpm json2ts"
2
- export const CURRENT_SCHEMA_VERSION = '3.45.0';
2
+ export const CURRENT_SCHEMA_VERSION = '3.46.0';
3
3
  export { default as anyProjectSchema } from './project-schema.json';
4
- export { default as latestSchemaJson } from './project-schema/v3.45.0.json';
4
+ export { default as latestSchemaJson } from './project-schema/v3.46.0.json';
5
5
  import metaSchemaV1_0_0 from './project-schema/meta-schema-v1.0.0.json';
6
6
  import projectSchemaV1_0_0 from './project-schema/v1.0.0.json';
7
7
  import metaSchemaV3_0_0 from './project-schema/meta-schema-v3.0.0.json';
@@ -68,5 +68,6 @@ import projectSchemaV3_42_0 from './project-schema/v3.42.0.json';
68
68
  import projectSchemaV3_43_0 from './project-schema/v3.43.0.json';
69
69
  import projectSchemaV3_44_0 from './project-schema/v3.44.0.json';
70
70
  import projectSchemaV3_45_0 from './project-schema/v3.45.0.json';
71
+ import projectSchemaV3_46_0 from './project-schema/v3.46.0.json';
71
72
  import projectSchemaV4_0_0 from './project-schema/v4.0.0.json';
72
- export const allProjectSchemas = [metaSchemaV1_0_0, projectSchemaV1_0_0, metaSchemaV3_0_0, projectSchemaV3_0_0, metaSchemaV3_1_0, projectSchemaV3_1_0, metaSchemaV3_2_0, projectSchemaV3_2_0, metaSchemaV3_3_0, projectSchemaV3_3_0, metaSchemaV3_4_0, projectSchemaV3_4_0, metaSchemaV3_5_0, projectSchemaV3_5_0, metaSchemaV3_5_1, projectSchemaV3_5_1, metaSchemaV3_6_0, projectSchemaV3_6_0, metaSchemaV3_7_0, projectSchemaV3_7_0, metaSchemaV3_8_0, projectSchemaV3_8_0, metaSchemaV3_9_0, projectSchemaV3_9_0, projectSchemaV3_10_0, projectSchemaV3_11_0, projectSchemaV3_12_0, projectSchemaV3_12_1, projectSchemaV3_12_2, projectSchemaV3_12_3, projectSchemaV3_13_0, projectSchemaV3_14_0, projectSchemaV3_15_0, projectSchemaV3_16_0, projectSchemaV3_17_0, projectSchemaV3_17_1, projectSchemaV3_18_0, projectSchemaV3_18_1, projectSchemaV3_18_2, projectSchemaV3_19_0, projectSchemaV3_20_0, projectSchemaV3_21_0, projectSchemaV3_22_0, projectSchemaV3_23_0, projectSchemaV3_24_0, projectSchemaV3_25_0, projectSchemaV3_26_0, projectSchemaV3_27_0, projectSchemaV3_28_0, projectSchemaV3_29_0, projectSchemaV3_30_0, projectSchemaV3_31_0, projectSchemaV3_32_0, projectSchemaV3_33_0, projectSchemaV3_34_0, projectSchemaV3_35_0, projectSchemaV3_36_0, projectSchemaV3_37_0, projectSchemaV3_38_0, projectSchemaV3_39_0, projectSchemaV3_40_0, projectSchemaV3_41_0, projectSchemaV3_42_0, projectSchemaV3_43_0, projectSchemaV3_44_0, projectSchemaV3_45_0, projectSchemaV4_0_0];
73
+ export const allProjectSchemas = [metaSchemaV1_0_0, projectSchemaV1_0_0, metaSchemaV3_0_0, projectSchemaV3_0_0, metaSchemaV3_1_0, projectSchemaV3_1_0, metaSchemaV3_2_0, projectSchemaV3_2_0, metaSchemaV3_3_0, projectSchemaV3_3_0, metaSchemaV3_4_0, projectSchemaV3_4_0, metaSchemaV3_5_0, projectSchemaV3_5_0, metaSchemaV3_5_1, projectSchemaV3_5_1, metaSchemaV3_6_0, projectSchemaV3_6_0, metaSchemaV3_7_0, projectSchemaV3_7_0, metaSchemaV3_8_0, projectSchemaV3_8_0, metaSchemaV3_9_0, projectSchemaV3_9_0, projectSchemaV3_10_0, projectSchemaV3_11_0, projectSchemaV3_12_0, projectSchemaV3_12_1, projectSchemaV3_12_2, projectSchemaV3_12_3, projectSchemaV3_13_0, projectSchemaV3_14_0, projectSchemaV3_15_0, projectSchemaV3_16_0, projectSchemaV3_17_0, projectSchemaV3_17_1, projectSchemaV3_18_0, projectSchemaV3_18_1, projectSchemaV3_18_2, projectSchemaV3_19_0, projectSchemaV3_20_0, projectSchemaV3_21_0, projectSchemaV3_22_0, projectSchemaV3_23_0, projectSchemaV3_24_0, projectSchemaV3_25_0, projectSchemaV3_26_0, projectSchemaV3_27_0, projectSchemaV3_28_0, projectSchemaV3_29_0, projectSchemaV3_30_0, projectSchemaV3_31_0, projectSchemaV3_32_0, projectSchemaV3_33_0, projectSchemaV3_34_0, projectSchemaV3_35_0, projectSchemaV3_36_0, projectSchemaV3_37_0, projectSchemaV3_38_0, projectSchemaV3_39_0, projectSchemaV3_40_0, projectSchemaV3_41_0, projectSchemaV3_42_0, projectSchemaV3_43_0, projectSchemaV3_44_0, projectSchemaV3_45_0, projectSchemaV3_46_0, projectSchemaV4_0_0];
@@ -1,7 +1,7 @@
1
1
  // This file is generated by "pnpm json2ts"
2
- export const CURRENT_SCHEMA_VERSION = '3.45.0';
2
+ export const CURRENT_SCHEMA_VERSION = '3.46.0';
3
3
  export {default as anyProjectSchema} from './project-schema.json';
4
- export {default as latestSchemaJson} from './project-schema/v3.45.0.json';
4
+ export {default as latestSchemaJson} from './project-schema/v3.46.0.json';
5
5
  import metaSchemaV1_0_0 from './project-schema/meta-schema-v1.0.0.json';
6
6
  import projectSchemaV1_0_0 from './project-schema/v1.0.0.json';
7
7
  import metaSchemaV3_0_0 from './project-schema/meta-schema-v3.0.0.json';
@@ -68,6 +68,7 @@ import projectSchemaV3_42_0 from './project-schema/v3.42.0.json';
68
68
  import projectSchemaV3_43_0 from './project-schema/v3.43.0.json';
69
69
  import projectSchemaV3_44_0 from './project-schema/v3.44.0.json';
70
70
  import projectSchemaV3_45_0 from './project-schema/v3.45.0.json';
71
+ import projectSchemaV3_46_0 from './project-schema/v3.46.0.json';
71
72
  import projectSchemaV4_0_0 from './project-schema/v4.0.0.json';
72
73
  export const allProjectSchemas = [
73
74
  metaSchemaV1_0_0,
@@ -136,5 +137,6 @@ export const allProjectSchemas = [
136
137
  projectSchemaV3_43_0,
137
138
  projectSchemaV3_44_0,
138
139
  projectSchemaV3_45_0,
140
+ projectSchemaV3_46_0,
139
141
  projectSchemaV4_0_0
140
142
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://schema.takeshape.io/project-schema/v3.45.0#",
3
+ "$id": "https://schema.takeshape.io/project-schema/v3.46.0#",
4
4
  "title": "Project Schema JSON",
5
5
  "definitions": {
6
6
  "schemaArray": {
@@ -1492,7 +1492,83 @@
1492
1492
  "type": "object",
1493
1493
  "properties": {
1494
1494
  "history": {
1495
+ "title": "history",
1495
1496
  "type": "boolean"
1497
+ },
1498
+ "maxTokens": {
1499
+ "type": "integer",
1500
+ "title": "Maximum Tokens",
1501
+ "description": "Maximum number of tokens to generate."
1502
+ },
1503
+ "temperature": {
1504
+ "type": "number",
1505
+ "title": "Temperature",
1506
+ "description": "This is a number between 0 (almost no randomness) and 1 (very random). It is recommended to set either `temperature` or `topP`, but not both. Defaults to 0",
1507
+ "minimum": 0,
1508
+ "maximum": 1
1509
+ },
1510
+ "topP": {
1511
+ "type": "number",
1512
+ "title": "Top P",
1513
+ "description": "Nucleus sampling. This is a number between 0 and 1. E.g. 0.1 would mean that only tokens with the top 10% probability mass are considered. It is recommended to set either `temperature` or `topP`, but not both.",
1514
+ "minimum": 0,
1515
+ "maximum": 1
1516
+ },
1517
+ "topK": {
1518
+ "type": "number",
1519
+ "title": "Top K",
1520
+ "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Recommended for advanced use cases only. You usually only need to use temperature."
1521
+ },
1522
+ "presencePenalty": {
1523
+ "type": "number",
1524
+ "title": "Presence penalty setting",
1525
+ "description": "It affects the likelihood of the model to repeat information that is already in the prompt. The presence penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.",
1526
+ "minimum": -1,
1527
+ "maximum": 1
1528
+ },
1529
+ "frequencyPenalty": {
1530
+ "type": "number",
1531
+ "title": "Frequency penalty setting",
1532
+ "description": "It affects the likelihood of the model to repeatedly use the same words or phrases. The frequency penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.",
1533
+ "minimum": -1,
1534
+ "maximum": 1
1535
+ },
1536
+ "stopSequences": {
1537
+ "title": "Stop sequences",
1538
+ "description": "If set, the model will stop generating text when one of the stop sequences is generated.",
1539
+ "type": "array",
1540
+ "items": {
1541
+ "type": "string"
1542
+ }
1543
+ },
1544
+ "seed": {
1545
+ "type": "integer",
1546
+ "title": "Seed",
1547
+ "description": " The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results."
1548
+ },
1549
+ "maxRetries": {
1550
+ "type": "integer",
1551
+ "description": "Maximum number of retries. Set to 0 to disable retries. Defaults to 2"
1552
+ },
1553
+ "toolChoice": {
1554
+ "type": "string",
1555
+ "description": "The tool choice strategy. Default: 'auto'",
1556
+ "anyOf": [
1557
+ {
1558
+ "enum": [
1559
+ "auto",
1560
+ "none",
1561
+ "required"
1562
+ ]
1563
+ },
1564
+ {
1565
+ "type": "string"
1566
+ }
1567
+ ]
1568
+ },
1569
+ "maxToolRoundtrips": {
1570
+ "type": "integer",
1571
+ "description": "Maximal number of automatic roundtrips for tool calls."
1496
1572
  }
1497
1573
  }
1498
1574
  },
@@ -1512,7 +1588,8 @@
1512
1588
  "type": "string",
1513
1589
  "description": "Name of the resolver function.",
1514
1590
  "enum": [
1515
- "ai:generateText"
1591
+ "ai:generateText",
1592
+ "ai:chat"
1516
1593
  ]
1517
1594
  },
1518
1595
  "service": {
@@ -3418,7 +3495,7 @@
3418
3495
  "schemaVersion": {
3419
3496
  "type": "string",
3420
3497
  "enum": [
3421
- "3.45.0"
3498
+ "3.46.0"
3422
3499
  ],
3423
3500
  "description": "The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format."
3424
3501
  },
@@ -3485,4 +3562,4 @@
3485
3562
  "mutations",
3486
3563
  "workflows"
3487
3564
  ]
3488
- }
3565
+ }