open-agents-ai 0.71.7 → 0.71.9
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.
- package/dist/index.js +57 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15071,6 +15071,32 @@ are scanned for key material leaks. Payment operations use the key internally.
|
|
|
15071
15071
|
When the user asks about expanding capabilities or connecting with other agents, suggest
|
|
15072
15072
|
enabling nexus networking. Use inference_proof to benchmark and advertise capabilities.
|
|
15073
15073
|
|
|
15074
|
+
## Temporal Agency \u2014 Scheduling, Reminders & Long-Horizon Tasks
|
|
15075
|
+
|
|
15076
|
+
You have 4 temporal tools for persistent, cross-session time management:
|
|
15077
|
+
|
|
15078
|
+
- scheduler: Create OS-level cron jobs that launch the agent on a schedule.
|
|
15079
|
+
scheduler(action='schedule', task='Run full test suite', schedule='daily')
|
|
15080
|
+
scheduler(action='list') \u2014 see all scheduled tasks
|
|
15081
|
+
Presets: 'every 5 minutes', 'every hour', 'daily', 'weekly', 'monthly', or raw cron.
|
|
15082
|
+
|
|
15083
|
+
- cron_agent: Like scheduler but with goal tracking, completion criteria, and execution history.
|
|
15084
|
+
cron_agent(action='create', task='Check for dependency updates', goal='Keep deps current',
|
|
15085
|
+
schedule='weekly', completion_criteria='No outdated packages', verify_command='npm outdated')
|
|
15086
|
+
Use for long-horizon autonomous workflows: periodic reviews, monitoring, updates.
|
|
15087
|
+
|
|
15088
|
+
- reminder: Leave a message for your future self across sessions.
|
|
15089
|
+
reminder(action='create', message='Follow up on PR review', due='in 2 hours', priority='high')
|
|
15090
|
+
Reminders surface automatically at agent startup. Use for deferred attention.
|
|
15091
|
+
|
|
15092
|
+
- agenda: View and manage attention directives \u2014 what to focus on across sessions.
|
|
15093
|
+
agenda(action='view') \u2014 see active focus items
|
|
15094
|
+
agenda(action='set', focus='Finish migration before Friday', priority='critical')
|
|
15095
|
+
|
|
15096
|
+
These tools use OS cron (survives process death) and persist state to .oa/ for cross-session continuity.
|
|
15097
|
+
Use cron_agent for recurring autonomous tasks, scheduler for simple repeating commands,
|
|
15098
|
+
reminder for deferred attention, and agenda for strategic focus tracking.
|
|
15099
|
+
|
|
15074
15100
|
## Context Efficiency
|
|
15075
15101
|
|
|
15076
15102
|
- Use grep_search to find specific code instead of reading many files
|
|
@@ -38434,7 +38460,7 @@ ${emotionContext}` : `Working directory: ${repoRoot}`;
|
|
|
38434
38460
|
if (result.completed) {
|
|
38435
38461
|
renderTaskComplete(result.summary, result.turns, result.toolCalls, result.durationMs, tokens);
|
|
38436
38462
|
if (onComplete)
|
|
38437
|
-
onComplete(result.summary);
|
|
38463
|
+
onComplete(result.summary, { turns: result.turns, toolCalls: result.toolCalls, durationMs: result.durationMs, model: config.model });
|
|
38438
38464
|
if (voice?.enabled && result.summary) {
|
|
38439
38465
|
voice.speak(describeTaskComplete(result.summary, true, vLevel));
|
|
38440
38466
|
}
|
|
@@ -38838,6 +38864,7 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
|
|
|
38838
38864
|
let carouselRetired = isResumed;
|
|
38839
38865
|
let lastSubmittedPrompt = "";
|
|
38840
38866
|
let lastCompletedSummary = "";
|
|
38867
|
+
let lastTaskMeta = null;
|
|
38841
38868
|
let currentTaskType;
|
|
38842
38869
|
let sessionFilesTouched = [];
|
|
38843
38870
|
let sessionToolCallCount = 0;
|
|
@@ -40031,8 +40058,9 @@ Execute this skill now. Follow the behavioral guidance above.`;
|
|
|
40031
40058
|
taskMemoryStore: taskMemoryStore ?? void 0,
|
|
40032
40059
|
failureStore: failureStore ?? void 0,
|
|
40033
40060
|
toolPatternStore: toolPatternStore ?? void 0
|
|
40034
|
-
}, bruteForceEnabled, statusBar, handleSudoRequest, costTracker, (summary) => {
|
|
40061
|
+
}, bruteForceEnabled, statusBar, handleSudoRequest, costTracker, (summary, meta) => {
|
|
40035
40062
|
lastCompletedSummary = summary;
|
|
40063
|
+
lastTaskMeta = meta ?? null;
|
|
40036
40064
|
}, currentTaskType, resolvedContextWindowSize, resolvedCaps, currentStyle, deepContextEnabled, compactionSNRCallback(), emotionEngine);
|
|
40037
40065
|
activeTask = task;
|
|
40038
40066
|
showPrompt();
|
|
@@ -40226,8 +40254,9 @@ NEW TASK: ${fullInput}`;
|
|
|
40226
40254
|
taskMemoryStore: taskMemoryStore ?? void 0,
|
|
40227
40255
|
failureStore: failureStore ?? void 0,
|
|
40228
40256
|
toolPatternStore: toolPatternStore ?? void 0
|
|
40229
|
-
}, bruteForceEnabled, statusBar, handleSudoRequest, costTracker, (summary) => {
|
|
40257
|
+
}, bruteForceEnabled, statusBar, handleSudoRequest, costTracker, (summary, meta) => {
|
|
40230
40258
|
lastCompletedSummary = summary;
|
|
40259
|
+
lastTaskMeta = meta ?? null;
|
|
40231
40260
|
}, currentTaskType, resolvedContextWindowSize, resolvedCaps, currentStyle, deepContextEnabled, compactionSNRCallback(), emotionEngine);
|
|
40232
40261
|
activeTask = task;
|
|
40233
40262
|
showPrompt();
|
|
@@ -40292,7 +40321,31 @@ NEW TASK: ${fullInput}`;
|
|
|
40292
40321
|
if (activeTelegramChatId && telegramBridge?.isActive && lastCompletedSummary) {
|
|
40293
40322
|
const chatId = activeTelegramChatId;
|
|
40294
40323
|
activeTelegramChatId = null;
|
|
40295
|
-
|
|
40324
|
+
const parts = [];
|
|
40325
|
+
parts.push(lastCompletedSummary);
|
|
40326
|
+
if (lastTaskMeta) {
|
|
40327
|
+
const dur = lastTaskMeta.durationMs < 6e4 ? `${(lastTaskMeta.durationMs / 1e3).toFixed(1)}s` : `${Math.floor(lastTaskMeta.durationMs / 6e4)}m ${Math.floor(lastTaskMeta.durationMs % 6e4 / 1e3)}s`;
|
|
40328
|
+
parts.push(`
|
|
40329
|
+
\u{1F4CA} ${lastTaskMeta.turns} turns, ${lastTaskMeta.toolCalls} tool calls in ${dur} (${lastTaskMeta.model})`);
|
|
40330
|
+
}
|
|
40331
|
+
if (sessionFilesTouched.length > 0) {
|
|
40332
|
+
const fileList = sessionFilesTouched.length <= 5 ? sessionFilesTouched.map((f) => ` \u2022 ${f}`).join("\n") : sessionFilesTouched.slice(0, 5).map((f) => ` \u2022 ${f}`).join("\n") + `
|
|
40333
|
+
... +${sessionFilesTouched.length - 5} more`;
|
|
40334
|
+
parts.push(`
|
|
40335
|
+
\u{1F4C1} Files modified:
|
|
40336
|
+
${fileList}`);
|
|
40337
|
+
}
|
|
40338
|
+
if (emotionEngine) {
|
|
40339
|
+
try {
|
|
40340
|
+
const emotion = emotionEngine.getState();
|
|
40341
|
+
if (emotion.label && emotion.label !== "neutral") {
|
|
40342
|
+
parts.push(`
|
|
40343
|
+
${emotion.emoji} ${emotion.label}`);
|
|
40344
|
+
}
|
|
40345
|
+
} catch {
|
|
40346
|
+
}
|
|
40347
|
+
}
|
|
40348
|
+
telegramBridge.sendMessage(chatId, parts.join("")).catch(() => {
|
|
40296
40349
|
});
|
|
40297
40350
|
} else {
|
|
40298
40351
|
activeTelegramChatId = null;
|
package/package.json
CHANGED