diff --git a/.changeset/large-eyes-hide.md b/.changeset/large-eyes-hide.md new file mode 100644 index 0000000..d6e5add --- /dev/null +++ b/.changeset/large-eyes-hide.md @@ -0,0 +1,5 @@ +--- +"@plotday/sdk": patch +--- + +Changed: plot agent logs takes id from package.json diff --git a/sdk/cli/commands/agent-logs.ts b/sdk/cli/commands/agent-logs.ts index 11546ed..bf6ae27 100644 --- a/sdk/cli/commands/agent-logs.ts +++ b/sdk/cli/commands/agent-logs.ts @@ -1,11 +1,18 @@ import * as fs from "fs"; +import * as path from "path"; import * as out from "../utils/output"; import { getGlobalTokenPath } from "../utils/token"; import { handleSSEStream } from "../utils/sse"; +interface PackageJson { + plotAgentId?: string; +} + interface AgentLogsOptions { - agentId: string; + agentId?: string; + id?: string; + dir?: string; environment?: string; deployToken?: string; apiUrl: string; @@ -15,7 +22,33 @@ interface AgentLogsOptions { * Stream agent logs in real-time */ export async function agentLogsCommand(options: AgentLogsOptions) { - const { agentId, environment = "personal", apiUrl } = options; + const { environment = "personal", apiUrl, dir = process.cwd() } = options; + + // Determine agent ID from options, positional arg, or package.json + let agentId = options.id || options.agentId; + + if (!agentId) { + // Try to read from package.json + const packageJsonPath = path.join(dir, "package.json"); + if (fs.existsSync(packageJsonPath)) { + try { + const packageJsonContent = fs.readFileSync(packageJsonPath, "utf-8"); + const packageJson: PackageJson = JSON.parse(packageJsonContent); + agentId = packageJson.plotAgentId; + } catch (error) { + out.error("Failed to parse package.json", String(error)); + process.exit(1); + } + } + } + + if (!agentId) { + out.error( + "Agent ID required", + "Provide agent ID as argument, via --id flag, or add 'plotAgentId' to package.json" + ); + process.exit(1); + } // Load deploy token let deployToken = options.deployToken; diff --git a/sdk/cli/index.ts b/sdk/cli/index.ts index 8c27733..a6c60ef 100644 --- a/sdk/cli/index.ts +++ b/sdk/cli/index.ts @@ -118,22 +118,28 @@ agent }); agent - .command("logs ") + .command("logs [agent-id]") .description("Stream real-time logs from an agent") + .option("-d, --dir ", "Agent directory", process.cwd()) + .option("--id ", "Agent ID") .option( "-e, --environment ", "Agent environment (personal, private, review)", "personal" ) .option("--deploy-token ", "Authentication token") - .action(function (this: Command, agentId: string) { + .action(function (this: Command, agentId?: string) { const opts = this.optsWithGlobals() as { + dir?: string; + id?: string; environment?: string; deployToken?: string; apiUrl: string; }; return agentLogsCommand({ agentId, + id: opts.id, + dir: opts.dir, environment: opts.environment, deployToken: opts.deployToken, apiUrl: opts.apiUrl,