@shardworks/nexus-core 0.1.68 → 0.1.69
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/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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- 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/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/guild-config.d.ts
CHANGED
|
@@ -71,6 +71,15 @@ export interface WorkshopEntry {
|
|
|
71
71
|
/** ISO-8601 timestamp of when the workshop was added. */
|
|
72
72
|
addedAt: string;
|
|
73
73
|
}
|
|
74
|
+
/** Guild-level settings — operational flags and preferences. */
|
|
75
|
+
export interface GuildSettings {
|
|
76
|
+
/**
|
|
77
|
+
* Automatically apply pending database migrations when the Books are opened.
|
|
78
|
+
* Defaults to `true` when not specified. Set to `false` to require explicit
|
|
79
|
+
* migration via `nsg guild upgrade-books`.
|
|
80
|
+
*/
|
|
81
|
+
autoMigrate?: boolean;
|
|
82
|
+
}
|
|
74
83
|
/** The guild's central configuration file shape (`guild.json`). */
|
|
75
84
|
export interface GuildConfig {
|
|
76
85
|
/** Guild name — used as the guildhall npm package name. */
|
|
@@ -97,6 +106,8 @@ export interface GuildConfig {
|
|
|
97
106
|
clockworks?: ClockworksConfig;
|
|
98
107
|
/** Writ types declared by this guild. Built-in types (mandate, summon) are implicit. */
|
|
99
108
|
writTypes?: Record<string, WritTypeDeclaration>;
|
|
109
|
+
/** Guild-level settings — operational flags and preferences. */
|
|
110
|
+
settings?: GuildSettings;
|
|
100
111
|
}
|
|
101
112
|
/**
|
|
102
113
|
* Create the default guild.json content for a new guild.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guild-config.d.ts","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"guild-config.d.ts","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"AAGA,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAS;IACxB,4GAA4G;IAC5G,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,iDAAiD;IACjD,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C,0DAA0D;IAC1D,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,gEAAgE;IAChE,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAavG;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAGzD;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAGxE"}
|
package/dist/guild-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guild-config.js","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"guild-config.js","sourceRoot":"","sources":["../src/guild-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAoH7B;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,YAAoB,EAAE,KAAa;IACxF,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,YAAY;QACnB,KAAK;QACL,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAgB,CAAC;AACzE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAmB;IAChE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { type ToolContext, type ToolDefinition, tool, isToolDefinition, resolveT
|
|
|
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
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';
|
|
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,7 +15,7 @@ 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';
|
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,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,kBAAkB,EAClB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ 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";
|
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,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,
|
|
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"}
|
package/dist/upgrade.js
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
|
*/
|
|
@@ -20,12 +21,10 @@ import Database from 'better-sqlite3';
|
|
|
20
21
|
import { booksPath } from "./nexus-home.js";
|
|
21
22
|
import { readGuildConfig, writeGuildConfig } from "./guild-config.js";
|
|
22
23
|
import { readBundleManifest } from "./bundle.js";
|
|
23
|
-
import { discoverMigrations, applyMigrations } from "./migrate.js";
|
|
24
24
|
import { listAnimas, checkAllAnimaStaleness } from "./anima.js";
|
|
25
25
|
import { removeAnima } from "./anima.js";
|
|
26
26
|
import { instantiate } from "./instantiate.js";
|
|
27
27
|
// ── Helpers ─────────────────────────────────────────────────────────────
|
|
28
|
-
const MIGRATION_PATTERN = /^(\d{3})-(.+)\.sql$/;
|
|
29
28
|
function readJson(filePath) {
|
|
30
29
|
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
31
30
|
}
|
|
@@ -94,8 +93,6 @@ export function planUpgrade(home, bundleDir, bundleSource) {
|
|
|
94
93
|
staleAnimas: [],
|
|
95
94
|
isEmpty: true,
|
|
96
95
|
};
|
|
97
|
-
// ── Migration diff ──────────────────────────────────────────────────
|
|
98
|
-
planMigrations(home, bundleDir, manifest, bundleSource, plan);
|
|
99
96
|
// ── Tool/engine diff ───────────────────────────────────────────────
|
|
100
97
|
planNewTools(home, manifest, 'tools', plan);
|
|
101
98
|
planNewTools(home, manifest, 'engines', plan);
|
|
@@ -107,94 +104,11 @@ export function planUpgrade(home, bundleDir, bundleSource) {
|
|
|
107
104
|
// any content updates the plan would apply. So if the plan updates
|
|
108
105
|
// curriculum v1.0 → v1.1, animas on v1.0 will show as stale.
|
|
109
106
|
detectStaleAnimas(home, plan);
|
|
110
|
-
plan.isEmpty = plan.
|
|
111
|
-
&& plan.newTools.length === 0
|
|
107
|
+
plan.isEmpty = plan.newTools.length === 0
|
|
112
108
|
&& plan.contentUpdates.length === 0
|
|
113
109
|
&& plan.staleAnimas.length === 0;
|
|
114
110
|
return plan;
|
|
115
111
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Diff bundle migrations against what the guild already has.
|
|
118
|
-
*
|
|
119
|
-
* Strategy: read the guild's _migrations table for provenance data.
|
|
120
|
-
* For each bundle migration, check if a migration with the same original
|
|
121
|
-
* name from the same bundle (or a prior version of it) has already been
|
|
122
|
-
* applied. If not, it's new and needs to be installed.
|
|
123
|
-
*/
|
|
124
|
-
function planMigrations(home, bundleDir, manifest, bundleSource, plan) {
|
|
125
|
-
if (!manifest.migrations || manifest.migrations.length === 0)
|
|
126
|
-
return;
|
|
127
|
-
// Read applied migrations from the _migrations table
|
|
128
|
-
const dbPath = booksPath(home);
|
|
129
|
-
let appliedOriginals = new Set();
|
|
130
|
-
if (fs.existsSync(dbPath)) {
|
|
131
|
-
const db = new Database(dbPath);
|
|
132
|
-
try {
|
|
133
|
-
// Check if _migrations table exists
|
|
134
|
-
const tableExists = db.prepare(`SELECT name FROM sqlite_master WHERE type='table' AND name='_migrations'`).get();
|
|
135
|
-
if (tableExists) {
|
|
136
|
-
// Get all original_name values from migrations delivered by any version
|
|
137
|
-
// of this bundle's package. Compare by package name, not full version.
|
|
138
|
-
const bundlePackage = bundleSource.replace(/@[^@]+$/, '');
|
|
139
|
-
const rows = db.prepare(`SELECT original_name, filename FROM _migrations WHERE bundle LIKE ? OR bundle IS NULL`).all(`${bundlePackage}%`);
|
|
140
|
-
for (const row of rows) {
|
|
141
|
-
if (row.original_name) {
|
|
142
|
-
appliedOriginals.add(row.original_name);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// Also check by content: for migrations installed before provenance
|
|
146
|
-
// tracking existed, compare the actual SQL content
|
|
147
|
-
if (rows.some(r => r.original_name === null)) {
|
|
148
|
-
// Fall back to filename-based matching for legacy migrations
|
|
149
|
-
const allApplied = db.prepare(`SELECT filename FROM _migrations`).all();
|
|
150
|
-
for (const row of allApplied) {
|
|
151
|
-
// Extract description part (strip sequence prefix)
|
|
152
|
-
const match = row.filename.match(MIGRATION_PATTERN);
|
|
153
|
-
if (match) {
|
|
154
|
-
appliedOriginals.add(row.filename);
|
|
155
|
-
// Also add just the description part for fuzzy matching
|
|
156
|
-
appliedOriginals.add(match[2]);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
finally {
|
|
163
|
-
db.close();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// Find the current highest sequence in the guild's migrations dir
|
|
167
|
-
const migrationsDir = path.join(home, 'nexus', 'migrations');
|
|
168
|
-
let maxSeq = 0;
|
|
169
|
-
if (fs.existsSync(migrationsDir)) {
|
|
170
|
-
for (const file of fs.readdirSync(migrationsDir)) {
|
|
171
|
-
const match = file.match(MIGRATION_PATTERN);
|
|
172
|
-
if (match)
|
|
173
|
-
maxSeq = Math.max(maxSeq, parseInt(match[1], 10));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
// Check each bundle migration against what's already applied
|
|
177
|
-
for (const entry of manifest.migrations) {
|
|
178
|
-
const srcPath = path.resolve(bundleDir, entry.path);
|
|
179
|
-
const originalName = path.basename(srcPath);
|
|
180
|
-
// Extract description from the bundle filename
|
|
181
|
-
const descMatch = originalName.match(/^\d{3}-(.+)$/);
|
|
182
|
-
const description = descMatch ? descMatch[1] : originalName;
|
|
183
|
-
// Check if this migration (by original name or description) is already applied
|
|
184
|
-
const alreadyApplied = appliedOriginals.has(originalName)
|
|
185
|
-
|| appliedOriginals.has(description);
|
|
186
|
-
if (!alreadyApplied) {
|
|
187
|
-
maxSeq++;
|
|
188
|
-
const seq = String(maxSeq).padStart(3, '0');
|
|
189
|
-
const guildFilename = `${seq}-${description}`;
|
|
190
|
-
plan.migrations.push({
|
|
191
|
-
bundleFilename: originalName,
|
|
192
|
-
guildSequence: maxSeq,
|
|
193
|
-
guildFilename,
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
112
|
/**
|
|
199
113
|
* Diff bundle tools/engines against what the guild already has registered.
|
|
200
114
|
*
|
|
@@ -352,34 +266,6 @@ export function applyUpgrade(home, bundleDir, plan, opts = {}) {
|
|
|
352
266
|
staleAnimaCount: plan.staleAnimas.length,
|
|
353
267
|
recomposedAnimas: [],
|
|
354
268
|
};
|
|
355
|
-
// ── Install new migrations ────────────────────────────────────────
|
|
356
|
-
// ── Install new migration files from the bundle ───────────────────
|
|
357
|
-
const provenance = {};
|
|
358
|
-
if (plan.migrations.length > 0) {
|
|
359
|
-
const migrationsDir = path.join(home, 'nexus', 'migrations');
|
|
360
|
-
fs.mkdirSync(migrationsDir, { recursive: true });
|
|
361
|
-
const manifest = readBundleManifest(bundleDir);
|
|
362
|
-
for (const entry of plan.migrations) {
|
|
363
|
-
// Find the matching bundle migration entry
|
|
364
|
-
const bundleEntry = manifest.migrations.find(m => {
|
|
365
|
-
const name = path.basename(path.resolve(bundleDir, m.path));
|
|
366
|
-
return name === entry.bundleFilename;
|
|
367
|
-
});
|
|
368
|
-
if (!bundleEntry)
|
|
369
|
-
continue;
|
|
370
|
-
const srcPath = path.resolve(bundleDir, bundleEntry.path);
|
|
371
|
-
const destPath = path.join(migrationsDir, entry.guildFilename);
|
|
372
|
-
fs.copyFileSync(srcPath, destPath);
|
|
373
|
-
provenance[entry.guildFilename] = {
|
|
374
|
-
bundle: plan.bundleSource,
|
|
375
|
-
originalName: entry.bundleFilename,
|
|
376
|
-
};
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
// Always apply pending migrations — migration files may have been
|
|
380
|
-
// delivered by a previous upgrade but not yet applied to the database.
|
|
381
|
-
const migrateResult = applyMigrations(home, provenance);
|
|
382
|
-
result.migrationsApplied = migrateResult.applied;
|
|
383
269
|
// ── Update content artifacts ──────────────────────────────────────
|
|
384
270
|
for (const update of plan.contentUpdates) {
|
|
385
271
|
const parentDir = update.category === 'curricula'
|
package/dist/upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
-- Nexus Mk 2.1 — consolidated schema.
|
|
2
|
+
-- All entity IDs are TEXT using prefixed hex format (e.g. a-3f7b2c1e).
|
|
3
|
+
-- No auto-increment IDs anywhere in the system.
|
|
4
|
+
|
|
5
|
+
PRAGMA journal_mode = WAL;
|
|
6
|
+
PRAGMA foreign_keys = ON;
|
|
7
|
+
|
|
8
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
9
|
+
-- Register — anima identity and composition
|
|
10
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
11
|
+
|
|
12
|
+
CREATE TABLE animas (
|
|
13
|
+
id TEXT PRIMARY KEY,
|
|
14
|
+
name TEXT NOT NULL UNIQUE,
|
|
15
|
+
status TEXT NOT NULL CHECK(status IN ('aspirant', 'active', 'retired')),
|
|
16
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
17
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE TABLE anima_compositions (
|
|
21
|
+
id TEXT PRIMARY KEY,
|
|
22
|
+
anima_id TEXT NOT NULL UNIQUE REFERENCES animas(id),
|
|
23
|
+
curriculum_name TEXT NOT NULL,
|
|
24
|
+
curriculum_version TEXT NOT NULL,
|
|
25
|
+
temperament_name TEXT NOT NULL,
|
|
26
|
+
temperament_version TEXT NOT NULL,
|
|
27
|
+
curriculum_snapshot TEXT NOT NULL,
|
|
28
|
+
temperament_snapshot TEXT NOT NULL,
|
|
29
|
+
composed_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
CREATE TABLE roster (
|
|
33
|
+
id TEXT PRIMARY KEY,
|
|
34
|
+
anima_id TEXT NOT NULL REFERENCES animas(id),
|
|
35
|
+
role TEXT NOT NULL,
|
|
36
|
+
standing INTEGER NOT NULL DEFAULT 0,
|
|
37
|
+
assigned_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
41
|
+
-- Ledger — commissions and work decomposition
|
|
42
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
43
|
+
|
|
44
|
+
CREATE TABLE commissions (
|
|
45
|
+
id TEXT PRIMARY KEY,
|
|
46
|
+
content TEXT NOT NULL,
|
|
47
|
+
status TEXT NOT NULL CHECK(status IN ('posted', 'assigned', 'in_progress', 'completed', 'failed')),
|
|
48
|
+
workshop TEXT NOT NULL,
|
|
49
|
+
status_reason TEXT,
|
|
50
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
51
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
CREATE TABLE commission_assignments (
|
|
55
|
+
id TEXT PRIMARY KEY,
|
|
56
|
+
commission_id TEXT NOT NULL REFERENCES commissions(id),
|
|
57
|
+
anima_id TEXT NOT NULL REFERENCES animas(id),
|
|
58
|
+
assigned_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
59
|
+
UNIQUE(commission_id, anima_id)
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
CREATE TABLE works (
|
|
63
|
+
id TEXT PRIMARY KEY,
|
|
64
|
+
commission_id TEXT REFERENCES commissions(id),
|
|
65
|
+
title TEXT NOT NULL,
|
|
66
|
+
description TEXT,
|
|
67
|
+
status TEXT NOT NULL DEFAULT 'open' CHECK(status IN ('open', 'active', 'completed', 'cancelled')),
|
|
68
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
69
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
CREATE TABLE pieces (
|
|
73
|
+
id TEXT PRIMARY KEY,
|
|
74
|
+
work_id TEXT REFERENCES works(id),
|
|
75
|
+
title TEXT NOT NULL,
|
|
76
|
+
description TEXT,
|
|
77
|
+
status TEXT NOT NULL DEFAULT 'open' CHECK(status IN ('open', 'active', 'completed', 'cancelled')),
|
|
78
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
79
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
CREATE TABLE jobs (
|
|
83
|
+
id TEXT PRIMARY KEY,
|
|
84
|
+
piece_id TEXT REFERENCES pieces(id),
|
|
85
|
+
title TEXT NOT NULL,
|
|
86
|
+
description TEXT,
|
|
87
|
+
status TEXT NOT NULL DEFAULT 'open' CHECK(status IN ('open', 'active', 'completed', 'failed', 'cancelled')),
|
|
88
|
+
assignee TEXT,
|
|
89
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
90
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
CREATE TABLE strokes (
|
|
94
|
+
id TEXT PRIMARY KEY,
|
|
95
|
+
job_id TEXT NOT NULL REFERENCES jobs(id),
|
|
96
|
+
kind TEXT NOT NULL,
|
|
97
|
+
content TEXT,
|
|
98
|
+
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'complete', 'failed')),
|
|
99
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
100
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
104
|
+
-- Daybook — audit trail
|
|
105
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
106
|
+
|
|
107
|
+
CREATE TABLE audit_log (
|
|
108
|
+
id TEXT PRIMARY KEY,
|
|
109
|
+
actor TEXT NOT NULL,
|
|
110
|
+
action TEXT NOT NULL,
|
|
111
|
+
target_type TEXT,
|
|
112
|
+
target_id TEXT,
|
|
113
|
+
detail TEXT,
|
|
114
|
+
timestamp TEXT NOT NULL DEFAULT (datetime('now'))
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
118
|
+
-- Clockworks — event queue and dispatch tracking
|
|
119
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
120
|
+
|
|
121
|
+
CREATE TABLE events (
|
|
122
|
+
id TEXT PRIMARY KEY,
|
|
123
|
+
name TEXT NOT NULL,
|
|
124
|
+
payload TEXT,
|
|
125
|
+
emitter TEXT NOT NULL,
|
|
126
|
+
fired_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
127
|
+
processed INTEGER NOT NULL DEFAULT 0
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
CREATE TABLE event_dispatches (
|
|
131
|
+
id TEXT PRIMARY KEY,
|
|
132
|
+
event_id TEXT NOT NULL REFERENCES events(id),
|
|
133
|
+
handler_type TEXT NOT NULL,
|
|
134
|
+
handler_name TEXT NOT NULL,
|
|
135
|
+
target_role TEXT,
|
|
136
|
+
notice_type TEXT,
|
|
137
|
+
started_at TEXT,
|
|
138
|
+
ended_at TEXT,
|
|
139
|
+
status TEXT,
|
|
140
|
+
error TEXT
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
144
|
+
-- Sessions — session tracking and commission linkage
|
|
145
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
146
|
+
|
|
147
|
+
CREATE TABLE sessions (
|
|
148
|
+
id TEXT PRIMARY KEY,
|
|
149
|
+
anima_id TEXT NOT NULL REFERENCES animas(id),
|
|
150
|
+
provider TEXT NOT NULL,
|
|
151
|
+
model TEXT,
|
|
152
|
+
trigger TEXT NOT NULL,
|
|
153
|
+
workshop TEXT,
|
|
154
|
+
workspace_kind TEXT NOT NULL,
|
|
155
|
+
curriculum_name TEXT,
|
|
156
|
+
curriculum_version TEXT,
|
|
157
|
+
temperament_name TEXT,
|
|
158
|
+
temperament_version TEXT,
|
|
159
|
+
roles TEXT,
|
|
160
|
+
started_at TEXT NOT NULL,
|
|
161
|
+
ended_at TEXT,
|
|
162
|
+
exit_code INTEGER,
|
|
163
|
+
input_tokens INTEGER,
|
|
164
|
+
output_tokens INTEGER,
|
|
165
|
+
cache_read_tokens INTEGER,
|
|
166
|
+
cache_write_tokens INTEGER,
|
|
167
|
+
cost_usd REAL,
|
|
168
|
+
duration_ms INTEGER,
|
|
169
|
+
provider_session_id TEXT,
|
|
170
|
+
record_path TEXT
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
CREATE TABLE commission_sessions (
|
|
174
|
+
commission_id TEXT NOT NULL REFERENCES commissions(id),
|
|
175
|
+
session_id TEXT NOT NULL REFERENCES sessions(id),
|
|
176
|
+
PRIMARY KEY (commission_id, session_id)
|
|
177
|
+
);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
-- Writs — unified work tracking, replacing the rigid four-level hierarchy
|
|
2
|
+
-- (works, pieces, jobs, strokes) with a single flexible typed model.
|
|
3
|
+
|
|
4
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
5
|
+
-- New: writs table
|
|
6
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
7
|
+
|
|
8
|
+
CREATE TABLE writs (
|
|
9
|
+
id TEXT PRIMARY KEY,
|
|
10
|
+
type TEXT NOT NULL,
|
|
11
|
+
title TEXT NOT NULL,
|
|
12
|
+
description TEXT,
|
|
13
|
+
status TEXT NOT NULL DEFAULT 'ready'
|
|
14
|
+
CHECK(status IN ('ready', 'active', 'pending', 'completed', 'failed', 'cancelled')),
|
|
15
|
+
parent_id TEXT REFERENCES writs(id),
|
|
16
|
+
session_id TEXT,
|
|
17
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
18
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE INDEX idx_writs_parent ON writs(parent_id);
|
|
22
|
+
CREATE INDEX idx_writs_status ON writs(status);
|
|
23
|
+
CREATE INDEX idx_writs_type_status ON writs(type, status);
|
|
24
|
+
|
|
25
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
26
|
+
-- Link commissions to their mandate writ
|
|
27
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
28
|
+
|
|
29
|
+
ALTER TABLE commissions ADD COLUMN writ_id TEXT REFERENCES writs(id);
|
|
30
|
+
|
|
31
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
32
|
+
-- Link sessions to their bound writ
|
|
33
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
34
|
+
|
|
35
|
+
ALTER TABLE sessions ADD COLUMN writ_id TEXT REFERENCES writs(id);
|
|
36
|
+
|
|
37
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
38
|
+
-- Drop old hierarchy tables (never populated in production)
|
|
39
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
40
|
+
|
|
41
|
+
DROP TABLE IF EXISTS strokes;
|
|
42
|
+
DROP TABLE IF EXISTS jobs;
|
|
43
|
+
DROP TABLE IF EXISTS pieces;
|
|
44
|
+
DROP TABLE IF EXISTS works;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
-- Conversations — multi-turn interaction tracking for consult and convene sessions.
|
|
2
|
+
-- Conversations group multiple sessions (turns) into a single logical interaction.
|
|
3
|
+
|
|
4
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
5
|
+
-- New: conversations table
|
|
6
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
7
|
+
|
|
8
|
+
CREATE TABLE conversations (
|
|
9
|
+
id TEXT PRIMARY KEY,
|
|
10
|
+
status TEXT NOT NULL DEFAULT 'active'
|
|
11
|
+
CHECK(status IN ('active', 'concluded', 'abandoned')),
|
|
12
|
+
kind TEXT NOT NULL
|
|
13
|
+
CHECK(kind IN ('consult', 'convene')),
|
|
14
|
+
topic TEXT,
|
|
15
|
+
turn_limit INTEGER,
|
|
16
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
17
|
+
ended_at TEXT,
|
|
18
|
+
event_id TEXT
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
22
|
+
-- New: conversation_participants table
|
|
23
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
24
|
+
|
|
25
|
+
CREATE TABLE conversation_participants (
|
|
26
|
+
id TEXT PRIMARY KEY,
|
|
27
|
+
conversation_id TEXT NOT NULL REFERENCES conversations(id),
|
|
28
|
+
kind TEXT NOT NULL CHECK(kind IN ('anima', 'human')),
|
|
29
|
+
name TEXT NOT NULL,
|
|
30
|
+
anima_id TEXT,
|
|
31
|
+
claude_session_id TEXT
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE INDEX idx_conv_participants_conv ON conversation_participants(conversation_id);
|
|
35
|
+
|
|
36
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
37
|
+
-- Extend sessions for conversation tracking
|
|
38
|
+
-- ════════════════════════════════════════════════════════════════════════
|
|
39
|
+
|
|
40
|
+
ALTER TABLE sessions ADD COLUMN conversation_id TEXT REFERENCES conversations(id);
|
|
41
|
+
ALTER TABLE sessions ADD COLUMN turn_number INTEGER;
|
|
42
|
+
|
|
43
|
+
CREATE INDEX idx_sessions_conversation ON sessions(conversation_id);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shardworks/nexus-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.69",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"@types/node": "25.5.0"
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
|
-
"dist"
|
|
27
|
+
"dist",
|
|
28
|
+
"migrations"
|
|
28
29
|
],
|
|
29
30
|
"scripts": {
|
|
30
31
|
"build": "tsc",
|