Skip to content

Commit

Permalink
Merge branch 'master' into 8168-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
fivecar authored Feb 5, 2025
2 parents 7b68a0e + d439384 commit 2abd10b
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 14 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Genkit init improvements around gcloud login and flow input values.
2 changes: 1 addition & 1 deletion firebase-vscode/src/data-connect/toolkit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export class DataConnectToolkit implements vscode.Disposable {
enable_output_generated_sdk: true,
enable_output_schema_extensions: true,
};
pluginLogger.info(`Starting Data Connect toolkit on port ${port}`);
pluginLogger.info(`Starting Data Connect toolkit (version ${DataConnectToolkitController.getVersion()}) on port ${port}`);
return DataConnectToolkitController.start(toolkitArgs);
}

Expand Down
5 changes: 5 additions & 0 deletions src/emulator/dataconnectEmulator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
stop,
downloadIfNecessary,
isIncomaptibleArchError,
getDownloadDetails,
} from "./downloadableEmulators";
import { EmulatorInfo, EmulatorInstance, Emulators, ListenSpec } from "./types";
import { FirebaseError } from "../error";
Expand Down Expand Up @@ -196,6 +197,10 @@ export class DataConnectEmulator implements EmulatorInstance {
return Emulators.DATACONNECT;
}

getVersion(): string {
return getDownloadDetails(Emulators.DATACONNECT).version;
}

async clearData(): Promise<void> {
if (this.postgresServer) {
await this.postgresServer.clearDb();
Expand Down
9 changes: 7 additions & 2 deletions src/emulator/dataconnectToolkitController.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import { EmulatorInstance, EmulatorInfo } from "./types";
import { EmulatorInfo, Emulators } from "./types";
import { FirebaseError } from "../error";
import * as portUtils from "./portUtils";
import { connectableHostname } from "../utils";
import { DataConnectEmulator, DataConnectEmulatorArgs } from "./dataconnectEmulator";
import { getDownloadDetails } from "./downloadableEmulators";

const name = "Data Connect Toolkit";
/**
* Static controller for the VSCode Data Connect Toolkit
*/
export class DataConnectToolkitController {
static instance: EmulatorInstance;
static instance: DataConnectEmulator;
static isRunning = false;

static async start(args: DataConnectEmulatorArgs): Promise<void> {
Expand Down Expand Up @@ -40,6 +41,10 @@ export class DataConnectToolkitController {
}
}

static getVersion(): string {
return getDownloadDetails(Emulators.DATACONNECT).version;
}

/**
* Get information about an emulator.
*/
Expand Down
23 changes: 14 additions & 9 deletions src/init/features/genkit/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,17 @@ export interface GenkitSetup extends Setup {
[key: string]: unknown;
}

function showStartMessage(config: Config, command: string) {
logger.info("\nLogin to Google Cloud using:");
logger.info(
clc.bold(
clc.green(` gcloud auth application-default login --project ${config.options.project}\n`),
),
);
logger.info("Then start the Genkit developer experience by running:");
logger.info(clc.bold(clc.green(` ${command}`)));
}

/**
* doSetup is the entry point for setting up the genkit suite.
*/
Expand Down Expand Up @@ -186,8 +197,7 @@ export async function doSetup(setup: GenkitSetup, config: Config, options: Optio
projectDir,
);
await genkitSetup(options, genkitInfo, projectDir);
logger.info("Start the Genkit developer experience by running:");
logger.info(` cd ${setup.functions.source} && npm run genkit:start`);
showStartMessage(config, `cd ${setup.functions.source} && npm run genkit:start`);
}
} else {
if (genkitInfo.useInit) {
Expand All @@ -197,20 +207,15 @@ export async function doSetup(setup: GenkitSetup, config: Config, options: Optio
projectDir,
);
await wrapSpawn("npx", ["genkit", "init", "-p", "firebase"], projectDir);
logger.info("Start the Genkit developer experience by running:");
logger.info(` cd ${setup.functions.source} && npx genkit start`);
showStartMessage(config, `cd ${setup.functions.source} && npx genkit start`);
} else {
await wrapSpawn(
"npm",
["install", `genkit-cli@${genkitInfo.genkitVersion}`, "--save-dev"],
projectDir,
);
await genkitSetup(options, genkitInfo, projectDir);
logger.info("Start the Genkit developer experience by running:");
logger.info();
logger.info(
clc.bold(clc.green(` cd ${setup.functions.source} && npm run genkit:start`)),
);
showStartMessage(config, `cd ${setup.functions.source} && npm run genkit:start`);
}
}
} catch (err) {
Expand Down
2 changes: 1 addition & 1 deletion templates/genkit/firebase.0.9.0.template
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const menuSuggestionFlow = onFlow(
ai,
{
name: "menuSuggestionFlow",
inputSchema: z.string(),
inputSchema: z.string().describe("A restaurant theme").default("seafood"),
outputSchema: z.string(),
authPolicy: firebaseAuth((user) => {
// By default, the firebaseAuth policy requires that all requests have an
Expand Down
2 changes: 1 addition & 1 deletion templates/genkit/firebase.1.0.0.template
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ $GENKIT_CONFIG_PLUGINS
// Define a simple flow that prompts an LLM to generate menu suggestions.
const menuSuggestionFlow = ai.defineFlow({
name: "menuSuggestionFlow",
inputSchema: z.string(),
inputSchema: z.string().describe("A restaurant theme").default("seafood"),
outputSchema: z.string(),
streamSchema: z.string(),
}, async (subject, { sendChunk }) => {
Expand Down

0 comments on commit 2abd10b

Please sign in to comment.