@@ -18,7 +18,7 @@ import { modelRef } from '@genkit-ai/ai/model';
18
18
import assert from 'node:assert' ;
19
19
import { beforeEach , describe , it } from 'node:test' ;
20
20
import { Genkit , genkit } from '../src/genkit' ;
21
- import { z } from '../src/index' ;
21
+ import { PromptAction , z } from '../src/index' ;
22
22
import {
23
23
ProgrammableModel ,
24
24
defineEchoModel ,
@@ -509,7 +509,7 @@ describe('definePrompt', () => {
509
509
defineEchoModel ( ai ) ;
510
510
} ) ;
511
511
512
- it ( 'calls dotprompt with default model' , async ( ) => {
512
+ it ( 'calls prompt with default model' , async ( ) => {
513
513
const hi = ai . definePrompt (
514
514
{
515
515
name : 'hi' ,
@@ -532,7 +532,7 @@ describe('definePrompt', () => {
532
532
assert . strictEqual ( response . text , 'Echo: hi Genkit; config: {}' ) ;
533
533
} ) ;
534
534
535
- it ( 'calls dotprompt with default model with config' , async ( ) => {
535
+ it ( 'calls prompt with default model with config' , async ( ) => {
536
536
const hi = ai . definePrompt (
537
537
{
538
538
name : 'hi' ,
@@ -561,7 +561,7 @@ describe('definePrompt', () => {
561
561
) ;
562
562
} ) ;
563
563
564
- it ( 'calls dotprompt with default model via retrieved prompt' , async ( ) => {
564
+ it ( 'calls prompt with default model via retrieved prompt' , async ( ) => {
565
565
ai . definePrompt (
566
566
{
567
567
name : 'hi' ,
@@ -599,7 +599,7 @@ describe('definePrompt', () => {
599
599
defineEchoModel ( ai ) ;
600
600
} ) ;
601
601
602
- it ( 'calls dotprompt with default model' , async ( ) => {
602
+ it ( 'calls prompt with default model' , async ( ) => {
603
603
const hi = ai . definePrompt (
604
604
{
605
605
name : 'hi' ,
@@ -622,7 +622,7 @@ describe('definePrompt', () => {
622
622
assert . strictEqual ( response . text , 'Echo: hi Genkit; config: {}' ) ;
623
623
} ) ;
624
624
625
- it ( 'streams dotprompt with default model' , async ( ) => {
625
+ it ( 'streams prompt with default model' , async ( ) => {
626
626
const hi = ai . definePrompt (
627
627
{
628
628
name : 'hi' ,
@@ -667,7 +667,7 @@ describe('definePrompt', () => {
667
667
defineEchoModel ( ai ) ;
668
668
} ) ;
669
669
670
- it ( 'calls dotprompt with default model' , async ( ) => {
670
+ it ( 'calls prompt with default model' , async ( ) => {
671
671
const hi = ai . definePrompt (
672
672
{
673
673
name : 'hi' ,
@@ -691,7 +691,7 @@ describe('definePrompt', () => {
691
691
assert . strictEqual ( response . text , 'Echo: hi Genkit; config: {}' ) ;
692
692
} ) ;
693
693
694
- it ( 'calls dotprompt with default model with config' , async ( ) => {
694
+ it ( 'calls prompt with default model with config' , async ( ) => {
695
695
const hi = ai . definePrompt (
696
696
{
697
697
name : 'hi' ,
@@ -721,7 +721,7 @@ describe('definePrompt', () => {
721
721
) ;
722
722
} ) ;
723
723
724
- it ( 'calls dotprompt with default model with call site config' , async ( ) => {
724
+ it ( 'calls prompt with default model with call site config' , async ( ) => {
725
725
const hi = ai . definePrompt (
726
726
{
727
727
name : 'hi' ,
@@ -870,6 +870,57 @@ describe('prompt', () => {
870
870
assert . strictEqual ( text , 'Echo: hi banana; config: {"temperature":11}' ) ;
871
871
} ) ;
872
872
873
+ it ( 'includes metadata for functional prompts' , async ( ) => {
874
+ ai . definePrompt (
875
+ {
876
+ name : 'hi' ,
877
+ model : 'echoModel' ,
878
+ input : {
879
+ schema : z . object ( {
880
+ name : z . string ( ) ,
881
+ } ) ,
882
+ } ,
883
+ config : {
884
+ temperature : 0.13 ,
885
+ } ,
886
+ } ,
887
+ async ( input ) => {
888
+ return {
889
+ messages : [ ] ,
890
+ config : {
891
+ temperature : 11 ,
892
+ } ,
893
+ } ;
894
+ }
895
+ ) ;
896
+ const testPrompt : PromptAction =
897
+ await ai . registry . lookupAction ( '/prompt/hi' ) ;
898
+
899
+ assert . deepStrictEqual ( testPrompt . __action . metadata , {
900
+ type : 'prompt' ,
901
+ prompt : {
902
+ name : 'hi' ,
903
+ model : 'echoModel' ,
904
+ config : {
905
+ temperature : 0.13 ,
906
+ } ,
907
+ input : {
908
+ schema : {
909
+ type : 'object' ,
910
+ properties : {
911
+ name : {
912
+ type : 'string' ,
913
+ } ,
914
+ } ,
915
+ required : [ 'name' ] ,
916
+ additionalProperties : true ,
917
+ $schema : 'http://json-schema.org/draft-07/schema#' ,
918
+ } ,
919
+ } ,
920
+ } ,
921
+ } ) ;
922
+ } ) ;
923
+
873
924
it ( 'passes in output options to the model' , async ( ) => {
874
925
const hi = ai . definePrompt (
875
926
{
0 commit comments