memgineering 0.4.2 → 0.5.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.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "memgineering",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "private": false,
5
- "description": "One memory for the AI you connect. Recall, remember, and revise a brain your agents share — stored in your own folder.",
5
+ "description": "One memory for the AI you connect. Recall, remember, and revise a brain your agents share \u2014 stored in your own folder.",
6
6
  "license": "Apache-2.0",
7
7
  "homepage": "https://memgineering.com",
8
8
  "repository": {
@@ -1,16 +1,65 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * One line after install, and nothing else.
3
+ * The one thing an AGENT has to be told after a global install.
4
4
  *
5
- * Deliberately not `setup --silent`, the way the kordis CLI does it. Setup
6
- * here asks which tools to install into and whether the tool may update
7
- * itself — questions that belong to the person, not to a package manager
8
- * running unattended. Doing it from postinstall would answer them by
9
- * default and call that consent.
5
+ * This used to print `memgineering installed. Next: memgineering setup` and
6
+ * gate it on `process.stdout.isTTY`. Both were wrong, and a first-run test with
7
+ * Codex showed exactly how: the agent installed the package and then reported
8
+ * to its user "초기 설정 명령: memgineering setup" — handing a terminal command
9
+ * to a non-developer and stopping. The person is left holding an instruction
10
+ * they did not ask for and cannot act on, in a product whose entire premise is
11
+ * that their agent does this for them.
10
12
  *
11
- * Silent for local installs and for anything non-interactive: a dependency
12
- * being pulled into someone's project has no business printing instructions.
13
+ * The TTY gate made it worse. An agent running `npm i -g` has a PIPE, not a
14
+ * terminal, so the guidance was suppressed in precisely the case it exists for
15
+ * and printed only for the developer who least needed it.
16
+ *
17
+ * So: speak to the agent, and speak when the agent is listening. The global
18
+ * check stays — a dependency pulled into somebody's project still has no
19
+ * business printing instructions.
20
+ *
21
+ * Setup is NOT run from here. It asks which tools to install into and whether
22
+ * the tool may update itself, and answering those from a package manager
23
+ * running unattended would be inventing consent. The agent asks the one
24
+ * question that decides it, then runs setup itself — which is the same
25
+ * division of labour every other verb in this product uses.
26
+ *
27
+ * English, per the CLI-output rule: the agent re-renders it in whatever
28
+ * language its user speaks.
13
29
  */
14
- if (process.stdout.isTTY && process.env['npm_config_global'] === 'true') {
15
- process.stdout.write('\nmemgineering installed. Next: memgineering setup\n\n');
30
+ if (process.env['npm_config_global'] === 'true') {
31
+ process.stdout.write(
32
+ [
33
+ '',
34
+ 'memgineering is installed. It is NOT set up yet.',
35
+ '',
36
+ 'TO THE AGENT READING THIS — finish it now, in this same turn. Do not',
37
+ 'print these commands for your user and stop: they are yours to run.',
38
+ '',
39
+ 'Ask them TWO short questions, in their language, then run setup yourself.',
40
+ '',
41
+ ' 1. Where should the memory live?',
42
+ ' "Just on this machine, or synced to an account so every device',
43
+ ' and every tool you use sees the same brain?"',
44
+ '',
45
+ ' this machine -> no extra flag',
46
+ ' synced -> add --login',
47
+ '',
48
+ ' 2. Who picks the rest of the settings?',
49
+ ' "Shall I set it up, or would you rather choose on a screen?"',
50
+ '',
51
+ ' you do it -> memgineering setup --agent',
52
+ ' they choose -> memgineering setup --web',
53
+ '',
54
+ 'So: `memgineering setup --agent --login`, or `--agent`, or `--web',
55
+ '--login`, or `--web`. Question 1 matters most — WITHOUT `--login`,',
56
+ 'setup makes a folder on this machine and never mentions accounts, and',
57
+ 'the user finds out later that their memory does not follow them.',
58
+ '',
59
+ '`--login` prints a short code: show it to them and they approve it in',
60
+ 'the browser. Setup does not wait, and the next command collects the',
61
+ 'token, so you keep going in the same turn.',
62
+ '',
63
+ ].join('\n'),
64
+ );
16
65
  }