@elizaos/plugin-reminders 2.0.3-beta.5 → 2.0.3-beta.7
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/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +2 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +1487 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +98 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +16 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +12 -0
- package/dist/plugin.js.map +1 -0
- package/dist/services/migration.d.ts +44 -0
- package/dist/services/migration.d.ts.map +1 -0
- package/dist/services/migration.js +114 -0
- package/dist/services/migration.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,yDAA4B,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB7B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuChC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBhC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { boolean, index, integer, pgSchema, text } from "drizzle-orm/pg-core";
|
|
2
|
+
const remindersSchema = pgSchema("app_reminders");
|
|
3
|
+
const lifeReminderPlans = remindersSchema.table(
|
|
4
|
+
"life_reminder_plans",
|
|
5
|
+
{
|
|
6
|
+
id: text("id").primaryKey(),
|
|
7
|
+
agentId: text("agent_id").notNull(),
|
|
8
|
+
ownerType: text("owner_type").notNull(),
|
|
9
|
+
ownerId: text("owner_id").notNull(),
|
|
10
|
+
stepsJson: text("steps_json").notNull().default("[]"),
|
|
11
|
+
mutePolicyJson: text("mute_policy_json").notNull().default("{}"),
|
|
12
|
+
quietHoursJson: text("quiet_hours_json").notNull().default("{}"),
|
|
13
|
+
createdAt: text("created_at").notNull(),
|
|
14
|
+
updatedAt: text("updated_at").notNull()
|
|
15
|
+
},
|
|
16
|
+
(t) => [
|
|
17
|
+
index("idx_life_reminder_plans_owner").on(
|
|
18
|
+
t.agentId,
|
|
19
|
+
t.ownerType,
|
|
20
|
+
t.ownerId
|
|
21
|
+
)
|
|
22
|
+
]
|
|
23
|
+
);
|
|
24
|
+
const lifeReminderAttempts = remindersSchema.table(
|
|
25
|
+
"life_reminder_attempts",
|
|
26
|
+
{
|
|
27
|
+
id: text("id").primaryKey(),
|
|
28
|
+
agentId: text("agent_id").notNull(),
|
|
29
|
+
planId: text("plan_id").notNull(),
|
|
30
|
+
ownerType: text("owner_type").notNull(),
|
|
31
|
+
ownerId: text("owner_id").notNull(),
|
|
32
|
+
occurrenceId: text("occurrence_id"),
|
|
33
|
+
channel: text("channel").notNull(),
|
|
34
|
+
stepIndex: integer("step_index").notNull().default(0),
|
|
35
|
+
scheduledFor: text("scheduled_for").notNull(),
|
|
36
|
+
attemptedAt: text("attempted_at"),
|
|
37
|
+
outcome: text("outcome").notNull().default("pending"),
|
|
38
|
+
connectorRef: text("connector_ref"),
|
|
39
|
+
deliveryMetadataJson: text("delivery_metadata_json").notNull().default("{}"),
|
|
40
|
+
reviewAt: text("review_at"),
|
|
41
|
+
reviewStatus: text("review_status"),
|
|
42
|
+
reviewClaimedAt: text("review_claimed_at"),
|
|
43
|
+
reviewClaimedBy: text("review_claimed_by"),
|
|
44
|
+
reviewAttemptCount: integer("review_attempt_count").notNull().default(0),
|
|
45
|
+
reviewNextRetryAt: text("review_next_retry_at"),
|
|
46
|
+
reviewLastError: text("review_last_error")
|
|
47
|
+
},
|
|
48
|
+
(t) => [
|
|
49
|
+
index("idx_life_reminder_attempts_plan").on(
|
|
50
|
+
t.planId,
|
|
51
|
+
t.ownerType,
|
|
52
|
+
t.ownerId
|
|
53
|
+
),
|
|
54
|
+
index("idx_life_reminder_attempts_review_scan").on(
|
|
55
|
+
t.agentId,
|
|
56
|
+
t.outcome,
|
|
57
|
+
t.reviewStatus,
|
|
58
|
+
t.reviewAt
|
|
59
|
+
)
|
|
60
|
+
]
|
|
61
|
+
);
|
|
62
|
+
const lifeEscalationStates = remindersSchema.table(
|
|
63
|
+
"life_escalation_states",
|
|
64
|
+
{
|
|
65
|
+
id: text("id").primaryKey(),
|
|
66
|
+
agentId: text("agent_id").notNull(),
|
|
67
|
+
reason: text("reason").notNull().default(""),
|
|
68
|
+
text: text("text").notNull().default(""),
|
|
69
|
+
currentStep: integer("current_step").notNull().default(0),
|
|
70
|
+
channelsSentJson: text("channels_sent_json").notNull().default("[]"),
|
|
71
|
+
startedAt: text("started_at").notNull(),
|
|
72
|
+
lastSentAt: text("last_sent_at").notNull(),
|
|
73
|
+
resolved: boolean("resolved").notNull().default(false),
|
|
74
|
+
resolvedAt: text("resolved_at"),
|
|
75
|
+
metadataJson: text("metadata_json").notNull().default("{}"),
|
|
76
|
+
createdAt: text("created_at").notNull(),
|
|
77
|
+
updatedAt: text("updated_at").notNull()
|
|
78
|
+
},
|
|
79
|
+
(t) => [
|
|
80
|
+
index("idx_life_escalation_states_agent_resolved").on(
|
|
81
|
+
t.agentId,
|
|
82
|
+
t.resolved
|
|
83
|
+
)
|
|
84
|
+
]
|
|
85
|
+
);
|
|
86
|
+
const remindersDbSchema = {
|
|
87
|
+
lifeReminderPlans,
|
|
88
|
+
lifeReminderAttempts,
|
|
89
|
+
lifeEscalationStates
|
|
90
|
+
};
|
|
91
|
+
export {
|
|
92
|
+
lifeEscalationStates,
|
|
93
|
+
lifeReminderAttempts,
|
|
94
|
+
lifeReminderPlans,
|
|
95
|
+
remindersDbSchema,
|
|
96
|
+
remindersSchema
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/db/schema.ts"],"sourcesContent":["import { boolean, index, integer, pgSchema, text } from \"drizzle-orm/pg-core\";\n\n/**\n * Drizzle schema for plugin-reminders.\n *\n * The reminder tables (`life_reminder_plans`, `life_reminder_attempts`,\n * `life_escalation_states`) were carved out of\n * `@elizaos/plugin-personal-assistant`'s `app_lifeops` schema. Table + column\n * names are preserved verbatim so the non-destructive `RemindersMigrationService`\n * can copy existing `app_lifeops` rows into `app_reminders`. The runtime\n * registers this schema through `@elizaos/plugin-sql`.\n */\nexport const remindersSchema = pgSchema(\"app_reminders\");\n\nexport const lifeReminderPlans = remindersSchema.table(\n \"life_reminder_plans\",\n {\n id: text(\"id\").primaryKey(),\n agentId: text(\"agent_id\").notNull(),\n ownerType: text(\"owner_type\").notNull(),\n ownerId: text(\"owner_id\").notNull(),\n stepsJson: text(\"steps_json\").notNull().default(\"[]\"),\n mutePolicyJson: text(\"mute_policy_json\").notNull().default(\"{}\"),\n quietHoursJson: text(\"quiet_hours_json\").notNull().default(\"{}\"),\n createdAt: text(\"created_at\").notNull(),\n updatedAt: text(\"updated_at\").notNull(),\n },\n (t) => [\n index(\"idx_life_reminder_plans_owner\").on(\n t.agentId,\n t.ownerType,\n t.ownerId,\n ),\n ],\n);\n\nexport const lifeReminderAttempts = remindersSchema.table(\n \"life_reminder_attempts\",\n {\n id: text(\"id\").primaryKey(),\n agentId: text(\"agent_id\").notNull(),\n planId: text(\"plan_id\").notNull(),\n ownerType: text(\"owner_type\").notNull(),\n ownerId: text(\"owner_id\").notNull(),\n occurrenceId: text(\"occurrence_id\"),\n channel: text(\"channel\").notNull(),\n stepIndex: integer(\"step_index\").notNull().default(0),\n scheduledFor: text(\"scheduled_for\").notNull(),\n attemptedAt: text(\"attempted_at\"),\n outcome: text(\"outcome\").notNull().default(\"pending\"),\n connectorRef: text(\"connector_ref\"),\n deliveryMetadataJson: text(\"delivery_metadata_json\")\n .notNull()\n .default(\"{}\"),\n reviewAt: text(\"review_at\"),\n reviewStatus: text(\"review_status\"),\n reviewClaimedAt: text(\"review_claimed_at\"),\n reviewClaimedBy: text(\"review_claimed_by\"),\n reviewAttemptCount: integer(\"review_attempt_count\").notNull().default(0),\n reviewNextRetryAt: text(\"review_next_retry_at\"),\n reviewLastError: text(\"review_last_error\"),\n },\n (t) => [\n index(\"idx_life_reminder_attempts_plan\").on(\n t.planId,\n t.ownerType,\n t.ownerId,\n ),\n index(\"idx_life_reminder_attempts_review_scan\").on(\n t.agentId,\n t.outcome,\n t.reviewStatus,\n t.reviewAt,\n ),\n ],\n);\n\nexport const lifeEscalationStates = remindersSchema.table(\n \"life_escalation_states\",\n {\n id: text(\"id\").primaryKey(),\n agentId: text(\"agent_id\").notNull(),\n reason: text(\"reason\").notNull().default(\"\"),\n text: text(\"text\").notNull().default(\"\"),\n currentStep: integer(\"current_step\").notNull().default(0),\n channelsSentJson: text(\"channels_sent_json\").notNull().default(\"[]\"),\n startedAt: text(\"started_at\").notNull(),\n lastSentAt: text(\"last_sent_at\").notNull(),\n resolved: boolean(\"resolved\").notNull().default(false),\n resolvedAt: text(\"resolved_at\"),\n metadataJson: text(\"metadata_json\").notNull().default(\"{}\"),\n createdAt: text(\"created_at\").notNull(),\n updatedAt: text(\"updated_at\").notNull(),\n },\n (t) => [\n index(\"idx_life_escalation_states_agent_resolved\").on(\n t.agentId,\n t.resolved,\n ),\n ],\n);\n\nexport const remindersDbSchema = {\n lifeReminderPlans,\n lifeReminderAttempts,\n lifeEscalationStates,\n} as const;\n\nexport type ReminderPlanRow = typeof lifeReminderPlans.$inferSelect;\nexport type ReminderAttemptRow = typeof lifeReminderAttempts.$inferSelect;\nexport type EscalationStateRow = typeof lifeEscalationStates.$inferSelect;\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./db/schema.js";
|
|
2
|
+
export { remindersPlugin } from "./plugin.js";
|
|
3
|
+
export { MIGRATED_REMINDER_TABLES, type MigratedReminderTable, migrateReminderTable, migrateReminderTables, REMINDERS_MIGRATION_SERVICE_TYPE, RemindersMigrationService, type SqlExecutor, type TableMigrationResult, } from "./services/migration.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,gCAAgC,EAChC,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from "./db/schema.js";
|
|
2
|
+
import { remindersPlugin } from "./plugin.js";
|
|
3
|
+
import {
|
|
4
|
+
MIGRATED_REMINDER_TABLES,
|
|
5
|
+
migrateReminderTable,
|
|
6
|
+
migrateReminderTables,
|
|
7
|
+
REMINDERS_MIGRATION_SERVICE_TYPE,
|
|
8
|
+
RemindersMigrationService
|
|
9
|
+
} from "./services/migration.js";
|
|
10
|
+
export {
|
|
11
|
+
MIGRATED_REMINDER_TABLES,
|
|
12
|
+
REMINDERS_MIGRATION_SERVICE_TYPE,
|
|
13
|
+
RemindersMigrationService,
|
|
14
|
+
migrateReminderTable,
|
|
15
|
+
migrateReminderTables,
|
|
16
|
+
remindersPlugin
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./db/schema.js\";\nexport { remindersPlugin } from \"./plugin.js\";\nexport {\n MIGRATED_REMINDER_TABLES,\n type MigratedReminderTable,\n migrateReminderTable,\n migrateReminderTables,\n REMINDERS_MIGRATION_SERVICE_TYPE,\n RemindersMigrationService,\n type SqlExecutor,\n type TableMigrationResult,\n} from \"./services/migration.js\";\n"],"mappings":"AAAA,cAAc;AACd,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;","names":[]}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Plugin } from "@elizaos/core";
|
|
2
|
+
/**
|
|
3
|
+
* `@elizaos/plugin-reminders` — the reminder delivery/escalation data layer.
|
|
4
|
+
*
|
|
5
|
+
* Owns the `app_reminders` schema (reminder plans, per-channel delivery
|
|
6
|
+
* attempts, escalation states) carved out of
|
|
7
|
+
* `@elizaos/plugin-personal-assistant`, plus a non-destructive migration from
|
|
8
|
+
* `app_lifeops`. PA auto-registers this plugin (so the schema + migration run)
|
|
9
|
+
* and its reminder repository now reads/writes `app_reminders`. The
|
|
10
|
+
* delivery/escalation ENGINE stays PA-resident during the decomposition,
|
|
11
|
+
* writing through the carved tables.
|
|
12
|
+
*
|
|
13
|
+
* See `plugins/plugin-personal-assistant/docs/lifeops-extraction-plan.md`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const remindersPlugin: Plugin;
|
|
16
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,MAM7B,CAAC"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { remindersDbSchema } from "./db/schema.js";
|
|
2
|
+
import { RemindersMigrationService } from "./services/migration.js";
|
|
3
|
+
const remindersPlugin = {
|
|
4
|
+
name: "@elizaos/plugin-reminders",
|
|
5
|
+
description: "Reminder delivery/escalation data layer: owns the app_reminders schema (plans, attempts, escalation states) carved out of plugin-personal-assistant, with a non-destructive migration from app_lifeops. Requires @elizaos/plugin-sql.",
|
|
6
|
+
services: [RemindersMigrationService],
|
|
7
|
+
schema: remindersDbSchema
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
remindersPlugin
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Plugin } from \"@elizaos/core\";\nimport { remindersDbSchema } from \"./db/schema.js\";\nimport { RemindersMigrationService } from \"./services/migration.js\";\n\n/**\n * `@elizaos/plugin-reminders` — the reminder delivery/escalation data layer.\n *\n * Owns the `app_reminders` schema (reminder plans, per-channel delivery\n * attempts, escalation states) carved out of\n * `@elizaos/plugin-personal-assistant`, plus a non-destructive migration from\n * `app_lifeops`. PA auto-registers this plugin (so the schema + migration run)\n * and its reminder repository now reads/writes `app_reminders`. The\n * delivery/escalation ENGINE stays PA-resident during the decomposition,\n * writing through the carved tables.\n *\n * See `plugins/plugin-personal-assistant/docs/lifeops-extraction-plan.md`.\n */\nexport const remindersPlugin: Plugin = {\n name: \"@elizaos/plugin-reminders\",\n description:\n \"Reminder delivery/escalation data layer: owns the app_reminders schema (plans, attempts, escalation states) carved out of plugin-personal-assistant, with a non-destructive migration from app_lifeops. Requires @elizaos/plugin-sql.\",\n services: [RemindersMigrationService],\n schema: remindersDbSchema,\n};\n"],"mappings":"AACA,SAAS,yBAAyB;AAClC,SAAS,iCAAiC;AAenC,MAAM,kBAA0B;AAAA,EACrC,MAAM;AAAA,EACN,aACE;AAAA,EACF,UAAU,CAAC,yBAAyB;AAAA,EACpC,QAAQ;AACV;","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-destructive data migration for the reminder tables carved out of
|
|
3
|
+
* @elizaos/plugin-personal-assistant.
|
|
4
|
+
*
|
|
5
|
+
* The three reminder tables (`life_reminder_plans`, `life_reminder_attempts`,
|
|
6
|
+
* `life_escalation_states`) used to live in the `app_lifeops` PostgreSQL schema,
|
|
7
|
+
* created by plugin-personal-assistant. They now live in `app_reminders`,
|
|
8
|
+
* created by this plugin's drizzle schema. Existing installs still hold the
|
|
9
|
+
* owner's reminder rows in `app_lifeops`, so on first boot we copy them across —
|
|
10
|
+
* once, idempotently, and WITHOUT ever touching the source.
|
|
11
|
+
*
|
|
12
|
+
* Guards (per table, independently):
|
|
13
|
+
* 1. Skip if the source table does not exist (fresh install / already dropped).
|
|
14
|
+
* 2. Skip if the target table is non-empty (migration already ran, or the
|
|
15
|
+
* plugin owns live data).
|
|
16
|
+
* 3. Otherwise copy every source row that is not already present in the target
|
|
17
|
+
* (a doubly-safe NOT EXISTS guard on the primary key).
|
|
18
|
+
*
|
|
19
|
+
* The source table is NEVER dropped or altered.
|
|
20
|
+
*/
|
|
21
|
+
import { type IAgentRuntime, Service } from "@elizaos/core";
|
|
22
|
+
export declare const REMINDERS_LOG_PREFIX = "[Reminders]";
|
|
23
|
+
export declare const REMINDERS_MIGRATION_SERVICE_TYPE = "reminders_migration";
|
|
24
|
+
export declare const MIGRATED_REMINDER_TABLES: readonly ["life_reminder_plans", "life_reminder_attempts", "life_escalation_states"];
|
|
25
|
+
export type MigratedReminderTable = (typeof MIGRATED_REMINDER_TABLES)[number];
|
|
26
|
+
export type SqlExecutor = (sql: string) => Promise<Array<Record<string, unknown>>>;
|
|
27
|
+
export interface TableMigrationResult {
|
|
28
|
+
table: MigratedReminderTable;
|
|
29
|
+
outcome: "copied" | "source-missing" | "target-non-empty";
|
|
30
|
+
}
|
|
31
|
+
export declare function migrateReminderTable(exec: SqlExecutor, table: MigratedReminderTable): Promise<TableMigrationResult>;
|
|
32
|
+
export declare function migrateReminderTables(exec: SqlExecutor): Promise<TableMigrationResult[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Service whose `start()` performs the one-time, guarded, non-destructive copy
|
|
35
|
+
* of the owner's reminder rows from `app_lifeops` into `app_reminders`.
|
|
36
|
+
*/
|
|
37
|
+
export declare class RemindersMigrationService extends Service {
|
|
38
|
+
static readonly serviceType = "reminders_migration";
|
|
39
|
+
capabilityDescription: string;
|
|
40
|
+
static start(runtime: IAgentRuntime): Promise<RemindersMigrationService>;
|
|
41
|
+
private run;
|
|
42
|
+
stop(): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/services/migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAU,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AAKtE,eAAO,MAAM,wBAAwB,sFAI3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;CAC3D;AA0BD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAkB/B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAOjC;AAmCD;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,OAAO;IACpD,gBAAyB,WAAW,yBAAoC;IAE/D,qBAAqB,SACgG;WAEjH,KAAK,CAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,yBAAyB,CAAC;YAMvB,GAAG;IAqBF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CACrC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { logger, Service } from "@elizaos/core";
|
|
2
|
+
const REMINDERS_LOG_PREFIX = "[Reminders]";
|
|
3
|
+
const REMINDERS_MIGRATION_SERVICE_TYPE = "reminders_migration";
|
|
4
|
+
const SOURCE_SCHEMA = "app_lifeops";
|
|
5
|
+
const TARGET_SCHEMA = "app_reminders";
|
|
6
|
+
const MIGRATED_REMINDER_TABLES = [
|
|
7
|
+
"life_reminder_plans",
|
|
8
|
+
"life_reminder_attempts",
|
|
9
|
+
"life_escalation_states"
|
|
10
|
+
];
|
|
11
|
+
function quoteIdent(name) {
|
|
12
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
13
|
+
}
|
|
14
|
+
async function sourceTableExists(exec, table) {
|
|
15
|
+
const rows = await exec(
|
|
16
|
+
`SELECT to_regclass('${SOURCE_SCHEMA}.${table}') IS NOT NULL AS present`
|
|
17
|
+
);
|
|
18
|
+
return rows[0]?.present === true || rows[0]?.present === "true";
|
|
19
|
+
}
|
|
20
|
+
async function targetTableIsEmpty(exec, table) {
|
|
21
|
+
const rows = await exec(
|
|
22
|
+
`SELECT NOT EXISTS (SELECT 1 FROM ${TARGET_SCHEMA}.${quoteIdent(table)}) AS empty`
|
|
23
|
+
);
|
|
24
|
+
return rows[0]?.empty === true || rows[0]?.empty === "true";
|
|
25
|
+
}
|
|
26
|
+
async function migrateReminderTable(exec, table) {
|
|
27
|
+
if (!await sourceTableExists(exec, table)) {
|
|
28
|
+
return { table, outcome: "source-missing" };
|
|
29
|
+
}
|
|
30
|
+
if (!await targetTableIsEmpty(exec, table)) {
|
|
31
|
+
return { table, outcome: "target-non-empty" };
|
|
32
|
+
}
|
|
33
|
+
const target = `${TARGET_SCHEMA}.${quoteIdent(table)}`;
|
|
34
|
+
const source = `${SOURCE_SCHEMA}.${quoteIdent(table)}`;
|
|
35
|
+
await exec(
|
|
36
|
+
`INSERT INTO ${target}
|
|
37
|
+
SELECT s.* FROM ${source} AS s
|
|
38
|
+
WHERE NOT EXISTS (
|
|
39
|
+
SELECT 1 FROM ${target} AS t WHERE t.id = s.id
|
|
40
|
+
)`
|
|
41
|
+
);
|
|
42
|
+
return { table, outcome: "copied" };
|
|
43
|
+
}
|
|
44
|
+
async function migrateReminderTables(exec) {
|
|
45
|
+
await exec(`CREATE SCHEMA IF NOT EXISTS ${TARGET_SCHEMA}`);
|
|
46
|
+
const results = [];
|
|
47
|
+
for (const table of MIGRATED_REMINDER_TABLES) {
|
|
48
|
+
results.push(await migrateReminderTable(exec, table));
|
|
49
|
+
}
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
function getRuntimeDb(runtime) {
|
|
53
|
+
const db = runtime.db;
|
|
54
|
+
if (!db || typeof db.execute !== "function") {
|
|
55
|
+
throw new Error(
|
|
56
|
+
`${REMINDERS_LOG_PREFIX} runtime.db is unavailable \u2014 @elizaos/plugin-sql must be loaded before @elizaos/plugin-reminders.`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return db;
|
|
60
|
+
}
|
|
61
|
+
function extractRows(result) {
|
|
62
|
+
if (Array.isArray(result)) {
|
|
63
|
+
return result.filter(
|
|
64
|
+
(row) => typeof row === "object" && row !== null && !Array.isArray(row)
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
if (result && typeof result === "object" && "rows" in result) {
|
|
68
|
+
const rows = result.rows;
|
|
69
|
+
if (Array.isArray(rows)) {
|
|
70
|
+
return rows.filter(
|
|
71
|
+
(row) => typeof row === "object" && row !== null && !Array.isArray(row)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
class RemindersMigrationService extends Service {
|
|
78
|
+
static serviceType = REMINDERS_MIGRATION_SERVICE_TYPE;
|
|
79
|
+
capabilityDescription = "Non-destructive one-time copy of reminder rows from app_lifeops into app_reminders during the plugin-reminders carve-out.";
|
|
80
|
+
static async start(runtime) {
|
|
81
|
+
const service = new RemindersMigrationService(runtime);
|
|
82
|
+
await service.run();
|
|
83
|
+
return service;
|
|
84
|
+
}
|
|
85
|
+
async run() {
|
|
86
|
+
const db = getRuntimeDb(this.runtime);
|
|
87
|
+
const { sql } = await import("drizzle-orm");
|
|
88
|
+
const exec = async (statement) => extractRows(await db.execute(sql.raw(statement)));
|
|
89
|
+
const results = await migrateReminderTables(exec);
|
|
90
|
+
const copied = results.filter((r) => r.outcome === "copied");
|
|
91
|
+
if (copied.length > 0) {
|
|
92
|
+
logger.info(
|
|
93
|
+
{ tables: copied.map((r) => r.table) },
|
|
94
|
+
`${REMINDERS_LOG_PREFIX} copied ${copied.length} reminder table(s) from ${SOURCE_SCHEMA} to ${TARGET_SCHEMA}`
|
|
95
|
+
);
|
|
96
|
+
} else {
|
|
97
|
+
logger.debug(
|
|
98
|
+
{ results },
|
|
99
|
+
`${REMINDERS_LOG_PREFIX} no reminder tables required copying (already migrated or fresh install)`
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async stop() {
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export {
|
|
107
|
+
MIGRATED_REMINDER_TABLES,
|
|
108
|
+
REMINDERS_LOG_PREFIX,
|
|
109
|
+
REMINDERS_MIGRATION_SERVICE_TYPE,
|
|
110
|
+
RemindersMigrationService,
|
|
111
|
+
migrateReminderTable,
|
|
112
|
+
migrateReminderTables
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/migration.ts"],"sourcesContent":["/**\n * Non-destructive data migration for the reminder tables carved out of\n * @elizaos/plugin-personal-assistant.\n *\n * The three reminder tables (`life_reminder_plans`, `life_reminder_attempts`,\n * `life_escalation_states`) used to live in the `app_lifeops` PostgreSQL schema,\n * created by plugin-personal-assistant. They now live in `app_reminders`,\n * created by this plugin's drizzle schema. Existing installs still hold the\n * owner's reminder rows in `app_lifeops`, so on first boot we copy them across —\n * once, idempotently, and WITHOUT ever touching the source.\n *\n * Guards (per table, independently):\n * 1. Skip if the source table does not exist (fresh install / already dropped).\n * 2. Skip if the target table is non-empty (migration already ran, or the\n * plugin owns live data).\n * 3. Otherwise copy every source row that is not already present in the target\n * (a doubly-safe NOT EXISTS guard on the primary key).\n *\n * The source table is NEVER dropped or altered.\n */\n\nimport { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\n\nexport const REMINDERS_LOG_PREFIX = \"[Reminders]\";\nexport const REMINDERS_MIGRATION_SERVICE_TYPE = \"reminders_migration\";\n\nconst SOURCE_SCHEMA = \"app_lifeops\";\nconst TARGET_SCHEMA = \"app_reminders\";\n\nexport const MIGRATED_REMINDER_TABLES = [\n \"life_reminder_plans\",\n \"life_reminder_attempts\",\n \"life_escalation_states\",\n] as const;\n\nexport type MigratedReminderTable = (typeof MIGRATED_REMINDER_TABLES)[number];\n\nexport type SqlExecutor = (\n sql: string,\n) => Promise<Array<Record<string, unknown>>>;\n\nexport interface TableMigrationResult {\n table: MigratedReminderTable;\n outcome: \"copied\" | \"source-missing\" | \"target-non-empty\";\n}\n\nfunction quoteIdent(name: string): string {\n return `\"${name.replace(/\"/g, '\"\"')}\"`;\n}\n\nasync function sourceTableExists(\n exec: SqlExecutor,\n table: MigratedReminderTable,\n): Promise<boolean> {\n const rows = await exec(\n `SELECT to_regclass('${SOURCE_SCHEMA}.${table}') IS NOT NULL AS present`,\n );\n return rows[0]?.present === true || rows[0]?.present === \"true\";\n}\n\nasync function targetTableIsEmpty(\n exec: SqlExecutor,\n table: MigratedReminderTable,\n): Promise<boolean> {\n const rows = await exec(\n `SELECT NOT EXISTS (SELECT 1 FROM ${TARGET_SCHEMA}.${quoteIdent(table)}) AS empty`,\n );\n return rows[0]?.empty === true || rows[0]?.empty === \"true\";\n}\n\nexport async function migrateReminderTable(\n exec: SqlExecutor,\n table: MigratedReminderTable,\n): Promise<TableMigrationResult> {\n if (!(await sourceTableExists(exec, table))) {\n return { table, outcome: \"source-missing\" };\n }\n if (!(await targetTableIsEmpty(exec, table))) {\n return { table, outcome: \"target-non-empty\" };\n }\n\n const target = `${TARGET_SCHEMA}.${quoteIdent(table)}`;\n const source = `${SOURCE_SCHEMA}.${quoteIdent(table)}`;\n await exec(\n `INSERT INTO ${target}\n SELECT s.* FROM ${source} AS s\n WHERE NOT EXISTS (\n SELECT 1 FROM ${target} AS t WHERE t.id = s.id\n )`,\n );\n return { table, outcome: \"copied\" };\n}\n\nexport async function migrateReminderTables(\n exec: SqlExecutor,\n): Promise<TableMigrationResult[]> {\n await exec(`CREATE SCHEMA IF NOT EXISTS ${TARGET_SCHEMA}`);\n const results: TableMigrationResult[] = [];\n for (const table of MIGRATED_REMINDER_TABLES) {\n results.push(await migrateReminderTable(exec, table));\n }\n return results;\n}\n\ntype RuntimeDb = {\n execute: (query: unknown) => Promise<unknown>;\n};\n\nfunction getRuntimeDb(runtime: IAgentRuntime): RuntimeDb {\n const db = runtime.db as RuntimeDb | undefined;\n if (!db || typeof db.execute !== \"function\") {\n throw new Error(\n `${REMINDERS_LOG_PREFIX} runtime.db is unavailable — @elizaos/plugin-sql must be loaded before @elizaos/plugin-reminders.`,\n );\n }\n return db;\n}\n\nfunction extractRows(result: unknown): Array<Record<string, unknown>> {\n if (Array.isArray(result)) {\n return result.filter(\n (row): row is Record<string, unknown> =>\n typeof row === \"object\" && row !== null && !Array.isArray(row),\n );\n }\n if (result && typeof result === \"object\" && \"rows\" in result) {\n const rows = (result as { rows: unknown }).rows;\n if (Array.isArray(rows)) {\n return rows.filter(\n (row): row is Record<string, unknown> =>\n typeof row === \"object\" && row !== null && !Array.isArray(row),\n );\n }\n }\n return [];\n}\n\n/**\n * Service whose `start()` performs the one-time, guarded, non-destructive copy\n * of the owner's reminder rows from `app_lifeops` into `app_reminders`.\n */\nexport class RemindersMigrationService extends Service {\n static override readonly serviceType = REMINDERS_MIGRATION_SERVICE_TYPE;\n\n override capabilityDescription =\n \"Non-destructive one-time copy of reminder rows from app_lifeops into app_reminders during the plugin-reminders carve-out.\";\n\n static async start(\n runtime: IAgentRuntime,\n ): Promise<RemindersMigrationService> {\n const service = new RemindersMigrationService(runtime);\n await service.run();\n return service;\n }\n\n private async run(): Promise<void> {\n const db = getRuntimeDb(this.runtime);\n const { sql } = await import(\"drizzle-orm\");\n const exec: SqlExecutor = async (statement) =>\n extractRows(await db.execute(sql.raw(statement)));\n\n const results = await migrateReminderTables(exec);\n const copied = results.filter((r) => r.outcome === \"copied\");\n if (copied.length > 0) {\n logger.info(\n { tables: copied.map((r) => r.table) },\n `${REMINDERS_LOG_PREFIX} copied ${copied.length} reminder table(s) from ${SOURCE_SCHEMA} to ${TARGET_SCHEMA}`,\n );\n } else {\n logger.debug(\n { results },\n `${REMINDERS_LOG_PREFIX} no reminder tables required copying (already migrated or fresh install)`,\n );\n }\n }\n\n override async stop(): Promise<void> {}\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-reminders",
|
|
3
|
-
"version": "2.0.3-beta.
|
|
3
|
+
"version": "2.0.3-beta.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Reminder delivery + escalation data layer for elizaOS agents: owns the app_reminders schema (reminder plans, per-channel delivery attempts, escalation states) carved out of @elizaos/plugin-personal-assistant, with a non-destructive migration from app_lifeops. The delivery/escalation engine is host-wired during the decomposition.",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@elizaos/agent": "2.0.3-beta.
|
|
51
|
-
"@elizaos/core": "2.0.3-beta.
|
|
52
|
-
"@elizaos/plugin-scheduling": "2.0.3-beta.
|
|
53
|
-
"@elizaos/shared": "2.0.3-beta.
|
|
50
|
+
"@elizaos/agent": "2.0.3-beta.7",
|
|
51
|
+
"@elizaos/core": "2.0.3-beta.7",
|
|
52
|
+
"@elizaos/plugin-scheduling": "2.0.3-beta.7",
|
|
53
|
+
"@elizaos/shared": "2.0.3-beta.7",
|
|
54
54
|
"drizzle-orm": "^0.45.1"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@elizaos/plugin-sql": "2.0.3-beta.
|
|
57
|
+
"@elizaos/plugin-sql": "2.0.3-beta.7"
|
|
58
58
|
},
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"typescript": "^6.0.3",
|
|
71
71
|
"vitest": "^4.0.17"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "61094f10458d11055c75b3dd0bae374e3f66bac5"
|
|
74
74
|
}
|