@eidola.app/cli 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/cli.d.ts +3 -0
  2. package/cli.d.ts.map +1 -0
  3. package/cli.js +46 -0
  4. package/cli.js.map +1 -0
  5. package/config.d.ts +16 -0
  6. package/config.d.ts.map +1 -0
  7. package/config.js +62 -0
  8. package/config.js.map +1 -0
  9. package/cursor/auto-activate.d.ts +16 -0
  10. package/cursor/auto-activate.d.ts.map +1 -0
  11. package/cursor/auto-activate.js +79 -0
  12. package/cursor/auto-activate.js.map +1 -0
  13. package/cursor/compile.d.ts +13 -0
  14. package/cursor/compile.d.ts.map +1 -0
  15. package/cursor/compile.js +47 -0
  16. package/cursor/compile.js.map +1 -0
  17. package/cursor/ensure-shrine.d.ts +25 -0
  18. package/cursor/ensure-shrine.d.ts.map +1 -0
  19. package/cursor/ensure-shrine.js +168 -0
  20. package/cursor/ensure-shrine.js.map +1 -0
  21. package/cursor/hash.d.ts +3 -0
  22. package/cursor/hash.d.ts.map +1 -0
  23. package/cursor/hash.js +7 -0
  24. package/cursor/hash.js.map +1 -0
  25. package/cursor/shrine-lock.d.ts +17 -0
  26. package/cursor/shrine-lock.d.ts.map +1 -0
  27. package/cursor/shrine-lock.js +82 -0
  28. package/cursor/shrine-lock.js.map +1 -0
  29. package/cursor/shrine-surface.d.ts +40 -0
  30. package/cursor/shrine-surface.d.ts.map +1 -0
  31. package/cursor/shrine-surface.js +152 -0
  32. package/cursor/shrine-surface.js.map +1 -0
  33. package/cursor/soul-source.d.ts +3 -0
  34. package/cursor/soul-source.d.ts.map +1 -0
  35. package/cursor/soul-source.js +15 -0
  36. package/cursor/soul-source.js.map +1 -0
  37. package/cursor/stale.d.ts +12 -0
  38. package/cursor/stale.d.ts.map +1 -0
  39. package/cursor/stale.js +41 -0
  40. package/cursor/stale.js.map +1 -0
  41. package/cursor/types.d.ts +24 -0
  42. package/cursor/types.d.ts.map +1 -0
  43. package/cursor/types.js +2 -0
  44. package/cursor/types.js.map +1 -0
  45. package/cursor/workspace-config.d.ts +13 -0
  46. package/cursor/workspace-config.d.ts.map +1 -0
  47. package/cursor/workspace-config.js +44 -0
  48. package/cursor/workspace-config.js.map +1 -0
  49. package/engram/loader.d.ts +3 -0
  50. package/engram/loader.d.ts.map +1 -0
  51. package/engram/loader.js +60 -0
  52. package/engram/loader.js.map +1 -0
  53. package/engram/parse.d.ts +4 -0
  54. package/engram/parse.d.ts.map +1 -0
  55. package/engram/parse.js +190 -0
  56. package/engram/parse.js.map +1 -0
  57. package/engram/registry.d.ts +9 -0
  58. package/engram/registry.d.ts.map +1 -0
  59. package/engram/registry.js +54 -0
  60. package/engram/registry.js.map +1 -0
  61. package/engram/types.d.ts +58 -0
  62. package/engram/types.d.ts.map +1 -0
  63. package/engram/types.js +12 -0
  64. package/engram/types.js.map +1 -0
  65. package/engram/validate.d.ts +7 -0
  66. package/engram/validate.d.ts.map +1 -0
  67. package/engram/validate.js +22 -0
  68. package/engram/validate.js.map +1 -0
  69. package/index.d.ts +30 -0
  70. package/index.d.ts.map +1 -0
  71. package/index.js +27 -0
  72. package/index.js.map +1 -0
  73. package/migrations/json-to-directory.d.ts +8 -0
  74. package/migrations/json-to-directory.d.ts.map +1 -0
  75. package/migrations/json-to-directory.js +151 -0
  76. package/migrations/json-to-directory.js.map +1 -0
  77. package/migrations/types.d.ts +46 -0
  78. package/migrations/types.d.ts.map +1 -0
  79. package/migrations/types.js +2 -0
  80. package/migrations/types.js.map +1 -0
  81. package/package.json +42 -0
  82. package/server.d.ts +5 -0
  83. package/server.d.ts.map +1 -0
  84. package/server.js +95 -0
  85. package/server.js.map +1 -0
  86. package/session/state.d.ts +29 -0
  87. package/session/state.d.ts.map +1 -0
  88. package/session/state.js +69 -0
  89. package/session/state.js.map +1 -0
  90. package/shrine/renderer/assets/index-C44XsM0B.js +4083 -0
  91. package/shrine/renderer/assets/index-DeRYP3aH.css +1 -0
  92. package/shrine/renderer/index.html +32 -0
  93. package/shrine/server/display-config.d.ts +20 -0
  94. package/shrine/server/display-config.d.ts.map +1 -0
  95. package/shrine/server/display-config.js +98 -0
  96. package/shrine/server/display-config.js.map +1 -0
  97. package/shrine/server/index.d.ts +35 -0
  98. package/shrine/server/index.d.ts.map +1 -0
  99. package/shrine/server/index.js +337 -0
  100. package/shrine/server/index.js.map +1 -0
  101. package/shrine/shared/approval-idle-logic.d.ts +17 -0
  102. package/shrine/shared/approval-idle-logic.d.ts.map +1 -0
  103. package/shrine/shared/approval-idle-logic.js +63 -0
  104. package/shrine/shared/approval-idle-logic.js.map +1 -0
  105. package/shrine/shared/approval-idle-logic.test.d.ts +2 -0
  106. package/shrine/shared/approval-idle-logic.test.d.ts.map +1 -0
  107. package/shrine/shared/approval-idle-logic.test.js +49 -0
  108. package/shrine/shared/approval-idle-logic.test.js.map +1 -0
  109. package/shrine/shared/kraken-detect.d.ts +36 -0
  110. package/shrine/shared/kraken-detect.d.ts.map +1 -0
  111. package/shrine/shared/kraken-detect.js +61 -0
  112. package/shrine/shared/kraken-detect.js.map +1 -0
  113. package/shrine/shared/kraken-detect.test.d.ts +2 -0
  114. package/shrine/shared/kraken-detect.test.d.ts.map +1 -0
  115. package/shrine/shared/kraken-detect.test.js +35 -0
  116. package/shrine/shared/kraken-detect.test.js.map +1 -0
  117. package/shrine/shared/shrine-api.d.ts +15 -0
  118. package/shrine/shared/shrine-api.d.ts.map +1 -0
  119. package/shrine/shared/shrine-api.js +2 -0
  120. package/shrine/shared/shrine-api.js.map +1 -0
  121. package/shrine/shared/shrine-display-config.d.ts +34 -0
  122. package/shrine/shared/shrine-display-config.d.ts.map +1 -0
  123. package/shrine/shared/shrine-display-config.js +197 -0
  124. package/shrine/shared/shrine-display-config.js.map +1 -0
  125. package/shrine/shared/shrine-display-config.test.d.ts +2 -0
  126. package/shrine/shared/shrine-display-config.test.d.ts.map +1 -0
  127. package/shrine/shared/shrine-display-config.test.js +53 -0
  128. package/shrine/shared/shrine-display-config.test.js.map +1 -0
  129. package/shrine/shared/shrine-state-colors.d.ts +4 -0
  130. package/shrine/shared/shrine-state-colors.d.ts.map +1 -0
  131. package/shrine/shared/shrine-state-colors.js +17 -0
  132. package/shrine/shared/shrine-state-colors.js.map +1 -0
  133. package/shrine/shared/shrine-surface.d.ts +32 -0
  134. package/shrine/shared/shrine-surface.d.ts.map +1 -0
  135. package/shrine/shared/shrine-surface.js +67 -0
  136. package/shrine/shared/shrine-surface.js.map +1 -0
  137. package/shrine/shared/shrine-surface.test.d.ts +2 -0
  138. package/shrine/shared/shrine-surface.test.d.ts.map +1 -0
  139. package/shrine/shared/shrine-surface.test.js +35 -0
  140. package/shrine/shared/shrine-surface.test.js.map +1 -0
  141. package/shrine/shared/state-socket-client.d.ts +30 -0
  142. package/shrine/shared/state-socket-client.d.ts.map +1 -0
  143. package/shrine/shared/state-socket-client.js +103 -0
  144. package/shrine/shared/state-socket-client.js.map +1 -0
  145. package/shrine/shared/state-socket-client.test.d.ts +2 -0
  146. package/shrine/shared/state-socket-client.test.d.ts.map +1 -0
  147. package/shrine/shared/state-socket-client.test.js +20 -0
  148. package/shrine/shared/state-socket-client.test.js.map +1 -0
  149. package/shrine/shared/types.d.ts +43 -0
  150. package/shrine/shared/types.d.ts.map +1 -0
  151. package/shrine/shared/types.js +58 -0
  152. package/shrine/shared/types.js.map +1 -0
  153. package/shrine/shared/types.test.d.ts +2 -0
  154. package/shrine/shared/types.test.d.ts.map +1 -0
  155. package/shrine/shared/types.test.js +26 -0
  156. package/shrine/shared/types.test.js.map +1 -0
  157. package/shrine/shared/vessel-resolver.d.ts +37 -0
  158. package/shrine/shared/vessel-resolver.d.ts.map +1 -0
  159. package/shrine/shared/vessel-resolver.js +135 -0
  160. package/shrine/shared/vessel-resolver.js.map +1 -0
  161. package/shrine/vendor/mcp.d.ts +3 -0
  162. package/shrine/vendor/mcp.d.ts.map +1 -0
  163. package/shrine/vendor/mcp.js +3 -0
  164. package/shrine/vendor/mcp.js.map +1 -0
  165. package/socket/expression.d.ts +3 -0
  166. package/socket/expression.d.ts.map +1 -0
  167. package/socket/expression.js +28 -0
  168. package/socket/expression.js.map +1 -0
  169. package/socket/protocol.d.ts +16 -0
  170. package/socket/protocol.d.ts.map +1 -0
  171. package/socket/protocol.js +75 -0
  172. package/socket/protocol.js.map +1 -0
  173. package/socket/server.d.ts +22 -0
  174. package/socket/server.d.ts.map +1 -0
  175. package/socket/server.js +184 -0
  176. package/socket/server.js.map +1 -0
  177. package/socket/types.d.ts +35 -0
  178. package/socket/types.d.ts.map +1 -0
  179. package/socket/types.js +18 -0
  180. package/socket/types.js.map +1 -0
  181. package/socket/visual-turn.d.ts +8 -0
  182. package/socket/visual-turn.d.ts.map +1 -0
  183. package/socket/visual-turn.js +27 -0
  184. package/socket/visual-turn.js.map +1 -0
  185. package/soul/injection.d.ts +13 -0
  186. package/soul/injection.d.ts.map +1 -0
  187. package/soul/injection.js +36 -0
  188. package/soul/injection.js.map +1 -0
  189. package/soul/reinject.d.ts +13 -0
  190. package/soul/reinject.d.ts.map +1 -0
  191. package/soul/reinject.js +28 -0
  192. package/soul/reinject.js.map +1 -0
  193. package/tools/handlers.d.ts +20 -0
  194. package/tools/handlers.d.ts.map +1 -0
  195. package/tools/handlers.js +148 -0
  196. package/tools/handlers.js.map +1 -0
  197. package/tools/register.d.ts +4 -0
  198. package/tools/register.d.ts.map +1 -0
  199. package/tools/register.js +48 -0
  200. package/tools/register.js.map +1 -0
  201. package/vendor/tool-state-pkg/index.d.ts +23 -0
  202. package/vendor/tool-state-pkg/index.d.ts.map +1 -0
  203. package/vendor/tool-state-pkg/index.js +140 -0
  204. package/vendor/tool-state-pkg/index.js.map +1 -0
  205. package/vendor/tool-state.d.ts +3 -0
  206. package/vendor/tool-state.d.ts.map +1 -0
  207. package/vendor/tool-state.js +3 -0
  208. package/vendor/tool-state.js.map +1 -0
  209. package/watch/filesystem.d.ts +7 -0
  210. package/watch/filesystem.d.ts.map +1 -0
  211. package/watch/filesystem.js +66 -0
  212. package/watch/filesystem.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-to-directory.js","sourceRoot":"","sources":["../../src/migrations/json-to-directory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Legacy pre-rebuild `.engram.json` blob shape (PersonaModel v1.x lineage).
3
+ * Migration reads this format and outputs a directory package without mutating source.
4
+ */
5
+ export interface LegacyEngramMetadata {
6
+ author?: string;
7
+ createdAt?: string;
8
+ updatedAt?: string;
9
+ tags?: string[];
10
+ license?: string;
11
+ builtIn?: boolean;
12
+ sample?: boolean;
13
+ }
14
+ export interface LegacyVoiceConfig {
15
+ enabled?: boolean;
16
+ provider?: string;
17
+ voiceId?: string;
18
+ }
19
+ export interface LegacyVesselSpec {
20
+ name?: string;
21
+ appearance?: string | null;
22
+ mannerisms?: Record<string, string>;
23
+ }
24
+ export interface LegacyPackRef {
25
+ packId?: string;
26
+ sourceType?: 'lottie' | 'webm' | 'gif';
27
+ }
28
+ export interface LegacyEngramJson {
29
+ version?: string;
30
+ id?: string;
31
+ name: string;
32
+ description?: string;
33
+ systemPrompt?: string;
34
+ soulMd?: string;
35
+ styleRules?: string[];
36
+ behaviorRules?: string[];
37
+ states?: string[];
38
+ packId?: string;
39
+ vessel?: LegacyVesselSpec | LegacyPackRef | null;
40
+ voice?: LegacyVoiceConfig | null;
41
+ metadata?: LegacyEngramMetadata;
42
+ reinject_interval?: number;
43
+ extensions?: Record<string, unknown>;
44
+ expressions?: Record<string, string>;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@eidola.app/cli",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "description": "Portable AI personality runtime — MCP server, Shrine display, and reactive Vessel control.",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "eidola",
9
+ "mcp",
10
+ "ai-persona",
11
+ "avatar",
12
+ "engram",
13
+ "vessel",
14
+ "model-context-protocol",
15
+ "cursor"
16
+ ],
17
+ "main": "index.js",
18
+ "types": "index.d.ts",
19
+ "bin": {
20
+ "eidola": "cli.js"
21
+ },
22
+ "exports": {
23
+ ".": {
24
+ "types": "./index.d.ts",
25
+ "import": "./index.js"
26
+ },
27
+ "./server": {
28
+ "types": "./server.d.ts",
29
+ "import": "./server.js"
30
+ }
31
+ },
32
+ "dependencies": {
33
+ "@modelcontextprotocol/sdk": "^1.29.0",
34
+ "js-yaml": "^4.1.0",
35
+ "lottie-web": "^5.13.0",
36
+ "three": "^0.176.0",
37
+ "zod": "^4.4.3"
38
+ },
39
+ "engines": {
40
+ "node": ">=20.0.0"
41
+ }
42
+ }
package/server.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ export declare function startEidolaMcpServer(): Promise<{
3
+ close: () => Promise<void>;
4
+ }>;
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAmBA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC,CA8ED"}
package/server.js ADDED
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { resolveEidolaRuntimeConfig } from './config.js';
5
+ import { autoActivateFromWorkspace } from './cursor/auto-activate.js';
6
+ import { SessionState } from './session/state.js';
7
+ import { createStateSocketServer } from './socket/server.js';
8
+ import { createToolHandlers } from './tools/handlers.js';
9
+ import { registerEidolaTools } from './tools/register.js';
10
+ import { watchEidolaPaths } from './watch/filesystem.js';
11
+ const SERVER_NAME = 'eidola';
12
+ const SERVER_VERSION = '0.2.0';
13
+ function debug(...args) {
14
+ console.error('[eidola-mcp]', ...args);
15
+ }
16
+ export async function startEidolaMcpServer() {
17
+ const config = resolveEidolaRuntimeConfig();
18
+ const session = new SessionState();
19
+ let stateSocket;
20
+ stateSocket = createStateSocketServer(session, {
21
+ host: config.stateSocketHost,
22
+ port: config.stateSocketPort,
23
+ bufferSize: config.stateBufferSize,
24
+ onWarn: (message) => debug(message),
25
+ onReassertVessel: async () => {
26
+ const reloaded = await session.reloadActive();
27
+ if (!reloaded || !stateSocket.isListening()) {
28
+ return;
29
+ }
30
+ stateSocket.broadcastState({ state: 'idle' });
31
+ },
32
+ });
33
+ const socketAddress = await stateSocket.start();
34
+ const handlers = createToolHandlers(config, session, stateSocket);
35
+ if (socketAddress.listening) {
36
+ const activation = await autoActivateFromWorkspace(config, session, stateSocket, (message) => debug(message));
37
+ if (activation.activated) {
38
+ debug('auto-activate:', activation.engramId, activation.alreadyActive ? '(already active)' : '(loaded)');
39
+ }
40
+ else if (activation.error) {
41
+ debug('auto-activate skipped:', activation.error);
42
+ }
43
+ }
44
+ const server = new McpServer({
45
+ name: SERVER_NAME,
46
+ version: SERVER_VERSION,
47
+ }, {
48
+ instructions: 'Eidola MCP server — load Eidolons (Engram + Vessel) for Soul injection and expression control. ' +
49
+ 'Use load_eidolon to bind a persona and Vessel. Local-only; no remote API proxy.',
50
+ });
51
+ registerEidolaTools(server, handlers);
52
+ const watcher = watchEidolaPaths(config, session, (reason) => {
53
+ debug('hot-reload:', reason);
54
+ });
55
+ const transport = new StdioServerTransport();
56
+ await server.connect(transport);
57
+ debug('stdio transport connected');
58
+ debug('engrams:', config.engramsDir);
59
+ debug('vessels:', config.vesselsDir);
60
+ if (config.workspaceRoot) {
61
+ debug('workspace:', config.workspaceRoot);
62
+ }
63
+ if (socketAddress.listening) {
64
+ debug('state socket:', `${socketAddress.host}:${socketAddress.port}`);
65
+ }
66
+ else {
67
+ debug('state socket: not bound (port in use) — MCP tools OK; free port', config.stateSocketPort, 'for overlay sync');
68
+ }
69
+ const close = async () => {
70
+ watcher.close();
71
+ await stateSocket.close();
72
+ await server.close();
73
+ };
74
+ return { close };
75
+ }
76
+ async function main() {
77
+ const { close } = await startEidolaMcpServer();
78
+ const shutdown = async (signal) => {
79
+ debug(`${signal} received, shutting down...`);
80
+ await close();
81
+ process.exit(0);
82
+ };
83
+ process.on('SIGINT', () => void shutdown('SIGINT'));
84
+ process.on('SIGTERM', () => void shutdown('SIGTERM'));
85
+ }
86
+ import { pathToFileURL } from 'node:url';
87
+ const isMain = process.argv[1] !== undefined &&
88
+ import.meta.url === pathToFileURL(process.argv[1]).href;
89
+ if (isMain) {
90
+ main().catch((error) => {
91
+ debug('Fatal error:', error);
92
+ process.exit(1);
93
+ });
94
+ }
95
+ //# sourceMappingURL=server.js.map
package/server.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { LoadedEngram } from '../engram/types.js';
2
+ import type { SoulSource } from '../cursor/soul-source.js';
3
+ import { type SoulInjectionPayload } from '../soul/injection.js';
4
+ import { ReinjectTracker } from '../soul/reinject.js';
5
+ export interface ActiveEidolonSnapshot {
6
+ engram_id: string;
7
+ name: string;
8
+ engram: LoadedEngram['engram'];
9
+ vessel: LoadedEngram['vessel'];
10
+ expression: string | null;
11
+ soul_source: SoulSource;
12
+ reinject: ReturnType<ReinjectTracker['status']>;
13
+ }
14
+ export declare class SessionState {
15
+ private active;
16
+ private expressionOverride;
17
+ private soulSource;
18
+ private readonly reinjectTracker;
19
+ getActive(): LoadedEngram | null;
20
+ getExpressionOverride(): string | null;
21
+ getSoulSource(): SoulSource;
22
+ load(directory: string, soulSource?: Exclude<SoulSource, 'none'>): Promise<LoadedEngram>;
23
+ reloadActive(): Promise<LoadedEngram | null>;
24
+ setExpression(state: string): void;
25
+ recordAssistantTurn(): SoulInjectionPayload | null;
26
+ buildInitialSoulInjection(): SoulInjectionPayload | null;
27
+ snapshot(): ActiveEidolonSnapshot | null;
28
+ }
29
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;CACjD;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD,SAAS,IAAI,YAAY,GAAG,IAAI;IAIhC,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAItC,aAAa,IAAI,UAAU;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IASrG,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAWlD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,mBAAmB,IAAI,oBAAoB,GAAG,IAAI;IAalD,yBAAyB,IAAI,oBAAoB,GAAG,IAAI;IAQxD,QAAQ,IAAI,qBAAqB,GAAG,IAAI;CAezC"}
@@ -0,0 +1,69 @@
1
+ import { loadEngramFromDirectory } from '../engram/loader.js';
2
+ import { buildSoulInjectionPayload } from '../soul/injection.js';
3
+ import { ReinjectTracker } from '../soul/reinject.js';
4
+ export class SessionState {
5
+ active = null;
6
+ expressionOverride = null;
7
+ soulSource = 'none';
8
+ reinjectTracker = new ReinjectTracker();
9
+ getActive() {
10
+ return this.active;
11
+ }
12
+ getExpressionOverride() {
13
+ return this.expressionOverride;
14
+ }
15
+ getSoulSource() {
16
+ return this.soulSource;
17
+ }
18
+ async load(directory, soulSource = 'injection') {
19
+ const loaded = await loadEngramFromDirectory(directory);
20
+ this.active = loaded;
21
+ this.expressionOverride = null;
22
+ this.soulSource = soulSource;
23
+ this.reinjectTracker.reset();
24
+ return loaded;
25
+ }
26
+ async reloadActive() {
27
+ if (!this.active) {
28
+ return null;
29
+ }
30
+ const directory = this.active.directory;
31
+ const loaded = await loadEngramFromDirectory(directory);
32
+ this.active = loaded;
33
+ return loaded;
34
+ }
35
+ setExpression(state) {
36
+ this.expressionOverride = state;
37
+ }
38
+ recordAssistantTurn() {
39
+ if (!this.active || this.soulSource === 'cursor_rule') {
40
+ return null;
41
+ }
42
+ const due = this.reinjectTracker.recordAssistantTurn(this.active.engram.reinject_interval);
43
+ if (!due) {
44
+ return null;
45
+ }
46
+ return buildSoulInjectionPayload(this.active.engram.id, this.active.soul);
47
+ }
48
+ buildInitialSoulInjection() {
49
+ if (!this.active || this.soulSource === 'cursor_rule') {
50
+ return null;
51
+ }
52
+ return buildSoulInjectionPayload(this.active.engram.id, this.active.soul);
53
+ }
54
+ snapshot() {
55
+ if (!this.active) {
56
+ return null;
57
+ }
58
+ return {
59
+ engram_id: this.active.engram.id,
60
+ name: this.active.engram.name,
61
+ engram: this.active.engram,
62
+ vessel: this.active.vessel,
63
+ expression: this.expressionOverride,
64
+ soul_source: this.soulSource,
65
+ reinject: this.reinjectTracker.status(this.active.engram.reinject_interval),
66
+ };
67
+ }
68
+ }
69
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/session/state.ts"],"names":[],"mappings":"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"}