common-memory-core 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 (284) hide show
  1. package/.env.sample +3 -0
  2. package/CHANGELOG.md +39 -0
  3. package/LICENSE +21 -0
  4. package/README.md +120 -0
  5. package/SECURITY.md +48 -0
  6. package/dist/cli/codex/transcript-0.153.4.d.ts +20 -0
  7. package/dist/cli/codex/transcript-0.153.4.d.ts.map +1 -0
  8. package/dist/cli/codex/transcript-0.153.4.js +78 -0
  9. package/dist/cli/codex/transcript-0.153.4.js.map +1 -0
  10. package/dist/cli/codex-config.d.ts +2 -0
  11. package/dist/cli/codex-config.d.ts.map +1 -0
  12. package/dist/cli/codex-config.js +5 -0
  13. package/dist/cli/codex-config.js.map +1 -0
  14. package/dist/cli/codex-hook.d.ts +18 -0
  15. package/dist/cli/codex-hook.d.ts.map +1 -0
  16. package/dist/cli/codex-hook.js +140 -0
  17. package/dist/cli/codex-hook.js.map +1 -0
  18. package/dist/cli/codex-session.d.ts +3 -0
  19. package/dist/cli/codex-session.d.ts.map +1 -0
  20. package/dist/cli/codex-session.js +3 -0
  21. package/dist/cli/codex-session.js.map +1 -0
  22. package/dist/cli/flush-command.d.ts +6 -0
  23. package/dist/cli/flush-command.d.ts.map +1 -0
  24. package/dist/cli/flush-command.js +30 -0
  25. package/dist/cli/flush-command.js.map +1 -0
  26. package/dist/cli/host-launch.d.ts +28 -0
  27. package/dist/cli/host-launch.d.ts.map +1 -0
  28. package/dist/cli/host-launch.js +16 -0
  29. package/dist/cli/host-launch.js.map +1 -0
  30. package/dist/cli/host-process.d.ts +3 -0
  31. package/dist/cli/host-process.d.ts.map +1 -0
  32. package/dist/cli/host-process.js +35 -0
  33. package/dist/cli/host-process.js.map +1 -0
  34. package/dist/cli/host-session.d.ts +22 -0
  35. package/dist/cli/host-session.d.ts.map +1 -0
  36. package/dist/cli/host-session.js +204 -0
  37. package/dist/cli/host-session.js.map +1 -0
  38. package/dist/cli/import-command.d.ts +20 -0
  39. package/dist/cli/import-command.d.ts.map +1 -0
  40. package/dist/cli/import-command.js +98 -0
  41. package/dist/cli/import-command.js.map +1 -0
  42. package/dist/cli/interactive-process.d.ts +3 -0
  43. package/dist/cli/interactive-process.d.ts.map +1 -0
  44. package/dist/cli/interactive-process.js +15 -0
  45. package/dist/cli/interactive-process.js.map +1 -0
  46. package/dist/cli/main.d.ts +3 -0
  47. package/dist/cli/main.d.ts.map +1 -0
  48. package/dist/cli/main.js +151 -0
  49. package/dist/cli/main.js.map +1 -0
  50. package/dist/cli/mcp-config.d.ts +16 -0
  51. package/dist/cli/mcp-config.d.ts.map +1 -0
  52. package/dist/cli/mcp-config.js +108 -0
  53. package/dist/cli/mcp-config.js.map +1 -0
  54. package/dist/cli/network-test.d.ts +4 -0
  55. package/dist/cli/network-test.d.ts.map +1 -0
  56. package/dist/cli/network-test.js +28 -0
  57. package/dist/cli/network-test.js.map +1 -0
  58. package/dist/cli/operations.d.ts +26 -0
  59. package/dist/cli/operations.d.ts.map +1 -0
  60. package/dist/cli/operations.js +55 -0
  61. package/dist/cli/operations.js.map +1 -0
  62. package/dist/cli/session-drain.d.ts +3 -0
  63. package/dist/cli/session-drain.d.ts.map +1 -0
  64. package/dist/cli/session-drain.js +34 -0
  65. package/dist/cli/session-drain.js.map +1 -0
  66. package/dist/cli/storage-paths.d.ts +4 -0
  67. package/dist/cli/storage-paths.d.ts.map +1 -0
  68. package/dist/cli/storage-paths.js +15 -0
  69. package/dist/cli/storage-paths.js.map +1 -0
  70. package/dist/cli/tui-integrations.d.ts +4 -0
  71. package/dist/cli/tui-integrations.d.ts.map +1 -0
  72. package/dist/cli/tui-integrations.js +143 -0
  73. package/dist/cli/tui-integrations.js.map +1 -0
  74. package/dist/cli/tui-prompts.d.ts +22 -0
  75. package/dist/cli/tui-prompts.d.ts.map +1 -0
  76. package/dist/cli/tui-prompts.js +64 -0
  77. package/dist/cli/tui-prompts.js.map +1 -0
  78. package/dist/cli/tui-settings.d.ts +21 -0
  79. package/dist/cli/tui-settings.d.ts.map +1 -0
  80. package/dist/cli/tui-settings.js +198 -0
  81. package/dist/cli/tui-settings.js.map +1 -0
  82. package/dist/cli/tui.d.ts +4 -0
  83. package/dist/cli/tui.d.ts.map +1 -0
  84. package/dist/cli/tui.js +292 -0
  85. package/dist/cli/tui.js.map +1 -0
  86. package/dist/cli/work-config.d.ts +24 -0
  87. package/dist/cli/work-config.d.ts.map +1 -0
  88. package/dist/cli/work-config.js +147 -0
  89. package/dist/cli/work-config.js.map +1 -0
  90. package/dist/config/config.d.ts +41 -0
  91. package/dist/config/config.d.ts.map +1 -0
  92. package/dist/config/config.js +193 -0
  93. package/dist/config/config.js.map +1 -0
  94. package/dist/config/private-env.d.ts +8 -0
  95. package/dist/config/private-env.d.ts.map +1 -0
  96. package/dist/config/private-env.js +38 -0
  97. package/dist/config/private-env.js.map +1 -0
  98. package/dist/config/runtime.d.ts +32 -0
  99. package/dist/config/runtime.d.ts.map +1 -0
  100. package/dist/config/runtime.js +85 -0
  101. package/dist/config/runtime.js.map +1 -0
  102. package/dist/core/contracts/errors.d.ts +10 -0
  103. package/dist/core/contracts/errors.d.ts.map +1 -0
  104. package/dist/core/contracts/errors.js +23 -0
  105. package/dist/core/contracts/errors.js.map +1 -0
  106. package/dist/core/safety/external-preflight.d.ts +7 -0
  107. package/dist/core/safety/external-preflight.d.ts.map +1 -0
  108. package/dist/core/safety/external-preflight.js +47 -0
  109. package/dist/core/safety/external-preflight.js.map +1 -0
  110. package/dist/core/safety/redaction.d.ts +2 -0
  111. package/dist/core/safety/redaction.d.ts.map +1 -0
  112. package/dist/core/safety/redaction.js +4 -0
  113. package/dist/core/safety/redaction.js.map +1 -0
  114. package/dist/core/safety/rules.d.ts +6 -0
  115. package/dist/core/safety/rules.d.ts.map +1 -0
  116. package/dist/core/safety/rules.js +14 -0
  117. package/dist/core/safety/rules.js.map +1 -0
  118. package/dist/core/safety/scanner.d.ts +11 -0
  119. package/dist/core/safety/scanner.d.ts.map +1 -0
  120. package/dist/core/safety/scanner.js +18 -0
  121. package/dist/core/safety/scanner.js.map +1 -0
  122. package/dist/core/transaction/fsync.d.ts +6 -0
  123. package/dist/core/transaction/fsync.d.ts.map +1 -0
  124. package/dist/core/transaction/fsync.js +41 -0
  125. package/dist/core/transaction/fsync.js.map +1 -0
  126. package/dist/index.d.ts +16 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +13 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/mcp/ingress.d.ts +61 -0
  131. package/dist/mcp/ingress.d.ts.map +1 -0
  132. package/dist/mcp/ingress.js +134 -0
  133. package/dist/mcp/ingress.js.map +1 -0
  134. package/dist/mcp/server.d.ts +4 -0
  135. package/dist/mcp/server.d.ts.map +1 -0
  136. package/dist/mcp/server.js +92 -0
  137. package/dist/mcp/server.js.map +1 -0
  138. package/dist/mcp/stdio.d.ts +5 -0
  139. package/dist/mcp/stdio.d.ts.map +1 -0
  140. package/dist/mcp/stdio.js +115 -0
  141. package/dist/mcp/stdio.js.map +1 -0
  142. package/dist/memory-manager/contracts/diagnostic.d.ts +14 -0
  143. package/dist/memory-manager/contracts/diagnostic.d.ts.map +1 -0
  144. package/dist/memory-manager/contracts/diagnostic.js +17 -0
  145. package/dist/memory-manager/contracts/diagnostic.js.map +1 -0
  146. package/dist/memory-manager/contracts/disclosure.d.ts +12 -0
  147. package/dist/memory-manager/contracts/disclosure.d.ts.map +1 -0
  148. package/dist/memory-manager/contracts/disclosure.js +8 -0
  149. package/dist/memory-manager/contracts/disclosure.js.map +1 -0
  150. package/dist/memory-manager/contracts/errors.d.ts +15 -0
  151. package/dist/memory-manager/contracts/errors.d.ts.map +1 -0
  152. package/dist/memory-manager/contracts/errors.js +25 -0
  153. package/dist/memory-manager/contracts/errors.js.map +1 -0
  154. package/dist/memory-manager/contracts/model-port.d.ts +38 -0
  155. package/dist/memory-manager/contracts/model-port.d.ts.map +1 -0
  156. package/dist/memory-manager/contracts/model-port.js +2 -0
  157. package/dist/memory-manager/contracts/model-port.js.map +1 -0
  158. package/dist/memory-manager/network/client.d.ts +13 -0
  159. package/dist/memory-manager/network/client.d.ts.map +1 -0
  160. package/dist/memory-manager/network/client.js +122 -0
  161. package/dist/memory-manager/network/client.js.map +1 -0
  162. package/dist/memory-manager/network/route.d.ts +31 -0
  163. package/dist/memory-manager/network/route.d.ts.map +1 -0
  164. package/dist/memory-manager/network/route.js +148 -0
  165. package/dist/memory-manager/network/route.js.map +1 -0
  166. package/dist/memory-manager/openai/abort.d.ts +4 -0
  167. package/dist/memory-manager/openai/abort.d.ts.map +1 -0
  168. package/dist/memory-manager/openai/abort.js +19 -0
  169. package/dist/memory-manager/openai/abort.js.map +1 -0
  170. package/dist/memory-manager/openai/bounded-body.d.ts +2 -0
  171. package/dist/memory-manager/openai/bounded-body.d.ts.map +1 -0
  172. package/dist/memory-manager/openai/bounded-body.js +49 -0
  173. package/dist/memory-manager/openai/bounded-body.js.map +1 -0
  174. package/dist/memory-manager/openai/openai-chat-adapter.d.ts +16 -0
  175. package/dist/memory-manager/openai/openai-chat-adapter.d.ts.map +1 -0
  176. package/dist/memory-manager/openai/openai-chat-adapter.js +51 -0
  177. package/dist/memory-manager/openai/openai-chat-adapter.js.map +1 -0
  178. package/dist/memory-manager/openai/openai-responses-adapter.d.ts +15 -0
  179. package/dist/memory-manager/openai/openai-responses-adapter.d.ts.map +1 -0
  180. package/dist/memory-manager/openai/openai-responses-adapter.js +14 -0
  181. package/dist/memory-manager/openai/openai-responses-adapter.js.map +1 -0
  182. package/dist/memory-manager/openai/options.d.ts +14 -0
  183. package/dist/memory-manager/openai/options.d.ts.map +1 -0
  184. package/dist/memory-manager/openai/options.js +29 -0
  185. package/dist/memory-manager/openai/options.js.map +1 -0
  186. package/dist/memory-manager/openai/remote-http.d.ts +33 -0
  187. package/dist/memory-manager/openai/remote-http.d.ts.map +1 -0
  188. package/dist/memory-manager/openai/remote-http.js +207 -0
  189. package/dist/memory-manager/openai/remote-http.js.map +1 -0
  190. package/dist/memory-manager/openai/response-decoder.d.ts +3 -0
  191. package/dist/memory-manager/openai/response-decoder.d.ts.map +1 -0
  192. package/dist/memory-manager/openai/response-decoder.js +57 -0
  193. package/dist/memory-manager/openai/response-decoder.js.map +1 -0
  194. package/dist/memory-manager/openai/retry.d.ts +8 -0
  195. package/dist/memory-manager/openai/retry.d.ts.map +1 -0
  196. package/dist/memory-manager/openai/retry.js +18 -0
  197. package/dist/memory-manager/openai/retry.js.map +1 -0
  198. package/dist/pi-extension/extraction-runtime.d.ts +51 -0
  199. package/dist/pi-extension/extraction-runtime.d.ts.map +1 -0
  200. package/dist/pi-extension/extraction-runtime.js +87 -0
  201. package/dist/pi-extension/extraction-runtime.js.map +1 -0
  202. package/dist/pi-extension/index.d.ts +19 -0
  203. package/dist/pi-extension/index.d.ts.map +1 -0
  204. package/dist/pi-extension/index.js +172 -0
  205. package/dist/pi-extension/index.js.map +1 -0
  206. package/dist/v2/canonical.d.ts +53 -0
  207. package/dist/v2/canonical.d.ts.map +1 -0
  208. package/dist/v2/canonical.js +321 -0
  209. package/dist/v2/canonical.js.map +1 -0
  210. package/dist/v2/contract.d.ts +34 -0
  211. package/dist/v2/contract.d.ts.map +1 -0
  212. package/dist/v2/contract.js +53 -0
  213. package/dist/v2/contract.js.map +1 -0
  214. package/dist/v2/document-import.d.ts +100 -0
  215. package/dist/v2/document-import.d.ts.map +1 -0
  216. package/dist/v2/document-import.js +259 -0
  217. package/dist/v2/document-import.js.map +1 -0
  218. package/dist/v2/errors.d.ts +6 -0
  219. package/dist/v2/errors.d.ts.map +1 -0
  220. package/dist/v2/errors.js +29 -0
  221. package/dist/v2/errors.js.map +1 -0
  222. package/dist/v2/import.d.ts +26 -0
  223. package/dist/v2/import.d.ts.map +1 -0
  224. package/dist/v2/import.js +48 -0
  225. package/dist/v2/import.js.map +1 -0
  226. package/dist/v2/lock.d.ts +3 -0
  227. package/dist/v2/lock.d.ts.map +1 -0
  228. package/dist/v2/lock.js +47 -0
  229. package/dist/v2/lock.js.map +1 -0
  230. package/dist/v2/memory-maintainer.md +38 -0
  231. package/dist/v2/read-guidance.d.ts +3 -0
  232. package/dist/v2/read-guidance.d.ts.map +1 -0
  233. package/dist/v2/read-guidance.js +3 -0
  234. package/dist/v2/read-guidance.js.map +1 -0
  235. package/dist/v2/reader.d.ts +25 -0
  236. package/dist/v2/reader.d.ts.map +1 -0
  237. package/dist/v2/reader.js +38 -0
  238. package/dist/v2/reader.js.map +1 -0
  239. package/dist/v2/registry.d.ts +14 -0
  240. package/dist/v2/registry.d.ts.map +1 -0
  241. package/dist/v2/registry.js +46 -0
  242. package/dist/v2/registry.js.map +1 -0
  243. package/dist/v2/runtime.d.ts +133 -0
  244. package/dist/v2/runtime.d.ts.map +1 -0
  245. package/dist/v2/runtime.js +326 -0
  246. package/dist/v2/runtime.js.map +1 -0
  247. package/dist/v2/session-drain.d.ts +14 -0
  248. package/dist/v2/session-drain.d.ts.map +1 -0
  249. package/dist/v2/session-drain.js +16 -0
  250. package/dist/v2/session-drain.js.map +1 -0
  251. package/dist/v2/session.d.ts +54 -0
  252. package/dist/v2/session.d.ts.map +1 -0
  253. package/dist/v2/session.js +158 -0
  254. package/dist/v2/session.js.map +1 -0
  255. package/dist/v2/writer.d.ts +40 -0
  256. package/dist/v2/writer.d.ts.map +1 -0
  257. package/dist/v2/writer.js +327 -0
  258. package/dist/v2/writer.js.map +1 -0
  259. package/docs/00-index.md +19 -0
  260. package/docs/03-target-architecture.md +49 -0
  261. package/docs/init-v0.1-closeout.md +152 -0
  262. package/docs/init-v0.1-design.md +237 -0
  263. package/docs/init-v0.1-verification.md +303 -0
  264. package/docs/outbound-network-design.md +100 -0
  265. package/docs/outbound-network-verification.json +300 -0
  266. package/docs/provider-verification.md +94 -0
  267. package/docs/releasing.md +138 -0
  268. package/docs/session-integration.md +134 -0
  269. package/docs/tui-workbench.md +173 -0
  270. package/docs/usage.md +815 -0
  271. package/docs/v2-ablation-results.json +12035 -0
  272. package/docs/v2-ablation.md +117 -0
  273. package/docs/v2-evaluation-repeat-results.json +7 -0
  274. package/docs/v2-evaluation-scripted-results.json +67 -0
  275. package/docs/v2-evaluation.md +35 -0
  276. package/docs/v2-optimization-plan.md +23 -0
  277. package/docs/v2-performance-baseline-runtime.js.txt +231 -0
  278. package/docs/v2-performance-baseline.json +338 -0
  279. package/docs/v2-performance-behavior-equivalence.json +17 -0
  280. package/docs/v2-performance-results.json +585 -0
  281. package/docs/v2-performance.md +88 -0
  282. package/docs/v2-replacement-test-map.md +14 -0
  283. package/docs/v2-verification.md +49 -0
  284. package/package.json +87 -0
@@ -0,0 +1,28 @@
1
+ export declare const shellQuote: (value: string) => string;
2
+ export interface LaunchOptions {
3
+ wsl: boolean;
4
+ distro?: string | undefined;
5
+ user?: string | undefined;
6
+ wslExe?: string | undefined;
7
+ workspaces?: string[];
8
+ }
9
+ export declare function runtimeLaunch(options: LaunchOptions, env?: NodeJS.ProcessEnv): {
10
+ node: string;
11
+ cli: string;
12
+ home: string;
13
+ distro: string | undefined;
14
+ user: string;
15
+ wslExe: string;
16
+ command(args: string[]): {
17
+ command: string;
18
+ args: string[];
19
+ env?: never;
20
+ } | {
21
+ command: string;
22
+ args: string[];
23
+ env: {
24
+ COMMON_MEMORY_HOME: string;
25
+ };
26
+ };
27
+ };
28
+ //# sourceMappingURL=host-launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-launch.d.ts","sourceRoot":"","sources":["../../src/cli/host-launch.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,GAAE,OAAM,MAAM,WAA0C,CAAC;AAChF,MAAM,WAAW,aAAa;IAAG,GAAG,EAAC,OAAO,CAAC;IAAC,MAAM,CAAC,EAAC,MAAM,GAAC,SAAS,CAAC;IAAC,IAAI,CAAC,EAAC,MAAM,GAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAC,MAAM,GAAC,SAAS,CAAC;IAAC,UAAU,CAAC,EAAC,MAAM,EAAE,CAAA;CAAE;AAChJ,wBAAgB,aAAa,CAAC,OAAO,EAAC,aAAa,EAAC,GAAG,GAAC,MAAM,CAAC,UAAsB;;;;;;;kBAM7B,MAAM,EAAE;;;;;;;;;;;EAC/D"}
@@ -0,0 +1,16 @@
1
+ import { realpathSync } from 'node:fs';
2
+ import { userInfo } from 'node:os';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { configDirectory } from '../config/config.js';
5
+ export const shellQuote = (value) => "'" + value.replaceAll("'", "'\"'\"'") + "'";
6
+ export function runtimeLaunch(options, env = process.env) {
7
+ const node = realpathSync(process.execPath), cli = realpathSync(process.argv[1] ?? fileURLToPath(new URL('./main.js', import.meta.url))), home = configDirectory(env);
8
+ const distro = options.distro ?? env.WSL_DISTRO_NAME, user = options.user ?? userInfo().username;
9
+ if (options.wsl && (process.platform !== 'linux' || !distro))
10
+ throw new Error('--wsl requires a Linux runtime and a fixed --distro');
11
+ const wslExe = options.wslExe ?? 'C:\\Windows\\System32\\wsl.exe';
12
+ if (options.wsl && !/^[A-Za-z]:\\/.test(wslExe))
13
+ throw new Error('wsl.exe must be an absolute Windows path');
14
+ return { node, cli, home, distro, user, wslExe, command(args) { return options.wsl ? { command: wslExe, args: ['-d', distro, '-u', user, '-e', '/usr/bin/env', `COMMON_MEMORY_HOME=${home}`, node, cli, ...args] } : { command: node, args: [cli, ...args], env: { COMMON_MEMORY_HOME: home } }; } };
15
+ }
16
+ //# sourceMappingURL=host-launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-launch.js","sourceRoot":"","sources":["../../src/cli/host-launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,MAAM,CAAC,MAAM,UAAU,GAAC,CAAC,KAAY,EAAC,EAAE,CAAA,GAAG,GAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAC,SAAS,CAAC,GAAC,GAAG,CAAC;AAEhF,MAAM,UAAU,aAAa,CAAC,OAAqB,EAAC,MAAsB,OAAO,CAAC,GAAG;IACnF,MAAM,IAAI,GAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAC,GAAG,GAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAE,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,IAAI,GAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3J,MAAM,MAAM,GAAC,OAAO,CAAC,MAAM,IAAE,GAAG,CAAC,eAAe,EAAC,IAAI,GAAC,OAAO,CAAC,IAAI,IAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACxF,IAAG,OAAO,CAAC,GAAG,IAAE,CAAC,OAAO,CAAC,QAAQ,KAAG,OAAO,IAAE,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC7H,MAAM,MAAM,GAAC,OAAO,CAAC,MAAM,IAAE,gCAAgC,CAAC;IAC9D,IAAG,OAAO,CAAC,GAAG,IAAE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACzG,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,CAAC,IAAa,IAAE,OAAO,OAAO,CAAC,GAAG,CAAA,CAAC,CAAA,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,IAAI,EAAC,MAAO,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,cAAc,EAAC,sBAAsB,IAAI,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,EAAC,CAAA,CAAC,CAAA,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,GAAG,EAAC,GAAG,IAAI,CAAC,EAAC,GAAG,EAAC,EAAC,kBAAkB,EAAC,IAAI,EAAC,EAAC,CAAC,CAAA,CAAC,EAAC,CAAC;AACzQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** A bridge supplies the native host's PID and creation time, never its own PID. */
2
+ export declare function hostProcessInstance(): string;
3
+ //# sourceMappingURL=host-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-process.d.ts","sourceRoot":"","sources":["../../src/cli/host-process.ts"],"names":[],"mappings":"AAIA,oFAAoF;AACpF,wBAAgB,mBAAmB,IAAI,MAAM,CAmB5C"}
@@ -0,0 +1,35 @@
1
+ import { readFileSync, readlinkSync } from 'node:fs';
2
+ import { basename } from 'node:path';
3
+ import { execFileSync } from 'node:child_process';
4
+ /** A bridge supplies the native host's PID and creation time, never its own PID. */
5
+ export function hostProcessInstance() {
6
+ const bridge = process.env.COMMON_MEMORY_HOST_INSTANCE;
7
+ if (bridge) {
8
+ if (!/^windows:\d+:\d+$/.test(bridge))
9
+ throw new Error('INVALID_HOST_INSTANCE');
10
+ return bridge;
11
+ }
12
+ let pid = process.ppid;
13
+ for (let depth = 0; pid > 1 && depth < 32; depth++) {
14
+ if (process.platform === 'linux') {
15
+ const stat = readFileSync(`/proc/${pid}/stat`, 'utf8'), fields = stat.slice(stat.lastIndexOf(')') + 2).split(' ');
16
+ const exe = basename(readlinkSync(`/proc/${pid}/exe`));
17
+ if (/^codex(?:-|$)/.test(exe))
18
+ return `${readFileSync('/proc/sys/kernel/random/boot_id', 'utf8').trim()}:${pid}:${fields[19]}`;
19
+ pid = Number(fields[1]);
20
+ }
21
+ else if (process.platform === 'darwin') {
22
+ const output = execFileSync('/bin/ps', ['-p', String(pid), '-o', 'ppid=,lstart=,comm='], { encoding: 'utf8' }).trim();
23
+ const match = /^(\d+)\s+(.{24})\s+(.+)$/.exec(output);
24
+ if (!match)
25
+ throw new Error('CODEX_HOST_PROCESS_UNCONFIRMED');
26
+ if (/^codex(?:-|$)/.test(basename(match[3])))
27
+ return `darwin:${pid}:${match[2]}`;
28
+ pid = Number(match[1]);
29
+ }
30
+ else
31
+ throw new Error('CODEX_PROCESS_IDENTITY_UNSUPPORTED');
32
+ }
33
+ throw new Error('CODEX_HOST_PROCESS_UNCONFIRMED');
34
+ }
35
+ //# sourceMappingURL=host-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-process.js","sourceRoot":"","sources":["../../src/cli/host-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,oFAAoF;AACpF,MAAM,UAAU,mBAAmB;IACjC,MAAM,MAAM,GAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACrD,IAAG,MAAM,EAAC,CAAC;QAAA,IAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAAA,OAAO,MAAM,CAAC;IAAA,CAAC;IACxG,IAAI,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC;IACrB,KAAI,IAAI,KAAK,GAAC,CAAC,EAAC,GAAG,GAAC,CAAC,IAAE,KAAK,GAAC,EAAE,EAAC,KAAK,EAAE,EAAE,CAAC;QACxC,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAC,YAAY,CAAC,SAAS,GAAG,OAAO,EAAC,MAAM,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1G,MAAM,GAAG,GAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;YACrD,IAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAC,OAAO,GAAG,YAAY,CAAC,iCAAiC,EAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5H,GAAG,GAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAG,OAAO,CAAC,QAAQ,KAAG,QAAQ,EAAE,CAAC;YACtC,MAAM,MAAM,GAAC,YAAY,CAAC,SAAS,EAAC,CAAC,IAAI,EAAC,MAAM,CAAC,GAAG,CAAC,EAAC,IAAI,EAAC,qBAAqB,CAAC,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5G,MAAM,KAAK,GAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,IAAG,CAAC,KAAK;gBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC5D,IAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAAC,OAAO,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,GAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { hostProcessInstance } from './host-process.js';
2
+ import type { CommonMemoryConfig } from '../config/config.js';
3
+ import { RuntimeStore } from '../v2/runtime.js';
4
+ export interface CodexEvent {
5
+ hook_event_name: 'SessionStart' | 'UserPromptSubmit' | 'Stop' | 'SessionEnd' | 'Interrupt' | 'PostToolUse';
6
+ cwd: string;
7
+ session_id: string;
8
+ transcript_path: string;
9
+ source?: string;
10
+ turn_id?: string;
11
+ prompt?: string;
12
+ }
13
+ export declare function setupHostAdapter(store: RuntimeStore): void;
14
+ export declare const codexProcessInstance: typeof hostProcessInstance;
15
+ /** SQLite WAL + synchronous=FULL is the atomic, fsynced inbox. No remote work in a hook. */
16
+ export declare function enqueueCodexEvent(config: CommonMemoryConfig, event: CodexEvent, instance?: string, client?: HostClient): {
17
+ key: string;
18
+ initial: boolean;
19
+ };
20
+ export declare function consumeCodexInbox(config: CommonMemoryConfig, progressCallback?: () => Promise<void>): Promise<void>;
21
+ export type HostClient = 'codex' | 'chatgpt-work';
22
+ //# sourceMappingURL=host-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-session.d.ts","sourceRoot":"","sources":["../../src/cli/host-session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,WAAW,UAAU;IAAG,eAAe,EAAC,cAAc,GAAC,kBAAkB,GAAC,MAAM,GAAC,YAAY,GAAC,WAAW,GAAC,aAAa,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IAAA,eAAe,EAAC,MAAM,CAAC;IAAA,MAAM,CAAC,EAAC,MAAM,CAAC;IAAA,OAAO,CAAC,EAAC,MAAM,CAAC;IAAA,MAAM,CAAC,EAAC,MAAM,CAAA;CAAE;AACjO,wBAAgB,gBAAgB,CAAC,KAAK,EAAC,YAAY,GAAE,IAAI,CAQxD;AACD,eAAO,MAAM,oBAAoB,4BAAsB,CAAC;AAmBxD,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAC,kBAAkB,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,SAAuB,EAAC,MAAM,GAAC,UAAkB,GAAE;IAAC,GAAG,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,OAAO,CAAA;CAAC,CAoCnK;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAC,MAAI,OAAO,CAAC,IAAI,CAAC,GAAE,OAAO,CAAC,IAAI,CAAC,CA+CpH;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC"}
@@ -0,0 +1,204 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { closeSync, openSync, readSync, fstatSync } from 'node:fs';
3
+ import { hostProcessInstance } from './host-process.js';
4
+ import { constants } from 'node:fs';
5
+ import { setTimeout } from 'node:timers/promises';
6
+ import { RuntimeStore } from '../v2/runtime.js';
7
+ import { SessionIngress, sessionKey } from '../v2/session.js';
8
+ import { ProjectRegistry } from '../v2/registry.js';
9
+ import { parseTranscript } from './codex/transcript-0.153.4.js';
10
+ export function setupHostAdapter(store) {
11
+ store.db.exec(`CREATE TABLE IF NOT EXISTS host_activations(base TEXT PRIMARY KEY,sessionId TEXT NOT NULL,client TEXT NOT NULL,instance TEXT NOT NULL,thread TEXT NOT NULL,cwd TEXT NOT NULL,active INTEGER NOT NULL DEFAULT 1);
12
+ CREATE TABLE IF NOT EXISTS host_snapshots(sessionId TEXT PRIMARY KEY,body TEXT NOT NULL,pending INTEGER NOT NULL DEFAULT 0);
13
+ CREATE TABLE IF NOT EXISTS codex_cursors(sessionId TEXT PRIMARY KEY,path TEXT NOT NULL,offset INTEGER NOT NULL,turnId TEXT);
14
+ CREATE TABLE IF NOT EXISTS codex_inbox(id INTEGER PRIMARY KEY,sessionId TEXT NOT NULL,event TEXT NOT NULL,turnId TEXT,start INTEGER NOT NULL,body TEXT NOT NULL,scope TEXT NOT NULL);
15
+ CREATE TABLE IF NOT EXISTS codex_candidates(sessionId TEXT NOT NULL,turnId TEXT NOT NULL,digest TEXT NOT NULL,text TEXT,PRIMARY KEY(sessionId,turnId,digest));
16
+ CREATE TABLE IF NOT EXISTS codex_watches(sessionId TEXT NOT NULL,turnId TEXT NOT NULL,PRIMARY KEY(sessionId,turnId));`);
17
+ store.transaction(() => { if (!store.db.prepare('PRAGMA table_info(codex_candidates)').all().some(r => r.name === 'scope'))
18
+ store.db.exec('ALTER TABLE codex_candidates ADD COLUMN scope TEXT'); });
19
+ }
20
+ export const codexProcessInstance = hostProcessInstance;
21
+ function transcript(path, offset, cap) {
22
+ const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
23
+ try {
24
+ const stat = fstatSync(fd);
25
+ if (!stat.isFile() || stat.nlink !== 1)
26
+ throw new Error('CODEX_UNSAFE_TRANSCRIPT');
27
+ const header = Buffer.alloc(Math.min(stat.size, 65536));
28
+ readSync(fd, header, 0, header.length, 0);
29
+ let meta;
30
+ try {
31
+ meta = JSON.parse(header.subarray(0, header.indexOf(10)).toString('utf8'));
32
+ }
33
+ catch {
34
+ throw new Error('CODEX_UNKNOWN_TRANSCRIPT');
35
+ }
36
+ if (meta.type !== 'session_meta' || meta.payload?.cli_version !== '0.153.4')
37
+ throw new Error('CODEX_UNSUPPORTED_VERSION');
38
+ if (offset === null)
39
+ return { text: '', end: stat.size };
40
+ if (stat.size < offset)
41
+ throw new Error('CODEX_TRANSCRIPT_REPLACED');
42
+ if (stat.size - offset > cap)
43
+ throw new Error('SESSION_CAPACITY_EXCEEDED');
44
+ const buffer = Buffer.alloc(stat.size - offset);
45
+ let read = 0;
46
+ while (read < buffer.length) {
47
+ const n = readSync(fd, buffer, read, buffer.length - read, offset + read);
48
+ if (!n)
49
+ throw new Error('CODEX_TRANSCRIPT_CHANGED');
50
+ read += n;
51
+ }
52
+ // Never advance over a partial JSONL record. SessionEnd reports it as a failure.
53
+ const complete = buffer.lastIndexOf(10) + 1;
54
+ return { text: new TextDecoder('utf-8', { fatal: true }).decode(buffer.subarray(0, complete)), end: offset + complete };
55
+ }
56
+ finally {
57
+ closeSync(fd);
58
+ }
59
+ }
60
+ /** SQLite WAL + synchronous=FULL is the atomic, fsynced inbox. No remote work in a hook. */
61
+ export function enqueueCodexEvent(config, event, instance = codexProcessInstance(), client = 'codex') {
62
+ const store = new RuntimeStore(config.dataRoot, { sqliteTimeoutMs: 150 });
63
+ setupHostAdapter(store);
64
+ try {
65
+ return store.transaction(() => {
66
+ const ingress = new SessionIngress(store, config.sessionCache);
67
+ let identity = { client, processInstance: instance, sessionId: event.session_id };
68
+ const base = sessionKey(identity), activation = store.db.prepare('SELECT * FROM host_activations WHERE base=?').get(base);
69
+ if (activation && !activation.active && (event.hook_event_name !== 'SessionStart' || !['startup', 'resume'].includes(event.source ?? '')))
70
+ throw new Error('CODEX_SESSION_START_REQUIRED');
71
+ if (activation && !activation.active)
72
+ identity = { ...identity, processInstance: instance + ':' + randomUUID() };
73
+ const key = activation?.active ? String(activation.sessionId) : sessionKey(identity);
74
+ if (!activation?.active)
75
+ store.db.prepare('INSERT OR REPLACE INTO host_activations VALUES(?,?,?,?,?,?,1)').run(base, key, client, instance, event.session_id, event.cwd);
76
+ else
77
+ store.db.prepare('UPDATE host_activations SET cwd=? WHERE base=?').run(event.cwd, base);
78
+ const prior = store.db.prepare('SELECT * FROM codex_cursors WHERE sessionId=?').get(key);
79
+ const initial = !prior;
80
+ if (!prior) {
81
+ if (event.hook_event_name !== 'SessionStart')
82
+ throw new Error('CODEX_SESSION_START_REQUIRED');
83
+ const start = transcript(event.transcript_path, null, ingress.limits.maxSessionBytes);
84
+ ingress.open(identity);
85
+ store.db.prepare('INSERT INTO codex_cursors(sessionId,path,offset) VALUES(?,?,?)').run(key, event.transcript_path, start.end);
86
+ }
87
+ else if (prior.path !== event.transcript_path)
88
+ throw new Error('CODEX_TRANSCRIPT_REPLACED');
89
+ const project = new ProjectRegistry(config.dataRoot).resolve(event.cwd), scope = project ? `project:${project.id}` : 'global';
90
+ if (event.hook_event_name === 'UserPromptSubmit') {
91
+ if (typeof event.prompt !== 'string' || !event.turn_id)
92
+ throw new Error('CODEX_INPUT_IDENTITY_REQUIRED');
93
+ store.db.prepare('INSERT OR IGNORE INTO codex_candidates(sessionId,turnId,digest,text,scope) VALUES(?,?,?,?,?)').run(key, event.turn_id, createHash('sha256').update(event.prompt).digest('hex'), event.prompt, scope);
94
+ }
95
+ const cursor = store.db.prepare('SELECT offset FROM codex_cursors WHERE sessionId=?').get(key);
96
+ const queued = store.db.prepare('SELECT start,length(CAST(body AS BLOB)) AS bytes FROM codex_inbox WHERE sessionId=? ORDER BY id DESC LIMIT 1').get(key);
97
+ const offset = queued ? Number(queued.start) + Number(queued.bytes) : Number(cursor.offset);
98
+ const snapshot = transcript(event.transcript_path, offset, ingress.limits.maxSessionBytes);
99
+ if (event.hook_event_name === 'SessionEnd' && fstatSize(event.transcript_path) !== snapshot.end)
100
+ throw new Error('CODEX_PARTIAL_TRANSCRIPT');
101
+ const bytes = Buffer.byteLength(snapshot.text);
102
+ ingress.reserve(key, bytes);
103
+ store.db.prepare('INSERT INTO codex_inbox(sessionId,event,turnId,start,body,scope) VALUES(?,?,?,?,?,?)').run(key, event.hook_event_name, event.turn_id ?? null, offset, snapshot.text, scope);
104
+ if (event.hook_event_name === 'SessionEnd') {
105
+ store.db.prepare('UPDATE host_activations SET active=0 WHERE base=?').run(base);
106
+ store.db.prepare('DELETE FROM host_snapshots WHERE sessionId=?').run(key);
107
+ }
108
+ return { key, initial };
109
+ });
110
+ }
111
+ finally {
112
+ store.close();
113
+ }
114
+ }
115
+ function fstatSize(path) { const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW); try {
116
+ return fstatSync(fd).size;
117
+ }
118
+ finally {
119
+ closeSync(fd);
120
+ } }
121
+ export async function consumeCodexInbox(config, progressCallback) {
122
+ const store = new RuntimeStore(config.dataRoot);
123
+ setupHostAdapter(store);
124
+ const ingress = new SessionIngress(store, config.sessionCache);
125
+ const deadline = Date.now() + 60000;
126
+ try {
127
+ for (;;) {
128
+ if (Date.now() > deadline)
129
+ throw new Error('CODEX_COMPLETION_UNCONFIRMED');
130
+ const consumed = store.transaction(() => {
131
+ const row = store.db.prepare('SELECT * FROM codex_inbox ORDER BY id LIMIT 1').get();
132
+ if (!row)
133
+ return false;
134
+ const key = String(row.sessionId), cursor = store.db.prepare('SELECT * FROM codex_cursors WHERE sessionId=?').get(key);
135
+ if (row.start !== cursor.offset)
136
+ throw new Error('CODEX_CURSOR_CONFLICT');
137
+ const parsed = parseTranscript(String(row.body), { offset: Number(cursor.offset), turnId: cursor.turnId === null ? null : String(cursor.turnId) }, String(row.scope));
138
+ // Replacing the inbox body by session rows is one transaction, without duplicate durable bodies.
139
+ store.db.prepare('DELETE FROM codex_inbox WHERE id=?').run(row.id);
140
+ for (const action of parsed.actions) {
141
+ if (action.kind === 'message') {
142
+ if (action.message.role === 'user') {
143
+ const digest = createHash('sha256').update(action.message.text).digest('hex');
144
+ const candidate = store.db.prepare('SELECT digest,scope,text FROM codex_candidates WHERE sessionId=? AND turnId=? AND digest=?').get(key, action.message.turnId, digest);
145
+ if (!candidate || typeof candidate.scope !== 'string')
146
+ throw new Error('CODEX_UNCONFIRMED_DELIVERY');
147
+ if (candidate.text === null)
148
+ continue;
149
+ action.message.scope = candidate.scope;
150
+ store.db.prepare('UPDATE codex_candidates SET text=NULL WHERE sessionId=? AND turnId=? AND digest=?').run(key, action.message.turnId, digest);
151
+ }
152
+ ingress.capture(key, action.message);
153
+ }
154
+ else
155
+ ingress.settle(key, action.turnId, action.state);
156
+ }
157
+ store.db.prepare('UPDATE codex_cursors SET offset=?,turnId=? WHERE sessionId=?').run(parsed.state.offset, parsed.state.turnId, key);
158
+ if ((row.event === 'Stop' || row.event === 'Interrupt') && row.turnId)
159
+ store.db.prepare('INSERT OR IGNORE INTO codex_watches VALUES(?,?)').run(key, row.turnId);
160
+ if (row.event === 'SessionEnd') {
161
+ ingress.end(key);
162
+ store.db.prepare('UPDATE codex_candidates SET text=NULL WHERE sessionId=?').run(key);
163
+ store.db.prepare('DELETE FROM codex_watches WHERE sessionId=?').run(key);
164
+ }
165
+ return true;
166
+ });
167
+ if (consumed) {
168
+ await progressCallback?.();
169
+ continue;
170
+ }
171
+ const watches = store.db.prepare('SELECT w.*,c.path,c.offset,c.turnId AS activeTurn FROM codex_watches w JOIN codex_cursors c ON c.sessionId=w.sessionId').all();
172
+ if (!watches.length)
173
+ return;
174
+ let progress = false;
175
+ for (const w of watches)
176
+ store.transaction(() => {
177
+ const state = store.db.prepare('SELECT state FROM session_turns WHERE sessionId=? AND turnId=?').get(w.sessionId, w.turnId);
178
+ if (state && state.state !== 'open') {
179
+ store.db.prepare('DELETE FROM codex_watches WHERE sessionId=? AND turnId=?').run(w.sessionId, w.turnId);
180
+ progress = true;
181
+ return;
182
+ }
183
+ if (store.db.prepare('SELECT 1 FROM codex_inbox WHERE sessionId=?').get(w.sessionId))
184
+ return;
185
+ const cursor = store.db.prepare('SELECT * FROM codex_cursors WHERE sessionId=?').get(w.sessionId);
186
+ const snapshot = transcript(String(cursor.path), Number(cursor.offset), ingress.limits.maxSessionBytes);
187
+ if (!snapshot.text)
188
+ return;
189
+ const scope = String(store.db.prepare('SELECT scope FROM session_messages WHERE sessionId=? ORDER BY id DESC LIMIT 1').get(w.sessionId)?.scope ?? 'global');
190
+ ingress.reserve(String(w.sessionId), Buffer.byteLength(snapshot.text));
191
+ store.db.prepare("INSERT INTO codex_inbox(sessionId,event,start,body,scope) VALUES(?,'Reconcile',?,?,?)").run(w.sessionId, cursor.offset, snapshot.text, scope);
192
+ progress = true;
193
+ });
194
+ if (!progress) {
195
+ await progressCallback?.();
196
+ await setTimeout(100);
197
+ }
198
+ }
199
+ }
200
+ finally {
201
+ store.close();
202
+ }
203
+ }
204
+ //# sourceMappingURL=host-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-session.js","sourceRoot":"","sources":["../../src/cli/host-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CommonMemoryConfig } from "../config/config.js";
2
+ import { type DocumentAuthor, type DocumentImportOutcome } from "../v2/document-import.js";
3
+ export interface ImportOptions {
4
+ file: string;
5
+ workspace?: string | undefined;
6
+ author?: DocumentAuthor | undefined;
7
+ label?: string | undefined;
8
+ wait: boolean;
9
+ }
10
+ export declare function parseImportArgs(args: string[]): ImportOptions;
11
+ /**
12
+ * `common-memory import <file.md>`: preprocess one local Markdown file, queue it as document_import
13
+ * observations, then (by default) run the same Writer loop as `flush` and report each part. Nothing
14
+ * here writes canonical Markdown directly; the Writer decides and the executor validates.
15
+ */
16
+ export declare function runImport(config: CommonMemoryConfig, args: string[], log?: (line: string) => void): Promise<{
17
+ exitCode: number;
18
+ outcome: DocumentImportOutcome | null;
19
+ }>;
20
+ //# sourceMappingURL=import-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-command.d.ts","sourceRoot":"","sources":["../../src/cli/import-command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAuF,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGhL,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAE/J,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAiB7D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAAE,CAAC,CAiC3L"}
@@ -0,0 +1,98 @@
1
+ import { isAbsolute } from "node:path";
2
+ import { createConfiguredWriter } from "../config/runtime.js";
3
+ import { admitDocumentImport, DOCUMENT_AUTHORS, documentImportOutcome, prepareDocumentImport } from "../v2/document-import.js";
4
+ import { ProjectRegistry } from "../v2/registry.js";
5
+ export function parseImportArgs(args) {
6
+ const options = { file: "", wait: true };
7
+ for (let i = 0; i < args.length; i++) {
8
+ const arg = args[i];
9
+ if (arg === "--no-wait")
10
+ options.wait = false;
11
+ else if (arg === "--workspace" || arg === "--author" || arg === "--label") {
12
+ const value = args[++i];
13
+ if (value === undefined || value.startsWith("--"))
14
+ throw new TypeError(`${arg} requires a value`);
15
+ if (arg === "--workspace") {
16
+ if (!isAbsolute(value))
17
+ throw new TypeError("--workspace must be an absolute path");
18
+ options.workspace = value;
19
+ }
20
+ else if (arg === "--author") {
21
+ if (!DOCUMENT_AUTHORS.includes(value))
22
+ throw new TypeError(`--author must be one of ${DOCUMENT_AUTHORS.join("|")}`);
23
+ options.author = value;
24
+ }
25
+ else
26
+ options.label = value;
27
+ }
28
+ else if (arg.startsWith("--"))
29
+ throw new TypeError(`Unknown import option ${arg}`);
30
+ else if (options.file)
31
+ throw new TypeError("import accepts exactly one file");
32
+ else
33
+ options.file = arg;
34
+ }
35
+ if (!options.file)
36
+ throw new TypeError("import requires a Markdown file path");
37
+ return options;
38
+ }
39
+ /**
40
+ * `common-memory import <file.md>`: preprocess one local Markdown file, queue it as document_import
41
+ * observations, then (by default) run the same Writer loop as `flush` and report each part. Nothing
42
+ * here writes canonical Markdown directly; the Writer decides and the executor validates.
43
+ */
44
+ export async function runImport(config, args, log = console.log) {
45
+ const options = parseImportArgs(args);
46
+ if (!config.disclosure.allowedProvenance.includes("document_import"))
47
+ throw new Error("IMPORT_DISABLED: allow \"Imported Markdown documents\" in common-memory config (disclosure.allowedProvenance: document_import)");
48
+ let contextId = "global";
49
+ if (options.workspace) {
50
+ let project;
51
+ try {
52
+ project = new ProjectRegistry(config.dataRoot).resolve(options.workspace);
53
+ }
54
+ catch {
55
+ project = undefined;
56
+ }
57
+ if (!project)
58
+ throw new Error("UNREGISTERED_WORKSPACE: register it with common-memory project register");
59
+ contextId = `project:${project.id}`;
60
+ }
61
+ if (!config.disclosure.allowedScopes.includes(contextId))
62
+ throw new Error(`CONTEXT_UNAVAILABLE: ${contextId} is not in disclosure.allowedScopes`);
63
+ const prepared = prepareDocumentImport(options.file, { label: options.label, author: options.author, maxTotalBytes: config.disclosure.maxTotalBytes });
64
+ log(`file: ${prepared.fileName} (${prepared.bytes} bytes, ${prepared.chunks.length} part${prepared.chunks.length === 1 ? "" : "s"}); label: ${prepared.sourceLabel}; declared author: ${prepared.declaredAuthor}; context: ${contextId}`);
65
+ if (!config.writableScopes.includes(contextId))
66
+ log(`note: ${contextId} is not in writableScopes; the Writer can only commit to writable targets`);
67
+ const writer = createConfiguredWriter(config), controller = new AbortController();
68
+ const cancel = () => controller.abort();
69
+ process.once('SIGINT', cancel);
70
+ process.once('SIGTERM', cancel);
71
+ try {
72
+ const admitted = admitDocumentImport(writer.store, prepared, contextId);
73
+ log(admitted.duplicate ? `duplicate: this exact content was already imported as ${admitted.importId}; no new material was queued` : `accepted: queued as ${admitted.importId} (${admitted.parts} part${admitted.parts === 1 ? "" : "s"}); accepted means durably queued, not remembered`);
74
+ if (options.wait) {
75
+ for (;;) {
76
+ const result = await writer.run({ force: true, signal: controller.signal });
77
+ log(`maintenance: ${JSON.stringify(result)}`);
78
+ if (!["committed", "noop", "ignored", "quarantined"].includes(result.outcome))
79
+ break;
80
+ }
81
+ }
82
+ const outcome = documentImportOutcome(writer.store, prepared.importId, contextId, prepared.chunks.length);
83
+ log(JSON.stringify(outcome, null, 2));
84
+ if (outcome.complete)
85
+ log(outcome.retainedIn.length ? `complete: retained in ${outcome.retainedIn.join(", ")}; review with common-memory show` : "complete: the Writer kept nothing from this file (ignored or reorganized only)");
86
+ else if (!options.wait)
87
+ log("queued: run common-memory flush, or import the same file again, to process and report");
88
+ else
89
+ log("incomplete: some parts were not processed. dead jobs: common-memory retry <job-id>; pending/retry: import the same file again or common-memory flush; quarantined parts are final for this content (see their issue above) and need a changed file to be imported again");
90
+ return { exitCode: options.wait && !outcome.complete ? 1 : 0, outcome };
91
+ }
92
+ finally {
93
+ process.off('SIGINT', cancel);
94
+ process.off('SIGTERM', cancel);
95
+ await writer.close();
96
+ }
97
+ }
98
+ //# sourceMappingURL=import-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-command.js","sourceRoot":"","sources":["../../src/cli/import-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Deliberate native-host handoff, never a shell string. Cancellation returns to the TUI. */
2
+ export declare function runInteractiveProcess(command: string, args: string[], env?: NodeJS.ProcessEnv): Promise<number>;
3
+ //# sourceMappingURL=interactive-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-process.d.ts","sourceRoot":"","sources":["../../src/cli/interactive-process.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5H"}
@@ -0,0 +1,15 @@
1
+ import { spawn } from 'node:child_process';
2
+ /** Deliberate native-host handoff, never a shell string. Cancellation returns to the TUI. */
3
+ export function runInteractiveProcess(command, args, env = process.env) {
4
+ return new Promise((resolve, reject) => {
5
+ const child = spawn(command, args, { stdio: 'inherit', env, shell: false });
6
+ const interrupt = () => { child.kill('SIGINT'); };
7
+ const terminate = () => { child.kill('SIGTERM'); };
8
+ const cleanup = () => { process.off('SIGINT', interrupt); process.off('SIGTERM', terminate); };
9
+ process.on('SIGINT', interrupt);
10
+ process.on('SIGTERM', terminate);
11
+ child.once('error', error => { cleanup(); reject(error); });
12
+ child.once('close', code => { cleanup(); resolve(code ?? 1); });
13
+ });
14
+ }
15
+ //# sourceMappingURL=interactive-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-process.js","sourceRoot":"","sources":["../../src/cli/interactive-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAc,EAAE,MAAyB,OAAO,CAAC,GAAG;IACzG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":""}