@agent-native/core 0.209.2 → 0.209.3-nightly-20261016183441

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.
Files changed (53) hide show
  1. package/dist/agent/context-xray/plugin.js +2 -6
  2. package/dist/agent/context-xray/schema-store.d.ts +1 -0
  3. package/dist/agent/context-xray/schema-store.js +7 -0
  4. package/dist/agent/harness/store.js +3 -0
  5. package/dist/agent/observational-memory/plugin.js +2 -6
  6. package/dist/agent/observational-memory/store.js +3 -0
  7. package/dist/agent/run-store.js +3 -0
  8. package/dist/agent/tool-approval-store.js +4 -0
  9. package/dist/automation/index.d.ts +1 -1
  10. package/dist/chat-threads/store.js +3 -0
  11. package/dist/db/migrations.d.ts +1 -0
  12. package/dist/db/migrations.js +1 -1
  13. package/dist/db/runtime-facts.d.ts +7 -0
  14. package/dist/db/runtime-facts.js +18 -0
  15. package/dist/db/schema-catalog.js +4 -1
  16. package/dist/db/store-ledger.test-helpers.d.ts +5 -0
  17. package/dist/db/store-ledger.test-helpers.js +19 -0
  18. package/dist/db/store-registry.d.ts +34 -0
  19. package/dist/db/store-registry.generated.js +9 -0
  20. package/dist/db/store-registry.js +230 -47
  21. package/dist/db/versioned-store-migrations.d.ts +14 -0
  22. package/dist/db/versioned-store-migrations.js +37 -0
  23. package/dist/db/widen-columns.js +5 -2
  24. package/dist/extensions/html-shell.js +67 -0
  25. package/dist/integrations/remote-devices-store.js +3 -0
  26. package/dist/jobs/run-history.d.ts +3 -2
  27. package/dist/jobs/run-history.js +5 -5
  28. package/dist/jobs/scheduler-health.d.ts +3 -2
  29. package/dist/jobs/scheduler-health.js +5 -5
  30. package/dist/oauth-tokens/store.js +3 -0
  31. package/dist/observability/routes.d.ts +7 -7
  32. package/dist/observability/store.js +4 -0
  33. package/dist/org/index.d.ts +1 -1
  34. package/dist/org/plugin.js +2 -4
  35. package/dist/org/schema-store.d.ts +1 -0
  36. package/dist/org/schema-store.js +13 -0
  37. package/dist/provider-api/actions/custom-provider-registration.d.ts +15 -15
  38. package/dist/provider-api/actions/provider-api.d.ts +16 -16
  39. package/dist/resources/handlers.d.ts +1 -1
  40. package/dist/resources/store.js +5 -2
  41. package/dist/secrets/routes.d.ts +10 -10
  42. package/dist/server/agent-engine-ollama-models-route.d.ts +2 -2
  43. package/dist/server/auth-plugin.js +2 -6
  44. package/dist/server/identity-sso-store.js +3 -0
  45. package/dist/server/release-migrations.js +0 -57
  46. package/dist/server/release-schema.js +10 -2
  47. package/dist/triggers/actions/manage-automation.d.ts +3 -3
  48. package/dist/triggers/event-queue.d.ts +4 -2
  49. package/dist/triggers/event-queue.js +38 -38
  50. package/dist/usage/alerts-store.js +3 -0
  51. package/dist/workspace-connections/groups.js +4 -0
  52. package/dist/workspace-connections/store.js +3 -0
  53. package/package.json +3 -3
@@ -1,14 +1,10 @@
1
- import { runMigrations } from "../../db/migrations.js";
2
1
  import { awaitBootstrap, markDefaultPluginProvided, } from "../../server/framework-request-handler.js";
3
- import { CONTEXT_XRAY_MIGRATIONS } from "./migrations.js";
2
+ import { contextXrayStore } from "./schema-store.js";
4
3
  export function createContextXrayPlugin() {
5
- const migrate = runMigrations(CONTEXT_XRAY_MIGRATIONS, {
6
- table: "_context_xray_migrations",
7
- });
8
4
  return async (nitroApp) => {
9
5
  markDefaultPluginProvided(nitroApp, "context-xray");
10
6
  await awaitBootstrap(nitroApp);
11
- await migrate(nitroApp);
7
+ await contextXrayStore.ready();
12
8
  };
13
9
  }
14
10
  export const defaultContextXrayPlugin = createContextXrayPlugin();
@@ -0,0 +1 @@
1
+ export declare const contextXrayStore: import("../../db/store-registry.js").Store;
@@ -0,0 +1,7 @@
1
+ import { defineStore } from "../../db/store-registry.js";
2
+ import { fromMigrationEntries } from "../../db/versioned-store-migrations.js";
3
+ import { CONTEXT_XRAY_MIGRATIONS } from "./migrations.js";
4
+ export const contextXrayStore = defineStore({
5
+ id: "context_xray",
6
+ migrations: fromMigrationEntries("_context_xray_migrations", CONTEXT_XRAY_MIGRATIONS, { ranAtBoot: true }),
7
+ });
@@ -1,6 +1,8 @@
1
1
  import { getDbExec } from "../../db/client.js";
2
2
  import { ensureColumnExists, ensureIndexExists, ensureTableExists, } from "../../db/ddl-guard.js";
3
3
  import { defineStore } from "../../db/store-registry.js";
4
+ import { fromMigrationEntries } from "../../db/versioned-store-migrations.js";
5
+ import { AGENT_HARNESS_SESSION_MIGRATIONS, AGENT_HARNESS_SESSION_MIGRATIONS_TABLE, } from "./migrations.js";
4
6
  export class AgentHarnessSessionConflictError extends Error {
5
7
  constructor(sessionId) {
6
8
  super(`Harness session ${sessionId} changed concurrently; retry the operation.`);
@@ -58,6 +60,7 @@ export const agentHarnessSessionsStore = defineStore({
58
60
  await ensureIndexExists("idx_agent_harness_sessions_owner", `CREATE INDEX IF NOT EXISTS idx_agent_harness_sessions_owner ON agent_harness_sessions(owner_email, updated_at)`);
59
61
  },
60
62
  },
63
+ ...fromMigrationEntries(AGENT_HARNESS_SESSION_MIGRATIONS_TABLE, AGENT_HARNESS_SESSION_MIGRATIONS),
61
64
  ],
62
65
  });
63
66
  export function ensureAgentHarnessSessionTables() {
@@ -1,14 +1,10 @@
1
- import { runMigrations } from "../../db/migrations.js";
2
1
  import { awaitBootstrap, markDefaultPluginProvided, } from "../../server/framework-request-handler.js";
3
- import { OBSERVATIONAL_MEMORY_MIGRATIONS } from "./migrations.js";
2
+ import { observationalMemoryStore } from "./store.js";
4
3
  export function createObservationalMemoryPlugin() {
5
- const migrate = runMigrations(OBSERVATIONAL_MEMORY_MIGRATIONS, {
6
- table: "_observational_memory_migrations",
7
- });
8
4
  return async (nitroApp) => {
9
5
  markDefaultPluginProvided(nitroApp, "observational-memory");
10
6
  await awaitBootstrap(nitroApp);
11
- await migrate(nitroApp);
7
+ await observationalMemoryStore.ready();
12
8
  };
13
9
  }
14
10
  export const defaultObservationalMemoryPlugin = createObservationalMemoryPlugin();
@@ -14,7 +14,9 @@
14
14
  import { getDbExec } from "../../db/client.js";
15
15
  import { ensureTableExists, ensureIndexExists } from "../../db/ddl-guard.js";
16
16
  import { defineStore } from "../../db/store-registry.js";
17
+ import { fromMigrationEntries } from "../../db/versioned-store-migrations.js";
17
18
  import { widenIntColumnsToBigInt } from "../../db/widen-columns.js";
19
+ import { OBSERVATIONAL_MEMORY_MIGRATIONS } from "./migrations.js";
18
20
  export const observationalMemoryStore = defineStore({
19
21
  id: "observational_memory",
20
22
  migrations: [
@@ -53,6 +55,7 @@ export const observationalMemoryStore = defineStore({
53
55
  ]);
54
56
  },
55
57
  },
58
+ ...fromMigrationEntries("_observational_memory_migrations", OBSERVATIONAL_MEMORY_MIGRATIONS, { ranAtBoot: true }),
56
59
  ],
57
60
  });
58
61
  export function ensureTable() {
@@ -3,6 +3,7 @@ import { isArtifactReceipt, } from "../artifacts/detect.js";
3
3
  import { getDbExec } from "../db/client.js";
4
4
  import { ensureColumnExists, ensureTableExists } from "../db/ddl-guard.js";
5
5
  import { defineStore } from "../db/store-registry.js";
6
+ import { fromMigrationEntries } from "../db/versioned-store-migrations.js";
6
7
  import { widenIntColumnsToBigInt } from "../db/widen-columns.js";
7
8
  import { automationRecoveryMessagesForLocale } from "../localization/automation-recovery-messages.js";
8
9
  import { lockAndAssertServicePrincipalMayStartRun, prepareServicePrincipalRunStart, recordServicePrincipalDenial, } from "../org/service-principal-guard.js";
@@ -13,6 +14,7 @@ import { approvalKeyForHistory } from "./approval-key.js";
13
14
  import { admitAutoContinue, admitManualContinue, } from "./auto-continue.js";
14
15
  import { AGENT_CHAT_RECOVERY_OF_RUN_FIELD } from "./durable-background.js";
15
16
  import { LLM_MISSING_CREDENTIALS_ERROR_CODE, LLM_MISSING_CREDENTIALS_MESSAGE, } from "./engine/credential-errors.js";
17
+ import { AGENT_RUN_MIGRATIONS, AGENT_RUN_MIGRATIONS_TABLE, } from "./run-migrations.js";
16
18
  import { isConsistentToolCallInputFingerprint, isUnavailableToolCallInput, toolCallInputFingerprint, } from "./tool-call-journal.js";
17
19
  import { CONTINUATION_REASONS, isContinuationTerminalReason } from "./types.js";
18
20
  export const RUN_STALE_MS = 15_000;
@@ -266,6 +268,7 @@ export const agentRunsStore = defineStore({
266
268
  await widenIntColumnsToBigInt("agent_tool_ledger", ["completed_at"]);
267
269
  },
268
270
  },
271
+ ...fromMigrationEntries(AGENT_RUN_MIGRATIONS_TABLE, AGENT_RUN_MIGRATIONS),
269
272
  ],
270
273
  });
271
274
  export function ensureRunTables() {
@@ -2,7 +2,9 @@ import { createHash, randomUUID } from "node:crypto";
2
2
  import { getDbExec } from "../db/client.js";
3
3
  import { ensureColumnExists, ensureIndexExists, ensureTableExists, } from "../db/ddl-guard.js";
4
4
  import { defineStore } from "../db/store-registry.js";
5
+ import { fromMigrationEntries } from "../db/versioned-store-migrations.js";
5
6
  import { hashAgentToolApprovalKey } from "./approval-key.js";
7
+ import { AGENT_TOOL_APPROVAL_MIGRATIONS, AGENT_TOOL_APPROVAL_MIGRATIONS_TABLE, } from "./tool-approval-migrations.js";
6
8
  import { AGENT_TOOL_APPROVAL_INDEX_SQL, AGENT_TOOL_APPROVAL_LOGICAL_INDEX_SQL, AGENT_TOOL_APPROVAL_POLICY_INDEX_SQL, AGENT_TOOL_APPROVAL_POLICY_REVISION_COLUMN_SQL, AGENT_TOOL_APPROVAL_POLICY_TABLE_SQL, AGENT_TOOL_APPROVAL_RECOVERY_INDEX_SQL, AGENT_TOOL_APPROVAL_REVISION_COLUMN_SQL, AGENT_TOOL_APPROVAL_TABLE_SQL, } from "./tool-approval-migrations.js";
7
9
  export { hashAgentToolApprovalKey } from "./approval-key.js";
8
10
  const APPROVAL_TTL_MS = 60 * 60_000;
@@ -25,6 +27,7 @@ export const agentToolApprovalsStore = defineStore({
25
27
  await ensureColumnExists("agent_tool_approvals", "tool_revision", AGENT_TOOL_APPROVAL_REVISION_COLUMN_SQL);
26
28
  },
27
29
  },
30
+ ...fromMigrationEntries(AGENT_TOOL_APPROVAL_MIGRATIONS_TABLE, AGENT_TOOL_APPROVAL_MIGRATIONS.filter((entry) => entry.version <= 3)),
28
31
  ],
29
32
  });
30
33
  export function ensureAgentToolApprovalTable() {
@@ -46,6 +49,7 @@ export const agentToolApprovalPoliciesStore = defineStore({
46
49
  await ensureColumnExists("agent_tool_approval_policies", "tool_revision", AGENT_TOOL_APPROVAL_POLICY_REVISION_COLUMN_SQL);
47
50
  },
48
51
  },
52
+ ...fromMigrationEntries(AGENT_TOOL_APPROVAL_MIGRATIONS_TABLE, AGENT_TOOL_APPROVAL_MIGRATIONS.filter((entry) => entry.version === 4)),
49
53
  ],
50
54
  });
51
55
  export function ensureAgentToolApprovalPolicyTable() {
@@ -139,8 +139,8 @@ export declare function createAutomationCallbackHandler(runtime: AutomationRunti
139
139
  duplicate?: undefined;
140
140
  eventId?: undefined;
141
141
  } | {
142
+ error?: undefined;
142
143
  accepted: boolean;
143
144
  duplicate: boolean;
144
145
  eventId: string;
145
- error?: undefined;
146
146
  }>;
@@ -7,6 +7,7 @@ import { getDbExec } from "../db/client.js";
7
7
  import { createGetDb } from "../db/create-get-db.js";
8
8
  import { ensureColumnExists, ensureIndexExists, ensureTableExists, } from "../db/ddl-guard.js";
9
9
  import { defineStore } from "../db/store-registry.js";
10
+ import { fromMigrationEntries } from "../db/versioned-store-migrations.js";
10
11
  import { widenIntColumnsToBigInt } from "../db/widen-columns.js";
11
12
  import { getRequestOrgId } from "../server/request-context.js";
12
13
  import { assertNoInlineImageBytes, stripInlineBytes, } from "../shared/inline-bytes.js";
@@ -14,6 +15,7 @@ import { resolveAccess } from "../sharing/access.js";
14
15
  import { registerShareableResource } from "../sharing/registry.js";
15
16
  import { roleSatisfies } from "../sharing/schema.js";
16
17
  import { emitChatThreadChange } from "./emitter.js";
18
+ import { CHAT_THREAD_SCHEMA_MIGRATIONS, CHAT_THREAD_SCHEMA_MIGRATIONS_TABLE, } from "./schema-migrations.js";
17
19
  import { chatThreads, chatThreadShares, CHAT_THREAD_SHARES_CREATE_SQL, CHAT_THREAD_SHARES_RESOURCE_INDEX_SQL, } from "./schema.js";
18
20
  /**
19
21
  * Per-thread async mutex. Read-modify-write on the `thread_data` JSON blob
@@ -155,6 +157,7 @@ export const chatThreadsStore = defineStore({
155
157
  await ensureIndexExists("chat_thread_shares_resource_idx", CHAT_THREAD_SHARES_RESOURCE_INDEX_SQL);
156
158
  },
157
159
  },
160
+ ...fromMigrationEntries(CHAT_THREAD_SCHEMA_MIGRATIONS_TABLE, CHAT_THREAD_SCHEMA_MIGRATIONS, { data: [3] }),
158
161
  ],
159
162
  });
160
163
  function ensureTable() {
@@ -3,6 +3,7 @@ type NitroPluginDef = (nitroApp: any) => void | Promise<void>;
3
3
  export declare function isDuplicateColumnError(err: unknown): boolean;
4
4
  /** True when the connected Postgres role cannot apply the migration. */
5
5
  export declare function isPermissionError(err: unknown): boolean;
6
+ export declare function splitSqlStatements(sql: string): string[];
6
7
  export interface RunMigrationsOptions {
7
8
  runInServerlessRequest?: boolean;
8
9
  table: string;
@@ -80,7 +80,7 @@ function isMissingRelationError(err) {
80
80
  const e = err;
81
81
  return (e?.code === "42P01" || /relation .* does not exist/i.test(e?.message ?? ""));
82
82
  }
83
- function splitSqlStatements(sql) {
83
+ export function splitSqlStatements(sql) {
84
84
  const out = [];
85
85
  let buf = "";
86
86
  let i = 0;
@@ -9,3 +9,10 @@ export declare function retryOnDdlRace<T>(fn: () => Promise<T>): Promise<T>;
9
9
  * client, so modules that mock `./client.js` keep working.
10
10
  */
11
11
  export declare function dbClientGeneration(): number;
12
+ /**
13
+ * True while a store migration runs that the ledger will record once it
14
+ * resolves. Helpers that swallow failures elsewhere must rethrow here, or the
15
+ * ledger records a step that never happened and never retries it.
16
+ */
17
+ export declare function isRecordingStoreMigration(): boolean;
18
+ export declare function runRecordingStoreMigration<T>(run: () => Promise<T>): Promise<T>;
@@ -1,3 +1,4 @@
1
+ import { getAsyncLocalStorageCtor } from "../shared/optional-node-builtins.js";
1
2
  /**
2
3
  * Dependency-free database runtime facts. Kept out of `./client.js` so the
3
4
  * store runner does not require every `vi.mock("../db/client.js")` to stub them.
@@ -39,3 +40,20 @@ export function dbClientGeneration() {
39
40
  const proc = globalThis.process;
40
41
  return proc?.__agentNativePgliteClientGeneration ?? 0;
41
42
  }
43
+ const AsyncLocalStorageCtor = getAsyncLocalStorageCtor();
44
+ const recordingStoreMigration = AsyncLocalStorageCtor
45
+ ? new AsyncLocalStorageCtor()
46
+ : undefined;
47
+ /**
48
+ * True while a store migration runs that the ledger will record once it
49
+ * resolves. Helpers that swallow failures elsewhere must rethrow here, or the
50
+ * ledger records a step that never happened and never retries it.
51
+ */
52
+ export function isRecordingStoreMigration() {
53
+ return recordingStoreMigration?.getStore() === true;
54
+ }
55
+ export function runRecordingStoreMigration(run) {
56
+ return recordingStoreMigration
57
+ ? recordingStoreMigration.run(true, run)
58
+ : run();
59
+ }
@@ -6,7 +6,7 @@
6
6
  * has no `pg_dump`.
7
7
  */
8
8
  /** Tables whose rows are migration bookkeeping, dumped with their data. */
9
- const BOOKKEEPING_TABLE = /(?:^_.*migrations?$|_migrations$|^_an_store_migrations$)/;
9
+ const BOOKKEEPING_TABLE = /^_[a-z0-9_]*migrations(?:_named)?$/;
10
10
  async function rows(exec, sql) {
11
11
  return (await exec.execute(sql)).rows;
12
12
  }
@@ -21,6 +21,9 @@ function literal(value) {
21
21
  }
22
22
  if (typeof value === "boolean")
23
23
  return value ? "TRUE" : "FALSE";
24
+ // Locale-formatted dates do not parse back; ISO 8601 does, in any time zone.
25
+ if (value instanceof Date)
26
+ return `'${value.toISOString()}'`;
24
27
  return `'${String(value).replace(/'/g, "''")}'`;
25
28
  }
26
29
  const COLUMNS_SQL = `
@@ -0,0 +1,5 @@
1
+ export declare function isStoreLedgerStatement(sql: string): boolean;
2
+ export declare function storeLedgerResult(sql: string): {
3
+ rows: Array<Record<string, unknown>>;
4
+ rowsAffected: number;
5
+ } | undefined;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * For specs that mock `getDbExec()` with a hand-written executor. Outside
3
+ * hosted runtimes a store records its migrations in `_an_store_migrations`
4
+ * (see `store-registry.ts`), so a strict mock sees those statements too.
5
+ * Answer them as an empty ledger: every store then applies its migrations
6
+ * against the mock once per executor, as it did before the ledger.
7
+ */
8
+ const STORE_LEDGER_STATEMENT = /\b_an_store_migration(?:s|_lock)\b/;
9
+ export function isStoreLedgerStatement(sql) {
10
+ return STORE_LEDGER_STATEMENT.test(sql);
11
+ }
12
+ export function storeLedgerResult(sql) {
13
+ if (!isStoreLedgerStatement(sql))
14
+ return undefined;
15
+ return {
16
+ rows: [],
17
+ rowsAffected: /^\s*(?:INSERT|UPDATE|DELETE)\b/i.test(sql) ? 1 : 0,
18
+ };
19
+ }
@@ -13,6 +13,7 @@
13
13
  * kept only for that.
14
14
  */
15
15
  import { type DbExec } from "./client.js";
16
+ import { type MigrationEntry } from "./migrations.js";
16
17
  export declare const STORE_MIGRATIONS_TABLE = "_an_store_migrations";
17
18
  export interface StoreMigration {
18
19
  /** Stable, never renamed: the ledger records it. */
@@ -24,9 +25,37 @@ export interface StoreMigration {
24
25
  readonly kind?: "schema" | "data";
25
26
  readonly sql?: string | readonly string[];
26
27
  readonly run?: (exec: DbExec) => Promise<void>;
28
+ /**
29
+ * The versioned `runMigrations` entry this migration replaces. A database
30
+ * whose old bookkeeping table already records that entry gets a ledger row
31
+ * (`source = 'legacy'`) instead of running it again.
32
+ */
33
+ readonly legacy?: LegacyMigrationRef;
34
+ }
35
+ export interface LegacyMigrationRef {
36
+ /** The `runMigrations` table, e.g. `_chat_thread_schema_migrations`. */
37
+ readonly table: string;
38
+ readonly version: number;
39
+ /** Set for named entries, which were gated by name, not version. */
40
+ readonly name?: string;
41
+ /**
42
+ * Where the list ran on main. A release-only list (the default) keeps
43
+ * running only in the release step. A list that also ran at plugin boot
44
+ * runs everywhere: local runtimes import its history once, and hosted apps
45
+ * without release migrations keep running it through `runMigrations` and
46
+ * its old table, exactly as before.
47
+ */
48
+ readonly ranAtBoot?: boolean;
49
+ /** The original entry, for that hosted `runMigrations` path. */
50
+ readonly entry?: MigrationEntry;
27
51
  }
28
52
  export interface StoreDefinition {
29
53
  readonly id: string;
54
+ /**
55
+ * Stores whose migrations must run first at release, for a migration that
56
+ * reads or alters another store's tables. Registry order is otherwise by id.
57
+ */
58
+ readonly after?: readonly string[];
30
59
  /**
31
60
  * Never provision from a request, even for hosted apps that do not migrate
32
61
  * at release: the release step (or a versioned list) is the only creator.
@@ -58,6 +87,11 @@ export declare class SchemaNotMigratedError extends Error {
58
87
  export declare function schemaIsReleaseOwned(): boolean;
59
88
  /** Stable across bundlers; `run` bodies are not hashed because minifiers rewrite them. */
60
89
  export declare function migrationChecksum(migration: StoreMigration): string | null;
90
+ /**
91
+ * Registry order with each store's `after` dependencies first. Fails on an
92
+ * unknown id or a cycle rather than guessing an order.
93
+ */
94
+ export declare function orderStoresForRelease<T extends StoreDefinition>(stores: readonly T[]): T[];
61
95
  /**
62
96
  * Every registered store's migrations that the ledger does not list. The
63
97
  * release step calls this after applying, so a deploy whose ledger disagrees
@@ -48,6 +48,10 @@ export const FRAMEWORK_STORES = [
48
48
  "automation_run_history",
49
49
  () => import("../jobs/run-history.js").then((m) => m.automationRunHistoryStore),
50
50
  ],
51
+ [
52
+ "automation_trigger_events",
53
+ () => import("../triggers/event-queue.js").then((m) => m.automationTriggerEventsStore),
54
+ ],
51
55
  [
52
56
  "automation_webhook_tokens",
53
57
  () => import("../triggers/webhook-store.js").then((m) => m.automationWebhookTokensStore),
@@ -80,6 +84,10 @@ export const FRAMEWORK_STORES = [
80
84
  "computer_approvals",
81
85
  () => import("../integrations/computer-supervision-store.js").then((m) => m.computerApprovalsStore),
82
86
  ],
87
+ [
88
+ "context_xray",
89
+ () => import("../agent/context-xray/schema-store.js").then((m) => m.contextXrayStore),
90
+ ],
83
91
  [
84
92
  "conversation_scopes",
85
93
  () => import("../integrations/scope-store.js").then((m) => m.conversationScopesStore),
@@ -164,6 +172,7 @@ export const FRAMEWORK_STORES = [
164
172
  "observational_memory",
165
173
  () => import("../agent/observational-memory/store.js").then((m) => m.observationalMemoryStore),
166
174
  ],
175
+ ["org", () => import("../org/schema-store.js").then((m) => m.orgStore)],
167
176
  [
168
177
  "pending_tasks",
169
178
  () => import("../integrations/pending-tasks-store.js").then((m) => m.pendingTasksStore),