opencode-swarm-plugin 0.62.2 → 0.63.0

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/bin/swarm.js CHANGED
@@ -16662,48 +16662,8 @@ async function runMigrations(db2) {
16662
16662
  }
16663
16663
  }
16664
16664
  const finalVersion = await getCurrentVersion3(db2);
16665
- await healMemorySchema(db2);
16666
16665
  return { applied, current: finalVersion };
16667
16666
  }
16668
- async function healMemorySchema(db2) {
16669
- try {
16670
- const tableCheck = await db2.query(`SELECT name FROM sqlite_master WHERE type='table' AND name='memories'`);
16671
- if (tableCheck.rows.length === 0)
16672
- return;
16673
- const columnsResult = await db2.query(`SELECT name FROM pragma_table_info('memories')`);
16674
- const existingColumns = new Set(columnsResult.rows.map((r) => r.name));
16675
- const expectedColumns = [
16676
- { name: "tags", type: "TEXT", defaultVal: "'[]'" },
16677
- { name: "updated_at", type: "TEXT", defaultVal: "(datetime('now'))" },
16678
- { name: "decay_factor", type: "REAL", defaultVal: "1.0" },
16679
- { name: "access_count", type: "TEXT", defaultVal: "'0'" },
16680
- { name: "last_accessed", type: "TEXT", defaultVal: "(datetime('now'))" },
16681
- { name: "category", type: "TEXT", defaultVal: "NULL" },
16682
- { name: "status", type: "TEXT", defaultVal: "'active'" },
16683
- { name: "valid_from", type: "TEXT", defaultVal: "NULL" },
16684
- { name: "valid_until", type: "TEXT", defaultVal: "NULL" },
16685
- { name: "superseded_by", type: "TEXT", defaultVal: "NULL" },
16686
- { name: "auto_tags", type: "TEXT", defaultVal: "NULL" },
16687
- { name: "keywords", type: "TEXT", defaultVal: "NULL" }
16688
- ];
16689
- let healed = 0;
16690
- for (const col of expectedColumns) {
16691
- if (!existingColumns.has(col.name)) {
16692
- try {
16693
- const defaultClause = col.defaultVal === "NULL" ? "" : ` DEFAULT ${col.defaultVal}`;
16694
- await db2.exec(`ALTER TABLE memories ADD COLUMN ${col.name} ${col.type}${defaultClause}`);
16695
- healed++;
16696
- console.log(`[migrations] healed: added missing column memories.${col.name}`);
16697
- } catch {}
16698
- }
16699
- }
16700
- if (healed > 0) {
16701
- console.log(`[migrations] self-heal: added ${healed} missing column(s) to memories table`);
16702
- }
16703
- } catch (error4) {
16704
- console.warn("[migrations] self-heal failed (non-fatal):", error4.message);
16705
- }
16706
- }
16707
16667
  async function rollbackTo(db2, targetVersion) {
16708
16668
  const currentVersion = await getCurrentVersion3(db2);
16709
16669
  const rolledBack = [];
@@ -53363,7 +53323,7 @@ ${prefix}}`;
53363
53323
  fromDriver(value10) {
53364
53324
  return Array.from(new Float32Array(value10.buffer));
53365
53325
  }
53366
- }), memories, memoryLinks, entities, entityTaxonomy, relationships, memoryEntities, init_memory, init_expressions2, exports_drizzle_orm, init_drizzle_orm, exports_streams, eventsTable, agentsTable, messagesTable, messageRecipientsTable, reservationsTable, locksTable, cursorsTable, evalRecordsTable, swarmContextsTable, decisionTracesTable, entityLinksTable, init_streams, exports_hive, beads, cells, cellEvents, beadLabels, cellLabels, beadComments, cellComments, beadDependencies, cellDependencies, blockedBeadsCache, dirtyBeads, schemaVersion, init_hive, exports_schema, init_schema, init_drizzle, require_entity, require_logger, require_query_promise, require_column, require_column_builder, require_table_utils, require_foreign_keys, require_tracing_utils, require_unique_constraint, require_array, require_common2, require_enum, require_subquery, require_version, require_tracing, require_view_common, require_table, require_sql, require_alias, require_selection_proxy, require_utils, require_delete, require_casing, require_errors, require_int_common, require_bigint, require_bigserial, require_boolean, require_char, require_cidr, require_custom, require_date_common, require_date, require_double_precision, require_inet, require_integer, require_interval, require_json, require_jsonb, require_line, require_macaddr, require_macaddr8, require_numeric, require_point, require_utils2, require_geometry, require_real, require_serial, require_smallint, require_smallserial, require_text, require_time, require_timestamp, require_uuid, require_varchar, require_bit, require_halfvec, require_sparsevec, require_vector, require_columns, require_all, require_table2, require_primary_keys, require_conditions, require_select, require_expressions, require_relations, require_aggregate, require_vector2, require_functions, require_sql2, require_view_base, require_dialect, require_query_builder, require_select2, require_query_builder2, require_insert, require_refresh_materialized_view, require_select_types, require_update, require_query_builders, require_count, require_query, require_raw, require_db, require_alias2, require_checks, require_indexes, require_policies, require_roles, require_sequence, require_view_common2, require_view, require_schema, require_session, require_subquery2, require_utils3, require_utils4, require_pg_core, require_session2, require_driver, require_pglite, exports_libsql_convenience, instances, init_libsql_convenience, exports_lock, DurableLock, DurableLockLive, init_lock, exports_reservation_utils, init_reservation_utils, init_projections_drizzle, exports_store_drizzle, init_store_drizzle, exports_swarm_mail, MAX_INBOX_LIMIT = 5, DEFAULT_TTL_SECONDS = 3600, ADJECTIVES, NOUNS, init_swarm_mail, MAX_INBOX_LIMIT2 = 5, DEFAULT_TTL_SECONDS2 = 3600, ADJECTIVES2, NOUNS2, init_agent_mail, exports_migrations, beadsMigration, cellsViewMigration, cellsViewMigrationLibSQL, beadsMigrationLibSQL, beadsResultColumnsMigration, beadsResultColumnsMigrationLibSQL, beadsMigrations, hiveMigrations, sessionsMigrationLibSQL, hiveMigrationsLibSQL, init_migrations, memoryMigration, memoryMigrationLibSQL, memorySchemaOverhaulLibSQL, sessionMetadataExtensionLibSQL, memorySelfHealColumnsLibSQL, memoryMigrations, memoryMigrationsLibSQL, init_migrations2, exports_migrations2, migrations, init_migrations3, urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", POOL_SIZE_MULTIPLIER = 128, pool, poolOffset, init_nanoid = () => {}, init_decision_trace_store, ClientBuffer, init_client_buffer, exports_streams2, SLOW_QUERY_THRESHOLD_MS = 100, init_streams2, exports_store, adapterCache, TIMESTAMP_SAFE_UNTIL, init_store, init_adapter, exports_dependencies_drizzle, MAX_DEPENDENCY_DEPTH = 100, init_dependencies_drizzle, exports_projections_drizzle, init_projections_drizzle2, exports_dependencies, MAX_DEPENDENCY_DEPTH2 = 100, init_store2, FIELD_SETS, init_pagination, marker = "vercel.ai.error", symbol6, _a, _b, AISDKError, name2 = "AI_APICallError", marker2, symbol22, _a2, _b2, APICallError, name22 = "AI_EmptyResponseBodyError", marker3, symbol32, _a3, _b3, EmptyResponseBodyError, name3 = "AI_InvalidArgumentError", marker4, symbol42, _a4, _b4, InvalidArgumentError, name4 = "AI_InvalidPromptError", marker5, symbol52, _a5, _b5, InvalidPromptError, name5 = "AI_InvalidResponseDataError", marker6, symbol62, _a6, _b6, InvalidResponseDataError, name6 = "AI_JSONParseError", marker7, symbol7, _a7, _b7, JSONParseError, name7 = "AI_LoadAPIKeyError", marker8, symbol8, _a8, _b8, LoadAPIKeyError, name8 = "AI_LoadSettingError", marker9, symbol9, _a9, _b9, LoadSettingError, name9 = "AI_NoContentGeneratedError", marker10, symbol10, _a10, _b10, NoContentGeneratedError, name10 = "AI_NoSuchModelError", marker11, symbol11, _a11, _b11, NoSuchModelError, name11 = "AI_TooManyEmbeddingValuesForCallError", marker12, symbol12, _a12, _b12, TooManyEmbeddingValuesForCallError, name12 = "AI_TypeValidationError", marker13, symbol13, _a13, _b13, TypeValidationError, name13 = "AI_UnsupportedFunctionalityError", marker14, symbol14, _a14, _b14, UnsupportedFunctionalityError, init_dist2, NEVER2, $brand, $ZodAsyncError, globalConfig, init_core3, exports_util2, captureStackTrace, allowsEval, getParsedType2 = (data) => {
53326
+ }), memories, memoryLinks, entities, entityTaxonomy, relationships, memoryEntities, init_memory, init_expressions2, exports_drizzle_orm, init_drizzle_orm, exports_streams, eventsTable, agentsTable, messagesTable, messageRecipientsTable, reservationsTable, locksTable, cursorsTable, evalRecordsTable, swarmContextsTable, decisionTracesTable, entityLinksTable, init_streams, exports_hive, beads, cells, cellEvents, beadLabels, cellLabels, beadComments, cellComments, beadDependencies, cellDependencies, blockedBeadsCache, dirtyBeads, schemaVersion, init_hive, exports_schema, init_schema, init_drizzle, require_entity, require_logger, require_query_promise, require_column, require_column_builder, require_table_utils, require_foreign_keys, require_tracing_utils, require_unique_constraint, require_array, require_common2, require_enum, require_subquery, require_version, require_tracing, require_view_common, require_table, require_sql, require_alias, require_selection_proxy, require_utils, require_delete, require_casing, require_errors, require_int_common, require_bigint, require_bigserial, require_boolean, require_char, require_cidr, require_custom, require_date_common, require_date, require_double_precision, require_inet, require_integer, require_interval, require_json, require_jsonb, require_line, require_macaddr, require_macaddr8, require_numeric, require_point, require_utils2, require_geometry, require_real, require_serial, require_smallint, require_smallserial, require_text, require_time, require_timestamp, require_uuid, require_varchar, require_bit, require_halfvec, require_sparsevec, require_vector, require_columns, require_all, require_table2, require_primary_keys, require_conditions, require_select, require_expressions, require_relations, require_aggregate, require_vector2, require_functions, require_sql2, require_view_base, require_dialect, require_query_builder, require_select2, require_query_builder2, require_insert, require_refresh_materialized_view, require_select_types, require_update, require_query_builders, require_count, require_query, require_raw, require_db, require_alias2, require_checks, require_indexes, require_policies, require_roles, require_sequence, require_view_common2, require_view, require_schema, require_session, require_subquery2, require_utils3, require_utils4, require_pg_core, require_session2, require_driver, require_pglite, exports_libsql_convenience, instances, init_libsql_convenience, exports_lock, DurableLock, DurableLockLive, init_lock, exports_reservation_utils, init_reservation_utils, init_projections_drizzle, exports_store_drizzle, init_store_drizzle, exports_swarm_mail, MAX_INBOX_LIMIT = 5, DEFAULT_TTL_SECONDS = 3600, ADJECTIVES, NOUNS, init_swarm_mail, MAX_INBOX_LIMIT2 = 5, DEFAULT_TTL_SECONDS2 = 3600, ADJECTIVES2, NOUNS2, init_agent_mail, exports_migrations, beadsMigration, cellsViewMigration, cellsViewMigrationLibSQL, beadsMigrationLibSQL, beadsResultColumnsMigration, beadsResultColumnsMigrationLibSQL, beadsMigrations, hiveMigrations, sessionsMigrationLibSQL, hiveMigrationsLibSQL, init_migrations, memoryMigration, memoryMigrations, init_migrations2, exports_migrations2, migrations, init_migrations3, urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", POOL_SIZE_MULTIPLIER = 128, pool, poolOffset, init_nanoid = () => {}, init_decision_trace_store, ClientBuffer, init_client_buffer, exports_streams2, SLOW_QUERY_THRESHOLD_MS = 100, init_streams2, exports_store, adapterCache, TIMESTAMP_SAFE_UNTIL, init_store, init_adapter, exports_dependencies_drizzle, MAX_DEPENDENCY_DEPTH = 100, init_dependencies_drizzle, exports_projections_drizzle, init_projections_drizzle2, exports_dependencies, MAX_DEPENDENCY_DEPTH2 = 100, init_store2, FIELD_SETS, init_pagination, marker = "vercel.ai.error", symbol6, _a, _b, AISDKError, name2 = "AI_APICallError", marker2, symbol22, _a2, _b2, APICallError, name22 = "AI_EmptyResponseBodyError", marker3, symbol32, _a3, _b3, EmptyResponseBodyError, name3 = "AI_InvalidArgumentError", marker4, symbol42, _a4, _b4, InvalidArgumentError, name4 = "AI_InvalidPromptError", marker5, symbol52, _a5, _b5, InvalidPromptError, name5 = "AI_InvalidResponseDataError", marker6, symbol62, _a6, _b6, InvalidResponseDataError, name6 = "AI_JSONParseError", marker7, symbol7, _a7, _b7, JSONParseError, name7 = "AI_LoadAPIKeyError", marker8, symbol8, _a8, _b8, LoadAPIKeyError, name8 = "AI_LoadSettingError", marker9, symbol9, _a9, _b9, LoadSettingError, name9 = "AI_NoContentGeneratedError", marker10, symbol10, _a10, _b10, NoContentGeneratedError, name10 = "AI_NoSuchModelError", marker11, symbol11, _a11, _b11, NoSuchModelError, name11 = "AI_TooManyEmbeddingValuesForCallError", marker12, symbol12, _a12, _b12, TooManyEmbeddingValuesForCallError, name12 = "AI_TypeValidationError", marker13, symbol13, _a13, _b13, TypeValidationError, name13 = "AI_UnsupportedFunctionalityError", marker14, symbol14, _a14, _b14, UnsupportedFunctionalityError, init_dist2, NEVER2, $brand, $ZodAsyncError, globalConfig, init_core3, exports_util2, captureStackTrace, allowsEval, getParsedType2 = (data) => {
53367
53327
  const t = typeof data;
53368
53328
  switch (t) {
53369
53329
  case "undefined":
@@ -121100,212 +121060,9 @@ ${stack.split(`
121100
121060
  DROP INDEX IF EXISTS memories_content_idx;
121101
121061
  DROP INDEX IF EXISTS idx_memories_collection;
121102
121062
  DROP TABLE IF EXISTS memories;
121103
- `
121104
- };
121105
- memoryMigrationLibSQL = {
121106
- version: 9,
121107
- description: "Add semantic memory tables (memories with vector support, FTS5)",
121108
- up: `
121109
- -- ========================================================================
121110
- -- Memories Table
121111
- -- ========================================================================
121112
- CREATE TABLE IF NOT EXISTS memories (
121113
- id TEXT PRIMARY KEY NOT NULL,
121114
- content TEXT NOT NULL,
121115
- metadata TEXT DEFAULT '{}',
121116
- collection TEXT DEFAULT 'default',
121117
- created_at TEXT DEFAULT (datetime('now')),
121118
- confidence REAL DEFAULT 0.7,
121119
- embedding F32_BLOB(1024)
121120
- );
121121
-
121122
- -- Collection filtering index
121123
- CREATE INDEX IF NOT EXISTS idx_memories_collection ON memories(collection);
121124
-
121125
- -- Vector embedding index for fast similarity search
121126
- CREATE INDEX IF NOT EXISTS idx_memories_embedding ON memories(libsql_vector_idx(embedding));
121127
-
121128
- -- ========================================================================
121129
- -- FTS5 virtual table for full-text search
121130
- -- ========================================================================
121131
- CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts
121132
- USING fts5(id UNINDEXED, content, content=memories, content_rowid=rowid);
121133
-
121134
- -- Triggers to keep FTS5 in sync
121135
- CREATE TRIGGER IF NOT EXISTS memories_fts_insert
121136
- AFTER INSERT ON memories
121137
- BEGIN
121138
- INSERT INTO memories_fts(rowid, id, content)
121139
- VALUES (new.rowid, new.id, new.content);
121140
- END;
121141
-
121142
- CREATE TRIGGER IF NOT EXISTS memories_fts_update
121143
- AFTER UPDATE ON memories
121144
- BEGIN
121145
- UPDATE memories_fts
121146
- SET content = new.content
121147
- WHERE rowid = new.rowid;
121148
- END;
121149
-
121150
- CREATE TRIGGER IF NOT EXISTS memories_fts_delete
121151
- AFTER DELETE ON memories
121152
- BEGIN
121153
- DELETE FROM memories_fts WHERE rowid = old.rowid;
121154
- END;
121155
- `,
121156
- down: `
121157
- -- Drop in reverse order
121158
- DROP TRIGGER IF EXISTS memories_fts_delete;
121159
- DROP TRIGGER IF EXISTS memories_fts_update;
121160
- DROP TRIGGER IF EXISTS memories_fts_insert;
121161
- DROP TABLE IF EXISTS memories_fts;
121162
- DROP INDEX IF EXISTS idx_memories_embedding;
121163
- DROP INDEX IF EXISTS idx_memories_collection;
121164
- DROP TABLE IF EXISTS memories;
121165
- `
121166
- };
121167
- memorySchemaOverhaulLibSQL = {
121168
- version: 10,
121169
- description: "Memory schema overhaul: links, entities, relationships, temporal fields",
121170
- up: `
121171
- -- ========================================================================
121172
- -- Add temporal and metadata columns to memories table
121173
- -- ========================================================================
121174
- ALTER TABLE memories ADD COLUMN valid_from TEXT;
121175
- ALTER TABLE memories ADD COLUMN valid_until TEXT;
121176
- ALTER TABLE memories ADD COLUMN superseded_by TEXT REFERENCES memories(id);
121177
- ALTER TABLE memories ADD COLUMN auto_tags TEXT;
121178
- ALTER TABLE memories ADD COLUMN keywords TEXT;
121179
-
121180
- -- ========================================================================
121181
- -- Memory Links Table (Zettelkasten-style bidirectional connections)
121182
- -- ========================================================================
121183
- CREATE TABLE IF NOT EXISTS memory_links (
121184
- id TEXT PRIMARY KEY,
121185
- source_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
121186
- target_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
121187
- link_type TEXT NOT NULL,
121188
- strength REAL DEFAULT 1.0,
121189
- created_at TEXT DEFAULT (datetime('now')),
121190
- UNIQUE(source_id, target_id, link_type)
121191
- );
121192
-
121193
- CREATE INDEX IF NOT EXISTS idx_memory_links_source ON memory_links(source_id);
121194
- CREATE INDEX IF NOT EXISTS idx_memory_links_target ON memory_links(target_id);
121195
-
121196
- -- ========================================================================
121197
- -- Entities Table (Named entities extracted from memories)
121198
- -- ========================================================================
121199
- CREATE TABLE IF NOT EXISTS entities (
121200
- id TEXT PRIMARY KEY,
121201
- name TEXT NOT NULL,
121202
- entity_type TEXT NOT NULL,
121203
- canonical_name TEXT,
121204
- created_at TEXT DEFAULT (datetime('now')),
121205
- updated_at TEXT DEFAULT (datetime('now')),
121206
- UNIQUE(name, entity_type)
121207
- );
121208
-
121209
- CREATE INDEX IF NOT EXISTS idx_entities_type ON entities(entity_type);
121210
- CREATE INDEX IF NOT EXISTS idx_entities_name ON entities(name);
121211
-
121212
- -- ========================================================================
121213
- -- Relationships Table (Entity-entity triples)
121214
- -- ========================================================================
121215
- CREATE TABLE IF NOT EXISTS relationships (
121216
- id TEXT PRIMARY KEY,
121217
- subject_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
121218
- predicate TEXT NOT NULL,
121219
- object_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
121220
- memory_id TEXT REFERENCES memories(id) ON DELETE SET NULL,
121221
- confidence REAL DEFAULT 1.0,
121222
- created_at TEXT DEFAULT (datetime('now')),
121223
- UNIQUE(subject_id, predicate, object_id)
121224
- );
121225
-
121226
- CREATE INDEX IF NOT EXISTS idx_relationships_subject ON relationships(subject_id);
121227
- CREATE INDEX IF NOT EXISTS idx_relationships_object ON relationships(object_id);
121228
- CREATE INDEX IF NOT EXISTS idx_relationships_predicate ON relationships(predicate);
121229
-
121230
- -- ========================================================================
121231
- -- Memory-Entities Junction Table
121232
- -- ========================================================================
121233
- CREATE TABLE IF NOT EXISTS memory_entities (
121234
- memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
121235
- entity_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
121236
- role TEXT,
121237
- PRIMARY KEY(memory_id, entity_id)
121238
- );
121239
- `,
121240
- down: `
121241
- -- Drop tables in dependency order
121242
- DROP TABLE IF EXISTS memory_entities;
121243
- DROP TABLE IF EXISTS relationships;
121244
- DROP INDEX IF EXISTS idx_memory_links_source;
121245
- DROP INDEX IF EXISTS idx_memory_links_target;
121246
- DROP TABLE IF EXISTS memory_links;
121247
- DROP INDEX IF EXISTS idx_entities_type;
121248
- DROP INDEX IF EXISTS idx_entities_name;
121249
- DROP TABLE IF EXISTS entities;
121250
-
121251
- -- Remove columns from memories table (SQLite doesn't support DROP COLUMN until 3.35.0)
121252
- -- In production, these columns can be left as NULL if downgrade is needed
121253
- -- Or recreate table without these columns
121254
- `
121255
- };
121256
- sessionMetadataExtensionLibSQL = {
121257
- version: 11,
121258
- description: "Add session metadata columns (agent_type, session_id, message_role, message_idx, source_path)",
121259
- up: `
121260
- -- ========================================================================
121261
- -- Add session metadata columns to memories table
121262
- -- ========================================================================
121263
- ALTER TABLE memories ADD COLUMN agent_type TEXT;
121264
- ALTER TABLE memories ADD COLUMN session_id TEXT;
121265
- ALTER TABLE memories ADD COLUMN message_role TEXT CHECK(message_role IN ('user', 'assistant', 'system'));
121266
- ALTER TABLE memories ADD COLUMN message_idx INTEGER;
121267
- ALTER TABLE memories ADD COLUMN source_path TEXT;
121268
-
121269
- -- Index for session-based queries
121270
- CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id, message_idx);
121271
-
121272
- -- Index for agent filtering
121273
- CREATE INDEX IF NOT EXISTS idx_memories_agent_type ON memories(agent_type);
121274
-
121275
- -- Index for role filtering
121276
- CREATE INDEX IF NOT EXISTS idx_memories_role ON memories(message_role);
121277
- `,
121278
- down: `
121279
- -- Drop indexes first
121280
- DROP INDEX IF EXISTS idx_memories_role;
121281
- DROP INDEX IF EXISTS idx_memories_agent_type;
121282
- DROP INDEX IF EXISTS idx_memories_session;
121283
-
121284
- -- SQLite doesn't support DROP COLUMN until 3.35.0
121285
- -- In production, these columns can be left as NULL if downgrade is needed
121286
- -- Or recreate table without these columns
121287
- `
121288
- };
121289
- memorySelfHealColumnsLibSQL = {
121290
- version: 12,
121291
- description: "Schema convergence: self-heal missing columns (tags, updated_at, decay_factor, access_count, last_accessed, category, status)",
121292
- up: `
121293
- -- No-op: actual column additions handled by healMemorySchema() post-migration.
121294
- -- This migration just bumps the version number.
121295
- SELECT 1;
121296
- `,
121297
- down: `
121298
- -- Cannot remove columns in older SQLite versions
121299
- SELECT 1;
121300
121063
  `
121301
121064
  };
121302
121065
  memoryMigrations = [memoryMigration];
121303
- memoryMigrationsLibSQL = [
121304
- memoryMigrationLibSQL,
121305
- memorySchemaOverhaulLibSQL,
121306
- sessionMetadataExtensionLibSQL,
121307
- memorySelfHealColumnsLibSQL
121308
- ];
121309
121066
  });
121310
121067
  exports_migrations2 = {};
121311
121068
  __export2(exports_migrations2, {
@@ -121645,7 +121402,7 @@ ${stack.split(`
121645
121402
  `
121646
121403
  },
121647
121404
  ...hiveMigrations,
121648
- ...memoryMigrationsLibSQL
121405
+ ...memoryMigrations
121649
121406
  ];
121650
121407
  });
121651
121408
  init_decision_trace_store = __esm2(() => {
@@ -151898,48 +151655,8 @@ async function runMigrations2(db2) {
151898
151655
  }
151899
151656
  }
151900
151657
  const finalVersion = await getCurrentVersion32(db2);
151901
- await healMemorySchema2(db2);
151902
151658
  return { applied, current: finalVersion };
151903
151659
  }
151904
- async function healMemorySchema2(db2) {
151905
- try {
151906
- const tableCheck = await db2.query(`SELECT name FROM sqlite_master WHERE type='table' AND name='memories'`);
151907
- if (tableCheck.rows.length === 0)
151908
- return;
151909
- const columnsResult = await db2.query(`SELECT name FROM pragma_table_info('memories')`);
151910
- const existingColumns = new Set(columnsResult.rows.map((r) => r.name));
151911
- const expectedColumns = [
151912
- { name: "tags", type: "TEXT", defaultVal: "'[]'" },
151913
- { name: "updated_at", type: "TEXT", defaultVal: "(datetime('now'))" },
151914
- { name: "decay_factor", type: "REAL", defaultVal: "1.0" },
151915
- { name: "access_count", type: "TEXT", defaultVal: "'0'" },
151916
- { name: "last_accessed", type: "TEXT", defaultVal: "(datetime('now'))" },
151917
- { name: "category", type: "TEXT", defaultVal: "NULL" },
151918
- { name: "status", type: "TEXT", defaultVal: "'active'" },
151919
- { name: "valid_from", type: "TEXT", defaultVal: "NULL" },
151920
- { name: "valid_until", type: "TEXT", defaultVal: "NULL" },
151921
- { name: "superseded_by", type: "TEXT", defaultVal: "NULL" },
151922
- { name: "auto_tags", type: "TEXT", defaultVal: "NULL" },
151923
- { name: "keywords", type: "TEXT", defaultVal: "NULL" }
151924
- ];
151925
- let healed = 0;
151926
- for (const col of expectedColumns) {
151927
- if (!existingColumns.has(col.name)) {
151928
- try {
151929
- const defaultClause = col.defaultVal === "NULL" ? "" : ` DEFAULT ${col.defaultVal}`;
151930
- await db2.exec(`ALTER TABLE memories ADD COLUMN ${col.name} ${col.type}${defaultClause}`);
151931
- healed++;
151932
- console.log(`[migrations] healed: added missing column memories.${col.name}`);
151933
- } catch {}
151934
- }
151935
- }
151936
- if (healed > 0) {
151937
- console.log(`[migrations] self-heal: added ${healed} missing column(s) to memories table`);
151938
- }
151939
- } catch (error410) {
151940
- console.warn("[migrations] self-heal failed (non-fatal):", error410.message);
151941
- }
151942
- }
151943
151660
  async function rollbackTo2(db2, targetVersion) {
151944
151661
  const currentVersion = await getCurrentVersion32(db2);
151945
151662
  const rolledBack = [];
@@ -188599,7 +188316,7 @@ ${prefix}}`;
188599
188316
  fromDriver(value102) {
188600
188317
  return Array.from(new Float32Array(value102.buffer));
188601
188318
  }
188602
- }), memories2, memoryLinks2, entities2, entityTaxonomy2, relationships2, memoryEntities2, init_memory3, init_expressions22, exports_drizzle_orm2, init_drizzle_orm2, exports_streams3, eventsTable2, agentsTable2, messagesTable2, messageRecipientsTable2, reservationsTable2, locksTable2, cursorsTable2, evalRecordsTable2, swarmContextsTable2, decisionTracesTable2, entityLinksTable2, init_streams3, exports_hive2, beads2, cells2, cellEvents2, beadLabels2, cellLabels2, beadComments2, cellComments2, beadDependencies2, cellDependencies2, blockedBeadsCache2, dirtyBeads2, schemaVersion2, init_hive2, exports_schema2, init_schema2, init_drizzle2, require_entity2, require_logger2, require_query_promise2, require_column2, require_column_builder2, require_table_utils2, require_foreign_keys2, require_tracing_utils2, require_unique_constraint2, require_array2, require_common22, require_enum2, require_subquery3, require_version3, require_tracing2, require_view_common3, require_table3, require_sql3, require_alias3, require_selection_proxy2, require_utils9, require_delete2, require_casing2, require_errors2, require_int_common2, require_bigint2, require_bigserial2, require_boolean2, require_char2, require_cidr2, require_custom2, require_date_common2, require_date2, require_double_precision2, require_inet2, require_integer2, require_interval2, require_json3, require_jsonb2, require_line2, require_macaddr2, require_macaddr82, require_numeric2, require_point2, require_utils22, require_geometry2, require_real2, require_serial2, require_smallint2, require_smallserial2, require_text2, require_time2, require_timestamp3, require_uuid2, require_varchar2, require_bit2, require_halfvec2, require_sparsevec2, require_vector3, require_columns2, require_all2, require_table22, require_primary_keys2, require_conditions2, require_select3, require_expressions2, require_relations2, require_aggregate2, require_vector22, require_functions2, require_sql22, require_view_base2, require_dialect2, require_query_builder3, require_select22, require_query_builder22, require_insert2, require_refresh_materialized_view2, require_select_types2, require_update2, require_query_builders2, require_count2, require_query2, require_raw2, require_db2, require_alias22, require_checks2, require_indexes2, require_policies2, require_roles2, require_sequence2, require_view_common22, require_view2, require_schema3, require_session3, require_subquery22, require_utils32, require_utils42, require_pg_core2, require_session22, require_driver2, require_pglite2, exports_libsql_convenience2, instances2, init_libsql_convenience2, exports_lock2, DurableLock2, DurableLockLive2, init_lock2, exports_reservation_utils2, init_reservation_utils2, init_projections_drizzle3, exports_store_drizzle2, init_store_drizzle2, exports_swarm_mail2, MAX_INBOX_LIMIT3 = 5, DEFAULT_TTL_SECONDS3 = 3600, ADJECTIVES3, NOUNS3, init_swarm_mail2, MAX_INBOX_LIMIT22 = 5, DEFAULT_TTL_SECONDS22 = 3600, ADJECTIVES22, NOUNS22, init_agent_mail2, exports_migrations3, beadsMigration2, cellsViewMigration2, cellsViewMigrationLibSQL2, beadsMigrationLibSQL2, beadsResultColumnsMigration2, beadsResultColumnsMigrationLibSQL2, beadsMigrations2, hiveMigrations2, sessionsMigrationLibSQL2, hiveMigrationsLibSQL2, init_migrations4, memoryMigration2, memoryMigrationLibSQL2, memorySchemaOverhaulLibSQL2, sessionMetadataExtensionLibSQL2, memorySelfHealColumnsLibSQL2, memoryMigrations2, memoryMigrationsLibSQL2, init_migrations22, exports_migrations22, migrations2, init_migrations32, urlAlphabet2 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", POOL_SIZE_MULTIPLIER2 = 128, pool2, poolOffset2, init_nanoid2 = () => {}, init_decision_trace_store2, ClientBuffer2, init_client_buffer2, exports_streams22, SLOW_QUERY_THRESHOLD_MS2 = 100, init_streams22, exports_store2, adapterCache4, TIMESTAMP_SAFE_UNTIL2, init_store3, init_adapter3, exports_dependencies_drizzle2, MAX_DEPENDENCY_DEPTH3 = 100, init_dependencies_drizzle2, exports_projections_drizzle2, init_projections_drizzle22, exports_dependencies2, MAX_DEPENDENCY_DEPTH22 = 100, init_store22, FIELD_SETS2, init_pagination2, marker21 = "vercel.ai.error", symbol65, _a24, _b16, AISDKError2, name25 = "AI_APICallError", marker24, symbol222, _a25, _b23, APICallError2, name222 = "AI_EmptyResponseBodyError", marker34, symbol322, _a34, _b33, EmptyResponseBodyError2, name34 = "AI_InvalidArgumentError", marker44, symbol422, _a44, _b43, InvalidArgumentError3, name44 = "AI_InvalidPromptError", marker54, symbol522, _a54, _b53, InvalidPromptError2, name54 = "AI_InvalidResponseDataError", marker64, symbol622, _a64, _b63, InvalidResponseDataError2, name64 = "AI_JSONParseError", marker74, symbol74, _a74, _b73, JSONParseError2, name73 = "AI_LoadAPIKeyError", marker83, symbol83, _a83, _b82, LoadAPIKeyError2, name83 = "AI_LoadSettingError", marker93, symbol93, _a93, _b92, LoadSettingError2, name93 = "AI_NoContentGeneratedError", marker103, symbol103, _a103, _b102, NoContentGeneratedError2, name103 = "AI_NoSuchModelError", marker113, symbol113, _a113, _b112, NoSuchModelError2, name113 = "AI_TooManyEmbeddingValuesForCallError", marker123, symbol123, _a123, _b122, TooManyEmbeddingValuesForCallError2, name123 = "AI_TypeValidationError", marker133, symbol133, _a133, _b132, TypeValidationError2, name133 = "AI_UnsupportedFunctionalityError", marker143, symbol143, _a143, _b142, UnsupportedFunctionalityError2, init_dist11, NEVER22, $brand6, $ZodAsyncError6, globalConfig6, init_core33, exports_util22, captureStackTrace6, allowsEval6, getParsedType22 = (data) => {
188319
+ }), memories2, memoryLinks2, entities2, entityTaxonomy2, relationships2, memoryEntities2, init_memory3, init_expressions22, exports_drizzle_orm2, init_drizzle_orm2, exports_streams3, eventsTable2, agentsTable2, messagesTable2, messageRecipientsTable2, reservationsTable2, locksTable2, cursorsTable2, evalRecordsTable2, swarmContextsTable2, decisionTracesTable2, entityLinksTable2, init_streams3, exports_hive2, beads2, cells2, cellEvents2, beadLabels2, cellLabels2, beadComments2, cellComments2, beadDependencies2, cellDependencies2, blockedBeadsCache2, dirtyBeads2, schemaVersion2, init_hive2, exports_schema2, init_schema2, init_drizzle2, require_entity2, require_logger2, require_query_promise2, require_column2, require_column_builder2, require_table_utils2, require_foreign_keys2, require_tracing_utils2, require_unique_constraint2, require_array2, require_common22, require_enum2, require_subquery3, require_version3, require_tracing2, require_view_common3, require_table3, require_sql3, require_alias3, require_selection_proxy2, require_utils9, require_delete2, require_casing2, require_errors2, require_int_common2, require_bigint2, require_bigserial2, require_boolean2, require_char2, require_cidr2, require_custom2, require_date_common2, require_date2, require_double_precision2, require_inet2, require_integer2, require_interval2, require_json3, require_jsonb2, require_line2, require_macaddr2, require_macaddr82, require_numeric2, require_point2, require_utils22, require_geometry2, require_real2, require_serial2, require_smallint2, require_smallserial2, require_text2, require_time2, require_timestamp3, require_uuid2, require_varchar2, require_bit2, require_halfvec2, require_sparsevec2, require_vector3, require_columns2, require_all2, require_table22, require_primary_keys2, require_conditions2, require_select3, require_expressions2, require_relations2, require_aggregate2, require_vector22, require_functions2, require_sql22, require_view_base2, require_dialect2, require_query_builder3, require_select22, require_query_builder22, require_insert2, require_refresh_materialized_view2, require_select_types2, require_update2, require_query_builders2, require_count2, require_query2, require_raw2, require_db2, require_alias22, require_checks2, require_indexes2, require_policies2, require_roles2, require_sequence2, require_view_common22, require_view2, require_schema3, require_session3, require_subquery22, require_utils32, require_utils42, require_pg_core2, require_session22, require_driver2, require_pglite2, exports_libsql_convenience2, instances2, init_libsql_convenience2, exports_lock2, DurableLock2, DurableLockLive2, init_lock2, exports_reservation_utils2, init_reservation_utils2, init_projections_drizzle3, exports_store_drizzle2, init_store_drizzle2, exports_swarm_mail2, MAX_INBOX_LIMIT3 = 5, DEFAULT_TTL_SECONDS3 = 3600, ADJECTIVES3, NOUNS3, init_swarm_mail2, MAX_INBOX_LIMIT22 = 5, DEFAULT_TTL_SECONDS22 = 3600, ADJECTIVES22, NOUNS22, init_agent_mail2, exports_migrations3, beadsMigration2, cellsViewMigration2, cellsViewMigrationLibSQL2, beadsMigrationLibSQL2, beadsResultColumnsMigration2, beadsResultColumnsMigrationLibSQL2, beadsMigrations2, hiveMigrations2, sessionsMigrationLibSQL2, hiveMigrationsLibSQL2, init_migrations4, memoryMigration2, memoryMigrations2, init_migrations22, exports_migrations22, migrations2, init_migrations32, urlAlphabet2 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", POOL_SIZE_MULTIPLIER2 = 128, pool2, poolOffset2, init_nanoid2 = () => {}, init_decision_trace_store2, ClientBuffer2, init_client_buffer2, exports_streams22, SLOW_QUERY_THRESHOLD_MS2 = 100, init_streams22, exports_store2, adapterCache4, TIMESTAMP_SAFE_UNTIL2, init_store3, init_adapter3, exports_dependencies_drizzle2, MAX_DEPENDENCY_DEPTH3 = 100, init_dependencies_drizzle2, exports_projections_drizzle2, init_projections_drizzle22, exports_dependencies2, MAX_DEPENDENCY_DEPTH22 = 100, init_store22, FIELD_SETS2, init_pagination2, marker21 = "vercel.ai.error", symbol65, _a24, _b16, AISDKError2, name25 = "AI_APICallError", marker24, symbol222, _a25, _b23, APICallError2, name222 = "AI_EmptyResponseBodyError", marker34, symbol322, _a34, _b33, EmptyResponseBodyError2, name34 = "AI_InvalidArgumentError", marker44, symbol422, _a44, _b43, InvalidArgumentError3, name44 = "AI_InvalidPromptError", marker54, symbol522, _a54, _b53, InvalidPromptError2, name54 = "AI_InvalidResponseDataError", marker64, symbol622, _a64, _b63, InvalidResponseDataError2, name64 = "AI_JSONParseError", marker74, symbol74, _a74, _b73, JSONParseError2, name73 = "AI_LoadAPIKeyError", marker83, symbol83, _a83, _b82, LoadAPIKeyError2, name83 = "AI_LoadSettingError", marker93, symbol93, _a93, _b92, LoadSettingError2, name93 = "AI_NoContentGeneratedError", marker103, symbol103, _a103, _b102, NoContentGeneratedError2, name103 = "AI_NoSuchModelError", marker113, symbol113, _a113, _b112, NoSuchModelError2, name113 = "AI_TooManyEmbeddingValuesForCallError", marker123, symbol123, _a123, _b122, TooManyEmbeddingValuesForCallError2, name123 = "AI_TypeValidationError", marker133, symbol133, _a133, _b132, TypeValidationError2, name133 = "AI_UnsupportedFunctionalityError", marker143, symbol143, _a143, _b142, UnsupportedFunctionalityError2, init_dist11, NEVER22, $brand6, $ZodAsyncError6, globalConfig6, init_core33, exports_util22, captureStackTrace6, allowsEval6, getParsedType22 = (data) => {
188603
188320
  const t = typeof data;
188604
188321
  switch (t) {
188605
188322
  case "undefined":
@@ -256336,212 +256053,9 @@ ${stack.split(`
256336
256053
  DROP INDEX IF EXISTS memories_content_idx;
256337
256054
  DROP INDEX IF EXISTS idx_memories_collection;
256338
256055
  DROP TABLE IF EXISTS memories;
256339
- `
256340
- };
256341
- memoryMigrationLibSQL2 = {
256342
- version: 9,
256343
- description: "Add semantic memory tables (memories with vector support, FTS5)",
256344
- up: `
256345
- -- ========================================================================
256346
- -- Memories Table
256347
- -- ========================================================================
256348
- CREATE TABLE IF NOT EXISTS memories (
256349
- id TEXT PRIMARY KEY NOT NULL,
256350
- content TEXT NOT NULL,
256351
- metadata TEXT DEFAULT '{}',
256352
- collection TEXT DEFAULT 'default',
256353
- created_at TEXT DEFAULT (datetime('now')),
256354
- confidence REAL DEFAULT 0.7,
256355
- embedding F32_BLOB(1024)
256356
- );
256357
-
256358
- -- Collection filtering index
256359
- CREATE INDEX IF NOT EXISTS idx_memories_collection ON memories(collection);
256360
-
256361
- -- Vector embedding index for fast similarity search
256362
- CREATE INDEX IF NOT EXISTS idx_memories_embedding ON memories(libsql_vector_idx(embedding));
256363
-
256364
- -- ========================================================================
256365
- -- FTS5 virtual table for full-text search
256366
- -- ========================================================================
256367
- CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts
256368
- USING fts5(id UNINDEXED, content, content=memories, content_rowid=rowid);
256369
-
256370
- -- Triggers to keep FTS5 in sync
256371
- CREATE TRIGGER IF NOT EXISTS memories_fts_insert
256372
- AFTER INSERT ON memories
256373
- BEGIN
256374
- INSERT INTO memories_fts(rowid, id, content)
256375
- VALUES (new.rowid, new.id, new.content);
256376
- END;
256377
-
256378
- CREATE TRIGGER IF NOT EXISTS memories_fts_update
256379
- AFTER UPDATE ON memories
256380
- BEGIN
256381
- UPDATE memories_fts
256382
- SET content = new.content
256383
- WHERE rowid = new.rowid;
256384
- END;
256385
-
256386
- CREATE TRIGGER IF NOT EXISTS memories_fts_delete
256387
- AFTER DELETE ON memories
256388
- BEGIN
256389
- DELETE FROM memories_fts WHERE rowid = old.rowid;
256390
- END;
256391
- `,
256392
- down: `
256393
- -- Drop in reverse order
256394
- DROP TRIGGER IF EXISTS memories_fts_delete;
256395
- DROP TRIGGER IF EXISTS memories_fts_update;
256396
- DROP TRIGGER IF EXISTS memories_fts_insert;
256397
- DROP TABLE IF EXISTS memories_fts;
256398
- DROP INDEX IF EXISTS idx_memories_embedding;
256399
- DROP INDEX IF EXISTS idx_memories_collection;
256400
- DROP TABLE IF EXISTS memories;
256401
- `
256402
- };
256403
- memorySchemaOverhaulLibSQL2 = {
256404
- version: 10,
256405
- description: "Memory schema overhaul: links, entities, relationships, temporal fields",
256406
- up: `
256407
- -- ========================================================================
256408
- -- Add temporal and metadata columns to memories table
256409
- -- ========================================================================
256410
- ALTER TABLE memories ADD COLUMN valid_from TEXT;
256411
- ALTER TABLE memories ADD COLUMN valid_until TEXT;
256412
- ALTER TABLE memories ADD COLUMN superseded_by TEXT REFERENCES memories(id);
256413
- ALTER TABLE memories ADD COLUMN auto_tags TEXT;
256414
- ALTER TABLE memories ADD COLUMN keywords TEXT;
256415
-
256416
- -- ========================================================================
256417
- -- Memory Links Table (Zettelkasten-style bidirectional connections)
256418
- -- ========================================================================
256419
- CREATE TABLE IF NOT EXISTS memory_links (
256420
- id TEXT PRIMARY KEY,
256421
- source_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
256422
- target_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
256423
- link_type TEXT NOT NULL,
256424
- strength REAL DEFAULT 1.0,
256425
- created_at TEXT DEFAULT (datetime('now')),
256426
- UNIQUE(source_id, target_id, link_type)
256427
- );
256428
-
256429
- CREATE INDEX IF NOT EXISTS idx_memory_links_source ON memory_links(source_id);
256430
- CREATE INDEX IF NOT EXISTS idx_memory_links_target ON memory_links(target_id);
256431
-
256432
- -- ========================================================================
256433
- -- Entities Table (Named entities extracted from memories)
256434
- -- ========================================================================
256435
- CREATE TABLE IF NOT EXISTS entities (
256436
- id TEXT PRIMARY KEY,
256437
- name TEXT NOT NULL,
256438
- entity_type TEXT NOT NULL,
256439
- canonical_name TEXT,
256440
- created_at TEXT DEFAULT (datetime('now')),
256441
- updated_at TEXT DEFAULT (datetime('now')),
256442
- UNIQUE(name, entity_type)
256443
- );
256444
-
256445
- CREATE INDEX IF NOT EXISTS idx_entities_type ON entities(entity_type);
256446
- CREATE INDEX IF NOT EXISTS idx_entities_name ON entities(name);
256447
-
256448
- -- ========================================================================
256449
- -- Relationships Table (Entity-entity triples)
256450
- -- ========================================================================
256451
- CREATE TABLE IF NOT EXISTS relationships (
256452
- id TEXT PRIMARY KEY,
256453
- subject_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
256454
- predicate TEXT NOT NULL,
256455
- object_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
256456
- memory_id TEXT REFERENCES memories(id) ON DELETE SET NULL,
256457
- confidence REAL DEFAULT 1.0,
256458
- created_at TEXT DEFAULT (datetime('now')),
256459
- UNIQUE(subject_id, predicate, object_id)
256460
- );
256461
-
256462
- CREATE INDEX IF NOT EXISTS idx_relationships_subject ON relationships(subject_id);
256463
- CREATE INDEX IF NOT EXISTS idx_relationships_object ON relationships(object_id);
256464
- CREATE INDEX IF NOT EXISTS idx_relationships_predicate ON relationships(predicate);
256465
-
256466
- -- ========================================================================
256467
- -- Memory-Entities Junction Table
256468
- -- ========================================================================
256469
- CREATE TABLE IF NOT EXISTS memory_entities (
256470
- memory_id TEXT NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
256471
- entity_id TEXT NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
256472
- role TEXT,
256473
- PRIMARY KEY(memory_id, entity_id)
256474
- );
256475
- `,
256476
- down: `
256477
- -- Drop tables in dependency order
256478
- DROP TABLE IF EXISTS memory_entities;
256479
- DROP TABLE IF EXISTS relationships;
256480
- DROP INDEX IF EXISTS idx_memory_links_source;
256481
- DROP INDEX IF EXISTS idx_memory_links_target;
256482
- DROP TABLE IF EXISTS memory_links;
256483
- DROP INDEX IF EXISTS idx_entities_type;
256484
- DROP INDEX IF EXISTS idx_entities_name;
256485
- DROP TABLE IF EXISTS entities;
256486
-
256487
- -- Remove columns from memories table (SQLite doesn't support DROP COLUMN until 3.35.0)
256488
- -- In production, these columns can be left as NULL if downgrade is needed
256489
- -- Or recreate table without these columns
256490
- `
256491
- };
256492
- sessionMetadataExtensionLibSQL2 = {
256493
- version: 11,
256494
- description: "Add session metadata columns (agent_type, session_id, message_role, message_idx, source_path)",
256495
- up: `
256496
- -- ========================================================================
256497
- -- Add session metadata columns to memories table
256498
- -- ========================================================================
256499
- ALTER TABLE memories ADD COLUMN agent_type TEXT;
256500
- ALTER TABLE memories ADD COLUMN session_id TEXT;
256501
- ALTER TABLE memories ADD COLUMN message_role TEXT CHECK(message_role IN ('user', 'assistant', 'system'));
256502
- ALTER TABLE memories ADD COLUMN message_idx INTEGER;
256503
- ALTER TABLE memories ADD COLUMN source_path TEXT;
256504
-
256505
- -- Index for session-based queries
256506
- CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id, message_idx);
256507
-
256508
- -- Index for agent filtering
256509
- CREATE INDEX IF NOT EXISTS idx_memories_agent_type ON memories(agent_type);
256510
-
256511
- -- Index for role filtering
256512
- CREATE INDEX IF NOT EXISTS idx_memories_role ON memories(message_role);
256513
- `,
256514
- down: `
256515
- -- Drop indexes first
256516
- DROP INDEX IF EXISTS idx_memories_role;
256517
- DROP INDEX IF EXISTS idx_memories_agent_type;
256518
- DROP INDEX IF EXISTS idx_memories_session;
256519
-
256520
- -- SQLite doesn't support DROP COLUMN until 3.35.0
256521
- -- In production, these columns can be left as NULL if downgrade is needed
256522
- -- Or recreate table without these columns
256523
- `
256524
- };
256525
- memorySelfHealColumnsLibSQL2 = {
256526
- version: 12,
256527
- description: "Schema convergence: self-heal missing columns (tags, updated_at, decay_factor, access_count, last_accessed, category, status)",
256528
- up: `
256529
- -- No-op: actual column additions handled by healMemorySchema() post-migration.
256530
- -- This migration just bumps the version number.
256531
- SELECT 1;
256532
- `,
256533
- down: `
256534
- -- Cannot remove columns in older SQLite versions
256535
- SELECT 1;
256536
256056
  `
256537
256057
  };
256538
256058
  memoryMigrations2 = [memoryMigration2];
256539
- memoryMigrationsLibSQL2 = [
256540
- memoryMigrationLibSQL2,
256541
- memorySchemaOverhaulLibSQL2,
256542
- sessionMetadataExtensionLibSQL2,
256543
- memorySelfHealColumnsLibSQL2
256544
- ];
256545
256059
  });
256546
256060
  exports_migrations22 = {};
256547
256061
  __export7(exports_migrations22, {
@@ -256881,7 +256395,7 @@ ${stack.split(`
256881
256395
  `
256882
256396
  },
256883
256397
  ...hiveMigrations2,
256884
- ...memoryMigrationsLibSQL2
256398
+ ...memoryMigrations2
256885
256399
  ];
256886
256400
  });
256887
256401
  init_decision_trace_store2 = __esm5(() => {
@@ -305379,7 +304893,7 @@ WD9f
305379
304893
 
305380
304894
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils/index.js
305381
304895
  var require_utils11 = __commonJS((exports2) => {
305382
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
304896
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
305383
304897
  Object.defineProperty(exports2, "__esModule", { value: true });
305384
304898
  exports2.noop = exports2.defaults = exports2.Debug = exports2.getPackageMeta = exports2.zipMap = exports2.CONNECTION_CLOSED_ERROR_MSG = exports2.shuffle = exports2.sample = exports2.resolveTLSProfile = exports2.parseURL = exports2.optimizeErrorStack = exports2.toArg = exports2.convertMapToArray = exports2.convertObjectToArray = exports2.timeout = exports2.packObject = exports2.isInt = exports2.wrapMultiResult = exports2.convertBufferToString = undefined;
305385
304899
  var fs_1 = __require("fs");
@@ -305665,7 +305179,7 @@ var require_argumentParsers = __commonJS((exports2) => {
305665
305179
 
305666
305180
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/Command.js
305667
305181
  var require_Command = __commonJS((exports2) => {
305668
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
305182
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
305669
305183
  Object.defineProperty(exports2, "__esModule", { value: true });
305670
305184
  var commands_1 = require_built();
305671
305185
  var calculateSlot = require_lib();
@@ -329671,7 +329185,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports2, module2) =>
329671
329185
 
329672
329186
  // ../../node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract/index.js
329673
329187
  var require_msgpackr_extract = __commonJS((exports2, module2) => {
329674
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
329188
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
329675
329189
  module2.exports = require_node_gyp_build_optional_packages()(__dirname);
329676
329190
  });
329677
329191
 
@@ -353974,7 +353488,7 @@ var require_indexes3 = __commonJS((exports2, module2) => {
353974
353488
 
353975
353489
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
353976
353490
  var require_thread_stream = __commonJS((exports2, module2) => {
353977
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
353491
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
353978
353492
  var { version: version6 } = require_package();
353979
353493
  var { EventEmitter: EventEmitter5 } = __require("events");
353980
353494
  var { Worker: Worker3 } = __require("worker_threads");
@@ -354395,7 +353909,7 @@ var require_thread_stream = __commonJS((exports2, module2) => {
354395
353909
 
354396
353910
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
354397
353911
  var require_transport = __commonJS((exports2, module2) => {
354398
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
353912
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
354399
353913
  var { createRequire: createRequire6 } = __require("module");
354400
353914
  var getCallers = require_caller();
354401
353915
  var { join: join18, isAbsolute: isAbsolute5, sep: sep4 } = __require("node:path");