@memorax/memorax-code 0.1.5 → 0.1.6
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/README.md +7 -18
- package/bin/memorax-code-npm-preinstall.mjs +28 -39
- package/bin/memorax-code-plugin-postinstall.mjs +23 -1537
- package/bin/memorax-code-setup.mjs +1615 -0
- package/bin/memorax-code.mjs +289 -5
- package/docs/configuration.md +66 -17
- package/docs/troubleshooting.md +105 -7
- package/lib/memorax-code-adapter-common/src/config-utils.d.mts +5 -1
- package/lib/memorax-code-adapter-common/src/config-utils.mjs +36 -3
- package/lib/memorax-code-adapter-common/src/credentials/linux-secret-service.mjs +110 -0
- package/lib/memorax-code-adapter-common/src/credentials/macos-keychain.mjs +224 -0
- package/lib/memorax-code-adapter-common/src/credentials/secure-command.mjs +340 -0
- package/lib/memorax-code-adapter-common/src/credentials/trial-credential-record.d.mts +82 -0
- package/lib/memorax-code-adapter-common/src/credentials/trial-credential-record.mjs +183 -0
- package/lib/memorax-code-adapter-common/src/credentials/trial-credential-store.d.mts +82 -0
- package/lib/memorax-code-adapter-common/src/credentials/trial-credential-store.mjs +271 -0
- package/lib/memorax-code-adapter-common/src/credentials/windows-dpapi.mjs +440 -0
- package/lib/memorax-code-adapter-common/src/hooks/memory-skill-reminder-hook.mjs +7 -4
- package/lib/memorax-code-adapter-common/src/setup-completion.d.mts +81 -0
- package/lib/memorax-code-adapter-common/src/setup-completion.mjs +154 -0
- package/lib/memorax-code-backend/dist/clients/claude/memory-hook-runtime.js +21 -2
- package/lib/memorax-code-backend/dist/clients/codex/memory-hook-runtime.js +23 -3
- package/lib/memorax-code-backend/dist/clients/opencode/memory-hook-runtime.js +19 -1
- package/lib/memorax-code-backend/dist/entrypoints/backend-cli.js +17 -16
- package/lib/memorax-code-backend/dist/lifecycle/orchestrator.js +81 -22
- package/lib/memorax-code-backend/dist/memorax-cli.js +3 -0
- package/lib/memorax-code-backend/dist/memory/automatic-retrieval.js +8 -2
- package/lib/memorax-code-backend/dist/memory/automatic-writeback.js +13 -1
- package/lib/memorax-code-backend/dist/memory/cli.js +10 -0
- package/lib/memorax-code-backend/dist/memory/quota-notice.js +208 -0
- package/lib/memorax-code-backend/dist/memory/service.js +11 -0
- package/lib/memorax-code-backend/dist/provider/memorax/adapter.js +4 -2
- package/lib/memorax-code-backend/dist/provider/memorax/http.js +10 -3
- package/lib/memorax-code-backend/dist/provider/memorax/quota.js +26 -0
- package/lib/memorax-code-backend/package.json +1 -1
- package/lib/memorax-code-claude-adapter/.claude-plugin/plugin.json +1 -1
- package/lib/memorax-code-claude-adapter/hooks/runtime-shell.json +1 -1
- package/lib/memorax-code-claude-adapter/package.json +1 -1
- package/lib/memorax-code-claude-adapter/runtime-hooks/memory-turn.mjs +5 -3
- package/lib/memorax-code-claude-adapter/skills/memorax-code/references/memorax-add.md +2 -0
- package/lib/memorax-code-claude-adapter/skills/memorax-code/references/memorax-search.md +4 -2
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/.claude-plugin/plugin.json +1 -1
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/hooks/runtime-shell.json +1 -1
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/config-utils.d.mts +5 -1
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/config-utils.mjs +36 -3
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/linux-secret-service.mjs +110 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/macos-keychain.mjs +224 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/secure-command.mjs +340 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/trial-credential-record.d.mts +82 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/trial-credential-record.mjs +183 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/trial-credential-store.d.mts +82 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/trial-credential-store.mjs +271 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/credentials/windows-dpapi.mjs +440 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/hooks/memory-skill-reminder-hook.mjs +7 -4
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/setup-completion.d.mts +81 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/memorax-code-adapter-common/src/setup-completion.mjs +154 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/package.json +1 -1
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/runtime-hooks/memory-turn.mjs +5 -3
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/skills/memorax-code/references/memorax-add.md +2 -0
- package/lib/memorax-code-claude-marketplace/plugins/memorax-code-claude-adapter/skills/memorax-code/references/memorax-search.md +4 -2
- package/lib/memorax-code-codex-adapter/.codex-plugin/plugin.json +1 -1
- package/lib/memorax-code-codex-adapter/hooks/runtime-shell.json +1 -1
- package/lib/memorax-code-codex-adapter/package.json +1 -1
- package/lib/memorax-code-codex-adapter/runtime-hooks/memory-skill-reminder.mjs +2 -0
- package/lib/memorax-code-codex-adapter/skills/memorax-code/references/memorax-add.md +2 -0
- package/lib/memorax-code-codex-adapter/skills/memorax-code/references/memorax-search.md +4 -2
- package/lib/memorax-code-dsh-adapter/hooks/repo-memory-job.mjs +5 -2
- package/lib/memorax-code-dsh-adapter/package.json +1 -1
- package/lib/memorax-code-dsh-adapter/skills/memorax-code/references/memorax-add.md +2 -0
- package/lib/memorax-code-dsh-adapter/skills/memorax-code/references/memorax-search.md +4 -2
- package/lib/memorax-code-dsh-adapter/src/profile-lifecycle.mjs +158 -7
- package/lib/memorax-code-dsh-adapter/src/runtime-state.mjs +21 -0
- package/lib/memorax-code-opencode-adapter/package.json +1 -1
- package/lib/memorax-code-opencode-adapter/skills/memorax-code/references/memorax-add.md +2 -0
- package/lib/memorax-code-opencode-adapter/skills/memorax-code/references/memorax-search.md +4 -2
- package/lib/memorax-code-opencode-adapter/src/plugin.mjs +20 -0
- package/lib/package-transition.mjs +311 -0
- package/lib/resolve-codex-command.mjs +32 -6
- package/lib/setup-memory-preferences.mjs +113 -0
- package/lib/setup-reconcile.mjs +128 -0
- package/lib/trial-plugin-mark.mjs +171 -0
- package/lib/trial-provision-client.mjs +307 -0
- package/lib/trial-provision-flow.mjs +215 -0
- package/lib/trial-setup.mjs +53 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,31 +8,20 @@ Harness, and OpenCode.
|
|
|
8
8
|
- Node.js 20 or newer (Node.js 24 LTS recommended) and npm.
|
|
9
9
|
- At least one of Codex, Claude Code, DeepSeek Harness, OpenCode Desktop, or
|
|
10
10
|
the OpenCode CLI.
|
|
11
|
-
- A MemoraX account, Base User ID, and API key for memory features.
|
|
12
11
|
- Python 3 only for Repo Memory operations.
|
|
13
12
|
|
|
14
13
|
## Install
|
|
15
14
|
|
|
16
|
-
Create an API key in
|
|
17
|
-
[MemoraX Console](https://platform.memorax.net/), then run:
|
|
18
|
-
|
|
19
15
|
```bash
|
|
20
|
-
npm install -g @memorax/memorax-code
|
|
16
|
+
npm install -g @memorax/memorax-code
|
|
17
|
+
memorax-code setup
|
|
21
18
|
```
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
interactive first install, a non-empty user ID and API key are required unless
|
|
29
|
-
the effective configuration already supplies both. When Codex is detected,
|
|
30
|
-
review and approve its Hook activation.
|
|
31
|
-
|
|
32
|
-
Entering the MemoraX credentials after the installer's disclosure enables the
|
|
33
|
-
core memory features and automatic writeback. If installation cannot prompt
|
|
34
|
-
and effective credentials are not already configured, the package remains
|
|
35
|
-
installed, but MemoraX-backed memory is not configured.
|
|
20
|
+
Setup automatically detects supported coding agents and completes an
|
|
21
|
+
account-free connection. If you already have a MemoraX account, run
|
|
22
|
+
`memorax-code setup --existing-account` instead. Later setup runs reuse a
|
|
23
|
+
complete saved configuration; use `memorax-code setup --reconfigure` to
|
|
24
|
+
replace it.
|
|
36
25
|
|
|
37
26
|
After the first installation, restart or refresh the detected coding agents
|
|
38
27
|
before opening a new session. In Codex, enable **MemoraX Code Codex Adapter**
|
|
@@ -1,60 +1,49 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
4
3
|
import { homedir } from "node:os";
|
|
5
4
|
import { dirname, join } from "node:path";
|
|
6
5
|
import { fileURLToPath } from "node:url";
|
|
7
6
|
import { unsupportedNodeVersionMessage } from "../lib/node-version.mjs";
|
|
7
|
+
import { runNpmPreinstallPackageTransition } from "../lib/package-transition.mjs";
|
|
8
8
|
|
|
9
9
|
const PREFIX = "[MemoraX Code Install]:";
|
|
10
|
-
const PREINSTALL_STOP_TIMEOUT_MS = 45_000;
|
|
11
10
|
const nodeVersionError = unsupportedNodeVersionMessage();
|
|
12
11
|
if (nodeVersionError) {
|
|
13
12
|
console.error(`${PREFIX} ${nodeVersionError}`);
|
|
14
13
|
process.exit(1);
|
|
15
14
|
}
|
|
15
|
+
|
|
16
16
|
const scriptDir = dirname(fileURLToPath(import.meta.url));
|
|
17
|
-
const
|
|
17
|
+
const packageRoot = dirname(scriptDir);
|
|
18
18
|
const memoraxCodeHome = process.env.MEMORAX_CODE_HOME?.trim() || join(homedir(), ".memorax-code");
|
|
19
|
-
const pidPath = join(memoraxCodeHome, "runtime", "backend", "backend.pid.json");
|
|
20
|
-
const dshStatePath = join(memoraxCodeHome, "adapters", "dsh", "state.json");
|
|
21
|
-
|
|
22
|
-
if (!existsSync(pidPath) && !existsSync(dshStatePath)) process.exit(0);
|
|
23
|
-
|
|
24
|
-
console.warn(`${PREFIX} Stopping the existing managed Backend before postinstall setup...`);
|
|
25
|
-
const result = spawnSync(
|
|
26
|
-
process.execPath,
|
|
27
|
-
[memoraxCodeBin, "stop", "--home", memoraxCodeHome, "--clients", "none", "--json"],
|
|
28
|
-
{
|
|
29
|
-
encoding: "utf8",
|
|
30
|
-
env: {
|
|
31
|
-
...process.env,
|
|
32
|
-
MEMORAX_CODE_HOME: memoraxCodeHome,
|
|
33
|
-
MEMORAX_CODE_PACKAGE_REPLACEMENT: "1",
|
|
34
|
-
},
|
|
35
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
36
|
-
timeout: PREINSTALL_STOP_TIMEOUT_MS,
|
|
37
|
-
killSignal: "SIGKILL",
|
|
38
|
-
},
|
|
39
|
-
);
|
|
40
19
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
20
|
+
try {
|
|
21
|
+
const result = runNpmPreinstallPackageTransition({
|
|
22
|
+
memoraxCodeHome,
|
|
23
|
+
memoraxCodeBin: join(scriptDir, "memorax-code.mjs"),
|
|
24
|
+
packageVersion: packageVersion(packageRoot),
|
|
25
|
+
});
|
|
26
|
+
if (result.disposition === "retired") {
|
|
27
|
+
console.warn(`${PREFIX} Existing managed Backend retired for package replacement.`);
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
printCommandOutput(error?.command);
|
|
31
|
+
console.error(`${PREFIX} Package replacement stopped: ${error instanceof Error ? error.message : String(error)}`);
|
|
51
32
|
process.exit(1);
|
|
52
33
|
}
|
|
53
34
|
|
|
54
|
-
|
|
35
|
+
function packageVersion(root) {
|
|
36
|
+
const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
|
37
|
+
if (typeof pkg.version !== "string" || !pkg.version.trim()) {
|
|
38
|
+
throw new Error("package metadata does not contain a version");
|
|
39
|
+
}
|
|
40
|
+
return pkg.version.trim();
|
|
41
|
+
}
|
|
55
42
|
|
|
56
|
-
function
|
|
57
|
-
for (const
|
|
58
|
-
|
|
43
|
+
function printCommandOutput(command) {
|
|
44
|
+
for (const output of [command?.stdout, command?.stderr]) {
|
|
45
|
+
for (const line of String(output ?? "").split(/\r?\n/)) {
|
|
46
|
+
if (line) console.warn(`${PREFIX} ${line}`);
|
|
47
|
+
}
|
|
59
48
|
}
|
|
60
49
|
}
|