pagegraph 0.13.0 → 0.14.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 (80) hide show
  1. package/README.md +48 -41
  2. package/dist/anthropic-messages-TqKpKmfW.js +1067 -0
  3. package/dist/anthropic-messages-TqKpKmfW.js.map +1 -0
  4. package/dist/audit.d.ts +2 -0
  5. package/dist/audit.js +1 -1
  6. package/dist/audit.js.map +1 -1
  7. package/dist/azure-openai-responses-DJjBLwoI.js +231 -0
  8. package/dist/azure-openai-responses-DJjBLwoI.js.map +1 -0
  9. package/dist/cli.js +10487 -38044
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js +41 -0
  12. package/dist/cloudflare-workers-ai-system-one-f3ZrvNYZ.js.map +1 -0
  13. package/dist/config.d.ts +6 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/diagnostics-Wt5faNDM.js +108 -0
  16. package/dist/diagnostics-Wt5faNDM.js.map +1 -0
  17. package/dist/dist-B6zg_Z3Z.js +4794 -0
  18. package/dist/dist-B6zg_Z3Z.js.map +1 -0
  19. package/dist/env-api-keys-C-OA0yM-.js +124 -0
  20. package/dist/env-api-keys-C-OA0yM-.js.map +1 -0
  21. package/dist/error-body-CyiejW4b.js +103 -0
  22. package/dist/error-body-CyiejW4b.js.map +1 -0
  23. package/dist/github-copilot-headers-CEpMOpQF.js +24 -0
  24. package/dist/github-copilot-headers-CEpMOpQF.js.map +1 -0
  25. package/dist/google-generative-ai-BxABKIKO.js +330 -0
  26. package/dist/google-generative-ai-BxABKIKO.js.map +1 -0
  27. package/dist/google-shared-0gpM2jFi.js +19471 -0
  28. package/dist/google-shared-0gpM2jFi.js.map +1 -0
  29. package/dist/google-vertex-D8Eb5cbu.js +376 -0
  30. package/dist/google-vertex-D8Eb5cbu.js.map +1 -0
  31. package/dist/hash-Dp7EzZUo.js +18 -0
  32. package/dist/hash-Dp7EzZUo.js.map +1 -0
  33. package/dist/headers-BRNMVpzu.js +19 -0
  34. package/dist/headers-BRNMVpzu.js.map +1 -0
  35. package/dist/json-parse-C10znB7l.js +383 -0
  36. package/dist/json-parse-C10znB7l.js.map +1 -0
  37. package/dist/mistral-conversations-CvaqBWjR.js +690 -0
  38. package/dist/mistral-conversations-CvaqBWjR.js.map +1 -0
  39. package/dist/models-DcT5qOEL.js +1203 -0
  40. package/dist/models-DcT5qOEL.js.map +1 -0
  41. package/dist/node-Ccvru9GE.js +26 -0
  42. package/dist/node-Ccvru9GE.js.map +1 -0
  43. package/dist/node-MEosBOF2.js +2403 -0
  44. package/dist/node-MEosBOF2.js.map +1 -0
  45. package/dist/openai-BCBEd2eO.js +17350 -0
  46. package/dist/openai-BCBEd2eO.js.map +1 -0
  47. package/dist/openai-codex-responses-vJqxeeRC.js +1268 -0
  48. package/dist/openai-codex-responses-vJqxeeRC.js.map +1 -0
  49. package/dist/openai-completions-Cb_fRAbI.js +989 -0
  50. package/dist/openai-completions-Cb_fRAbI.js.map +1 -0
  51. package/dist/openai-prompt-cache-Bc6qNWt0.js +10 -0
  52. package/dist/openai-prompt-cache-Bc6qNWt0.js.map +1 -0
  53. package/dist/openai-responses-sDuh82G5.js +268 -0
  54. package/dist/openai-responses-sDuh82G5.js.map +1 -0
  55. package/dist/openai-responses-shared-mhuo1Jov.js +599 -0
  56. package/dist/openai-responses-shared-mhuo1Jov.js.map +1 -0
  57. package/dist/openrouter-images-CRmBkzpX.js +127 -0
  58. package/dist/openrouter-images-CRmBkzpX.js.map +1 -0
  59. package/dist/pi-Bvw6J0gh.js +56795 -0
  60. package/dist/pi-Bvw6J0gh.js.map +1 -0
  61. package/dist/pi-messages-CejiVYvO.js +308 -0
  62. package/dist/pi-messages-CejiVYvO.js.map +1 -0
  63. package/dist/provider-env-t38GK5FF.js +39 -0
  64. package/dist/provider-env-t38GK5FF.js.map +1 -0
  65. package/dist/provider-retry-DzKoh1X7.js +80 -0
  66. package/dist/provider-retry-DzKoh1X7.js.map +1 -0
  67. package/dist/rolldown-runtime-B-lAHAz2.js +37 -0
  68. package/dist/sanitize-unicode-Ds14l9Om.js +28 -0
  69. package/dist/sanitize-unicode-Ds14l9Om.js.map +1 -0
  70. package/dist/sdk-C9_wiO6w.js +12503 -0
  71. package/dist/sdk-C9_wiO6w.js.map +1 -0
  72. package/dist/state-BuJP_3Lr.js +28102 -0
  73. package/dist/state-BuJP_3Lr.js.map +1 -0
  74. package/dist/system-one-shared-Dl10ZF7Z.js +167 -0
  75. package/dist/system-one-shared-Dl10ZF7Z.js.map +1 -0
  76. package/dist/transform-messages-BLJ8EfK6.js +468 -0
  77. package/dist/transform-messages-BLJ8EfK6.js.map +1 -0
  78. package/dist/typesafe-system-one-CwEWMV8P.js +25 -0
  79. package/dist/typesafe-system-one-CwEWMV8P.js.map +1 -0
  80. package/package.json +4 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-Bvw6J0gh.js","names":["IsMinLength","IsMaxLength","G.IsEqual","Entries","G.IsValueLike","G.IsString","Guard","Guard.IsUndefined","Settings.Get","Get","Guard.HasPropertyKey","Guard.IsArray","Guard.Every","Guard.IsObject","Guard.IsFunction","Guard.IsObject","Guard.IsArray","Guard.IsBoolean","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsObject","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsBoolean","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsString","Guard.IsArray","Guard.HasPropertyKey","Guard.IsBoolean","Guard.HasPropertyKey","Guard.HasPropertyKey","Schema.IsUnevaluatedItems","Schema.IsUnevaluatedProperties","G.Some","G.Keys","G.IsArray","G.IsObject","E.Call","E.Member","Settings.Get","V.CreateVariable","E.Every","E.Constant","E.Call","E.Member","G.Every","G.EveryAll","index","IsValid","Schema.IsItems","G.IsArray","E.IsLessThan","E.Constant","E.Every","E.Or","E.And","G.Every","G.IsLessThan","G.IsEqual","G.IsObject","G.Keys","S.IsPatternProperties","S.IsProperties","S.IsRequired","E.IsEqual","E.Member","E.Call","E.Constant","V.CreateVariable","E.Or","E.And","E.Every","E.Keys","G.Every","G.EveryAll","E.ConstDeclaration","E.New","E.Call","E.ArrowFunction","E.If","E.Member","E.Return","E.And","E.Statements","E.IsEqual","E.Member","E.Constant","E.ReduceAnd","G.IsEqual","E.IsGreaterThan","E.Member","E.Constant","E.ReduceOr","G.IsGreaterThan","E.Constant","G.IsValueLike","E.IsEqual","E.Constant","E.IsDeepEqual","Externals.CreateVariable","G.IsEqual","G.IsDeepEqual","IsValid","Schema.IsMinContains","G.IsEqual","E.Not","E.IsEqual","E.Member","E.Constant","E.SomeAll","E.And","E.Some","G.SomeAll","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","E.Not","E.HasPropertyKey","E.Or","G.IsArray","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","E.Not","E.HasPropertyKey","E.Or","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","E.Not","E.HasPropertyKey","E.Or","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","Functions.CreateFunction","Schema.IsSchema","E.ReduceOr","G.IsValueLike","E.IsEqual","E.Constant","Externals.CreateVariable","E.IsDeepEqual","G.Some","G.IsEqual","G.IsDeepEqual","E.IsLessThan","E.Constant","G.IsLessThan","E.IsGreaterThan","E.Constant","G.IsGreaterThan","Decode","Encode","FormatPuny.IsAcePrefixed","FormatPuny.Decode","FormatPuny.Encode","FormatBidi.HasRightToLeftCharacters","FormatBidi.SatisfiesBidiRule","FormatPuny.IsAcePrefixed","FormatPuny.Decode","LabelUnicode.IsUnicodeLabel","IsValidLabelLength","IsLabel","LabelPuny.IsPunyLabel","LabelAscii.IsAsciiLabel","IsHostname","LabelPuny.IsPunyLabel","LabelUnicode.IsUnicodeLabel","IsIdnHostname","FormatBidi.HasBidiChars","FormatBidi.SatisfiesBidiRule","Idna.IsHostname","Idna.IsIdnHostname","InvalidIriChars","Set","Get","E.Call","E.Member","E.Constant","Format.Test","Schema.IsThen","Schema.IsElse","E.Ternary","E.ReduceAnd","E.IsLessEqualThan","E.Member","E.Constant","E.Or","E.And","G.Every","G.IsLessEqualThan","G.EveryAll","Schema.IsPrefixItems","E.Every","Schema.IsItemsSized","IsValid","Schema.IsContains","E.Constant","E.Counted","E.IsLessEqualThan","G.Counted","G.IsLessEqualThan","Schema.IsMinContains","E.IsLessEqualThan","E.Constant","G.IsLessEqualThan","E.IsLessEqualThan","E.Member","E.Constant","G.IsLessEqualThan","E.IsMaxLength","E.Constant","G.IsMaxLength","E.IsLessEqualThan","E.Member","E.Keys","E.Constant","G.IsLessEqualThan","G.Keys","IsValid","Schema.IsContains","E.Counted","E.And","E.IsGreaterEqualThan","E.Constant","G.Counted","G.IsGreaterEqualThan","E.IsGreaterEqualThan","E.Constant","G.IsGreaterEqualThan","E.IsGreaterEqualThan","E.Member","E.Constant","G.IsGreaterEqualThan","E.IsMinLength","E.Constant","G.IsMinLength","E.IsGreaterEqualThan","E.Member","E.Keys","E.Constant","G.IsGreaterEqualThan","G.Keys","E.MultipleOf","E.Constant","G.IsMultipleOf","E.Not","E.IsEqual","E.Member","E.Constant","E.IsEqual","E.Member","E.Constant","E.ArrayLiteral","E.Counted","G.IsEqual","Externals.CreateVariable","G.IsString","E.Call","E.Member","E.ReduceAnd","G.Entries","Externals.CreateVariable","E.Not","E.Call","E.Member","E.Or","E.And","E.Every","E.Entries","E.Constant","G.Every","G.EveryAll","E.ReduceAnd","E.IsLessEqualThan","E.Member","E.Constant","E.And","E.Or","G.IsEqual","G.Every","G.IsLessEqualThan","G.EveryAll","Settings.Get","E.IsUndefined","E.Member","G.IsUndefined","Schema.IsRequired","G.Entries","E.Not","E.HasPropertyKey","E.Constant","E.Member","E.And","E.Or","E.ReduceAnd","G.Every","G.HasPropertyKey","G.EveryAll","E.Every","E.Keys","E.Constant","G.Every","G.Keys","G.EveryAll","Functions.CreateFunction","Schema.IsSchema","E.ArrowFunction","Functions.CreateFunction","E.Statements","E.ConstDeclaration","E.New","E.Call","E.If","E.Return","Schema.IsSchema","E.ReduceAnd","E.HasPropertyKey","E.Constant","G.Every","G.HasPropertyKey","G.EveryAll","G.IsEqual","E.IsObjectNotArray","E.IsArray","E.IsBoolean","E.IsInteger","E.IsNumber","E.IsNull","E.IsString","E.IsBigInt","E.IsConstructor","E.IsFunction","E.IsSymbol","E.IsUndefined","E.Constant","G.IsObjectNotArray","G.IsArray","G.IsBoolean","G.IsInteger","G.IsNumber","G.IsNull","G.IsString","G.IsBigInt","G.IsConstructor","G.IsFunction","G.IsSymbol","G.IsUndefined","E.ReduceOr","G.Some","E.Call","E.Member","E.Every","E.Constant","E.And","E.Or","E.ArrowFunction","E.Statements","E.ConstDeclaration","E.Return","G.Every","G.EveryAll","E.Call","E.Member","E.Every","E.Entries","E.Constant","E.Or","E.And","E.ArrowFunction","E.Statements","E.ConstDeclaration","E.Return","G.Every","G.Entries","G.EveryAll","G.IsEqual","E.Constant","E.Member","E.New","E.Call","E.IsEqual","Hashing.Hash","Schema.IsType","G.IsArray","G.IsGreaterThan","G.Every","G.IsEqual","Schema.IsSchemaObject","Schema.IsAdditionalProperties","Schema.IsDependencies","Schema.IsDependentRequired","Schema.IsDependentSchemas","Schema.IsProperties","Schema.IsPatternProperties","Schema.IsPropertyNames","Schema.IsMinProperties","Schema.IsMaxProperties","Schema.IsRequired","Schema.IsUnevaluatedProperties","Schema.IsAdditionalItems","Schema.IsItems","Schema.IsContains","Schema.IsMaxContains","Schema.IsMaxItems","Schema.IsMinContains","Schema.IsMinItems","Schema.IsPrefixItems","Schema.IsUnevaluatedItems","Schema.IsUniqueItems","Schema.IsMinLength","Schema.IsMaxLength","Schema.IsFormat","Schema.IsPattern","Schema.IsMinimum","Schema.IsMaximum","Schema.IsExclusiveMaximum","Schema.IsExclusiveMinimum","Schema.IsMultipleOf","E.And","Schema.IsSchemaBoolean","E.ReduceAnd","E.Or","E.Not","E.IsObjectNotArray","E.IsArray","E.IsString","E.IsNumber","E.IsBigInt","Schema.IsRef","Schema.IsRecursiveRef","Schema.IsDynamicRef","Schema.IsConst","Schema.IsEnum","Schema.IsIf","Schema.IsNot","Schema.IsAllOf","Schema.IsAnyOf","Schema.IsOneOf","E.IsObject","Schema.IsRefine","G.IsObject","G.IsString","G.IsNumber","G.IsBigInt","E.Call","E.ConstDeclaration","E.ArrowFunction","Guard.IsObject","Guard.IsUnsafePropertyKey","Guard.IsEqual","Guard.IsObject","Schema.IsDynamicAnchor","Guard.IsEqual","Guard.Keys","Schema.IsSchemaObject","Schema.IsId","Guard.IsArray","Guard.IsUndefined","Pointer.Get","Schema.IsAnchor","FromArray","FromObject","Guard.HasPropertyKey","ResolveRef","Schema.IsRecursiveAnchorTrue","Schema.IsSchemaObject","Schema.IsId","Schema.IsAnchor","Schema.IsRecursiveAnchorTrue","Schema.IsDynamicAnchor","Resolve.ResolveRef","Resolve.ResolveRecursiveRef","Resolve.ResolveDynamicRef","Guard.IsUndefined","Resolve.DefaultBase","Schema.IsSchemaBoolean","Guard.IsArray","Guard.Keys","Guard.IsEqual","Environment.Evaluate","Engine.CheckContext","Guard","Format","Hashing","Engine.Stack","Engine.CheckSchema","Environment.CanEvaluate","Arguments.Match","Engine.BuildContext","Engine.HasUnevaluated","Engine.CreateFunction","Engine.GetFunctions","Engine.GetExternal","Errors","Arguments.Match","Engine.Stack","Engine.ErrorContext","Engine.ErrorSchema","GetLocalizationFunction","Check","Arguments.Match","Engine.Stack","Engine.CheckContext","Engine.CheckSchema","Arguments.Match","SchemaCheck","Arguments.Match","SchemaErrors","FromArray","Guard.IsArray","FromType","FromCyclic","FromType","Ref","Guard.HasPropertyKey","Evaluate","IsObject","FromIntersect","FromType","Guard.HasPropertyKey","FromObject","Guard.IsObject","Guard.IsArray","Guard.Keys","Guard.HasPropertyKey","FromType","Guard.IsBoolean","Guard.IsEqual","IsSchema","FromRecord","Guard.IsObject","Guard.Keys","FromType","Guard.IsBoolean","Guard.IsEqual","IsSchema","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","FromType","Guard.IsGreaterThan","SystemClone","FromUnion","FromType","FromType","T.IsArray","FromArray","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Guard","FromProperties","FromType","IsArray","Union","IsObject","Record","Arguments.Match","Settings.Get","FromType","Guard.IsObject","Guard.HasPropertyKey","Guard.IsArray","FromBoolean","Guard.IsEqual","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","FromBoolean","FromString","Guard.IsNumber","Guard.IsEqual","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNull","Guard.IsString","Guard.IsUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromArray","Try.TryArray","FromType","FromBigInt","Try.TryBigInt","Try.IsOk","FromBoolean","Try.TryBoolean","Try.IsOk","FromCyclic","FromType","Ref","FromEnum","FromType","Evaluate","FromInteger","Try.TryNumber","Try.IsOk","FromIntersect","Evaluate","FromType","Try.TryBigInt","Try.IsOk","Guard.IsEqual","Try.TryBoolean","Try.TryNumber","Try.TryString","FromLiteral","FromNull","Try.TryNull","Try.IsOk","FromNumber","Try.TryNumber","Try.IsOk","Guard.Keys","FromType","Guard.IsUndefined","Guard.EntriesRegExp","Guard.Keys","FromType","Guard.HasPropertyKey","Guard.IsObject","FromObject","Guard.IsObjectNotArray","Guard.EntriesRegExp","Guard.Keys","FromType","Guard.HasPropertyKey","Guard.IsObject","FromRecord","Guard.IsObjectNotArray","FromRef","Guard.HasPropertyKey","FromType","FromString","Try.TryString","Try.IsOk","FromTemplateLiteral","FromType","Evaluate","FromTuple","Guard.IsArray","FromType","FromUndefined","Try.TryUndefined","Try.IsOk","FromUnion","FromType","Guard.IsUndefined","FromVoid","Try.TryUndefined","Try.IsOk","FromType","Type.IsArray","FromArray","Type.IsBigInt","FromBigInt","Type.IsBoolean","FromBoolean","Type.IsCyclic","FromCyclic","Type.IsEnum","FromEnum","Type.IsInteger","FromInteger","Type.IsIntersect","FromIntersect","Type.IsLiteral","FromLiteral","Type.IsNull","FromNull","Type.IsNumber","FromNumber","Type.IsObject","FromObject","Type.IsRecord","FromRecord","Type.IsRef","FromRef","Type.IsString","FromString","Type.IsTemplateLiteral","FromTemplateLiteral","Type.IsTuple","FromTuple","Type.IsUndefined","FromUndefined","Type.IsUnion","FromUnion","Type.IsVoid","FromVoid","Arguments.Match","FromType","FromArray","Guard.IsArray","FromType","FromCyclic","FromType","Ref","FromDefault","Guard.IsUndefined","Guard.IsFunction","FromIntersect","Evaluate","FromType","FromObject","Guard.IsObject","Guard.Keys","FromType","Guard.IsUndefined","Guard.HasPropertyKey","Guard.IsBoolean","FromRecord","Guard.IsObject","Guard.Keys","FromType","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","FromType","FromUnion","FromType","FromType","FromDefault","T.IsArray","FromArray","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Arguments.Match","FromType","Arguments.Match","Decode","Encode","Guard.IsEqual","Decode","Guard.IsArray","FromType","Encode","FromArray","Guard.IsEqual","FromCyclic","FromType","Ref","Guard.IsDeepEqual","Decode","Guard.IsEqual","FromType","Guard.IsObject","Encode","FromIntersect","Decode","Guard.IsObjectNotArray","Guard.Keys","Guard.HasPropertyKey","FromType","Encode","FromObject","Guard.IsEqual","Decode","Guard.IsObjectNotArray","Guard.Keys","FromType","Encode","FromRecord","Guard.IsEqual","Guard.HasPropertyKey","FromType","FromRef","Guard.IsEqual","Decode","Guard.IsArray","FromType","Encode","FromTuple","Guard.IsEqual","Decode","FromType","Encode","FromUnion","Guard.IsEqual","FromType","Type.IsArray","FromArray","Type.IsCyclic","FromCyclic","Type.IsIntersect","FromIntersect","Type.IsObject","FromObject","Type.IsRecord","FromRecord","Type.IsRef","FromRef","Type.IsTuple","FromTuple","Type.IsUnion","FromUnion","Assert","Settings.Get","FromType","Arguments.Match","Assert","Settings.Get","FromType","Arguments.Match","FromArray","FromType","FromCyclic","FromRef","Ref","FromIntersect","FromObject","Guard.Keys","FromRecord","Guard.HasPropertyKey","FromTuple","FromUnion","IsArray","IsObject","IsRef","Arguments.Match","Guard.IsFunction","Guard.IsObject","Ref","Evaluate","Guard.IsNumber","Evaluate","Guard.IsNumber","Guard.IsUndefined","Guard.HasPropertyKey","IsString","Guard.IsEqual","S.IsDefault","T.IsArray","T.IsBigInt","T.IsBoolean","T.IsConstructor","T.IsCyclic","T.IsEnum","T.IsFunction","T.IsInteger","T.IsIntersect","T.IsLiteral","T.IsNever","T.IsNull","T.IsNumber","T.IsObject","T.IsRecord","T.IsRef","T.IsString","T.IsSymbol","T.IsTemplateLiteral","T.IsTuple","T.IsUndefined","T.IsUnion","T.IsVoid","Arguments.Match","T.Object","T.Literal","T.String","T.Unknown","T.Union","Settings.Get","Arguments.Match","__rewriteRelativeImportExtension","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","values","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_GATEWAY_ID","Schema.TaggedError","Schema.String","Schema.optional","Schema.Number","Schema.Defect","Schema.Struct","Schema.Array","Schema.Record","Schema.Boolean","Schema.Union","Schema.Literal","Schema.Unknown","Schema.Literals","Duration.seconds","Duration.minutes","Context.Service","Effect.fn","HttpClient.HttpClient","Redacted.value","HttpClient.mapRequest","HttpClientRequest.prependUrl","HttpClientRequest.setHeaders","HttpClient.retryTransient","Effect.gen","Effect.timeoutOption","Effect.mapError","Effect.flatMap","Option.match","Effect.fail","Duration.format","Effect.succeed","Effect.orElseSucceed","Schema.decodeUnknownEffect","post","HttpClientRequest.post","HttpClientRequest.bodyJsonUnsafe","HttpClientRequest.get","Effect.withSpan","Layer.effect","Layer.provide","FetchHttpClient.layer","Effect.runSync","Effect.provide","Effect.tryPromise","Effect.map","Config.all","Config.String","Config.option","Config.Redacted","Option.isSome","Option.some","Option.none","Redacted.make","Type.Object","Type.String","Type.Optional","Type.Integer","Type.Boolean","Type.Number","Type.Record","Type.Array","Effect.forEach","Cause.findErrorOption","Cause.pretty","Effect.runPromiseExit","Exit.isSuccess","ExecutorClient","Effect.provideService","ConfigProvider.ConfigProvider","ConfigProvider.fromEnv","Effect.runPromise","Type.Object","Type.String","Type.Optional","Type.Boolean","Type.Unsafe"],"sources":["../node_modules/typebox/build/guard/emit.mjs","../node_modules/typebox/build/guard/index.mjs","../node_modules/typebox/build/system/environment/evaluate.mjs","../node_modules/typebox/build/system/locale/en_US.mjs","../node_modules/typebox/build/system/locale/_config.mjs","../node_modules/@earendil-works/pi-ai/dist/auth/helpers.js","../node_modules/typebox/build/schema/types/_refine.mjs","../node_modules/typebox/build/schema/types/schema.mjs","../node_modules/typebox/build/schema/types/additionalItems.mjs","../node_modules/typebox/build/schema/types/additionalProperties.mjs","../node_modules/typebox/build/schema/types/allOf.mjs","../node_modules/typebox/build/schema/types/anchor.mjs","../node_modules/typebox/build/schema/types/anyOf.mjs","../node_modules/typebox/build/schema/types/const.mjs","../node_modules/typebox/build/schema/types/contains.mjs","../node_modules/typebox/build/schema/types/default.mjs","../node_modules/typebox/build/schema/types/dependencies.mjs","../node_modules/typebox/build/schema/types/dependentRequired.mjs","../node_modules/typebox/build/schema/types/dependentSchemas.mjs","../node_modules/typebox/build/schema/types/dynamicAnchor.mjs","../node_modules/typebox/build/schema/types/dynamicRef.mjs","../node_modules/typebox/build/schema/types/else.mjs","../node_modules/typebox/build/schema/types/enum.mjs","../node_modules/typebox/build/schema/types/exclusiveMaximum.mjs","../node_modules/typebox/build/schema/types/exclusiveMinimum.mjs","../node_modules/typebox/build/schema/types/format.mjs","../node_modules/typebox/build/schema/types/id.mjs","../node_modules/typebox/build/schema/types/if.mjs","../node_modules/typebox/build/schema/types/items.mjs","../node_modules/typebox/build/schema/types/maximum.mjs","../node_modules/typebox/build/schema/types/maxContains.mjs","../node_modules/typebox/build/schema/types/maxItems.mjs","../node_modules/typebox/build/schema/types/maxLength.mjs","../node_modules/typebox/build/schema/types/maxProperties.mjs","../node_modules/typebox/build/schema/types/minimum.mjs","../node_modules/typebox/build/schema/types/minContains.mjs","../node_modules/typebox/build/schema/types/minItems.mjs","../node_modules/typebox/build/schema/types/minLength.mjs","../node_modules/typebox/build/schema/types/minProperties.mjs","../node_modules/typebox/build/schema/types/multipleOf.mjs","../node_modules/typebox/build/schema/types/not.mjs","../node_modules/typebox/build/schema/types/oneOf.mjs","../node_modules/typebox/build/schema/types/pattern.mjs","../node_modules/typebox/build/schema/types/patternProperties.mjs","../node_modules/typebox/build/schema/types/prefixItems.mjs","../node_modules/typebox/build/schema/types/properties.mjs","../node_modules/typebox/build/schema/types/propertyNames.mjs","../node_modules/typebox/build/schema/types/recursiveAnchor.mjs","../node_modules/typebox/build/schema/types/recursiveRef.mjs","../node_modules/typebox/build/schema/types/ref.mjs","../node_modules/typebox/build/schema/types/required.mjs","../node_modules/typebox/build/schema/types/then.mjs","../node_modules/typebox/build/schema/types/type.mjs","../node_modules/typebox/build/schema/types/uniqueItems.mjs","../node_modules/typebox/build/schema/types/unevaluatedItems.mjs","../node_modules/typebox/build/schema/types/unevaluatedProperties.mjs","../node_modules/typebox/build/schema/engine/_context.mjs","../node_modules/typebox/build/schema/engine/_externals.mjs","../node_modules/typebox/build/schema/engine/_refine.mjs","../node_modules/typebox/build/schema/engine/_unique.mjs","../node_modules/typebox/build/schema/engine/additionalItems.mjs","../node_modules/typebox/build/schema/engine/_regexp.mjs","../node_modules/typebox/build/schema/engine/additionalProperties.mjs","../node_modules/typebox/build/schema/engine/_reducer.mjs","../node_modules/typebox/build/schema/engine/allOf.mjs","../node_modules/typebox/build/schema/engine/anyOf.mjs","../node_modules/typebox/build/schema/engine/boolean.mjs","../node_modules/typebox/build/schema/engine/const.mjs","../node_modules/typebox/build/schema/engine/contains.mjs","../node_modules/typebox/build/schema/engine/dependencies.mjs","../node_modules/typebox/build/schema/engine/dependentRequired.mjs","../node_modules/typebox/build/schema/engine/dependentSchemas.mjs","../node_modules/typebox/build/schema/engine/dynamicRef.mjs","../node_modules/typebox/build/schema/engine/enum.mjs","../node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs","../node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs","../node_modules/typebox/build/format/date.mjs","../node_modules/typebox/build/format/time.mjs","../node_modules/typebox/build/format/date_time.mjs","../node_modules/typebox/build/format/duration.mjs","../node_modules/typebox/build/format/email.mjs","../node_modules/typebox/build/format/idna/pattern/pattern.mjs","../node_modules/typebox/build/format/idna/label/ascii.mjs","../node_modules/typebox/build/format/idna/format/puny.mjs","../node_modules/typebox/build/format/idna/format/bidi.mjs","../node_modules/typebox/build/format/idna/label/unicode.mjs","../node_modules/typebox/build/format/idna/label/puny.mjs","../node_modules/typebox/build/format/idna/hostname.mjs","../node_modules/typebox/build/format/idna/idn-hostname.mjs","../node_modules/typebox/build/format/hostname.mjs","../node_modules/typebox/build/format/idn_email.mjs","../node_modules/typebox/build/format/idn_hostname.mjs","../node_modules/typebox/build/format/ipv4.mjs","../node_modules/typebox/build/format/ipv6.mjs","../node_modules/typebox/build/format/iri_reference.mjs","../node_modules/typebox/build/format/iri.mjs","../node_modules/typebox/build/format/json_pointer_uri_fragment.mjs","../node_modules/typebox/build/format/json_pointer.mjs","../node_modules/typebox/build/format/regex.mjs","../node_modules/typebox/build/format/relative_json_pointer.mjs","../node_modules/typebox/build/format/uri_reference.mjs","../node_modules/typebox/build/format/uri_template.mjs","../node_modules/typebox/build/format/uri.mjs","../node_modules/typebox/build/format/url.mjs","../node_modules/typebox/build/format/uuid.mjs","../node_modules/typebox/build/format/_registry.mjs","../node_modules/typebox/build/format/format.mjs","../node_modules/typebox/build/schema/engine/format.mjs","../node_modules/typebox/build/schema/engine/if.mjs","../node_modules/typebox/build/schema/engine/items.mjs","../node_modules/typebox/build/schema/engine/maxContains.mjs","../node_modules/typebox/build/schema/engine/maximum.mjs","../node_modules/typebox/build/schema/engine/maxItems.mjs","../node_modules/typebox/build/schema/engine/maxLength.mjs","../node_modules/typebox/build/schema/engine/maxProperties.mjs","../node_modules/typebox/build/schema/engine/minContains.mjs","../node_modules/typebox/build/schema/engine/minimum.mjs","../node_modules/typebox/build/schema/engine/minItems.mjs","../node_modules/typebox/build/schema/engine/minLength.mjs","../node_modules/typebox/build/schema/engine/minProperties.mjs","../node_modules/typebox/build/schema/engine/multipleOf.mjs","../node_modules/typebox/build/schema/engine/not.mjs","../node_modules/typebox/build/schema/engine/oneOf.mjs","../node_modules/typebox/build/schema/engine/pattern.mjs","../node_modules/typebox/build/schema/engine/patternProperties.mjs","../node_modules/typebox/build/schema/engine/prefixItems.mjs","../node_modules/typebox/build/schema/engine/_exact_optional.mjs","../node_modules/typebox/build/schema/engine/properties.mjs","../node_modules/typebox/build/schema/engine/propertyNames.mjs","../node_modules/typebox/build/schema/engine/recursiveRef.mjs","../node_modules/typebox/build/schema/engine/ref.mjs","../node_modules/typebox/build/schema/engine/required.mjs","../node_modules/typebox/build/schema/engine/type.mjs","../node_modules/typebox/build/schema/engine/unevaluatedItems.mjs","../node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs","../node_modules/typebox/build/schema/engine/uniqueItems.mjs","../node_modules/typebox/build/schema/engine/schema.mjs","../node_modules/typebox/build/schema/engine/_functions.mjs","../node_modules/typebox/build/schema/pointer/pointer.mjs","../node_modules/typebox/build/schema/resolve/resolve.mjs","../node_modules/typebox/build/schema/engine/_stack.mjs","../node_modules/typebox/build/schema/build.mjs","../node_modules/typebox/build/schema/errors.mjs","../node_modules/typebox/build/schema/check.mjs","../node_modules/typebox/build/value/check/check.mjs","../node_modules/typebox/build/value/errors/errors.mjs","../node_modules/typebox/build/value/assert/assert.mjs","../node_modules/typebox/build/value/clean/from_array.mjs","../node_modules/typebox/build/value/clean/from_cyclic.mjs","../node_modules/typebox/build/value/clean/from_intersect.mjs","../node_modules/typebox/build/value/clean/additional.mjs","../node_modules/typebox/build/value/clean/from_object.mjs","../node_modules/typebox/build/value/clean/from_record.mjs","../node_modules/typebox/build/value/clean/from_ref.mjs","../node_modules/typebox/build/value/clean/from_tuple.mjs","../node_modules/typebox/build/value/clone/clone.mjs","../node_modules/typebox/build/value/clean/from_union.mjs","../node_modules/typebox/build/value/clean/from_type.mjs","../node_modules/typebox/build/value/shared/union_priority_sort.mjs","../node_modules/typebox/build/value/clean/clean.mjs","../node_modules/typebox/build/value/convert/try/try_result.mjs","../node_modules/typebox/build/value/convert/try/try_array.mjs","../node_modules/typebox/build/value/convert/try/try_bigint.mjs","../node_modules/typebox/build/value/convert/try/try_boolean.mjs","../node_modules/typebox/build/value/convert/try/try_null.mjs","../node_modules/typebox/build/value/convert/try/try_number.mjs","../node_modules/typebox/build/value/convert/try/try_string.mjs","../node_modules/typebox/build/value/convert/try/try_undefined.mjs","../node_modules/typebox/build/value/convert/from_array.mjs","../node_modules/typebox/build/value/convert/from_bigint.mjs","../node_modules/typebox/build/value/convert/from_boolean.mjs","../node_modules/typebox/build/value/convert/from_cyclic.mjs","../node_modules/typebox/build/value/convert/from_enum.mjs","../node_modules/typebox/build/value/convert/from_integer.mjs","../node_modules/typebox/build/value/convert/from_intersect.mjs","../node_modules/typebox/build/value/convert/from_literal.mjs","../node_modules/typebox/build/value/convert/from_null.mjs","../node_modules/typebox/build/value/convert/from_number.mjs","../node_modules/typebox/build/value/convert/from_additional.mjs","../node_modules/typebox/build/value/shared/optional_undefined.mjs","../node_modules/typebox/build/value/convert/from_object.mjs","../node_modules/typebox/build/value/convert/from_record.mjs","../node_modules/typebox/build/value/convert/from_ref.mjs","../node_modules/typebox/build/value/convert/from_string.mjs","../node_modules/typebox/build/value/convert/from_template_literal.mjs","../node_modules/typebox/build/value/convert/from_tuple.mjs","../node_modules/typebox/build/value/convert/from_undefined.mjs","../node_modules/typebox/build/value/convert/from_union.mjs","../node_modules/typebox/build/value/convert/from_void.mjs","../node_modules/typebox/build/value/convert/from_type.mjs","../node_modules/typebox/build/value/convert/convert.mjs","../node_modules/typebox/build/value/default/from_array.mjs","../node_modules/typebox/build/value/default/from_cyclic.mjs","../node_modules/typebox/build/value/default/from_default.mjs","../node_modules/typebox/build/value/default/from_intersect.mjs","../node_modules/typebox/build/value/default/from_object.mjs","../node_modules/typebox/build/value/default/from_record.mjs","../node_modules/typebox/build/value/default/from_ref.mjs","../node_modules/typebox/build/value/default/from_tuple.mjs","../node_modules/typebox/build/value/default/from_union.mjs","../node_modules/typebox/build/value/default/from_type.mjs","../node_modules/typebox/build/value/default/default.mjs","../node_modules/typebox/build/value/pipeline/pipeline.mjs","../node_modules/typebox/build/value/codec/callback.mjs","../node_modules/typebox/build/value/codec/from_array.mjs","../node_modules/typebox/build/value/codec/from_cyclic.mjs","../node_modules/typebox/build/value/codec/from_intersect.mjs","../node_modules/typebox/build/value/codec/from_object.mjs","../node_modules/typebox/build/value/codec/from_record.mjs","../node_modules/typebox/build/value/codec/from_ref.mjs","../node_modules/typebox/build/value/codec/from_tuple.mjs","../node_modules/typebox/build/value/codec/from_union.mjs","../node_modules/typebox/build/value/codec/from_type.mjs","../node_modules/typebox/build/value/codec/decode.mjs","../node_modules/typebox/build/value/codec/encode.mjs","../node_modules/typebox/build/value/codec/has.mjs","../node_modules/typebox/build/value/create/error.mjs","../node_modules/typebox/build/value/create/from_default.mjs","../node_modules/typebox/build/value/create/from_array.mjs","../node_modules/typebox/build/value/create/from_bigint.mjs","../node_modules/typebox/build/value/create/from_boolean.mjs","../node_modules/typebox/build/value/create/from_constructor.mjs","../node_modules/typebox/build/value/create/from_cyclic.mjs","../node_modules/typebox/build/value/create/from_enum.mjs","../node_modules/typebox/build/value/create/from_function.mjs","../node_modules/typebox/build/value/create/from_integer.mjs","../node_modules/typebox/build/value/create/from_intersect.mjs","../node_modules/typebox/build/value/create/from_literal.mjs","../node_modules/typebox/build/value/create/from_never.mjs","../node_modules/typebox/build/value/create/from_null.mjs","../node_modules/typebox/build/value/create/from_number.mjs","../node_modules/typebox/build/value/create/from_object.mjs","../node_modules/typebox/build/value/create/from_record.mjs","../node_modules/typebox/build/value/create/from_ref.mjs","../node_modules/typebox/build/value/create/from_string.mjs","../node_modules/typebox/build/value/create/from_symbol.mjs","../node_modules/typebox/build/value/create/from_template_literal.mjs","../node_modules/typebox/build/value/create/from_tuple.mjs","../node_modules/typebox/build/value/create/from_undefined.mjs","../node_modules/typebox/build/value/create/from_union.mjs","../node_modules/typebox/build/value/create/from_void.mjs","../node_modules/typebox/build/value/create/from_type.mjs","../node_modules/typebox/build/value/create/create.mjs","../node_modules/typebox/build/value/parse/parse.mjs","../node_modules/typebox/build/value/delta/edit.mjs","../node_modules/typebox/build/compile/validator.mjs","../node_modules/typebox/build/compile/compile.mjs","../node_modules/@earendil-works/pi-ai/dist/utils/validation.js","../node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js","../node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js","../node_modules/@earendil-works/pi-agent-core/dist/agent.js","../node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/google-vertex.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/openai-completions.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/openai-responses.lazy.js","../node_modules/@earendil-works/pi-ai/dist/api/pi-messages.lazy.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json","../node_modules/@earendil-works/pi-ai/dist/model-catalog.js","../node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/ant-ling.json","../node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json","../node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json","../node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json","../node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json","../node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json","../node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json","../node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json","../node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/google.json","../node_modules/@earendil-works/pi-ai/dist/providers/google.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json","../node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json","../node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json","../node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json","../node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/meta.json","../node_modules/@earendil-works/pi-ai/dist/providers/meta.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json","../node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json","../node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json","../node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json","../node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json","../node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json","../node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json","../node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json","../node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json","../node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json","../node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json","../node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/radius.json","../node_modules/@earendil-works/pi-ai/dist/providers/radius.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/together.json","../node_modules/@earendil-works/pi-ai/dist/providers/together.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/typesafe.json","../node_modules/@earendil-works/pi-ai/dist/providers/typesafe.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json","../node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json","../node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json","../node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js","../node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json","../node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js","../node_modules/@earendil-works/pi-ai/dist/images-api-registry.js","../node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js","../node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js","../node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.js","../node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js","../node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js","../node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js","../node_modules/@earendil-works/pi-ai/dist/providers/baseten.js","../node_modules/@earendil-works/pi-ai/dist/providers/cerebras.js","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-stream.js","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js","../node_modules/@earendil-works/pi-ai/dist/api/cloudflare-workers-ai-system-one.lazy.js","../node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js","../node_modules/@earendil-works/pi-ai/dist/providers/deepseek.js","../node_modules/@earendil-works/pi-ai/dist/providers/fireworks.js","../node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.js","../node_modules/@earendil-works/pi-ai/dist/providers/google.js","../node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js","../node_modules/@earendil-works/pi-ai/dist/providers/groq.js","../node_modules/@earendil-works/pi-ai/dist/providers/huggingface.js","../node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.js","../node_modules/@earendil-works/pi-ai/dist/providers/meta.js","../node_modules/@earendil-works/pi-ai/dist/providers/minimax.js","../node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.js","../node_modules/@earendil-works/pi-ai/dist/providers/mistral.js","../node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.js","../node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.js","../node_modules/@earendil-works/pi-ai/dist/providers/nvidia.js","../node_modules/@earendil-works/pi-ai/dist/providers/openai.js","../node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.js","../node_modules/@earendil-works/pi-ai/dist/api/typesafe-system-one.lazy.js","../node_modules/@earendil-works/pi-ai/dist/providers/opencode-headers.js","../node_modules/@earendil-works/pi-ai/dist/providers/opencode.js","../node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js","../node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.lazy.js","../node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.js","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.js","../node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.js","../node_modules/@earendil-works/pi-ai/dist/providers/radius-config.js","../node_modules/@earendil-works/pi-ai/dist/providers/radius.js","../node_modules/@earendil-works/pi-ai/dist/providers/together.js","../node_modules/@earendil-works/pi-ai/dist/providers/typesafe.js","../node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.js","../node_modules/@earendil-works/pi-ai/dist/providers/xai.js","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.js","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.js","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.js","../node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.js","../node_modules/@earendil-works/pi-ai/dist/providers/zai.js","../node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.js","../node_modules/@earendil-works/pi-ai/dist/providers/all.js","../node_modules/@earendil-works/pi-ai/dist/compat.js","../node_modules/@pi-ext/executor/dist/rolldown-runtime-D7D4PA-g.js","../node_modules/@pi-ext/executor/dist/tools-BVfUkejO.js","../src/workflows/executor.ts","../src/workflows/repository-tools.ts","../src/workflows/pi.ts"],"sourcesContent":["import * as G from './guard.mjs';\n// ------------------------------------------------------------------\n// Identifier\n// ------------------------------------------------------------------\nconst identifierRegExp = /^[\\p{ID_Start}_$][\\p{ID_Continue}_$\\u200C\\u200D]*$/u;\n/** Returns true if this value is a valid JavaScript identifier */\nfunction IsIdentifier(value) {\n return identifierRegExp.test(value);\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function And(left, right) {\n return `(${left} && ${right})`;\n}\nexport function Or(left, right) {\n return `(${left} || ${right})`;\n}\nexport function Not(expr) {\n return `!(${expr})`;\n}\n// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return `Array.isArray(${value})`;\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return `typeof ${value} === \"bigint\"`;\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return `typeof ${value} === \"boolean\"`;\n}\n/** Returns true if this value is integer */\nexport function IsInteger(value) {\n return `Number.isInteger(${value})`;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return `${value} === null`;\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return `Number.isFinite(${value})`;\n}\n/** Returns true if this value is an object but not an array */\nexport function IsObjectNotArray(value) {\n return And(IsObject(value), Not(IsArray(value)));\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return `typeof ${value} === \"object\" && ${value} !== null`;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return `typeof ${value} === \"string\"`;\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return `typeof ${value} === \"symbol\"`;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return `${value} === undefined`;\n}\n// ------------------------------------------------------------------\n// Functions and Constructors\n// ------------------------------------------------------------------\nexport function IsFunction(value) {\n return `typeof ${value} === \"function\"`;\n}\nexport function IsConstructor(value) {\n return `Guard.IsConstructor(${value})`;\n}\n// ------------------------------------------------------------------\n// Relational\n// ------------------------------------------------------------------\nexport function IsEqual(left, right) {\n return `${left} === ${right}`;\n}\nexport function IsGreaterThan(left, right) {\n return `${left} > ${right}`;\n}\nexport function IsLessThan(left, right) {\n return `${left} < ${right}`;\n}\nexport function IsLessEqualThan(left, right) {\n return `${left} <= ${right}`;\n}\nexport function IsGreaterEqualThan(left, right) {\n return `${left} >= ${right}`;\n}\n// --------------------------------------------------------------------------\n// String\n// --------------------------------------------------------------------------\nexport function IsMinLength(value, length) {\n return `Guard.IsMinLength(${value}, ${length})`;\n}\nexport function IsMaxLength(value, length) {\n return `Guard.IsMaxLength(${value}, ${length})`;\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\nexport function Every(value, offset, params, expression) {\n return G.IsEqual(offset, '0') ? `${value}.every((${params[0]}, ${params[1]}) => (${expression}))` : `${value}.every((${params[0]}, ${params[1]}) => (${params[1]} < ${offset}) || (${expression}))`;\n}\nexport function Some(value, params, expression) {\n return `${value}.some((${params[0]}, ${params[1]}) => ${expression})`;\n}\nexport function SomeAll(value, params, expression) {\n return `((value) => { let result = false; value.forEach((${params[0]}, ${params[1]}) => { if (${expression}) result = true }); return result })(${value})`;\n}\nexport function Counted(value, params, expression) {\n return `${value}.reduce((result, ${params[0]}, ${params[1]}) => (${expression}) ? ++result : result, 0)`;\n}\n// --------------------------------------------------------------------------\n// Objects\n// --------------------------------------------------------------------------\nexport function Entries(value) {\n return `Object.entries(${value})`;\n}\nexport function Keys(value) {\n return `Object.getOwnPropertyNames(${value})`;\n}\nexport function HasPropertyKey(value, key) {\n const isProtoField = G.IsEqual(key, '\"__proto__\"') || G.IsEqual(key, '\"constructor\"');\n return isProtoField ? `Object.prototype.hasOwnProperty.call(${value}, ${key})` : `${key} in ${value}`;\n}\nexport function IsDeepEqual(left, right) {\n return `Guard.IsDeepEqual(${left}, ${right})`;\n}\n// ------------------------------------------------------------------\n// Expressions\n// ------------------------------------------------------------------\nexport function ArrayLiteral(elements) {\n return `[${elements.join(', ')}]`;\n}\nexport function ArrowFunction(parameters, body) {\n return `((${parameters.join(', ')}) => ${body})`;\n}\nexport function Call(value, arguments_) {\n return `${value}(${arguments_.join(', ')})`;\n}\nexport function New(value, arguments_) {\n return `new ${value}(${arguments_.join(', ')})`;\n}\nexport function Member(left, right) {\n return `${left}${IsIdentifier(right) ? `.${right}` : `[${Constant(right)}]`}`;\n}\nexport function Constant(value) {\n if (!G.IsValueLike(value))\n throw Error('Unsupported Constant');\n return G.IsString(value) ? JSON.stringify(value) : `${value}`;\n}\nexport function Ternary(condition, true_, false_) {\n return `(${condition} ? ${true_} : ${false_})`;\n}\n// ------------------------------------------------------------------\n// Statements\n// ------------------------------------------------------------------\nexport function Statements(statements) {\n return `{ ${statements.join('; ')}; }`;\n}\nexport function ConstDeclaration(identifier, expression) {\n return `const ${identifier} = ${expression}`;\n}\nexport function If(condition, then) {\n return `if(${condition}) { ${then} }`;\n}\nexport function Return(expression) {\n return `return ${expression}`;\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function ReduceAnd(operands) {\n return G.IsEqual(operands.length, 0) ? 'true' : operands.reduce((left, right) => And(left, right));\n}\nexport function ReduceOr(operands) {\n return G.IsEqual(operands.length, 0) ? 'false' : operands.reduce((left, right) => Or(left, right));\n}\n// --------------------------------------------------------------------------\n// MultipleOf\n// --------------------------------------------------------------------------\nexport function MultipleOf(dividend, divisor) {\n return `Guard.IsMultipleOf(${dividend}, ${divisor})`;\n}\n","export * as EmitGuard from './emit.mjs';\nexport * as GlobalsGuard from './globals.mjs';\nexport * as NativeGuard from './native.mjs';\nimport * as Guard from './guard.mjs';\nexport * as Guard from './guard.mjs';\nexport default Guard;\n","import { Settings } from '../settings/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nlet supported = undefined;\n// ------------------------------------------------------------------\n// TryEvaluate\n// ------------------------------------------------------------------\nfunction TryEvaluate() {\n try {\n Evaluate('null')();\n return true;\n } // deno-coverage-ignore-start - unreachable in test-suite\n catch {\n return false;\n }\n // deno-coverage-ignore-stop\n}\n// ------------------------------------------------------------------\n// CanEvaluate\n// ------------------------------------------------------------------\n/** Returns true if the environment supports dynamic JavaScript evaluation */\nexport function CanEvaluate() {\n if (Guard.IsUndefined(supported))\n supported = TryEvaluate();\n return supported && Settings.Get().useAcceleration;\n}\n// ------------------------------------------------------------------\n// Evaluate\n// ------------------------------------------------------------------\n/**\n * Evaluates code in the current environment. This function will throw if the\n * environment Content-Security-Policy does not support `unsafe-eval`. Use the\n * Environment.CanEvaluate() to determine if the environment supports Evaluate\n * before calling this function.\n */\nexport function Evaluate(...args) {\n return new (globalThis.Function)(...args);\n}\n","// deno-fmt-ignore-file\n/** en_US: English (United States) - ISO 639-1 language code 'en' with ISO 3166-1 alpha-2 country code 'US' for United States. */\nexport function en_US(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'must not have additional properties';\n case 'anyOf': return 'must match a schema in anyOf';\n case 'boolean': return 'schema is false';\n case 'const': return 'must be equal to constant';\n case 'contains': return 'must contain at least 1 valid item';\n case 'dependencies': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'dependentRequired': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'enum': return 'must be equal to one of the allowed values';\n case 'exclusiveMaximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `must match format \"${error.params.format}\"`;\n case 'if': return `must match \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `must not have more than ${error.params.limit} items`;\n case 'maxLength': return `must not have more than ${error.params.limit} characters`;\n case 'maxProperties': return `must not have more than ${error.params.limit} properties`;\n case 'maximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `must not have fewer than ${error.params.limit} items`;\n case 'minLength': return `must not have fewer than ${error.params.limit} characters`;\n case 'minProperties': return `must not have fewer than ${error.params.limit} properties`;\n case 'minimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `must be multiple of ${error.params.multipleOf}`;\n case 'not': return 'must not be valid';\n case 'oneOf': return 'must match exactly one schema in oneOf';\n case 'pattern': return `must match pattern \"${error.params.pattern}\"`;\n case 'propertyNames': return `property names ${error.params.propertyNames.join(', ')} are invalid`;\n case 'required': return `must have required properties ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `must be ${error.params.type}` : `must be either ${error.params.type.join(' or ')}`;\n case 'unevaluatedItems': return 'must not have unevaluated items';\n case 'unevaluatedProperties': return 'must not have unevaluated properties';\n case 'uniqueItems': return `must not have duplicate items`;\n case '~refine': return error.params.message;\n // deno-coverage-ignore - unreachable\n default: return 'an unknown validation error occurred';\n }\n}\n","// deno-fmt-ignore-file\nimport { en_US } from './en_US.mjs';\nlet locale = en_US;\n/** Sets the locale */\nexport function Set(callback) {\n locale = callback;\n}\n/** Gets the locale */\nexport function Get() {\n return locale;\n}\n/** Resets the locale to `en_US` */\nexport function Reset() {\n Set(en_US);\n}\n","/**\n * Standard api-key auth: a stored credential key wins, otherwise the first\n * set env var resolves. Includes a `login` that prompts for the key.\n * Providers with non-standard resolution (provider env, ambient files, IAM)\n * write their own `ApiKeyAuth`.\n */\nexport function envApiKeyAuth(name, envVars) {\n return {\n name,\n login: async (interaction) => {\n interaction.signal.throwIfAborted();\n const key = await interaction.prompt({ type: \"secret\", message: `Enter ${name}` });\n interaction.signal.throwIfAborted();\n return { type: \"api_key\", key };\n },\n resolve: async ({ ctx, credential, signal }) => {\n signal.throwIfAborted();\n if (credential?.key) {\n return { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n }\n for (const envVar of envVars) {\n const value = await ctx.env(envVar);\n signal.throwIfAborted();\n if (value)\n return { auth: { apiKey: value }, source: envVar };\n }\n return undefined;\n },\n };\n}\n/**\n * Wraps a dynamically imported `OAuthAuth` so provider definitions can\n * advertise OAuth without importing the implementation. The flow loads on\n * first `login`/`refresh`/`toAuth` call; callers keep Node-only flow code out\n * of bundles by loading through a bundler-opaque dynamic import (variable\n * specifier, see the bedrock lazy wrapper).\n */\nexport function lazyOAuth(input) {\n let promise;\n const loaded = () => {\n promise ??= input.load();\n return promise;\n };\n return {\n name: input.name,\n isSubscription: input.isSubscription,\n loginLabel: input.loginLabel,\n login: async (interaction, options) => (await loaded()).login(interaction, options),\n refresh: async (credential, signal) => (await loaded()).refresh(credential, signal),\n toAuth: async (credential) => (await loaded()).toAuth(credential),\n };\n}\n//# sourceMappingURL=helpers.js.map","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains an '~refine` keyword\n * @specification None\n */\nexport function IsRefine(value) {\n return Guard.HasPropertyKey(value, '~refine')\n && Guard.IsArray(value[\"~refine\"])\n && Guard.Every(value['~refine'], 0, value => Guard.IsObject(value)\n && Guard.HasPropertyKey(value, 'check')\n && Guard.HasPropertyKey(value, 'error')\n && Guard.IsFunction(value.check)\n && Guard.IsFunction(value.error));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n/** Returns true if this value is object like */\nexport function IsSchemaObject(value) {\n return Guard.IsObject(value) && !Guard.IsArray(value);\n}\n/** Returns true if this value is a boolean */\nexport function IsSchemaBoolean(value) {\n return Guard.IsBoolean(value);\n}\n/** Returns true if this value is schema like */\nexport function IsSchema(value) {\n return IsSchemaObject(value) || IsSchemaBoolean(value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalItems property\n * @specification Json Schema 7\n */\nexport function IsAdditionalItems(schema) {\n return Guard.HasPropertyKey(schema, 'additionalItems')\n && IsSchema(schema.additionalItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalProperties property\n * @specification Json Schema 7\n */\nexport function IsAdditionalProperties(schema) {\n return Guard.HasPropertyKey(schema, 'additionalProperties')\n && IsSchema(schema.additionalProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid allOf property\n * @specification Json Schema 7\n */\nexport function IsAllOf(schema) {\n return Guard.HasPropertyKey(schema, 'allOf')\n && Guard.IsArray(schema.allOf)\n && schema.allOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $anchor property\n */\nexport function IsAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$anchor')\n && Guard.IsString(schema.$anchor);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid anyOf property\n * @specification Json Schema 7\n */\nexport function IsAnyOf(schema) {\n return Guard.HasPropertyKey(schema, 'anyOf')\n && Guard.IsArray(schema.anyOf)\n && schema.anyOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid const property\n * @specification Json Schema 7\n */\nexport function IsConst(value) {\n return Guard.HasPropertyKey(value, 'const');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contains property\n * @specification Json Schema 7\n */\nexport function IsContains(schema) {\n return Guard.HasPropertyKey(schema, 'contains')\n && IsSchema(schema.contains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contentMediaType property\n * @specification Json Schema 7\n */\nexport function IsDefault(schema) {\n return Guard.HasPropertyKey(schema, 'default');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependencies property\n * @specification Json Schema 7\n */\nexport function IsDependencies(schema) {\n return Guard.HasPropertyKey(schema, 'dependencies')\n && Guard.IsObject(schema.dependencies)\n && Object.values(schema.dependencies).every(value => IsSchema(value)\n || (Guard.IsArray(value) && value.every(value => Guard.IsString(value))));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentRequired(schema) {\n return Guard.HasPropertyKey(schema, 'dependentRequired')\n && Guard.IsObject(schema.dependentRequired)\n && Object.values(schema.dependentRequired).every(value => Guard.IsArray(value)\n && value.every(value => Guard.IsString(value)));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentSchemas(schema) {\n return Guard.HasPropertyKey(schema, 'dependentSchemas')\n && Guard.IsObject(schema.dependentSchemas)\n && Object.values(schema.dependentSchemas).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $dynamicAnchor property\n */\nexport function IsDynamicAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$dynamicAnchor')\n && Guard.IsString(schema.$dynamicAnchor);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $dynamicRef property\n */\nexport function IsDynamicRef(schema) {\n return Guard.HasPropertyKey(schema, '$dynamicRef')\n && Guard.IsString(schema.$dynamicRef);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid else property\n * @specification Json Schema 7\n */\nexport function IsElse(schema) {\n return Guard.HasPropertyKey(schema, 'else')\n && IsSchema(schema.else);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid enum property\n * @specification Json Schema 7\n */\nexport function IsEnum(schema) {\n return Guard.HasPropertyKey(schema, 'enum')\n && Guard.IsArray(schema.enum);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMaximum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMaximum')\n && (Guard.IsNumber(schema.exclusiveMaximum) || Guard.IsBigInt(schema.exclusiveMaximum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMinimum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMinimum')\n && (Guard.IsNumber(schema.exclusiveMinimum) || Guard.IsBigInt(schema.exclusiveMinimum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid format property\n * @specification Json Schema 7\n */\nexport function IsFormat(schema) {\n return Guard.HasPropertyKey(schema, 'format')\n && Guard.IsString(schema.format);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsId(schema) {\n return Guard.HasPropertyKey(schema, '$id')\n && Guard.IsString(schema.$id);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsIf(schema) {\n return Guard.HasPropertyKey(schema, 'if')\n && IsSchema(schema.if);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid items property\n * @specification Json Schema 7\n */\nexport function IsItems(schema) {\n return Guard.HasPropertyKey(schema, 'items')\n && (IsSchema(schema.items)\n || (Guard.IsArray(schema.items)\n && schema.items.every(value => {\n return IsSchema(value);\n })));\n}\n/** Returns true if this schema is a sized items variant */\nexport function IsItemsSized(schema) {\n return IsItems(schema) && Guard.IsArray(schema.items);\n}\n/** Returns true if this schema is a unsized items variant */\nexport function IsItemsUnsized(schema) {\n return IsItems(schema) && !Guard.IsArray(schema.items);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maximum property\n * @specification Json Schema 7\n */\nexport function IsMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'maximum')\n && (Guard.IsNumber(schema.maximum) || Guard.IsBigInt(schema.maximum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMaxContains(schema) {\n return Guard.HasPropertyKey(schema, 'maxContains')\n && Guard.IsNumber(schema.maxContains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxItems property\n * @specification Json Schema 7\n */\nexport function IsMaxItems(schema) {\n return Guard.HasPropertyKey(schema, 'maxItems')\n && Guard.IsNumber(schema.maxItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxLength property\n * @specification Json Schema 7\n */\nexport function IsMaxLength(schema) {\n return Guard.HasPropertyKey(schema, 'maxLength')\n && Guard.IsNumber(schema.maxLength);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxProperties property\n * @specification Json Schema 7\n */\nexport function IsMaxProperties(schema) {\n return Guard.HasPropertyKey(schema, 'maxProperties')\n && Guard.IsNumber(schema.maxProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minimum property\n * @specification Json Schema 7\n */\nexport function IsMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'minimum')\n && (Guard.IsNumber(schema.minimum) || Guard.IsBigInt(schema.minimum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMinContains(schema) {\n return Guard.HasPropertyKey(schema, 'minContains')\n && Guard.IsNumber(schema.minContains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minItems property\n * @specification Json Schema 7\n */\nexport function IsMinItems(schema) {\n return Guard.HasPropertyKey(schema, 'minItems')\n && Guard.IsNumber(schema.minItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minLength property\n * @specification Json Schema 7\n */\nexport function IsMinLength(schema) {\n return Guard.HasPropertyKey(schema, 'minLength')\n && Guard.IsNumber(schema.minLength);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minProperties property\n * @specification Json Schema 7\n */\nexport function IsMinProperties(schema) {\n return Guard.HasPropertyKey(schema, 'minProperties')\n && Guard.IsNumber(schema.minProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid multipleOf property\n * @specification Json Schema 7\n */\nexport function IsMultipleOf(schema) {\n return Guard.HasPropertyKey(schema, 'multipleOf')\n && (Guard.IsNumber(schema.multipleOf) || Guard.IsBigInt(schema.multipleOf));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid not property\n * @specification Json Schema 7\n */\nexport function IsNot(schema) {\n return Guard.HasPropertyKey(schema, 'not')\n && IsSchema(schema.not);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid oneOf property\n * @specification Json Schema 7\n */\nexport function IsOneOf(schema) {\n return Guard.HasPropertyKey(schema, 'oneOf')\n && Guard.IsArray(schema.oneOf)\n && schema.oneOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid pattern property\n * @specification Json Schema 7\n */\nexport function IsPattern(schema) {\n return Guard.HasPropertyKey(schema, 'pattern')\n && (Guard.IsString(schema.pattern)\n || schema.pattern instanceof RegExp);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid patternProperties property\n * @specification Json Schema 7\n */\nexport function IsPatternProperties(schema) {\n return Guard.HasPropertyKey(schema, 'patternProperties')\n && Guard.IsObject(schema.patternProperties)\n && Object.values(schema.patternProperties).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid prefixItems property\n */\nexport function IsPrefixItems(schema) {\n return Guard.HasPropertyKey(schema, 'prefixItems')\n && Guard.IsArray(schema.prefixItems)\n && schema.prefixItems.every(schema => IsSchema(schema));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid properties property\n * @specification Json Schema 7\n */\nexport function IsProperties(schema) {\n return Guard.HasPropertyKey(schema, 'properties')\n && Guard.IsObject(schema.properties)\n && Object.values(schema.properties).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid propertyNames property\n * @specification Json Schema 7\n */\nexport function IsPropertyNames(schema) {\n return Guard.HasPropertyKey(schema, 'propertyNames')\n && (Guard.IsObject(schema.propertyNames)\n || IsSchema(schema.propertyNames));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property\n */\nexport function IsRecursiveAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveAnchor')\n && Guard.IsBoolean(schema.$recursiveAnchor);\n}\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property that is true\n */\nexport function IsRecursiveAnchorTrue(schema) {\n return IsRecursiveAnchor(schema)\n && Guard.IsEqual(schema.$recursiveAnchor, true);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveRef property\n */\nexport function IsRecursiveRef(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveRef')\n && Guard.IsString(schema.$recursiveRef);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $ref property\n * @specification Json Schema 7\n */\nexport function IsRef(schema) {\n return Guard.HasPropertyKey(schema, '$ref')\n && Guard.IsString(schema.$ref);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid required property\n * @specification Json Schema 7\n */\nexport function IsRequired(schema) {\n return Guard.HasPropertyKey(schema, 'required')\n && Guard.IsArray(schema.required)\n && schema.required.every(value => Guard.IsString(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid then property\n * @specification Json Schema 7\n */\nexport function IsThen(schema) {\n return Guard.HasPropertyKey(schema, 'then')\n && IsSchema(schema.then);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid type property\n * @specification Json Schema 7\n */\nexport function IsType(schema) {\n return Guard.HasPropertyKey(schema, 'type')\n && (Guard.IsString(schema.type)\n || (Guard.IsArray(schema.type)\n && schema.type.every(value => Guard.IsString(value))));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid uniqueItems property\n * @specification Json Schema 7\n */\nexport function IsUniqueItems(schema) {\n return Guard.HasPropertyKey(schema, 'uniqueItems')\n && Guard.IsBoolean(schema.uniqueItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedItems property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedItems(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedItems')\n && IsSchema(schema.unevaluatedItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedProperties property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedProperties(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedProperties')\n && IsSchema(schema.unevaluatedProperties);\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../../system/settings/index.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// HasUnevaluated\n// ------------------------------------------------------------------\nfunction HasUnevaluatedFromObject(value) {\n return (Schema.IsUnevaluatedItems(value)\n || Schema.IsUnevaluatedProperties(value)\n || G.Some(G.Keys(value), key => HasUnevaluatedFromUnknown(value[key])));\n}\nfunction HasUnevaluatedFromArray(value) {\n return G.Some(value, value => HasUnevaluatedFromUnknown(value));\n}\nfunction HasUnevaluatedFromUnknown(value) {\n return (G.IsArray(value) ? HasUnevaluatedFromArray(value) :\n G.IsObject(value) ? HasUnevaluatedFromObject(value) :\n false);\n}\nexport function HasUnevaluated(context, schema) {\n return HasUnevaluatedFromUnknown(schema) || G.Some(G.Keys(context), key => HasUnevaluatedFromUnknown(context[key]));\n}\n// ------------------------------------------------------------------\n// BuildContext\n// ------------------------------------------------------------------\nexport class BuildContext {\n constructor(hasUnevaluated) {\n this.hasUnevaluated = hasUnevaluated;\n }\n UseUnevaluated() {\n return this.hasUnevaluated;\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push() {\n return E.Call(E.Member('context', 'Push'), []);\n }\n Pop() {\n return E.Call(E.Member('context', 'Pop'), []);\n }\n // ----------------------------------------------------------------\n // Top\n // ----------------------------------------------------------------\n AddIndex(index) {\n return E.Call(E.Member('context', 'AddIndex'), [index]);\n }\n AddKey(key) {\n return E.Call(E.Member('context', 'AddKey'), [key]);\n }\n Merge(results) {\n return E.Call(E.Member('context', 'Merge'), [results]);\n }\n}\n// ------------------------------------------------------------------\n// CheckContext\n// ------------------------------------------------------------------\nexport class CheckContext {\n constructor() {\n const indices = new Set();\n const keys = new Set();\n this.stack = [{ indices, keys }];\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push() {\n const indices = new Set();\n const keys = new Set();\n this.stack.push({ indices, keys });\n return true;\n }\n Pop() {\n this.stack.pop();\n return true;\n }\n // ----------------------------------------------------------------\n // Top\n // ----------------------------------------------------------------\n AddIndex(index) {\n this.GetIndices().add(index);\n return true;\n }\n AddKey(key) {\n this.GetKeys().add(key);\n return true;\n }\n GetIndices() {\n const top = this.stack[this.stack.length - 1];\n return top.indices;\n }\n GetKeys() {\n const top = this.stack[this.stack.length - 1];\n return top.keys;\n }\n Merge(results) {\n for (const context of results) {\n context.GetIndices().forEach(value => this.GetIndices().add(value));\n context.GetKeys().forEach(value => this.GetKeys().add(value));\n }\n return true;\n }\n}\n// ------------------------------------------------------------------\n// ErrorContext\n// ------------------------------------------------------------------\nexport class ErrorContext extends CheckContext {\n constructor() {\n super();\n this.errors = [];\n }\n AtCapacity() {\n return this.errors.length >= Settings.Get().maxErrors;\n }\n AddError(error) {\n if (!this.AtCapacity())\n this.errors.push(error);\n return false;\n }\n GetErrors() {\n return this.errors;\n }\n}\n","// deno-fmt-ignore-file\nconst state = {\n identifier: 'External',\n variables: []\n};\n// ------------------------------------------------------------------\n// CreateVariable\n// ------------------------------------------------------------------\nexport function CreateVariable(value) {\n const call = `External[${state.variables.length}]`;\n state.variables.push(value);\n return call;\n}\n// ------------------------------------------------------------------\n// ResetExternal\n// ------------------------------------------------------------------\nexport function ResetExternal() {\n state.variables = [];\n}\n// ------------------------------------------------------------------\n// GetExternals\n// ------------------------------------------------------------------\nexport function GetExternal() {\n return { ...state };\n}\n","// deno-fmt-ignore-file\nimport * as V from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRefine(_stack, _context, schema, value) {\n const refinements = V.CreateVariable(schema['~refine'].map((refinement) => refinement));\n return E.Every(refinements, E.Constant(0), ['refinement', '_'], E.Call(E.Member('refinement', 'check'), [value]));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRefine(_stack, _context, schema, value) {\n return G.Every(schema['~refine'], 0, (refinement, _) => refinement.check(value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRefine(_stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema['~refine'], 0, (refinement, index) => {\n return refinement.check(value) || context.AddError({\n keyword: '~refine',\n schemaPath,\n instancePath,\n params: { index, message: refinement.error(value) },\n });\n });\n}\n","let index = 0;\n/** Returns a Unique Variable Name */\nexport function Unique() {\n return `var_${index++}`;\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsItems(schema) && G.IsArray(schema.items);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAdditionalItemsStandard(stack, context, schema, value) {\n const [item, index] = [Unique(), Unique()];\n const isSchema = BuildSchemaPushStack(stack, context, schema.additionalItems, item);\n const isLength = E.IsLessThan(index, E.Constant(schema.items.length));\n const addIndex = context.AddIndex(index);\n return E.Every(value, E.Constant(0), [item, index], E.Or(isLength, E.And(isSchema, addIndex)));\n}\nfunction BuildAdditionalItemsFast(stack, context, schema, value) {\n const [item, index] = [Unique(), Unique()];\n const isSchema = BuildSchemaPushStack(stack, context, schema.additionalItems, item);\n const isLength = E.IsLessThan(index, E.Constant(schema.items.length));\n return E.Every(value, E.Constant(0), [item, index], E.Or(isLength, isSchema));\n}\nexport function BuildAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n return context.UseUnevaluated()\n ? BuildAdditionalItemsStandard(stack, context, schema, value)\n : BuildAdditionalItemsFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = G.Every(value, 0, (item, index) => {\n return G.IsLessThan(index, schema.items.length)\n || (CheckSchemaPushStack(stack, context, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = G.Every(value, 0, (item, index) => {\n const nextSchemaPath = `${schemaPath}/additionalItems`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessThan(index, schema.items.length) ||\n (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n","/** Standard RegExp with Unicode */\nexport function UnicodeRegExp(pattern) {\n return new RegExp(pattern, 'u');\n}\n","// deno-fmt-ignore-file\nimport * as S from '../types/index.mjs';\nimport * as V from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { UnicodeRegExp } from './_regexp.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Optimization: IsAdditionalPropertiesIgnored\n//\n// We can ignore additionalProperties if the schema is true-like and\n// we are not in an unevaluated context, noting that additional\n// properties are considered tracked, evaluated keys.\n// ------------------------------------------------------------------\nfunction IsAdditionalPropertiesIgnored(context, additionalProperties) {\n return !context.UseUnevaluated() &&\n (G.IsEqual(additionalProperties, true) ||\n (G.IsObject(additionalProperties) && G.IsEqual(G.Keys(additionalProperties).length, 0)));\n}\n// ------------------------------------------------------------------\n// Optimization: GetPropertiesPattern\n//\n// Constructs a regular expression that matches all property keys\n// and pattern properties defined in a schema. This approach unifies\n// handling of both property types, avoiding separate logic paths.\n//\n// If no keys or patterns are present, it returns a pattern that\n// matches nothing: '(?!)'.\n//\n// ------------------------------------------------------------------\nfunction GetPropertyKeyAsPattern(key) {\n const escaped = key.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return `^${escaped}$`;\n}\nfunction GetPropertiesPattern(schema) {\n const patterns = [];\n if (S.IsPatternProperties(schema))\n patterns.push(...G.Keys(schema.patternProperties));\n if (S.IsProperties(schema))\n patterns.push(...G.Keys(schema.properties).map(GetPropertyKeyAsPattern));\n return G.IsEqual(patterns.length, 0) ? '(?!)' : `(${patterns.join('|')})`;\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesFast\n//\n// Optimized logic for schemas with `additionalProperties: false`.\n//\n// This fast-path applies only when:\n// - `additionalProperties` is explicitly set to false,\n// - the schema uses only `properties` (no `patternProperties`),\n// - and all defined properties are required (i.e., no optional keys).\n//\n// This constraint is common when enforcing strict object shapes\n// with only known, fixed keys. When all these conditions are met,\n// we can generate a simplified and efficient runtime check.\n//\n// ------------------------------------------------------------------\nexport function CanAdditionalPropertiesFast(_context, schema, _value) {\n return S.IsRequired(schema)\n && S.IsProperties(schema)\n && !S.IsPatternProperties(schema)\n && G.IsEqual(schema.additionalProperties, false)\n && G.IsEqual(G.Keys(schema.properties).length, schema.required.length);\n}\nexport function BuildAdditionalPropertiesFast(_context, schema, value) {\n return E.IsEqual(E.Member(E.Call(E.Member('Object', 'getOwnPropertyNames'), [value]), 'length'), E.Constant(schema.required.length));\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesStandard\n// ------------------------------------------------------------------\nexport function BuildAdditionalPropertiesStandard(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n const regexp = V.CreateVariable(UnicodeRegExp(GetPropertiesPattern(schema)));\n const isSchema = BuildSchemaPushStack(stack, context, schema.additionalProperties, `${value}[${key}]`);\n const isKey = E.Call(E.Member(regexp, 'test'), [key]);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(isKey, E.And(isSchema, addKey)) : E.Or(isKey, isSchema);\n const result = E.Every(E.Keys(value), E.Constant(0), [key, _index], guarded);\n return result;\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildAdditionalProperties(stack, context, schema, value) {\n if (IsAdditionalPropertiesIgnored(context, schema.additionalProperties))\n return E.Constant(true);\n return CanAdditionalPropertiesFast(context, schema, value)\n ? BuildAdditionalPropertiesFast(context, schema, value)\n : BuildAdditionalPropertiesStandard(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalProperties(stack, context, schema, value) {\n const regexp = UnicodeRegExp(GetPropertiesPattern(schema));\n const isAdditionalProperties = G.Every(G.Keys(value), 0, (key, _index) => {\n return regexp.test(key) ||\n (CheckSchemaPushStack(stack, context, schema.additionalProperties, value[key]) && context.AddKey(key));\n });\n return isAdditionalProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value) {\n const regexp = UnicodeRegExp(GetPropertiesPattern(schema));\n const additionalProperties = [];\n const isAdditionalProperties = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextSchemaPath = `${schemaPath}/additionalProperties`;\n const nextInstancePath = `${instancePath}/${key}`;\n const isAdditionalProperty = regexp.test(key) ||\n (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema.additionalProperties, value[key]) && context.AddKey(key));\n if (!isAdditionalProperty)\n additionalProperties.push(key);\n return isAdditionalProperty;\n });\n return isAdditionalProperties || context.AddError({\n keyword: 'additionalProperties',\n schemaPath,\n instancePath,\n params: { additionalProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Reducer\n//\n// This function is used to generate an reducer evaluation context \n// for the allOf, anyOf, oneOf and not keywords. The reducer mechansism\n// is required from 2019-09 onwards to gather evaluated keys and indices\n// for the unevaluatedItems and unevaluatedProperties keywords.\n//\n// ------------------------------------------------------------------\n//\n// const context = new Context() // exterior\n//\n// (() => {\n// const results = []\n//\n// const context_0 = context.Clone()\n// const context_1 = context.Clone()\n// const context_2 = context.Clone()\n// const context_3 = context.Clone()\n// \n// const condition_0 = ((context) => <subschema>)(context_0)\n// const condition_1 = ((context) => <subschema>)(context_1)\n// const condition_2 = ((context) => <subschema>)(context_2)\n// const condition_3 = ((context) => <subschema>)(context_3)\n// \n// if(condition_0) results.push(context_0)\n// if(condition_1) results.push(context_1)\n// if(condition_2) results.push(context_2)\n// if(condition_3) results.push(context_3)\n//\n// return <check> && context.Merge(results)\n// })()\n//\n// ------------------------------------------------------------------\nexport function Reducer(stack, context, schemas, value, check) {\n const results = E.ConstDeclaration('results', '[]');\n const context_n = schemas.map((_schema, index) => E.ConstDeclaration(`context_${index}`, E.New('CheckContext', [])));\n const condition_n = schemas.map((schema, index) => E.ConstDeclaration(`condition_${index}`, E.Call(E.ArrowFunction(['context'], BuildSchema(stack, context, schema, value)), [`context_${index}`])));\n const checks = schemas.map((_schema, index) => E.If(`condition_${index}`, E.Call(E.Member('results', 'push'), [`context_${index}`])));\n const returns = E.Return(E.And(check, context.Merge('results')));\n return E.Call(E.ArrowFunction([], E.Statements([results, ...context_n, ...condition_n, ...checks, returns])), []);\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, ErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAllOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.allOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(schema.allOf.length)));\n}\nfunction BuildAllOfFast(stack, context, schema, value) {\n return E.ReduceAnd(schema.allOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAllOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAllOfStandard(stack, context, schema, value)\n : BuildAllOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAllOf(stack, context, schema, value) {\n const results = schema.allOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAllOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.allOf.reduce((result, schema, index) => {\n const nextSchemaPath = `${schemaPath}/allOf/${index}`;\n const nextContext = new ErrorContext();\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAllOf = G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n if (!isAllOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAllOf;\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, ErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAnyOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.anyOf, value, E.IsGreaterThan(E.Member('results', 'length'), E.Constant(0)));\n}\nfunction BuildAnyOfFast(stack, context, schema, value) {\n return E.ReduceOr(schema.anyOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAnyOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAnyOfStandard(stack, context, schema, value)\n : BuildAnyOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAnyOf(stack, context, schema, value) {\n const results = schema.anyOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsGreaterThan(results.length, 0) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.anyOf.reduce((result, schema, index) => {\n const nextContext = new ErrorContext();\n const nextSchemaPath = `${schemaPath}/anyOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAnyOf = G.IsGreaterThan(results.length, 0) && context.Merge(results);\n if (!isAnyOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAnyOf || context.AddError({\n keyword: 'anyOf',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildSchemaBoolean(_stack, _context, schema, _value) {\n return schema ? E.Constant(true) : E.Constant(false);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckSchemaBoolean(_stack, _context, schema, _value) {\n return schema;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorSchemaBoolean(stack, context, schemaPath, instancePath, schema, value) {\n return CheckSchemaBoolean(stack, context, schema, value) || context.AddError({\n keyword: 'boolean',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildConst(_stack, _context, schema, value) {\n return G.IsValueLike(schema.const)\n ? E.IsEqual(value, E.Constant(schema.const))\n : E.IsDeepEqual(value, Externals.CreateVariable(schema.const));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckConst(_stack, _context, schema, value) {\n return G.IsValueLike(schema.const)\n ? G.IsEqual(value, schema.const)\n : G.IsDeepEqual(value, schema.const);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorConst(stack, context, schemaPath, instancePath, schema, value) {\n return CheckConst(stack, context, schema, value) || context.AddError({\n keyword: 'const',\n schemaPath,\n instancePath,\n params: { allowedValue: schema.const },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Invalid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !(Schema.IsMinContains(schema) && G.IsEqual(schema.minContains, 0));\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildContainsStandard(stack, context, schema, value) {\n const [item, index] = [Unique(), Unique()];\n const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));\n const isSome = E.SomeAll(value, [item, index], E.And(BuildSchema(stack, context, schema.contains, item), context.AddIndex(index)));\n return E.And(isLength, isSome);\n}\nfunction BuildContainsFast(stack, context, schema, value) {\n const [item] = [Unique()];\n const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));\n const isSome = E.Some(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));\n return E.And(isLength, isSome);\n}\nexport function BuildContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n return context.UseUnevaluated()\n ? BuildContainsStandard(stack, context, schema, value)\n : BuildContainsFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n return !G.IsEqual(value.length, 0) && G.SomeAll(value, (item, index) => {\n return CheckSchema(stack, context, schema.contains, item) && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: 1 },\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependencies(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEveryDependency = E.ReduceAnd(G.Entries(schema.dependencies).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n const isEveryKey = (schema) => E.ReduceAnd(schema.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, G.IsArray(schema) ? isEveryKey(schema) : isSchema);\n }));\n return E.Or(isLength, isEveryDependency);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependencies(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((key) => G.HasPropertyKey(value, key))\n : CheckSchema(stack, context, schema, value));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependencies(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependencies/${key}`;\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependencies',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: schema },\n })) : ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value));\n });\n return isLength || isEvery;\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentRequired(_stack, _context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentRequired).map(([key, keys]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const everyKey = E.ReduceAnd(keys.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, everyKey);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentRequired(_stack, _context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) ||\n keys.every((key) => G.HasPropertyKey(value, key));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentRequired(_stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEveryEntry = G.EveryAll(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) || G.EveryAll(keys, 0, (dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependentRequired',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: keys },\n }));\n });\n return isLength || isEveryEntry;\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentSchemas(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentSchemas).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n return E.Or(notKey, isSchema);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentSchemas(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) ||\n CheckSchema(stack, context, schema, value);\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependentSchemas/${key}`;\n return !G.HasPropertyKey(value, key) ||\n ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value);\n });\n return isLength || isEvery;\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDynamicRef(stack, context, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDynamicRef(stack, context, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return (Schema.IsSchema(target) && CheckSchema(stack, context, target, value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDynamicRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return (Schema.IsSchema(target) && ErrorSchema(stack, context, '#', instancePath, target, value));\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildEnum(_stack, _context, schema, value) {\n return E.ReduceOr(schema.enum.map(option => {\n if (G.IsValueLike(option))\n return E.IsEqual(value, E.Constant(option));\n const variable = Externals.CreateVariable(option);\n return E.IsDeepEqual(value, variable);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckEnum(_stack, _context, schema, value) {\n return G.Some(schema.enum, option => G.IsValueLike(option)\n ? G.IsEqual(value, option)\n : G.IsDeepEqual(value, option));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorEnum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckEnum(stack, context, schema, value) || context.AddError({\n keyword: 'enum',\n schemaPath,\n instancePath,\n params: { allowedValues: schema.enum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMaximum(_stack, _context, schema, value) {\n return E.IsLessThan(value, E.Constant(schema.exclusiveMaximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMaximum(_stack, _context, schema, value) {\n return G.IsLessThan(value, schema.exclusiveMaximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMaximum',\n schemaPath,\n instancePath,\n params: { comparison: '<', limit: schema.exclusiveMaximum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMinimum(_stack, _context, schema, value) {\n return E.IsGreaterThan(value, E.Constant(schema.exclusiveMinimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMinimum(_stack, _context, schema, value) {\n return G.IsGreaterThan(value, schema.exclusiveMinimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMinimum',\n schemaPath,\n instancePath,\n params: { comparison: '>', limit: schema.exclusiveMinimum }\n });\n}\n","const DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nfunction IsLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n/**\n * Returns true if the value is a ISO8601 Date component string\n * @description https://datatracker.ietf.org/doc/html/rfc3339\n * @example `2020-12-12`\n */\nexport function IsDate(value) {\n const matches = DATE.exec(value);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && IsLeapYear(year) ? 29 : DAYS[month]);\n}\n","const TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.\\d+)?(?:([Zz])|([+-])(\\d\\d):(\\d\\d))?$/;\n/**\n * Returns true if the value is an ISO time string\n * @specification https://datatracker.ietf.org/doc/html/rfc3339\n */\nexport function IsTime(value, strictTimeZone = true) {\n const matches = TIME.exec(value);\n if (!matches)\n return false;\n // Require timezone offset or 'Z'/'z' when strictTimeZone is true\n if (strictTimeZone && !matches[4] && !matches[5])\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n if (hr > 23 || min > 59 || sec > 60)\n return false;\n if (matches[5]) {\n const tzH = +matches[6];\n const tzM = +matches[7];\n if (tzH > 23 || tzM > 59)\n return false;\n }\n if (sec < 60)\n return true;\n // Leap second handling: must normalize to 23:59:60 UTC (1439 total UTC minutes)\n const tzSign = matches[5] === '-' ? -1 : 1;\n const tzH = +(matches[6] || 0);\n const tzM = +(matches[7] || 0);\n const totalUtcMin = (hr * 60 + min) - tzSign * (tzH * 60 + tzM);\n return (totalUtcMin % 1440 + 1440) % 1440 === 1439;\n}\n","import { IsDate } from './date.mjs';\nimport { IsTime } from './time.mjs';\n/**\n * Returns true if the value is a ISO8601 DateTime string\n * @specification https://datatracker.ietf.org/doc/html/rfc3339\n * @example `2020-12-12T20:20:40+00:00`\n */\nexport function IsDateTime(value) {\n const dateTime = value.split(/T/i);\n return dateTime.length === 2 && IsDate(dateTime[0]) && IsTime(dateTime[1]);\n}\n","const Duration = /^P((\\d+Y(\\d+M(\\d+D)?)?|\\d+M(\\d+D)?|\\d+D)(T(\\d+H(\\d+M(\\d+S)?)?|\\d+M(\\d+S)?|\\d+S))?|T(\\d+H(\\d+M(\\d+S)?)?|\\d+M(\\d+S)?|\\d+S)|\\d+W)$/;\n/**\n * Returns true if the value is a valid ISO-8601 duration.\n * @specification https://tools.ietf.org/html/rfc3339\n */\nexport function IsDuration(value) {\n return Duration.test(value);\n}\n","const Email = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[^\"\\\\]|\\\\[\\x20-\\x7e])*\")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\\])$/i;\n/**\n * Returns true if the value is an Email\n * @specification https://datatracker.ietf.org/doc/html/rfc5322\n */\nexport function IsEmail(value) {\n return Email.test(value);\n}\n","// deno-fmt-ignore-file\n// -------------------------------------------------------------------\n// Validation Rules\n// -------------------------------------------------------------------\nexport const RE_RULE_HYPHEN_PLACEMENT = /^(?!-).*(?<!-)$/;\nexport const RE_RULE_NOT_RESERVED_ACE = /^(?!..--)/;\nexport const RE_ASCII_LDH = /^[a-zA-Z0-9-]*$/;\n// -------------------------------------------------------------------\n// ASCII & Encoding\n// -------------------------------------------------------------------\nexport const RE_ASCII = /^\\p{ASCII}*$/u;\nexport const RE_NON_ASCII = /[^\\p{ASCII}]/u;\n// -------------------------------------------------------------------\n// Structural & Unicode Controls\n// -------------------------------------------------------------------\nexport const RE_HIGH_SURROGATE = /[\\u{d800}-\\u{dbff}]/u;\nexport const RE_REGIONAL_INDICATOR = /[\\u{1f1e6}-\\u{1f1ff}]/u;\nexport const RE_VARIATION_SELECTOR = /[\\u{fe00}-\\u{fe0f}]/u;\nexport const RE_ZERO_WIDTH_JOINER = /\\u{200d}/u;\n// -------------------------------------------------------------------\n// Numbers & Digits\n// -------------------------------------------------------------------\nexport const RE_ASCII_DIGIT = /[0-9]/;\nexport const RE_ARABIC_INDIC_DIGIT = /[\\u{0660}-\\u{0669}]/u;\nexport const RE_EXT_ARABIC_INDIC_DIGIT = /[\\u{06f0}-\\u{06f9}]/u;\n// -------------------------------------------------------------------\n// Separators\n// -------------------------------------------------------------------\nexport const RE_COMMON_SEPARATOR = /[\\u{002e}\\u{002c}\\u{003a}\\u{002f}]/u;\nexport const RE_EUROPEAN_SEPARATOR = /[\\u{002d}\\u{002b}]/u;\n// -------------------------------------------------------------------\n// General Categories\n// -------------------------------------------------------------------\nexport const RE_MARK_NONSPACING = /\\p{Mn}/u;\nexport const RE_MARK_SPACING_COMBINING = /\\p{Mc}/u;\nexport const RE_MARK_ENCLOSING = /\\p{Me}/u;\nexport const RE_COMBINING_MARK = /[\\p{Mn}\\p{Mc}\\p{Me}]/u;\nexport const RE_LETTER = /\\p{L}/u;\nexport const RE_NUMBER_DECIMAL = /\\p{Nd}/u;\n// -------------------------------------------------------------------\n// Scripts\n// -------------------------------------------------------------------\nexport const RE_SCRIPT_GREEK = /\\p{Script=Greek}/u;\nexport const RE_SCRIPT_HEBREW = /\\p{Script=Hebrew}/u;\nexport const RE_SCRIPT_JAPANESE = /[\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Han}]/u;\nexport const RE_SCRIPT_ARABIC_LETTER = /[\\p{Script=Arabic}\\p{Script=Syriac}\\p{Script=Thaana}\\p{Script=Mandaic}]/u;\n// -------------------------------------------------------------------\n// RFC Specifications & Context Exceptions\n// -------------------------------------------------------------------\nexport const RE_VIRAMA = /[\\u{094d}\\u{09cd}\\u{0a4d}\\u{0acd}\\u{0b4d}\\u{0bcd}\\u{0c4d}\\u{0ccd}\\u{0d3b}\\u{0d3c}\\u{0d4d}\\u{0dca}\\u{1b44}\\u{1baa}\\u{1bab}\\u{a9c0}\\u{11046}\\u{1107f}\\u{110b9}\\u{11133}\\u{11134}\\u{111c0}\\u{11235}\\u{1134d}\\u{11442}\\u{114c2}\\u{115bf}\\u{1163f}\\u{116b6}\\u{11c3f}\\u{11d44}\\u{11d45}]/u;\nexport const RE_RFC5892_DISALLOWED = /[\\u{0640}\\u{07fa}\\u{302e}\\u{302f}\\u{3031}\\u{3032}\\u{3033}\\u{3034}\\u{3035}\\u{303b}]/u;\nexport const RE_CONTEXTO_EXCEPTIONS = /[\\u{00b7}\\u{0375}\\u{05f3}\\u{05f4}\\u{200c}\\u{200d}\\u{30fb}]/u;\nexport const RE_PVALID_EXCEPTIONS = /[\\u{00df}\\u{03c2}\\u{06fd}\\u{06fe}\\u{0f0b}\\u{3007}]/u;\n// -------------------------------------------------------------------\n// Composite Patterns\n// -------------------------------------------------------------------\nexport const RE_EUROPEAN_NUMBER = new RegExp([\n RE_ASCII_DIGIT,\n RE_EXT_ARABIC_INDIC_DIGIT\n].map((regexp) => regexp.source).join('|'), 'u');\nexport const RE_PERMITTED_CATEGORY = new RegExp([\n RE_LETTER,\n RE_EUROPEAN_SEPARATOR,\n RE_COMMON_SEPARATOR,\n RE_NUMBER_DECIMAL,\n RE_MARK_NONSPACING,\n RE_MARK_SPACING_COMBINING,\n RE_CONTEXTO_EXCEPTIONS,\n RE_PVALID_EXCEPTIONS\n].map((regexp) => regexp.source).join('|'), 'u');\n","import * as Pattern from '../pattern/pattern.mjs';\n// -------------------------------------------------------------------\n// Validates an ASCII LDH label per RFC 5891 §4.2.3.1\n// -------------------------------------------------------------------\nexport function IsAsciiLabel(value) {\n return (Pattern.RE_RULE_HYPHEN_PLACEMENT.test(value) &&\n Pattern.RE_RULE_NOT_RESERVED_ACE.test(value) &&\n Pattern.RE_ASCII_LDH.test(value));\n}\n","import * as Pattern from '../pattern/pattern.mjs';\n// ------------------------------------------------------------------\n// PunyCode (RFC 3492)\n// ------------------------------------------------------------------\nconst PUNYCODE_BASE = 36;\nconst PUNYCODE_TMIN = 1;\nconst PUNYCODE_TMAX = 26;\nconst PUNYCODE_SKEW = 38;\nconst PUNYCODE_DAMP = 700;\nconst PUNYCODE_INITIAL_BIAS = 72;\nconst PUNYCODE_INITIAL_N = 128;\n// ------------------------------------------------------------------\n// ThrowDontCare\n// ------------------------------------------------------------------\nfunction ThrowDontCare() {\n throw null;\n}\n// ------------------------------------------------------------------\n// IsAcePrefixed\n// ------------------------------------------------------------------\nexport function IsAcePrefixed(value) {\n return value.toLowerCase().startsWith('xn--');\n}\n// ------------------------------------------------------------------\n// Adapt\n// ------------------------------------------------------------------\nfunction Adapt(delta, numPoints, firstTime) {\n delta = firstTime ? Math.floor(delta / PUNYCODE_DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n let k = 0;\n while (delta > (((PUNYCODE_BASE - PUNYCODE_TMIN) * PUNYCODE_TMAX) >> 1)) {\n delta = Math.floor(delta / (PUNYCODE_BASE - PUNYCODE_TMIN));\n k += PUNYCODE_BASE;\n }\n return k + Math.floor(((PUNYCODE_BASE - PUNYCODE_TMIN + 1) * delta) / (delta + PUNYCODE_SKEW));\n}\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nexport function Decode(value) {\n const output = [];\n let n = PUNYCODE_INITIAL_N;\n let i = 0;\n let bias = PUNYCODE_INITIAL_BIAS;\n const delimIdx = value.lastIndexOf('-');\n if (delimIdx > 0) {\n for (let j = 0; j < delimIdx; j++) {\n const cp = value.charCodeAt(j);\n if (cp >= 128)\n ThrowDontCare(); // throw new Error('Invalid punycode: non-basic before delimiter')\n output.push(cp);\n }\n }\n let inIdx = delimIdx < 0 ? 0 : delimIdx + 1;\n while (inIdx < value.length) {\n const oldi = i;\n let w = 1;\n let k = PUNYCODE_BASE;\n while (true) {\n if (inIdx >= value.length)\n ThrowDontCare(); // throw new Error('Invalid punycode: unexpected end of input')\n const ch = value.charCodeAt(inIdx++);\n let digit;\n if (ch >= 0x61 && ch <= 0x7a)\n digit = ch - 0x61; // a-z => 0-25\n else if (ch >= 0x30 && ch <= 0x39)\n digit = ch - 0x30 + 26; // 0-9 => 26-35\n // else if (ch >= 0x41 && ch <= 0x5a) digit = ch - 0x41 // A-Z => 0-25 // (no-spec-coverage)\n else\n ThrowDontCare(); // throw new Error('Invalid punycode: bad digit character')\n i += digit * w;\n const t = k <= bias ? PUNYCODE_TMIN : k >= bias + PUNYCODE_TMAX ? PUNYCODE_TMAX : k - bias;\n if (digit < t)\n break;\n w *= PUNYCODE_BASE - t;\n k += PUNYCODE_BASE;\n }\n const outLen = output.length + 1;\n bias = Adapt(i - oldi, outLen, oldi === 0);\n n += Math.floor(i / outLen);\n i %= outLen;\n output.splice(i, 0, n);\n i++;\n }\n return String.fromCodePoint(...output);\n}\n// ------------------------------------------------------------------\n// DigitToChar\n// ------------------------------------------------------------------\nfunction DigitToChar(digit) {\n return digit < 26 ? String.fromCharCode(digit + 0x61) : String.fromCharCode(digit - 26 + 0x30);\n}\n// ------------------------------------------------------------------\n// Encode\n//\n// Encodes a Unicode string into its Punycode payload (the part that\n// follows the 'xn--' ACE prefix). Used to compute the true A-label\n// length of a U-label, since the 63-octet label length limit (RFC\n// 5891 §4.2.4) applies to the encoded form, not the code point count.\n// ------------------------------------------------------------------\nconst RE_REPLACE_NON_ASCII = new RegExp(Pattern.RE_NON_ASCII.source, 'gu');\nexport function Encode(input) {\n // Extract basic ASCII characters and set initial output array state\n const basic = input.replace(RE_REPLACE_NON_ASCII, '');\n const basicLength = basic.length;\n const result = basicLength > 0 ? [basic, '-'] : [];\n // Extract unicode codepoints\n const codePoints = Array.from(input, (char) => char.codePointAt(0));\n let n = PUNYCODE_INITIAL_N;\n let delta = 0;\n let bias = PUNYCODE_INITIAL_BIAS;\n let handledCPCount = basicLength;\n while (handledCPCount < codePoints.length) {\n let m = Infinity;\n for (const cp of codePoints) {\n if (cp >= n && cp < m)\n m = cp;\n }\n delta += (m - n) * (handledCPCount + 1);\n n = m;\n for (const cp of codePoints) {\n if (cp < n)\n delta++;\n if (cp === n) {\n let q = delta;\n for (let k = PUNYCODE_BASE;; k += PUNYCODE_BASE) {\n const t = k <= bias ? PUNYCODE_TMIN : k >= bias + PUNYCODE_TMAX ? PUNYCODE_TMAX : k - bias;\n if (q < t)\n break;\n const digit = t + ((q - t) % (PUNYCODE_BASE - t));\n result.push(DigitToChar(digit));\n q = Math.floor((q - t) / (PUNYCODE_BASE - t));\n }\n result.push(DigitToChar(q));\n bias = Adapt(delta, handledCPCount + 1, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n delta++;\n n++;\n }\n return result.join('');\n}\n","// deno-fmt-ignore-file\nimport * as FormatPuny from './puny.mjs';\nimport * as Pattern from '../pattern/pattern.mjs';\n// ------------------------------------------------------------------\n// LOCAL REGEX: Allowed Bidi classes per direction (RFC 5893)\n// ------------------------------------------------------------------\nconst RE_RTL_ALLOWED = /^(?:R|AL|AN|EN|ES|CS|ET|ON|BN|NSM)$/;\nconst RE_LTR_ALLOWED = /^(?:L|EN|ES|CS|ET|ON|BN|NSM)$/;\nconst RE_RTL_CLASSES = /^(?:R|AL|AN)$/;\n// ------------------------------------------------------------------\n// HasBidiChars\n//\n// Decodes a punycode label to its Unicode form (if it is one) and\n// checks whether the result is an RTL label per RFC 5893 §1.4.\n// ------------------------------------------------------------------\nexport function HasBidiChars(value) {\n if (FormatPuny.IsAcePrefixed(value)) {\n try {\n return HasRightToLeftCharacters(FormatPuny.Decode(value.slice(4).toLowerCase()));\n }\n catch {\n return false;\n }\n }\n return HasRightToLeftCharacters(value);\n}\n// ------------------------------------------------------------------\n// GetBidiClass\n// ------------------------------------------------------------------\nfunction GetBidiClass(codePoint) {\n const char = String.fromCodePoint(codePoint);\n return (Pattern.RE_EUROPEAN_NUMBER.test(char) ? 'EN' :\n Pattern.RE_ARABIC_INDIC_DIGIT.test(char) ? 'AN' :\n // Pattern.RE_EUROPEAN_SEPARATOR.test(char) ? 'ES' : // (no-spec-coverage)\n // Pattern.RE_COMMON_SEPARATOR.test(char) ? 'CS' : // (no-spec-coverage)\n Pattern.RE_MARK_NONSPACING.test(char) ? 'NSM' :\n Pattern.RE_SCRIPT_HEBREW.test(char) ? 'R' :\n Pattern.RE_SCRIPT_ARABIC_LETTER.test(char) ? 'AL' :\n Pattern.RE_LETTER.test(char) ? 'L' :\n 'ON');\n}\n// ------------------------------------------------------------------\n// HasRightToLeftCharacters\n//\n// Per RFC 5893 §1.4: \"An RTL label is a label that contains at least\n// one character of type R, AL, or AN.\" Used to determine whether a\n// domain name is a \"Bidi domain name\" (RFC 5893 §1.4), in which case\n// the Bidi Rule applies to every label in the domain.\n// ------------------------------------------------------------------\nexport function HasRightToLeftCharacters(value) {\n for (const ch of value)\n if (RE_RTL_CLASSES.test(GetBidiClass(ch.codePointAt(0))))\n return true;\n return false;\n}\n// ------------------------------------------------------------------\n// SatisfiesBidiRule\n// ------------------------------------------------------------------\nexport function SatisfiesBidiRule(value) {\n let isRtl = false;\n let allowed = RE_LTR_ALLOWED;\n let sawEN = false;\n let sawAN = false;\n let isFirst = true;\n // let lastClass: string | null = null // (no-spec-coverage)\n for (const ch of value) {\n const bidiClass = GetBidiClass(ch.codePointAt(0));\n if (isFirst) {\n // 1. The first character must be a character with Bidi property L, R, or AL.\n if (bidiClass !== 'L' && bidiClass !== 'R' && bidiClass !== 'AL')\n return false;\n isRtl = bidiClass === 'R' || bidiClass === 'AL';\n allowed = isRtl ? RE_RTL_ALLOWED : RE_LTR_ALLOWED;\n isFirst = false;\n }\n // 2 / 5. Only characters in the allowed set for this direction may appear.\n if (!allowed.test(bidiClass))\n return false;\n if (bidiClass === 'EN')\n sawEN = true;\n else if (bidiClass === 'AN')\n sawAN = true;\n // if (bidiClass !== 'NSM') lastClass = bidiClass // (no-spec-coverage)\n }\n if (isRtl && sawEN && sawAN)\n return false; // spec coverage path\n // (no-spec-coverage)\n // if (isRtl) {\n // // 3. The end of the label must be R, AL, EN, or AN (ignoring trailing NSM).\n // // if (lastClass !== 'R' && lastClass !== 'AL' && lastClass !== 'EN' && lastClass !== 'AN') return false\n // // 4. If an EN is present, no AN may be present, and vice versa.\n // if (sawEN && sawAN) return false\n // } else {\n // // 6. The end of the label must be L or EN (ignoring trailing NSM).\n // // if (lastClass !== 'L' && lastClass !== 'EN') return false\n // }\n return true;\n}\n","import * as Pattern from '../pattern/pattern.mjs';\nimport * as FormatBidi from '../format/bidi.mjs';\nimport * as FormatPuny from '../format/puny.mjs';\n// ------------------------------------------------------------------\n// ExceedsMaxALabelLength\n//\n// RFC 5890 §2.3.2.1: an A-label (the ACE-encoded form of a label,\n// \"xn--\" + punycode) must not exceed 63 octets. Only labels\n// containing non-ASCII characters need checking - a pure-ASCII label\n// has no \"xn--\" prefix and is used as-is, so its punycode-encoded\n// length is irrelevant. The ASCII check is a cheap short-circuit that\n// avoids running the punycode encoder on labels that don't need it.\n// ------------------------------------------------------------------\nfunction ExceedsMaxALabelLength(value) {\n return Pattern.RE_NON_ASCII.test(value) && FormatPuny.Encode(value).length + 4 > 63;\n}\n// ------------------------------------------------------------------\n// HasInvalidHyphens\n//\n// RFC 5891 §4.2.3.2: label must not start or end with a hyphen, and\n// must not have hyphens in the 3rd and 4th codepoint positions (the\n// ACE prefix reservation, e.g. \"xn--\"). Operates on `chars` (the\n// per-codepoint string array) rather than raw string indices so\n// supplementary-plane characters earlier in the label don't throw\n// off the codepoint-position count.\n// ------------------------------------------------------------------\nfunction HasInvalidHyphens(chars) {\n if (chars[0] === '-' || chars[chars.length - 1] === '-')\n return true;\n return chars.slice(2).join('').startsWith('--');\n}\n// ------------------------------------------------------------------\n// IsUnicodeLabel\n// ------------------------------------------------------------------\nexport function IsUnicodeLabel(value) {\n // RFC 5890 §2.3.2.1: Ensure Max Length\n if (ExceedsMaxALabelLength(value))\n return false;\n // RFC 5893 - Bidi Rule (applies whenever this label itself is RTL)\n if (FormatBidi.HasRightToLeftCharacters(value) && !FormatBidi.SatisfiesBidiRule(value))\n return false;\n const chars = [...value];\n const codePoints = chars.map((c) => c.codePointAt(0));\n const length = codePoints.length;\n // RFC 5891 §4.2.3.2: Hyphen rules\n if (HasInvalidHyphens(chars))\n return false;\n // RFC 5891 §4.2.3.2 - Must not begin with a combining mark\n if (Pattern.RE_COMBINING_MARK.test(chars[0]))\n return false;\n let hasJapanese = false;\n // let hasArabicIndic = false // (no-spec-coverage)\n // let hasExtendedArabicIndic = false // (no-spec-coverage)\n for (let i = 0; i < length; i++) {\n const codePoint = codePoints[i];\n const char = chars[i];\n // 1. DISALLOWED exceptions\n if (Pattern.RE_RFC5892_DISALLOWED.test(char))\n return false;\n // 1b. General category (PVALID) enforcement\n if (!Pattern.RE_PERMITTED_CATEGORY.test(char))\n return false;\n // 2. Collect Flags\n if (Pattern.RE_SCRIPT_JAPANESE.test(char))\n hasJapanese = true;\n // if (Pattern.RE_ARABIC_INDIC_DIGIT.test(char)) hasArabicIndic = true // (no-spec-coverage)\n // if (Pattern.RE_EXT_ARABIC_INDIC_DIGIT.test(char)) hasExtendedArabicIndic = true // (no-spec-coverage)\n // 3. CONTEXTO / CONTEXTJ Neighbor Rules\n const prev = codePoints[i - 1], next = codePoints[i + 1];\n switch (codePoint) {\n case 0x00b7:\n if (prev !== 0x006c || next !== 0x006c)\n return false;\n break; // MIDDLE DOT (Catalan)\n case 0x0375:\n if (!next || !Pattern.RE_SCRIPT_GREEK.test(chars[i + 1]))\n return false;\n break; // Greek KERAIA\n case 0x05f3:\n case 0x05f4:\n if (!prev || !Pattern.RE_SCRIPT_HEBREW.test(chars[i - 1]))\n return false;\n break; // Hebrew GERESH\n case 0x200c: // ZWNJ - RFC 5892 Appendix A.1\n // Note: Full validation requires a Unicode joining type table. We reject\n // only when preceded by ASCII (U+0000-U+007F), which can never satisfy\n // the Virama or cursive-joining rules.\n if (!prev || (prev < 0x0080 && !Pattern.RE_VIRAMA.test(chars[i - 1])))\n return false;\n break;\n case 0x200d: // ZWJ: RFC 5892 Appendix A.2\n if (!prev || !Pattern.RE_VIRAMA.test(chars[i - 1]))\n return false;\n break;\n case 0x30fb: // Checked at end via hasJapanese\n break; // KATAKANA MIDDLE DOT\n }\n }\n // 4. Global Context Validations (Post-loop)\n // RFC 5892 Appendix A.7 - Katakana Middle Dot requirement\n if (value.includes('\\u30fb') && !hasJapanese)\n return false;\n // RFC 5892 Appendix A.8/A.9 - Mixing Arabic Digits\n // if (hasArabicIndic && hasExtendedArabicIndic) return false // (no-spec-coverage)\n return true;\n}\n","import * as FormatPuny from '../format/puny.mjs';\nimport * as LabelUnicode from './unicode.mjs';\nimport * as Pattern from '../pattern/pattern.mjs';\n// ------------------------------------------------------------------\n// IsPunyLabel\n// ------------------------------------------------------------------\nexport function IsPunyLabel(value) {\n if (!FormatPuny.IsAcePrefixed(value))\n return false;\n try {\n const body = value.slice(4).toLowerCase();\n // A payload consisting of only a hyphen, or starting with the delimiter\n // (like \"-9uc\"), has 0 basic ASCII characters preceding it and is malformed.\n if (body.lastIndexOf('-') === 0)\n return false;\n const decoded = FormatPuny.Decode(body);\n // RFC 5890 §2.3.2.1 - a U-label must contain at least one non-ASCII\n // character. Code-unit level check: any non-ASCII codepoint has at least\n // one UTF-16 unit >= 0x80 (surrogate halves included), so no need to\n // decode codepoints or allocate a character array to answer this.\n if (!Pattern.RE_NON_ASCII.test(decoded))\n return false;\n return LabelUnicode.IsUnicodeLabel(decoded);\n }\n catch {\n return false;\n }\n}\n","import * as LabelAscii from './label/ascii.mjs';\nimport * as LabelPuny from './label/puny.mjs';\nfunction IsValidLabelLength(value) {\n return value.length > 0 && value.length <= 63;\n}\nfunction IsLabel(value) {\n return IsValidLabelLength(value) && (LabelPuny.IsPunyLabel(value) ||\n LabelAscii.IsAsciiLabel(value));\n}\nexport function IsHostname(value) {\n if (value.length === 0 || value.length > 253)\n return false;\n if (value.charCodeAt(value.length - 1) === 46)\n return false;\n return value.split('.').every((label) => IsLabel(label));\n}\n","import * as FormatBidi from './format/bidi.mjs';\nimport * as LabelUnicode from './label/unicode.mjs';\nimport * as LabelPuny from './label/puny.mjs';\n// ------------------------------------------------------------------\n// IsLabel\n// ------------------------------------------------------------------\nfunction IsValidLabelLength(value) {\n return value.length > 0 && value.length <= 63;\n}\nfunction IsLabel(value) {\n return IsValidLabelLength(value) && (LabelPuny.IsPunyLabel(value) ||\n LabelUnicode.IsUnicodeLabel(value));\n}\n// ------------------------------------------------------------------\n// NormalizeHostname\n//\n// Normalizes a hostname for label validation. Maps fullwidth\n// codepoints to their ASCII equivalent (e.g. 'a' U+FF41 maps to\n// 'a'), then normalizes for NFC such that equivalent codepoint\n// sequences can be uniformly compared. It also removes codepoints\n// that IDNA mapping ignores, and converts full stop variants to\n// ASCII '.' so the hostname can be split into labels.\n// ------------------------------------------------------------------\nfunction NormalizeHostname(value) {\n return value\n .replace(/[\\uff01-\\uff5e]/g, (char) => String.fromCharCode(char.charCodeAt(0) - 0xfee0)) // RE_FULLWIDTH_MAPPING\n .normalize('NFC')\n .replace(/[\\u00ad\\u034f\\u180b-\\u180d\\u200b\\ufe00-\\ufe0f\\u{e0100}-\\u{e01ef}]/gu, '') // RE_IGNORED_MAPPING\n .replace(/[\\u002E\\u3002\\uFF0E\\uFF61]/g, '.'); // RE_FULL_STOP_MAPPING\n}\n// ------------------------------------------------------------------\n// IsIdnHostname\n// ------------------------------------------------------------------\nexport function IsIdnHostname(value) {\n if (value.length === 0 || value.includes(' '))\n return false;\n const normalized = NormalizeHostname(value);\n if (normalized.length > 253)\n return false;\n const labels = normalized.split('.');\n const hasBidiChars = labels.some((label) => FormatBidi.HasBidiChars(label));\n return labels.every((label) => IsLabel(label) && (!hasBidiChars || FormatBidi.SatisfiesBidiRule(label)));\n}\n","import * as Idna from './idna/index.mjs';\n/**\n * Returns true if the value is a valid hostname.\n * @specification https://tools.ietf.org/html/rfc1123\n * @specification https://tools.ietf.org/html/rfc5891\n * @specification https://tools.ietf.org/html/rfc5892\n */\nexport function IsHostname(value) {\n return Idna.IsHostname(value);\n}\n","const IdnEmail = /^(?:[A-Za-z0-9!#$%&'*+\\/=?^_`{|}~\\u{0080}-\\u{10FFFF}-]+(?:\\.[A-Za-z0-9!#$%&'*+\\/=?^_`{|}~\\u{0080}-\\u{10FFFF}-]+)*|\"(?:[^\"\\\\]|\\\\.)*\")@[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,62})(?<!-)(?:\\.[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,62})(?<!-))*$/iu;\n/**\n * Returns true if the value is an IdnEmail\n * @specification https://datatracker.ietf.org/doc/html/rfc4952\n */\nexport function IsIdnEmail(value) {\n return IdnEmail.test(value.normalize('NFC'));\n}\n","import * as Idna from './idna/index.mjs';\n/**\n * Returns true if the value is a valid internationalized (IDN) hostname.\n * @specification https://tools.ietf.org/html/rfc3490\n * @specification https://tools.ietf.org/html/rfc5891\n * @specification https://tools.ietf.org/html/rfc5892\n * @specification https://tools.ietf.org/html/rfc5893\n */\nexport function IsIdnHostname(value) {\n return Idna.IsIdnHostname(value);\n}\n","const IPv4 = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/;\n/**\n * Returns true if the value is a IPV4 address\n * @specification http://tools.ietf.org/html/rfc2673#section-3.2\n */\nexport function IsIPv4(value) {\n return IPv4.test(value);\n}\n","const IPv6 = /^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;\n/**\n * Returns true if the value is an IPv6 address\n * @specification http://tools.ietf.org/html/rfc2373#section-2.2\n */\nexport function IsIPv6(value) {\n return IPv6.test(value);\n}\n","// deno-lint-ignore-file no-control-regex\n// Rejects unencoded spaces (0x20), backslashes, control characters (0x00-0x1F, 0x7F), or malformed percent-encodings\nconst InvalidIriChars = /[\\x00-\\x20\\x7F\\\\]|%(?![0-9a-fA-F]{2})/;\n// Detects malformed scheme/authority patterns lacking a colon (e.g. \"httpx//example.com\")\nconst MalformedScheme = /^[a-zA-Z][a-zA-Z0-9+\\-.]*\\/\\//;\n/**\n * Returns true if the value is an IRI reference\n * @specification https://tools.ietf.org/html/rfc3987\n */\nexport function IsIriReference(value) {\n return (!InvalidIriChars.test(value) &&\n !MalformedScheme.test(value) &&\n URL.canParse(value, 'http://example.com'));\n}\n","// deno-lint-ignore-file no-control-regex\nconst IpvFutureMatchMaxLength = 2048;\nconst IpvFutureMatch = /\\[[vV][0-9a-fA-F]+\\.[^\\]]+\\]/; // Guarded By IpvFutureMatchMaxLength\nconst InvalidIriChars = /[\\x00-\\x20<>\\^`{|}\\\\]/;\nconst InvalidPercentEncoding = /%(?![0-9a-fA-F]{2})/;\n// ------------------------------------------------------------------\n// NarrowIpvFuture\n//\n// Substitutes an IPvFuture address with a standard IPv6 loopback\n// address ([::1]). We do this because the native URL.canParse\n// (WHATWG standard) rejects IPvFuture literals, which are\n// otherwise valid in RFC 3987. Because regex substitution can\n// be expensive on large strings, this operation is strictly\n// limited to inputs under a defined length threshold.\n//\n// (review-optimization)\n//\n// ------------------------------------------------------------------\nfunction NarrowIpvFuture(value) {\n return value.length < IpvFutureMatchMaxLength ? value.replace(IpvFutureMatch, '[::1]') : value;\n}\n/**\n * Returns true if the value is a valid Internationalized Resource Identifier.\n * @specification https://datatracker.ietf.org/doc/html/rfc3987\n */\nexport function IsIri(value) {\n // 1. Reject strings containing unencoded whitespace or illegal control characters.\n if (InvalidIriChars.test(value))\n return false;\n // 2. Reject malformed percent-encoding triplets.\n if (InvalidPercentEncoding.test(value))\n return false;\n // 3. Delegate to the native URL parser, patching the IPvFuture edge case beforehand.\n return URL.canParse(NarrowIpvFuture(value));\n}\n","const JsonPointerUriFragment = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n/**\n * Returns true if the value is a json pointer uri fragment\n * @specification https://datatracker.ietf.org/doc/html/rfc6901\n * @source https://github.com/ajv-validator/ajv-formats\n */\nexport function IsJsonPointerUriFragment(value) {\n return JsonPointerUriFragment.test(value);\n}\n","const JsonPointer = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\n/**\n * Returns true if the value is a json pointer\n * @specification https://datatracker.ietf.org/doc/html/rfc6901\n * @source https://github.com/ajv-validator/ajv-formats\n */\nexport function IsJsonPointer(value) {\n return JsonPointer.test(value);\n}\n","/**\n * Returns true if the value is a regular expression string pattern\n * @specification https://ecma-international.org/ecma-262\n */\nexport function IsRegex(value) {\n try {\n new RegExp(value, 'u');\n return true;\n }\n catch {\n return false;\n }\n}\n","const RelativeJsonPointer = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n/**\n * Returns true if the value is a relative json pointer\n * @specification https://datatracker.ietf.org/doc/html/rfc6901\n * @source https://github.com/ajv-validator/ajv-formats\n */\nexport function IsRelativeJsonPointer(value) {\n return RelativeJsonPointer.test(value);\n}\n","const UriReference = /^(?:[a-z][a-z0-9+\\-.]*:(?:\\/\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:[\\da-f]{1,4}:){6}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|::(?:[\\da-f]{1,4}:){5}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){4}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,1}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){3}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){2}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4})?::[\\da-f]{1,4}:(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4})?::[\\da-f]{1,4}|(?:(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4})?::)|v[0-9a-f]+\\.[-a-z0-9._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:\\/\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:[\\da-f]{1,4}:){6}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|::(?:[\\da-f]{1,4}:){5}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){4}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,1}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){3}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){2}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4})?::[\\da-f]{1,4}:(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4})?::[\\da-f]{1,4}|(?:(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4})?::)|v[0-9a-f]+\\.[-a-z0-9._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n/**\n * Returns true if the value is a valid Uri Reference.\n * @specification https://tools.ietf.org/html/rfc3986\n */\nexport function IsUriReference(value) {\n return UriReference.test(value);\n}\n","// deno-lint-ignore-file no-control-regex\nconst UriTemplate = /^(?:(?:[^\\x00-\\x20\"<>%\\\\^`{|}\\x7f]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\\d{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\\d{0,3}|\\*)?)*\\})*$/i;\n/**\n * Returns true if the value is a valid Uri Template\n * @specification https://datatracker.ietf.org/doc/html/rfc6570\n */\nexport function IsUriTemplate(value) {\n return UriTemplate.test(value);\n}\n","const Uri = /^[a-z][a-z0-9+\\-.]*:(?:\\/\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:[\\da-f]{1,4}:){6}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|::(?:[\\da-f]{1,4}:){5}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){4}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,1}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){3}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:){2}(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4})?::[\\da-f]{1,4}:(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4})?::(?:[\\da-f]{1,4}:[\\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))|(?:(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4})?::[\\da-f]{1,4}|(?:(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4})?::)|v[0-9a-f]+\\.[-a-z0-9._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n/**\n * Returns true if the value is a valid Uniform Resource Identifier.\n * @specification https://tools.ietf.org/html/rfc3986\n */\nexport function IsUri(value) {\n return Uri.test(value);\n}\n","/**\n * Returns true if the value is a valid Uniform Resource Locator\n * @specification https://datatracker.ietf.org/doc/html/rfc3986\n * @specification https://datatracker.ietf.org/doc/html/rfc3987\n */\nexport function IsUrl(value) {\n return URL.canParse(value);\n}\n","const Uuid = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n/**\n * Returns true if the value is a uuid\n * @specification https://www.rfc-editor.org/info/rfc4122/\n * @specification https://www.rfc-editor.org/info/rfc9562/\n */\nexport function IsUuid(value) {\n return Uuid.test(value);\n}\n","import { IsDateTime } from './date_time.mjs';\nimport { IsDate } from './date.mjs';\nimport { IsDuration } from './duration.mjs';\nimport { IsEmail } from './email.mjs';\nimport { IsHostname } from './hostname.mjs';\nimport { IsIdnEmail } from './idn_email.mjs';\nimport { IsIdnHostname } from './idn_hostname.mjs';\nimport { IsIPv4 } from './ipv4.mjs';\nimport { IsIPv6 } from './ipv6.mjs';\nimport { IsIriReference } from './iri_reference.mjs';\nimport { IsIri } from './iri.mjs';\nimport { IsJsonPointerUriFragment } from './json_pointer_uri_fragment.mjs';\nimport { IsJsonPointer } from './json_pointer.mjs';\nimport { IsRegex } from './regex.mjs';\nimport { IsRelativeJsonPointer } from './relative_json_pointer.mjs';\nimport { IsTime } from './time.mjs';\nimport { IsUriReference } from './uri_reference.mjs';\nimport { IsUriTemplate } from './uri_template.mjs';\nimport { IsUri } from './uri.mjs';\nimport { IsUrl } from './url.mjs';\nimport { IsUuid } from './uuid.mjs';\n// ------------------------------------------------------------------\n// Formats\n// ------------------------------------------------------------------\nconst formats = new Map();\n// ------------------------------------------------------------------\n// Clear\n// ------------------------------------------------------------------\n/** Clears all entries */\nexport function Clear() {\n formats.clear();\n}\n// ------------------------------------------------------------------\n// Entries\n// ------------------------------------------------------------------\n/** Returns format entries in this registry */\nexport function Entries() {\n return [...formats.entries()];\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a format */\nexport function Set(format, check) {\n formats.set(format, check);\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if the registry has this format */\nexport function Has(format) {\n return formats.has(format);\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a format or undefined if not exists */\nexport function Get(format) {\n return formats.get(format);\n}\n// ------------------------------------------------------------------\n// Test\n// ------------------------------------------------------------------\n/** Tests a value against a format, if the format is not registered, true */\nexport function Test(format, value) {\n return formats.get(format)?.(value) ?? true;\n}\n// ------------------------------------------------------------------\n// Reset\n// ------------------------------------------------------------------\n/** Resets all formats to defaults */\nexport function Reset() {\n Clear();\n formats.set('date-time', IsDateTime);\n formats.set('date', IsDate);\n formats.set('duration', IsDuration);\n formats.set('email', IsEmail);\n formats.set('hostname', IsHostname);\n formats.set('idn-email', IsIdnEmail);\n formats.set('idn-hostname', IsIdnHostname);\n formats.set('ipv4', IsIPv4);\n formats.set('ipv6', IsIPv6);\n formats.set('iri-reference', IsIriReference);\n formats.set('iri', IsIri);\n formats.set('json-pointer-uri-fragment', IsJsonPointerUriFragment);\n formats.set('json-pointer', IsJsonPointer);\n formats.set('regex', IsRegex);\n formats.set('relative-json-pointer', IsRelativeJsonPointer);\n formats.set('time', IsTime);\n formats.set('uri-reference', IsUriReference);\n formats.set('uri-template', IsUriTemplate);\n formats.set('uri', IsUri);\n formats.set('url', IsUrl);\n formats.set('uuid', IsUuid);\n}\nReset();\n","export * from './_registry.mjs';\nexport { IsDateTime } from './date_time.mjs';\nexport { IsDate } from './date.mjs';\nexport { IsDuration } from './duration.mjs';\nexport { IsEmail } from './email.mjs';\nexport { IsHostname } from './hostname.mjs';\nexport { IsIdnEmail } from './idn_email.mjs';\nexport { IsIdnHostname } from './idn_hostname.mjs';\nexport { IsIPv4 } from './ipv4.mjs';\nexport { IsIPv6 } from './ipv6.mjs';\nexport { IsIriReference } from './iri_reference.mjs';\nexport { IsIri } from './iri.mjs';\nexport { IsJsonPointerUriFragment } from './json_pointer_uri_fragment.mjs';\nexport { IsJsonPointer } from './json_pointer.mjs';\nexport { IsRegex } from './regex.mjs';\nexport { IsRelativeJsonPointer } from './relative_json_pointer.mjs';\nexport { IsTime } from './time.mjs';\nexport { IsUriReference } from './uri_reference.mjs';\nexport { IsUriTemplate } from './uri_template.mjs';\nexport { IsUri } from './uri.mjs';\nexport { IsUrl } from './url.mjs';\nexport { IsUuid } from './uuid.mjs';\n","// deno-fmt-ignore-file\nimport { Format } from '../../format/index.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildFormat(_stack, _context, schema, value) {\n return E.Call(E.Member('Format', 'Test'), [E.Constant(schema.format), value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckFormat(_stack, _context, schema, value) {\n return Format.Test(schema.format, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorFormat(stack, context, schemaPath, instancePath, schema, value) {\n return CheckFormat(stack, context, schema, value) || context.AddError({\n keyword: 'format',\n schemaPath,\n instancePath,\n params: { format: schema.format },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { ErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return E.Ternary(BuildSchema(stack, context, schema.if, value), BuildSchema(stack, context, thenSchema, value), BuildSchema(stack, context, elseSchema, value));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return CheckSchema(stack, context, schema.if, value)\n ? CheckSchema(stack, context, thenSchema, value)\n : CheckSchema(stack, context, elseSchema, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorIf(stack, context, schemaPath, instancePath, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n const trueContext = new ErrorContext();\n const isIf = ErrorSchema(stack, trueContext, `${schemaPath}/if`, instancePath, schema.if, value)\n ? ErrorSchema(stack, trueContext, `${schemaPath}/then`, instancePath, thenSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'then' },\n })\n : ErrorSchema(stack, context, `${schemaPath}/else`, instancePath, elseSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'else' },\n });\n if (isIf)\n context.Merge([trueContext]);\n return isIf;\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// ItemsSized\n// ------------------------------------------------------------------\nfunction BuildItemsSizedStandard(stack, context, schema, value) {\n return E.ReduceAnd(schema.items.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchemaPushStack(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n return E.Or(isLength, E.And(isSchema, addIndex));\n }));\n}\nfunction BuildItemsSizedFast(stack, context, schema, value) {\n return E.ReduceAnd(schema.items.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchemaPushStack(stack, context, schema, `${value}[${index}]`);\n return E.Or(isLength, isSchema);\n }));\n}\nfunction BuildItemsSized(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildItemsSizedStandard(stack, context, schema, value)\n : BuildItemsSizedFast(stack, context, schema, value);\n}\nfunction CheckItemsSized(stack, context, schema, value) {\n return G.Every(schema.items, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchemaPushStack(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\nfunction ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema.items, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/items/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// ItemsUnsized\n// ------------------------------------------------------------------\nfunction BuildItemsUnsizedStandard(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n const isSchema = BuildSchemaPushStack(stack, context, schema.items, 'element');\n const addIndex = context.AddIndex('index');\n return E.Every(value, E.Constant(offset), ['element', 'index'], E.And(isSchema, addIndex));\n}\nfunction BuildItemsUnsizedFast(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n const isSchema = BuildSchemaPushStack(stack, context, schema.items, 'element');\n return E.Every(value, E.Constant(offset), ['element', 'index'], isSchema);\n}\nfunction BuildItemsUnsized(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildItemsUnsizedStandard(stack, context, schema, value)\n : BuildItemsUnsizedFast(stack, context, schema, value);\n}\nfunction CheckItemsUnsized(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.Every(value, offset, (element, index) => {\n return CheckSchemaPushStack(stack, context, schema.items, element)\n && context.AddIndex(index);\n });\n}\nfunction ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.EveryAll(value, offset, (element, index) => {\n const nextSchemaPath = `${schemaPath}/items`;\n const nextInstancePath = `${instancePath}/${index}`;\n return ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema.items, element)\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Items\n// ------------------------------------------------------------------\nexport function BuildItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? BuildItemsSized(stack, context, schema, value) : BuildItemsUnsized(stack, context, schema, value);\n}\nexport function CheckItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? CheckItemsSized(stack, context, schema, value) : CheckItemsUnsized(stack, context, schema, value);\n}\nexport function ErrorItems(stack, context, schemaPath, instancePath, schema, value) {\n return Schema.IsItemsSized(schema) ? ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) : ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value);\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [item] = [Unique()];\n const count = E.Counted(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));\n return E.IsLessEqualThan(count, E.Constant(schema.maxContains));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = G.Counted(value, (item) => CheckSchema(stack, context, schema.contains, item));\n return G.IsLessEqualThan(count, schema.maxContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value) {\n const minContains = Schema.IsMinContains(schema) ? schema.minContains : 1;\n return CheckMaxContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains, maxContains: schema.maxContains },\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaximum(_stack, _context, schema, value) {\n return E.IsLessEqualThan(value, E.Constant(schema.maximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaximum(_stack, _context, schema, value) {\n return G.IsLessEqualThan(value, schema.maximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'maximum',\n schemaPath,\n instancePath,\n params: { comparison: '<=', limit: schema.maximum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxItems(_stack, _context, schema, value) {\n return E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(schema.maxItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxItems(_stack, _context, schema, value) {\n return G.IsLessEqualThan(value.length, schema.maxItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxItems(stack, context, schema, value) || context.AddError({\n keyword: 'maxItems',\n schemaPath,\n instancePath,\n params: { limit: schema.maxItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxLength(_stack, _context, schema, value) {\n return E.IsMaxLength(value, E.Constant(schema.maxLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxLength(_stack, _context, schema, value) {\n return G.IsMaxLength(value, schema.maxLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxLength(stack, context, schema, value) || context.AddError({\n keyword: 'maxLength',\n schemaPath,\n instancePath,\n params: { limit: schema.maxLength }\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxProperties(_stack, _context, schema, value) {\n return E.IsLessEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.maxProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxProperties(_stack, _context, schema, value) {\n return G.IsLessEqualThan(G.Keys(value).length, schema.maxProperties);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxProperties(stack, context, schema, value) || context.AddError({\n keyword: 'maxProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.maxProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildMinContainsStandard(stack, context, schema, value) {\n const [item, index] = [Unique(), Unique()];\n const count = E.Counted(value, [item, index], E.And(BuildSchema(stack, context, schema.contains, item), context.AddIndex(index)));\n return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));\n}\nfunction BuildMinContainsFast(stack, context, schema, value) {\n const [item] = [Unique()];\n const count = E.Counted(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));\n return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));\n}\nexport function BuildMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n return context.UseUnevaluated()\n ? BuildMinContainsStandard(stack, context, schema, value)\n : BuildMinContainsFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = G.Counted(value, (item, index) => CheckSchema(stack, context, schema.contains, item) && context.AddIndex(index));\n return G.IsGreaterEqualThan(count, schema.minContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: schema.minContains }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinimum(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(value, E.Constant(schema.minimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinimum(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(value, schema.minimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'minimum',\n schemaPath,\n instancePath,\n params: { comparison: '>=', limit: schema.minimum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinItems(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(value, 'length'), E.Constant(schema.minItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinItems(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(value.length, schema.minItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinItems(stack, context, schema, value) || context.AddError({\n keyword: 'minItems',\n schemaPath,\n instancePath,\n params: { limit: schema.minItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinLength(_stack, _context, schema, value) {\n return E.IsMinLength(value, E.Constant(schema.minLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinLength(_stack, _context, schema, value) {\n return G.IsMinLength(value, schema.minLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinLength(stack, context, schema, value) || context.AddError({\n keyword: 'minLength',\n schemaPath,\n instancePath,\n params: { limit: schema.minLength }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinProperties(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.minProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinProperties(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(G.Keys(value).length, schema.minProperties);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinProperties(stack, context, schema, value) || context.AddError({\n keyword: 'minProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.minProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMultipleOf(_stack, _context, schema, value) {\n return E.MultipleOf(value, E.Constant(schema.multipleOf));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMultipleOf(_stack, _context, schema, value) {\n return G.IsMultipleOf(value, schema.multipleOf);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMultipleOf(stack, context, schema, value) || context.AddError({\n keyword: 'multipleOf',\n schemaPath,\n instancePath,\n params: { multipleOf: schema.multipleOf }\n });\n}\n","// deno-fmt-ignore-file\nimport { CheckContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildNotStandard(stack, context, schema, value) {\n return Reducer(stack, context, [schema.not], value, E.Not(E.IsEqual(E.Member('results', 'length'), E.Constant(1))));\n}\nfunction BuildNotFast(stack, context, schema, value) {\n return E.Not(BuildSchema(stack, context, schema.not, value));\n}\nexport function BuildNot(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildNotStandard(stack, context, schema, value)\n : BuildNotFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckNot(stack, context, schema, value) {\n const nextContext = new CheckContext();\n const isSchema = !CheckSchema(stack, nextContext, schema.not, value);\n const isNot = isSchema && context.Merge([nextContext]);\n return isNot;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorNot(stack, context, schemaPath, instancePath, schema, value) {\n return CheckNot(stack, context, schema, value) || context.AddError({\n keyword: 'not',\n schemaPath,\n instancePath,\n params: {},\n });\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, ErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\nimport { Unique } from './_unique.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildOneOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.oneOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(1)));\n}\nfunction BuildOneOfFast(stack, context, schema, value) {\n const [result] = [Unique()];\n const results = E.ArrayLiteral(schema.oneOf.map((schema) => BuildSchema(stack, context, schema, value)));\n const count = E.Counted(results, [result, '_'], E.IsEqual(result, E.Constant(true)));\n return E.IsEqual(count, E.Constant(1));\n}\nexport function BuildOneOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildOneOfStandard(stack, context, schema, value)\n : BuildOneOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckOneOf(stack, context, schema, value) {\n const passedContexts = schema.oneOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorOneOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const passingSchemas = [];\n const passedContexts = schema.oneOf.reduce((result, schema, index) => {\n const nextContext = new ErrorContext();\n const nextSchemaPath = `${schemaPath}/oneOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (isSchema)\n passingSchemas.push(index);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isOneOf = G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n if (!isOneOf && G.IsEqual(passingSchemas.length, 0))\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isOneOf || context.AddError({\n keyword: 'oneOf',\n schemaPath,\n instancePath,\n params: { passingSchemas },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { UnicodeRegExp } from './_regexp.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPattern(_stack, _context, schema, value) {\n const regexp = Externals.CreateVariable(G.IsString(schema.pattern) ? UnicodeRegExp(schema.pattern) : schema.pattern);\n return E.Call(E.Member(regexp, 'test'), [value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPattern(_stack, _context, schema, value) {\n const regexp = G.IsString(schema.pattern) ? UnicodeRegExp(schema.pattern) : schema.pattern;\n return regexp.test(value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPattern(stack, context, schemaPath, instancePath, schema, value) {\n return CheckPattern(stack, context, schema, value) || context.AddError({\n keyword: 'pattern',\n schemaPath,\n instancePath,\n params: { pattern: schema.pattern }\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { UnicodeRegExp } from './_regexp.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPatternProperties(stack, context, schema, value) {\n return E.ReduceAnd(G.Entries(schema.patternProperties).map(([pattern, schema]) => {\n const [key, prop] = [Unique(), Unique()];\n const regexp = Externals.CreateVariable(UnicodeRegExp(pattern));\n const notKey = E.Not(E.Call(E.Member(regexp, 'test'), [key]));\n const isSchema = BuildSchemaPushStack(stack, context, schema, prop);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(notKey, E.And(isSchema, addKey)) : E.Or(notKey, isSchema);\n return E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPatternProperties(stack, context, schema, value) {\n return G.Every(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const regexp = UnicodeRegExp(pattern);\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return !regexp.test(key) || CheckSchemaPushStack(stack, context, schema, prop) && context.AddKey(key);\n });\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const nextSchemaPath = `${schemaPath}/patternProperties/${pattern}`;\n const regexp = UnicodeRegExp(pattern);\n return G.EveryAll(G.Entries(value), 0, ([key, value]) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const notKey = !regexp.test(key);\n return notKey || ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value) && context.AddKey(key);\n });\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPrefixItems(stack, context, schema, value) {\n return E.ReduceAnd(schema.prefixItems.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchemaPushStack(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Or(isLength, guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPrefixItems(stack, context, schema, value) {\n return G.IsEqual(value.length, 0) || G.Every(schema.prefixItems, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchemaPushStack(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value) {\n return G.IsEqual(value.length, 0) || G.EveryAll(schema.prefixItems, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/prefixItems/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n","import { Settings } from '../../system/settings/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// IsExactOptional\n// ------------------------------------------------------------------\nexport function IsExactOptional(required, key) {\n return required.includes(key) || Settings.Get().exactOptionalPropertyTypes;\n}\n// ------------------------------------------------------------------\n// ExactOptionalBuild\n// ------------------------------------------------------------------\nexport function InexactOptionalBuild(value, key) {\n return E.IsUndefined(E.Member(value, key));\n}\n// ------------------------------------------------------------------\n// ExactOptionalCheck\n// ------------------------------------------------------------------\nexport function InexactOptionalCheck(value, key) {\n return G.IsUndefined(value[key]);\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\nimport { InexactOptionalCheck, InexactOptionalBuild, IsExactOptional } from './_exact_optional.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const everyKey = G.Entries(schema.properties).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchemaPushStack(stack, context, schema, E.Member(value, key));\n const addKey = context.AddKey(E.Constant(key));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addKey) : isSchema;\n // --------------------------------------------------------------\n // Optimization\n //\n // If a key is required, we can skip the `notKey` check since this\n // condition is already enforced by Required. This optimization is\n // only valid when Required is evaluated before Properties.\n //\n // --------------------------------------------------------------\n const isProperty = required.includes(key) ? guarded : E.Or(notKey, guarded);\n // --------------------------------------------------------------\n // ExactOptionalProperties\n //\n // By default, TypeScript allows optional properties to be assigned\n // undefined. This is a bit misleading, since 'optional' is usually\n // understood to mean 'the key may be absent', not 'the key may be\n // present with an undefined value'.\n //\n // The 'IsExactOptional' check returns false by default, matching\n // TypeScript's behavior. When exactOptionalPropertyTypes is enabled\n // in tsconfig.json, TypeBox can be configured to use the stricter \n // semantics via System settings:\n //\n // Settings.Set({ exactOptionalPropertyTypes: true })\n //\n // --------------------------------------------------------------\n return IsExactOptional(required, key)\n ? isProperty\n : E.Or(InexactOptionalBuild(value, key), isProperty);\n });\n return E.ReduceAnd(everyKey);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.Every(G.Entries(schema.properties), 0, ([key, schema]) => {\n const isProperty = !G.HasPropertyKey(value, key) || (CheckSchemaPushStack(stack, context, schema, value[key]) && context.AddKey(key));\n return IsExactOptional(required, key)\n ? isProperty\n : InexactOptionalCheck(value, key) || isProperty;\n });\n return isProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorProperties(stack, context, schemaPath, instancePath, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.EveryAll(G.Entries(schema.properties), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/properties/${key}`;\n const nextInstancePath = `${instancePath}/${key}`;\n // Defer error generation for IsExactOptional\n const isProperty = () => (!G.HasPropertyKey(value, key) || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[key]) && context.AddKey(key)));\n return IsExactOptional(required, key)\n ? isProperty()\n : InexactOptionalCheck(value, key) || isProperty();\n });\n return isProperties;\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPropertyNames(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n return E.Every(E.Keys(value), E.Constant(0), [key, _index], BuildSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPropertyNames(stack, context, schema, value) {\n return G.Every(G.Keys(value), 0, (key, _index) => CheckSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value) {\n const propertyNames = [];\n const isPropertyNames = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const nextSchemaPath = `${schemaPath}/propertyNames`;\n const isPropertyName = ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema.propertyNames, key);\n if (!isPropertyName)\n propertyNames.push(key);\n return isPropertyName;\n });\n return isPropertyNames || context.AddError({\n keyword: 'propertyNames',\n schemaPath,\n instancePath,\n params: { propertyNames }\n });\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return (Schema.IsSchema(target) && CheckSchema(stack, context, target, value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRecursiveRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return (Schema.IsSchema(target) && ErrorSchema(stack, context, '#', instancePath, target, value));\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckContext, ErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// BuildRef\n// ------------------------------------------------------------------\nfunction BuildRefStandard(stack, context, target, value) {\n const interior = E.ArrowFunction(['context', 'value'], Functions.CreateFunction(stack, context, target, 'value'));\n const exterior = E.ArrowFunction(['context', 'value'], E.Statements([\n E.ConstDeclaration('nextContext', E.New('CheckContext', [])),\n E.ConstDeclaration('result', E.Call(interior, ['nextContext', 'value'])),\n E.If('result', context.Merge('[nextContext]')),\n E.Return('result')\n ]));\n return E.Call(exterior, ['context', value]);\n}\nfunction BuildRefFast(stack, context, target, value) {\n return Functions.CreateFunction(stack, context, target, value);\n}\nexport function BuildRef(stack, context, schema, value) {\n const target = stack.Ref(schema) ?? false;\n return context.UseUnevaluated()\n ? BuildRefStandard(stack, context, target, value)\n : BuildRefFast(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRef(stack, context, schema, value) {\n const target = stack.Ref(schema) ?? false;\n const nextContext = new CheckContext();\n const result = (Schema.IsSchema(target) && CheckSchema(stack, nextContext, target, value));\n if (result)\n context.Merge([nextContext]);\n return result;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.Ref(schema) ?? false;\n const nextContext = new ErrorContext();\n const result = (Schema.IsSchema(target) && ErrorSchema(stack, nextContext, '#', instancePath, target, value));\n if (result)\n context.Merge([nextContext]);\n if (!result)\n nextContext.GetErrors().forEach(error => context.AddError(error));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRequired(_stack, _context, schema, value) {\n return E.ReduceAnd(schema.required.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRequired(_stack, _context, schema, value) {\n return G.Every(schema.required, 0, (key) => G.HasPropertyKey(value, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRequired(_stack, context, schemaPath, instancePath, schema, value) {\n const requiredProperties = [];\n const isRequired = G.EveryAll(schema.required, 0, (key) => {\n const hasKey = G.HasPropertyKey(value, key);\n if (!hasKey)\n requiredProperties.push(key);\n return hasKey;\n });\n return isRequired || context.AddError({\n keyword: 'required',\n schemaPath,\n instancePath,\n params: { requiredProperties }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeName\n// ------------------------------------------------------------------\nfunction BuildTypeName(_stack, _context, type, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? E.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? E.IsArray(value) :\n G.IsEqual(type, 'boolean') ? E.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? E.IsInteger(value) :\n G.IsEqual(type, 'number') ? E.IsNumber(value) :\n G.IsEqual(type, 'null') ? E.IsNull(value) :\n G.IsEqual(type, 'string') ? E.IsString(value) :\n // xschema\n G.IsEqual(type, 'bigint') ? E.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? E.IsConstructor(value) :\n G.IsEqual(type, 'function') ? E.IsFunction(value) :\n G.IsEqual(type, 'symbol') ? E.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? E.IsUndefined(value) :\n G.IsEqual(type, 'void') ? E.IsUndefined(value) :\n E.Constant(true));\n}\nfunction CheckTypeName(_stack, _context, type, _schema, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? G.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? G.IsArray(value) :\n G.IsEqual(type, 'boolean') ? G.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? G.IsInteger(value) :\n G.IsEqual(type, 'number') ? G.IsNumber(value) :\n G.IsEqual(type, 'null') ? G.IsNull(value) :\n G.IsEqual(type, 'string') ? G.IsString(value) :\n // xschema\n G.IsEqual(type, 'bigint') ? G.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? G.IsConstructor(value) :\n G.IsEqual(type, 'function') ? G.IsFunction(value) :\n G.IsEqual(type, 'symbol') ? G.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? G.IsUndefined(value) :\n G.IsEqual(type, 'void') ? G.IsUndefined(value) :\n true);\n}\n// ------------------------------------------------------------------\n// TypeNames\n// ------------------------------------------------------------------\nfunction BuildTypeNames(stack, context, typenames, value) {\n return E.ReduceOr(typenames.map(type => BuildTypeName(stack, context, type, value)));\n}\nfunction CheckTypeNames(stack, context, types, schema, value) {\n return G.Some(types, type => CheckTypeName(stack, context, type, schema, value));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nexport function BuildType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? BuildTypeNames(stack, context, schema.type, value) : BuildTypeName(stack, context, schema.type, value);\n}\nexport function CheckType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n}\nexport function ErrorType(stack, context, schemaPath, instancePath, schema, value) {\n const isType = G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n return isType || context.AddError({\n keyword: 'type',\n schemaPath,\n instancePath,\n params: { type: schema.type }\n });\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { ErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedItems(stack, context, schema, value) {\n const [index, item] = [Unique(), Unique()];\n const indices = E.Call(E.Member('context', 'GetIndices'), []);\n const hasIndex = E.Call(E.Member('indices', 'has'), [index]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedItems, item);\n const addIndex = E.Call(E.Member('context', 'AddIndex'), [index]);\n const isEvery = E.Every(value, E.Constant(0), [item, index], E.And(E.Or(hasIndex, isSchema), addIndex));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('indices', indices),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedItems(stack, context, schema, value) {\n const indices = context.GetIndices();\n return G.Every(value, 0, (item, index) => {\n return (indices.has(index) || CheckSchema(stack, context, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value) {\n const indices = context.GetIndices();\n const unevaluatedItems = [];\n const isUnevaluatedItems = G.EveryAll(value, 0, (item, index) => {\n const nextContext = new ErrorContext();\n const isEvaluatedItem = (indices.has(index) || ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n if (!isEvaluatedItem)\n unevaluatedItems.push(index);\n return isEvaluatedItem;\n });\n return isUnevaluatedItems || context.AddError({\n keyword: 'unevaluatedItems',\n schemaPath,\n instancePath,\n params: { unevaluatedItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { ErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedProperties(stack, context, schema, value) {\n const [key, prop] = [Unique(), Unique()];\n const keys = E.Call(E.Member('context', 'GetKeys'), []);\n const hasKey = E.Call(E.Member('keys', 'has'), [key]);\n const addKey = E.Call(E.Member('context', 'AddKey'), [key]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedProperties, prop);\n const isEvery = E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], E.Or(hasKey, E.And(isSchema, addKey)));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('keys', keys),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedProperties(stack, context, schema, value) {\n const keys = context.GetKeys();\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return keys.has(key)\n || (CheckSchema(stack, context, schema.unevaluatedProperties, prop) && context.AddKey(key));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value) {\n const keys = context.GetKeys();\n const unevaluatedProperties = [];\n const isUnevaluatedProperties = G.EveryAll(G.Entries(value), 0, ([key, prop]) => {\n const nextContext = new ErrorContext();\n const isEvaluatedProperty = keys.has(key)\n || (ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedProperties, prop) && context.AddKey(key));\n if (!isEvaluatedProperty)\n unevaluatedProperties.push(key);\n return isEvaluatedProperty;\n });\n return isUnevaluatedProperties || context.AddError({\n keyword: 'unevaluatedProperties',\n schemaPath,\n instancePath,\n params: { unevaluatedProperties }\n });\n}\n","// deno-fmt-ignore-file\nimport { Hashing } from '../../system/hashing/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !G.IsEqual(schema.uniqueItems, false);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUniqueItems(_stack, _context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const set = E.Member(E.New('Set', [E.Call(E.Member(value, 'map'), [E.Member('Hashing', 'Hash')])]), 'size');\n const isLength = E.Member(value, 'length');\n return E.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUniqueItems(_stack, _context, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set(value.map(Hashing.Hash)).size;\n const isLength = value.length;\n return G.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUniqueItems(_stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set();\n const duplicateItems = value.reduce((result, value, index) => {\n const hash = Hashing.Hash(value);\n if (set.has(hash))\n return [...result, index];\n set.add(hash);\n return result;\n }, []);\n const isUniqueItems = G.IsEqual(duplicateItems.length, 0);\n return isUniqueItems || context.AddError({\n keyword: 'uniqueItems',\n schemaPath,\n instancePath,\n params: { duplicateItems },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { BuildRefine, CheckRefine, ErrorRefine } from './_refine.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildAdditionalItems, CheckAdditionalItems, ErrorAdditionalItems } from './additionalItems.mjs';\nimport { BuildAdditionalProperties, CheckAdditionalProperties, ErrorAdditionalProperties } from './additionalProperties.mjs';\nimport { BuildAllOf, CheckAllOf, ErrorAllOf } from './allOf.mjs';\nimport { BuildAnyOf, CheckAnyOf, ErrorAnyOf } from './anyOf.mjs';\nimport { BuildSchemaBoolean, CheckSchemaBoolean, ErrorSchemaBoolean } from './boolean.mjs';\nimport { BuildConst, CheckConst, ErrorConst } from './const.mjs';\nimport { BuildContains, CheckContains, ErrorContains } from './contains.mjs';\nimport { BuildDependencies, CheckDependencies, ErrorDependencies } from './dependencies.mjs';\nimport { BuildDependentRequired, CheckDependentRequired, ErrorDependentRequired } from './dependentRequired.mjs';\nimport { BuildDependentSchemas, CheckDependentSchemas, ErrorDependentSchemas } from './dependentSchemas.mjs';\nimport { BuildDynamicRef, CheckDynamicRef, ErrorDynamicRef } from './dynamicRef.mjs';\nimport { BuildEnum, CheckEnum, ErrorEnum } from './enum.mjs';\nimport { BuildExclusiveMaximum, CheckExclusiveMaximum, ErrorExclusiveMaximum } from './exclusiveMaximum.mjs';\nimport { BuildExclusiveMinimum, CheckExclusiveMinimum, ErrorExclusiveMinimum } from './exclusiveMinimum.mjs';\nimport { BuildFormat, CheckFormat, ErrorFormat } from './format.mjs';\nimport { BuildIf, CheckIf, ErrorIf } from './if.mjs';\nimport { BuildItems, CheckItems, ErrorItems } from './items.mjs';\nimport { BuildMaxContains, CheckMaxContains, ErrorMaxContains } from './maxContains.mjs';\nimport { BuildMaximum, CheckMaximum, ErrorMaximum } from './maximum.mjs';\nimport { BuildMaxItems, CheckMaxItems, ErrorMaxItems } from './maxItems.mjs';\nimport { BuildMaxLength, CheckMaxLength, ErrorMaxLength } from './maxLength.mjs';\nimport { BuildMaxProperties, CheckMaxProperties, ErrorMaxProperties } from './maxProperties.mjs';\nimport { BuildMinContains, CheckMinContains, ErrorMinContains } from './minContains.mjs';\nimport { BuildMinimum, CheckMinimum, ErrorMinimum } from './minimum.mjs';\nimport { BuildMinItems, CheckMinItems, ErrorMinItems } from './minItems.mjs';\nimport { BuildMinLength, CheckMinLength, ErrorMinLength } from './minLength.mjs';\nimport { BuildMinProperties, CheckMinProperties, ErrorMinProperties } from './minProperties.mjs';\nimport { BuildMultipleOf, CheckMultipleOf, ErrorMultipleOf } from './multipleOf.mjs';\nimport { BuildNot, CheckNot, ErrorNot } from './not.mjs';\nimport { BuildOneOf, CheckOneOf, ErrorOneOf } from './oneOf.mjs';\nimport { BuildPattern, CheckPattern, ErrorPattern } from './pattern.mjs';\nimport { BuildPatternProperties, CheckPatternProperties, ErrorPatternProperties } from './patternProperties.mjs';\nimport { BuildPrefixItems, CheckPrefixItems, ErrorPrefixItems } from './prefixItems.mjs';\nimport { BuildProperties, CheckProperties, ErrorProperties } from './properties.mjs';\nimport { BuildPropertyNames, CheckPropertyNames, ErrorPropertyNames } from './propertyNames.mjs';\nimport { BuildRecursiveRef, CheckRecursiveRef, ErrorRecursiveRef } from './recursiveRef.mjs';\nimport { BuildRef, CheckRef, ErrorRef } from './ref.mjs';\nimport { BuildRequired, CheckRequired, ErrorRequired } from './required.mjs';\nimport { BuildType, CheckType, ErrorType } from './type.mjs';\nimport { BuildUnevaluatedItems, CheckUnevaluatedItems, ErrorUnevaluatedItems } from './unevaluatedItems.mjs';\nimport { BuildUnevaluatedProperties, CheckUnevaluatedProperties, ErrorUnevaluatedProperties } from './unevaluatedProperties.mjs';\nimport { BuildUniqueItems, CheckUniqueItems, ErrorUniqueItems } from './uniqueItems.mjs';\n// ----------------------------------------------------------------\n// HasTypeName (Optimization)\n//\n// We only consider a schema as having a type name when the schema \n// has a single type string, or when every element in the type \n// array is the same. For a type array, we must treat multi-variant \n// types as unions and therefore can NOT use an optimized forward \n// type check.\n//\n// ----------------------------------------------------------------\nfunction HasTypeName(schema, typename) {\n return (Schema.IsType(schema) &&\n ((G.IsArray(schema.type) &&\n G.IsGreaterThan(schema.type.length, 0) &&\n G.Every(schema.type, 0, type => G.IsEqual(type, typename))) ||\n G.IsEqual(schema.type, typename)));\n}\n// ----------------------------------------------------------------\n// HasObject\n// ----------------------------------------------------------------\nfunction HasObjectType(schema) {\n return HasTypeName(schema, 'object');\n}\nfunction HasObjectKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalProperties(schema) ||\n Schema.IsDependencies(schema) ||\n Schema.IsDependentRequired(schema) ||\n Schema.IsDependentSchemas(schema) ||\n Schema.IsProperties(schema) ||\n Schema.IsPatternProperties(schema) ||\n Schema.IsPropertyNames(schema) ||\n Schema.IsMinProperties(schema) ||\n Schema.IsMaxProperties(schema) ||\n Schema.IsRequired(schema) ||\n Schema.IsUnevaluatedProperties(schema));\n}\n// ----------------------------------------------------------------\n// HasArray\n// ----------------------------------------------------------------\nfunction HasArrayType(schema) {\n return HasTypeName(schema, 'array');\n}\nfunction HasArrayKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalItems(schema) ||\n Schema.IsItems(schema) ||\n Schema.IsContains(schema) ||\n Schema.IsMaxContains(schema) ||\n Schema.IsMaxItems(schema) ||\n Schema.IsMinContains(schema) ||\n Schema.IsMinItems(schema) ||\n Schema.IsPrefixItems(schema) ||\n Schema.IsUnevaluatedItems(schema) ||\n Schema.IsUniqueItems(schema));\n}\n// ----------------------------------------------------------------\n// HasString\n// ----------------------------------------------------------------\nfunction HasStringType(schema) {\n return HasTypeName(schema, 'string');\n}\nfunction HasStringKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinLength(schema) ||\n Schema.IsMaxLength(schema) ||\n Schema.IsFormat(schema) ||\n Schema.IsPattern(schema));\n}\n// ----------------------------------------------------------------\n// HasNumber\n// ----------------------------------------------------------------\nfunction HasNumberType(schema) {\n return HasTypeName(schema, 'number') || HasTypeName(schema, 'bigint');\n}\nfunction HasNumberKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinimum(schema) ||\n Schema.IsMaximum(schema) ||\n Schema.IsExclusiveMaximum(schema) ||\n Schema.IsExclusiveMinimum(schema) ||\n Schema.IsMultipleOf(schema));\n}\n// ----------------------------------------------------------------\n// Build\n// ----------------------------------------------------------------\nexport function BuildSchemaPushStack(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? E.And(E.And(context.Push(), BuildSchema(stack, context, schema, value)), context.Pop())\n : BuildSchema(stack, context, schema, value);\n}\nexport function BuildSchema(stack, context, schema, value) {\n stack.Push(schema);\n const conditions = [];\n if (Schema.IsSchemaBoolean(schema))\n return BuildSchemaBoolean(stack, context, schema, value);\n if (Schema.IsType(schema))\n conditions.push(BuildType(stack, context, schema, value));\n if (HasObjectKeywords(schema)) {\n const constraints = [];\n if (Schema.IsRequired(schema))\n constraints.push(BuildRequired(stack, context, schema, value));\n if (Schema.IsAdditionalProperties(schema))\n constraints.push(BuildAdditionalProperties(stack, context, schema, value));\n if (Schema.IsDependencies(schema))\n constraints.push(BuildDependencies(stack, context, schema, value));\n if (Schema.IsDependentRequired(schema))\n constraints.push(BuildDependentRequired(stack, context, schema, value));\n if (Schema.IsDependentSchemas(schema))\n constraints.push(BuildDependentSchemas(stack, context, schema, value));\n if (Schema.IsPatternProperties(schema))\n constraints.push(BuildPatternProperties(stack, context, schema, value));\n if (Schema.IsProperties(schema))\n constraints.push(BuildProperties(stack, context, schema, value));\n if (Schema.IsPropertyNames(schema))\n constraints.push(BuildPropertyNames(stack, context, schema, value));\n if (Schema.IsMinProperties(schema))\n constraints.push(BuildMinProperties(stack, context, schema, value));\n if (Schema.IsMaxProperties(schema))\n constraints.push(BuildMaxProperties(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsObjectNotArray(value)), reduced);\n conditions.push(HasObjectType(schema) ? reduced : guarded);\n }\n if (HasArrayKeywords(schema)) {\n const constraints = [];\n if (Schema.IsAdditionalItems(schema))\n constraints.push(BuildAdditionalItems(stack, context, schema, value));\n if (Schema.IsContains(schema))\n constraints.push(BuildContains(stack, context, schema, value));\n if (Schema.IsItems(schema))\n constraints.push(BuildItems(stack, context, schema, value));\n if (Schema.IsMaxContains(schema))\n constraints.push(BuildMaxContains(stack, context, schema, value));\n if (Schema.IsMaxItems(schema))\n constraints.push(BuildMaxItems(stack, context, schema, value));\n if (Schema.IsMinContains(schema))\n constraints.push(BuildMinContains(stack, context, schema, value));\n if (Schema.IsMinItems(schema))\n constraints.push(BuildMinItems(stack, context, schema, value));\n if (Schema.IsPrefixItems(schema))\n constraints.push(BuildPrefixItems(stack, context, schema, value));\n if (Schema.IsUniqueItems(schema))\n constraints.push(BuildUniqueItems(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsArray(value)), reduced);\n conditions.push(HasArrayType(schema) ? reduced : guarded);\n }\n if (HasStringKeywords(schema)) {\n const constraints = [];\n if (Schema.IsMaxLength(schema))\n constraints.push(BuildMaxLength(stack, context, schema, value));\n if (Schema.IsMinLength(schema))\n constraints.push(BuildMinLength(stack, context, schema, value));\n if (Schema.IsFormat(schema))\n constraints.push(BuildFormat(stack, context, schema, value));\n if (Schema.IsPattern(schema))\n constraints.push(BuildPattern(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsString(value)), reduced);\n conditions.push(HasStringType(schema) ? reduced : guarded);\n }\n if (HasNumberKeywords(schema)) {\n const constraints = [];\n if (Schema.IsExclusiveMaximum(schema))\n constraints.push(BuildExclusiveMaximum(stack, context, schema, value));\n if (Schema.IsExclusiveMinimum(schema))\n constraints.push(BuildExclusiveMinimum(stack, context, schema, value));\n if (Schema.IsMaximum(schema))\n constraints.push(BuildMaximum(stack, context, schema, value));\n if (Schema.IsMinimum(schema))\n constraints.push(BuildMinimum(stack, context, schema, value));\n if (Schema.IsMultipleOf(schema))\n constraints.push(BuildMultipleOf(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.Or(E.IsNumber(value), E.IsBigInt(value))), reduced);\n conditions.push(HasNumberType(schema) ? reduced : guarded);\n }\n if (Schema.IsRef(schema))\n conditions.push(BuildRef(stack, context, schema, value));\n if (Schema.IsRecursiveRef(schema))\n conditions.push(BuildRecursiveRef(stack, context, schema, value));\n if (Schema.IsDynamicRef(schema))\n conditions.push(BuildDynamicRef(stack, context, schema, value));\n if (Schema.IsConst(schema))\n conditions.push(BuildConst(stack, context, schema, value));\n if (Schema.IsEnum(schema))\n conditions.push(BuildEnum(stack, context, schema, value));\n if (Schema.IsIf(schema))\n conditions.push(BuildIf(stack, context, schema, value));\n if (Schema.IsNot(schema))\n conditions.push(BuildNot(stack, context, schema, value));\n if (Schema.IsAllOf(schema))\n conditions.push(BuildAllOf(stack, context, schema, value));\n if (Schema.IsAnyOf(schema))\n conditions.push(BuildAnyOf(stack, context, schema, value));\n if (Schema.IsOneOf(schema))\n conditions.push(BuildOneOf(stack, context, schema, value));\n if (Schema.IsUnevaluatedItems(schema))\n conditions.push(E.Or(E.Not(E.IsArray(value)), BuildUnevaluatedItems(stack, context, schema, value)));\n if (Schema.IsUnevaluatedProperties(schema))\n conditions.push(E.Or(E.Not(E.IsObject(value)), BuildUnevaluatedProperties(stack, context, schema, value)));\n if (Schema.IsRefine(schema))\n conditions.push(BuildRefine(stack, context, schema, value));\n const result = E.ReduceAnd(conditions);\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Check\n// ----------------------------------------------------------------\nexport function CheckSchemaPushStack(stack, context, schema, value) {\n return (context.Push() && CheckSchema(stack, context, schema, value)) && context.Pop();\n}\nexport function CheckSchema(stack, context, schema, value) {\n stack.Push(schema);\n const result = Schema.IsSchemaBoolean(schema) ? CheckSchemaBoolean(stack, context, schema, value) : ((!Schema.IsType(schema) || CheckType(stack, context, schema, value)) &&\n (!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(stack, context, schema, value)) &&\n (!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(stack, context, schema, value)) &&\n (!Schema.IsDependencies(schema) || CheckDependencies(stack, context, schema, value)) &&\n (!Schema.IsDependentRequired(schema) || CheckDependentRequired(stack, context, schema, value)) &&\n (!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(stack, context, schema, value)) &&\n (!Schema.IsPatternProperties(schema) || CheckPatternProperties(stack, context, schema, value)) &&\n (!Schema.IsProperties(schema) || CheckProperties(stack, context, schema, value)) &&\n (!Schema.IsPropertyNames(schema) || CheckPropertyNames(stack, context, schema, value)) &&\n (!Schema.IsMinProperties(schema) || CheckMinProperties(stack, context, schema, value)) &&\n (!Schema.IsMaxProperties(schema) || CheckMaxProperties(stack, context, schema, value)))) &&\n (!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(stack, context, schema, value)) &&\n (!Schema.IsContains(schema) || CheckContains(stack, context, schema, value)) &&\n (!Schema.IsItems(schema) || CheckItems(stack, context, schema, value)) &&\n (!Schema.IsMaxContains(schema) || CheckMaxContains(stack, context, schema, value)) &&\n (!Schema.IsMaxItems(schema) || CheckMaxItems(stack, context, schema, value)) &&\n (!Schema.IsMinContains(schema) || CheckMinContains(stack, context, schema, value)) &&\n (!Schema.IsMinItems(schema) || CheckMinItems(stack, context, schema, value)) &&\n (!Schema.IsPrefixItems(schema) || CheckPrefixItems(stack, context, schema, value)) &&\n (!Schema.IsUniqueItems(schema) || CheckUniqueItems(stack, context, schema, value)))) &&\n (!G.IsString(value) || ((!Schema.IsMaxLength(schema) || CheckMaxLength(stack, context, schema, value)) &&\n (!Schema.IsMinLength(schema) || CheckMinLength(stack, context, schema, value)) &&\n (!Schema.IsFormat(schema) || CheckFormat(stack, context, schema, value)) &&\n (!Schema.IsPattern(schema) || CheckPattern(stack, context, schema, value)))) &&\n (!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(stack, context, schema, value)) &&\n (!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(stack, context, schema, value)) &&\n (!Schema.IsMaximum(schema) || CheckMaximum(stack, context, schema, value)) &&\n (!Schema.IsMinimum(schema) || CheckMinimum(stack, context, schema, value)) &&\n (!Schema.IsMultipleOf(schema) || CheckMultipleOf(stack, context, schema, value)))) &&\n (!Schema.IsRef(schema) || CheckRef(stack, context, schema, value)) &&\n (!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(stack, context, schema, value)) &&\n (!Schema.IsDynamicRef(schema) || CheckDynamicRef(stack, context, schema, value)) &&\n (!Schema.IsConst(schema) || CheckConst(stack, context, schema, value)) &&\n (!Schema.IsEnum(schema) || CheckEnum(stack, context, schema, value)) &&\n (!Schema.IsIf(schema) || CheckIf(stack, context, schema, value)) &&\n (!Schema.IsNot(schema) || CheckNot(stack, context, schema, value)) &&\n (!Schema.IsAllOf(schema) || CheckAllOf(stack, context, schema, value)) &&\n (!Schema.IsAnyOf(schema) || CheckAnyOf(stack, context, schema, value)) &&\n (!Schema.IsOneOf(schema) || CheckOneOf(stack, context, schema, value)) &&\n (!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(stack, context, schema, value))) &&\n (!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(stack, context, schema, value))) &&\n (!Schema.IsRefine(schema) || CheckRefine(stack, context, schema, value)));\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Error\n// ----------------------------------------------------------------\nexport function ErrorSchemaPushStack(stack, context, schemaPath, instancePath, schema, value) {\n return (context.Push() && ErrorSchema(stack, context, schemaPath, instancePath, schema, value)) && context.Pop();\n}\nexport function ErrorSchema(stack, context, schemaPath, instancePath, schema, value) {\n // Optimization: We can safely terminate here when the context is at capacity because we are unable to\n // append additional errors. It is worth being mindful that logical keywords such as allOf, anyOf,\n // oneOf pass a new context per operand, so the capacity check applies per context, not across the\n // full set of errors accumulated by the schema as a whole. (review)\n if (context.AtCapacity())\n return false;\n stack.Push(schema);\n const result = (Schema.IsSchemaBoolean(schema)) ? ErrorSchemaBoolean(stack, context, schemaPath, instancePath, schema, value) : (!!(+(!Schema.IsType(schema) || ErrorType(stack, context, schemaPath, instancePath, schema, value)) &\n +(!(G.IsObject(value) && !G.IsArray(value)) || !!(+(!Schema.IsRequired(schema) || ErrorRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAdditionalProperties(schema) || ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependencies(schema) || ErrorDependencies(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentRequired(schema) || ErrorDependentRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentSchemas(schema) || ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPatternProperties(schema) || ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsProperties(schema) || ErrorProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPropertyNames(schema) || ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinProperties(schema) || ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxProperties(schema) || ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsArray(value) || !!(+(!Schema.IsAdditionalItems(schema) || ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsContains(schema) || ErrorContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsItems(schema) || ErrorItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxContains(schema) || ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxItems(schema) || ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinContains(schema) || ErrorMinContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinItems(schema) || ErrorMinItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPrefixItems(schema) || ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUniqueItems(schema) || ErrorUniqueItems(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsString(value) || !!(+(!Schema.IsMaxLength(schema) || ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinLength(schema) || ErrorMinLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsFormat(schema) || ErrorFormat(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPattern(schema) || ErrorPattern(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!(G.IsNumber(value) || G.IsBigInt(value)) || !!(+(!Schema.IsExclusiveMaximum(schema) || ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsExclusiveMinimum(schema) || ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaximum(schema) || ErrorMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinimum(schema) || ErrorMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMultipleOf(schema) || ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!Schema.IsRef(schema) || ErrorRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsRecursiveRef(schema) || ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDynamicRef(schema) || ErrorDynamicRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsConst(schema) || ErrorConst(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsEnum(schema) || ErrorEnum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsIf(schema) || ErrorIf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsNot(schema) || ErrorNot(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAllOf(schema) || ErrorAllOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAnyOf(schema) || ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsOneOf(schema) || ErrorOneOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value))) &\n +(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value)))) &&\n (!Schema.IsRefine(schema) || ErrorRefine(stack, context, schemaPath, instancePath, schema, value)));\n stack.Pop(schema);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\nconst index = [0];\nconst names = new Map;\nconst funcs = new Map();\n// ------------------------------------------------------------------\n// CreateName\n// ------------------------------------------------------------------\nfunction NextName() {\n return `${index[0]++}`;\n}\nfunction CreateName(schema, href) {\n if (!names.has(schema))\n names.set(schema, new Map());\n const hrefs = names.get(schema);\n if (hrefs.has(href))\n return hrefs.get(href);\n const name = NextName();\n hrefs.set(href, name);\n return name;\n}\n// ------------------------------------------------------------------\n// CreateCallExpression\n// ------------------------------------------------------------------\nfunction CreateCallExpression(context, _schema, name, value) {\n return context.UseUnevaluated()\n ? E.Call(`check_${name}`, ['context', value])\n : E.Call(`check_${name}`, [value]);\n}\n// ------------------------------------------------------------------\n// CreateFunctionExpression\n// ------------------------------------------------------------------\nfunction CreateFunctionExpression(stack, context, schema, name) {\n const expression = BuildSchema(stack, context, schema, 'value');\n return context.UseUnevaluated()\n ? E.ConstDeclaration(`check_${name}`, E.ArrowFunction(['context', 'value'], expression))\n : E.ConstDeclaration(`check_${name}`, E.ArrowFunction(['value'], expression));\n}\n// ------------------------------------------------------------------\n// ResetFunctions\n// ------------------------------------------------------------------\nexport function ResetFunctions() {\n index[0] = 0;\n names.clear();\n funcs.clear();\n}\n// ------------------------------------------------------------------\n// GetFunctions\n// ------------------------------------------------------------------\nexport function GetFunctions() {\n return [...funcs.values()];\n}\n// ------------------------------------------------------------------\n// CreateFunction\n// ------------------------------------------------------------------\nexport function CreateFunction(stack, context, schema, value) {\n const name = CreateName(schema, stack.LexicalBaseURL());\n const call = CreateCallExpression(context, schema, name, value);\n if (funcs.has(name))\n return call;\n funcs.set(name, '');\n funcs.set(name, CreateFunctionExpression(stack, context, schema, name));\n return call;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Asserts\n// ------------------------------------------------------------------\nfunction AssertNotRoot(indices) {\n if (indices.length === 0)\n throw Error('Cannot set root');\n}\nfunction AssertCanSet(value) {\n if (!Guard.IsObject(value))\n throw Error('Cannot set value');\n}\nfunction AssertIndex(index) {\n if (Guard.IsUnsafePropertyKey(index))\n throw Error('Pointer contains unsafe property key');\n}\nfunction AssertIndices(indices) {\n for (const index of indices)\n AssertIndex(index);\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\nfunction IsNumericIndex(index) {\n return /^(0|[1-9]\\d*)$/.test(index);\n}\nfunction TakeIndexRight(indices) {\n return [\n indices.slice(0, indices.length - 1),\n indices.slice(indices.length - 1)[0]\n ];\n}\nfunction HasIndex(index, value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, index);\n}\nfunction GetIndex(index, value) {\n return Guard.IsObject(value) && !Guard.IsUnsafePropertyKey(index) ? value[index] : undefined;\n}\nfunction GetIndices(indices, value) {\n return indices.reduce((value, index) => GetIndex(index, value), value);\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\n/** Returns an array of path indices for the given pointer */\nexport function Indices(pointer) {\n if (Guard.IsEqual(pointer.length, 0))\n return [];\n const indices = pointer.split(\"/\").map(index => index.replace(/~1/g, \"/\").replace(/~0/g, \"~\"));\n return (indices.length > 0 && indices[0] === '') ? indices.slice(1) : indices;\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if a value exists at the current pointer */\nexport function Has(value, pointer) {\n let current = value;\n return Indices(pointer).every(index => {\n if (!HasIndex(index, current))\n return false;\n current = current[index];\n return true;\n });\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a value at the pointer, or undefined if not exists */\nexport function Get(value, pointer) {\n const indices = Indices(pointer);\n return GetIndices(indices, value);\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a value at the given pointer. May throw if the target value is not indexable */\nexport function Set(value, pointer, next) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n AssertIndices(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n parent[index] = next;\n return value;\n}\n// ------------------------------------------------------------------\n// Delete\n// ------------------------------------------------------------------\n/** Deletes the value at the given pointer. May throw if the target value is not indexable */\nexport function Delete(value, pointer) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n AssertIndices(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n if (Guard.IsArray(parent) && IsNumericIndex(index)) {\n parent.splice(+index, 1);\n }\n else {\n delete parent[index];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Pointer } from '../pointer/index.mjs';\nimport * as Schema from '../types/index.mjs';\nexport const DefaultBase = 'https://json-schema.org';\n// ------------------------------------------------------------------\n// Find: FindDynamicAnchor\n// ------------------------------------------------------------------\nfunction FindDynamicAnchor(schema, name) {\n if (Guard.IsObject(schema) && Schema.IsDynamicAnchor(schema) && Guard.IsEqual(schema.$dynamicAnchor, name)) {\n return schema;\n }\n if (Guard.IsObject(schema)) {\n for (const key of Guard.Keys(schema)) {\n const result = FindDynamicAnchor(schema[key], name);\n if (result)\n return result;\n }\n }\n // (no-coverage) - is it even possible to search for an anchor\n // with embedded logical schema like allOf, anyOf, etc?\n // if (Guard.IsArray(schema)) { // (no-coverage)\n // for (const item of schema) {\n // const result = FindDynamicAnchor(item, name)\n // if (result) return result\n // }\n // }\n return undefined;\n}\n// ------------------------------------------------------------------\n// Find: FindBase\n// ------------------------------------------------------------------\nfunction FindBase(schema, base, target) {\n if (Guard.IsEqual(schema, target))\n return base.href;\n const nextBase = Schema.IsSchemaObject(schema) && Schema.IsId(schema) ? new URL(schema.$id, base.href) : base;\n if (Guard.IsArray(schema)) {\n for (const item of schema) {\n const result = FindBase(item, nextBase, target);\n if (!Guard.IsUndefined(result))\n return result;\n }\n }\n else if (Guard.IsObject(schema)) {\n for (const key of Guard.Keys(schema)) {\n const result = FindBase(schema[key], nextBase, target);\n if (!Guard.IsUndefined(result))\n return result;\n }\n }\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: MatchId\n// ------------------------------------------------------------------\nfunction MatchId(schema, base, ref) {\n // ref is a bare fragment naming this schema's $id directly\n if (Guard.IsEqual(schema.$id, ref.hash))\n return schema;\n const absoluteRef = new URL(ref.href, base.href);\n // ref shares this $id's document, so resolve the fragment within it\n if (Guard.IsEqual(base.pathname, absoluteRef.pathname))\n return ref.hash.startsWith('#') ? MatchHash(schema, ref) : schema;\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: MatchAnchor\n// ------------------------------------------------------------------\nfunction MatchAnchor(schema, base, ref) {\n const absoluteAnchor = new URL(`#${schema.$anchor}`, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n return Guard.IsEqual(absoluteAnchor.href, absoluteRef.href) ? schema : undefined;\n}\n// ------------------------------------------------------------------\n// Match: MatchDynamicAnchor\n// ------------------------------------------------------------------\nfunction MatchDynamicAnchor(schema, base, ref) {\n const absoluteAnchor = new URL(`#${schema.$dynamicAnchor}`, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n const isMatch = Guard.IsEqual(absoluteAnchor.href, absoluteRef.href);\n return isMatch ? schema : undefined;\n}\n// ------------------------------------------------------------------\n// Match: MatchHash\n// ------------------------------------------------------------------\nfunction MatchHash(schema, ref) {\n if (ref.href.endsWith('#'))\n return schema;\n if (!ref.hash.startsWith('#'))\n return undefined;\n const fragment = decodeURIComponent(ref.hash.slice(1));\n if (!fragment.startsWith('/'))\n return undefined;\n const result = Pointer.Get(schema, fragment);\n return result;\n}\n// ------------------------------------------------------------------\n// Match: Match\n// ------------------------------------------------------------------\nfunction Match(schema, base, ref) {\n if (Schema.IsId(schema)) {\n const result = MatchId(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Schema.IsAnchor(schema)) {\n const result = MatchAnchor(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Schema.IsDynamicAnchor(schema)) {\n const result = MatchDynamicAnchor(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n return MatchHash(schema, ref);\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nfunction FromArray(schema, base, ref) {\n return schema.reduce((result, item) => {\n const match = FromValue(item, base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nfunction SkipProperty(key) {\n return Guard.IsEqual(key, 'const') || Guard.IsEqual(key, 'enum');\n}\nfunction FromObject(schema, base, ref) {\n return Guard.Keys(schema).reduce((result, key) => {\n if (SkipProperty(key))\n return result;\n const match = FromValue(schema[key], base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromValue\n// ------------------------------------------------------------------\nfunction FromValue(schema, base, ref) {\n const nextBase = Schema.IsSchemaObject(schema) && Schema.IsId(schema) ? new URL(schema.$id, base.href) : base;\n if (Schema.IsSchemaObject(schema)) {\n const result = Match(schema, nextBase, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Guard.IsArray(schema))\n return FromArray(schema, nextBase, ref);\n if (Guard.IsObject(schema))\n return FromObject(schema, nextBase, ref);\n return undefined;\n}\n// ------------------------------------------------------------------\n// Base\n// ------------------------------------------------------------------\nexport function Base(schema, base, target) {\n return FindBase(schema, new URL(base || '.', DefaultBase), target);\n}\n// ------------------------------------------------------------------\n// Resource\n// ------------------------------------------------------------------\nexport function Resource(context, schema, base, ref) {\n const result = Ref(context, schema, base, ref, false);\n return Schema.IsSchemaObject(result) && Schema.IsId(result) ? result : undefined;\n}\n// ------------------------------------------------------------------\n// CanonicalHref\n// ------------------------------------------------------------------\nfunction CanonicalHref(url) {\n return url.href.split('#')[0];\n}\n// ------------------------------------------------------------------\n// Ref: RefRemote (Phase 1)\n// ------------------------------------------------------------------\nfunction RefContext(context, ref) {\n return Guard.HasPropertyKey(context, ref) ? context[ref] : undefined;\n}\n// ------------------------------------------------------------------\n// Ref: RefRemote (Phase 2)\n// ------------------------------------------------------------------\nfunction RefLocal(schema, base, ref) {\n return FromValue(schema, base, ref);\n}\n// ------------------------------------------------------------------\n// Ref: RefRemote (Phase 3)\n// ------------------------------------------------------------------\nfunction RefRemote(context, base, ref) {\n const canonicalHref = CanonicalHref(ref);\n if (Guard.IsEqual(canonicalHref, CanonicalHref(base)))\n return undefined;\n if (!Guard.HasPropertyKey(context, canonicalHref))\n return undefined;\n const remoteSchema = context[canonicalHref];\n const remoteBase = (Schema.IsSchemaObject(remoteSchema) && Schema.IsId(remoteSchema)) ? new URL(remoteSchema.$id, canonicalHref) : new URL(canonicalHref);\n const result = Guard.IsEqual(ref.hash, '') ? remoteSchema : FromValue(remoteSchema, remoteBase, ref);\n return result;\n}\n// ------------------------------------------------------------------\n// RetrievedResource: LegacyRetrievedResource\n//\n// Draft-4 style schemas (no $schema keyword) treat a nested $id as an\n// in-place base URI change rather than a new resource boundary. A\n// local ('#...') ref that lands somewhere with a different base than\n// the current reference base needs a frame so later anchor/pointer\n// resolution is computed against the right base.\n// ------------------------------------------------------------------\nfunction LegacyRetrievedResource(root, lexicalSchema, referenceBase, ref, schema) {\n if (!ref.$ref.startsWith('#'))\n return undefined;\n if (Guard.HasPropertyKey(root, '$schema'))\n return undefined;\n const targetBase = Base(lexicalSchema, referenceBase, schema);\n if (Guard.IsUndefined(targetBase) || Guard.IsEqual(targetBase, referenceBase))\n return undefined;\n return { target: schema, base: targetBase, root: lexicalSchema };\n}\n// ------------------------------------------------------------------\n// RetrievedResource: RemoteRetrievedResource\n//\n// The ref's canonical URL names a document already loaded into\n// context. That document becomes the frame's root going forward.\n// ------------------------------------------------------------------\nfunction RemoteRetrievedResource(context, canonical, schema) {\n const remoteRoot = context[canonical];\n if (!Schema.IsSchemaObject(remoteRoot))\n return undefined;\n return { target: schema, base: canonical, root: remoteRoot };\n}\n// ------------------------------------------------------------------\n// RetrievedResource\n//\n// A genuinely remote document frame always wins over a same-document\n// legacy one: only one frame is ever entered per ref.\n// ------------------------------------------------------------------\nfunction FindRetrievedResource(stackframe, ref, schema, canonical, isRemote) {\n const remote = isRemote ? RemoteRetrievedResource(stackframe.context, canonical, schema) : undefined;\n if (!Guard.IsUndefined(remote))\n return remote;\n return LegacyRetrievedResource(stackframe.root, stackframe.lexicalSchema, stackframe.referenceBase, ref, schema);\n}\n// ------------------------------------------------------------------\n// ResolvedResource: FindResolvedResource\n//\n// The ref crossed into a different resource but landed on a schema\n// that doesn't itself carry that resource's $id (e.g. a pointer into\n// the middle of a remote document). The enclosing resource still\n// needs to be entered so lexical/base lookups behave as if traversal\n// had walked in from its top.\n// ------------------------------------------------------------------\nfunction FindResolvedResource(context, root, referenceBase, canonical, schema, ids) {\n if (Schema.IsId(schema))\n return undefined;\n const resource = Resource(context, root, referenceBase, canonical);\n if (!resource || ids.includes(resource))\n return undefined;\n return { target: schema, resource };\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nexport function Ref(remotes, schema, base, ref, applySchemaId = true) {\n const initialBase = new URL(base || '.', DefaultBase);\n const resolvedBase = applySchemaId && Schema.IsId(schema) ? new URL(schema.$id, initialBase) : initialBase;\n const initialRef = new URL(ref, resolvedBase.href);\n return RefContext(remotes, ref) ?? RefLocal(schema, resolvedBase, initialRef) ?? RefRemote(remotes, resolvedBase, initialRef);\n}\n// ------------------------------------------------------------------\n// DynamicRef\n// ------------------------------------------------------------------\nexport function DynamicRef(context, root, base, schema, dynamicRef, dynamicAnchors) {\n const initialBase = new URL(base || '.', DefaultBase);\n const fragmentRoot = dynamicRef.$dynamicRef.startsWith('#') ? schema : root;\n const fragmentTarget = Ref(context, fragmentRoot, base, dynamicRef.$dynamicRef, false);\n if (Guard.IsUndefined(fragmentTarget)) {\n const fragment = new URL(dynamicRef.$dynamicRef, initialBase).hash;\n if (!fragment.startsWith('#/') && fragment.startsWith('#')) {\n const name = decodeURIComponent(fragment.slice(1));\n const anchorTarget = dynamicAnchors.find((anchor) => Guard.IsEqual(anchor.$dynamicAnchor, name)) ?? FindDynamicAnchor(root, name);\n return anchorTarget;\n }\n return undefined;\n }\n if (!Schema.IsSchemaObject(fragmentTarget) || !Schema.IsDynamicAnchor(fragmentTarget))\n return fragmentTarget;\n const fragment = new URL(dynamicRef.$dynamicRef, initialBase).hash;\n if (fragment.startsWith('#/'))\n return fragmentTarget;\n const anchorTarget = dynamicAnchors.find((anchor) => Guard.IsEqual(anchor.$dynamicAnchor, fragmentTarget.$dynamicAnchor));\n return anchorTarget ?? fragmentTarget;\n}\n// ------------------------------------------------------------------\n// ResolveRef\n//\n// Resolves the schema a $ref points to, and describes whether that\n// crossing implies a \"retrieved resource\" frame or entering a\n// resource the target doesn't itself carry the $id for. The caller\n// decides whether and how to record these.\n// ------------------------------------------------------------------\nexport function ResolveRef(stackframe, ref) {\n const source = stackframe.inRetrievedFrame ? stackframe.lexicalSchema : stackframe.root;\n const refRoot = ref.$ref.startsWith('#') ? stackframe.lexicalSchema : source;\n const schema = Ref(stackframe.context, refRoot, stackframe.referenceBase, ref.$ref, false);\n if (!schema || !Schema.IsSchemaObject(schema))\n return { schema };\n const canonical = new URL(ref.$ref, stackframe.referenceBase).href.split('#')[0];\n const isRemote = !Guard.IsEqual(canonical, stackframe.resourceBase);\n const retrievedResource = FindRetrievedResource(stackframe, ref, schema, canonical, isRemote);\n const resolvedResource = isRemote ? FindResolvedResource(stackframe.context, stackframe.root, stackframe.referenceBase, canonical, schema, stackframe.ids) : undefined;\n return { schema, retrievedResource, resolvedResource };\n}\n// ------------------------------------------------------------------\n// ResolveRecursiveRef\n// ------------------------------------------------------------------\nexport function ResolveRecursiveRef(stackframe, recursiveRef) {\n const refRoot = Schema.IsRecursiveAnchorTrue(stackframe.lexicalSchema) ? stackframe.recursiveAnchors[0] : stackframe.lexicalSchema;\n return Ref(stackframe.context, refRoot, stackframe.lexicalBase, recursiveRef.$recursiveRef, false);\n}\n// ------------------------------------------------------------------\n// ResolveDynamicRef\n// ------------------------------------------------------------------\nexport function ResolveDynamicRef(stackframe, dynamicRef) {\n return DynamicRef(stackframe.context, stackframe.root, stackframe.lexicalBase, stackframe.lexicalSchema, dynamicRef, stackframe.dynamicAnchors);\n}\n","// deno-fmt-ignore-file\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Stack_instances, _Stack_StackFrame, _Stack_ApplyRefResult, _Stack_BuildBase, _Stack_ResourceBaseURL, _Stack_ReferenceBaseURL, _Stack_LexicalSchema, _Stack_RegisterResourceAnchorArray, _Stack_UnregisterResourceAnchorArray, _Stack_RegisterResourceAnchors, _Stack_UnregisterResourceAnchors, _Stack_RegisterResource, _Stack_UnregisterResource, _Stack_EnterResolvedResource, _Stack_ExitResolvedResource;\nimport * as Schema from '../types/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { Resolve } from '../resolve/index.mjs';\n// --------------------------------------------------------------------------\n// Stack\n//\n// Tracks traversal state ($ids, $anchors, stack frames) and applies scope\n// updates. Reference resolution rules ($ref, $dynamicRef) are delegated to\n// the Resolve functions using state snapshots (Resolve.Scope).\n// --------------------------------------------------------------------------\nexport class Stack {\n constructor(context, schema) {\n _Stack_instances.add(this);\n this.context = context;\n this.schema = schema;\n this.ids = [];\n this.resourceIds = [];\n this.anchors = [];\n this.recursiveAnchors = [];\n this.dynamicAnchors = [];\n this.retrievedResources = new Map();\n this.retrievedFrames = [];\n this.resolvedResources = new Map();\n this.pendingResource = true;\n }\n // ----------------------------------------------------------------\n // LexicalBaseURL\n // ----------------------------------------------------------------\n LexicalBaseURL() {\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_BuildBase).call(this, this.ids);\n }\n // ----------------------------------------------------------------\n // Push\n // ----------------------------------------------------------------\n Push(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResource).call(this, schema);\n if (Schema.IsAnchor(schema))\n this.anchors.push(schema);\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.push(schema);\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.push(schema);\n const retrievedResource = this.retrievedResources.get(schema);\n if (retrievedResource) {\n this.retrievedFrames.push({\n schema: retrievedResource.root,\n base: retrievedResource.base,\n idDepth: this.ids.length,\n resourceDepth: this.resourceIds.length\n });\n }\n }\n // ----------------------------------------------------------------\n // Pop\n // ----------------------------------------------------------------\n Pop(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResource).call(this, schema);\n if (Schema.IsAnchor(schema))\n this.anchors.pop();\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.pop();\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.pop();\n if (this.retrievedResources.has(schema))\n this.retrievedFrames.pop();\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ExitResolvedResource).call(this, schema);\n }\n // ----------------------------------------------------------------\n // Ref\n // ----------------------------------------------------------------\n Ref(ref) {\n const result = Resolve.ResolveRef(__classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_StackFrame).call(this), ref);\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ApplyRefResult).call(this, result);\n return result.schema;\n }\n // ----------------------------------------------------------------\n // RecursiveRef\n // ----------------------------------------------------------------\n RecursiveRef(recursiveRef) {\n const result = Resolve.ResolveRecursiveRef(__classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_StackFrame).call(this), recursiveRef);\n if (result)\n this.pendingResource = true;\n return result;\n }\n // ----------------------------------------------------------------\n // DynamicRef\n // ----------------------------------------------------------------\n DynamicRef(dynamicRef) {\n const result = Resolve.ResolveDynamicRef(__classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_StackFrame).call(this), dynamicRef);\n if (result)\n this.pendingResource = true;\n return result;\n }\n}\n_Stack_instances = new WeakSet(), _Stack_StackFrame = function _Stack_StackFrame() {\n return {\n context: this.context,\n root: this.schema,\n ids: this.ids,\n lexicalSchema: __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_LexicalSchema).call(this),\n lexicalBase: this.LexicalBaseURL(),\n referenceBase: __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ReferenceBaseURL).call(this),\n resourceBase: __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ResourceBaseURL).call(this),\n recursiveAnchors: this.recursiveAnchors,\n dynamicAnchors: this.dynamicAnchors,\n inRetrievedFrame: this.retrievedFrames.length > 0\n };\n}, _Stack_ApplyRefResult = function _Stack_ApplyRefResult(result) {\n if (!Guard.IsUndefined(result.schema))\n this.pendingResource = true;\n if (!Guard.IsUndefined(result.resolvedResource)) {\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_EnterResolvedResource).call(this, result.resolvedResource.target, result.resolvedResource.resource);\n }\n if (!Guard.IsUndefined(result.retrievedResource)) {\n this.retrievedResources.set(result.retrievedResource.target, {\n base: result.retrievedResource.base,\n root: result.retrievedResource.root\n });\n }\n}, _Stack_BuildBase = function _Stack_BuildBase(stack) {\n const frame = this.retrievedFrames[this.retrievedFrames.length - 1];\n const base = frame ? new URL(frame.base) : new URL(Resolve.DefaultBase);\n const scoped = frame ? stack.slice(frame.idDepth) : stack;\n return scoped.reduce((result, schema) => new URL(schema.$id, result), base).href;\n}, _Stack_ResourceBaseURL = function _Stack_ResourceBaseURL() {\n const frame = this.retrievedFrames[this.retrievedFrames.length - 1];\n if (!frame)\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_BuildBase).call(this, this.resourceIds);\n return this.resourceIds.slice(frame.resourceDepth).reduce((result, schema) => new URL(schema.$id, result), new URL(frame.base)).href;\n}, _Stack_ReferenceBaseURL = function _Stack_ReferenceBaseURL() {\n if (this.retrievedFrames.length > 0)\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ResourceBaseURL).call(this);\n const lexical = this.ids[this.ids.length - 1];\n if (lexical && !/^[A-Za-z][A-Za-z0-9+.-]*:/.test(lexical.$id))\n return this.LexicalBaseURL();\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_ResourceBaseURL).call(this);\n}, _Stack_LexicalSchema = function _Stack_LexicalSchema() {\n const frame = this.retrievedFrames[this.retrievedFrames.length - 1];\n if (frame)\n return this.ids.length > frame.idDepth ? this.ids[this.ids.length - 1] : frame.schema;\n return this.ids.length > 0 ? this.ids[this.ids.length - 1] : this.schema;\n}, _Stack_RegisterResourceAnchorArray = function _Stack_RegisterResourceAnchorArray(schema) {\n schema.forEach((schema) => __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResourceAnchors).call(this, schema, false));\n}, _Stack_UnregisterResourceAnchorArray = function _Stack_UnregisterResourceAnchorArray(schema) {\n schema.forEach((schema) => __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResourceAnchors).call(this, schema, false));\n}, _Stack_RegisterResourceAnchors = function _Stack_RegisterResourceAnchors(schema, isRoot = true) {\n if (Schema.IsSchemaBoolean(schema))\n return;\n if (Guard.IsArray(schema))\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResourceAnchorArray).call(this, schema);\n if (!Schema.IsSchemaObject(schema))\n return;\n const current = schema;\n if (!isRoot && Schema.IsId(current))\n return;\n if (!isRoot && Schema.IsDynamicAnchor(current))\n this.dynamicAnchors.push(current);\n for (const key of Guard.Keys(current))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResourceAnchors).call(this, current[key], false);\n}, _Stack_UnregisterResourceAnchors = function _Stack_UnregisterResourceAnchors(schema, isRoot = true) {\n if (Schema.IsSchemaBoolean(schema))\n return;\n if (Guard.IsArray(schema))\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResourceAnchorArray).call(this, schema);\n if (!Schema.IsSchemaObject(schema))\n return;\n const current = schema;\n if (!isRoot && Schema.IsId(current))\n return;\n if (!isRoot && Schema.IsDynamicAnchor(current))\n this.dynamicAnchors.pop();\n for (const key of Guard.Keys(current))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResourceAnchors).call(this, current[key], false);\n}, _Stack_RegisterResource = function _Stack_RegisterResource(schema) {\n this.ids.push(schema);\n const isResource = this.pendingResource;\n this.pendingResource = false;\n if (isResource)\n this.resourceIds.push(schema);\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResourceAnchors).call(this, schema, true);\n}, _Stack_UnregisterResource = function _Stack_UnregisterResource(schema) {\n this.ids.pop();\n const isResource = this.resourceIds.length > 0 && Guard.IsEqual(this.resourceIds[this.resourceIds.length - 1], schema);\n if (isResource)\n this.resourceIds.pop();\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResourceAnchors).call(this, schema, true);\n}, _Stack_EnterResolvedResource = function _Stack_EnterResolvedResource(target, resource) {\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_RegisterResource).call(this, resource);\n this.resolvedResources.set(target, resource);\n}, _Stack_ExitResolvedResource = function _Stack_ExitResolvedResource(target) {\n if (!this.resolvedResources.has(target))\n return;\n const resource = this.resolvedResources.get(target);\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_UnregisterResource).call(this, resource);\n this.resolvedResources.delete(target);\n};\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Environment } from '../system/environment/index.mjs';\nimport { Hashing } from '../system/hashing/index.mjs';\nimport { Guard } from '../guard/index.mjs';\nimport { Format } from '../format/index.mjs';\nimport * as Engine from './engine/index.mjs';\n// ------------------------------------------------------------------\n// CreateCode\n// ------------------------------------------------------------------\nfunction CreateCode(build) {\n const functions = build.Functions().join(';\\n');\n const statements = build.UseUnevaluated()\n ? ['const context = new CheckContext({}, {})', `return ${build.Entry()}`]\n : [`return ${build.Entry()}`];\n return `${functions}; return (value) => { ${statements.join('; ')} }`;\n}\n// ------------------------------------------------------------------\n// CreateEvaluatedCheck\n// ------------------------------------------------------------------\nfunction CreateEvaluatedCheck(build, code) {\n const factory = Environment.Evaluate('CheckContext', 'Guard', 'Format', 'Hashing', build.External().identifier, code);\n return factory(Engine.CheckContext, Guard, Format, Hashing, build.External().variables);\n}\n// ------------------------------------------------------------------\n// CreateDynamicCheck\n// ------------------------------------------------------------------\nfunction CreateDynamicCheck(build) {\n const stack = new Engine.Stack(build.Context(), build.Schema());\n const context = new Engine.CheckContext();\n return (value) => Engine.CheckSchema(stack, context, build.Schema(), value);\n}\n// ------------------------------------------------------------------\n// CreateCheck\n// ------------------------------------------------------------------\nfunction CreateCheck(build, code) {\n return Environment.CanEvaluate()\n ? CreateEvaluatedCheck(build, code)\n : CreateDynamicCheck(build);\n}\n// ------------------------------------------------------------------\n// EvaluateResult\n// ------------------------------------------------------------------\nexport class EvaluateResult {\n constructor(isAccelerated, code, check) {\n this.isAccelerated = isAccelerated;\n this.code = code;\n this.check = check;\n }\n IsAccelerated() {\n return this.isAccelerated;\n }\n Code() {\n return this.code;\n }\n Check(value) {\n return this.check(value);\n }\n}\n// ------------------------------------------------------------------\n// BuildResult\n// ------------------------------------------------------------------\nexport class BuildResult {\n constructor(context, schema, external, functions, entry, useUnevaluated) {\n this.context = context;\n this.schema = schema;\n this.external = external;\n this.functions = functions;\n this.entry = entry;\n this.useUnevaluated = useUnevaluated;\n }\n /** Returns the Context used for this build */\n Context() {\n return this.context;\n }\n /** Returns the Schema used for this build */\n Schema() {\n return this.schema;\n }\n /** Returns true if this build requires a Unevaluated context */\n UseUnevaluated() {\n return this.useUnevaluated;\n }\n /** Returns external variables */\n External() {\n return this.external;\n }\n /** Returns check functions */\n Functions() {\n return this.functions;\n }\n /** Return entry function call. */\n Entry() {\n return this.entry;\n }\n /** Evaluates the build into a validation function */\n Evaluate() {\n const code = CreateCode(this);\n const check = CreateCheck(this, code);\n return new EvaluateResult(Environment.CanEvaluate(), code, check);\n }\n}\n/** Builds a schema into a optimized runtime validator */\nexport function Build(...args) {\n const [context, schema] = Arguments.Match(args, {\n 2: (context, schema) => [context, schema],\n 1: (schema) => [{}, schema]\n });\n Engine.ResetExternal();\n Engine.ResetFunctions();\n const stack = new Engine.Stack(context, schema);\n const build = new Engine.BuildContext(Engine.HasUnevaluated(context, schema));\n const call = Engine.CreateFunction(stack, build, schema, 'value');\n const functions = Engine.GetFunctions();\n const externals = Engine.GetExternal();\n return new BuildResult(context, schema, externals, functions, call, build.UseUnevaluated());\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Get as GetLocalizationFunction } from '../system/locale/_config.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Returns an array of validation errors for the given value. */\nexport function Errors(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const stack = new Engine.Stack(context, schema);\n const errorContext = new Engine.ErrorContext();\n const result = Engine.ErrorSchema(stack, errorContext, '#', '', schema, value);\n const errors = errorContext.GetErrors();\n const locale = GetLocalizationFunction();\n const localized = errors.map(error => ({ ...error, message: locale(error) }));\n return [result, localized];\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Checks a value against the provided schema */\nexport function Check(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const stack = new Engine.Stack(context, schema);\n const checkContext = new Engine.CheckContext();\n return Engine.CheckSchema(stack, checkContext, schema, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Check as SchemaCheck } from '../../schema/index.mjs';\n/** Checks a value matches the provided type. */\nexport function Check(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n return SchemaCheck(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Errors as SchemaErrors } from '../../schema/index.mjs';\n/** Returns an array of validation errors for the given value. */\nexport function Errors(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const [_, errors] = SchemaErrors(context, type, value);\n return errors;\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\n// ------------------------------------------------------------------\n// AssertError\n// ------------------------------------------------------------------\nexport class AssertError extends Error {\n constructor(source, value, errors) {\n super(source);\n Object.defineProperty(this, 'cause', {\n value: { source, errors, value },\n writable: false,\n configurable: false,\n enumerable: false\n });\n }\n}\n/** Asserts the a value matches the given type. This function returns a TypeScript type asserts predicate and will throw AssertError if value does not match. */\nexport function Assert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n const check = Check(context, type, value);\n if (!check)\n throw new AssertError('Assert', value, Errors(context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n return value.map((value) => FromType(context, type.items, value));\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate, Instantiate, IsObject, With } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\n// ------------------------------------------------------------------\n// EvaluateIntersection\n// ------------------------------------------------------------------\nfunction EvaluateIntersection(context, type) {\n // Note: reinterpret unevaluatedProperties as additionalProperties\n const additionalProperties = Guard.HasPropertyKey(type, 'unevaluatedProperties')\n ? { additionalProperties: type.unevaluatedProperties }\n : {};\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return IsObject(evaluated)\n ? With(evaluated, additionalProperties)\n : evaluated;\n}\n// ------------------------------------------------------------------\n// FromIntersection\n// ------------------------------------------------------------------\nexport function FromIntersect(context, type, value) {\n // Note: Evaluate and route back to FromType in evaluated form (likely an Object)\n const evaluated = EvaluateIntersection(context, type);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nexport function GetAdditionalProperties(type) {\n const additionalProperties = Guard.HasPropertyKey(type, 'additionalProperties') ? type.additionalProperties : undefined;\n return additionalProperties;\n}\n","// deno-fmt-ignore-file\nimport { IsSchema } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value) || Guard.IsArray(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n for (const key of Guard.Keys(value)) {\n if (Guard.HasPropertyKey(type.properties, key)) {\n value[key] = FromType(context, type.properties[key], value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { IsSchema, RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromRecord\n// ------------------------------------------------------------------\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n const [recordPattern, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (recordPattern.test(key)) {\n value[key] = FromType(context, recordValue, value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const length = Math.min(value.length, schema.items.length);\n for (let index = 0; index < length; index++) {\n value[index] = FromType(context, schema.items[index], value[index]);\n }\n return Guard.IsGreaterThan(value.length, length)\n ? value.slice(0, length)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Clone as SystemClone } from '../../system/memory/clone.mjs';\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/**\n * Returns a Clone of the given value. This function is similar to structuredClone()\n * but also supports deep cloning instances of Map, Set and TypeArray.\n */\nexport function Clone(value) {\n return SystemClone(value);\n}\n","// deno-fmt-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, type, value) {\n for (const schema of type.anyOf) {\n const clean = FromType(context, schema, Clone(value));\n if (Check(context, schema, clean))\n return clean;\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(context, type, value) {\n return (T.IsArray(type) ? FromArray(context, type, value) :\n T.IsCyclic(type) ? FromCyclic(context, type, value) :\n T.IsIntersect(type) ? FromIntersect(context, type, value) :\n T.IsObject(type) ? FromObject(context, type, value) :\n T.IsRecord(type) ? FromRecord(context, type, value) :\n T.IsRef(type) ? FromRef(context, type, value) :\n T.IsTuple(type) ? FromTuple(context, type, value) :\n T.IsUnion(type) ? FromUnion(context, type, value) :\n value);\n}\n","// deno-fmt-ignore-file\nimport Guard from '../../guard/index.mjs';\nimport { IsArray, Array as _Array_, ArrayOptions } from '../../type/index.mjs';\nimport { IsUnion, Union } from '../../type/index.mjs';\nimport { IsObject, Object as _Object_ } from '../../type/index.mjs';\nimport { IsRecord, Record, RecordKey, RecordValue } from '../../type/index.mjs';\nimport { IsTuple, Tuple } from '../../type/index.mjs';\nimport { IsIntersect, Intersect } from '../../type/index.mjs';\nimport { Priority } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Modifiers (Mutable)\n//\n// Prioritized types lose `~modifier` properties and additional constraints\n// (e.g. additionalProperties) during the mapping phase and need to be\n// reassigned afterward. This is a fast mutable assignment to handle that,\n// but we should consider a more general solution. (review)\n//\n// ------------------------------------------------------------------\nfunction Modifiers(type, next) {\n for (const key of Guard.Keys(type)) {\n if (Guard.HasPropertyKey(next, key))\n continue;\n next[key] = type[key];\n }\n return next;\n}\n// ------------------------------------------------------------------\n// Properties\n// ------------------------------------------------------------------\nfunction FromProperties(properties) {\n const result = {};\n for (const key of Guard.Keys(properties))\n result[key] = FromType(properties[key]);\n return result;\n}\n// ------------------------------------------------------------------\n// PriorityTypes\n// ------------------------------------------------------------------\nfunction FromPriorityTypes(types) {\n return FromTypes(Priority(types));\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromTypes(types) {\n return types.map(type => FromType(type));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nfunction FromType(type) {\n const next = (IsArray(type) ? _Array_(FromType(type.items), ArrayOptions(type)) :\n IsIntersect(type) ? Intersect(FromTypes(type.allOf)) :\n IsUnion(type) ? Union(FromPriorityTypes(type.anyOf)) :\n IsObject(type) ? _Object_(FromProperties(type.properties)) :\n IsRecord(type) ? Record(RecordKey(type), FromType(RecordValue(type))) :\n IsTuple(type) ? Tuple(FromTypes(type.items)) :\n type);\n return Modifiers(type, next);\n}\n// ------------------------------------------------------------------\n// UnionPrioritySort\n// ------------------------------------------------------------------\n/**\n * (Type-Preprocessor) Recursively reorders Union variants from narrowest to broadest, ensuring\n * more specific types (e.g. Literal) are evaluated before broader types (e.g. String). Used\n * prior to Clean, Decode, and Encode operations.\n */\nexport function UnionPrioritySort(type) {\n const result = FromType(type);\n return result;\n}\n","import { Arguments, Settings } from '../../system/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n/**\n * Cleans a value by removing non-evaluated properties and elements as derived from the provided type.\n * This function returns unknown so callers should Check the return value before use. This function\n * mutates the provided value. If mutation is not wanted, you should Clone the value before passing\n * to this function.\n */\nexport function Clean(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType(context, sorted, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsOk(value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, 'value');\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\nexport function Ok(value) {\n return { value };\n}\nexport function Fail() {\n return undefined;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok } from './try_result.mjs';\nexport function TryArray(value) {\n return Guard.IsArray(value) ? Ok(value) : Ok([value]);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, true) ? Ok(BigInt(1)) : Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nconst bigintPattern = /^-?(0|[1-9]\\d*)n$/;\nconst decimalPattern = /^-?(0|[1-9]\\d*)\\.\\d+$/;\nconst integerPattern = /^-?(0|[1-9]\\d*)$/;\nfunction IsStringBigIntLike(value) {\n return bigintPattern.test(value);\n}\nfunction IsStringDecimalLike(value) {\n return decimalPattern.test(value);\n}\nfunction IsStringIntegerLike(value) {\n return integerPattern.test(value);\n}\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n return (IsStringBigIntLike(value) ? Ok(BigInt(value.slice(0, value.length - 1))) :\n IsStringDecimalLike(value) ? Ok(BigInt(value.split('.')[0])) :\n IsStringIntegerLike(value) ? Ok(BigInt(value)) :\n Guard.IsEqual(lowercase, 'false') ? Ok(BigInt(0)) :\n Guard.IsEqual(lowercase, 'true') ? Ok(BigInt(1)) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryBigInt(value) {\n return (Guard.IsBigInt(value) ? Ok(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? Ok(BigInt(Math.trunc(value))) :\n Guard.IsNull(value) ? Ok(BigInt(0)) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(BigInt(0)) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return (Guard.IsEqual(value, BigInt(0)) ? Ok(false) :\n Guard.IsEqual(value, BigInt(1)) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return (Guard.IsEqual(value, 0) ? Ok(false) :\n Guard.IsEqual(value, 1) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n return (Guard.IsEqual(value.toLowerCase(), 'false') ? Ok(false) :\n Guard.IsEqual(value.toLowerCase(), 'true') ? Ok(true) :\n Guard.IsEqual(value, '0') ? Ok(false) :\n Guard.IsEqual(value, '1') ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryBoolean(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? Ok(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(false) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(false) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryNull(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(null) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(null) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail, IsOk } from './try_result.mjs';\nimport { TryBigInt } from './try_bigint.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nconst maxBigInt = BigInt(Number.MAX_SAFE_INTEGER);\nconst minBigInt = BigInt(Number.MIN_SAFE_INTEGER);\nfunction FromBigInt(value) {\n return (value <= maxBigInt && value >= minBigInt) ? Ok(Number(value)) : Fail();\n}\nfunction FromBoolean(value) {\n return Ok(value ? 1 : 0);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const coerced = +value;\n if (Guard.IsNumber(coerced))\n return Ok(coerced);\n const lowercase = value.toLowerCase();\n if (Guard.IsEqual(lowercase, 'false'))\n return Ok(0);\n if (Guard.IsEqual(lowercase, 'true'))\n return Ok(1);\n const result = TryBigInt(value);\n if (IsOk(result))\n return (result.value <= maxBigInt && result.value >= minBigInt) ? Ok(Number(result.value)) : Fail();\n return Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryNumber(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? Ok(value) :\n Guard.IsNull(value) ? Ok(0) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(0) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\nexport function TryString(value) {\n return (Guard.IsBigInt(value) ? Ok(value.toString()) :\n Guard.IsBoolean(value) ? Ok(value.toString()) :\n Guard.IsNumber(value) ? Ok(value.toString()) :\n Guard.IsNull(value) ? Ok('null') :\n Guard.IsString(value) ? Ok(value) :\n Guard.IsUndefined(value) ? Ok('') :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryUndefined(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(undefined) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(value) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromArray(context, type, value) {\n const result = Try.TryArray(value);\n return result.value.map(value => FromType(context, type.items, value));\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromBigInt(_context, _type, value) {\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromBoolean(_context, _type, value) {\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromEnum(context, type, value) {\n return FromType(context, Evaluate(type), value);\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromInteger(_context, _type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? Math.trunc(result.value) : value;\n}\n","// deno-fmt-ignore-file\nimport { Evaluate, Instantiate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(context, type, value) {\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsLiteralBigInt, IsLiteralBoolean, IsLiteralNumber, IsLiteralString } from '../../type/index.mjs';\nimport { Try } from './try/index.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromLiteralBigInt(_context, type, value) {\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromLiteralBoolean(_context, type, value) {\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromLiteralNumber(_context, type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromLiteralString(_context, type, value) {\n const result = Try.TryString(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// deno-coverage-ignore-start - unreachable | guarded\nexport function FromLiteral(context, type, value) {\n if (Guard.IsEqual(type.const, value))\n return value;\n return (IsLiteralBigInt(type) ? FromLiteralBigInt(context, type, value) :\n IsLiteralBoolean(type) ? FromLiteralBoolean(context, type, value) :\n IsLiteralNumber(type) ? FromLiteralNumber(context, type, value) :\n IsLiteralString(type) ? FromLiteralString(context, type, value) :\n Unreachable());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromNull(_context, _type, value) {\n const result = Try.TryNull(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromNumber(_context, _type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Used by Object and Record Types. The entries are derived from the known\n * properties obtained from 'properties' and 'patternProperties' respectively.\n */\nexport function FromAdditionalProperties(context, entries, additionalProperties, value) {\n const keys = Guard.Keys(value);\n for (const [regexp, _] of entries) {\n for (const key of keys) {\n if (!regexp.test(key)) {\n value[key] = FromType(context, additionalProperties, value[key]);\n }\n }\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// IsOptionalUndefined\n//\n// Indicates whether a key should be excluded from processing when it is \n// defined as optional in the schema and its corresponding value is undefined. \n// This case cannot be reliably distinguished from an omitted key, and therefore \n// introduces ambiguity between a key that is not provided and one that is \n// explicitly assigned an undefined value.\n// ------------------------------------------------------------------\nexport function IsOptionalUndefined(property, key, value) {\n return IsOptional(property) && Guard.IsUndefined(value[key]);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { FromAdditionalProperties } from './from_additional.mjs';\nimport { IsOptionalUndefined } from '../shared/optional_undefined.mjs';\n// ------------------------------------------------------------------\n// FromProperties\n// ------------------------------------------------------------------\nfunction FromProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.properties);\n const keys = Guard.Keys(value);\n for (const [regexp, property] of entries) {\n for (const key of keys) {\n // Ignore for non-present or optional-undefined\n if (!regexp.test(key) || IsOptionalUndefined(property, key, value))\n continue;\n value[key] = FromType(context, property, value[key]);\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromObject(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromProperties(context, type, value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { FromAdditionalProperties } from './from_additional.mjs';\nfunction FromPatternProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.patternProperties);\n const keys = Guard.Keys(value);\n for (const [regexp, schema] of entries) {\n for (const key of keys) {\n if (regexp.test(key)) {\n value[key] = FromType(context, schema, value[key]);\n }\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromRecord(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromPatternProperties(context, type, value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { Guard } from '../../guard/index.mjs';\nexport function FromRef(context, type, value) {\n return (Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value);\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromString(_context, _type, value) {\n const result = Try.TryString(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTemplateLiteral(context, type, value) {\n return FromType(context, Evaluate(type), value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let index = 0; index < Math.min(type.items.length, value.length); index++) {\n value[index] = FromType(context, type.items[index], value[index]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromUndefined(_context, _type, value) {\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, type, value) {\n const matched = type.anyOf.some(type => Check(context, type, value));\n if (matched)\n return value;\n const candidates = type.anyOf.map(type => FromType(context, type, Clone(value)));\n const selected = candidates.find(value => Check(context, type, value));\n return Guard.IsUndefined(selected) ? value : selected;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromVoid(_context, _type, value) {\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? (void 0) : value;\n}\n","// deno-fmt-ignore-file\nimport * as Type from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromBigInt } from './from_bigint.mjs';\nimport { FromBoolean } from './from_boolean.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromEnum } from './from_enum.mjs';\nimport { FromInteger } from './from_integer.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromLiteral } from './from_literal.mjs';\nimport { FromNull } from './from_null.mjs';\nimport { FromNumber } from './from_number.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromString } from './from_string.mjs';\nimport { FromTemplateLiteral } from './from_template_literal.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUndefined } from './from_undefined.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { FromVoid } from './from_void.mjs';\nexport function FromType(context, type, value) {\n return (Type.IsArray(type) ? FromArray(context, type, value) :\n Type.IsBigInt(type) ? FromBigInt(context, type, value) :\n Type.IsBoolean(type) ? FromBoolean(context, type, value) :\n Type.IsCyclic(type) ? FromCyclic(context, type, value) :\n Type.IsEnum(type) ? FromEnum(context, type, value) :\n Type.IsInteger(type) ? FromInteger(context, type, value) :\n Type.IsIntersect(type) ? FromIntersect(context, type, value) :\n Type.IsLiteral(type) ? FromLiteral(context, type, value) :\n Type.IsNull(type) ? FromNull(context, type, value) :\n Type.IsNumber(type) ? FromNumber(context, type, value) :\n Type.IsObject(type) ? FromObject(context, type, value) :\n Type.IsRecord(type) ? FromRecord(context, type, value) :\n Type.IsRef(type) ? FromRef(context, type, value) :\n Type.IsString(type) ? FromString(context, type, value) :\n Type.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type, value) :\n Type.IsTuple(type) ? FromTuple(context, type, value) :\n Type.IsUndefined(type) ? FromUndefined(context, type, value) :\n Type.IsUnion(type) ? FromUnion(context, type, value) :\n Type.IsVoid(type) ? FromVoid(context, type, value) :\n value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Converts a value to the given type, coercing interior values if a reasonable conversion is possible. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Convert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(context, type.items, value[i]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\n// ------------------------------------------------------------------\n// FromDefault\n// ------------------------------------------------------------------\nexport function FromDefault(type, value) {\n // we only use defaults when values are undefined, exit early\n if (!Guard.IsUndefined(value))\n return value;\n return Guard.IsFunction(type.default) ? type.default() : Clone(type.default);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Evaluate, Instantiate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(context, type, value) {\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsOptional } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { IsAdditionalProperties } from '../../schema/types/index.mjs';\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const knownPropertyKeys = Guard.Keys(type.properties);\n // Properties\n for (const key of knownPropertyKeys) {\n // Resolve Value for Property\n const propertyValue = FromType(context, type.properties[key], value[key]);\n // Ambiguious Undefined: If the value is undefined, the type is optional there's no default. ignore.\n const isUnassignableUndefined = Guard.IsUndefined(propertyValue) && (IsOptional(type.properties[key]) || !Guard.HasPropertyKey(type.properties[key], 'default'));\n if (isUnassignableUndefined)\n continue;\n // Assign\n value[key] = propertyValue;\n }\n // return if not additional properties\n if (!IsAdditionalProperties(type) || Guard.IsBoolean(type.additionalProperties))\n return value;\n // AdditionalProperties\n for (const key of Guard.Keys(value)) {\n if (knownPropertyKeys.includes(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { IsAdditionalProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n // PatternProperties\n const [recordKey, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (!(recordKey.test(key) && IsDefault(recordValue)))\n continue;\n value[key] = FromType(context, recordValue, value[key]);\n }\n // AdditionalProperties\n if (!IsAdditionalProperties(type))\n return value;\n for (const key of Guard.Keys(value)) {\n if (recordKey.test(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const [items, max] = [schema.items, Math.max(schema.items.length, value.length)];\n for (let i = 0; i < max; i++) {\n if (i < items.length)\n value[i] = FromType(context, items[i], value[i]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, schema, value) {\n for (const inner of schema.anyOf) {\n const result = FromType(context, inner, Clone(value));\n if (Check(context, inner, result)) {\n return result;\n }\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsDefault } from '../../schema/index.mjs';\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDefault } from './from_default.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(context, type, value) {\n const defaulted = IsDefault(type) ? FromDefault(type, value) : value;\n return (T.IsArray(type) ? FromArray(context, type, defaulted) :\n T.IsCyclic(type) ? FromCyclic(context, type, defaulted) :\n T.IsIntersect(type) ? FromIntersect(context, type, defaulted) :\n T.IsObject(type) ? FromObject(context, type, defaulted) :\n T.IsRecord(type) ? FromRecord(context, type, defaulted) :\n T.IsRef(type) ? FromRef(context, type, defaulted) :\n T.IsTuple(type) ? FromTuple(context, type, defaulted) :\n T.IsUnion(type) ? FromUnion(context, type, defaulted) :\n defaulted);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Patches missing properties on the value using default annotations specified on the provided type. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Default(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\n// ------------------------------------------------------------------\n// Pipeline\n// ------------------------------------------------------------------\n/** Creates a value processing pipeline. */\nexport function Pipeline(pipeline) {\n return (...args) => {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return pipeline.reduce((result, func) => func(context, type, result), value);\n };\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(_context, type, value) {\n return type['~codec'].decode(value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(_context, type, value) {\n return type['~codec'].encode(value);\n}\n// ------------------------------------------------------------------\n// Callback\n// ------------------------------------------------------------------\nexport function Callback(direction, context, type, value) {\n if (!IsCodec(type))\n return value;\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(context, type, value)\n : Encode(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(direction, context, type.items, value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return exterior;\n for (let i = 0; i < exterior.length; i++) {\n exterior[i] = FromType(direction, context, type.items, exterior[i]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nexport function FromArray(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromCyclic(direction, context, type, value) {\n value = FromType(direction, { ...context, ...type.$defs }, Ref(type.$ref), value);\n return Callback(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Clean } from '../clean/index.mjs';\n// ------------------------------------------------------------------\n// MergeInteriors\n//\n// Merges all interior operand results into a single object. Each\n// subsequent operand's properties override those of prior operands.\n//\n// ------------------------------------------------------------------\nfunction MergeInteriors(interiors) {\n return interiors.reduce((results, interior) => ({ ...results, ...interior }), {});\n}\n// ------------------------------------------------------------------\n// NonMatchingInterior\n//\n// Used when Intersect operands do not all produce Objects. Returns\n// the first interior result that differs from the original value,\n// indicating a Codec has transformed the data. If no operand\n// produced a change, defaults to the first interior result.\n//\n// ------------------------------------------------------------------\nfunction NonMatchingInterior(value, interiors) {\n for (const interior of interiors)\n if (!Guard.IsDeepEqual(value, interior))\n return interior;\n return value; // value-unchanged\n}\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (Guard.IsEqual(type.allOf.length, 0))\n return Callback(direction, context, type, value);\n const interiors = type.allOf.map((schema) => FromType(direction, context, schema, Clean(schema, Clone(value))));\n const structural = interiors.every((result) => Guard.IsObject(result));\n const exterior = structural ? MergeInteriors(interiors) : NonMatchingInterior(value, interiors);\n return Callback(direction, context, type, exterior);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n if (Guard.IsEqual(type.allOf.length, 0))\n return Callback(direction, context, type, value);\n const exterior = Callback(direction, context, type, value);\n const interiors = type.allOf.map((schema) => FromType(direction, context, schema, Clean(schema, Clone(exterior))));\n const structural = interiors.every((result) => Guard.IsObject(result));\n if (structural)\n return MergeInteriors(interiors);\n return NonMatchingInterior(exterior, interiors);\n}\nexport function FromIntersect(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode') ? Decode(direction, context, type, value) : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nimport { IsOptionalUndefined } from '../shared/optional_undefined.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsObjectNotArray(value))\n return value;\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(value, key) || IsOptionalUndefined(type.properties[key], key, value))\n continue;\n value[key] = FromType(direction, context, type.properties[key], value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(exterior, key) || IsOptionalUndefined(type.properties[key], key, exterior))\n continue;\n exterior[key] = FromType(direction, context, type.properties[key], exterior[key]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsObjectNotArray(value))\n return value;\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(value)) {\n if (!regexp.test(key))\n continue;\n value[key] = FromType(direction, context, RecordValue(type), value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(exterior)) {\n if (!regexp.test(key))\n continue;\n exterior[key] = FromType(direction, context, RecordValue(type), exterior[key]);\n }\n return exterior;\n}\nexport function FromRecord(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// ResolveRef\n// ------------------------------------------------------------------\nfunction ResolveRef(direction, context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(direction, context, context[type.$ref], value)\n : value;\n}\n// ------------------------------------------------------------------\n// FromRef\n//\n// Decode and Encode apply the Callback and the referenced type's\n// codec pipeline in opposite orders, since the two operations are\n// inverses of each other.\n//\n// Decode: referenced type resolves first, Callback runs after.\n// wire value -> resolve $ref -> Callback -> decoded value\n//\n// Encode: Callback runs first, referenced type resolves after.\n// encoded value -> Callback -> resolve $ref -> wire value\n//\n// ------------------------------------------------------------------\nexport function FromRef(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Callback(direction, context, type, ResolveRef(direction, context, type, value))\n : ResolveRef(direction, context, type, Callback(direction, context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < Math.min(type.items.length, value.length); i++) {\n value[i] = FromType(direction, context, type.items[i], value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return value;\n for (let i = 0; i < Math.min(type.items.length, exterior.length); i++) {\n exterior[i] = FromType(direction, context, type.items[i], exterior[i]);\n }\n return exterior;\n}\nexport function FromTuple(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Callback } from './callback.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Check } from '../check/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n for (const schema of type.anyOf) {\n if (!Check(context, schema, value))\n continue;\n const variant = FromType(direction, context, schema, value);\n return Callback(direction, context, type, variant);\n }\n return value;\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n for (const schema of type.anyOf) {\n const variant = FromType(direction, context, schema, Clone(exterior));\n if (!Check(context, schema, variant))\n continue;\n return variant;\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromUnion\n// ------------------------------------------------------------------\nexport function FromUnion(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport * as Type from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromType(direction, context, type, value) {\n return (Type.IsArray(type) ? FromArray(direction, context, type, value) :\n Type.IsCyclic(type) ? FromCyclic(direction, context, type, value) :\n Type.IsIntersect(type) ? FromIntersect(direction, context, type, value) :\n Type.IsObject(type) ? FromObject(direction, context, type, value) :\n Type.IsRecord(type) ? FromRecord(direction, context, type, value) :\n Type.IsRef(type) ? FromRef(direction, context, type, value) :\n Type.IsTuple(type) ? FromTuple(direction, context, type, value) :\n Type.IsUnion(type) ? FromUnion(direction, context, type, value) :\n Callback(direction, context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Arguments, Settings } from '../../system/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class DecodeError extends AssertError {\n constructor(value, errors) {\n super('Decode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new DecodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// DecodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Decode callbacks only */\nexport function DecodeUnsafe(context, type, value) {\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType('Decode', context, sorted, value);\n}\n// ------------------------------------------------------------------\n// Decoder\n// ------------------------------------------------------------------\nconst Decoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n (context, type, value) => DecodeUnsafe(context, type, value)\n]);\n/** Decodes a value with the given type. */\nexport function Decode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Decoder(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments, Settings } from '../../system/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class EncodeError extends AssertError {\n constructor(value, errors) {\n super('Encode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new EncodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// EncodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Encode callbacks only */\nexport function EncodeUnsafe(context, type, value) {\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType('Encode', context, sorted, value);\n}\n// ------------------------------------------------------------------\n// Encoder\n// ------------------------------------------------------------------\nconst Encoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => EncodeUnsafe(context, type, value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n]);\n/** Encodes a value with the given type. */\nexport function Encode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Encoder(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\nimport { IsArray } from '../../type/index.mjs';\nimport { IsCyclic } from '../../type/index.mjs';\nimport { IsIntersect } from '../../type/index.mjs';\nimport { IsObject } from '../../type/index.mjs';\nimport { IsRecord, RecordValue } from '../../type/index.mjs';\nimport { IsRef, Ref } from '../../type/index.mjs';\nimport { IsTuple } from '../../type/index.mjs';\nimport { IsUnion } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(context, type) {\n return IsCodec(type) || FromType(context, type.items);\n}\n// ------------------------------------------------------------------\n// Cyclic\n// ------------------------------------------------------------------\nfunction FromCyclic(context, type) {\n return IsCodec(type) || FromRef({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\nfunction FromIntersect(context, type) {\n return IsCodec(type) || type.allOf.some((type) => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(context, type) {\n return IsCodec(type) || Guard.Keys(type.properties).some(key => {\n return FromType(context, type.properties[key]);\n });\n}\n// ------------------------------------------------------------------\n// Record\n// ------------------------------------------------------------------\nfunction FromRecord(context, type) {\n return IsCodec(type) || FromType(context, RecordValue(type));\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nfunction FromRef(context, type) {\n if (visited.has(type.$ref))\n return false;\n visited.add(type.$ref);\n return IsCodec(type) || (Guard.HasPropertyKey(context, type.$ref)\n && FromType(context, context[type.$ref]));\n}\n// ------------------------------------------------------------------\n// Tuple\n// ------------------------------------------------------------------\nfunction FromTuple(context, type) {\n return IsCodec(type) || type.items.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Union\n// ------------------------------------------------------------------\nfunction FromUnion(context, type) {\n return IsCodec(type) || type.anyOf.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nfunction FromType(context, type) {\n return (IsArray(type) ? FromArray(context, type) :\n IsCyclic(type) ? FromCyclic(context, type) :\n IsIntersect(type) ? FromIntersect(context, type) :\n IsObject(type) ? FromObject(context, type) :\n IsRecord(type) ? FromRecord(context, type) :\n IsRef(type) ? FromRef(context, type) :\n IsTuple(type) ? FromTuple(context, type) :\n IsUnion(type) ? FromUnion(context, type) :\n IsCodec(type));\n}\n// ------------------------------------------------------------------\n// Visited\n// ------------------------------------------------------------------\nconst visited = new Set();\n/** Returns true if this type contains a Codec */\nexport function HasCodec(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n visited.clear();\n return FromType(context, type);\n}\n","// deno-fmt-ignore-file\nexport class CreateError extends Error {\n constructor(type, message) {\n super(message);\n this.type = type;\n }\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nexport function FromDefault(_context, schema) {\n return Guard.IsFunction(schema.default)\n ? schema.default(schema)\n : Guard.IsObject(schema.default)\n ? Clone(schema.default)\n : schema.default;\n}\n","// deno-fmt-ignore-file\nimport { IsUniqueItems, IsDefault, IsMinItems } from '../../schema/types/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromArray(context, type) {\n if (IsUniqueItems(type) && !IsDefault(type))\n throw new CreateError(type, 'Arrays with uniqueItems constraints must specify a default annotation');\n const length = IsMinItems(type) ? type.minItems : 0;\n return Array.from({ length }, () => FromType(context, type.items));\n}\n","// deno-fmt-ignore-file\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromBigInt(_context, type) {\n return (IsExclusiveMinimum(type) ? BigInt(type.exclusiveMinimum) + BigInt(1) :\n IsMinimum(type) ? BigInt(type.minimum) :\n BigInt(0));\n}\n","// deno-fmt-ignore-file\nexport function FromBoolean(_context, _type) {\n return false;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nexport function FromConstructor(context, type) {\n const instanceType = FromType(context, type.instanceType);\n return class {\n constructor() {\n Object.assign(this, instanceType);\n }\n };\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromEnum(context, type) {\n return FromType(context, Evaluate(type));\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nexport function FromFunction(context, type) {\n const returnType = FromType(context, type.returnType);\n return () => returnType;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromInteger(_context, type) {\n return ((IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum)) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate, Instantiate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(context, type) {\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return FromType(context, evaluated);\n}\n","// deno-fmt-ignore-file\nexport function FromLiteral(_context, type) {\n return type.const;\n}\n","// deno-fmt-ignore-file\nimport { CreateError } from './error.mjs';\nexport function FromNever(_context, type) {\n throw new CreateError(type, 'Cannot create TNever types');\n}\n","// deno-fmt-ignore-file\nexport function FromNull(_context, _type) {\n return null;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromNumber(_context, type) {\n return (IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromObject(context, type) {\n const required = Guard.IsUndefined(type.required) ? [] : type.required;\n return required.reduce((result, key) => {\n return { ...result, [key]: FromType(context, type.properties[key]) };\n }, {});\n}\n","// deno-fmt-ignore-file\nimport { IsMinProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRecord(_context, type) {\n if (IsMinProperties(type) && !IsDefault(type))\n throw new CreateError(type, 'Record with the minProperties constraint must have a default annotation');\n return {};\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRef(context, type) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref])\n : (() => { throw new CreateError(type, 'Unable to deref Ref'); })();\n}\n","// deno-fmt-ignore-file\nimport { IsPattern, IsFormat, IsDefault, IsMinLength } from '../../schema/types/index.mjs';\nexport function FromString(_context, type) {\n const needsDefault = (IsPattern(type) || IsFormat(type)) && !IsDefault(type);\n if (needsDefault)\n throw Error('Strings with format or pattern constraints must specify default');\n const minLength = IsMinLength(type) ? type.minLength : 0;\n return ''.padEnd(minLength);\n}\n","// deno-fmt-ignore-file\nexport function FromSymbol(_context, _type) {\n return Symbol();\n}\n","// deno-fmt-ignore-file\nimport { IsString } from '../../type/index.mjs';\nimport { TemplateLiteralDecode } from '../../type/engine/template_literal/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromTemplateLiteral(context, type) {\n const decoded = TemplateLiteralDecode(type.pattern);\n if (IsString(decoded))\n throw new CreateError(type, 'Unable to create TemplateLiteral due to infinite type expansion');\n return FromType(context, decoded);\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, type) {\n return Array.from({ length: type.minItems }, (_, i) => FromType(context, type.items[i]));\n}\n","// deno-fmt-ignore-file\nexport function FromUndefined(_context, _type) {\n return undefined;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, type) {\n if (Guard.IsEqual(type.anyOf.length, 0)) {\n throw Error('Unable to create Union with no variants');\n }\n return FromType(context, type.anyOf[0]);\n}\n","// deno-fmt-ignore-file\nexport function FromVoid(_context, _type) {\n return void 0;\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport * as S from '../../schema/types/index.mjs';\nimport { FromDefault } from './from_default.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromBigInt } from './from_bigint.mjs';\nimport { FromBoolean } from './from_boolean.mjs';\nimport { FromConstructor } from './from_constructor.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromEnum } from './from_enum.mjs';\nimport { FromFunction } from './from_function.mjs';\nimport { FromInteger } from './from_integer.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromLiteral } from './from_literal.mjs';\nimport { FromNever } from './from_never.mjs';\nimport { FromNull } from './from_null.mjs';\nimport { FromNumber } from './from_number.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromString } from './from_string.mjs';\nimport { FromSymbol } from './from_symbol.mjs';\nimport { FromTemplateLiteral } from './from_template_literal.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUndefined } from './from_undefined.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { FromVoid } from './from_void.mjs';\nexport function FromType(context, type) {\n return (\n // -----------------------------------------------------\n // Default\n // -----------------------------------------------------\n S.IsDefault(type) ? FromDefault(context, type) :\n // -----------------------------------------------------\n // Types\n // -----------------------------------------------------\n T.IsArray(type) ? FromArray(context, type) :\n T.IsBigInt(type) ? FromBigInt(context, type) :\n T.IsBoolean(type) ? FromBoolean(context, type) :\n T.IsConstructor(type) ? FromConstructor(context, type) :\n T.IsCyclic(type) ? FromCyclic(context, type) :\n T.IsEnum(type) ? FromEnum(context, type) :\n T.IsFunction(type) ? FromFunction(context, type) :\n T.IsInteger(type) ? FromInteger(context, type) :\n T.IsIntersect(type) ? FromIntersect(context, type) :\n T.IsLiteral(type) ? FromLiteral(context, type) :\n T.IsNever(type) ? FromNever(context, type) :\n T.IsNull(type) ? FromNull(context, type) :\n T.IsNumber(type) ? FromNumber(context, type) :\n T.IsObject(type) ? FromObject(context, type) :\n T.IsRecord(type) ? FromRecord(context, type) :\n T.IsRef(type) ? FromRef(context, type) :\n T.IsString(type) ? FromString(context, type) :\n T.IsSymbol(type) ? FromSymbol(context, type) :\n T.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type) :\n T.IsTuple(type) ? FromTuple(context, type) :\n T.IsUndefined(type) ? FromUndefined(context, type) :\n T.IsUnion(type) ? FromUnion(context, type) :\n T.IsVoid(type) ? FromVoid(context, type) :\n undefined);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from_type.mjs';\n/** Creates a value from the provided type. This function will use `default` annotations if present. */\nexport function Create(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type],\n });\n return FromType(context, type);\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../../system/system.mjs';\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class ParseError extends AssertError {\n constructor(value, errors) {\n super('Parse', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new ParseError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// Parser\n// ------------------------------------------------------------------\nexport const Parser = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value)\n]);\n/** Parses a value with the given type. */\nexport function Parse(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const checked = Check(context, type, value);\n if (checked)\n return value;\n if (Settings.Get().correctiveParse)\n return Parser(context, type, value);\n throw new ParseError(value, Errors(context, type, value));\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nexport const Insert = T.Object({\n type: T.Literal('insert'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Update = Object({\n type: T.Literal('update'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Delete = T.Object({\n type: T.Literal('delete'),\n path: T.String(),\n});\nexport const Edit = T.Union([Insert, Update, Delete]);\n","// deno-fmt-ignore-file\nimport { Settings } from '../system/settings/index.mjs';\nimport { Errors, Clean, Convert, Create, Default, Decode, Encode, HasCodec, Parser, ParseError } from '../value/index.mjs';\nimport { Build } from '../schema/index.mjs';\n// ------------------------------------------------------------------\n// Validator<...>\n// ------------------------------------------------------------------\nexport class Validator {\n /** Constructs a Validator. */\n constructor(context, type) {\n this.hasCodec = HasCodec(context, type);\n this.buildResult = Build(context, type);\n this.evaluateResult = this.buildResult.Evaluate();\n }\n // ----------------------------------------------------------------\n // IsAccelerated\n // ----------------------------------------------------------------\n /** Returns true if this Validator is using JIT acceleration. */\n IsAccelerated() {\n return this.evaluateResult.IsAccelerated();\n }\n // ----------------------------------------------------------------\n // Context & Type\n // ----------------------------------------------------------------\n /** Returns the Context for this validator. */\n Context() {\n return this.buildResult.Context();\n }\n /** Returns the underlying Type used to construct this Validator. */\n Type() {\n return this.buildResult.Schema();\n }\n // ----------------------------------------------------------------\n // Code\n // ----------------------------------------------------------------\n /** Returns the generated code for this validator. */\n Code() {\n return this.evaluateResult.Code();\n }\n // ----------------------------------------------------------------\n // Standard Validator\n // ----------------------------------------------------------------\n /** Performs a type-guard check on the provided value. */\n Check(value) {\n return this.evaluateResult.Check(value);\n }\n /** Validates a value and returns it. Will throw if invalid. */\n Parse(value) {\n const checked = this.Check(value);\n if (checked)\n return value;\n if (Settings.Get().correctiveParse)\n return Parser(this.Context(), this.Type(), value);\n throw new ParseError(value, this.Errors(value));\n }\n /** Returns an array of validation errors for the given value. */\n Errors(value) {\n if (this.IsAccelerated() && this.Check(value))\n return [];\n return Errors(this.Context(), this.Type(), value);\n }\n // ----------------------------------------------------------------\n // Value.* Operations\n // ----------------------------------------------------------------\n /** Cleans a value using the Validator type. */\n Clean(value) {\n return Clean(this.Context(), this.Type(), value);\n }\n /** Converts a value using the Validator type. */\n Convert(value) {\n return Convert(this.Context(), this.Type(), value);\n }\n /** Creates a value using the Validator type. */\n Create() {\n return Create(this.Context(), this.Type());\n }\n /** Creates defaults using the Validator type. */\n Default(value) {\n return Default(this.Context(), this.Type(), value);\n }\n /** Decodes a value */\n Decode(value) {\n const result = this.hasCodec ? Decode(this.Context(), this.Type(), value) : this.Parse(value);\n return result;\n }\n /** Encodes a value */\n Encode(value) {\n const result = this.hasCodec ? Encode(this.Context(), this.Type(), value) : this.Parse(value);\n return result;\n }\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Validator } from './validator.mjs';\n/** Compiles a type into a high performance Validator */\nexport function Compile(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n return new Validator(context, type);\n}\n","import { Compile } from \"typebox/compile\";\nimport { Value } from \"typebox/value\";\nconst validatorCache = new WeakMap();\nconst TYPEBOX_KIND = Symbol.for(\"TypeBox.Kind\");\nfunction getSchemaTypes(schema) {\n if (typeof schema.type === \"string\") {\n return [schema.type];\n }\n if (Array.isArray(schema.type)) {\n return schema.type.filter((type) => typeof type === \"string\");\n }\n return [];\n}\nfunction matchesJsonType(value, type) {\n switch (type) {\n case \"number\":\n return typeof value === \"number\";\n case \"integer\":\n return typeof value === \"number\" && Number.isInteger(value);\n case \"boolean\":\n return typeof value === \"boolean\";\n case \"string\":\n return typeof value === \"string\";\n case \"null\":\n return value === null;\n case \"array\":\n return Array.isArray(value);\n case \"object\":\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n default:\n return false;\n }\n}\nfunction getSubSchemaValidator(schema) {\n try {\n return getValidator(schema);\n }\n catch {\n return undefined;\n }\n}\nfunction coercePrimitiveByType(value, type) {\n switch (type) {\n case \"number\": {\n if (value === null) {\n return 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n const parsed = Number(value);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n }\n return value;\n }\n case \"integer\": {\n if (value === null) {\n return 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n const parsed = Number(value);\n if (Number.isInteger(parsed)) {\n return parsed;\n }\n }\n if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n }\n return value;\n }\n case \"boolean\": {\n if (value === null) {\n return false;\n }\n if (typeof value === \"string\") {\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n if (typeof value === \"number\") {\n if (value === 1) {\n return true;\n }\n if (value === 0) {\n return false;\n }\n }\n return value;\n }\n case \"string\": {\n if (value === null) {\n return \"\";\n }\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n return String(value);\n }\n return value;\n }\n case \"null\": {\n if (value === \"\" || value === 0 || value === false) {\n return null;\n }\n return value;\n }\n default:\n return value;\n }\n}\nfunction applySchemaObjectCoercion(value, schema) {\n const properties = schema.properties;\n const definedKeys = new Set(properties ? Object.keys(properties) : []);\n if (properties) {\n for (const [key, propertySchema] of Object.entries(properties)) {\n if (!(key in value)) {\n continue;\n }\n value[key] = coerceWithJsonSchema(value[key], propertySchema);\n }\n }\n if (schema.additionalProperties && typeof schema.additionalProperties === \"object\") {\n for (const [key, propertyValue] of Object.entries(value)) {\n if (definedKeys.has(key)) {\n continue;\n }\n value[key] = coerceWithJsonSchema(propertyValue, schema.additionalProperties);\n }\n }\n}\nfunction applySchemaArrayCoercion(value, schema) {\n if (Array.isArray(schema.items)) {\n for (let index = 0; index < value.length; index++) {\n const itemSchema = schema.items[index];\n if (!itemSchema) {\n continue;\n }\n value[index] = coerceWithJsonSchema(value[index], itemSchema);\n }\n return;\n }\n if (schema.items && typeof schema.items === \"object\") {\n for (let index = 0; index < value.length; index++) {\n value[index] = coerceWithJsonSchema(value[index], schema.items);\n }\n }\n}\nfunction coerceWithUnionSchema(value, schemas) {\n for (const schema of schemas) {\n const validator = getSubSchemaValidator(schema);\n if (validator?.Check(value)) {\n return value;\n }\n }\n for (const schema of schemas) {\n const candidate = structuredClone(value);\n const coerced = coerceWithJsonSchema(candidate, schema);\n const validator = getSubSchemaValidator(schema);\n if (validator?.Check(coerced)) {\n return coerced;\n }\n }\n return value;\n}\nfunction coerceWithJsonSchema(value, schema) {\n let nextValue = value;\n if (Array.isArray(schema.allOf)) {\n for (const nested of schema.allOf) {\n nextValue = coerceWithJsonSchema(nextValue, nested);\n }\n }\n if (Array.isArray(schema.anyOf)) {\n nextValue = coerceWithUnionSchema(nextValue, schema.anyOf);\n }\n if (Array.isArray(schema.oneOf)) {\n nextValue = coerceWithUnionSchema(nextValue, schema.oneOf);\n }\n const schemaTypes = getSchemaTypes(schema);\n const matchesUnionMember = schemaTypes.length > 1 && schemaTypes.some((schemaType) => matchesJsonType(nextValue, schemaType));\n if (schemaTypes.length > 0 && !matchesUnionMember) {\n for (const schemaType of schemaTypes) {\n const candidate = coercePrimitiveByType(nextValue, schemaType);\n if (candidate !== nextValue) {\n nextValue = candidate;\n break;\n }\n }\n }\n if (schemaTypes.includes(\"object\") &&\n typeof nextValue === \"object\" &&\n nextValue !== null &&\n !Array.isArray(nextValue)) {\n applySchemaObjectCoercion(nextValue, schema);\n }\n if (schemaTypes.includes(\"array\") && Array.isArray(nextValue)) {\n applySchemaArrayCoercion(nextValue, schema);\n }\n return nextValue;\n}\nfunction normalizeOptionalNulls(value, schema) {\n if (Array.isArray(value)) {\n if (Array.isArray(schema.items)) {\n for (let index = 0; index < value.length; index++) {\n const itemSchema = schema.items[index];\n if (itemSchema)\n normalizeOptionalNulls(value[index], itemSchema);\n }\n }\n else if (schema.items) {\n for (const item of value)\n normalizeOptionalNulls(item, schema.items);\n }\n return;\n }\n if (typeof value !== \"object\" || value === null || !schema.properties)\n return;\n const object = value;\n const required = new Set(schema.required ?? []);\n for (const [key, propertySchema] of Object.entries(schema.properties)) {\n if (!(key in object))\n continue;\n if (object[key] === null &&\n !required.has(key) &&\n typeof propertySchema.$ref !== \"string\" &&\n getSubSchemaValidator(propertySchema)?.Check(null) === false) {\n delete object[key];\n }\n else {\n normalizeOptionalNulls(object[key], propertySchema);\n }\n }\n}\nfunction getValidator(schema) {\n const key = schema;\n const cached = validatorCache.get(key);\n if (cached) {\n return cached;\n }\n const validator = Compile(schema);\n validatorCache.set(key, validator);\n return validator;\n}\nfunction formatValidationPath(error) {\n if (error.keyword === \"required\") {\n const requiredProperties = error.params.requiredProperties;\n const requiredProperty = requiredProperties?.[0];\n if (requiredProperty) {\n const basePath = error.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n return basePath ? `${basePath}.${requiredProperty}` : requiredProperty;\n }\n }\n const path = error.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n return path || \"root\";\n}\n/**\n * Finds a tool by name and validates the tool call arguments against its TypeBox schema\n * @param tools Array of tool definitions\n * @param toolCall The tool call from the LLM\n * @returns The validated arguments\n * @throws Error if tool is not found or validation fails\n */\nexport function validateToolCall(tools, toolCall) {\n const tool = tools.find((t) => t.name === toolCall.name);\n if (!tool) {\n throw new Error(`Tool \"${toolCall.name}\" not found`);\n }\n return validateToolArguments(tool, toolCall);\n}\n/**\n * Validates tool call arguments against the tool's TypeBox schema\n * @param tool The tool definition with TypeBox schema\n * @param toolCall The tool call from the LLM\n * @returns The validated (and potentially coerced) arguments\n * @throws Error with formatted message if validation fails\n */\nexport function validateToolArguments(tool, toolCall) {\n const args = structuredClone(toolCall.arguments);\n normalizeOptionalNulls(args, tool.parameters);\n Value.Convert(tool.parameters, args);\n const validator = getValidator(tool.parameters);\n if (!Object.getOwnPropertySymbols(tool.parameters).includes(TYPEBOX_KIND)) {\n const coerced = coerceWithJsonSchema(args, tool.parameters);\n if (coerced !== args) {\n if (typeof args === \"object\" && args !== null && typeof coerced === \"object\" && coerced !== null) {\n for (const key of Object.keys(args)) {\n delete args[key];\n }\n Object.assign(args, coerced);\n }\n else {\n return validator.Check(coerced) ? coerced : args;\n }\n }\n }\n if (validator.Check(args)) {\n return args;\n }\n const errors = validator\n .Errors(args)\n .map((error) => ` - ${formatValidationPath(error)}: ${error.message}`)\n .join(\"\\n\") || \"Unknown validation error\";\n const errorMessage = `Validation failed for tool \"${toolCall.name}\":\\n${errors}\\n\\nReceived arguments:\\n${JSON.stringify(toolCall.arguments, null, 2)}`;\n throw new Error(errorMessage);\n}\n//# sourceMappingURL=validation.js.map","let defaultStreamFn;\n/**\n * Configure the fallback used by Agent and low-level loops when callers omit streamFn.\n *\n * Hosts that provide a default model runtime can install its stream function here\n * without making pi-agent-core depend on a provider catalog or compatibility layer.\n */\nexport function setDefaultStreamFn(streamFn) {\n defaultStreamFn = streamFn;\n}\nexport function getDefaultStreamFn() {\n if (!defaultStreamFn) {\n throw new Error(\"No default stream function configured. Pass streamFn explicitly or call setDefaultStreamFn().\");\n }\n return defaultStreamFn;\n}\n//# sourceMappingURL=stream-fn.js.map","/**\n * Agent loop that works with AgentMessage throughout.\n * Transforms to Message[] only at the LLM call boundary.\n */\nimport { EventStream, getCurrentTools, getToolStateChanges, normalizeContext, toToolDeclaration, validateToolArguments, } from \"@earendil-works/pi-ai\";\nimport { getDefaultStreamFn } from \"./stream-fn.js\";\n/**\n * Start an agent loop with a new prompt message.\n * The prompt is added to the context and events are emitted for it.\n */\nexport function agentLoop(prompts, context, config, signal, streamFn) {\n const stream = createAgentStream();\n void runAgentLoop(prompts, context, config, async (event) => {\n stream.push(event);\n }, signal, streamFn).then((messages) => {\n stream.end(messages);\n });\n return stream;\n}\n/**\n * Continue an agent loop from the current context without adding a new message.\n * Used for retries - context already has user message or tool results.\n *\n * **Important:** The last message in context must convert to a `user` or `toolResult` message\n * via `convertToLlm`. If it doesn't, the LLM provider will reject the request.\n * This cannot be validated here since `convertToLlm` is only called once per turn.\n */\nexport function agentLoopContinue(context, config, signal, streamFn) {\n if (context.messages.length === 0) {\n throw new Error(\"Cannot continue: no messages in context\");\n }\n if (context.messages[context.messages.length - 1].role === \"assistant\") {\n throw new Error(\"Cannot continue from message role: assistant\");\n }\n const stream = createAgentStream();\n void runAgentLoopContinue(context, config, async (event) => {\n stream.push(event);\n }, signal, streamFn).then((messages) => {\n stream.end(messages);\n });\n return stream;\n}\nexport async function runAgentLoop(prompts, context, config, emit, signal, streamFn) {\n const initialMessages = declareToolChanges(context, prompts);\n const newMessages = [...initialMessages];\n const currentContext = {\n ...context,\n messages: [...context.messages, ...initialMessages],\n };\n await emit({ type: \"agent_start\" });\n await emit({ type: \"turn_start\" });\n for (const message of initialMessages) {\n await emit({ type: \"message_start\", message });\n await emit({ type: \"message_end\", message });\n }\n await runLoop(currentContext, newMessages, config, signal, emit, streamFn ?? getDefaultStreamFn());\n return newMessages;\n}\nexport async function runAgentLoopContinue(context, config, emit, signal, streamFn) {\n if (context.messages.length === 0) {\n throw new Error(\"Cannot continue: no messages in context\");\n }\n if (context.messages[context.messages.length - 1].role === \"assistant\") {\n throw new Error(\"Cannot continue from message role: assistant\");\n }\n const newMessages = [];\n const currentContext = { ...context };\n await emit({ type: \"agent_start\" });\n await emit({ type: \"turn_start\" });\n await runLoop(currentContext, newMessages, config, signal, emit, streamFn ?? getDefaultStreamFn());\n return newMessages;\n}\nfunction createAgentStream() {\n return new EventStream((event) => event.type === \"agent_end\", (event) => (event.type === \"agent_end\" ? event.messages : []));\n}\n/**\n * Main loop logic shared by agentLoop and agentLoopContinue.\n */\nasync function runLoop(initialContext, newMessages, initialConfig, signal, emit, streamFunction) {\n let currentContext = initialContext;\n let config = initialConfig;\n let lastCompletedTurn;\n let explicitContinuation = false;\n // Check for steering messages at start (user may have typed while waiting)\n let pendingMessages = (await config.getSteeringMessages?.()) || [];\n // Outer loop: continues when queued follow-up messages arrive after agent would stop\n while (true) {\n let hasMoreToolCalls = true;\n // Inner loop: process tool calls and steering messages\n while (hasMoreToolCalls || pendingMessages.length > 0) {\n let preparedMessages = [];\n if (lastCompletedTurn) {\n const nextTurnSnapshot = await config.prepareNextTurn?.(lastCompletedTurn);\n if (nextTurnSnapshot) {\n currentContext = nextTurnSnapshot.context ?? currentContext;\n preparedMessages = nextTurnSnapshot.messages ?? [];\n config = {\n ...config,\n model: nextTurnSnapshot.model ?? config.model,\n reasoning: nextTurnSnapshot.thinkingLevel === undefined\n ? config.reasoning\n : nextTurnSnapshot.thinkingLevel === \"off\"\n ? undefined\n : nextTurnSnapshot.thinkingLevel,\n };\n }\n // Preparation can be long-running (for example, compaction). Pick up steering\n // queued while it ran. Only poll again if the earlier poll returned nothing;\n // otherwise one-at-a-time mode would deliver two messages in this turn.\n if (pendingMessages.length === 0) {\n pendingMessages = (await config.getSteeringMessages?.()) || [];\n }\n await emit({ type: \"turn_start\" });\n }\n // Process prepared and queued messages before the next assistant response.\n for (const message of declareToolChanges(currentContext, [...preparedMessages, ...pendingMessages])) {\n await emit({ type: \"message_start\", message });\n await emit({ type: \"message_end\", message });\n currentContext.messages.push(message);\n newMessages.push(message);\n }\n pendingMessages = [];\n const requestUpdate = await config.prepareRequest?.({\n context: currentContext,\n model: config.model,\n thinkingLevel: config.reasoning ?? \"off\",\n }, signal);\n if (requestUpdate) {\n currentContext = requestUpdate.context ?? currentContext;\n config = {\n ...config,\n model: requestUpdate.model ?? config.model,\n reasoning: requestUpdate.thinkingLevel === undefined\n ? config.reasoning\n : requestUpdate.thinkingLevel === \"off\"\n ? undefined\n : requestUpdate.thinkingLevel,\n };\n }\n // Stream assistant response\n const message = await streamAssistantResponse(currentContext, config, signal, emit, streamFunction);\n newMessages.push(message);\n if (message.stopReason === \"error\" || message.stopReason === \"aborted\") {\n lastCompletedTurn = {\n message,\n toolResults: [],\n context: currentContext,\n newMessages,\n };\n await config.finishTurn?.(lastCompletedTurn, signal);\n await emit({ type: \"turn_end\", message, toolResults: [] });\n await emit({ type: \"agent_end\", messages: newMessages });\n return;\n }\n // Check for tool calls\n const toolCalls = message.content.filter((c) => c.type === \"toolCall\");\n const toolResults = [];\n hasMoreToolCalls = false;\n if (toolCalls.length > 0) {\n // A \"length\" stop means the output was cut off by the token limit, so\n // every tool call in the message may carry truncated arguments. Fail\n // them all instead of executing potentially borked calls.\n const executedToolBatch = message.stopReason === \"length\"\n ? await failToolCallsFromTruncatedMessage(toolCalls, emit)\n : await executeToolCalls(currentContext, message, config, signal, emit);\n toolResults.push(...executedToolBatch.messages);\n hasMoreToolCalls = !executedToolBatch.terminate;\n for (const result of toolResults) {\n currentContext.messages.push(result);\n newMessages.push(result);\n }\n }\n lastCompletedTurn = {\n message,\n toolResults,\n context: currentContext,\n newMessages,\n };\n const decision = await config.finishTurn?.(lastCompletedTurn, signal);\n await emit({ type: \"turn_end\", message, toolResults });\n if (decision?.action === \"end\") {\n await emit({ type: \"agent_end\", messages: newMessages });\n return;\n }\n explicitContinuation = decision?.action === \"continue\";\n pendingMessages = (await config.getSteeringMessages?.()) || [];\n if (hasMoreToolCalls || pendingMessages.length > 0) {\n explicitContinuation = false;\n }\n }\n // Agent would stop here. Check for follow-up messages.\n const followUpMessages = (await config.getFollowUpMessages?.()) || [];\n if (followUpMessages.length > 0) {\n // Set as pending so inner loop processes them\n explicitContinuation = false;\n pendingMessages = followUpMessages;\n continue;\n }\n // No natural request was selected, so fulfill the continuation decision with one context-only turn.\n if (explicitContinuation) {\n explicitContinuation = false;\n continue;\n }\n // No more messages, exit\n break;\n }\n await emit({ type: \"agent_end\", messages: newMessages });\n}\n/**\n * Declare tool loadout changes to the model.\n *\n * `context.tools` is what the runtime can execute; the transcript's system messages declare\n * what the model may call. Before each request the difference becomes `toolsAdded` and\n * `toolsRemoved` on a system message. When a pending system message exists, its tool fields\n * are treated as intent and replaced with the delta between the committed transcript and\n * the executable set, so replay always yields exactly `context.tools`. Otherwise a new\n * system message is inserted before the first non-system pending message.\n */\nfunction declareToolChanges(context, pendingMessages) {\n let systemIndex = -1;\n for (let i = pendingMessages.length - 1; i >= 0; i--) {\n if (pendingMessages[i].role === \"system\") {\n systemIndex = i;\n break;\n }\n }\n const pending = pendingMessages[systemIndex];\n const baseline = pending\n ? pendingMessages.map((message, index) => index === systemIndex ? withToolChanges(pending, NO_CHANGES) : message)\n : pendingMessages;\n const changes = getToolStateChanges(getCurrentTools([...context.messages, ...baseline]), (context.tools ?? []).map(toToolDeclaration));\n const unchanged = changes.toolsAdded.length === 0 && changes.toolsRemoved.length === 0;\n if (pending) {\n // Keep the caller's message object when it already declares no tool changes.\n if (unchanged && !pending.toolsAdded?.length && !pending.toolsRemoved?.length)\n return pendingMessages;\n return baseline.map((message, index) => (index === systemIndex ? withToolChanges(pending, changes) : message));\n }\n if (unchanged)\n return pendingMessages;\n const update = withToolChanges({ role: \"system\", content: \"\", timestamp: Date.now() }, changes);\n const insertIndex = pendingMessages.findIndex((message) => message.role !== \"system\");\n const index = insertIndex === -1 ? pendingMessages.length : insertIndex;\n return [...pendingMessages.slice(0, index), update, ...pendingMessages.slice(index)];\n}\nconst NO_CHANGES = { toolsAdded: [], toolsRemoved: [] };\n/** Copy a system message with its tool fields replaced by `changes`; empty lists omit the field. */\nfunction withToolChanges(message, { toolsAdded, toolsRemoved }) {\n const { toolsAdded: _added, toolsRemoved: _removed, ...rest } = message;\n return {\n ...rest,\n ...(toolsAdded.length > 0 ? { toolsAdded } : {}),\n ...(toolsRemoved.length > 0 ? { toolsRemoved } : {}),\n };\n}\n/**\n * Stream an assistant response from the LLM.\n * This is where AgentMessage[] gets transformed to Message[] for the LLM.\n */\nasync function streamAssistantResponse(context, config, signal, emit, streamFunction) {\n // Apply context transform if configured (AgentMessage[] → AgentMessage[])\n let messages = context.messages;\n if (config.transformContext) {\n messages = await config.transformContext(messages, signal);\n }\n // Convert to LLM-compatible messages (AgentMessage[] → Message[])\n const llmMessages = await config.convertToLlm(messages);\n const llmContext = normalizeContext({ messages: llmMessages });\n // Resolve API key (important for expiring tokens)\n const resolvedApiKey = (config.getApiKey ? await config.getApiKey(config.model.provider) : undefined) || config.apiKey;\n const response = await streamFunction(config.model, llmContext, {\n ...config,\n apiKey: resolvedApiKey,\n signal,\n });\n // Record the requested level, whichever stream function answered.\n const result = async () => Object.assign(await response.result(), { thinkingLevel: config.reasoning ?? \"off\" });\n let partialMessage = null;\n let addedPartial = false;\n for await (const event of response) {\n switch (event.type) {\n case \"start\":\n partialMessage = event.partial;\n context.messages.push(partialMessage);\n addedPartial = true;\n await emit({ type: \"message_start\", message: { ...partialMessage } });\n break;\n case \"text_start\":\n case \"text_delta\":\n case \"text_end\":\n case \"thinking_start\":\n case \"thinking_delta\":\n case \"thinking_end\":\n case \"toolcall_start\":\n case \"toolcall_delta\":\n case \"toolcall_end\":\n if (partialMessage) {\n partialMessage = event.partial;\n context.messages[context.messages.length - 1] = partialMessage;\n await emit({\n type: \"message_update\",\n assistantMessageEvent: event,\n message: { ...partialMessage },\n });\n }\n break;\n case \"done\":\n case \"error\": {\n const finalMessage = await result();\n if (addedPartial) {\n context.messages[context.messages.length - 1] = finalMessage;\n }\n else {\n context.messages.push(finalMessage);\n }\n if (!addedPartial) {\n await emit({ type: \"message_start\", message: { ...finalMessage } });\n }\n await emit({ type: \"message_end\", message: finalMessage });\n return finalMessage;\n }\n }\n }\n const finalMessage = await result();\n if (addedPartial) {\n context.messages[context.messages.length - 1] = finalMessage;\n }\n else {\n context.messages.push(finalMessage);\n await emit({ type: \"message_start\", message: { ...finalMessage } });\n }\n await emit({ type: \"message_end\", message: finalMessage });\n return finalMessage;\n}\n/**\n * Fail all tool calls from an assistant message that was truncated by the\n * output token limit. Streamed tool-call arguments are finalized with a\n * best-effort JSON salvage parser, so a truncated message can yield tool calls\n * whose arguments parse and validate but are silently incomplete. None of them\n * are safe to execute; report each as an error so the model can re-issue them.\n */\nasync function failToolCallsFromTruncatedMessage(toolCalls, emit) {\n const messages = [];\n for (const toolCall of toolCalls) {\n await emit({\n type: \"tool_execution_start\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n args: toolCall.arguments,\n });\n const finalized = {\n toolCall,\n result: createErrorToolResult(`Tool call \"${toolCall.name}\" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),\n isError: true,\n };\n await emitToolExecutionEnd(finalized, emit);\n const toolResultMessage = createToolResultMessage(finalized);\n await emitToolResultMessage(toolResultMessage, emit);\n messages.push(toolResultMessage);\n }\n return { messages, terminate: false };\n}\n/**\n * Execute tool calls from an assistant message.\n */\nasync function executeToolCalls(currentContext, assistantMessage, config, signal, emit) {\n const toolCalls = assistantMessage.content.filter((c) => c.type === \"toolCall\");\n const hasSequentialToolCall = toolCalls.some((tc) => currentContext.tools?.find((t) => t.name === tc.name)?.executionMode === \"sequential\");\n if (config.toolExecution === \"sequential\" || hasSequentialToolCall) {\n return executeToolCallsSequential(currentContext, assistantMessage, toolCalls, config, signal, emit);\n }\n return executeToolCallsParallel(currentContext, assistantMessage, toolCalls, config, signal, emit);\n}\nasync function executeToolCallsSequential(currentContext, assistantMessage, toolCalls, config, signal, emit) {\n const finalizedCalls = [];\n const messages = [];\n for (const toolCall of toolCalls) {\n await emit({\n type: \"tool_execution_start\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n args: toolCall.arguments,\n });\n const preparation = await prepareToolCall(currentContext, assistantMessage, toolCall, config, signal);\n let finalized;\n if (preparation.kind === \"immediate\") {\n finalized = {\n toolCall,\n result: preparation.result,\n isError: preparation.isError,\n };\n }\n else {\n const executed = await executePreparedToolCall(preparation, signal, emitToolExecutionUpdate(toolCall, emit));\n finalized = await finalizeExecutedToolCall(currentContext, assistantMessage, preparation, executed, config, signal);\n }\n await emitToolExecutionEnd(finalized, emit);\n const toolResultMessage = createToolResultMessage(finalized);\n await emitToolResultMessage(toolResultMessage, emit);\n finalizedCalls.push(finalized);\n messages.push(toolResultMessage);\n if (signal?.aborted) {\n break;\n }\n }\n return {\n messages,\n terminate: shouldTerminateToolBatch(finalizedCalls),\n };\n}\nasync function executeToolCallsParallel(currentContext, assistantMessage, toolCalls, config, signal, emit) {\n const finalizedCalls = [];\n for (const toolCall of toolCalls) {\n await emit({\n type: \"tool_execution_start\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n args: toolCall.arguments,\n });\n const preparation = await prepareToolCall(currentContext, assistantMessage, toolCall, config, signal);\n if (preparation.kind === \"immediate\") {\n const finalized = {\n toolCall,\n result: preparation.result,\n isError: preparation.isError,\n };\n await emitToolExecutionEnd(finalized, emit);\n finalizedCalls.push(finalized);\n if (signal?.aborted) {\n break;\n }\n continue;\n }\n finalizedCalls.push(async () => {\n if (signal?.aborted) {\n const finalized = {\n toolCall,\n result: createErrorToolResult(\"Operation aborted\"),\n isError: true,\n };\n await emitToolExecutionEnd(finalized, emit);\n return finalized;\n }\n const executed = await executePreparedToolCall(preparation, signal, emitToolExecutionUpdate(toolCall, emit));\n const finalized = await finalizeExecutedToolCall(currentContext, assistantMessage, preparation, executed, config, signal);\n await emitToolExecutionEnd(finalized, emit);\n return finalized;\n });\n if (signal?.aborted) {\n break;\n }\n }\n const orderedFinalizedCalls = await Promise.all(finalizedCalls.map((entry) => (typeof entry === \"function\" ? entry() : Promise.resolve(entry))));\n const messages = [];\n for (const finalized of orderedFinalizedCalls) {\n const toolResultMessage = createToolResultMessage(finalized);\n await emitToolResultMessage(toolResultMessage, emit);\n messages.push(toolResultMessage);\n }\n return {\n messages,\n terminate: shouldTerminateToolBatch(orderedFinalizedCalls),\n };\n}\nfunction shouldTerminateToolBatch(finalizedCalls) {\n return finalizedCalls.length > 0 && finalizedCalls.every((finalized) => finalized.result.terminate === true);\n}\nfunction prepareToolCallArguments(tool, toolCall) {\n if (!tool.prepareArguments) {\n return toolCall;\n }\n const preparedArguments = tool.prepareArguments(toolCall.arguments);\n if (preparedArguments === toolCall.arguments) {\n return toolCall;\n }\n return {\n ...toolCall,\n arguments: preparedArguments,\n };\n}\nasync function prepareToolCall(currentContext, assistantMessage, toolCall, config, signal, tools = currentContext.tools ?? []) {\n const tool = tools.find((t) => t.name === toolCall.name);\n if (!tool) {\n return {\n kind: \"immediate\",\n result: createErrorToolResult(`Tool ${toolCall.name} not found`),\n isError: true,\n };\n }\n try {\n const preparedToolCall = prepareToolCallArguments(tool, toolCall);\n const validatedArgs = validateToolArguments(tool, preparedToolCall);\n if (config.beforeToolCall) {\n const beforeResult = await config.beforeToolCall({\n assistantMessage,\n toolCall,\n args: validatedArgs,\n context: currentContext,\n }, signal);\n if (signal?.aborted) {\n return {\n kind: \"immediate\",\n result: createErrorToolResult(\"Operation aborted\"),\n isError: true,\n };\n }\n if (beforeResult?.block) {\n const result = createErrorToolResult(beforeResult.reason || \"Tool execution was blocked\");\n if (beforeResult.terminate === true) {\n result.terminate = true;\n }\n return {\n kind: \"immediate\",\n result,\n isError: true,\n };\n }\n }\n if (signal?.aborted) {\n return {\n kind: \"immediate\",\n result: createErrorToolResult(\"Operation aborted\"),\n isError: true,\n };\n }\n return {\n kind: \"prepared\",\n toolCall,\n tool,\n args: validatedArgs,\n };\n }\n catch (error) {\n return {\n kind: \"immediate\",\n result: createErrorToolResult(error instanceof Error ? error.message : String(error)),\n isError: true,\n };\n }\n}\nfunction emitToolExecutionUpdate(toolCall, emit) {\n return (partialResult) => emit({\n type: \"tool_execution_update\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n args: toolCall.arguments,\n partialResult,\n });\n}\n/**\n * Run one tool call through the same steps as a model-issued call: argument preparation, schema\n * validation, `beforeToolCall`, execution, and `afterToolCall`. Emits no events and adds no\n * messages. Tools that call other tools use this so the hooks (for example permission checks)\n * apply to those calls too.\n *\n * Never rejects for tool failures: unknown tools, validation errors, blocked calls, and thrown\n * errors come back as `isError: true`.\n */\nexport async function runToolCall(toolCall, options) {\n const { assistantMessage, context, signal } = options;\n const preparation = await prepareToolCall(context, assistantMessage, toolCall, options, signal, options.tools);\n if (preparation.kind === \"immediate\") {\n return { toolCall, result: preparation.result, isError: preparation.isError };\n }\n const executed = await executePreparedToolCall(preparation, signal, options.onUpdate ?? (() => { }));\n return finalizeExecutedToolCall(context, assistantMessage, preparation, executed, options, signal);\n}\nasync function executePreparedToolCall(prepared, signal, onUpdate) {\n const updateEvents = [];\n let acceptingUpdates = true;\n try {\n const result = await prepared.tool.execute(prepared.toolCall.id, prepared.args, signal, (partialResult) => {\n if (!acceptingUpdates)\n return;\n updateEvents.push(Promise.resolve(onUpdate(partialResult)));\n });\n acceptingUpdates = false;\n await Promise.all(updateEvents);\n return { result, isError: result.isError === true };\n }\n catch (error) {\n acceptingUpdates = false;\n await Promise.all(updateEvents);\n return {\n result: createErrorToolResult(error instanceof Error ? error.message : String(error)),\n isError: true,\n };\n }\n finally {\n acceptingUpdates = false;\n }\n}\nasync function finalizeExecutedToolCall(currentContext, assistantMessage, prepared, executed, config, signal) {\n let result = executed.result;\n let isError = executed.isError;\n if (config.afterToolCall) {\n try {\n const afterResult = await config.afterToolCall({\n assistantMessage,\n toolCall: prepared.toolCall,\n args: prepared.args,\n result,\n isError,\n context: currentContext,\n }, signal);\n if (afterResult) {\n // Structured content not replaced along with the content may no longer match it.\n const structuredContent = afterResult.structuredContent ?? (afterResult.content ? undefined : result.structuredContent);\n result = {\n ...result,\n content: afterResult.content ?? result.content,\n details: afterResult.details ?? result.details,\n usage: afterResult.usage ?? result.usage,\n terminate: afterResult.terminate ?? result.terminate,\n };\n if (structuredContent === undefined)\n delete result.structuredContent;\n else\n result.structuredContent = structuredContent;\n isError = afterResult.isError ?? isError;\n }\n }\n catch (error) {\n result = createErrorToolResult(error instanceof Error ? error.message : String(error));\n isError = true;\n }\n }\n return {\n toolCall: prepared.toolCall,\n result,\n isError,\n };\n}\nfunction createErrorToolResult(message) {\n return {\n content: [{ type: \"text\", text: message }],\n details: {},\n };\n}\nasync function emitToolExecutionEnd(finalized, emit) {\n await emit({\n type: \"tool_execution_end\",\n toolCallId: finalized.toolCall.id,\n toolName: finalized.toolCall.name,\n result: finalized.result,\n isError: finalized.isError,\n });\n}\nfunction createToolResultMessage(finalized) {\n return {\n role: \"toolResult\",\n toolCallId: finalized.toolCall.id,\n toolName: finalized.toolCall.name,\n // Untyped tools (JS extensions) can return results without content; normalize\n // so the null never enters session history or provider payloads.\n content: finalized.result.content ?? [],\n details: finalized.result.details,\n usage: finalized.result.usage,\n isError: finalized.isError,\n timestamp: Date.now(),\n };\n}\nasync function emitToolResultMessage(toolResultMessage, emit) {\n await emit({ type: \"message_start\", message: toolResultMessage });\n await emit({ type: \"message_end\", message: toolResultMessage });\n}\n//# sourceMappingURL=agent-loop.js.map","import { createInitialSystemMessage, getCurrentSystemMessage, getCurrentSystemPrompt, toToolDeclaration, } from \"@earendil-works/pi-ai\";\nimport { runAgentLoop, runAgentLoopContinue } from \"./agent-loop.js\";\nimport { getDefaultStreamFn } from \"./stream-fn.js\";\nfunction defaultConvertToLlm(messages) {\n return messages.filter((message) => message.role === \"system\" ||\n message.role === \"user\" ||\n message.role === \"assistant\" ||\n message.role === \"toolResult\");\n}\nconst EMPTY_USAGE = {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n};\nconst DEFAULT_MODEL = {\n id: \"unknown\",\n name: \"unknown\",\n api: \"unknown\",\n provider: \"unknown\",\n baseUrl: \"\",\n reasoning: false,\n input: [],\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n contextWindow: 0,\n maxTokens: 0,\n};\nfunction createMutableAgentState(initialState) {\n let tools = initialState?.tools?.slice() ?? [];\n let messages = initialState?.messages?.slice() ?? [];\n const initialMessage = createInitialSystemMessage(initialState?.systemPrompt, tools.map(toToolDeclaration));\n if (messages[0]?.role !== \"system\" && initialMessage)\n messages.unshift(initialMessage);\n return {\n get systemPrompt() {\n return getCurrentSystemPrompt(messages);\n },\n model: initialState?.model ?? DEFAULT_MODEL,\n thinkingLevel: initialState?.thinkingLevel ?? \"off\",\n get tools() {\n return tools;\n },\n set tools(nextTools) {\n tools = nextTools.slice();\n },\n get messages() {\n return messages;\n },\n set messages(nextMessages) {\n messages = nextMessages.slice();\n },\n isStreaming: false,\n streamingMessage: undefined,\n pendingToolCalls: new Set(),\n errorMessage: undefined,\n };\n}\nclass PendingMessageQueue {\n messages = [];\n mode;\n constructor(mode) {\n this.mode = mode;\n }\n enqueue(message) {\n this.messages.push(message);\n }\n hasItems() {\n return this.messages.length > 0;\n }\n peek() {\n if (this.mode === \"all\")\n return this.messages.slice();\n const first = this.messages[0];\n return first ? [first] : [];\n }\n drain() {\n const drained = this.peek();\n this.messages = this.messages.slice(drained.length);\n return drained;\n }\n clear() {\n this.messages = [];\n }\n}\n/**\n * Stateful wrapper around the low-level agent loop.\n *\n * `Agent` owns the current transcript, emits lifecycle events, executes tools,\n * and exposes queueing APIs for steering and follow-up messages.\n */\nexport class Agent {\n _state;\n listeners = new Set();\n steeringQueue;\n followUpQueue;\n convertToLlm;\n transformContext;\n streamFunction;\n getApiKey;\n onPayload;\n onResponse;\n onProviderStreamEvent;\n beforeToolCall;\n afterToolCall;\n finishTurn;\n prepareRequest;\n prepareNextTurn;\n prepareNextTurnWithContext;\n activeRun;\n /** Session identifier forwarded to providers for cache-aware backends. */\n sessionId;\n /** Optional per-level thinking token budgets forwarded to the stream function. */\n thinkingBudgets;\n /** Preferred transport forwarded to the stream function. */\n transport;\n /** Optional cap for provider-requested retry delays. */\n maxRetryDelayMs;\n /** Tool execution strategy for assistant messages that contain multiple tool calls. */\n toolExecution;\n constructor(options) {\n // Older compiled consumers may omit options or streamFn even though the current API requires them.\n const runtimeOptions = options ?? {};\n this._state = createMutableAgentState(runtimeOptions.initialState);\n this.convertToLlm = runtimeOptions.convertToLlm ?? defaultConvertToLlm;\n this.transformContext = runtimeOptions.transformContext;\n this.streamFunction = runtimeOptions.streamFn ?? getDefaultStreamFn();\n this.getApiKey = runtimeOptions.getApiKey;\n this.onPayload = runtimeOptions.onPayload;\n this.onResponse = runtimeOptions.onResponse;\n this.onProviderStreamEvent = runtimeOptions.onProviderStreamEvent;\n this.beforeToolCall = runtimeOptions.beforeToolCall;\n this.afterToolCall = runtimeOptions.afterToolCall;\n this.finishTurn = runtimeOptions.finishTurn;\n this.prepareRequest = runtimeOptions.prepareRequest;\n this.prepareNextTurn = runtimeOptions.prepareNextTurn;\n this.prepareNextTurnWithContext = runtimeOptions.prepareNextTurnWithContext;\n this.steeringQueue = new PendingMessageQueue(runtimeOptions.steeringMode ?? \"one-at-a-time\");\n this.followUpQueue = new PendingMessageQueue(runtimeOptions.followUpMode ?? \"one-at-a-time\");\n this.sessionId = runtimeOptions.sessionId;\n this.thinkingBudgets = runtimeOptions.thinkingBudgets;\n this.transport = runtimeOptions.transport ?? \"auto\";\n this.maxRetryDelayMs = runtimeOptions.maxRetryDelayMs;\n this.toolExecution = runtimeOptions.toolExecution ?? \"parallel\";\n }\n /**\n * Subscribe to agent lifecycle events.\n *\n * Listener promises are awaited in subscription order and are included in\n * the current run's settlement. Listeners also receive the active abort\n * signal for the current run.\n *\n * `agent_end` is the final emitted event for a run, but the agent does not\n * become idle until all awaited listeners for that event have settled.\n */\n subscribe(listener) {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n /**\n * Current agent state.\n *\n * Assigning `state.tools` or `state.messages` copies the provided top-level array.\n */\n get state() {\n return this._state;\n }\n /** Controls how queued steering messages are drained. */\n set steeringMode(mode) {\n this.steeringQueue.mode = mode;\n }\n get steeringMode() {\n return this.steeringQueue.mode;\n }\n /** Controls how queued follow-up messages are drained. */\n set followUpMode(mode) {\n this.followUpQueue.mode = mode;\n }\n get followUpMode() {\n return this.followUpQueue.mode;\n }\n /** Queue a message to be injected after the current assistant turn finishes. */\n steer(message) {\n this.steeringQueue.enqueue(message);\n }\n /** Queue a message to run only after the agent would otherwise stop. */\n followUp(message) {\n this.followUpQueue.enqueue(message);\n }\n /** Remove all queued steering messages. */\n clearSteeringQueue() {\n this.steeringQueue.clear();\n }\n /** Remove all queued follow-up messages. */\n clearFollowUpQueue() {\n this.followUpQueue.clear();\n }\n /** Remove all queued steering and follow-up messages. */\n clearAllQueues() {\n this.clearSteeringQueue();\n this.clearFollowUpQueue();\n }\n /** Returns true when either queue still contains pending messages. */\n hasQueuedMessages() {\n return this.steeringQueue.hasItems() || this.followUpQueue.hasItems();\n }\n /** Preview the messages selected for the next turn without consuming them. */\n peekQueuedMessages() {\n const steering = this.steeringQueue.peek();\n return steering.length > 0 ? steering : this.followUpQueue.peek();\n }\n /** Active abort signal for the current run, if any. */\n get signal() {\n return this.activeRun?.abortController.signal;\n }\n /** Abort the current run, if one is active. */\n abort() {\n this.activeRun?.abortController.abort();\n }\n /**\n * Resolve when the current run and all awaited event listeners have finished.\n *\n * This resolves after `agent_end` listeners settle.\n */\n waitForIdle() {\n return this.activeRun?.promise ?? Promise.resolve();\n }\n /** Clear conversation state and queues while retaining the replayed prompt/tool baseline. */\n reset() {\n if (this.activeRun) {\n throw new Error(\"Agent is already processing. Wait for completion before resetting.\");\n }\n const baseline = getCurrentSystemMessage(this._state.messages);\n this._state.messages = baseline ? [baseline] : [];\n this._state.isStreaming = false;\n this._state.streamingMessage = undefined;\n this._state.pendingToolCalls = new Set();\n this._state.errorMessage = undefined;\n this.clearFollowUpQueue();\n this.clearSteeringQueue();\n }\n async prompt(input, images) {\n if (this.activeRun) {\n throw new Error(\"Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.\");\n }\n const messages = this.normalizePromptInput(input, images);\n await this.runPromptMessages(messages);\n }\n /** Continue from the current transcript. The last message must be a user or tool-result message. */\n async continue() {\n if (this.activeRun) {\n throw new Error(\"Agent is already processing. Wait for completion before continuing.\");\n }\n const lastMessage = this._state.messages[this._state.messages.length - 1];\n if (!lastMessage || this._state.messages.every((message) => message.role === \"system\")) {\n throw new Error(\"No messages to continue from\");\n }\n if (lastMessage.role === \"assistant\") {\n const queuedSteering = this.steeringQueue.drain();\n if (queuedSteering.length > 0) {\n await this.runPromptMessages(queuedSteering, { skipInitialSteeringPoll: true });\n return;\n }\n const queuedFollowUps = this.followUpQueue.drain();\n if (queuedFollowUps.length > 0) {\n await this.runPromptMessages(queuedFollowUps);\n return;\n }\n throw new Error(\"Cannot continue from message role: assistant\");\n }\n await this.runContinuation();\n }\n normalizePromptInput(input, images) {\n if (Array.isArray(input)) {\n return input;\n }\n if (typeof input !== \"string\") {\n return [input];\n }\n const content = [{ type: \"text\", text: input }];\n if (images && images.length > 0) {\n content.push(...images);\n }\n return [{ role: \"user\", content, timestamp: Date.now() }];\n }\n async runPromptMessages(messages, options = {}) {\n await this.runWithLifecycle(async (signal) => {\n await runAgentLoop(messages, this.createContextSnapshot(), this.createLoopConfig(options), (event) => this.processEvents(event), signal, this.streamFunction);\n });\n }\n async runContinuation() {\n await this.runWithLifecycle(async (signal) => {\n await runAgentLoopContinue(this.createContextSnapshot(), this.createLoopConfig(), (event) => this.processEvents(event), signal, this.streamFunction);\n });\n }\n createContextSnapshot() {\n return {\n messages: this._state.messages.slice(),\n tools: this._state.tools.slice(),\n };\n }\n createLoopConfig(options = {}) {\n let skipInitialSteeringPoll = options.skipInitialSteeringPoll === true;\n return {\n model: this._state.model,\n reasoning: this._state.thinkingLevel === \"off\" ? undefined : this._state.thinkingLevel,\n sessionId: this.sessionId,\n onPayload: this.onPayload,\n onResponse: this.onResponse,\n onProviderStreamEvent: this.onProviderStreamEvent,\n transport: this.transport,\n thinkingBudgets: this.thinkingBudgets,\n maxRetryDelayMs: this.maxRetryDelayMs,\n toolExecution: this.toolExecution,\n beforeToolCall: this.beforeToolCall,\n afterToolCall: this.afterToolCall,\n finishTurn: this.finishTurn,\n prepareRequest: this.prepareRequest,\n prepareNextTurn: this.prepareNextTurnWithContext || this.prepareNextTurn\n ? async (context) => {\n if (this.prepareNextTurnWithContext) {\n return await this.prepareNextTurnWithContext(context, this.signal);\n }\n return await this.prepareNextTurn?.(this.signal);\n }\n : undefined,\n convertToLlm: this.convertToLlm,\n transformContext: this.transformContext,\n getApiKey: this.getApiKey,\n getSteeringMessages: async () => {\n if (skipInitialSteeringPoll) {\n skipInitialSteeringPoll = false;\n return [];\n }\n return this.steeringQueue.drain();\n },\n getFollowUpMessages: async () => this.followUpQueue.drain(),\n };\n }\n async runWithLifecycle(executor) {\n if (this.activeRun) {\n throw new Error(\"Agent is already processing.\");\n }\n const abortController = new AbortController();\n let resolvePromise = () => { };\n const promise = new Promise((resolve) => {\n resolvePromise = resolve;\n });\n this.activeRun = { promise, resolve: resolvePromise, abortController };\n this._state.isStreaming = true;\n this._state.streamingMessage = undefined;\n this._state.errorMessage = undefined;\n try {\n await executor(abortController.signal);\n }\n catch (error) {\n await this.handleRunFailure(error, abortController.signal.aborted);\n }\n finally {\n this.finishRun();\n }\n }\n async handleRunFailure(error, aborted) {\n const failureMessage = {\n role: \"assistant\",\n content: [{ type: \"text\", text: \"\" }],\n api: this._state.model.api,\n provider: this._state.model.provider,\n model: this._state.model.id,\n usage: EMPTY_USAGE,\n stopReason: aborted ? \"aborted\" : \"error\",\n errorMessage: error instanceof Error ? error.message : String(error),\n timestamp: Date.now(),\n };\n await this.processEvents({ type: \"message_start\", message: failureMessage });\n await this.processEvents({ type: \"message_end\", message: failureMessage });\n await this.processEvents({ type: \"turn_end\", message: failureMessage, toolResults: [] });\n await this.processEvents({ type: \"agent_end\", messages: [failureMessage] });\n }\n finishRun() {\n this._state.isStreaming = false;\n this._state.streamingMessage = undefined;\n this._state.pendingToolCalls = new Set();\n this.activeRun?.resolve();\n this.activeRun = undefined;\n }\n /**\n * Reduce internal state for a loop event, then await listeners.\n *\n * `agent_end` only means no further loop events will be emitted. The run is\n * considered idle later, after all awaited listeners for `agent_end` finish\n * and `finishRun()` clears runtime-owned state.\n */\n async processEvents(event) {\n switch (event.type) {\n case \"message_start\":\n this._state.streamingMessage = event.message;\n break;\n case \"message_update\":\n this._state.streamingMessage = event.message;\n break;\n case \"message_end\":\n this._state.streamingMessage = undefined;\n this._state.messages.push(event.message);\n break;\n case \"tool_execution_start\": {\n const pendingToolCalls = new Set(this._state.pendingToolCalls);\n pendingToolCalls.add(event.toolCallId);\n this._state.pendingToolCalls = pendingToolCalls;\n break;\n }\n case \"tool_execution_end\": {\n const pendingToolCalls = new Set(this._state.pendingToolCalls);\n pendingToolCalls.delete(event.toolCallId);\n this._state.pendingToolCalls = pendingToolCalls;\n break;\n }\n case \"turn_end\":\n if (event.message.role === \"assistant\" && event.message.errorMessage) {\n this._state.errorMessage = event.message.errorMessage;\n }\n break;\n case \"agent_end\":\n this._state.streamingMessage = undefined;\n break;\n }\n const signal = this.activeRun?.abortController.signal;\n if (!signal) {\n throw new Error(\"Agent listener invoked outside active run\");\n }\n for (const listener of this.listeners) {\n await listener(event, signal);\n }\n }\n}\n//# sourceMappingURL=agent.js.map","import { lazyApi } from \"./lazy.js\";\nexport const anthropicMessagesApi = () => lazyApi(() => import(\"./anthropic-messages.js\"));\n//# sourceMappingURL=anthropic-messages.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const azureOpenAIResponsesApi = () => lazyApi(() => import(\"./azure-openai-responses.js\"));\n//# sourceMappingURL=azure-openai-responses.lazy.js.map","var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n};\nimport { lazyApi } from \"./lazy.js\";\n/**\n * Loads the bedrock implementation through a variable specifier so bundlers\n * (browser smoke, Bun compile) cannot follow the import into the Node-only\n * AWS SDK. The `.ts`/`.js` rewrite keeps the trick working from both source\n * and built output.\n */\nconst importNodeOnlyApi = (specifier) => {\n const runtimeSpecifier = import.meta.url.endsWith(\".js\") ? specifier.replace(/\\.ts$/, \".js\") : specifier;\n return import(__rewriteRelativeImportExtension(runtimeSpecifier));\n};\nlet bedrockModuleOverride;\n/**\n * Overrides the dynamically imported bedrock implementation. Used by the Bun\n * binary build, where the variable-specifier import cannot be bundled; the\n * build registers a statically imported module instead.\n */\nexport function setBedrockProviderModule(module) {\n bedrockModuleOverride = module;\n}\nexport const bedrockConverseStreamApi = () => lazyApi(async () => bedrockModuleOverride ?? (await importNodeOnlyApi(\"./bedrock-converse-stream.ts\")));\n//# sourceMappingURL=bedrock-converse-stream.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const googleGenerativeAIApi = () => lazyApi(() => import(\"./google-generative-ai.js\"));\n//# sourceMappingURL=google-generative-ai.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const googleVertexApi = () => lazyApi(() => import(\"./google-vertex.js\"));\n//# sourceMappingURL=google-vertex.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const mistralConversationsApi = () => lazyApi(() => import(\"./mistral-conversations.js\"));\n//# sourceMappingURL=mistral-conversations.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const openAICodexResponsesApi = () => lazyApi(() => import(\"./openai-codex-responses.js\"));\n//# sourceMappingURL=openai-codex-responses.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const openAICompletionsApi = () => lazyApi(() => import(\"./openai-completions.js\"));\n//# sourceMappingURL=openai-completions.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const openAIResponsesApi = () => lazyApi(() => import(\"./openai-responses.js\"));\n//# sourceMappingURL=openai-responses.lazy.js.map","import { lazyApi } from \"./lazy.js\";\nexport const piMessagesApi = () => lazyApi(() => import(\"./pi-messages.js\"));\n//# sourceMappingURL=pi-messages.lazy.js.map","","function flattenModelCatalog(groups, type) {\n return Object.fromEntries(Object.values(groups)\n .flatMap((models) => Object.values(models))\n .filter((model) => model.type === type)\n .map((model) => [model.id, model]));\n}\nexport function flattenChatModelCatalog(_provider, groups) {\n return flattenModelCatalog(groups, \"chat\");\n}\nexport function flattenImageModelCatalog(_provider, groups) {\n return flattenModelCatalog(groups, \"image\");\n}\nexport function flattenClassifierModelCatalog(_provider, groups) {\n return flattenModelCatalog(groups, \"classifier\");\n}\n//# sourceMappingURL=model-catalog.js.map","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/amazon-bedrock.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const AMAZON_BEDROCK_MODELS = flattenChatModelCatalog(\"amazon-bedrock\", values);\nexport const AMAZON_BEDROCK_IMAGE_MODELS = flattenImageModelCatalog(\"amazon-bedrock\", values);\nexport const AMAZON_BEDROCK_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"amazon-bedrock\", values);\n//# sourceMappingURL=amazon-bedrock.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/ant-ling.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const ANT_LING_MODELS = flattenChatModelCatalog(\"ant-ling\", values);\nexport const ANT_LING_IMAGE_MODELS = flattenImageModelCatalog(\"ant-ling\", values);\nexport const ANT_LING_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"ant-ling\", values);\n//# sourceMappingURL=ant-ling.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/anthropic.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const ANTHROPIC_MODELS = flattenChatModelCatalog(\"anthropic\", values);\nexport const ANTHROPIC_IMAGE_MODELS = flattenImageModelCatalog(\"anthropic\", values);\nexport const ANTHROPIC_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"anthropic\", values);\n//# sourceMappingURL=anthropic.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/azure-openai-responses.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const AZURE_OPENAI_RESPONSES_MODELS = flattenChatModelCatalog(\"azure-openai-responses\", values);\nexport const AZURE_OPENAI_RESPONSES_IMAGE_MODELS = flattenImageModelCatalog(\"azure-openai-responses\", values);\nexport const AZURE_OPENAI_RESPONSES_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"azure-openai-responses\", values);\n//# sourceMappingURL=azure-openai-responses.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/baseten.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const BASETEN_MODELS = flattenChatModelCatalog(\"baseten\", values);\nexport const BASETEN_IMAGE_MODELS = flattenImageModelCatalog(\"baseten\", values);\nexport const BASETEN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"baseten\", values);\n//# sourceMappingURL=baseten.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/cerebras.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const CEREBRAS_MODELS = flattenChatModelCatalog(\"cerebras\", values);\nexport const CEREBRAS_IMAGE_MODELS = flattenImageModelCatalog(\"cerebras\", values);\nexport const CEREBRAS_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"cerebras\", values);\n//# sourceMappingURL=cerebras.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const CLOUDFLARE_AI_GATEWAY_MODELS = flattenChatModelCatalog(\"cloudflare-ai-gateway\", values);\nexport const CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS = flattenImageModelCatalog(\"cloudflare-ai-gateway\", values);\nexport const CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"cloudflare-ai-gateway\", values);\n//# sourceMappingURL=cloudflare-ai-gateway.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const CLOUDFLARE_WORKERS_AI_MODELS = flattenChatModelCatalog(\"cloudflare-workers-ai\", values);\nexport const CLOUDFLARE_WORKERS_AI_IMAGE_MODELS = flattenImageModelCatalog(\"cloudflare-workers-ai\", values);\nexport const CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"cloudflare-workers-ai\", values);\n//# sourceMappingURL=cloudflare-workers-ai.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/deepseek.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const DEEPSEEK_MODELS = flattenChatModelCatalog(\"deepseek\", values);\nexport const DEEPSEEK_IMAGE_MODELS = flattenImageModelCatalog(\"deepseek\", values);\nexport const DEEPSEEK_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"deepseek\", values);\n//# sourceMappingURL=deepseek.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/fireworks.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const FIREWORKS_MODELS = flattenChatModelCatalog(\"fireworks\", values);\nexport const FIREWORKS_IMAGE_MODELS = flattenImageModelCatalog(\"fireworks\", values);\nexport const FIREWORKS_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"fireworks\", values);\n//# sourceMappingURL=fireworks.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/github-copilot.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const GITHUB_COPILOT_MODELS = flattenChatModelCatalog(\"github-copilot\", values);\nexport const GITHUB_COPILOT_IMAGE_MODELS = flattenImageModelCatalog(\"github-copilot\", values);\nexport const GITHUB_COPILOT_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"github-copilot\", values);\n//# sourceMappingURL=github-copilot.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/google.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const GOOGLE_MODELS = flattenChatModelCatalog(\"google\", values);\nexport const GOOGLE_IMAGE_MODELS = flattenImageModelCatalog(\"google\", values);\nexport const GOOGLE_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"google\", values);\n//# sourceMappingURL=google.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/google-vertex.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const GOOGLE_VERTEX_MODELS = flattenChatModelCatalog(\"google-vertex\", values);\nexport const GOOGLE_VERTEX_IMAGE_MODELS = flattenImageModelCatalog(\"google-vertex\", values);\nexport const GOOGLE_VERTEX_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"google-vertex\", values);\n//# sourceMappingURL=google-vertex.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/groq.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const GROQ_MODELS = flattenChatModelCatalog(\"groq\", values);\nexport const GROQ_IMAGE_MODELS = flattenImageModelCatalog(\"groq\", values);\nexport const GROQ_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"groq\", values);\n//# sourceMappingURL=groq.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/huggingface.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const HUGGINGFACE_MODELS = flattenChatModelCatalog(\"huggingface\", values);\nexport const HUGGINGFACE_IMAGE_MODELS = flattenImageModelCatalog(\"huggingface\", values);\nexport const HUGGINGFACE_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"huggingface\", values);\n//# sourceMappingURL=huggingface.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/kimi-coding.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const KIMI_CODING_MODELS = flattenChatModelCatalog(\"kimi-coding\", values);\nexport const KIMI_CODING_IMAGE_MODELS = flattenImageModelCatalog(\"kimi-coding\", values);\nexport const KIMI_CODING_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"kimi-coding\", values);\n//# sourceMappingURL=kimi-coding.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/meta.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const META_MODELS = flattenChatModelCatalog(\"meta\", values);\nexport const META_IMAGE_MODELS = flattenImageModelCatalog(\"meta\", values);\nexport const META_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"meta\", values);\n//# sourceMappingURL=meta.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/minimax.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const MINIMAX_MODELS = flattenChatModelCatalog(\"minimax\", values);\nexport const MINIMAX_IMAGE_MODELS = flattenImageModelCatalog(\"minimax\", values);\nexport const MINIMAX_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"minimax\", values);\n//# sourceMappingURL=minimax.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/minimax-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const MINIMAX_CN_MODELS = flattenChatModelCatalog(\"minimax-cn\", values);\nexport const MINIMAX_CN_IMAGE_MODELS = flattenImageModelCatalog(\"minimax-cn\", values);\nexport const MINIMAX_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"minimax-cn\", values);\n//# sourceMappingURL=minimax-cn.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/mistral.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const MISTRAL_MODELS = flattenChatModelCatalog(\"mistral\", values);\nexport const MISTRAL_IMAGE_MODELS = flattenImageModelCatalog(\"mistral\", values);\nexport const MISTRAL_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"mistral\", values);\n//# sourceMappingURL=mistral.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/moonshotai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const MOONSHOTAI_MODELS = flattenChatModelCatalog(\"moonshotai\", values);\nexport const MOONSHOTAI_IMAGE_MODELS = flattenImageModelCatalog(\"moonshotai\", values);\nexport const MOONSHOTAI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"moonshotai\", values);\n//# sourceMappingURL=moonshotai.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/moonshotai-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const MOONSHOTAI_CN_MODELS = flattenChatModelCatalog(\"moonshotai-cn\", values);\nexport const MOONSHOTAI_CN_IMAGE_MODELS = flattenImageModelCatalog(\"moonshotai-cn\", values);\nexport const MOONSHOTAI_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"moonshotai-cn\", values);\n//# sourceMappingURL=moonshotai-cn.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/nvidia.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const NVIDIA_MODELS = flattenChatModelCatalog(\"nvidia\", values);\nexport const NVIDIA_IMAGE_MODELS = flattenImageModelCatalog(\"nvidia\", values);\nexport const NVIDIA_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"nvidia\", values);\n//# sourceMappingURL=nvidia.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/openai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const OPENAI_MODELS = flattenChatModelCatalog(\"openai\", values);\nexport const OPENAI_IMAGE_MODELS = flattenImageModelCatalog(\"openai\", values);\nexport const OPENAI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"openai\", values);\n//# sourceMappingURL=openai.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/openai-codex.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const OPENAI_CODEX_MODELS = flattenChatModelCatalog(\"openai-codex\", values);\nexport const OPENAI_CODEX_IMAGE_MODELS = flattenImageModelCatalog(\"openai-codex\", values);\nexport const OPENAI_CODEX_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"openai-codex\", values);\n//# sourceMappingURL=openai-codex.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/opencode.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const OPENCODE_MODELS = flattenChatModelCatalog(\"opencode\", values);\nexport const OPENCODE_IMAGE_MODELS = flattenImageModelCatalog(\"opencode\", values);\nexport const OPENCODE_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"opencode\", values);\n//# sourceMappingURL=opencode.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/opencode-go.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const OPENCODE_GO_MODELS = flattenChatModelCatalog(\"opencode-go\", values);\nexport const OPENCODE_GO_IMAGE_MODELS = flattenImageModelCatalog(\"opencode-go\", values);\nexport const OPENCODE_GO_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"opencode-go\", values);\n//# sourceMappingURL=opencode-go.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/openrouter.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const OPENROUTER_MODELS = flattenChatModelCatalog(\"openrouter\", values);\nexport const OPENROUTER_IMAGE_MODELS = flattenImageModelCatalog(\"openrouter\", values);\nexport const OPENROUTER_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"openrouter\", values);\n//# sourceMappingURL=openrouter.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/qwen-token-plan.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const QWEN_TOKEN_PLAN_MODELS = flattenChatModelCatalog(\"qwen-token-plan\", values);\nexport const QWEN_TOKEN_PLAN_IMAGE_MODELS = flattenImageModelCatalog(\"qwen-token-plan\", values);\nexport const QWEN_TOKEN_PLAN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"qwen-token-plan\", values);\n//# sourceMappingURL=qwen-token-plan.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/qwen-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const QWEN_TOKEN_PLAN_CN_MODELS = flattenChatModelCatalog(\"qwen-token-plan-cn\", values);\nexport const QWEN_TOKEN_PLAN_CN_IMAGE_MODELS = flattenImageModelCatalog(\"qwen-token-plan-cn\", values);\nexport const QWEN_TOKEN_PLAN_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"qwen-token-plan-cn\", values);\n//# sourceMappingURL=qwen-token-plan-cn.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/qwen-token-plan-individual.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS = flattenChatModelCatalog(\"qwen-token-plan-individual\", values);\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_IMAGE_MODELS = flattenImageModelCatalog(\"qwen-token-plan-individual\", values);\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"qwen-token-plan-individual\", values);\n//# sourceMappingURL=qwen-token-plan-individual.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/radius.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const RADIUS_MODELS = flattenChatModelCatalog(\"radius\", values);\nexport const RADIUS_IMAGE_MODELS = flattenImageModelCatalog(\"radius\", values);\nexport const RADIUS_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"radius\", values);\n//# sourceMappingURL=radius.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/together.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const TOGETHER_MODELS = flattenChatModelCatalog(\"together\", values);\nexport const TOGETHER_IMAGE_MODELS = flattenImageModelCatalog(\"together\", values);\nexport const TOGETHER_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"together\", values);\n//# sourceMappingURL=together.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/typesafe.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const TYPESAFE_MODELS = flattenChatModelCatalog(\"typesafe\", values);\nexport const TYPESAFE_IMAGE_MODELS = flattenImageModelCatalog(\"typesafe\", values);\nexport const TYPESAFE_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"typesafe\", values);\n//# sourceMappingURL=typesafe.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/vercel-ai-gateway.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const VERCEL_AI_GATEWAY_MODELS = flattenChatModelCatalog(\"vercel-ai-gateway\", values);\nexport const VERCEL_AI_GATEWAY_IMAGE_MODELS = flattenImageModelCatalog(\"vercel-ai-gateway\", values);\nexport const VERCEL_AI_GATEWAY_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"vercel-ai-gateway\", values);\n//# sourceMappingURL=vercel-ai-gateway.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/xai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const XAI_MODELS = flattenChatModelCatalog(\"xai\", values);\nexport const XAI_IMAGE_MODELS = flattenImageModelCatalog(\"xai\", values);\nexport const XAI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"xai\", values);\n//# sourceMappingURL=xai.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/xiaomi.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const XIAOMI_MODELS = flattenChatModelCatalog(\"xiaomi\", values);\nexport const XIAOMI_IMAGE_MODELS = flattenImageModelCatalog(\"xiaomi\", values);\nexport const XIAOMI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"xiaomi\", values);\n//# sourceMappingURL=xiaomi.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/xiaomi-token-plan-ams.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const XIAOMI_TOKEN_PLAN_AMS_MODELS = flattenChatModelCatalog(\"xiaomi-token-plan-ams\", values);\nexport const XIAOMI_TOKEN_PLAN_AMS_IMAGE_MODELS = flattenImageModelCatalog(\"xiaomi-token-plan-ams\", values);\nexport const XIAOMI_TOKEN_PLAN_AMS_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"xiaomi-token-plan-ams\", values);\n//# sourceMappingURL=xiaomi-token-plan-ams.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/xiaomi-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const XIAOMI_TOKEN_PLAN_CN_MODELS = flattenChatModelCatalog(\"xiaomi-token-plan-cn\", values);\nexport const XIAOMI_TOKEN_PLAN_CN_IMAGE_MODELS = flattenImageModelCatalog(\"xiaomi-token-plan-cn\", values);\nexport const XIAOMI_TOKEN_PLAN_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"xiaomi-token-plan-cn\", values);\n//# sourceMappingURL=xiaomi-token-plan-cn.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/xiaomi-token-plan-sgp.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const XIAOMI_TOKEN_PLAN_SGP_MODELS = flattenChatModelCatalog(\"xiaomi-token-plan-sgp\", values);\nexport const XIAOMI_TOKEN_PLAN_SGP_IMAGE_MODELS = flattenImageModelCatalog(\"xiaomi-token-plan-sgp\", values);\nexport const XIAOMI_TOKEN_PLAN_SGP_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"xiaomi-token-plan-sgp\", values);\n//# sourceMappingURL=xiaomi-token-plan-sgp.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/zai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const ZAI_MODELS = flattenChatModelCatalog(\"zai\", values);\nexport const ZAI_IMAGE_MODELS = flattenImageModelCatalog(\"zai\", values);\nexport const ZAI_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"zai\", values);\n//# sourceMappingURL=zai.models.js.map","","// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\nimport values from \"./data/zai-coding-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from \"../model-catalog.js\";\nexport const ZAI_CODING_CN_MODELS = flattenChatModelCatalog(\"zai-coding-cn\", values);\nexport const ZAI_CODING_CN_IMAGE_MODELS = flattenImageModelCatalog(\"zai-coding-cn\", values);\nexport const ZAI_CODING_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog(\"zai-coding-cn\", values);\n//# sourceMappingURL=zai-coding-cn.models.js.map","const imagesApiProviderRegistry = new Map();\nfunction wrapGenerateImages(api, generateImages) {\n return (model, context, options) => {\n if (model.api !== api) {\n throw new Error(`Mismatched api: ${model.api} expected ${api}`);\n }\n return generateImages(model, context, options);\n };\n}\nexport function registerImagesApiProvider(provider, sourceId) {\n imagesApiProviderRegistry.set(provider.api, {\n provider: {\n api: provider.api,\n generateImages: wrapGenerateImages(provider.api, provider.generateImages),\n },\n sourceId,\n });\n}\nexport function getImagesApiProvider(api) {\n return imagesApiProviderRegistry.get(api)?.provider;\n}\n//# sourceMappingURL=images-api-registry.js.map","import { registerImagesApiProvider } from \"../../images-api-registry.js\";\nlet openRouterImagesProviderModulePromise;\nfunction createLazyLoadErrorImages(model, error) {\n return {\n api: model.api,\n provider: model.provider,\n model: model.id,\n output: [],\n stopReason: \"error\",\n errorMessage: error instanceof Error ? error.message : String(error),\n timestamp: Date.now(),\n };\n}\nfunction loadOpenRouterImagesProviderModule() {\n openRouterImagesProviderModulePromise ||= import(\"../../api/openrouter-images.js\").then((module) => module);\n return openRouterImagesProviderModulePromise;\n}\nexport const generateImagesOpenRouter = async (model, context, options) => {\n try {\n const module = await loadOpenRouterImagesProviderModule();\n return await module.generateImages(model, context, options);\n }\n catch (error) {\n return createLazyLoadErrorImages(model, error);\n }\n};\nexport function registerBuiltInImagesApiProviders() {\n registerImagesApiProvider({\n api: \"openrouter-images\",\n generateImages: generateImagesOpenRouter,\n });\n}\nregisterBuiltInImagesApiProviders();\n//# sourceMappingURL=register-builtins.js.map","import { bedrockConverseStreamApi } from \"../api/bedrock-converse-stream.lazy.js\";\nimport { createProvider } from \"../models.js\";\nimport { AMAZON_BEDROCK_MODELS } from \"./amazon-bedrock.models.js\";\n/**\n * Bedrock accepts a bearer token or the AWS SDK's default credential chain.\n * The login flow can store a token/profile choice; resolve also detects ambient\n * AWS credentials without copying them into pi's credential store.\n */\nconst bedrockAuth = {\n name: \"AWS credentials or bearer token\",\n login: async (interaction) => {\n interaction.signal.throwIfAborted();\n const method = await interaction.prompt({\n type: \"select\",\n message: \"Select Amazon Bedrock authentication method:\",\n options: [\n { id: \"bearer-token\", label: \"Bearer token\" },\n { id: \"aws-profile\", label: \"AWS profile\" },\n { id: \"credential-chain\", label: \"Existing AWS credential chain\" },\n ],\n });\n interaction.signal.throwIfAborted();\n if (method === \"bearer-token\") {\n return {\n type: \"api_key\",\n key: await interaction.prompt({ type: \"secret\", message: \"Enter Amazon Bedrock bearer token\" }),\n };\n }\n interaction.notify({\n type: \"info\",\n message: \"Amazon Bedrock supports AWS profiles, IAM credentials, and role-based credentials.\",\n links: [\n {\n label: \"AWS credential provider chain\",\n url: \"https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html\",\n },\n ],\n });\n if (method === \"aws-profile\") {\n return {\n type: \"api_key\",\n env: { AWS_PROFILE: await interaction.prompt({ type: \"text\", message: \"Enter AWS profile name\" }) },\n };\n }\n if (method !== \"credential-chain\")\n throw new Error(`Unknown Amazon Bedrock auth method: ${method}`);\n await interaction.prompt({\n type: \"text\",\n message: \"Configure AWS credentials, then press Enter to continue\",\n });\n return { type: \"api_key\" };\n },\n resolve: async ({ ctx, credential, signal }) => {\n const env = async (name) => {\n signal.throwIfAborted();\n const value = await ctx.env(name);\n signal.throwIfAborted();\n return value;\n };\n if (credential?.key) {\n return { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n }\n if (await env(\"AWS_BEARER_TOKEN_BEDROCK\"))\n return { auth: {}, source: \"AWS_BEARER_TOKEN_BEDROCK\" };\n if (credential?.env?.AWS_PROFILE ?? (await env(\"AWS_PROFILE\"))) {\n return {\n auth: {},\n env: credential?.env,\n source: credential?.env?.AWS_PROFILE ? \"stored credential\" : \"AWS_PROFILE\",\n };\n }\n if ((await env(\"AWS_ACCESS_KEY_ID\")) && (await env(\"AWS_SECRET_ACCESS_KEY\"))) {\n return { auth: {}, source: \"AWS access keys\" };\n }\n if (await env(\"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\"))\n return { auth: {}, source: \"ECS task role\" };\n if (await env(\"AWS_CONTAINER_CREDENTIALS_FULL_URI\"))\n return { auth: {}, source: \"ECS task role\" };\n if (await env(\"AWS_WEB_IDENTITY_TOKEN_FILE\"))\n return { auth: {}, source: \"web identity token\" };\n return undefined;\n },\n};\nexport function amazonBedrockProvider() {\n return createProvider({\n id: \"amazon-bedrock\",\n name: \"Amazon Bedrock\",\n auth: { apiKey: bedrockAuth },\n models: Object.values(AMAZON_BEDROCK_MODELS),\n api: bedrockConverseStreamApi(),\n });\n}\n//# sourceMappingURL=amazon-bedrock.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { ANT_LING_MODELS } from \"./ant-ling.models.js\";\nexport function antLingProvider() {\n return createProvider({\n id: \"ant-ling\",\n name: \"Ant Ling\",\n baseUrl: \"https://api.ant-ling.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"Ant Ling API key\", [\"ANT_LING_API_KEY\"]) },\n models: Object.values(ANT_LING_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=ant-ling.js.map","var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n};\n/**\n * Loads an OAuth flow module through a variable specifier so bundlers cannot\n * follow the import into Node-only flow code (`node:http` callback servers,\n * `node:crypto` PKCE). The `.ts`/`.js` rewrite keeps the trick working from\n * both source and built output.\n */\nconst importOAuthModule = (specifier) => {\n const runtimeSpecifier = import.meta.url.endsWith(\".js\") ? specifier.replace(/\\.ts$/, \".js\") : specifier;\n return import(__rewriteRelativeImportExtension(runtimeSpecifier));\n};\nlet bundledLoaders;\n/** Registers statically bundled OAuth flows for standalone Bun binaries. */\nexport function registerBundledOAuthFlowLoaders(loaders) {\n bundledLoaders = loaders;\n}\nexport const loadAnthropicOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.anthropic();\n return (await importOAuthModule(\"./anthropic.ts\")).anthropicOAuth;\n};\nexport const loadOpenAICodexOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.openaiCodex();\n return (await importOAuthModule(\"./openai-codex.ts\")).openaiCodexOAuth;\n};\nexport const loadOpenAIChatGPTOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.openaiChatGPT();\n return (await importOAuthModule(\"./openai-chatgpt.ts\")).openaiChatGPTOAuth;\n};\nexport const loadGitHubCopilotOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.githubCopilot();\n return (await importOAuthModule(\"./github-copilot.ts\")).githubCopilotOAuth;\n};\nexport const loadOpenRouterOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.openrouter();\n return (await importOAuthModule(\"./openrouter.ts\")).openRouterOAuth;\n};\nexport const loadKimiCodingOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.kimiCoding();\n return (await importOAuthModule(\"./kimi-coding.ts\")).kimiCodingOAuth;\n};\nexport const loadMetaOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.meta();\n return (await importOAuthModule(\"./meta.ts\")).metaOAuth;\n};\nexport const loadXaiOAuth = async () => {\n if (bundledLoaders)\n return bundledLoaders.xai();\n return (await importOAuthModule(\"./xai.ts\")).xaiOAuth;\n};\nexport const loadRadiusOAuth = async (options) => {\n if (bundledLoaders)\n return bundledLoaders.radius(options);\n return (await importOAuthModule(\"./radius.ts\")).createRadiusOAuth(options);\n};\n//# sourceMappingURL=load.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { lazyOAuth } from \"../auth/helpers.js\";\nimport { loadAnthropicOAuth } from \"../auth/oauth/load.js\";\nimport { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_FEDERATION_RULE_ID_ENV, ANTHROPIC_IDENTITY_TOKEN_FILE_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_ORGANIZATION_ID_ENV, ANTHROPIC_SERVICE_ACCOUNT_ID_ENV, ANTHROPIC_WORKSPACE_ID_ENV, } from \"../env-api-keys.js\";\nimport { createProvider } from \"../models.js\";\nimport { ANTHROPIC_MODELS } from \"./anthropic.models.js\";\nfunction anthropicApiKeyAuth() {\n return {\n name: \"Anthropic API key\",\n login: async (interaction) => {\n interaction.signal.throwIfAborted();\n const key = await interaction.prompt({ type: \"secret\", message: \"Enter Anthropic API key\" });\n interaction.signal.throwIfAborted();\n return { type: \"api_key\", key };\n },\n resolve: async ({ ctx, credential, signal }) => {\n signal.throwIfAborted();\n if (credential?.key) {\n return { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n }\n const authToken = await ctx.env(ANTHROPIC_AUTH_TOKEN_ENV);\n signal.throwIfAborted();\n if (authToken) {\n return {\n auth: { headers: { Authorization: `Bearer ${authToken}` } },\n source: ANTHROPIC_AUTH_TOKEN_ENV,\n };\n }\n for (const envVar of [ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV]) {\n const apiKey = await ctx.env(envVar);\n signal.throwIfAborted();\n if (apiKey)\n return { auth: { apiKey }, source: envVar };\n }\n // Workload identity federation: the Anthropic SDK exchanges the identity\n // token for a short-lived access token and refreshes it itself. Last in\n // line so keys and ANTHROPIC_AUTH_TOKEN keep winning, as in the SDK. The\n // ids are provider config rather than auth, so they travel in `env`.\n const federation = {};\n for (const envVar of [\n ANTHROPIC_FEDERATION_RULE_ID_ENV,\n ANTHROPIC_ORGANIZATION_ID_ENV,\n ANTHROPIC_IDENTITY_TOKEN_FILE_ENV,\n ]) {\n const value = await ctx.env(envVar);\n signal.throwIfAborted();\n if (!value)\n return undefined;\n federation[envVar] = value;\n }\n for (const envVar of [ANTHROPIC_SERVICE_ACCOUNT_ID_ENV, ANTHROPIC_WORKSPACE_ID_ENV]) {\n const value = await ctx.env(envVar);\n signal.throwIfAborted();\n if (value)\n federation[envVar] = value;\n }\n return { auth: {}, env: federation, source: \"workload identity federation\" };\n },\n };\n}\nexport function anthropicProvider() {\n return createProvider({\n id: \"anthropic\",\n name: \"Anthropic\",\n baseUrl: \"https://api.anthropic.com\",\n auth: {\n apiKey: anthropicApiKeyAuth(),\n oauth: lazyOAuth({\n name: \"Anthropic (Claude Pro/Max)\",\n isSubscription: true,\n load: loadAnthropicOAuth,\n }),\n },\n models: Object.values(ANTHROPIC_MODELS),\n api: anthropicMessagesApi(),\n });\n}\n//# sourceMappingURL=anthropic.js.map","import { azureOpenAIResponsesApi } from \"../api/azure-openai-responses.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./azure-openai-responses.models.js\";\nexport function azureOpenAIResponsesProvider() {\n return createProvider({\n id: \"azure-openai-responses\",\n name: \"Azure OpenAI\",\n auth: { apiKey: envApiKeyAuth(\"Azure OpenAI API key\", [\"AZURE_OPENAI_API_KEY\"]) },\n models: Object.values(AZURE_OPENAI_RESPONSES_MODELS),\n api: azureOpenAIResponsesApi(),\n });\n}\n//# sourceMappingURL=azure-openai-responses.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { BASETEN_MODELS } from \"./baseten.models.js\";\nexport function basetenProvider() {\n return createProvider({\n id: \"baseten\",\n name: \"Baseten\",\n baseUrl: \"https://inference.baseten.co/v1\",\n auth: { apiKey: envApiKeyAuth(\"Baseten API key\", [\"BASETEN_API_KEY\"]) },\n models: Object.values(BASETEN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=baseten.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { CEREBRAS_MODELS } from \"./cerebras.models.js\";\nexport function cerebrasProvider() {\n return createProvider({\n id: \"cerebras\",\n name: \"Cerebras\",\n baseUrl: \"https://api.cerebras.ai/v1\",\n auth: { apiKey: envApiKeyAuth(\"Cerebras API key\", [\"CEREBRAS_API_KEY\"]) },\n models: Object.values(CEREBRAS_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=cerebras.js.map","const CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\nasync function resolveValue(name, ctx, credential, signal) {\n // Per-field merge: prefer the credential value, fall back to ambient env.\n // A credential carrying only the API key must still pick up the account /\n // gateway id from the environment.\n const fromCredential = credential\n ? name === CLOUDFLARE_API_KEY\n ? credential.key\n : credential.env?.[name]\n : undefined;\n if (fromCredential !== undefined)\n return fromCredential;\n signal.throwIfAborted();\n const value = await ctx.env(name);\n signal.throwIfAborted();\n return value;\n}\nasync function resolveCloudflareEnv(kind, ctx, credential, signal) {\n const apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);\n const accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);\n const gatewayId = kind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : undefined;\n if (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId))\n return undefined;\n return {\n apiKey,\n env: {\n CLOUDFLARE_ACCOUNT_ID: accountId,\n ...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n },\n source: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n };\n}\nexport function cloudflareWorkersAIAuth() {\n return {\n name: \"Cloudflare API key\",\n login: async (interaction) => {\n const key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n const accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n return { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n },\n resolve: async ({ ctx, credential, signal }) => {\n const resolved = await resolveCloudflareEnv(\"workers-ai\", ctx, credential, signal);\n if (!resolved)\n return undefined;\n return {\n auth: { apiKey: resolved.apiKey },\n env: resolved.env,\n source: resolved.source,\n };\n },\n };\n}\nexport function cloudflareAIGatewayAuth() {\n return {\n name: \"Cloudflare API key\",\n login: async (interaction) => {\n const key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n const accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n const gatewayId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n return {\n type: \"api_key\",\n key,\n env: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n };\n },\n resolve: async ({ ctx, credential, signal }) => {\n const resolved = await resolveCloudflareEnv(\"ai-gateway\", ctx, credential, signal);\n if (!resolved)\n return undefined;\n return {\n auth: {\n headers: {\n \"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n Authorization: null,\n \"x-api-key\": null,\n },\n },\n env: resolved.env,\n source: resolved.source,\n };\n },\n };\n}\n//# sourceMappingURL=cloudflare-auth.js.map","const CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\nexport function resolveCloudflareModel(model, env) {\n if (!env)\n return model;\n const baseUrl = model.baseUrl\n .replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n .replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n return baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams) {\n return {\n stream: (model, context, options) => streams.stream(resolveCloudflareModel(model, options?.env), context, options),\n streamSimple: (model, context, options) => streams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n };\n}\n/** Classifier counterpart of {@link cloudflareStreams}. */\nexport function cloudflareClassifier(classifier) {\n return {\n classify: (model, context, options) => classifier.classify(resolveCloudflareModel(model, options?.env), context, options),\n };\n}\n//# sourceMappingURL=cloudflare-stream.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { createProvider } from \"../models.js\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./cloudflare-ai-gateway.models.js\";\nimport { cloudflareAIGatewayAuth } from \"./cloudflare-auth.js\";\nimport { cloudflareStreams } from \"./cloudflare-stream.js\";\nexport function cloudflareAIGatewayProvider() {\n // The api map is pinned to all three APIs: models.dev's gateway catalog drops and\n // restores `workers-ai/*` (openai-completions) entries over time, and inference from\n // `models` alone would otherwise reject the openai-completions entry whenever the\n // generated catalog happens to contain none.\n return createProvider({\n id: \"cloudflare-ai-gateway\",\n name: \"Cloudflare AI Gateway\",\n auth: { apiKey: cloudflareAIGatewayAuth() },\n models: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),\n api: {\n \"anthropic-messages\": cloudflareStreams(anthropicMessagesApi()),\n \"openai-completions\": cloudflareStreams(openAICompletionsApi()),\n \"openai-responses\": cloudflareStreams(openAIResponsesApi()),\n },\n });\n}\n//# sourceMappingURL=cloudflare-ai-gateway.js.map","export const cloudflareWorkersAISystemOneApi = () => ({\n classify: async (model, context, options) => (await import(\"./cloudflare-workers-ai-system-one.js\")).classify(model, context, options),\n});\n//# sourceMappingURL=cloudflare-workers-ai-system-one.lazy.js.map","import { cloudflareWorkersAISystemOneApi } from \"../api/cloudflare-workers-ai-system-one.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { createProvider } from \"../models.js\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.js\";\nimport { cloudflareClassifier, cloudflareStreams } from \"./cloudflare-stream.js\";\nimport { CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS, CLOUDFLARE_WORKERS_AI_MODELS, } from \"./cloudflare-workers-ai.models.js\";\nexport function cloudflareWorkersAIProvider() {\n return createProvider({\n id: \"cloudflare-workers-ai\",\n name: \"Cloudflare Workers AI\",\n auth: { apiKey: cloudflareWorkersAIAuth() },\n models: [\n ...Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n ...Object.values(CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS),\n ],\n api: cloudflareStreams(openAICompletionsApi()),\n classifiers: {\n \"cloudflare-workers-ai-system-one\": cloudflareClassifier(cloudflareWorkersAISystemOneApi()),\n },\n });\n}\n//# sourceMappingURL=cloudflare-workers-ai.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { DEEPSEEK_MODELS } from \"./deepseek.models.js\";\nexport function deepseekProvider() {\n return createProvider({\n id: \"deepseek\",\n name: \"DeepSeek\",\n baseUrl: \"https://api.deepseek.com\",\n auth: { apiKey: envApiKeyAuth(\"DeepSeek API key\", [\"DEEPSEEK_API_KEY\"]) },\n models: Object.values(DEEPSEEK_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=deepseek.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { FIREWORKS_MODELS } from \"./fireworks.models.js\";\nexport function fireworksProvider() {\n return createProvider({\n id: \"fireworks\",\n name: \"Fireworks\",\n baseUrl: \"https://api.fireworks.ai/inference\",\n auth: { apiKey: envApiKeyAuth(\"Fireworks API key\", [\"FIREWORKS_API_KEY\"]) },\n models: Object.values(FIREWORKS_MODELS),\n api: {\n \"anthropic-messages\": anthropicMessagesApi(),\n \"openai-completions\": openAICompletionsApi(),\n },\n });\n}\n//# sourceMappingURL=fireworks.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadGitHubCopilotOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { GITHUB_COPILOT_MODELS } from \"./github-copilot.models.js\";\nexport function githubCopilotProvider() {\n return createProvider({\n id: \"github-copilot\",\n name: \"GitHub Copilot\",\n baseUrl: \"https://api.individual.githubcopilot.com\",\n auth: {\n apiKey: envApiKeyAuth(\"GitHub Copilot token\", [\"COPILOT_GITHUB_TOKEN\"]),\n oauth: lazyOAuth({ name: \"GitHub Copilot\", isSubscription: true, load: loadGitHubCopilotOAuth }),\n },\n models: Object.values(GITHUB_COPILOT_MODELS),\n filterModels: (models, credential) => {\n if (credential?.type !== \"oauth\")\n return models;\n const availableModelIds = credential.availableModelIds;\n if (!Array.isArray(availableModelIds) || !availableModelIds.every((id) => typeof id === \"string\")) {\n return models;\n }\n const available = new Set(availableModelIds);\n return models.filter((model) => available.has(model.id));\n },\n api: {\n \"anthropic-messages\": anthropicMessagesApi(),\n \"openai-completions\": openAICompletionsApi(),\n \"openai-responses\": openAIResponsesApi(),\n },\n });\n}\n//# sourceMappingURL=github-copilot.js.map","import { googleGenerativeAIApi } from \"../api/google-generative-ai.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { GOOGLE_MODELS } from \"./google.models.js\";\nexport function googleProvider() {\n return createProvider({\n id: \"google\",\n name: \"Google\",\n baseUrl: \"https://generativelanguage.googleapis.com/v1beta\",\n auth: { apiKey: envApiKeyAuth(\"Gemini API key\", [\"GEMINI_API_KEY\"]) },\n models: Object.values(GOOGLE_MODELS),\n api: googleGenerativeAIApi(),\n });\n}\n//# sourceMappingURL=google.js.map","import { googleVertexApi } from \"../api/google-vertex.lazy.js\";\nimport { createProvider } from \"../models.js\";\nimport { GOOGLE_VERTEX_MODELS } from \"./google-vertex.models.js\";\nconst VERTEX_ADC_PATH = \"~/.config/gcloud/application_default_credentials.json\";\n/**\n * Vertex accepts an explicit API key or Application Default Credentials\n * (`gcloud auth application-default login`). ADC additionally requires\n * project and location env vars, which the implementation reads itself.\n */\nconst vertexAuth = {\n name: \"Google Cloud credentials\",\n login: async (interaction) => {\n interaction.signal.throwIfAborted();\n const method = await interaction.prompt({\n type: \"select\",\n message: \"Select Google Vertex AI authentication method:\",\n options: [\n { id: \"api-key\", label: \"Google Cloud API key\" },\n { id: \"adc\", label: \"Application Default Credentials\" },\n { id: \"service-account\", label: \"Service account credentials file\" },\n ],\n });\n interaction.signal.throwIfAborted();\n if (method === \"api-key\") {\n return {\n type: \"api_key\",\n key: await interaction.prompt({ type: \"secret\", message: \"Enter Google Cloud API key\" }),\n };\n }\n if (method !== \"adc\" && method !== \"service-account\") {\n throw new Error(`Unknown Google Vertex AI auth method: ${method}`);\n }\n interaction.notify({\n type: \"info\",\n message: method === \"adc\"\n ? \"Run `gcloud auth application-default login`, then provide the project and location.\"\n : \"Provide a service account credentials file, project, and location.\",\n links: [\n {\n label: \"Application Default Credentials\",\n url: \"https://cloud.google.com/docs/authentication/provide-credentials-adc\",\n },\n ],\n });\n const project = await interaction.prompt({ type: \"text\", message: \"Enter Google Cloud project ID\" });\n const location = await interaction.prompt({ type: \"text\", message: \"Enter Google Cloud location\" });\n const credentialsPath = method === \"service-account\"\n ? await interaction.prompt({ type: \"text\", message: \"Enter service account credentials file path\" })\n : undefined;\n return {\n type: \"api_key\",\n env: {\n GOOGLE_CLOUD_PROJECT: project,\n GOOGLE_CLOUD_LOCATION: location,\n ...(credentialsPath ? { GOOGLE_APPLICATION_CREDENTIALS: credentialsPath } : {}),\n },\n };\n },\n resolve: async ({ ctx, credential, signal }) => {\n const env = async (name) => {\n signal.throwIfAborted();\n const value = await ctx.env(name);\n signal.throwIfAborted();\n return value;\n };\n const key = credential?.key ?? (await env(\"GOOGLE_CLOUD_API_KEY\"));\n if (key)\n return { auth: { apiKey: key }, source: credential?.key ? \"stored credential\" : \"GOOGLE_CLOUD_API_KEY\" };\n const adcPath = credential?.env?.GOOGLE_APPLICATION_CREDENTIALS ?? (await env(\"GOOGLE_APPLICATION_CREDENTIALS\"));\n signal.throwIfAborted();\n const hasCredentials = await ctx.fileExists(adcPath ?? VERTEX_ADC_PATH);\n signal.throwIfAborted();\n const project = credential?.env?.GOOGLE_CLOUD_PROJECT ?? (await env(\"GOOGLE_CLOUD_PROJECT\")) ?? (await env(\"GCLOUD_PROJECT\"));\n const location = credential?.env?.GOOGLE_CLOUD_LOCATION ?? (await env(\"GOOGLE_CLOUD_LOCATION\"));\n if (hasCredentials && project && location) {\n return {\n auth: {},\n env: credential?.env,\n source: credential ? \"stored credential\" : \"gcloud application default credentials\",\n };\n }\n return undefined;\n },\n};\nexport function googleVertexProvider() {\n return createProvider({\n id: \"google-vertex\",\n name: \"Google Vertex AI\",\n auth: { apiKey: vertexAuth },\n models: Object.values(GOOGLE_VERTEX_MODELS),\n api: googleVertexApi(),\n });\n}\n//# sourceMappingURL=google-vertex.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { GROQ_MODELS } from \"./groq.models.js\";\nexport function groqProvider() {\n return createProvider({\n id: \"groq\",\n name: \"Groq\",\n baseUrl: \"https://api.groq.com/openai/v1\",\n auth: { apiKey: envApiKeyAuth(\"Groq API key\", [\"GROQ_API_KEY\"]) },\n models: Object.values(GROQ_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=groq.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { HUGGINGFACE_MODELS } from \"./huggingface.models.js\";\nexport function huggingfaceProvider() {\n return createProvider({\n id: \"huggingface\",\n name: \"Hugging Face\",\n baseUrl: \"https://router.huggingface.co/v1\",\n auth: { apiKey: envApiKeyAuth(\"Hugging Face token\", [\"HF_TOKEN\"]) },\n models: Object.values(HUGGINGFACE_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=huggingface.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadKimiCodingOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { KIMI_CODING_MODELS } from \"./kimi-coding.models.js\";\nexport function kimiCodingProvider() {\n return createProvider({\n id: \"kimi-coding\",\n name: \"Kimi For Coding\",\n baseUrl: \"https://api.kimi.com/coding\",\n auth: {\n apiKey: envApiKeyAuth(\"Kimi API key\", [\"KIMI_API_KEY\"]),\n oauth: lazyOAuth({\n name: \"Kimi Code (subscription)\",\n isSubscription: true,\n loginLabel: \"Sign in with Kimi Code\",\n load: loadKimiCodingOAuth,\n }),\n },\n models: Object.values(KIMI_CODING_MODELS),\n api: anthropicMessagesApi(),\n });\n}\n//# sourceMappingURL=kimi-coding.js.map","import { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadMetaOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { META_MODELS } from \"./meta.models.js\";\nexport function metaProvider() {\n return createProvider({\n id: \"meta\",\n name: \"Meta\",\n baseUrl: \"https://api.meta.ai/v1\",\n auth: {\n apiKey: envApiKeyAuth(\"Meta Model API key\", [\"META_API_KEY\"]),\n oauth: lazyOAuth({\n name: \"Meta (Muse subscription)\",\n isSubscription: true,\n loginLabel: \"Sign in with Meta\",\n load: loadMetaOAuth,\n }),\n },\n models: Object.values(META_MODELS),\n api: openAIResponsesApi(),\n });\n}\n//# sourceMappingURL=meta.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { MINIMAX_MODELS } from \"./minimax.models.js\";\nexport function minimaxProvider() {\n return createProvider({\n id: \"minimax\",\n name: \"MiniMax\",\n baseUrl: \"https://api.minimax.io/anthropic\",\n auth: { apiKey: envApiKeyAuth(\"MiniMax API key\", [\"MINIMAX_API_KEY\"]) },\n models: Object.values(MINIMAX_MODELS),\n api: anthropicMessagesApi(),\n });\n}\n//# sourceMappingURL=minimax.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { MINIMAX_CN_MODELS } from \"./minimax-cn.models.js\";\nexport function minimaxCnProvider() {\n return createProvider({\n id: \"minimax-cn\",\n name: \"MiniMax CN\",\n baseUrl: \"https://api.minimaxi.com/anthropic\",\n auth: { apiKey: envApiKeyAuth(\"MiniMax CN API key\", [\"MINIMAX_CN_API_KEY\"]) },\n models: Object.values(MINIMAX_CN_MODELS),\n api: anthropicMessagesApi(),\n });\n}\n//# sourceMappingURL=minimax-cn.js.map","import { mistralConversationsApi } from \"../api/mistral-conversations.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { MISTRAL_MODELS } from \"./mistral.models.js\";\nexport function mistralProvider() {\n return createProvider({\n id: \"mistral\",\n name: \"Mistral\",\n baseUrl: \"https://api.mistral.ai\",\n auth: { apiKey: envApiKeyAuth(\"Mistral API key\", [\"MISTRAL_API_KEY\"]) },\n models: Object.values(MISTRAL_MODELS),\n api: mistralConversationsApi(),\n });\n}\n//# sourceMappingURL=mistral.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { MOONSHOTAI_MODELS } from \"./moonshotai.models.js\";\nexport function moonshotaiProvider() {\n return createProvider({\n id: \"moonshotai\",\n name: \"Moonshot AI\",\n baseUrl: \"https://api.moonshot.ai/v1\",\n auth: { apiKey: envApiKeyAuth(\"Moonshot AI API key\", [\"MOONSHOT_API_KEY\"]) },\n models: Object.values(MOONSHOTAI_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=moonshotai.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { MOONSHOTAI_CN_MODELS } from \"./moonshotai-cn.models.js\";\nexport function moonshotaiCnProvider() {\n return createProvider({\n id: \"moonshotai-cn\",\n name: \"Moonshot AI CN\",\n baseUrl: \"https://api.moonshot.cn/v1\",\n auth: { apiKey: envApiKeyAuth(\"Moonshot AI API key\", [\"MOONSHOT_API_KEY\"]) },\n models: Object.values(MOONSHOTAI_CN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=moonshotai-cn.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { NVIDIA_MODELS } from \"./nvidia.models.js\";\nexport function nvidiaProvider() {\n return createProvider({\n id: \"nvidia\",\n name: \"NVIDIA\",\n baseUrl: \"https://integrate.api.nvidia.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"NVIDIA API key\", [\"NVIDIA_API_KEY\"]) },\n models: Object.values(NVIDIA_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=nvidia.js.map","import { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadOpenAIChatGPTOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { OPENAI_MODELS } from \"./openai.models.js\";\nexport function openaiProvider() {\n return createProvider({\n id: \"openai\",\n name: \"OpenAI\",\n baseUrl: \"https://api.openai.com/v1\",\n auth: {\n apiKey: envApiKeyAuth(\"OpenAI API key\", [\"OPENAI_API_KEY\"]),\n oauth: lazyOAuth({\n name: \"OpenAI (ChatGPT subscription)\",\n isSubscription: true,\n loginLabel: \"Sign in with ChatGPT\",\n load: loadOpenAIChatGPTOAuth,\n }),\n },\n models: Object.values(OPENAI_MODELS),\n api: openAIResponsesApi(),\n });\n}\n//# sourceMappingURL=openai.js.map","import { openAICodexResponsesApi } from \"../api/openai-codex-responses.lazy.js\";\nimport { lazyOAuth } from \"../auth/helpers.js\";\nimport { loadOpenAICodexOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { OPENAI_CODEX_MODELS } from \"./openai-codex.models.js\";\nexport function openaiCodexProvider() {\n return createProvider({\n id: \"openai-codex\",\n name: \"OpenAI Codex (legacy)\",\n baseUrl: \"https://chatgpt.com/backend-api\",\n auth: {\n oauth: lazyOAuth({\n name: \"OpenAI (ChatGPT Plus/Pro)\",\n isSubscription: true,\n load: loadOpenAICodexOAuth,\n }),\n },\n models: Object.values(OPENAI_CODEX_MODELS),\n api: openAICodexResponsesApi(),\n });\n}\n//# sourceMappingURL=openai-codex.js.map","export const typesafeSystemOneApi = () => ({\n classify: async (model, context, options) => (await import(\"./typesafe-system-one.js\")).classify(model, context, options),\n});\n//# sourceMappingURL=typesafe-system-one.lazy.js.map","const OPENCODE_SESSION_HEADER = \"x-opencode-session\";\nfunction hasHeader(headers, name) {\n const expected = name.toLowerCase();\n return Object.keys(headers ?? {}).some((key) => key.toLowerCase() === expected);\n}\nfunction withSessionHeader(options) {\n if (!options?.sessionId || hasHeader(options.headers, OPENCODE_SESSION_HEADER))\n return options;\n return {\n ...options,\n headers: { ...options.headers, [OPENCODE_SESSION_HEADER]: options.sessionId },\n };\n}\n/** Adds OpenCode's required per-conversation routing header before API dispatch. */\nexport function withOpenCodeSessionHeader(streams) {\n return {\n ...streams,\n stream: (model, context, options) => streams.stream(model, context, withSessionHeader(options)),\n streamSimple: (model, context, options) => streams.streamSimple(model, context, withSessionHeader(options)),\n };\n}\n//# sourceMappingURL=opencode-headers.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { googleGenerativeAIApi } from \"../api/google-generative-ai.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { OPENCODE_CLASSIFIER_MODELS, OPENCODE_MODELS } from \"./opencode.models.js\";\nimport { withOpenCodeSessionHeader } from \"./opencode-headers.js\";\nexport function opencodeProvider() {\n return createProvider({\n id: \"opencode\",\n name: \"OpenCode Zen\",\n auth: { apiKey: envApiKeyAuth(\"OpenCode API key\", [\"OPENCODE_API_KEY\"]) },\n models: [...Object.values(OPENCODE_MODELS), ...Object.values(OPENCODE_CLASSIFIER_MODELS)],\n api: {\n \"anthropic-messages\": withOpenCodeSessionHeader(anthropicMessagesApi()),\n \"google-generative-ai\": withOpenCodeSessionHeader(googleGenerativeAIApi()),\n \"openai-completions\": withOpenCodeSessionHeader(openAICompletionsApi()),\n \"openai-responses\": withOpenCodeSessionHeader(openAIResponsesApi()),\n },\n // OpenCode Zen serves TypeSafe's System One protocol at /zen/v1/systemone.\n classifiers: { \"typesafe-system-one\": typesafeSystemOneApi() },\n });\n}\n//# sourceMappingURL=opencode.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { OPENCODE_GO_MODELS } from \"./opencode-go.models.js\";\nimport { withOpenCodeSessionHeader } from \"./opencode-headers.js\";\nexport function opencodeGoProvider() {\n return createProvider({\n id: \"opencode-go\",\n name: \"OpenCode Go\",\n auth: { apiKey: envApiKeyAuth(\"OpenCode API key\", [\"OPENCODE_API_KEY\"]) },\n models: Object.values(OPENCODE_GO_MODELS),\n api: {\n \"anthropic-messages\": withOpenCodeSessionHeader(anthropicMessagesApi()),\n \"openai-completions\": withOpenCodeSessionHeader(openAICompletionsApi()),\n \"openai-responses\": withOpenCodeSessionHeader(openAIResponsesApi()),\n },\n });\n}\n//# sourceMappingURL=opencode-go.js.map","export const openrouterImagesApi = () => ({\n generateImages: async (model, context, options) => (await import(\"./openrouter-images.js\")).generateImages(model, context, options),\n});\n//# sourceMappingURL=openrouter-images.lazy.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { openrouterImagesApi } from \"../api/openrouter-images.lazy.js\";\nimport { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadOpenRouterOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { OPENROUTER_CLASSIFIER_MODELS, OPENROUTER_IMAGE_MODELS, OPENROUTER_MODELS } from \"./openrouter.models.js\";\nexport function openrouterProvider() {\n return createProvider({\n id: \"openrouter\",\n name: \"OpenRouter\",\n baseUrl: \"https://openrouter.ai/api/v1\",\n auth: {\n apiKey: envApiKeyAuth(\"OpenRouter API key\", [\"OPENROUTER_API_KEY\"]),\n oauth: lazyOAuth({\n name: \"OpenRouter OAuth\",\n loginLabel: \"Sign in with OpenRouter\",\n load: loadOpenRouterOAuth,\n }),\n },\n models: [\n ...Object.values(OPENROUTER_MODELS),\n ...Object.values(OPENROUTER_IMAGE_MODELS),\n ...Object.values(OPENROUTER_CLASSIFIER_MODELS),\n ],\n api: {\n \"anthropic-messages\": anthropicMessagesApi(),\n \"openai-completions\": openAICompletionsApi(),\n },\n images: { \"openrouter-images\": openrouterImagesApi() },\n // OpenRouter serves TypeSafe's System One protocol at /api/v1/systemone.\n classifiers: { \"typesafe-system-one\": typesafeSystemOneApi() },\n });\n}\n//# sourceMappingURL=openrouter.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { QWEN_TOKEN_PLAN_MODELS } from \"./qwen-token-plan.models.js\";\nexport function qwenTokenPlanProvider() {\n return createProvider({\n id: \"qwen-token-plan\",\n name: \"Qwen Token Plan\",\n baseUrl: \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n auth: { apiKey: envApiKeyAuth(\"Qwen Token Plan API key\", [\"QWEN_TOKEN_PLAN_API_KEY\"]) },\n models: Object.values(QWEN_TOKEN_PLAN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=qwen-token-plan.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { QWEN_TOKEN_PLAN_CN_MODELS } from \"./qwen-token-plan-cn.models.js\";\nexport function qwenTokenPlanCnProvider() {\n return createProvider({\n id: \"qwen-token-plan-cn\",\n name: \"Qwen Token Plan CN\",\n baseUrl: \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n auth: { apiKey: envApiKeyAuth(\"Qwen Token Plan CN API key\", [\"QWEN_TOKEN_PLAN_CN_API_KEY\"]) },\n models: Object.values(QWEN_TOKEN_PLAN_CN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=qwen-token-plan-cn.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS } from \"./qwen-token-plan-individual.models.js\";\nexport function qwenTokenPlanIndividualProvider() {\n return createProvider({\n id: \"qwen-token-plan-individual\",\n name: \"Qwen Token Plan Individual\",\n baseUrl: \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n auth: { apiKey: envApiKeyAuth(\"Qwen Token Plan Individual API key\", [\"QWEN_TOKEN_PLAN_API_KEY\"]) },\n models: Object.values(QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=qwen-token-plan-individual.js.map","export const DEFAULT_RADIUS_GATEWAY = \"https://radius.pi.dev\";\nfunction isRadiusGatewayModel(value) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return false;\n const model = value;\n return (typeof model.id === \"string\" &&\n typeof model.name === \"string\" &&\n typeof model.reasoning === \"boolean\" &&\n Array.isArray(model.input) &&\n typeof model.cost === \"object\" &&\n model.cost !== null &&\n !Array.isArray(model.cost) &&\n typeof model.contextWindow === \"number\" &&\n typeof model.maxTokens === \"number\");\n}\nfunction sanitizeRadiusGatewayConfig(config) {\n if (typeof config !== \"object\" || config === null || Array.isArray(config))\n return undefined;\n const { baseUrl, models } = config;\n if (typeof baseUrl !== \"string\" || !Array.isArray(models))\n return undefined;\n return {\n baseUrl,\n models: models.filter(isRadiusGatewayModel).map((model) => ({ ...model })),\n };\n}\nexport function normalizeRadiusGatewayUrl(value) {\n const withScheme = /^https?:\\/\\//iu.test(value) ? value : `https://${value}`;\n return withScheme.replace(/\\/+$/u, \"\");\n}\nexport function getRadiusCredentialConfig(credential) {\n return sanitizeRadiusGatewayConfig(credential?.gatewayConfig);\n}\nexport function getRadiusModelsFromConfig(providerId, config) {\n return config.models.map((model) => ({\n ...model,\n api: \"pi-messages\",\n provider: providerId,\n baseUrl: config.baseUrl,\n }));\n}\nexport function getRadiusModels(providerId, credential) {\n const config = getRadiusCredentialConfig(credential);\n return config ? getRadiusModelsFromConfig(providerId, config) : [];\n}\nfunction truncateHttpBody(body) {\n const trimmed = body.trim();\n return trimmed.length > 512 ? `${trimmed.slice(0, 512)}…` : trimmed;\n}\nexport async function loadRadiusGatewayConfig(gateway, apiKey, signal) {\n const headers = { accept: \"application/json\" };\n if (apiKey)\n headers.authorization = `Bearer ${apiKey}`;\n const response = await fetch(new URL(\"/v1/config\", gateway), { headers, signal });\n if (!response.ok) {\n throw new Error(`Could not load Radius config from ${gateway}: ${response.status}: ${truncateHttpBody(await response.text())}`);\n }\n const config = sanitizeRadiusGatewayConfig(await response.json());\n if (!config)\n throw new Error(`Invalid Radius config from ${gateway}`);\n return config;\n}\n//# sourceMappingURL=radius-config.js.map","import { piMessagesApi } from \"../api/pi-messages.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadRadiusOAuth } from \"../auth/oauth/load.js\";\nimport { RADIUS_MODELS } from \"./radius.models.js\";\nimport { DEFAULT_RADIUS_GATEWAY, getRadiusModels, getRadiusModelsFromConfig, loadRadiusGatewayConfig, normalizeRadiusGatewayUrl, } from \"./radius-config.js\";\n/** Radius gateway provider with a persisted, dynamically refreshed catalog. */\nexport function radiusProvider(options = {}) {\n const id = options.id ?? \"radius\";\n const name = options.name ?? \"Radius\";\n const gateway = normalizeRadiusGatewayUrl(options.gateway ?? DEFAULT_RADIUS_GATEWAY);\n const baselineModels = gateway === normalizeRadiusGatewayUrl(DEFAULT_RADIUS_GATEWAY)\n ? Object.values(RADIUS_MODELS).map((model) => ({ ...model, provider: id }))\n : [];\n let dynamicModels = getRadiusModels(id, undefined);\n const streams = piMessagesApi();\n return {\n id,\n name,\n auth: {\n apiKey: envApiKeyAuth(\"Radius API key\", [\"RADIUS_API_KEY\"]),\n oauth: lazyOAuth({ name, load: () => loadRadiusOAuth({ name, gateway }) }),\n },\n getModels: () => {\n const merged = [...baselineModels];\n for (const model of dynamicModels) {\n const index = merged.findIndex((entry) => entry.id === model.id);\n if (index >= 0)\n merged[index] = model;\n else\n merged.push(model);\n }\n return merged;\n },\n refreshModels: async (context) => {\n const stored = context.stored;\n if (stored) {\n const restored = stored.models.filter((model) => model.provider === id);\n if (!(await context.publish({\n update: () => {\n dynamicModels = restored;\n },\n }))) {\n return;\n }\n }\n // Import catalogs cached by the pre-ModelsStore Radius implementation.\n if (!stored && context.credential?.type === \"oauth\") {\n const legacy = getRadiusModels(id, context.credential);\n if (legacy.length > 0) {\n if (!(await context.publish({\n persist: { models: legacy, checkedAt: Date.now() },\n update: () => {\n dynamicModels = legacy;\n },\n }))) {\n return;\n }\n }\n }\n if (!context.allowNetwork || context.signal.aborted)\n return;\n const apiKey = context.credential?.type === \"oauth\" ? context.credential.access : context.credential?.key;\n const config = await loadRadiusGatewayConfig(gateway, apiKey, context.signal);\n if (context.signal.aborted)\n return;\n const refreshed = getRadiusModelsFromConfig(id, config);\n await context.publish({\n persist: { models: refreshed, checkedAt: Date.now() },\n update: () => {\n dynamicModels = refreshed;\n },\n });\n },\n stream: (model, context, streamOptions) => streams.stream(model, context, streamOptions),\n streamSimple: (model, context, streamOptions) => streams.streamSimple(model, context, streamOptions),\n };\n}\n//# sourceMappingURL=radius.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { TOGETHER_MODELS } from \"./together.models.js\";\nexport function togetherProvider() {\n return createProvider({\n id: \"together\",\n name: \"Together\",\n baseUrl: \"https://api.together.ai/v1\",\n auth: { apiKey: envApiKeyAuth(\"Together API key\", [\"TOGETHER_API_KEY\"]) },\n models: Object.values(TOGETHER_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=together.js.map","import { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { TYPESAFE_CLASSIFIER_MODELS } from \"./typesafe.models.js\";\nexport function typesafeProvider() {\n return createProvider({\n id: \"typesafe\",\n name: \"TypeSafe\",\n auth: {\n apiKey: envApiKeyAuth(\"TypeSafe API key\", [\"TYPESAFE_API_KEY\"]),\n },\n models: Object.values(TYPESAFE_CLASSIFIER_MODELS),\n classifiers: {\n \"typesafe-system-one\": typesafeSystemOneApi(),\n },\n });\n}\n//# sourceMappingURL=typesafe.js.map","import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.js\";\nimport { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { VERCEL_AI_GATEWAY_CLASSIFIER_MODELS, VERCEL_AI_GATEWAY_MODELS } from \"./vercel-ai-gateway.models.js\";\nexport function vercelAIGatewayProvider() {\n return createProvider({\n id: \"vercel-ai-gateway\",\n name: \"Vercel AI Gateway\",\n baseUrl: \"https://ai-gateway.vercel.sh\",\n auth: { apiKey: envApiKeyAuth(\"Vercel AI Gateway API key\", [\"AI_GATEWAY_API_KEY\"]) },\n models: [...Object.values(VERCEL_AI_GATEWAY_MODELS), ...Object.values(VERCEL_AI_GATEWAY_CLASSIFIER_MODELS)],\n api: anthropicMessagesApi(),\n // AI Gateway serves TypeSafe's System One protocol at /typesafe/v1/systemone.\n classifiers: { \"typesafe-system-one\": typesafeSystemOneApi() },\n });\n}\n//# sourceMappingURL=vercel-ai-gateway.js.map","import { openAIResponsesApi } from \"../api/openai-responses.lazy.js\";\nimport { envApiKeyAuth, lazyOAuth } from \"../auth/helpers.js\";\nimport { loadXaiOAuth } from \"../auth/oauth/load.js\";\nimport { createProvider } from \"../models.js\";\nimport { XAI_MODELS } from \"./xai.models.js\";\nexport function xaiProvider() {\n return createProvider({\n id: \"xai\",\n name: \"xAI\",\n baseUrl: \"https://api.x.ai/v1\",\n auth: {\n apiKey: envApiKeyAuth(\"xAI API key\", [\"XAI_API_KEY\"]),\n oauth: lazyOAuth({\n name: \"xAI (Grok/X subscription)\",\n isSubscription: true,\n loginLabel: \"Sign in with SuperGrok or X Premium\",\n load: loadXaiOAuth,\n }),\n },\n models: Object.values(XAI_MODELS),\n api: openAIResponsesApi(),\n });\n}\n//# sourceMappingURL=xai.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { XIAOMI_MODELS } from \"./xiaomi.models.js\";\nexport function xiaomiProvider() {\n return createProvider({\n id: \"xiaomi\",\n name: \"Xiaomi\",\n baseUrl: \"https://api.xiaomimimo.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"Xiaomi API key\", [\"XIAOMI_API_KEY\"]) },\n models: Object.values(XIAOMI_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=xiaomi.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { XIAOMI_TOKEN_PLAN_AMS_MODELS } from \"./xiaomi-token-plan-ams.models.js\";\nexport function xiaomiTokenPlanAmsProvider() {\n return createProvider({\n id: \"xiaomi-token-plan-ams\",\n name: \"Xiaomi Token Plan AMS\",\n baseUrl: \"https://token-plan-ams.xiaomimimo.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"Xiaomi Token Plan AMS API key\", [\"XIAOMI_TOKEN_PLAN_AMS_API_KEY\"]) },\n models: Object.values(XIAOMI_TOKEN_PLAN_AMS_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=xiaomi-token-plan-ams.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { XIAOMI_TOKEN_PLAN_CN_MODELS } from \"./xiaomi-token-plan-cn.models.js\";\nexport function xiaomiTokenPlanCnProvider() {\n return createProvider({\n id: \"xiaomi-token-plan-cn\",\n name: \"Xiaomi Token Plan CN\",\n baseUrl: \"https://token-plan-cn.xiaomimimo.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"Xiaomi Token Plan CN API key\", [\"XIAOMI_TOKEN_PLAN_CN_API_KEY\"]) },\n models: Object.values(XIAOMI_TOKEN_PLAN_CN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=xiaomi-token-plan-cn.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { XIAOMI_TOKEN_PLAN_SGP_MODELS } from \"./xiaomi-token-plan-sgp.models.js\";\nexport function xiaomiTokenPlanSgpProvider() {\n return createProvider({\n id: \"xiaomi-token-plan-sgp\",\n name: \"Xiaomi Token Plan SGP\",\n baseUrl: \"https://token-plan-sgp.xiaomimimo.com/v1\",\n auth: { apiKey: envApiKeyAuth(\"Xiaomi Token Plan SGP API key\", [\"XIAOMI_TOKEN_PLAN_SGP_API_KEY\"]) },\n models: Object.values(XIAOMI_TOKEN_PLAN_SGP_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=xiaomi-token-plan-sgp.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { ZAI_MODELS } from \"./zai.models.js\";\nexport function zaiProvider() {\n return createProvider({\n id: \"zai\",\n name: \"Z.AI\",\n baseUrl: \"https://api.z.ai/api/coding/paas/v4\",\n auth: { apiKey: envApiKeyAuth(\"Z.AI API key\", [\"ZAI_API_KEY\"]) },\n models: Object.values(ZAI_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=zai.js.map","import { openAICompletionsApi } from \"../api/openai-completions.lazy.js\";\nimport { envApiKeyAuth } from \"../auth/helpers.js\";\nimport { createProvider } from \"../models.js\";\nimport { ZAI_CODING_CN_MODELS } from \"./zai-coding-cn.models.js\";\nexport function zaiCodingCnProvider() {\n return createProvider({\n id: \"zai-coding-cn\",\n name: \"Z.AI Coding CN\",\n baseUrl: \"https://open.bigmodel.cn/api/coding/paas/v4\",\n auth: { apiKey: envApiKeyAuth(\"Z.AI Coding CN API key\", [\"ZAI_CODING_CN_API_KEY\"]) },\n models: Object.values(ZAI_CODING_CN_MODELS),\n api: openAICompletionsApi(),\n });\n}\n//# sourceMappingURL=zai-coding-cn.js.map","import { CLASSIFIER_MODELS, IMAGE_MODELS, MODELS } from \"../models.generated.js\";\nimport { createModels } from \"../models.js\";\nimport { amazonBedrockProvider } from \"./amazon-bedrock.js\";\nimport { antLingProvider } from \"./ant-ling.js\";\nimport { anthropicProvider } from \"./anthropic.js\";\nimport { azureOpenAIResponsesProvider } from \"./azure-openai-responses.js\";\nimport { basetenProvider } from \"./baseten.js\";\nimport { cerebrasProvider } from \"./cerebras.js\";\nimport { cloudflareAIGatewayProvider } from \"./cloudflare-ai-gateway.js\";\nimport { cloudflareWorkersAIProvider } from \"./cloudflare-workers-ai.js\";\nimport modelDataManifest from \"./data/.manifest.json\" with { type: \"json\" };\nimport { deepseekProvider } from \"./deepseek.js\";\nimport { fireworksProvider } from \"./fireworks.js\";\nimport { githubCopilotProvider } from \"./github-copilot.js\";\nimport { googleProvider } from \"./google.js\";\nimport { googleVertexProvider } from \"./google-vertex.js\";\nimport { groqProvider } from \"./groq.js\";\nimport { huggingfaceProvider } from \"./huggingface.js\";\nimport { kimiCodingProvider } from \"./kimi-coding.js\";\nimport { metaProvider } from \"./meta.js\";\nimport { minimaxProvider } from \"./minimax.js\";\nimport { minimaxCnProvider } from \"./minimax-cn.js\";\nimport { mistralProvider } from \"./mistral.js\";\nimport { moonshotaiProvider } from \"./moonshotai.js\";\nimport { moonshotaiCnProvider } from \"./moonshotai-cn.js\";\nimport { nvidiaProvider } from \"./nvidia.js\";\nimport { openaiProvider } from \"./openai.js\";\nimport { openaiCodexProvider } from \"./openai-codex.js\";\nimport { opencodeProvider } from \"./opencode.js\";\nimport { opencodeGoProvider } from \"./opencode-go.js\";\nimport { openrouterProvider } from \"./openrouter.js\";\nimport { qwenTokenPlanProvider } from \"./qwen-token-plan.js\";\nimport { qwenTokenPlanCnProvider } from \"./qwen-token-plan-cn.js\";\nimport { qwenTokenPlanIndividualProvider } from \"./qwen-token-plan-individual.js\";\nimport { radiusProvider } from \"./radius.js\";\nimport { togetherProvider } from \"./together.js\";\nimport { typesafeProvider } from \"./typesafe.js\";\nimport { vercelAIGatewayProvider } from \"./vercel-ai-gateway.js\";\nimport { xaiProvider } from \"./xai.js\";\nimport { xiaomiProvider } from \"./xiaomi.js\";\nimport { xiaomiTokenPlanAmsProvider } from \"./xiaomi-token-plan-ams.js\";\nimport { xiaomiTokenPlanCnProvider } from \"./xiaomi-token-plan-cn.js\";\nimport { xiaomiTokenPlanSgpProvider } from \"./xiaomi-token-plan-sgp.js\";\nimport { zaiProvider } from \"./zai.js\";\nimport { zaiCodingCnProvider } from \"./zai-coding-cn.js\";\nexport { radiusProvider };\n/** Typed read of one generated built-in chat model. */\nexport function getBuiltinModel(provider, modelId) {\n return MODELS[provider]?.[modelId];\n}\n/** Typed read of one generated built-in image model. */\nexport function getBuiltinImageModel(provider, modelId) {\n return IMAGE_MODELS[provider]?.[modelId];\n}\n/** Typed read of one generated built-in classifier model. */\nexport function getBuiltinClassifierModel(provider, modelId) {\n return CLASSIFIER_MODELS[provider]?.[modelId];\n}\nexport function getBuiltinProviders() {\n return Object.keys(MODELS);\n}\n/** Generation timestamp shared by all built-in provider catalogs. */\nexport function getBuiltinModelDataGeneratedAt() {\n const generatedAt = Date.parse(modelDataManifest.generatedAt);\n return Number.isNaN(generatedAt) ? undefined : generatedAt;\n}\nexport function getBuiltinModels(provider) {\n const models = MODELS[provider];\n return Object.values(models ?? {});\n}\nexport function getBuiltinImageModels(provider) {\n const models = IMAGE_MODELS[provider];\n return Object.values(models ?? {});\n}\nexport function getBuiltinClassifierModels(provider) {\n const models = CLASSIFIER_MODELS[provider];\n return Object.values(models ?? {});\n}\nexport function getAllBuiltinModels(provider) {\n return [...getBuiltinModels(provider), ...getBuiltinImageModels(provider), ...getBuiltinClassifierModels(provider)];\n}\n/** All built-in providers, freshly constructed. */\nexport function builtinProviders() {\n return [\n amazonBedrockProvider(),\n antLingProvider(),\n anthropicProvider(),\n azureOpenAIResponsesProvider(),\n basetenProvider(),\n cerebrasProvider(),\n cloudflareAIGatewayProvider(),\n cloudflareWorkersAIProvider(),\n deepseekProvider(),\n fireworksProvider(),\n githubCopilotProvider(),\n googleProvider(),\n googleVertexProvider(),\n groqProvider(),\n huggingfaceProvider(),\n kimiCodingProvider(),\n metaProvider(),\n minimaxProvider(),\n minimaxCnProvider(),\n mistralProvider(),\n moonshotaiProvider(),\n moonshotaiCnProvider(),\n nvidiaProvider(),\n openaiProvider(),\n openaiCodexProvider(),\n opencodeProvider(),\n opencodeGoProvider(),\n openrouterProvider(),\n qwenTokenPlanProvider(),\n qwenTokenPlanCnProvider(),\n qwenTokenPlanIndividualProvider(),\n radiusProvider(),\n togetherProvider(),\n typesafeProvider(),\n vercelAIGatewayProvider(),\n xaiProvider(),\n xiaomiProvider(),\n xiaomiTokenPlanAmsProvider(),\n xiaomiTokenPlanCnProvider(),\n xiaomiTokenPlanSgpProvider(),\n zaiProvider(),\n zaiCodingCnProvider(),\n ];\n}\n/** A `Models` collection with every built-in provider registered. */\nexport function builtinModels(options) {\n const models = createModels(options);\n for (const provider of builtinProviders()) {\n models.setProvider(provider);\n }\n return models;\n}\n//# sourceMappingURL=all.js.map","/**\n * Temporary compatibility entrypoint preserving the old global pi-ai API\n * surface: api-dispatch `stream()`/`complete()` with env API key injection,\n * the api-registry, generated catalog reads (`getModel`/`getModels`/\n * `getProviders`), per-API lazy stream wrappers, and image generation.\n *\n * Existing apps switch imports from \"@earendil-works/pi-ai\" to\n * \"@earendil-works/pi-ai/compat\" unchanged; new code uses `createModels()`\n * and the provider factories. This module is deleted with the coding-agent\n * ModelManager migration.\n */\nexport * from \"./api/anthropic-messages.lazy.js\";\nexport * from \"./api/azure-openai-responses.lazy.js\";\nexport * from \"./api/bedrock-converse-stream.lazy.js\";\nexport * from \"./api/google-generative-ai.lazy.js\";\nexport * from \"./api/google-vertex.lazy.js\";\nexport * from \"./api/mistral-conversations.lazy.js\";\nexport * from \"./api/openai-codex-responses.lazy.js\";\nexport * from \"./api/openai-completions.lazy.js\";\nexport * from \"./api/openai-responses.lazy.js\";\nexport * from \"./api/pi-messages.lazy.js\";\nexport * from \"./env-api-keys.js\";\nexport * from \"./image-models.js\";\nexport * from \"./images.js\";\nexport * from \"./images-api-registry.js\";\nexport * from \"./index.js\";\nexport * from \"./legacy-api-aliases.js\";\nexport * from \"./providers/images/register-builtins.js\";\nimport { anthropicMessagesApi } from \"./api/anthropic-messages.lazy.js\";\nimport { azureOpenAIResponsesApi } from \"./api/azure-openai-responses.lazy.js\";\nimport { bedrockConverseStreamApi } from \"./api/bedrock-converse-stream.lazy.js\";\nimport { googleGenerativeAIApi } from \"./api/google-generative-ai.lazy.js\";\nimport { googleVertexApi } from \"./api/google-vertex.lazy.js\";\nimport { mistralConversationsApi } from \"./api/mistral-conversations.lazy.js\";\nimport { openAICodexResponsesApi } from \"./api/openai-codex-responses.lazy.js\";\nimport { openAICompletionsApi } from \"./api/openai-completions.lazy.js\";\nimport { openAIResponsesApi } from \"./api/openai-responses.lazy.js\";\nimport { piMessagesApi } from \"./api/pi-messages.lazy.js\";\nimport { getEnvApiKey } from \"./env-api-keys.js\";\nimport { builtinModels, getBuiltinModel, getBuiltinModels, getBuiltinProviders } from \"./providers/all.js\";\nimport { createFauxCore } from \"./providers/faux.js\";\nimport { normalizeContext } from \"./utils/transcript.js\";\n/** @deprecated Static catalog read. Use `getBuiltinModel` from \"@earendil-works/pi-ai/providers/all\" or `Models.getModel()`. */\nexport const getModel = getBuiltinModel;\n/** @deprecated Static catalog read. Use `getBuiltinModels` from \"@earendil-works/pi-ai/providers/all\" or `Models.getModels()`. */\nexport const getModels = getBuiltinModels;\n/** @deprecated Static catalog read. Use `getBuiltinProviders` from \"@earendil-works/pi-ai/providers/all\" or `Models.getProviders()`. */\nexport const getProviders = getBuiltinProviders;\nconst apiProviderRegistry = new Map();\nfunction wrapStream(api, stream) {\n return (model, context, options) => {\n if (model.api !== api) {\n throw new Error(`Mismatched api: ${model.api} expected ${api}`);\n }\n return stream(model, context, options);\n };\n}\nfunction wrapStreamSimple(api, streamSimple) {\n return (model, context, options) => {\n if (model.api !== api) {\n throw new Error(`Mismatched api: ${model.api} expected ${api}`);\n }\n return streamSimple(model, context, options);\n };\n}\nexport function registerApiProvider(provider, sourceId) {\n apiProviderRegistry.set(provider.api, {\n provider: {\n api: provider.api,\n stream: wrapStream(provider.api, provider.stream),\n streamSimple: wrapStreamSimple(provider.api, provider.streamSimple),\n },\n sourceId,\n });\n}\nexport function getApiProvider(api) {\n return apiProviderRegistry.get(api)?.provider;\n}\nexport function getApiProviders() {\n return Array.from(apiProviderRegistry.values(), (entry) => entry.provider);\n}\nexport function unregisterApiProviders(sourceId) {\n for (const [api, entry] of apiProviderRegistry.entries()) {\n if (entry.sourceId === sourceId) {\n apiProviderRegistry.delete(api);\n }\n }\n}\nfunction clearApiProviders() {\n apiProviderRegistry.clear();\n}\nexport function registerFauxProvider(options = {}) {\n const core = createFauxCore(options);\n const sourceId = `faux-provider-${Math.random().toString(36).slice(2, 10)}`;\n registerApiProvider({ api: core.api, stream: core.stream, streamSimple: core.streamSimple }, sourceId);\n return {\n api: core.api,\n models: core.models,\n getModel: core.getModel,\n state: core.state,\n setResponses: core.setResponses,\n appendResponses: core.appendResponses,\n getPendingResponseCount: core.getPendingResponseCount,\n unregister() {\n unregisterApiProviders(sourceId);\n },\n };\n}\nconst BUILTIN_APIS = [\n [\"anthropic-messages\", anthropicMessagesApi()],\n [\"openai-completions\", openAICompletionsApi()],\n [\"openai-responses\", openAIResponsesApi()],\n [\"openai-codex-responses\", openAICodexResponsesApi()],\n [\"azure-openai-responses\", azureOpenAIResponsesApi()],\n [\"google-generative-ai\", googleGenerativeAIApi()],\n [\"google-vertex\", googleVertexApi()],\n [\"mistral-conversations\", mistralConversationsApi()],\n [\"bedrock-converse-stream\", bedrockConverseStreamApi()],\n [\"pi-messages\", piMessagesApi()],\n];\nconst builtinApiProviderInstances = new Map();\n/**\n * Registers the builtin API implementations into the api-registry without\n * clobbering existing entries: compat may load after a test or extension has\n * already registered an override for a builtin api id.\n */\nexport function registerBuiltInApiProviders() {\n for (const [api, streams] of BUILTIN_APIS) {\n if (!getApiProvider(api)) {\n registerApiProvider({ api, stream: streams.stream, streamSimple: streams.streamSimple });\n }\n builtinApiProviderInstances.set(api, getApiProvider(api));\n }\n}\nexport function resetApiProviders() {\n clearApiProviders();\n builtinApiProviderInstances.clear();\n registerBuiltInApiProviders();\n}\nregisterBuiltInApiProviders();\nconst compatModels = builtinModels();\nconst AMBIENT_AUTH_MARKER = \"<authenticated>\";\nfunction hasExplicitApiKey(apiKey) {\n return typeof apiKey === \"string\" && apiKey.trim().length > 0;\n}\nfunction withEnvApiKey(model, options) {\n if (hasExplicitApiKey(options?.apiKey))\n return options;\n const apiKey = getEnvApiKey(model.provider, options?.env);\n if (!apiKey || apiKey === AMBIENT_AUTH_MARKER)\n return options;\n return { ...options, apiKey };\n}\nfunction hasResolvedCloudflareAuth(options) {\n return hasExplicitApiKey(options?.apiKey) || typeof options?.headers?.[\"cf-aig-authorization\"] === \"string\";\n}\nfunction getBuiltinProviderForModel(model) {\n if (getApiProvider(model.api) !== builtinApiProviderInstances.get(model.api))\n return undefined;\n const provider = compatModels.getProvider(model.provider);\n return provider?.getModels().some((candidate) => candidate.api === model.api) ? provider : undefined;\n}\nfunction resolveApiProvider(api) {\n const provider = getApiProvider(api);\n if (!provider) {\n throw new Error(`No API provider registered for api: ${api}`);\n }\n return provider;\n}\nexport function stream(model, context, options) {\n const transcript = normalizeContext(context);\n const builtinProvider = getBuiltinProviderForModel(model);\n if (builtinProvider) {\n if (model.provider.startsWith(\"cloudflare-\") && !hasResolvedCloudflareAuth(options)) {\n return compatModels.stream(model, transcript, options);\n }\n return builtinProvider.stream(model, transcript, withEnvApiKey(model, options));\n }\n const provider = resolveApiProvider(model.api);\n return provider.stream(model, transcript, withEnvApiKey(model, options));\n}\nexport async function complete(model, context, options) {\n const s = stream(model, context, options);\n return s.result();\n}\nexport function streamSimple(model, context, options) {\n const transcript = normalizeContext(context);\n const builtinProvider = getBuiltinProviderForModel(model);\n if (builtinProvider) {\n if (model.provider.startsWith(\"cloudflare-\") && !hasResolvedCloudflareAuth(options)) {\n return compatModels.streamSimple(model, transcript, options);\n }\n return builtinProvider.streamSimple(model, transcript, withEnvApiKey(model, options));\n }\n const provider = resolveApiProvider(model.api);\n return provider.streamSimple(model, transcript, withEnvApiKey(model, options));\n}\nexport async function completeSimple(model, context, options) {\n const s = streamSimple(model, context, options);\n return s.result();\n}\n//# sourceMappingURL=compat.js.map","//#region \\0rolldown/runtime.js\nvar __defProp = Object.defineProperty;\nvar __exportAll = (all, no_symbols) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\tif (!no_symbols) __defProp(target, Symbol.toStringTag, { value: \"Module\" });\n\treturn target;\n};\n//#endregion\nexport { __exportAll as t };\n","import { t as __exportAll } from \"./rolldown-runtime-D7D4PA-g.js\";\nimport { Cause, Config, Context, Duration, Effect, Exit, Layer, Option, Redacted, Schema } from \"effect\";\nimport { FetchHttpClient, HttpClient, HttpClientRequest } from \"effect/http\";\nimport { readFile } from \"node:fs/promises\";\nimport { Type } from \"typebox\";\n//#region src/errors.ts\n/** The Executor connection settings are missing or unreadable. */\nvar ExecutorConfigError = class extends Schema.TaggedError()(\"ExecutorConfigError\", { message: Schema.String }) {};\n/**\n* An Executor HTTP call failed before a decodable response arrived: transport\n* failure, timeout, or a non-2xx status. `body` holds the server's error\n* payload when there was one (Executor errors are tagged JSON such as\n* `{\"_tag\":\"ApprovalExpiredError\",...}`).\n*/\nvar ExecutorRequestError = class extends Schema.TaggedError()(\"ExecutorRequestError\", {\n\tmethod: Schema.String,\n\tpath: Schema.String,\n\tstatus: Schema.optional(Schema.Number),\n\tbody: Schema.optional(Schema.String),\n\tmessage: Schema.String\n}) {};\n/** Executor answered 2xx with a payload this package does not understand. */\nvar ExecutorDecodeError = class extends Schema.TaggedError()(\"ExecutorDecodeError\", {\n\tpath: Schema.String,\n\tmessage: Schema.String\n}) {};\n/** An execution kept pausing past the resume budget for one tool call. */\nvar ExecutorResumeLimitError = class extends Schema.TaggedError()(\"ExecutorResumeLimitError\", {\n\texecutionId: Schema.String,\n\tresumes: Schema.Number\n}) {\n\tget message() {\n\t\treturn `Execution ${this.executionId} was still paused after ${this.resumes} approvals.`;\n\t}\n};\n/** The approval policy threw while answering a paused execution. */\nvar ExecutorApprovalError = class extends Schema.TaggedError()(\"ExecutorApprovalError\", {\n\texecutionId: Schema.String,\n\taddress: Schema.String,\n\tcause: Schema.Defect()\n}) {\n\tget message() {\n\t\treturn `Approval policy failed for ${this.address} (execution ${this.executionId}): ${String(this.cause)}`;\n\t}\n};\n//#endregion\n//#region src/schemas.ts\n/** One hit from `GET /api/semantic-search/search`. `path` is callable as `tools.<path>`. */\nconst SearchItem = Schema.Struct({\n\tpath: Schema.String,\n\tname: Schema.String,\n\tdescription: Schema.optional(Schema.String),\n\tintegration: Schema.String,\n\tscore: Schema.Number\n});\nconst SearchResponse = Schema.Struct({ items: Schema.Array(SearchItem) });\n/** The fields of `GET /api/tools/schema` this package reads. */\nconst ToolSchemaView = Schema.Struct({\n\taddress: Schema.String,\n\tname: Schema.optional(Schema.String),\n\tdescription: Schema.optional(Schema.String),\n\tinputTypeScript: Schema.optional(Schema.String),\n\toutputTypeScript: Schema.optional(Schema.String),\n\ttypeScriptDefinitions: Schema.optional(Schema.Record(Schema.String, Schema.String))\n});\n/**\n* One tool call made by an execution. Optional on the wire until the Executor\n* fork reports it on completed executions.\n*/\nconst ToolCall = Schema.Struct({\n\tpath: Schema.String,\n\tisError: Schema.Boolean,\n\tdurationMs: Schema.optional(Schema.Number)\n});\n/** `structured` of a completed execution, by outcome. */\nconst CompletedOutcome = Schema.Union([\n\tSchema.Struct({\n\t\tstatus: Schema.Literal(\"completed\"),\n\t\tresult: Schema.Unknown,\n\t\ttoolName: Schema.optional(Schema.String),\n\t\temitted: Schema.optional(Schema.Number),\n\t\tlogs: Schema.Array(Schema.String)\n\t}),\n\tSchema.Struct({\n\t\tstatus: Schema.Literal(\"error\"),\n\t\terror: Schema.String,\n\t\temitted: Schema.optional(Schema.Number),\n\t\tlogs: Schema.Array(Schema.String)\n\t}),\n\tSchema.Struct({\n\t\tstatus: Schema.Literal(\"declined\"),\n\t\texecutionId: Schema.String,\n\t\taddress: Schema.String\n\t})\n]);\nconst CompletedExecution = Schema.Struct({\n\tstatus: Schema.Literal(\"completed\"),\n\ttext: Schema.String,\n\tstructured: CompletedOutcome,\n\tisError: Schema.Boolean,\n\ttoolCalls: Schema.optional(Schema.Array(ToolCall))\n});\n/** What a paused execution is waiting for. */\nconst Interaction = Schema.Struct({\n\tkind: Schema.Literals([\"url\", \"form\"]),\n\tmessage: Schema.String,\n\tinstructions: Schema.String,\n\taddress: Schema.String,\n\targs: Schema.Unknown,\n\turl: Schema.optional(Schema.String),\n\trequestedSchema: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),\n\tmeta: Schema.optional(Schema.Record(Schema.String, Schema.Unknown))\n});\nconst PausedExecution = Schema.Struct({\n\tstatus: Schema.Literal(\"paused\"),\n\ttext: Schema.String,\n\tstructured: Schema.Struct({\n\t\tstatus: Schema.Literal(\"waiting_for_interaction\"),\n\t\texecutionId: Schema.String,\n\t\texpiresAt: Schema.optional(Schema.String),\n\t\tinteraction: Interaction\n\t})\n});\n/** `POST /api/executions` and `POST /api/executions/:id/resume`. */\nconst ExecutionResponse = Schema.Union([CompletedExecution, PausedExecution]);\nSchema.Literals([\n\t\"accept\",\n\t\"decline\",\n\t\"cancel\"\n]);\n//#endregion\n//#region src/client.ts\nvar client_exports = /* @__PURE__ */ __exportAll({\n\tService: () => Service,\n\tcreate: () => create,\n\tlayer: () => layer,\n\tmake: () => make,\n\toptionsFromEnv: () => optionsFromEnv\n});\nconst READ_TIMEOUT = Duration.seconds(30);\n/** Executions run arbitrary user code against third-party APIs; allow long research calls. */\nconst EXECUTION_TIMEOUT = Duration.minutes(10);\nvar Service = class extends Context.Service()(\"@pi-ext/executor/ExecutorClient\") {};\nconst make = Effect.fn(\"ExecutorClient.make\")(function* (options) {\n\tconst http = yield* HttpClient.HttpClient;\n\tconst baseUrl = options.baseUrl.replace(/\\/+$/, \"\");\n\tconst headers = { accept: \"application/json\" };\n\tif (options.access) {\n\t\theaders[\"CF-Access-Client-Id\"] = options.access.clientId;\n\t\theaders[\"CF-Access-Client-Secret\"] = Redacted.value(options.access.clientSecret);\n\t}\n\tconst base = http.pipe(HttpClient.mapRequest(HttpClientRequest.prependUrl(`${baseUrl}/api`)), HttpClient.mapRequest(HttpClientRequest.setHeaders(headers)));\n\tconst reads = base.pipe(HttpClient.retryTransient({\n\t\tretryOn: \"errors-and-responses\",\n\t\ttimes: 3\n\t}));\n\tconst send = (client, schema, request, timeout) => {\n\t\tconst path = new URL(request.url, \"http://executor\").pathname;\n\t\tconst failed = (fields) => new ExecutorRequestError({\n\t\t\tmethod: request.method,\n\t\t\tpath,\n\t\t\t...fields\n\t\t});\n\t\treturn Effect.gen(function* () {\n\t\t\tconst response = yield* client.execute(request).pipe(Effect.timeoutOption(timeout), Effect.mapError((error) => failed({ message: error.message })), Effect.flatMap(Option.match({\n\t\t\t\tonNone: () => Effect.fail(failed({ message: `timed out after ${Duration.format(timeout)}` })),\n\t\t\t\tonSome: Effect.succeed\n\t\t\t})));\n\t\t\tif (response.status < 200 || response.status >= 300) {\n\t\t\t\tconst body = yield* response.text.pipe(Effect.orElseSucceed(() => \"\"));\n\t\t\t\treturn yield* failed({\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tbody: body || void 0,\n\t\t\t\t\tmessage: `Executor answered ${response.status}`\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst json = yield* response.json.pipe(Effect.mapError((error) => failed({ message: error.message })));\n\t\t\treturn yield* Schema.decodeUnknownEffect(schema)(json).pipe(Effect.mapError((error) => new ExecutorDecodeError({\n\t\t\t\tpath,\n\t\t\t\tmessage: error.message\n\t\t\t})));\n\t\t});\n\t};\n\tconst post = (path, body) => HttpClientRequest.post(path).pipe(HttpClientRequest.bodyJsonUnsafe(body));\n\treturn Service.of({\n\t\tbaseUrl,\n\t\tsearch: Effect.fn(\"ExecutorClient.search\")(function* ({ query, limit }) {\n\t\t\treturn (yield* send(reads, SearchResponse, HttpClientRequest.get(\"/semantic-search/search\", { urlParams: {\n\t\t\t\tq: query,\n\t\t\t\tlimit: String(limit)\n\t\t\t} }), READ_TIMEOUT)).items;\n\t\t}),\n\t\tdescribe: (path) => send(reads, ToolSchemaView, HttpClientRequest.get(\"/tools/schema\", { urlParams: { address: `tools.${path}` } }), READ_TIMEOUT).pipe(Effect.withSpan(\"ExecutorClient.describe\")),\n\t\texecute: (code) => send(base, ExecutionResponse, post(\"/executions\", { code }), EXECUTION_TIMEOUT).pipe(Effect.withSpan(\"ExecutorClient.execute\")),\n\t\tresume: (executionId, answer) => send(base, ExecutionResponse, post(`/executions/${encodeURIComponent(executionId)}/resume`, answer), EXECUTION_TIMEOUT).pipe(Effect.withSpan(\"ExecutorClient.resume\"))\n\t});\n});\nconst layer = (options) => Layer.effect(Service)(make(options)).pipe(Layer.provide(FetchHttpClient.layer));\n/** A client for Promise-based callers; uses the global `fetch`. */\nconst create = (options) => Effect.runSync(make(options).pipe(Effect.provide(FetchHttpClient.layer)));\nconst readSecretFile = (path) => Effect.tryPromise({\n\ttry: () => readFile(path, \"utf8\"),\n\tcatch: (cause) => new ExecutorConfigError({ message: `Could not read ${path}: ${String(cause)}` })\n}).pipe(Effect.map((value) => value.trim()));\n/**\n* Read `Options` from the environment.\n*\n* - `EXECUTOR_BASE_URL` (required)\n* - `EXECUTOR_CLIENT_ID` or `EXECUTOR_CLIENT_ID_FILE`\n* - `EXECUTOR_CLIENT_SECRET` or `EXECUTOR_CLIENT_SECRET_FILE`\n*\n* The Access credentials are all-or-nothing: neither means no Access headers,\n* one without the other is a config error.\n*/\nconst optionsFromEnv = Effect.gen(function* () {\n\tconst env = yield* Config.all({\n\t\tbaseUrl: Config.String(\"EXECUTOR_BASE_URL\"),\n\t\tclientId: Config.option(Config.String(\"EXECUTOR_CLIENT_ID\")),\n\t\tclientIdFile: Config.option(Config.String(\"EXECUTOR_CLIENT_ID_FILE\")),\n\t\tclientSecret: Config.option(Config.Redacted(\"EXECUTOR_CLIENT_SECRET\")),\n\t\tclientSecretFile: Config.option(Config.String(\"EXECUTOR_CLIENT_SECRET_FILE\"))\n\t}).pipe(Effect.mapError((error) => new ExecutorConfigError({ message: error.message })));\n\tconst clientId = Option.isSome(env.clientId) ? Option.some(env.clientId.value) : Option.isSome(env.clientIdFile) ? Option.some(yield* readSecretFile(env.clientIdFile.value)) : Option.none();\n\tconst clientSecret = Option.isSome(env.clientSecret) ? Option.some(env.clientSecret.value) : Option.isSome(env.clientSecretFile) ? Option.some(Redacted.make(yield* readSecretFile(env.clientSecretFile.value))) : Option.none();\n\tif (Option.isSome(clientId) !== Option.isSome(clientSecret)) return yield* new ExecutorConfigError({ message: \"Set both an Executor client id (EXECUTOR_CLIENT_ID[_FILE]) and secret (EXECUTOR_CLIENT_SECRET[_FILE]), or neither.\" });\n\treturn {\n\t\tbaseUrl: env.baseUrl,\n\t\t...Option.isSome(clientId) && Option.isSome(clientSecret) ? { access: {\n\t\t\tclientId: clientId.value,\n\t\t\tclientSecret: clientSecret.value\n\t\t} } : {}\n\t};\n});\n//#endregion\n//#region src/policy.ts\nconst decide = (policy, request) => {\n\tif (typeof policy === \"string\") return Effect.succeed({ action: policy });\n\treturn Effect.tryPromise({\n\t\ttry: () => policy(request),\n\t\tcatch: (cause) => new ExecutorApprovalError({\n\t\t\texecutionId: request.executionId,\n\t\t\taddress: request.address,\n\t\t\tcause\n\t\t})\n\t}).pipe(Effect.map((answer) => typeof answer === \"string\" ? { action: answer } : answer));\n};\n//#endregion\n//#region src/tools.ts\n/** Approvals one `executor_execute` call may answer before it gives up. */\nconst MAX_RESUMES = 20;\nconst DEFAULT_SEARCH_LIMIT = 10;\nconst MAX_SEARCH_LIMIT = 50;\nconst DESCRIBE_CONCURRENCY = 4;\nconst SUMMARY_CHARS = 200;\nconst record = (sink, entry) => {\n\tif (sink === void 0) return;\n\tif (Array.isArray(sink)) sink.push(entry);\n\telse sink(entry);\n};\nconst SearchParams = Type.Object({\n\tquery: Type.String({ description: \"Short intent phrase, such as 'list repository issues' or 'create calendar event'.\" }),\n\tlimit: Type.Optional(Type.Integer({\n\t\tminimum: 1,\n\t\tmaximum: MAX_SEARCH_LIMIT,\n\t\tdescription: `Maximum matches. Defaults to ${DEFAULT_SEARCH_LIMIT}.`\n\t})),\n\tincludeDetails: Type.Optional(Type.Boolean({ description: \"Include each match's TypeScript input and output types. Use before calling an unfamiliar tool.\" }))\n});\nconst SearchHitSchema = Type.Object({\n\tpath: Type.String(),\n\tname: Type.String(),\n\tintegration: Type.String(),\n\tscore: Type.Number(),\n\tdescription: Type.Optional(Type.String()),\n\tinputTypeScript: Type.Optional(Type.String()),\n\toutputTypeScript: Type.Optional(Type.String()),\n\ttypeScriptDefinitions: Type.Optional(Type.Record(Type.String(), Type.String()))\n});\nconst SearchOutput = Type.Object({ items: Type.Array(SearchHitSchema) });\nconst SEARCH_TOOL = {\n\tname: \"executor_search\",\n\tlabel: \"Executor search\",\n\tdescription: [\n\t\t\"Search the Executor tool catalog (connected APIs such as GitHub, Google, Linear) by intent.\",\n\t\t\"Returns callable paths for executor_execute code, e.g. tools.github_api.org.acme.issues.listForRepo.\",\n\t\t\"Set includeDetails to get TypeScript input/output types before calling an unfamiliar tool.\",\n\t\t\"Does not call any tool.\"\n\t].join(\" \")\n};\n/**\n* Keep only the named definitions the input and output types reach, so a\n* detail request does not dump a whole API's type catalog.\n*/\nconst reachableDefinitions = (roots, definitions) => {\n\tconst reached = {};\n\tconst pending = [...roots];\n\twhile (pending.length > 0) {\n\t\tconst source = pending.pop() ?? \"\";\n\t\tfor (const [name, body] of Object.entries(definitions)) {\n\t\t\tif (name in reached || !new RegExp(`\\\\b${name.replace(/[$]/g, \"\\\\$\")}\\\\b`).test(source)) continue;\n\t\t\treached[name] = body;\n\t\t\tpending.push(body);\n\t\t}\n\t}\n\treturn reached;\n};\nconst summary = (description) => {\n\tif (!description) return void 0;\n\tconst paragraph = (description.split(/\\n\\s*\\n/).find((part) => part.trim()) ?? description).replace(/\\s+/g, \" \").trim();\n\treturn paragraph.length <= SUMMARY_CHARS ? paragraph : `${paragraph.slice(0, 199)}…`;\n};\nconst searchText = (items) => {\n\tif (items.length === 0) return \"No matching Executor tools. Try a broader or differently worded query.\";\n\tconst lines = [`${items.length} match${items.length === 1 ? \"\" : \"es\"}. Call inside executor_execute as tools.<path>(input).`];\n\tconst definitions = /* @__PURE__ */ new Map();\n\tfor (const item of items) {\n\t\tconst description = summary(item.description);\n\t\tlines.push(\"\", `tools.${item.path}${description ? ` — ${description}` : \"\"}`);\n\t\tif (item.inputTypeScript) lines.push(` input: ${item.inputTypeScript}`);\n\t\tif (item.outputTypeScript) lines.push(` output: ${item.outputTypeScript}`);\n\t\tfor (const [name, body] of Object.entries(item.typeScriptDefinitions ?? {})) definitions.set(name, body);\n\t}\n\tif (definitions.size > 0) {\n\t\tlines.push(\"\", \"Types:\");\n\t\tfor (const [name, body] of definitions) lines.push(`type ${name} = ${body}`);\n\t}\n\treturn lines.join(\"\\n\");\n};\nconst search = (client, params) => Effect.gen(function* () {\n\tconst items = yield* client.search({\n\t\tquery: params.query,\n\t\tlimit: params.limit ?? DEFAULT_SEARCH_LIMIT\n\t});\n\tif (!params.includeDetails) return items;\n\treturn yield* Effect.forEach(items, (item) => client.describe(item.path).pipe(Effect.map((view) => {\n\t\tconst roots = [view.inputTypeScript ?? \"\", view.outputTypeScript ?? \"\"];\n\t\tconst definitions = reachableDefinitions(roots, view.typeScriptDefinitions ?? {});\n\t\treturn {\n\t\t\t...item,\n\t\t\t...view.inputTypeScript === void 0 ? {} : { inputTypeScript: view.inputTypeScript },\n\t\t\t...view.outputTypeScript === void 0 ? {} : { outputTypeScript: view.outputTypeScript },\n\t\t\t...Object.keys(definitions).length === 0 ? {} : { typeScriptDefinitions: definitions }\n\t\t};\n\t})), { concurrency: DESCRIBE_CONCURRENCY });\n});\nconst ExecuteParams = Type.Object({ code: Type.String({ description: \"TypeScript to run in Executor's sandbox. Call tools as `await tools.<path>(input)` and end with a top-level `return`.\" }) });\nconst EXECUTE_TOOL = {\n\tname: \"executor_execute\",\n\tlabel: \"Executor execute\",\n\tdescription: [\n\t\t\"Run a TypeScript snippet in Executor's server-side sandbox against connected tools (third-party APIs with stored credentials).\",\n\t\t\"Find tool paths with executor_search first; call them by full path, e.g. `await tools.github_api.org.acme.issues.listForRepo({ owner, repo })`.\",\n\t\t\"A tool call resolves to `{ ok, data, error?, http }`: check `ok` and read `data`.\",\n\t\t\"Use a top-level `return` for the value you need; a bare final expression returns nothing. `console.log` output comes back as logs.\",\n\t\t\"Return compact structured JSON: select the fields you need rather than whole API responses.\",\n\t\t\"There is no `fetch` or network access; only `tools.*`.\",\n\t\t\"Some calls need approval; denied approvals surface as tool errors.\"\n\t].join(\" \")\n};\n/**\n* Run code and answer every pause through `policy` until it completes.\n* `approvals` receives each answer as it is given, so a caller can still\n* report them when a later resume fails.\n*/\nconst execute = (client, code, policy, approvals = []) => Effect.gen(function* () {\n\tlet response = yield* client.execute(code);\n\twhile (response.status === \"paused\") {\n\t\tconst { executionId, expiresAt, interaction } = response.structured;\n\t\tif (approvals.length >= MAX_RESUMES) return yield* new ExecutorResumeLimitError({\n\t\t\texecutionId,\n\t\t\tresumes: approvals.length\n\t\t});\n\t\tconst answer = yield* decide(policy, {\n\t\t\t...interaction,\n\t\t\texecutionId,\n\t\t\t...expiresAt === void 0 ? {} : { expiresAt }\n\t\t});\n\t\tapprovals.push({\n\t\t\taddress: interaction.address,\n\t\t\tkind: interaction.kind,\n\t\t\tmessage: interaction.message,\n\t\t\taction: answer.action\n\t\t});\n\t\tresponse = yield* client.resume(executionId, answer);\n\t}\n\treturn {\n\t\texecution: response,\n\t\tapprovals\n\t};\n});\nconst outcomeValue = (outcome) => {\n\tswitch (outcome.status) {\n\t\tcase \"completed\": return outcome.result;\n\t\tcase \"error\": return outcome.error;\n\t\tcase \"declined\": return outcome;\n\t}\n};\nconst executeText = ({ approvals, text }) => {\n\tconst answered = approvals.map((approval) => `Approval ${approval.action}: ${approval.address} — ${approval.message}`);\n\treturn answered.length === 0 ? text : [\n\t\t...answered,\n\t\t\"\",\n\t\ttext\n\t].join(\"\\n\");\n};\nconst failureText = (cause) => {\n\tconst error = Cause.findErrorOption(cause);\n\treturn Option.isSome(error) ? error.value.message : Cause.pretty(cause);\n};\n/** Run one search, record it, and shape the agent result. */\nconst runSearch = async (options, params, signal) => {\n\tconst started = performance.now();\n\tconst exit = await Effect.runPromiseExit(search(options.client, params), { signal });\n\tconst durationMs = Math.round(performance.now() - started);\n\tif (Exit.isSuccess(exit)) {\n\t\tconst items = exit.value;\n\t\trecord(options.trace, {\n\t\t\tkind: \"search\",\n\t\t\tquery: params.query,\n\t\t\tresult: items,\n\t\t\tisError: false,\n\t\t\tdurationMs\n\t\t});\n\t\treturn {\n\t\t\tcontent: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: searchText(items)\n\t\t\t}],\n\t\t\tdetails: { items },\n\t\t\tstructuredContent: { items: items.map((item) => ({ ...item })) }\n\t\t};\n\t}\n\tconst message = failureText(exit.cause);\n\trecord(options.trace, {\n\t\tkind: \"search\",\n\t\tquery: params.query,\n\t\tresult: message,\n\t\tisError: true,\n\t\tdurationMs\n\t});\n\treturn {\n\t\tcontent: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: `Executor search failed: ${message}`\n\t\t}],\n\t\tdetails: { items: [] },\n\t\tisError: true\n\t};\n};\n/** Run one execution under a policy, record it, and shape the agent result. */\nconst runExecute = async (options, params, signal) => {\n\tconst started = performance.now();\n\tconst answered = [];\n\tconst exit = await Effect.runPromiseExit(execute(options.client, params.code, options.policy, answered), { signal });\n\tconst durationMs = Math.round(performance.now() - started);\n\tif (Exit.isSuccess(exit)) {\n\t\tconst { execution, approvals } = exit.value;\n\t\trecord(options.trace, {\n\t\t\tkind: \"execute\",\n\t\t\tcode: params.code,\n\t\t\tresult: outcomeValue(execution.structured),\n\t\t\tisError: execution.isError,\n\t\t\t...execution.toolCalls === void 0 ? {} : { toolCalls: execution.toolCalls },\n\t\t\tapprovals,\n\t\t\tdurationMs\n\t\t});\n\t\treturn {\n\t\t\tcontent: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: executeText({\n\t\t\t\t\tapprovals,\n\t\t\t\t\ttext: execution.text\n\t\t\t\t})\n\t\t\t}],\n\t\t\tdetails: {\n\t\t\t\toutcome: execution.structured,\n\t\t\t\tapprovals,\n\t\t\t\t...execution.toolCalls === void 0 ? {} : { toolCalls: execution.toolCalls }\n\t\t\t},\n\t\t\tisError: execution.isError\n\t\t};\n\t}\n\tconst message = failureText(exit.cause);\n\trecord(options.trace, {\n\t\tkind: \"execute\",\n\t\tcode: params.code,\n\t\tresult: message,\n\t\tisError: true,\n\t\tapprovals: answered,\n\t\tdurationMs\n\t});\n\treturn {\n\t\tcontent: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: executeText({\n\t\t\t\tapprovals: answered,\n\t\t\t\ttext: `Executor execution failed: ${message}`\n\t\t\t})\n\t\t}],\n\t\tdetails: { approvals: answered },\n\t\tisError: true\n\t};\n};\n/** The Executor tools for a pi-agent-core `Agent`. */\nconst executorTools = (options) => [{\n\t...SEARCH_TOOL,\n\tparameters: SearchParams,\n\toutputSchema: SearchOutput,\n\treplay: \"safe\",\n\texecutionMode: \"parallel\",\n\texecute: (_toolCallId, params, signal) => runSearch(options, params, signal)\n}, {\n\t...EXECUTE_TOOL,\n\tparameters: ExecuteParams,\n\treplay: \"never\",\n\texecute: (_toolCallId, params, signal) => runExecute(options, params, signal)\n}];\n//#endregion\nexport { SearchParams as a, runSearch as c, optionsFromEnv as d, ExecutorApprovalError as f, ExecutorResumeLimitError as g, ExecutorRequestError as h, SearchOutput as i, client_exports as l, ExecutorDecodeError as m, ExecuteParams as n, executorTools as o, ExecutorConfigError as p, SEARCH_TOOL as r, runExecute as s, EXECUTE_TOOL as t, create as u };\n","import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { ExecutorClient, executorTools, type ExecutorTraceRecord } from \"@pi-ext/executor\";\nimport { ConfigProvider, Effect } from \"effect\";\nimport type { ExecutorEvidence, ExecutorEvidenceRecord } from \"./model\";\n\nexport type { ExecutorTraceRecord };\n\nexport interface ExecutorToolset {\n readonly tools: AgentTool[];\n readonly trace: ExecutorTraceRecord[];\n}\n\n// Evidence is a provider call that succeeded. A completed script can still contain failed calls,\n// and an execution without a call report proves nothing.\nconst executionEvidence = (record: Extract<ExecutorTraceRecord, { kind: \"execute\" }>): ExecutorEvidenceRecord | undefined => {\n if (record.isError) return undefined;\n const succeeded = (record.toolCalls ?? []).filter((call) => !call.isError).map((call) => call.path);\n if (succeeded.length === 0) return undefined;\n return { tool: succeeded.join(\", \"), input: { code: record.code }, output: record.result };\n};\n\nexport const executorEvidence = (trace: ReadonlyArray<ExecutorTraceRecord>): ExecutorEvidence => ({\n searches: trace.flatMap((record) => record.kind === \"search\"\n ? [{ tool: \"executor_search\", input: { query: record.query }, output: record.result }]\n : []),\n calls: trace.flatMap((record) => {\n if (record.kind !== \"execute\") return [];\n const evidence = executionEvidence(record);\n return evidence ? [evidence] : [];\n }),\n});\n\n/** Connects to the Executor named by `EXECUTOR_BASE_URL` (and Cloudflare Access credentials, when set). */\nexport const createExecutorToolset = async (options: { readonly policy: \"decline\" }): Promise<ExecutorToolset> => {\n // Effect caches its default environment provider on first read; read the environment as it is now.\n const config = ExecutorClient.optionsFromEnv.pipe(Effect.provideService(ConfigProvider.ConfigProvider, ConfigProvider.fromEnv()));\n const client = ExecutorClient.create(await Effect.runPromise(config));\n const trace: ExecutorTraceRecord[] = [];\n return { tools: executorTools({ client, policy: options.policy, trace }), trace };\n};\n","import { lstat, mkdir, open, readFile, readdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, relative, resolve, sep } from \"node:path\";\n\nimport type { AgentOptions, AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Type } from \"@earendil-works/pi-ai\";\n\nconst MAX_FILE_BYTES = 64 * 1024;\nconst MAX_ENTRIES = 500;\nconst MAX_MATCHES = 200;\nconst MAX_OUTPUT_CHARACTERS = 32 * 1024;\nconst repositoryToolNames = new Set([\"read_file\", \"list_files\", \"search_text\"]);\nconst writeToolNames = new Set([\"write_file\", \"edit_file\"]);\n\nexport interface RepositoryWriteOptions {\n readonly presetDirectory: string;\n readonly runsDirectory: string;\n}\n\nconst missingPath = (cause: unknown): boolean => cause instanceof Error && \"code\" in cause && cause.code === \"ENOENT\";\n\n// Missing leaves retain the real target of their existing ancestor; dangling symlinks are rejected.\nconst resolveWritablePath = async (path: string): Promise<string> => {\n let ancestor = path;\n const suffix: string[] = [];\n while (true) {\n try { return resolve(await realpath(ancestor), ...suffix); }\n catch (cause) {\n if (!missingPath(cause)) throw cause;\n try {\n if ((await lstat(ancestor)).isSymbolicLink()) throw new Error(`Repository path has a dangling symlink: ${path}`);\n } catch (statCause) { if (!missingPath(statCause)) throw statCause; }\n const parent = dirname(ancestor);\n if (parent === ancestor) throw cause;\n suffix.unshift(relative(parent, ancestor));\n ancestor = parent;\n }\n }\n};\n\nconst writableRepositoryPath = async (root: string, path: string, options: RepositoryWriteOptions): Promise<string> => {\n const projectRoot = await realpath(root);\n const requested = resolve(projectRoot, path);\n if (!insideRoot(projectRoot, requested)) throw new Error(`Repository path escapes project root: ${path}`);\n const resolved = await resolveWritablePath(requested);\n if (!insideRoot(projectRoot, resolved)) throw new Error(`Repository path escapes project root through a symlink: ${path}`);\n if ([requested, resolved].some((target) => relative(projectRoot, target).split(sep).some((part) => part === \".git\" || part === \"node_modules\"))) {\n throw new Error(`Repository write targets a protected directory: ${path}`);\n }\n const forbidden = [resolve(projectRoot, \".git\"), resolve(projectRoot, \"node_modules\"),\n resolve(projectRoot, options.runsDirectory), resolve(projectRoot, options.presetDirectory)];\n for (const directory of forbidden) {\n const actual = await resolveWritablePath(directory);\n if (insideRoot(directory, requested) || insideRoot(actual, resolved)) throw new Error(`Repository write targets a protected directory: ${path}`);\n }\n // A hard link passes the path checks but writing through it changes every linked copy, which may live outside the project.\n const existing = await lstat(resolved).catch((error: unknown) => {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") return undefined;\n throw error;\n });\n if (existing !== undefined && existing.nlink > 1) throw new Error(`Repository write targets a hard-linked file: ${path}`);\n return resolved;\n};\n\nconst insideRoot = (root: string, path: string): boolean => {\n const pathFromRoot = relative(root, path);\n return pathFromRoot !== \"..\" && !pathFromRoot.startsWith(`..${sep}`) && !isAbsolute(pathFromRoot);\n};\n\nconst repositoryPath = async (root: string, path: string): Promise<string> => {\n const projectRoot = await realpath(root);\n const requested = resolve(projectRoot, path);\n if (!insideRoot(projectRoot, requested) && !insideRoot(resolve(root), requested)) {\n throw new Error(`Repository path escapes project root: ${path}`);\n }\n const resolved = await realpath(requested);\n if (!insideRoot(projectRoot, resolved)) throw new Error(`Repository path escapes project root through a symlink: ${path}`);\n return resolved;\n};\n\nconst pathArgument = (args: unknown): string => {\n if (typeof args !== \"object\" || args === null || !(\"path\" in args) || typeof args.path !== \"string\") {\n throw new Error(\"Repository tools require a string path\");\n }\n return args.path;\n};\n\nexport const guardRepositoryToolCall = (root: string, writeOptions?: RepositoryWriteOptions): AgentOptions[\"beforeToolCall\"] => async ({ toolCall, args }, signal) => {\n if (!repositoryToolNames.has(toolCall.name) && !writeToolNames.has(toolCall.name)) return undefined;\n try {\n signal?.throwIfAborted();\n if (writeToolNames.has(toolCall.name)) {\n if (!writeOptions) throw new Error(\"Repository writes are unavailable in this workflow phase\");\n await writableRepositoryPath(root, pathArgument(args), writeOptions);\n } else await repositoryPath(root, pathArgument(args));\n return undefined;\n } catch (error) {\n return { block: true, reason: error instanceof Error ? error.message : String(error) };\n }\n};\n\nconst readBoundedFile = async (path: string, signal?: AbortSignal): Promise<string> => {\n signal?.throwIfAborted();\n const file = await open(path, \"r\");\n try {\n if (!(await file.stat()).isFile()) throw new Error(`Repository path is not a regular file: ${path}`);\n const buffer = Buffer.alloc(MAX_FILE_BYTES + 1);\n const { bytesRead } = await file.read(buffer, 0, buffer.length, 0);\n signal?.throwIfAborted();\n return buffer.subarray(0, Math.min(bytesRead, MAX_FILE_BYTES)).toString(\"utf8\") +\n (bytesRead > MAX_FILE_BYTES ? \"\\n[File truncated at 64 KiB]\" : \"\");\n } finally {\n await file.close();\n }\n};\n\nconst result = (text: string) => ({ content: [{ type: \"text\" as const, text }], details: undefined });\n\n// Symlinks are never traversed during discovery; explicit reads still validate their real target.\nconst discoverFiles = async (root: string, directory: string, recursive: boolean, signal?: AbortSignal): Promise<Array<string>> => {\n const files: Array<string> = [];\n const pending = [directory];\n let inspected = 0;\n while (pending.length > 0 && inspected < MAX_ENTRIES) {\n signal?.throwIfAborted();\n const next = pending.shift()!;\n const entries = (await readdir(await repositoryPath(root, next), { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name));\n for (const entry of entries) {\n if (++inspected > MAX_ENTRIES) break;\n const path = resolve(next, entry.name);\n if (entry.isFile()) files.push(path);\n else if (entry.isDirectory() && recursive && entry.name !== \".git\" && entry.name !== \"node_modules\") pending.push(path);\n }\n }\n return files;\n};\n\nexport const createRepositoryTools = (root: string): AgentTool[] => [\n {\n name: \"read_file\",\n label: \"Read repository file\",\n description: \"Read a UTF-8 file within the project root, limited to 64 KiB.\",\n parameters: Type.Object({ path: Type.String() }),\n execute: async (_id, args, signal) => result(await readBoundedFile(await repositoryPath(root, pathArgument(args)), signal)),\n },\n {\n name: \"list_files\",\n label: \"List repository files\",\n description: \"List files within a project directory, inspecting at most 500 entries. Symlinks are skipped.\",\n parameters: Type.Object({ path: Type.String(), recursive: Type.Optional(Type.Boolean()) }),\n execute: async (_id, args, signal) => {\n const path = pathArgument(args);\n const recursive = typeof args === \"object\" && args !== null && \"recursive\" in args ? args.recursive : false;\n if (typeof recursive !== \"boolean\") throw new Error(\"list_files recursive must be a boolean\");\n const projectRoot = await realpath(root);\n const directory = await repositoryPath(root, path);\n const files = await discoverFiles(root, directory, recursive, signal);\n return result(files.map((file) => relative(projectRoot, file)).join(\"\\n\").slice(0, MAX_OUTPUT_CHARACTERS));\n },\n },\n {\n name: \"search_text\",\n label: \"Search repository text\",\n description: \"Find literal text in project files, inspecting at most 500 entries and 64 KiB per file, with at most 200 matches.\",\n parameters: Type.Object({ path: Type.String(), text: Type.String({ minLength: 1 }) }),\n execute: async (_id, args, signal) => {\n const path = pathArgument(args);\n const text = typeof args === \"object\" && args !== null && \"text\" in args ? args.text : undefined;\n if (typeof text !== \"string\" || text.length === 0) throw new Error(\"search_text requires nonempty literal text\");\n const projectRoot = await realpath(root);\n const directory = await repositoryPath(root, path);\n const files = await discoverFiles(root, directory, true, signal);\n const matches: Array<string> = [];\n for (const file of files) {\n const content = await readBoundedFile(await repositoryPath(root, file), signal);\n if (content.includes(\"\\0\")) continue;\n for (const [index, line] of content.split(\"\\n\").entries()) {\n if (line.includes(text)) matches.push(`${relative(projectRoot, file)}:${index + 1}:${line}`);\n if (matches.length >= MAX_MATCHES) break;\n }\n if (matches.length >= MAX_MATCHES) break;\n }\n return result(matches.join(\"\\n\").slice(0, MAX_OUTPUT_CHARACTERS));\n },\n },\n];\n\nconst stringArgument = (args: unknown, key: string): string => {\n if (typeof args !== \"object\" || args === null || !(key in args) || typeof Reflect.get(args, key) !== \"string\") {\n throw new Error(`Repository tools require a string ${key}`);\n }\n return Reflect.get(args, key);\n};\n\nexport const createRepositoryWriteTools = (root: string, options: RepositoryWriteOptions): AgentTool[] => [\n {\n name: \"write_file\", label: \"Write repository file\",\n description: \"Create or overwrite a UTF-8 repository file. Protected directories and symlink escapes are blocked.\",\n parameters: Type.Object({ path: Type.String(), content: Type.String() }),\n execute: async (_id, args, signal) => {\n signal?.throwIfAborted();\n const requested = pathArgument(args);\n const path = await writableRepositoryPath(root, requested, options);\n await mkdir(dirname(path), { recursive: true });\n signal?.throwIfAborted();\n await writeFile(await writableRepositoryPath(root, pathArgument(args), options), stringArgument(args, \"content\"), \"utf8\");\n return result(`Wrote ${pathArgument(args)}`);\n },\n },\n {\n name: \"edit_file\", label: \"Edit repository file\",\n description: \"Replace exact text in a UTF-8 repository file. oldText must match exactly one region; protected directories and symlink escapes are blocked.\",\n parameters: Type.Object({ path: Type.String(), oldText: Type.String({ minLength: 1 }), newText: Type.String() }),\n execute: async (_id, args, signal) => {\n signal?.throwIfAborted();\n const oldText = stringArgument(args, \"oldText\");\n const newText = stringArgument(args, \"newText\");\n if (oldText.length === 0) throw new Error(\"edit_file oldText must be nonempty\");\n const requested = pathArgument(args);\n const path = await writableRepositoryPath(root, requested, options);\n const content = await readFile(path, \"utf8\");\n const index = content.indexOf(oldText);\n if (index < 0 || content.indexOf(oldText, index + 1) >= 0) throw new Error(\"edit_file oldText must match exactly once\");\n signal?.throwIfAborted();\n await writeFile(await writableRepositoryPath(root, pathArgument(args), options), content.slice(0, index) + newText + content.slice(index + oldText.length), \"utf8\");\n return result(`Edited ${pathArgument(args)}`);\n },\n },\n];\n","import { Agent, type AgentMessage, type AgentOptions, type AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { Type, type Model, type Usage } from \"@earendil-works/pi-ai\";\nimport { findEnvKeys, getEnvApiKey, streamSimple } from \"@earendil-works/pi-ai/compat\";\nimport { builtinModels } from \"@earendil-works/pi-ai/providers/all\";\nimport { readFile } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport type { SeoWorkflowAgentConfig } from \"../config\";\nimport { createExecutorToolset, executorEvidence, type ExecutorToolset } from \"./executor\";\nimport { createRepositoryTools, createRepositoryWriteTools, guardRepositoryToolCall } from \"./repository-tools\";\nimport type { RunnerResult, WorkflowRunner } from \"./runner\";\nimport type { AnyWorkflowSpec } from \"./specs/types\";\nimport { actionStateJsonSchema, decodeActionState, decodeResearchState, normalizeResearchState } from \"./state\";\n\nconst MAX_REJECTED_SUBMISSIONS = 3;\n\nexport const composeSystemPrompt = async (directory: string, spec: AnyWorkflowSpec): Promise<string> => {\n const paths = [\"agents/seo.md\", \"AGENTS.md\", ...spec.skills.flatMap((skill) => [\n `skills/${skill}/SKILL.md`, `skills/${skill}/references/executor.md`,\n ])];\n return (await Promise.all(paths.map(async (path) => {\n const file = resolve(directory, path);\n try { return await readFile(file, \"utf8\"); }\n catch (cause) { throw new Error(`Could not read workflow preset file: ${file}`, { cause }); }\n }))).join(\"\\n\\n\") + \"\\n\\nSubmit the final structured state with submit_result. Research tools are read-only.\";\n};\n\nexport const totalUsage = (messages: ReadonlyArray<AgentMessage>): Usage => {\n const total: Usage = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } };\n for (const message of messages) {\n if (message.role !== \"assistant\") continue;\n for (const key of [\"input\", \"output\", \"cacheRead\", \"cacheWrite\", \"totalTokens\"] as const) total[key] += message.usage[key];\n for (const key of [\"input\", \"output\", \"cacheRead\", \"cacheWrite\", \"total\"] as const) total.cost[key] += message.usage.cost[key];\n }\n return total;\n};\n\nexport class WorkflowRunnerError extends Error {\n constructor(message: string, readonly result: Omit<RunnerResult, \"state\">, options?: ErrorOptions) {\n super(message, options);\n }\n}\n\nexport interface PiRunnerOptions {\n readonly root: string;\n readonly presetDirectory: string;\n readonly model: Model<string>;\n readonly limit: number;\n readonly executor: ExecutorToolset;\n readonly streamFn?: AgentOptions[\"streamFn\"];\n readonly runsDirectory?: string;\n readonly additionalTools?: ReadonlyArray<AgentTool>;\n}\n\nexport const createPiRunner = (options: PiRunnerOptions): WorkflowRunner => {\n let agent: Agent | undefined;\n let researched = false;\n const phase = async (spec: AnyWorkflowSpec, prompt: string, signal: AbortSignal, mode?: \"write\" | \"dry-run\"): Promise<RunnerResult> => {\n const assertDeadline = (messages: ReadonlyArray<AgentMessage> = []): void => {\n if (signal.aborted) throw new WorkflowRunnerError(`Workflow deadline exceeded or run aborted: ${String(signal.reason)}`, {\n messages, usage: totalUsage(messages), executor: executorEvidence(options.executor.trace),\n }, { cause: signal.reason });\n };\n assertDeadline(agent?.state.messages);\n if (mode !== undefined && !researched) throw new Error(\"Workflow action requires a completed research conversation\");\n const systemPrompt = mode === undefined ? await composeSystemPrompt(options.presetDirectory, spec) : undefined;\n assertDeadline();\n let state: unknown;\n let submitted = false;\n let rejected = 0;\n let lastIssues = \"No structured result was submitted.\";\n const rawSubmissions = new Map<string, unknown>();\n const submit: AgentTool = {\n name: \"submit_result\", label: \"Submit workflow result\", description: \"Validate and submit the final workflow state after collecting Executor evidence.\",\n parameters: Type.Unsafe(mode === undefined ? spec.stateJsonSchema : actionStateJsonSchema),\n prepareArguments: (args) => mode === undefined ? normalizeResearchState(args, options.limit) : args,\n execute: async (_id, params) => {\n try {\n const decoded = mode === undefined ? decodeResearchState(spec, rawSubmissions.get(_id) ?? params, options.limit)\n : decodeActionState(rawSubmissions.get(_id) ?? params);\n const evidence = executorEvidence(options.executor.trace);\n if (mode === undefined && (evidence.searches.length === 0 || evidence.calls.length === 0)) {\n throw new Error([\n `Your research returned without completed Executor provider evidence (searches: ${evidence.searches.length}, calls: ${evidence.calls.length}).`,\n \"Catalog searches and schema discovery alone do not satisfy this workflow.\",\n \"Use the catalog results already collected, inspect the exact discovered tool schema, and complete at least one relevant read-only provider call before submitting the original workflow state.\",\n \"Preserve provider errors and empty datasets honestly; do not invent evidence or mutate provider state.\",\n ].join(\" \"));\n }\n state = decoded;\n submitted = true;\n return { content: [{ type: \"text\", text: \"Workflow result accepted.\" }], details: undefined, terminate: true };\n } catch (cause) {\n lastIssues = cause instanceof Error ? cause.message : String(cause);\n return { content: [{ type: \"text\", text: lastIssues }], details: undefined, isError: true,\n terminate: rejected + 1 >= MAX_REJECTED_SUBMISSIONS };\n }\n },\n };\n const writeOptions = { presetDirectory: options.presetDirectory, runsDirectory: options.runsDirectory ?? resolve(options.root, \".pagegraph/runs\") };\n const tools = [...options.executor.tools, ...createRepositoryTools(options.root), ...(options.additionalTools ?? []),\n ...(mode === \"write\" ? createRepositoryWriteTools(options.root, writeOptions) : []), submit];\n if (systemPrompt !== undefined) {\n researched = false;\n agent = new Agent({\n initialState: { systemPrompt, model: options.model, tools },\n streamFn: options.streamFn ?? streamSimple,\n getApiKey: getEnvApiKey,\n toolExecution: \"sequential\",\n });\n }\n if (!agent) throw new Error(\"Workflow action requires a research conversation\");\n agent.state.tools = tools;\n agent.beforeToolCall = async (context, signal) => {\n if (submitted || rejected >= MAX_REJECTED_SUBMISSIONS) return { block: true, reason: \"Workflow submission is closed.\", terminate: true };\n if (context.toolCall.name === \"submit_result\") rawSubmissions.set(context.toolCall.id, context.toolCall.arguments);\n return guardRepositoryToolCall(options.root, mode === \"write\" ? writeOptions : undefined)?.(context, signal);\n };\n agent.finishTurn = () => submitted || rejected >= MAX_REJECTED_SUBMISSIONS ? { action: \"end\" } : undefined;\n const current = agent;\n // Parameter validation can reject before execute; sequential result events count every submission.\n const unsubscribe = current.subscribe((event) => {\n if (event.type !== \"message_end\" || event.message.role !== \"toolResult\" || event.message.toolName !== \"submit_result\" || !event.message.isError) return;\n rejected++;\n lastIssues = event.message.content.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\\n\");\n if (rejected >= MAX_REJECTED_SUBMISSIONS) current.abort();\n });\n const abort = () => current.abort();\n signal.addEventListener(\"abort\", abort, { once: true });\n try {\n assertDeadline(current.state.messages);\n await current.prompt(prompt);\n const result = { messages: current.state.messages, usage: totalUsage(current.state.messages), executor: executorEvidence(options.executor.trace) };\n if (signal.aborted) throw new WorkflowRunnerError(`Workflow deadline exceeded or run aborted: ${String(signal.reason)}`, result, { cause: signal.reason });\n if (!submitted) throw new WorkflowRunnerError(`Workflow result rejected: ${lastIssues}${current.state.errorMessage ? `\\n${current.state.errorMessage}` : \"\"}`, result);\n if (mode === undefined) researched = true;\n return { ...result, state };\n } finally { signal.removeEventListener(\"abort\", abort); unsubscribe(); }\n };\n return {\n model: { provider: options.model.provider, id: options.model.id },\n research: (spec, prompt, { signal }) => phase(spec, prompt, signal),\n act: (spec, prompt, { signal, mode }) => phase(spec, prompt, signal, mode),\n async close() { agent?.abort(); await agent?.waitForIdle(); },\n };\n};\n\nexport const acquireWorkflowRunner = async (options: {\n readonly root: string;\n readonly config: SeoWorkflowAgentConfig;\n readonly model?: string | undefined;\n readonly limit: number;\n readonly executor?: ExecutorToolset;\n readonly runsDirectory?: string;\n readonly additionalTools?: ReadonlyArray<AgentTool>;\n}): Promise<WorkflowRunner> => {\n const id = options.model ?? options.config.defaultModel;\n const slash = id.indexOf(\"/\");\n if (slash < 1 || slash === id.length - 1) throw new Error(`Workflow model must use provider/id: ${id}`);\n const provider = id.slice(0, slash);\n const model = builtinModels().getModel(provider, id.slice(slash + 1));\n if (!model) throw new Error(`Unknown Pi model: ${id}`);\n if (!getEnvApiKey(provider)) {\n const names = findEnvKeys(provider, new Proxy<Record<string, string>>({}, { get: (_target, key) => typeof key === \"string\" ? \"configured\" : undefined }));\n throw new Error(`Missing Pi credentials for ${provider}; set ${names?.join(\" or \") ?? `${provider} provider credentials`}.`);\n }\n return createPiRunner({ root: options.root, presetDirectory: resolve(options.root, options.config.presetDirectory),\n model, limit: options.limit, ...(options.runsDirectory === undefined ? {} : { runsDirectory: options.runsDirectory }),\n ...(options.additionalTools === undefined ? {} : { additionalTools: options.additionalTools }), executor: options.executor ?? await createExecutorToolset({ policy: \"decline\" }) });\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEF5F,MAAa,wBAAwB,wBAAwB,kBAAkBC,sBAAM;AAC1C,yBAAyB,kBAAkBA,sBAAM;AAC5C,8BAA8B,kBAAkBA,sBAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEFtF,MAAa,gBAAgB,wBAAwB,UAAUC,cAAM;AAClC,yBAAyB,UAAUA,cAAM;AACpC,8BAA8B,UAAUA,cAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEFtF,MAAa,sBAAsB,wBAAwB,gBAAgBC,oBAAM;AACxC,yBAAyB,gBAAgBA,oBAAM;AAC1C,8BAA8B,gBAAgBA,oBAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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8BAA8BC,kCAAM;AACtD,yBAAyB,8BAA8BA,kCAAM;AACxD,8BAA8B,8BAA8BA,kCAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEF9H,MAAa,gBAAgB,wBAAwB,UAAUC,cAAM;AAClC,yBAAyB,UAAUA,cAAM;AACpC,8BAA8B,UAAUA,cAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEFtF,MAAa,kBAAkB,wBAAwB,YAAYC,gBAAM;AACpC,yBAAyB,YAAYA,gBAAM;AACtC,8BAA8B,YAAYA,gBAAM;;;;;;;;;;;;;;;;;;;AEF3D,wBAAwB,YAAYC,gBAAM;AACpC,yBAAyB,YAAYA,gBAAM;AAChF,MAAa,6BAA6B,8BAA8B,YAAYA,gBAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}