neoagent 2.2.1-beta.6 → 2.2.1-beta.8
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/docs/automation.md +2 -2
- package/docs/capabilities.md +7 -10
- package/docs/hardware.md +4 -7
- package/docs/index.md +7 -7
- package/docs/integrations.md +1 -1
- package/docs/migration.md +238 -0
- package/docs/operations.md +1 -1
- package/docs/why-neoagent.md +2 -2
- package/lib/manager.js +99 -2
- package/lib/migrations.js +409 -0
- package/package.json +1 -1
- package/server/catalog_sources/store-bundles/skills/productivity/migration/SKILL.md +173 -0
- package/server/db/database.js +76 -61
- package/server/http/routes.js +1 -2
- package/server/public/assets/AssetManifest.json +1 -1
- package/server/public/assets/fonts/MaterialIcons-Regular.otf +0 -0
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/main.dart.js +75830 -74189
- package/server/routes/auth.js +13 -5
- package/server/routes/integrations.js +22 -0
- package/server/routes/messaging.js +41 -5
- package/server/routes/settings.js +1 -0
- package/server/routes/{scheduler.js → tasks.js} +31 -29
- package/server/routes/widgets.js +7 -7
- package/server/services/ai/capabilityHealth.js +4 -4
- package/server/services/ai/engine.js +9 -9
- package/server/services/ai/systemPrompt.js +7 -7
- package/server/services/ai/taskAnalysis.js +3 -3
- package/server/services/ai/toolResult.js +6 -8
- package/server/services/ai/tools.js +62 -95
- package/server/services/commands/router.js +14 -6
- package/server/services/integrations/google/provider.js +20 -2
- package/server/services/integrations/manager.js +79 -8
- package/server/services/integrations/whatsapp/provider.js +23 -1
- package/server/services/manager.js +14 -14
- package/server/services/memory/manager.js +7 -7
- package/server/services/memory/policy.js +1 -1
- package/server/services/messaging/access_policy.js +703 -0
- package/server/services/messaging/access_policy.test.js +228 -0
- package/server/services/messaging/automation.js +32 -95
- package/server/services/messaging/base.js +39 -0
- package/server/services/messaging/discord.js +61 -46
- package/server/services/messaging/formatting_guides.js +0 -4
- package/server/services/messaging/http_platforms.js +178 -15
- package/server/services/messaging/manager.js +136 -71
- package/server/services/messaging/telegram.js +54 -40
- package/server/services/messaging/telnyx.js +43 -14
- package/server/services/messaging/whatsapp.js +27 -0
- package/server/services/tasks/adapters/gmail_message_received.js +36 -0
- package/server/services/tasks/adapters/index.js +10 -0
- package/server/services/tasks/adapters/outlook_email_received.js +38 -0
- package/server/services/tasks/adapters/schedule.js +57 -0
- package/server/services/tasks/adapters/slack_message_received.js +39 -0
- package/server/services/tasks/adapters/teams_message_received.js +39 -0
- package/server/services/tasks/adapters/whatsapp_personal_message_received.js +42 -0
- package/server/services/tasks/integration_runtime.js +260 -0
- package/server/services/tasks/runtime.js +539 -0
- package/server/services/{scheduler/cron_utils.js → tasks/schedule_utils.js} +2 -0
- package/server/services/tasks/security.js +60 -0
- package/server/services/tasks/task_repository.js +162 -0
- package/server/services/tasks/trigger_registry.js +29 -0
- package/server/services/tasks/utils.js +45 -0
- package/server/services/websocket.js +1 -1
- package/server/services/widgets/service.js +37 -25
- package/server/routes/wearable_device.js +0 -147
- package/server/services/messaging/waveshare_wearable.js +0 -40
- package/server/services/scheduler/cron.js +0 -580
- package/server/services/wearables/device_auth.js +0 -228
|
@@ -897,15 +897,15 @@ class MemoryManager {
|
|
|
897
897
|
|
|
898
898
|
const queryTokens = tokenizeRecallQuery(query);
|
|
899
899
|
if (queryTokens.length) {
|
|
900
|
-
const
|
|
900
|
+
const recentTaskRuns = db.prepare(
|
|
901
901
|
`SELECT title, final_response, completed_at
|
|
902
902
|
FROM agent_runs
|
|
903
|
-
WHERE user_id = ? AND agent_id = ? AND trigger_source
|
|
903
|
+
WHERE user_id = ? AND agent_id = ? AND trigger_source IN ('schedule', 'tasks') AND status = 'completed'
|
|
904
904
|
ORDER BY completed_at DESC, created_at DESC
|
|
905
905
|
LIMIT 12`
|
|
906
906
|
).all(userId, agentId);
|
|
907
907
|
|
|
908
|
-
const
|
|
908
|
+
const taskMatches = recentTaskRuns
|
|
909
909
|
.map((run) => ({
|
|
910
910
|
...run,
|
|
911
911
|
score: scoreSchedulerRunMatch(queryTokens, run.title, run.final_response),
|
|
@@ -913,14 +913,14 @@ class MemoryManager {
|
|
|
913
913
|
.filter((run) => run.score > 0)
|
|
914
914
|
.slice(0, 3);
|
|
915
915
|
|
|
916
|
-
if (
|
|
917
|
-
const
|
|
916
|
+
if (taskMatches.length) {
|
|
917
|
+
const taskLines = taskMatches.map((run) => {
|
|
918
918
|
const when = run.completed_at ? String(run.completed_at) : 'unknown time';
|
|
919
|
-
const title = String(run.title || '
|
|
919
|
+
const title = String(run.title || 'task').replace(/\s+/g, ' ').trim();
|
|
920
920
|
const outcome = buildExcerpt(String(run.final_response || ''), query) || String(run.final_response || '').slice(0, 180);
|
|
921
921
|
return `- ${when}: ${title} -> ${outcome || '(no final response stored)'}`;
|
|
922
922
|
});
|
|
923
|
-
sections.push(`Relevant recent
|
|
923
|
+
sections.push(`Relevant recent task runs:\n${taskLines.join('\n')}`);
|
|
924
924
|
}
|
|
925
925
|
}
|
|
926
926
|
|
|
@@ -21,7 +21,7 @@ function isTransientOperationalMemory(content) {
|
|
|
21
21
|
|
|
22
22
|
const lower = text.toLowerCase();
|
|
23
23
|
const hasRecency = /\b(recent|latest|current|today|tonight|just now|this run|last run)\b/.test(lower);
|
|
24
|
-
const hasRunEntity = /\b(
|
|
24
|
+
const hasRunEntity = /\b(task|scheduled run|schedule run|agent run|task run|workflow run|job run)\b/.test(lower);
|
|
25
25
|
const hasExecutionState = /\b(status|completed|succeeded|failed|errored|finished|started|triggered|executed|ran)\b/.test(lower);
|
|
26
26
|
|
|
27
27
|
if (hasRecency && hasRunEntity && hasExecutionState) {
|