@nepopsx/cli 0.0.24 → 0.0.26

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 (139) hide show
  1. package/dist/agents/remote-config.d.ts +12 -0
  2. package/dist/agents/remote-config.d.ts.map +1 -1
  3. package/dist/agents/remote-config.js +19 -0
  4. package/dist/agents/remote-config.js.map +1 -1
  5. package/dist/commands/guard.d.ts +10 -0
  6. package/dist/commands/guard.d.ts.map +1 -0
  7. package/dist/commands/guard.js +63 -0
  8. package/dist/commands/guard.js.map +1 -0
  9. package/dist/commands/import-agents.d.ts +17 -0
  10. package/dist/commands/import-agents.d.ts.map +1 -0
  11. package/dist/commands/import-agents.js +192 -0
  12. package/dist/commands/import-agents.js.map +1 -0
  13. package/dist/commands/import.d.ts +19 -0
  14. package/dist/commands/import.d.ts.map +1 -0
  15. package/dist/commands/import.js +182 -0
  16. package/dist/commands/import.js.map +1 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +21 -13
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/install.d.ts.map +1 -1
  21. package/dist/commands/install.js +12 -1
  22. package/dist/commands/install.js.map +1 -1
  23. package/dist/commands/login.d.ts.map +1 -1
  24. package/dist/commands/login.js +15 -37
  25. package/dist/commands/login.js.map +1 -1
  26. package/dist/commands/push-learnings.d.ts.map +1 -1
  27. package/dist/commands/push-learnings.js +8 -1
  28. package/dist/commands/push-learnings.js.map +1 -1
  29. package/dist/commands/scan.d.ts.map +1 -1
  30. package/dist/commands/scan.js +17 -0
  31. package/dist/commands/scan.js.map +1 -1
  32. package/dist/commands/sync.d.ts.map +1 -1
  33. package/dist/commands/sync.js +29 -4
  34. package/dist/commands/sync.js.map +1 -1
  35. package/dist/commands/up.d.ts.map +1 -1
  36. package/dist/commands/up.js +92 -9
  37. package/dist/commands/up.js.map +1 -1
  38. package/dist/config/api-config.d.ts +5 -7
  39. package/dist/config/api-config.d.ts.map +1 -1
  40. package/dist/config/api-config.js +2 -3
  41. package/dist/config/api-config.js.map +1 -1
  42. package/dist/config/global-config.d.ts +52 -0
  43. package/dist/config/global-config.d.ts.map +1 -0
  44. package/dist/config/global-config.js +161 -0
  45. package/dist/config/global-config.js.map +1 -0
  46. package/dist/config/global-config.test.d.ts +2 -0
  47. package/dist/config/global-config.test.d.ts.map +1 -0
  48. package/dist/config/global-config.test.js +62 -0
  49. package/dist/config/global-config.test.js.map +1 -0
  50. package/dist/enrichment/workflow.d.ts.map +1 -1
  51. package/dist/enrichment/workflow.js +8 -1
  52. package/dist/enrichment/workflow.js.map +1 -1
  53. package/dist/guard/policy.d.ts +38 -0
  54. package/dist/guard/policy.d.ts.map +1 -0
  55. package/dist/guard/policy.js +62 -0
  56. package/dist/guard/policy.js.map +1 -0
  57. package/dist/guard/policy.test.d.ts +2 -0
  58. package/dist/guard/policy.test.d.ts.map +1 -0
  59. package/dist/guard/policy.test.js +47 -0
  60. package/dist/guard/policy.test.js.map +1 -0
  61. package/dist/hooks/capture-hooks.d.ts.map +1 -1
  62. package/dist/hooks/capture-hooks.js +36 -1
  63. package/dist/hooks/capture-hooks.js.map +1 -1
  64. package/dist/import/adapter.d.ts +82 -0
  65. package/dist/import/adapter.d.ts.map +1 -0
  66. package/dist/import/adapter.js +111 -0
  67. package/dist/import/adapter.js.map +1 -0
  68. package/dist/import/adapter.test.d.ts +2 -0
  69. package/dist/import/adapter.test.d.ts.map +1 -0
  70. package/dist/import/adapter.test.js +100 -0
  71. package/dist/import/adapter.test.js.map +1 -0
  72. package/dist/import/agents/agent-adapter.d.ts +83 -0
  73. package/dist/import/agents/agent-adapter.d.ts.map +1 -0
  74. package/dist/import/agents/agent-adapter.js +66 -0
  75. package/dist/import/agents/agent-adapter.js.map +1 -0
  76. package/dist/import/agents/agent-adapter.test.d.ts +2 -0
  77. package/dist/import/agents/agent-adapter.test.d.ts.map +1 -0
  78. package/dist/import/agents/agent-adapter.test.js +99 -0
  79. package/dist/import/agents/agent-adapter.test.js.map +1 -0
  80. package/dist/import/agents/artifact-parser.d.ts +26 -0
  81. package/dist/import/agents/artifact-parser.d.ts.map +1 -0
  82. package/dist/import/agents/artifact-parser.js +40 -0
  83. package/dist/import/agents/artifact-parser.js.map +1 -0
  84. package/dist/import/agents/assembler.d.ts +32 -0
  85. package/dist/import/agents/assembler.d.ts.map +1 -0
  86. package/dist/import/agents/assembler.js +0 -0
  87. package/dist/import/agents/assembler.js.map +1 -0
  88. package/dist/import/agents/assembler.test.d.ts +2 -0
  89. package/dist/import/agents/assembler.test.d.ts.map +1 -0
  90. package/dist/import/agents/assembler.test.js +115 -0
  91. package/dist/import/agents/assembler.test.js.map +1 -0
  92. package/dist/import/agents/claude-code-adapter.d.ts +11 -0
  93. package/dist/import/agents/claude-code-adapter.d.ts.map +1 -0
  94. package/dist/import/agents/claude-code-adapter.js +84 -0
  95. package/dist/import/agents/claude-code-adapter.js.map +1 -0
  96. package/dist/import/agents/copilot-agent-adapter.d.ts +12 -0
  97. package/dist/import/agents/copilot-agent-adapter.d.ts.map +1 -0
  98. package/dist/import/agents/copilot-agent-adapter.js +89 -0
  99. package/dist/import/agents/copilot-agent-adapter.js.map +1 -0
  100. package/dist/import/agents/scanner.d.ts +15 -0
  101. package/dist/import/agents/scanner.d.ts.map +1 -0
  102. package/dist/import/agents/scanner.js +87 -0
  103. package/dist/import/agents/scanner.js.map +1 -0
  104. package/dist/import/agents/secret-scan.d.ts +14 -0
  105. package/dist/import/agents/secret-scan.d.ts.map +1 -0
  106. package/dist/import/agents/secret-scan.js +64 -0
  107. package/dist/import/agents/secret-scan.js.map +1 -0
  108. package/dist/import/agents/secret-scan.test.d.ts +2 -0
  109. package/dist/import/agents/secret-scan.test.d.ts.map +1 -0
  110. package/dist/import/agents/secret-scan.test.js +41 -0
  111. package/dist/import/agents/secret-scan.test.js.map +1 -0
  112. package/dist/import/claude-memory-adapter.d.ts +20 -0
  113. package/dist/import/claude-memory-adapter.d.ts.map +1 -0
  114. package/dist/import/claude-memory-adapter.js +87 -0
  115. package/dist/import/claude-memory-adapter.js.map +1 -0
  116. package/dist/import/copilot-adapter.d.ts +13 -0
  117. package/dist/import/copilot-adapter.d.ts.map +1 -0
  118. package/dist/import/copilot-adapter.js +75 -0
  119. package/dist/import/copilot-adapter.js.map +1 -0
  120. package/dist/index.js +61 -2
  121. package/dist/index.js.map +1 -1
  122. package/dist/learnings/memory-index.d.ts +17 -0
  123. package/dist/learnings/memory-index.d.ts.map +1 -0
  124. package/dist/learnings/memory-index.js +73 -0
  125. package/dist/learnings/memory-index.js.map +1 -0
  126. package/dist/licensing/installer.d.ts.map +1 -1
  127. package/dist/licensing/installer.js +3 -5
  128. package/dist/licensing/installer.js.map +1 -1
  129. package/dist/licensing/license-manager.d.ts +6 -5
  130. package/dist/licensing/license-manager.d.ts.map +1 -1
  131. package/dist/licensing/license-manager.js +10 -8
  132. package/dist/licensing/license-manager.js.map +1 -1
  133. package/dist/licensing/workspace-name.d.ts +1 -1
  134. package/dist/licensing/workspace-name.js +1 -1
  135. package/dist/utils/fetch.d.ts +8 -0
  136. package/dist/utils/fetch.d.ts.map +1 -1
  137. package/dist/utils/fetch.js +35 -0
  138. package/dist/utils/fetch.js.map +1 -1
  139. package/package.json +2 -2
@@ -0,0 +1,73 @@
1
+ /**
2
+ * `.nepopsx/MEMORY.md` — a generated, git-committed, human-scannable index of the
3
+ * local learning store, modeled on `~/.claude/MEMORY.md`.
4
+ *
5
+ * One line per learning (title → status → one-line hook → link), so the store is
6
+ * reviewable in a PR diff. Regenerated by `nepopsx import` and `nepopsx sync`. It
7
+ * scans both the hand-authored `learnings/` dir and the imported provenance dir.
8
+ */
9
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
10
+ import { relative, resolve } from 'node:path';
11
+ import { loadLearningFiles } from './yaml-learnings.js';
12
+ const NEPOPSX_DIR = '.nepopsx';
13
+ /** First non-empty content line, trimmed to a short hook for the index. */
14
+ function hook(content) {
15
+ const line = content
16
+ .split(/\r?\n/)
17
+ .map((l) => l.replace(/^[#>*\-\s]+/, '').trim())
18
+ .find((l) => l.length > 0);
19
+ if (!line)
20
+ return '';
21
+ return line.length > 100 ? `${line.slice(0, 97)}…` : line;
22
+ }
23
+ function titleFromSlug(slug) {
24
+ return slug.replace(/-/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
25
+ }
26
+ /**
27
+ * Regenerate `<rootDir>/.nepopsx/MEMORY.md`. Returns the count of indexed learnings
28
+ * and the index path. Best-effort: never throws.
29
+ */
30
+ export function regenerateMemoryIndex(rootDir) {
31
+ const base = resolve(rootDir, NEPOPSX_DIR);
32
+ const indexPath = resolve(base, 'MEMORY.md');
33
+ const files = [
34
+ ...loadLearningFiles(resolve(base, 'learnings')),
35
+ ...loadLearningFiles(resolve(base, 'imported')),
36
+ ];
37
+ // De-dupe by slug (a learning may exist both locally and as an import record);
38
+ // keep the first seen (learnings/ is scanned first).
39
+ const bySlug = new Map();
40
+ for (const f of files) {
41
+ if (!bySlug.has(f.learning.slug))
42
+ bySlug.set(f.learning.slug, f);
43
+ }
44
+ const entries = [...bySlug.values()].sort((a, b) => a.learning.slug.localeCompare(b.learning.slug));
45
+ const lines = [
46
+ '# NEPOPSX Memory Index',
47
+ '',
48
+ '<!-- Generated by `nepopsx import` / `nepopsx sync`. Do not edit by hand. -->',
49
+ '',
50
+ ];
51
+ if (entries.length === 0) {
52
+ lines.push('_No local learnings yet. Run `nepopsx import` or let the reflector capture some._', '');
53
+ }
54
+ else {
55
+ for (const { learning, filePath } of entries) {
56
+ const rel = relative(base, filePath);
57
+ const h = hook(learning.content);
58
+ const tags = [learning.status, learning.type].filter(Boolean).join(' · ');
59
+ lines.push(`- [${titleFromSlug(learning.slug)}](${rel}) — ${tags}${h ? ` — ${h}` : ''}`);
60
+ }
61
+ lines.push('');
62
+ }
63
+ try {
64
+ if (!existsSync(base))
65
+ mkdirSync(base, { recursive: true });
66
+ writeFileSync(indexPath, lines.join('\n'), 'utf-8');
67
+ }
68
+ catch {
69
+ /* best-effort */
70
+ }
71
+ return { count: entries.length, path: indexPath };
72
+ }
73
+ //# sourceMappingURL=memory-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-index.js","sourceRoot":"","sources":["../../src/learnings/memory-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAID;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,EAC5C,SAAS,GAAE,cAAc,EAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAOhF;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,aAAa,EAAE,CAmBjB"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAID;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,EAC5C,SAAS,GAAE,cAAc,EAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,CAwB1B;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CA0B/B;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAOhF;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,aAAa,EAAE,CAmBjB"}
@@ -12,7 +12,7 @@ import { createHash } from "node:crypto";
12
12
  import { existsSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
13
13
  import { dirname, join } from "node:path";
14
14
  import { resolveApiBase } from "../config/api-config.js";
15
- import { fetchWithTimeout } from "../utils/fetch.js";
15
+ import { fetchWithTimeout, friendlyHttpError } from "../utils/fetch.js";
16
16
  import { DOWNLOAD_TIMEOUT_MS } from "../constants.js";
17
17
  import { resolveWorkspaceName } from "./workspace-name.js";
18
18
  // ─── Download ───────────────────────────────────────────────
@@ -37,8 +37,7 @@ export async function downloadBundle(cwd, license, agent, version, customInstruc
37
37
  }),
38
38
  }, DOWNLOAD_TIMEOUT_MS);
39
39
  if (!response.ok) {
40
- const body = await response.text().catch(() => "");
41
- throw new Error(`Bundle download failed (${response.status}): ${body || response.statusText}`);
40
+ throw new Error(await friendlyHttpError(response, "Couldn't download the agent bundle"));
42
41
  }
43
42
  return response.json();
44
43
  }
@@ -58,8 +57,7 @@ export async function downloadBootstrapConfig(cwd, license, agent, version, cust
58
57
  }),
59
58
  }, DOWNLOAD_TIMEOUT_MS);
60
59
  if (!response.ok) {
61
- const body = await response.text().catch(() => '');
62
- throw new Error(`Bootstrap config download failed (${response.status}): ${body || response.statusText}`);
60
+ throw new Error(await friendlyHttpError(response, "Couldn't prepare the agent config"));
63
61
  }
64
62
  return response.json();
65
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAuB3D,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,OAAgB,EAChB,KAAa,EACb,OAAe,EACf,qBAA0C,EAAE,EAC5C,YAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,OAAO,cAAc,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAE/F,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE;YACtC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;YAC7C,mBAAmB,EAAE,kBAAkB;YACvC,0DAA0D;YAC1D,SAAS;SACV,CAAC;KACH,EAAE,mBAAmB,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC9E,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA8B,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAW,EACX,OAAgB,EAChB,KAAa,EACb,OAAe,EACf,qBAA0C,EAAE;IAE5C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,OAAO,cAAc,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAEhH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,GAAG,EACH;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE;YACtC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;YAC7C,mBAAmB,EAAE,kBAAkB;SACxC,CAAC;KACH,EACD,mBAAmB,CACpB,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAmC,CAAC;AAC1D,CAAC;AAED,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,WAAoB;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,aAAqB,EAAE,WAAmB;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,gEAAgE,WAAW,iBAAiB,MAAM,EAAE,CACrG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,SAAiC;IAEjC,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;QAE1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Auth/session helpers. Post-migration the CLI has ONE credential: the opaque
3
- * device token from `nepopsx login`, stored in `.nepopsx/config.json`. The
4
- * `License` shape is kept as a thin compatibility view — `.key` IS the device
5
- * token — so existing commands send the right Bearer credential unchanged. Auth
6
- * and entitlement are server-authoritative now (the backend 401/402s); there is
7
- * no license.json, no machine binding, and no online validate/refresh.
3
+ * device token from `nepopsx login`, stored in the GLOBAL `~/.nepopsx/config.json`
4
+ * (never in the repo — see {@link readAuth}). The `License` shape is kept as a thin
5
+ * compatibility view — `.key` IS the device token — so existing commands send the
6
+ * right Bearer credential unchanged. Auth and entitlement are server-authoritative
7
+ * now (the backend 401/402s); there is no license.json, no machine binding, and no
8
+ * online validate/refresh.
8
9
  */
9
10
  import { type License, type LicenseStatus, type LicenseTier, type WorkspaceConfig, type Entitlement } from '@nepopsx/core';
10
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"license-manager.d.ts","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAQvB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAc3D;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,EAChE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,GACT,CAAC,CAEH;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEtE;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CActB;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,WAAW,GAChB,aAAa,EAAE,CA4BjB;AAID,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
1
+ {"version":3,"file":"license-manager.d.ts","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAQvB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAe3D;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,EAChE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,GACT,CAAC,CAEH;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEtE;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CActB;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,WAAW,GAChB,aAAa,EAAE,CA4BjB;AAID,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Auth/session helpers. Post-migration the CLI has ONE credential: the opaque
3
- * device token from `nepopsx login`, stored in `.nepopsx/config.json`. The
4
- * `License` shape is kept as a thin compatibility view — `.key` IS the device
5
- * token — so existing commands send the right Bearer credential unchanged. Auth
6
- * and entitlement are server-authoritative now (the backend 401/402s); there is
7
- * no license.json, no machine binding, and no online validate/refresh.
3
+ * device token from `nepopsx login`, stored in the GLOBAL `~/.nepopsx/config.json`
4
+ * (never in the repo — see {@link readAuth}). The `License` shape is kept as a thin
5
+ * compatibility view — `.key` IS the device token — so existing commands send the
6
+ * right Bearer credential unchanged. Auth and entitlement are server-authoritative
7
+ * now (the backend 401/402s); there is no license.json, no machine binding, and no
8
+ * online validate/refresh.
8
9
  */
9
10
  import { TIER_LIMITS, generateMachineId, generateFingerprint, } from '@nepopsx/core';
10
- import { readLocalConfig } from '../config/api-config.js';
11
+ import { readAuth, resolveOrgForPath } from '../config/global-config.js';
11
12
  import { fetchPlanManifest } from '../utils/fetch-plan-manifest.js';
12
13
  import { readWorkspaceNameFromDisk } from './workspace-name.js';
13
14
  import { getCachedEntitlement } from './entitlement-cache.js';
@@ -19,12 +20,13 @@ import { getCachedEntitlement } from './entitlement-cache.js';
19
20
  * logged in. (No license.json — the device token in config.json is the credential.)
20
21
  */
21
22
  export function readLicense(rootDir) {
22
- const auth = readLocalConfig(rootDir).auth;
23
+ const auth = readAuth(rootDir);
23
24
  if (!auth?.token)
24
25
  return null;
25
26
  return {
26
27
  key: auth.token,
27
- org: auth.org ?? '',
28
+ // Project-specific org (registry) wins over the machine default from login.
29
+ org: resolveOrgForPath(rootDir, auth.org),
28
30
  tier: auth.plan ?? 'free',
29
31
  valid_until: '',
30
32
  refresh_token: '',
@@ -1 +1 @@
1
- {"version":3,"file":"license-manager.js","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license-manager.js","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Workspace-name resolution.
3
3
  *
4
4
  * The license file (`.nepopsx/license.json`) carries a `workspace` field that is
5
- * written ONCE at `nepopsx login` / `nepopsx activate` time. At first run the
5
+ * written ONCE at `nepopsx login` time. At first run the
6
6
  * workspace config doesn't exist yet, so it is stored as the literal `"unknown"`.
7
7
  * `nepopsx up` later creates `.nepopsx/workspace.yaml` with the real name, but the
8
8
  * license file is not rewritten — so any command that sends `license.workspace`
@@ -2,7 +2,7 @@
2
2
  * Workspace-name resolution.
3
3
  *
4
4
  * The license file (`.nepopsx/license.json`) carries a `workspace` field that is
5
- * written ONCE at `nepopsx login` / `nepopsx activate` time. At first run the
5
+ * written ONCE at `nepopsx login` time. At first run the
6
6
  * workspace config doesn't exist yet, so it is stored as the literal `"unknown"`.
7
7
  * `nepopsx up` later creates `.nepopsx/workspace.yaml` with the real name, but the
8
8
  * license file is not rewritten — so any command that sends `license.workspace`
@@ -6,4 +6,12 @@
6
6
  * @param ms Timeout in milliseconds
7
7
  */
8
8
  export declare function fetchWithTimeout(url: string, init: RequestInit, ms: number): Promise<Response>;
9
+ /**
10
+ * Turn a failed Response into a human-readable one-liner. The backend sends
11
+ * `{ "message": "...", "statusError": "...", "statusCode": N }`; we surface just the
12
+ * message (or a sensible default per status) instead of dumping the raw JSON blob at
13
+ * the user. The raw body is kept only when NEPOPSX_DEBUG=1. `context` prefixes the line
14
+ * (e.g. "Couldn't download the agent").
15
+ */
16
+ export declare function friendlyHttpError(response: Response, context: string): Promise<string>;
9
17
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAQnB"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAQnB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5F"}
@@ -15,4 +15,39 @@ export async function fetchWithTimeout(url, init, ms) {
15
15
  clearTimeout(timer);
16
16
  }
17
17
  }
18
+ /**
19
+ * Turn a failed Response into a human-readable one-liner. The backend sends
20
+ * `{ "message": "...", "statusError": "...", "statusCode": N }`; we surface just the
21
+ * message (or a sensible default per status) instead of dumping the raw JSON blob at
22
+ * the user. The raw body is kept only when NEPOPSX_DEBUG=1. `context` prefixes the line
23
+ * (e.g. "Couldn't download the agent").
24
+ */
25
+ export async function friendlyHttpError(response, context) {
26
+ const raw = await response.text().catch(() => "");
27
+ let message = "";
28
+ try {
29
+ const parsed = JSON.parse(raw);
30
+ if (typeof parsed.message === "string")
31
+ message = parsed.message;
32
+ }
33
+ catch {
34
+ // not JSON — leave message empty, fall through to status defaults
35
+ }
36
+ if (!message) {
37
+ if (response.status === 401 || response.status === 403) {
38
+ message = "not authorized — run `nepopsx login`";
39
+ }
40
+ else if (response.status === 404) {
41
+ message = "not found on the server";
42
+ }
43
+ else if (response.status >= 500) {
44
+ message = "the server had an error; try again shortly";
45
+ }
46
+ else {
47
+ message = response.statusText || `HTTP ${response.status}`;
48
+ }
49
+ }
50
+ const detail = process.env.NEPOPSX_DEBUG === "1" && raw ? `\n (raw: ${raw})` : "";
51
+ return `${context}: ${message}${detail}`;
52
+ }
18
53
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,IAAiB,EACjB,EAAU;IAEV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,IAAiB,EACjB,EAAU;IAEV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAkB,EAAE,OAAe;IACzE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,GAAG,sCAAsC,CAAC;QACnD,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,OAAO,GAAG,yBAAyB,CAAC;QACtC,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAClC,OAAO,GAAG,4CAA4C,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC;AAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nepopsx/cli",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "description": "NEPOPSX CLI — generate AI agent workspaces from configuration",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -28,7 +28,7 @@
28
28
  "inquirer": "^12.3.2",
29
29
  "ora": "^8.2.0",
30
30
  "yaml": "^2.7.0",
31
- "@nepopsx/core": "^0.0.12"
31
+ "@nepopsx/core": "^0.0.13"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/archiver": "^7.0.0",