feat: add --sleeptime CLI flag (#94)

Co-authored-by: Letta <noreply@letta.com>
This commit is contained in:
Charles Packer
2025-11-16 23:44:06 -08:00
committed by GitHub
parent 1dcc25fcc9
commit 9212dfb52b
3 changed files with 10 additions and 6 deletions

View File

@@ -239,10 +239,9 @@ export async function createAgent(
// Update persona block for sleeptime agents (only if persona was newly created, not shared)
if (enableSleeptime && newGlobalBlockIds.persona) {
await client.agents.blocks.modify("persona", {
await client.agents.blocks.modify("memory_persona", {
agent_id: agent.id,
value: SLEEPTIME_MEMORY_PERSONA,
label: "memory_persona",
description: "Instructions for the sleep-time memory management agent",
});
}

View File

@@ -49,6 +49,7 @@ export async function handleHeadlessCommand(
skills: { type: "string" },
link: { type: "boolean" },
unlink: { type: "boolean" },
sleeptime: { type: "boolean" },
},
strict: false,
allowPositionals: true,
@@ -81,6 +82,7 @@ export async function handleHeadlessCommand(
const specifiedAgentId = values.agent as string | undefined;
const shouldContinue = values.continue as boolean | undefined;
const forceNew = values.new as boolean | undefined;
const sleeptimeFlag = (values.sleeptime as boolean | undefined) ?? undefined;
// Priority 1: Try to use --agent specified ID
if (specifiedAgentId) {
@@ -102,7 +104,7 @@ export async function handleHeadlessCommand(
forceNew,
skillsDirectory,
settings.parallelToolCalls,
settings.enableSleeptime,
sleeptimeFlag ?? settings.enableSleeptime,
);
}
@@ -143,7 +145,7 @@ export async function handleHeadlessCommand(
false,
skillsDirectory,
settings.parallelToolCalls,
settings.enableSleeptime,
sleeptimeFlag ?? settings.enableSleeptime,
);
}

View File

@@ -33,6 +33,7 @@ OPTIONS
--output-format <fmt> Output format for headless mode (text, json, stream-json)
Default: text
--skills <path> Custom path to skills directory (default: .skills in current directory)
--sleeptime Enable sleeptime memory management (only for new agents)
BEHAVIOR
By default, letta auto-resumes the last agent used in the current directory
@@ -95,6 +96,7 @@ async function main() {
skills: { type: "string" },
link: { type: "boolean" },
unlink: { type: "boolean" },
sleeptime: { type: "boolean" },
},
strict: true,
allowPositionals: true,
@@ -137,6 +139,7 @@ async function main() {
const specifiedAgentId = (values.agent as string | undefined) ?? null;
const specifiedModel = (values.model as string | undefined) ?? undefined;
const skillsDirectory = (values.skills as string | undefined) ?? undefined;
const sleeptimeFlag = (values.sleeptime as boolean | undefined) ?? undefined;
const isHeadless = values.prompt || values.run || !process.stdin.isTTY;
// Check if API key is configured
@@ -364,7 +367,7 @@ async function main() {
forceNew,
skillsDirectory,
settings.parallelToolCalls,
settings.enableSleeptime,
sleeptimeFlag ?? settings.enableSleeptime,
);
}
@@ -410,7 +413,7 @@ async function main() {
false,
skillsDirectory,
settings.parallelToolCalls,
settings.enableSleeptime,
sleeptimeFlag ?? settings.enableSleeptime,
);
}