@shardworks/nexus-core 0.1.68 → 0.1.70
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/anima.d.ts +7 -0
- package/dist/anima.d.ts.map +1 -1
- package/dist/anima.js +26 -0
- package/dist/anima.js.map +1 -1
- package/dist/clockworks.d.ts +15 -4
- package/dist/clockworks.d.ts.map +1 -1
- package/dist/clockworks.js +60 -223
- package/dist/clockworks.js.map +1 -1
- package/dist/engine.d.ts +6 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js.map +1 -1
- package/dist/guild-config.d.ts +11 -0
- package/dist/guild-config.d.ts.map +1 -1
- package/dist/guild-config.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts +38 -17
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +137 -47
- package/dist/migrate.js.map +1 -1
- package/dist/upgrade.d.ts +4 -3
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +5 -119
- package/dist/upgrade.js.map +1 -1
- package/dist/writ.js +2 -2
- package/dist/writ.js.map +1 -1
- package/migrations/001-schema.sql +177 -0
- package/migrations/002-writs.sql +44 -0
- package/migrations/003-conversations.sql +43 -0
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ export declare const VERSION: string;
|
|
|
2
2
|
export { type ToolContext, type ToolDefinition, tool, isToolDefinition, resolveToolFromExport, resolveAllToolsFromExport, } from './tool.ts';
|
|
3
3
|
export { type GuildEvent, type EngineContext, type EngineDefinition, engine, isClockworkEngine, resolveEngineFromExport, } from './engine.ts';
|
|
4
4
|
export { signalEvent, validateCustomEvent, isFrameworkEvent, readPendingEvents, readEvent, markEventProcessed, recordDispatch, type ListEventsOptions, type DispatchRecord, type ListDispatchesOptions, listEvents, listDispatches, } from './events.ts';
|
|
5
|
-
export { type TickResult, type DispatchSummary, type ClockRunResult, type ClockStartOptions, type ClockStartResult, type ClockStopResult, type ClockStatus, clockTick, clockRun, clockStart, clockStop, clockStatus, } from './clockworks.ts';
|
|
6
|
-
export { type GuildConfig, type RoleDefinition, type ToolEntry, type TrainingEntry, type WorkshopEntry, type EventDeclaration, type StandingOrder, type ClockworksConfig, type WritTypeDeclaration, createInitialGuildConfig, guildConfigPath, readGuildConfig, writeGuildConfig, } from './guild-config.ts';
|
|
5
|
+
export { type TickResult, type DispatchSummary, type ClockRunResult, type ClockStartOptions, type ClockStartResult, type ClockStopResult, type ClockStatus, clockTick, clockRun, clockStart, clockStop, clockStatus, desugarOrder, extractParams, } from './clockworks.ts';
|
|
6
|
+
export { type GuildConfig, type RoleDefinition, type ToolEntry, type TrainingEntry, type WorkshopEntry, type EventDeclaration, type StandingOrder, type ClockworksConfig, type WritTypeDeclaration, type GuildSettings, createInitialGuildConfig, guildConfigPath, readGuildConfig, writeGuildConfig, } from './guild-config.ts';
|
|
7
7
|
export { findGuildRoot, nexusDir, booksPath, ledgerPath, worktreesPath, workshopsPath, workshopBarePath, clockPidPath, clockLogPath, } from './nexus-home.ts';
|
|
8
8
|
export { type InstallToolOptions, type InstallResult, type SourceKind, classifySource, installTool, } from './install-tool.ts';
|
|
9
9
|
export { type RemoveToolOptions, type RemoveResult, removeTool, } from './remove-tool.ts';
|
|
@@ -15,13 +15,13 @@ export { type RehydrateResult, rehydrate, } from './rehydrate.ts';
|
|
|
15
15
|
export { type AddWorkshopOptions, type AddWorkshopResult, type RemoveWorkshopOptions, type WorkshopInfo, type WorkshopDetail, type CreateWorkshopOptions, addWorkshop, removeWorkshop, listWorkshops, showWorkshop, createWorkshop, checkGhAuth, deriveWorkshopName, } from './workshop.ts';
|
|
16
16
|
export { type Precondition, type CommandPrecondition, type CommandOutputPrecondition, type EnvPrecondition, type PreconditionCheckResult, type ToolPreconditionResult, readPreconditions, checkOne, checkPreconditions, checkAllPreconditions, checkToolPreconditions, } from './preconditions.ts';
|
|
17
17
|
export { type WorktreeConfig, type WorktreeResult, setupWorktree, teardownWorktree, listWorktrees, } from './worktree.ts';
|
|
18
|
-
export { type MigrationFile, type MigrationProvenance, type MigrateResult, discoverMigrations, applyMigrations, } from './migrate.ts';
|
|
18
|
+
export { type MigrationFile, type MigrationProvenance, type MigrateResult, discoverMigrations, applyMigrations, applyCoreMigrations, ensureBooks, } from './migrate.ts';
|
|
19
19
|
export { type AnimaRecord, type ResolvedTool, type UnavailableTool, type ManifestResult, readAnima, resolveTools, readCodex, readRoleInstructions, assembleSystemPrompt, manifest, } from './manifest.ts';
|
|
20
20
|
export { type SessionProvider, type SessionProviderLaunchOptions, type SessionProviderResult, type SessionLaunchOptions, type SessionResult, type SessionChunk, type WorkspaceContext, type ResolvedWorkspace, type SessionRecord, type SessionSummary, type SessionDetail, type ListSessionsOptions, registerSessionProvider, getSessionProvider, resolveWorkspace, createTempWorktree, removeTempWorktree, launchSession, listSessions, showSession, } from './session.ts';
|
|
21
21
|
export { type ConversationChunk, type CreateConversationOptions, type CreateConversationResult, type ConversationSummary, type ConversationDetail, type ListConversationsOptions, createConversation, takeTurn, endConversation, nextParticipant, listConversations, showConversation, formatConveneMessage, } from './conversation.ts';
|
|
22
22
|
export { type UpgradePlan, type UpgradeResult, type ApplyUpgradeOptions, type MigrationPlanEntry, type ContentUpdateEntry, type ToolPlanEntry, type StaleAnimaEntry, planUpgrade, applyUpgrade, } from './upgrade.ts';
|
|
23
23
|
export { generateId } from './id.ts';
|
|
24
|
-
export { type AnimaSummary, type AnimaDetail, type ListAnimasOptions, type UpdateAnimaOptions, type AnimaStaleness, type StalenessInfo, listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from './anima.ts';
|
|
24
|
+
export { type AnimaSummary, type AnimaDetail, type ListAnimasOptions, type UpdateAnimaOptions, type AnimaStaleness, type StalenessInfo, resolveAnimaByRole, listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from './anima.ts';
|
|
25
25
|
export { type ToolSummary, listTools, } from './tool-registry.ts';
|
|
26
26
|
export { type WritRecord, type WritStatus, type CreateWritOptions, type ListWritsOptions, type WritChildSummary, BUILTIN_WRIT_TYPES, validateWritType, createWrit, readWrit, listWrits, activateWrit, completeWrit, failWrit, cancelWrit, interruptWrit, rollupParent, getWritChildren, buildProgressAppendix, hydratePromptTemplate, } from './writ.ts';
|
|
27
27
|
export { type AuditEntry, type ListAuditLogOptions, listAuditLog, } from './audit.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC;AAE5C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,IAAI,EACJ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,MAAM,EACN,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export const VERSION = _pkg.version;
|
|
|
6
6
|
export { tool, isToolDefinition, resolveToolFromExport, resolveAllToolsFromExport, } from "./tool.js";
|
|
7
7
|
export { engine, isClockworkEngine, resolveEngineFromExport, } from "./engine.js";
|
|
8
8
|
export { signalEvent, validateCustomEvent, isFrameworkEvent, readPendingEvents, readEvent, markEventProcessed, recordDispatch, listEvents, listDispatches, } from "./events.js";
|
|
9
|
-
export { clockTick, clockRun, clockStart, clockStop, clockStatus, } from "./clockworks.js";
|
|
9
|
+
export { clockTick, clockRun, clockStart, clockStop, clockStatus, desugarOrder, extractParams, } from "./clockworks.js";
|
|
10
10
|
export { createInitialGuildConfig, guildConfigPath, readGuildConfig, writeGuildConfig, } from "./guild-config.js";
|
|
11
11
|
export { findGuildRoot, nexusDir, booksPath, ledgerPath, worktreesPath, workshopsPath, workshopBarePath, clockPidPath, clockLogPath, } from "./nexus-home.js";
|
|
12
12
|
export { classifySource, installTool, } from "./install-tool.js";
|
|
@@ -19,13 +19,13 @@ export { rehydrate, } from "./rehydrate.js";
|
|
|
19
19
|
export { addWorkshop, removeWorkshop, listWorkshops, showWorkshop, createWorkshop, checkGhAuth, deriveWorkshopName, } from "./workshop.js";
|
|
20
20
|
export { readPreconditions, checkOne, checkPreconditions, checkAllPreconditions, checkToolPreconditions, } from "./preconditions.js";
|
|
21
21
|
export { setupWorktree, teardownWorktree, listWorktrees, } from "./worktree.js";
|
|
22
|
-
export { discoverMigrations, applyMigrations, } from "./migrate.js";
|
|
22
|
+
export { discoverMigrations, applyMigrations, applyCoreMigrations, ensureBooks, } from "./migrate.js";
|
|
23
23
|
export { readAnima, resolveTools, readCodex, readRoleInstructions, assembleSystemPrompt, manifest, } from "./manifest.js";
|
|
24
24
|
export { registerSessionProvider, getSessionProvider, resolveWorkspace, createTempWorktree, removeTempWorktree, launchSession, listSessions, showSession, } from "./session.js";
|
|
25
25
|
export { createConversation, takeTurn, endConversation, nextParticipant, listConversations, showConversation, formatConveneMessage, } from "./conversation.js";
|
|
26
26
|
export { planUpgrade, applyUpgrade, } from "./upgrade.js";
|
|
27
27
|
export { generateId } from "./id.js";
|
|
28
|
-
export { listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from "./anima.js";
|
|
28
|
+
export { resolveAnimaByRole, listAnimas, showAnima, updateAnima, removeAnima, checkAnimaStaleness, checkAllAnimaStaleness, } from "./anima.js";
|
|
29
29
|
export { listTools, } from "./tool-registry.js";
|
|
30
30
|
export { BUILTIN_WRIT_TYPES, validateWritType, createWrit, readWrit, listWrits, activateWrit, completeWrit, failWrit, cancelWrit, interruptWrit, rollupParent, getWritChildren, buildProgressAppendix, hydratePromptTemplate, } from "./writ.js";
|
|
31
31
|
export { listAuditLog, } from "./audit.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC;AAE5C,OAAO,EAGL,IAAI,EACJ,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAIL,MAAM,EACN,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,cAAc,EAId,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAQL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/migrate.d.ts
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database migration — applies pending SQL migrations to the guild's Books.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Core framework migrations ship with the `@shardworks/nexus-core` package
|
|
5
|
+
* and are applied automatically when the Books are opened (unless the guild
|
|
6
|
+
* opts out via `settings.autoMigrate: false` in guild.json).
|
|
6
7
|
*
|
|
7
|
-
* Migrations are numbered sequentially (001-
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Migrations are numbered sequentially (001-schema.sql, etc.) and applied in
|
|
9
|
+
* order. The module tracks which migrations have been applied in a
|
|
10
|
+
* `_migrations` table and only runs new ones.
|
|
11
|
+
*
|
|
12
|
+
* ## Migration sources
|
|
13
|
+
*
|
|
14
|
+
* 1. **Core migrations** — bundled with nexus-core, define the framework schema.
|
|
15
|
+
* 2. **Guild migrations** — in the guild's `nexus/migrations/` directory, for
|
|
16
|
+
* guild-specific schema extensions delivered by bundles.
|
|
10
17
|
*
|
|
11
18
|
* ## Migration file naming
|
|
12
19
|
*
|
|
13
20
|
* Files must match the pattern: NNN-description.sql
|
|
14
21
|
* where NNN is a zero-padded sequence number.
|
|
15
|
-
*
|
|
16
|
-
* Examples:
|
|
17
|
-
* 001-initial-schema.sql
|
|
18
|
-
* 002-add-priority-to-commissions.sql
|
|
19
|
-
* 003-add-sessions-table.sql
|
|
20
22
|
*/
|
|
21
23
|
/** A migration file discovered on disk. */
|
|
22
24
|
export interface MigrationFile {
|
|
@@ -44,20 +46,39 @@ export interface MigrateResult {
|
|
|
44
46
|
total: number;
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
|
-
* Discover migration files in
|
|
49
|
+
* Discover migration files in a directory, sorted by sequence.
|
|
48
50
|
*/
|
|
49
51
|
export declare function discoverMigrations(migrationsDir: string): MigrationFile[];
|
|
50
52
|
/**
|
|
51
|
-
* Apply pending migrations to the guild's Books
|
|
53
|
+
* Apply pending core framework migrations to the guild's Books.
|
|
54
|
+
*
|
|
55
|
+
* Core migrations are bundled with the nexus-core package and define
|
|
56
|
+
* the framework's required schema (sessions, commissions, writs, etc.).
|
|
57
|
+
*
|
|
58
|
+
* @param home - Absolute path to the guild root.
|
|
59
|
+
* @returns Summary of what was applied and skipped.
|
|
60
|
+
*/
|
|
61
|
+
export declare function applyCoreMigrations(home: string): MigrateResult;
|
|
62
|
+
/**
|
|
63
|
+
* Apply pending guild-local migrations to the guild's Books.
|
|
52
64
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* run yet. Each migration runs in its own transaction.
|
|
65
|
+
* Guild-local migrations live in `nexus/migrations/` within the guild
|
|
66
|
+
* directory and are delivered by bundles for guild-specific schema extensions.
|
|
56
67
|
*
|
|
57
68
|
* @param home - Absolute path to the guild root.
|
|
58
|
-
* @param provenance - Optional map of guild filename → bundle provenance
|
|
59
|
-
* supplied by the bundle installer for migrations it copied into the guild.
|
|
69
|
+
* @param provenance - Optional map of guild filename → bundle provenance.
|
|
60
70
|
* @returns Summary of what was applied and skipped.
|
|
61
71
|
*/
|
|
62
72
|
export declare function applyMigrations(home: string, provenance?: Record<string, MigrationProvenance>): MigrateResult;
|
|
73
|
+
/**
|
|
74
|
+
* Ensure the guild's Books database has all pending core migrations applied.
|
|
75
|
+
*
|
|
76
|
+
* Called automatically before database access. Reads `settings.autoMigrate`
|
|
77
|
+
* from guild.json (defaults to `true`). Skips if auto-migration is disabled
|
|
78
|
+
* or if this guild was already migrated in the current process.
|
|
79
|
+
*
|
|
80
|
+
* @param home - Absolute path to the guild root.
|
|
81
|
+
* @returns The migrations that were applied, or null if skipped.
|
|
82
|
+
*/
|
|
83
|
+
export declare function ensureBooks(home: string): MigrateResult | null;
|
|
63
84
|
//# sourceMappingURL=migrate.d.ts.map
|
package/dist/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,yFAAyF;IACzF,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AA0DD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,EAAE,CAoBzE;AAmED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAmB/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC/C,aAAa,CAqBf;AAOD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsB9D"}
|
package/dist/migrate.js
CHANGED
|
@@ -1,29 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database migration — applies pending SQL migrations to the guild's Books.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Core framework migrations ship with the `@shardworks/nexus-core` package
|
|
5
|
+
* and are applied automatically when the Books are opened (unless the guild
|
|
6
|
+
* opts out via `settings.autoMigrate: false` in guild.json).
|
|
6
7
|
*
|
|
7
|
-
* Migrations are numbered sequentially (001-
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Migrations are numbered sequentially (001-schema.sql, etc.) and applied in
|
|
9
|
+
* order. The module tracks which migrations have been applied in a
|
|
10
|
+
* `_migrations` table and only runs new ones.
|
|
11
|
+
*
|
|
12
|
+
* ## Migration sources
|
|
13
|
+
*
|
|
14
|
+
* 1. **Core migrations** — bundled with nexus-core, define the framework schema.
|
|
15
|
+
* 2. **Guild migrations** — in the guild's `nexus/migrations/` directory, for
|
|
16
|
+
* guild-specific schema extensions delivered by bundles.
|
|
10
17
|
*
|
|
11
18
|
* ## Migration file naming
|
|
12
19
|
*
|
|
13
20
|
* Files must match the pattern: NNN-description.sql
|
|
14
21
|
* where NNN is a zero-padded sequence number.
|
|
15
|
-
*
|
|
16
|
-
* Examples:
|
|
17
|
-
* 001-initial-schema.sql
|
|
18
|
-
* 002-add-priority-to-commissions.sql
|
|
19
|
-
* 003-add-sessions-table.sql
|
|
20
22
|
*/
|
|
21
23
|
import fs from 'node:fs';
|
|
22
24
|
import path from 'node:path';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
23
26
|
import Database from 'better-sqlite3';
|
|
24
|
-
import {
|
|
27
|
+
import { booksPath } from "./nexus-home.js";
|
|
28
|
+
import { readGuildConfig } from "./guild-config.js";
|
|
25
29
|
/** Pattern for migration filenames: NNN-description.sql */
|
|
26
30
|
const MIGRATION_PATTERN = /^(\d{3})-(.+)\.sql$/;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the path to core's bundled migrations directory.
|
|
33
|
+
*
|
|
34
|
+
* In development (running from src/), this is `../../migrations/` relative
|
|
35
|
+
* to this file. When published (running from dist/), it's `../migrations/`.
|
|
36
|
+
* We check both locations.
|
|
37
|
+
*/
|
|
38
|
+
function coreMigrationsDir() {
|
|
39
|
+
const thisFile = fileURLToPath(import.meta.url);
|
|
40
|
+
const thisDir = path.dirname(thisFile);
|
|
41
|
+
// Published layout: dist/migrate.js → ../migrations/
|
|
42
|
+
const fromDist = path.resolve(thisDir, '..', 'migrations');
|
|
43
|
+
if (fs.existsSync(fromDist))
|
|
44
|
+
return fromDist;
|
|
45
|
+
// Dev layout: src/migrate.ts → ../migrations/
|
|
46
|
+
const fromSrc = path.resolve(thisDir, '..', 'migrations');
|
|
47
|
+
if (fs.existsSync(fromSrc))
|
|
48
|
+
return fromSrc;
|
|
49
|
+
// Shouldn't happen, but don't crash — return a nonexistent path
|
|
50
|
+
// and let discoverMigrations() handle it gracefully.
|
|
51
|
+
return fromDist;
|
|
52
|
+
}
|
|
27
53
|
/**
|
|
28
54
|
* Ensure the _migrations tracking table exists.
|
|
29
55
|
*
|
|
@@ -52,7 +78,7 @@ function ensureMigrationsTable(db) {
|
|
|
52
78
|
}
|
|
53
79
|
}
|
|
54
80
|
/**
|
|
55
|
-
* Discover migration files in
|
|
81
|
+
* Discover migration files in a directory, sorted by sequence.
|
|
56
82
|
*/
|
|
57
83
|
export function discoverMigrations(migrationsDir) {
|
|
58
84
|
if (!fs.existsSync(migrationsDir))
|
|
@@ -81,20 +107,81 @@ function getAppliedSequences(db) {
|
|
|
81
107
|
return new Set(rows.map(r => r.sequence));
|
|
82
108
|
}
|
|
83
109
|
/**
|
|
84
|
-
* Apply pending migrations
|
|
110
|
+
* Apply pending migrations from a list of migration files.
|
|
111
|
+
*
|
|
112
|
+
* Low-level function that applies migrations to an already-open database.
|
|
113
|
+
* Used by both `applyCoreMigrations` and `applyMigrations`.
|
|
114
|
+
*/
|
|
115
|
+
function applyMigrationFiles(db, migrations, applied, provenance) {
|
|
116
|
+
const result = {
|
|
117
|
+
applied: [],
|
|
118
|
+
skipped: [],
|
|
119
|
+
total: migrations.length,
|
|
120
|
+
};
|
|
121
|
+
for (const migration of migrations) {
|
|
122
|
+
if (applied.has(migration.sequence)) {
|
|
123
|
+
result.skipped.push(migration.filename);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
// Read and apply the migration.
|
|
127
|
+
// PRAGMAs can't run inside transactions, so extract them and run separately.
|
|
128
|
+
const sql = fs.readFileSync(migration.path, 'utf-8');
|
|
129
|
+
const pragmaPattern = /^\s*PRAGMA\s+[^;]+;\s*$/gmi;
|
|
130
|
+
const pragmas = sql.match(pragmaPattern) || [];
|
|
131
|
+
const body = sql.replace(pragmaPattern, '').trim();
|
|
132
|
+
for (const pragma of pragmas) {
|
|
133
|
+
db.exec(pragma);
|
|
134
|
+
}
|
|
135
|
+
const prov = provenance?.[migration.filename];
|
|
136
|
+
db.transaction(() => {
|
|
137
|
+
if (body)
|
|
138
|
+
db.exec(body);
|
|
139
|
+
db.prepare(`INSERT INTO _migrations (sequence, filename, bundle, original_name) VALUES (?, ?, ?, ?)`).run(migration.sequence, migration.filename, prov?.bundle ?? null, prov?.originalName ?? null);
|
|
140
|
+
})();
|
|
141
|
+
result.applied.push(migration.filename);
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Apply pending core framework migrations to the guild's Books.
|
|
85
147
|
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* run yet. Each migration runs in its own transaction.
|
|
148
|
+
* Core migrations are bundled with the nexus-core package and define
|
|
149
|
+
* the framework's required schema (sessions, commissions, writs, etc.).
|
|
89
150
|
*
|
|
90
151
|
* @param home - Absolute path to the guild root.
|
|
91
|
-
* @
|
|
92
|
-
|
|
152
|
+
* @returns Summary of what was applied and skipped.
|
|
153
|
+
*/
|
|
154
|
+
export function applyCoreMigrations(home) {
|
|
155
|
+
const migrations = discoverMigrations(coreMigrationsDir());
|
|
156
|
+
if (migrations.length === 0) {
|
|
157
|
+
return { applied: [], skipped: [], total: 0 };
|
|
158
|
+
}
|
|
159
|
+
const dbPath = booksPath(home);
|
|
160
|
+
fs.mkdirSync(path.dirname(dbPath), { recursive: true });
|
|
161
|
+
const db = new Database(dbPath);
|
|
162
|
+
db.pragma('foreign_keys = ON');
|
|
163
|
+
try {
|
|
164
|
+
ensureMigrationsTable(db);
|
|
165
|
+
const applied = getAppliedSequences(db);
|
|
166
|
+
return applyMigrationFiles(db, migrations, applied);
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
db.close();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Apply pending guild-local migrations to the guild's Books.
|
|
174
|
+
*
|
|
175
|
+
* Guild-local migrations live in `nexus/migrations/` within the guild
|
|
176
|
+
* directory and are delivered by bundles for guild-specific schema extensions.
|
|
177
|
+
*
|
|
178
|
+
* @param home - Absolute path to the guild root.
|
|
179
|
+
* @param provenance - Optional map of guild filename → bundle provenance.
|
|
93
180
|
* @returns Summary of what was applied and skipped.
|
|
94
181
|
*/
|
|
95
182
|
export function applyMigrations(home, provenance) {
|
|
96
183
|
const migrationsDir = path.join(home, 'nexus', 'migrations');
|
|
97
|
-
const dbPath =
|
|
184
|
+
const dbPath = booksPath(home);
|
|
98
185
|
// Discover available migrations
|
|
99
186
|
const migrations = discoverMigrations(migrationsDir);
|
|
100
187
|
if (migrations.length === 0) {
|
|
@@ -105,37 +192,40 @@ export function applyMigrations(home, provenance) {
|
|
|
105
192
|
try {
|
|
106
193
|
ensureMigrationsTable(db);
|
|
107
194
|
const applied = getAppliedSequences(db);
|
|
108
|
-
|
|
109
|
-
applied: [],
|
|
110
|
-
skipped: [],
|
|
111
|
-
total: migrations.length,
|
|
112
|
-
};
|
|
113
|
-
for (const migration of migrations) {
|
|
114
|
-
if (applied.has(migration.sequence)) {
|
|
115
|
-
result.skipped.push(migration.filename);
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
// Read and apply the migration.
|
|
119
|
-
// PRAGMAs can't run inside transactions, so extract them and run separately.
|
|
120
|
-
const sql = fs.readFileSync(migration.path, 'utf-8');
|
|
121
|
-
const pragmaPattern = /^\s*PRAGMA\s+[^;]+;\s*$/gmi;
|
|
122
|
-
const pragmas = sql.match(pragmaPattern) || [];
|
|
123
|
-
const body = sql.replace(pragmaPattern, '').trim();
|
|
124
|
-
for (const pragma of pragmas) {
|
|
125
|
-
db.exec(pragma);
|
|
126
|
-
}
|
|
127
|
-
const prov = provenance?.[migration.filename];
|
|
128
|
-
db.transaction(() => {
|
|
129
|
-
if (body)
|
|
130
|
-
db.exec(body);
|
|
131
|
-
db.prepare(`INSERT INTO _migrations (sequence, filename, bundle, original_name) VALUES (?, ?, ?, ?)`).run(migration.sequence, migration.filename, prov?.bundle ?? null, prov?.originalName ?? null);
|
|
132
|
-
})();
|
|
133
|
-
result.applied.push(migration.filename);
|
|
134
|
-
}
|
|
135
|
-
return result;
|
|
195
|
+
return applyMigrationFiles(db, migrations, applied, provenance);
|
|
136
196
|
}
|
|
137
197
|
finally {
|
|
138
198
|
db.close();
|
|
139
199
|
}
|
|
140
200
|
}
|
|
201
|
+
// ── Auto-migration ──────────────────────────────────────────────────────
|
|
202
|
+
/** Track which guild roots have been auto-migrated this process. */
|
|
203
|
+
const migratedThisProcess = new Set();
|
|
204
|
+
/**
|
|
205
|
+
* Ensure the guild's Books database has all pending core migrations applied.
|
|
206
|
+
*
|
|
207
|
+
* Called automatically before database access. Reads `settings.autoMigrate`
|
|
208
|
+
* from guild.json (defaults to `true`). Skips if auto-migration is disabled
|
|
209
|
+
* or if this guild was already migrated in the current process.
|
|
210
|
+
*
|
|
211
|
+
* @param home - Absolute path to the guild root.
|
|
212
|
+
* @returns The migrations that were applied, or null if skipped.
|
|
213
|
+
*/
|
|
214
|
+
export function ensureBooks(home) {
|
|
215
|
+
const resolved = path.resolve(home);
|
|
216
|
+
if (migratedThisProcess.has(resolved))
|
|
217
|
+
return null;
|
|
218
|
+
const config = readGuildConfig(home);
|
|
219
|
+
const autoMigrate = config.settings?.autoMigrate ?? true;
|
|
220
|
+
if (!autoMigrate) {
|
|
221
|
+
migratedThisProcess.add(resolved);
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
const result = applyCoreMigrations(home);
|
|
225
|
+
migratedThisProcess.add(resolved);
|
|
226
|
+
if (result.applied.length > 0) {
|
|
227
|
+
console.error(`Books: applied ${result.applied.length} pending migration(s): ${result.applied.join(', ')}`);
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
141
231
|
//# sourceMappingURL=migrate.js.map
|
package/dist/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/upgrade.d.ts
CHANGED
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
* Compares the guild's current state against a bundle (typically the
|
|
5
5
|
* guild-starter-kit at a newer version) and produces a plan describing:
|
|
6
6
|
*
|
|
7
|
-
* - New database migrations to apply
|
|
8
7
|
* - New tools and engines to register (with role assignments)
|
|
9
8
|
* - Updated curricula and temperaments
|
|
10
9
|
* - Stale anima compositions (using outdated training content)
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Database migrations are handled separately by nexus-core and applied
|
|
12
|
+
* automatically on database open (see `ensureBooks()` in migrate.ts).
|
|
13
|
+
*
|
|
14
|
+
* The plan can be inspected (dry-run) or applied. Content artifacts
|
|
14
15
|
* are overwritten with the newer version. Stale animas are reported
|
|
15
16
|
* but not automatically recomposed — the operator decides.
|
|
16
17
|
*/
|
package/dist/upgrade.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,GAAG,cAAc,CAAC;IACvC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+DAA+D;IAC/D,UAAU,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,iEAAiE;IACjE,WAAW,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzE;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,uDAAuD;IACvD,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,wEAAwE;IACxE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,+CAA+C;IAC/C,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA0CD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,CA8Cb;AAuKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE,mBAAwB,GAC7B,aAAa,CAgHf"}
|