@nockdev/cli 1.0.0 → 1.0.2

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 (36) hide show
  1. package/README.md +65 -39
  2. package/dist/cli.js +32 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/notifications/announcement-client.d.ts +14 -0
  5. package/dist/notifications/announcement-client.d.ts.map +1 -0
  6. package/dist/notifications/announcement-client.js +50 -0
  7. package/dist/notifications/announcement-client.js.map +1 -0
  8. package/dist/notifications/index.d.ts +48 -0
  9. package/dist/notifications/index.d.ts.map +1 -0
  10. package/dist/notifications/index.js +165 -0
  11. package/dist/notifications/index.js.map +1 -0
  12. package/dist/notifications/renderer.d.ts +28 -0
  13. package/dist/notifications/renderer.d.ts.map +1 -0
  14. package/dist/notifications/renderer.js +87 -0
  15. package/dist/notifications/renderer.js.map +1 -0
  16. package/dist/notifications/types.d.ts +47 -0
  17. package/dist/notifications/types.d.ts.map +1 -0
  18. package/dist/notifications/types.js +4 -0
  19. package/dist/notifications/types.js.map +1 -0
  20. package/dist/notifications/update-checker.d.ts +10 -0
  21. package/dist/notifications/update-checker.d.ts.map +1 -0
  22. package/dist/notifications/update-checker.js +52 -0
  23. package/dist/notifications/update-checker.js.map +1 -0
  24. package/dist/plugins/manager.d.ts +5 -0
  25. package/dist/plugins/manager.d.ts.map +1 -1
  26. package/dist/plugins/manager.js +25 -7
  27. package/dist/plugins/manager.js.map +1 -1
  28. package/dist/utils/constants.d.ts +4 -0
  29. package/dist/utils/constants.d.ts.map +1 -1
  30. package/dist/utils/constants.js +4 -0
  31. package/dist/utils/constants.js.map +1 -1
  32. package/dist/utils/official-plugins.d.ts +18 -1
  33. package/dist/utils/official-plugins.d.ts.map +1 -1
  34. package/dist/utils/official-plugins.js +12 -2
  35. package/dist/utils/official-plugins.js.map +1 -1
  36. package/package.json +1 -1
package/README.md CHANGED
@@ -1,52 +1,78 @@
1
- # @nockdev/cli
1
+ <p align="center">
2
+ <img src="https://capsule-render.vercel.app/api?type=waving&color=0:1E40AF,100:6D28D9&height=160&section=header&text=NOCK%20CLI&fontSize=42&fontColor=FFFFFF&animation=fadeIn&fontAlignY=35&desc=Extensible%20AI%20Development%20Platform&descAlignY=55&descSize=16" width="100%" />
3
+ </p>
2
4
 
3
- > 🚀 Extensible Development Platform by NockDev
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/@nockdev/cli"><img src="https://img.shields.io/npm/v/@nockdev/cli?style=for-the-badge&logo=npm&logoColor=white&labelColor=CB3837&color=000000" alt="npm" /></a>
7
+ <img src="https://img.shields.io/badge/node-%E2%89%A518.0.0-10B981?style=for-the-badge&logo=nodedotjs&logoColor=white" alt="Node.js" />
8
+ <img src="https://img.shields.io/badge/license-MIT-3B82F6?style=for-the-badge&logo=opensourceinitiative&logoColor=white" alt="License" />
9
+ </p>
4
10
 
5
- [![npm version](https://img.shields.io/npm/v/@nockdev/cli.svg)](https://www.npmjs.com/package/@nockdev/cli)
6
- [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ <p align="center">
12
+ <b>Microkernel CLI</b> with auto-discovery plugins. Install once, extend with official and community packages.
13
+ </p>
8
14
 
9
- ## Installation
15
+ ---
10
16
 
11
- ```bash
12
- npm install -g @nockdev/cli
13
- ```
14
-
15
- ## Quick Start
17
+ ## ⚡ Quick Start
16
18
 
17
19
  ```bash
18
- nock --help # Show help
19
- nock plugins install @nockdev/awf # Install a plugin
20
- nock awf init # Use plugin commands
20
+ npm install -g @nockdev/cli # Install globally
21
+ nock awf init # Initialize AI assistant in your project
21
22
  ```
22
23
 
23
- ## Commands
24
+ > 💡 Plugins install automatically on first use — no manual setup needed.
24
25
 
25
- | Command | Description |
26
- | ---------------------------- | ---------------------- |
27
- | `nock --help` | Show help |
28
- | `nock version` | Show version info |
29
- | `nock plugins list` | List installed plugins |
30
- | `nock plugins install <pkg>` | Install plugin |
31
- | `nock plugins remove <pkg>` | Remove plugin |
32
- | `nock plugins update [pkg]` | Update plugin(s) |
33
- | `nock telemetry status` | Telemetry status |
34
- | `nock cache clear` | Clear command cache |
26
+ ---
35
27
 
36
- ## Auto-Install
28
+ ## 🔌 Plugin System
37
29
 
38
- Official plugins are auto-installed on first use:
30
+ NOCK CLI uses a **microkernel architecture** — the core is lightweight, plugins provide all functionality.
39
31
 
40
32
  ```
41
33
  $ nock awf init
42
34
  ⚡ Plugin 'awf' is not installed.
43
35
  ◆ Would you like to install @nockdev/awf?
44
36
  📦 Installing @nockdev/awf...
45
- ✔ Installed @nockdev/awf@6.2.0
37
+ ✔ Installed @nockdev/awf@latest
46
38
  🚀 Running: nock awf init
47
39
  ```
48
40
 
49
- ## Plugin Development
41
+ ### Official Plugins
42
+
43
+ | Plugin | Description |
44
+ | :----------------------------------------------------------- | :------------------------------------------------------------------------ |
45
+ | [`@nockdev/awf`](https://www.npmjs.com/package/@nockdev/awf) | 🧠 AI development assistant — 82 skills, 22 IDEs, 34 workflows |
46
+ | [`@nockdev/hsa`](https://www.npmjs.com/package/@nockdev/hsa) | 🔍 HSA MCP Server — semantic code search, project analysis, web dashboard |
47
+
48
+ ### Plugin Management
49
+
50
+ ```bash
51
+ nock plugins list # List installed plugins
52
+ nock plugins install <package> # Install a plugin
53
+ nock plugins remove <package> # Remove a plugin
54
+ nock plugins update [package] # Update plugin(s)
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 🎯 Core Commands
60
+
61
+ | Command | Description |
62
+ | :------------------------------- | :----------------------------------------- |
63
+ | `nock --help` | Show help and available topics |
64
+ | `nock version` | Show CLI and plugin versions |
65
+ | `nock awf init` | Initialize AI assistant in current project |
66
+ | `nock awf install --ide <name>` | Setup IDE-specific configuration |
67
+ | `nock awf mcp install --ide all` | Configure MCP server for all IDEs |
68
+ | `nock awf doctor` | Diagnose IDE configuration issues |
69
+ | `nock awf hsa status` | Check HSA MCP server status |
70
+ | `nock telemetry status` | View telemetry status |
71
+ | `nock cache clear` | Clear command cache |
72
+
73
+ ---
74
+
75
+ ## 🛠️ Build Your Own Plugin
50
76
 
51
77
  ```typescript
52
78
  import type { NockPlugin } from "@nockdev/cli";
@@ -61,7 +87,7 @@ const myPlugin: NockPlugin = {
61
87
  name: "hello",
62
88
  id: "my:hello",
63
89
  description: "Say hello",
64
- run: async () => console.log("Hello!"),
90
+ run: async () => console.log("Hello from my plugin!"),
65
91
  },
66
92
  ],
67
93
  };
@@ -69,17 +95,17 @@ const myPlugin: NockPlugin = {
69
95
  export default myPlugin;
70
96
  ```
71
97
 
72
- ## Official Plugins
98
+ ---
73
99
 
74
- | Plugin | Description |
75
- | ------------------------------------------------------------ | ---------------------------------------- |
76
- | [`@nockdev/awf`](https://www.npmjs.com/package/@nockdev/awf) | AI dev assistant — 57 skills, 21 IDEs |
77
- | [`@nockdev/hsa`](https://www.npmjs.com/package/@nockdev/hsa) | HSA MCP Server — semantic context engine |
100
+ ## 📋 Requirements
78
101
 
79
- ## Requirements
102
+ - **Node.js** ≥ 18.0.0
103
+ - **npm** ≥ 8.0.0
80
104
 
81
- - Node.js ≥ 18.0.0
105
+ ## 📄 License
82
106
 
83
- ## License
107
+ MIT © [**NockDev**](https://github.com/nockasdd)
84
108
 
85
- MIT © NockDev
109
+ <p align="center">
110
+ <img src="https://capsule-render.vercel.app/api?type=waving&color=0:6D28D9,100:1E40AF&height=100&section=footer" width="100%" />
111
+ </p>
package/dist/cli.js CHANGED
@@ -9,7 +9,8 @@ import { telemetryCommand } from "./core/telemetry.js";
9
9
  import { versionCommand, getVersion } from "./core/version.js";
10
10
  import { EXIT_CODES } from "./utils/exit-codes.js";
11
11
  import { manifestCache } from "./utils/manifest-cache.js";
12
- import { getOfficialPlugin } from "./utils/official-plugins.js";
12
+ import { getOfficialPlugin, getTopicAlias } from "./utils/official-plugins.js";
13
+ import { notifications } from "./notifications/index.js";
13
14
  const VERSION = getVersion();
14
15
  const HELP = `
15
16
  ${pc.cyan("NOCK CLI")} ${pc.dim(`v${VERSION}`)}
@@ -46,6 +47,8 @@ ${pc.bold("Documentation:")}
46
47
  ${pc.dim("https://github.com/nockasdd/domyh-awf-code")}
47
48
  `;
48
49
  async function main() {
50
+ // Start notification check (non-blocking, runs in parallel with command)
51
+ const notificationCheck = notifications.check();
49
52
  const argv = mri(process.argv.slice(2), {
50
53
  boolean: ["help", "version", "verbose", "quiet"],
51
54
  string: ["config"],
@@ -110,6 +113,31 @@ async function main() {
110
113
  const handled = await plugins.route(command, args, argv);
111
114
  if (handled)
112
115
  return;
116
+ // Check topic aliases (e.g. `nock hsa` → `nock awf hsa`)
117
+ const alias = getTopicAlias(command);
118
+ if (alias) {
119
+ const parentPackage = getOfficialPlugin(alias.plugin);
120
+ const parentPlugin = plugins.list().find(p => p.topic === alias.plugin);
121
+ // Auto-install parent plugin if not installed
122
+ if (!parentPlugin && parentPackage) {
123
+ console.log(pc.yellow(`\n⚡ '${command}' requires plugin '${alias.plugin}'.\n`));
124
+ const shouldInstall = await prompts.confirm({
125
+ message: `Would you like to install ${pc.cyan(parentPackage)}?`,
126
+ });
127
+ if (prompts.isCancel(shouldInstall) || !shouldInstall) {
128
+ console.log(pc.dim("Installation cancelled."));
129
+ return;
130
+ }
131
+ console.log("");
132
+ await plugins.install(parentPackage);
133
+ await plugins.loadAll();
134
+ }
135
+ // Route: prepend subcommand to args → nock awf hsa [args]
136
+ const aliasArgs = [alias.subcommand, ...args];
137
+ const aliasHandled = await plugins.route(alias.plugin, aliasArgs, argv);
138
+ if (aliasHandled)
139
+ return;
140
+ }
113
141
  // Check if command matches an official plugin (auto-install)
114
142
  const officialPackage = getOfficialPlugin(command);
115
143
  if (officialPackage) {
@@ -144,6 +172,9 @@ async function main() {
144
172
  }
145
173
  process.exit(EXIT_CODES.GENERAL_ERROR);
146
174
  }
175
+ // Display notifications after command completes
176
+ await notificationCheck;
177
+ notifications.display();
147
178
  }
148
179
  main();
149
180
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { BootstrapResponse } from "./types.js";
2
+ /**
3
+ * Fetch bootstrap data from the backend API.
4
+ *
5
+ * Returns updates, announcements, entitlements, and MOTD in a single call.
6
+ * Returns null if backend is unavailable (graceful fallback).
7
+ *
8
+ * When api.autodomyh.com is not deployed yet:
9
+ * → fetch fails with connection error or 404
10
+ * → catch block returns null
11
+ * → CLI operates 100% normally
12
+ */
13
+ export declare function fetchBootstrap(dismissed?: string[]): Promise<BootstrapResponse | null>;
14
+ //# sourceMappingURL=announcement-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"announcement-client.d.ts","sourceRoot":"","sources":["../../src/notifications/announcement-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKpD;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAoCnC"}
@@ -0,0 +1,50 @@
1
+ // packages/cli/src/notifications/announcement-client.ts
2
+ // Announcement Client v1.0.0 — Fetch bootstrap data from api.autodomyh.com
3
+ // Pattern: HashiCorp Checkpoint (unified endpoint for updates + announcements)
4
+ import { CLI_VERSION, API_BASE_URL } from "../utils/constants.js";
5
+ const BOOTSTRAP_PATH = "/api/v1/cli/bootstrap";
6
+ const TIMEOUT_MS = 5000;
7
+ /**
8
+ * Fetch bootstrap data from the backend API.
9
+ *
10
+ * Returns updates, announcements, entitlements, and MOTD in a single call.
11
+ * Returns null if backend is unavailable (graceful fallback).
12
+ *
13
+ * When api.autodomyh.com is not deployed yet:
14
+ * → fetch fails with connection error or 404
15
+ * → catch block returns null
16
+ * → CLI operates 100% normally
17
+ */
18
+ export async function fetchBootstrap(dismissed = []) {
19
+ try {
20
+ const controller = new AbortController();
21
+ const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
22
+ const params = new URLSearchParams({
23
+ version: CLI_VERSION,
24
+ platform: process.platform,
25
+ arch: process.arch,
26
+ node: process.version,
27
+ });
28
+ if (dismissed.length > 0) {
29
+ params.set("dismissed", dismissed.join(","));
30
+ }
31
+ const url = `${API_BASE_URL}${BOOTSTRAP_PATH}?${params.toString()}`;
32
+ const res = await fetch(url, {
33
+ headers: {
34
+ Accept: "application/json",
35
+ "User-Agent": `nock-cli/${CLI_VERSION}`,
36
+ },
37
+ signal: controller.signal,
38
+ });
39
+ clearTimeout(timeout);
40
+ if (!res.ok)
41
+ return null;
42
+ return (await res.json());
43
+ }
44
+ catch {
45
+ // Backend not deployed, network error, timeout, offline
46
+ // → graceful fallback, CLI works normally
47
+ return null;
48
+ }
49
+ }
50
+ //# sourceMappingURL=announcement-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"announcement-client.js","sourceRoot":"","sources":["../../src/notifications/announcement-client.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,2EAA2E;AAC3E,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,YAAsB,EAAE;IAExB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEpE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,YAAY,WAAW,EAAE;aACxC;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { NotificationCache } from "./types.js";
2
+ /**
3
+ * Notification Gateway — single entry point for all CLI notifications.
4
+ *
5
+ * Lifecycle:
6
+ * 1. CLI startup → gateway.check() (non-blocking, parallel with command)
7
+ * 2. Command executes normally
8
+ * 3. After command → gateway.display() shows pending notifications
9
+ *
10
+ * Opt-out: NOCK_NO_NOTIFICATIONS=1
11
+ * Cache: ~/.nock/notifications.json
12
+ * Check interval: 6 hours (configurable via constants.ts)
13
+ */
14
+ export declare class NotificationGateway {
15
+ private cachePath;
16
+ private cache;
17
+ constructor();
18
+ /**
19
+ * Run all notification checks.
20
+ *
21
+ * This method is designed to be called at CLI startup and awaited
22
+ * after the main command completes. It checks both npm registry
23
+ * and the backend API in parallel.
24
+ *
25
+ * Errors are silently caught — never breaks CLI experience.
26
+ */
27
+ check(): Promise<void>;
28
+ /**
29
+ * Display pending notifications to stderr.
30
+ *
31
+ * Called AFTER the main command completes.
32
+ * Shows at most 1 announcement per CLI invocation to avoid noise.
33
+ */
34
+ display(): void;
35
+ /**
36
+ * Dismiss an announcement so it won't show again.
37
+ */
38
+ dismiss(announcementId: string): void;
39
+ /**
40
+ * Get current entitlement data from cache.
41
+ * Returns null if no entitlements cached.
42
+ */
43
+ getEntitlements(): NotificationCache["entitlements"] | null;
44
+ private readCache;
45
+ private writeCache;
46
+ }
47
+ export declare const notifications: NotificationGateway;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAkC;;IAU/C;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD5B;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IA+Bf;;OAEG;IACH,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,eAAe,IAAI,iBAAiB,CAAC,cAAc,CAAC,GAAG,IAAI;IAO3D,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,UAAU;CAenB;AAGD,eAAO,MAAM,aAAa,qBAA4B,CAAC"}
@@ -0,0 +1,165 @@
1
+ // packages/cli/src/notifications/index.ts
2
+ // Notification Gateway v1.0.0 — Unified notification orchestrator
3
+ // Pattern: HashiCorp Checkpoint + vercel/update-check hybrid
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import { homedir } from "node:os";
7
+ import { CLI_VERSION, NOCK_DIR_NAME, NOTIFICATION_CHECK_INTERVAL, } from "../utils/constants.js";
8
+ import { checkForUpdate } from "./update-checker.js";
9
+ import { fetchBootstrap } from "./announcement-client.js";
10
+ import { renderUpdateBox, renderAnnouncement, renderMotd, } from "./renderer.js";
11
+ const CACHE_FILE = "notifications.json";
12
+ /**
13
+ * Notification Gateway — single entry point for all CLI notifications.
14
+ *
15
+ * Lifecycle:
16
+ * 1. CLI startup → gateway.check() (non-blocking, parallel with command)
17
+ * 2. Command executes normally
18
+ * 3. After command → gateway.display() shows pending notifications
19
+ *
20
+ * Opt-out: NOCK_NO_NOTIFICATIONS=1
21
+ * Cache: ~/.nock/notifications.json
22
+ * Check interval: 6 hours (configurable via constants.ts)
23
+ */
24
+ export class NotificationGateway {
25
+ cachePath;
26
+ cache = null;
27
+ constructor() {
28
+ this.cachePath = path.join(homedir(), NOCK_DIR_NAME, CACHE_FILE);
29
+ }
30
+ /**
31
+ * Run all notification checks.
32
+ *
33
+ * This method is designed to be called at CLI startup and awaited
34
+ * after the main command completes. It checks both npm registry
35
+ * and the backend API in parallel.
36
+ *
37
+ * Errors are silently caught — never breaks CLI experience.
38
+ */
39
+ async check() {
40
+ // Opt-out: respect user preference
41
+ if (process.env.NOCK_NO_NOTIFICATIONS)
42
+ return;
43
+ // CI detection: skip in CI environments
44
+ if (process.env.CI || process.env.CONTINUOUS_INTEGRATION)
45
+ return;
46
+ // Rate limit: check at most every N hours
47
+ const cache = this.readCache();
48
+ if (cache && Date.now() - cache.lastChecked < NOTIFICATION_CHECK_INTERVAL) {
49
+ return;
50
+ }
51
+ try {
52
+ // Parallel fetch: npm registry + backend API
53
+ const [updateResult, bootstrapResult] = await Promise.allSettled([
54
+ checkForUpdate(),
55
+ fetchBootstrap(cache?.dismissed ?? []),
56
+ ]);
57
+ const newCache = {
58
+ version: CLI_VERSION,
59
+ lastChecked: Date.now(),
60
+ dismissed: cache?.dismissed ?? [],
61
+ };
62
+ // npm registry update info
63
+ if (updateResult.status === "fulfilled" &&
64
+ updateResult.value) {
65
+ newCache.update = updateResult.value;
66
+ }
67
+ // Backend bootstrap data (overrides npm if available)
68
+ if (bootstrapResult.status === "fulfilled" &&
69
+ bootstrapResult.value) {
70
+ const bs = bootstrapResult.value;
71
+ if (bs.update)
72
+ newCache.update = bs.update;
73
+ newCache.announcements = bs.announcements;
74
+ newCache.entitlements = bs.entitlements;
75
+ newCache.motd = bs.motd;
76
+ }
77
+ this.writeCache(newCache);
78
+ }
79
+ catch {
80
+ // Silent failure — CLI must always work
81
+ }
82
+ }
83
+ /**
84
+ * Display pending notifications to stderr.
85
+ *
86
+ * Called AFTER the main command completes.
87
+ * Shows at most 1 announcement per CLI invocation to avoid noise.
88
+ */
89
+ display() {
90
+ if (process.env.NOCK_NO_NOTIFICATIONS)
91
+ return;
92
+ if (process.env.CI || process.env.CONTINUOUS_INTEGRATION)
93
+ return;
94
+ const cache = this.readCache();
95
+ if (!cache)
96
+ return;
97
+ // 1. Version update notification
98
+ if (cache.update) {
99
+ renderUpdateBox(CLI_VERSION, cache.update);
100
+ }
101
+ // 2. Announcements — show highest priority, max 1 per run
102
+ const activeAnnouncements = (cache.announcements ?? [])
103
+ .filter((a) => !cache.dismissed.includes(a.id))
104
+ .filter((a) => !a.expires_at || new Date(a.expires_at) > new Date())
105
+ .sort((a, b) => b.priority - a.priority);
106
+ if (activeAnnouncements.length > 0) {
107
+ renderAnnouncement(activeAnnouncements[0]);
108
+ }
109
+ // 3. MOTD (message of the day)
110
+ if (cache.motd) {
111
+ renderMotd(cache.motd);
112
+ }
113
+ }
114
+ /**
115
+ * Dismiss an announcement so it won't show again.
116
+ */
117
+ dismiss(announcementId) {
118
+ const cache = this.readCache();
119
+ if (!cache)
120
+ return;
121
+ if (!cache.dismissed.includes(announcementId)) {
122
+ cache.dismissed.push(announcementId);
123
+ this.writeCache(cache);
124
+ }
125
+ }
126
+ /**
127
+ * Get current entitlement data from cache.
128
+ * Returns null if no entitlements cached.
129
+ */
130
+ getEntitlements() {
131
+ const cache = this.readCache();
132
+ return cache?.entitlements ?? null;
133
+ }
134
+ // ─── Private: Cache I/O (ManifestCacheManager pattern) ───
135
+ readCache() {
136
+ if (this.cache)
137
+ return this.cache;
138
+ try {
139
+ if (fs.existsSync(this.cachePath)) {
140
+ this.cache = JSON.parse(fs.readFileSync(this.cachePath, "utf-8"));
141
+ return this.cache;
142
+ }
143
+ }
144
+ catch {
145
+ // Corrupt cache → ignore, will be overwritten
146
+ }
147
+ return null;
148
+ }
149
+ writeCache(cache) {
150
+ try {
151
+ const dir = path.dirname(this.cachePath);
152
+ if (!fs.existsSync(dir)) {
153
+ fs.mkdirSync(dir, { recursive: true });
154
+ }
155
+ fs.writeFileSync(this.cachePath, JSON.stringify(cache, null, 2));
156
+ this.cache = cache;
157
+ }
158
+ catch {
159
+ // Write failure → ignore, will retry next check
160
+ }
161
+ }
162
+ }
163
+ // Singleton instance
164
+ export const notifications = new NotificationGateway();
165
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Announcement, UpdateInfo } from "./types.js";
2
+ /**
3
+ * Render update notification box to stderr.
4
+ * Output to stderr so it doesn't interfere with stdout piping.
5
+ *
6
+ * Example:
7
+ * ╭──────────────────────────────────────────╮
8
+ * │ │
9
+ * │ Update available! 1.0.0 → 1.2.0 [minor]│
10
+ * │ Run: npm i -g @nockdev/cli │
11
+ * │ │
12
+ * ╰──────────────────────────────────────────╯
13
+ */
14
+ export declare function renderUpdateBox(current: string, update: UpdateInfo): void;
15
+ /**
16
+ * Render a single announcement to stderr.
17
+ *
18
+ * Icons by type:
19
+ * critical → 🚨
20
+ * warning → ⚠️
21
+ * info → ℹ️
22
+ */
23
+ export declare function renderAnnouncement(ann: Announcement): void;
24
+ /**
25
+ * Render MOTD (message of the day) to stderr.
26
+ */
27
+ export declare function renderMotd(message: string): void;
28
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/notifications/renderer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,GACjB,IAAI,CA6BN;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAuB1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD"}
@@ -0,0 +1,87 @@
1
+ // packages/cli/src/notifications/renderer.ts
2
+ // Notification Renderer v1.0.0 — Terminal UI for notifications
3
+ // Uses picocolors (already a dependency), outputs to stderr
4
+ import pc from "picocolors";
5
+ /**
6
+ * Render update notification box to stderr.
7
+ * Output to stderr so it doesn't interfere with stdout piping.
8
+ *
9
+ * Example:
10
+ * ╭──────────────────────────────────────────╮
11
+ * │ │
12
+ * │ Update available! 1.0.0 → 1.2.0 [minor]│
13
+ * │ Run: npm i -g @nockdev/cli │
14
+ * │ │
15
+ * ╰──────────────────────────────────────────╯
16
+ */
17
+ export function renderUpdateBox(current, update) {
18
+ const typeLabel = update.type === "major"
19
+ ? pc.red("MAJOR")
20
+ : update.type === "minor"
21
+ ? pc.yellow("minor")
22
+ : pc.green("patch");
23
+ const WIDTH = 46;
24
+ const top = "╭" + "─".repeat(WIDTH) + "╮";
25
+ const bot = "╰" + "─".repeat(WIDTH) + "╯";
26
+ const empty = "│" + " ".repeat(WIDTH) + "│";
27
+ const line1 = `Update available! ${pc.dim(current)} → ${pc.green(update.latest)} [${typeLabel}]`;
28
+ const line2 = `Run: ${pc.cyan("npm i -g @nockdev/cli")}`;
29
+ console.error("");
30
+ console.error(top);
31
+ console.error(empty);
32
+ console.error(padLine(line1, WIDTH));
33
+ console.error(padLine(line2, WIDTH));
34
+ if (update.changelog_url) {
35
+ console.error(padLine(`${pc.dim("Changelog:")} ${update.changelog_url}`, WIDTH));
36
+ }
37
+ console.error(empty);
38
+ console.error(bot);
39
+ console.error("");
40
+ }
41
+ /**
42
+ * Render a single announcement to stderr.
43
+ *
44
+ * Icons by type:
45
+ * critical → 🚨
46
+ * warning → ⚠️
47
+ * info → ℹ️
48
+ */
49
+ export function renderAnnouncement(ann) {
50
+ const icon = ann.type === "critical"
51
+ ? "🚨"
52
+ : ann.type === "warning"
53
+ ? "⚠️"
54
+ : "ℹ️";
55
+ const color = ann.type === "critical"
56
+ ? pc.red
57
+ : ann.type === "warning"
58
+ ? pc.yellow
59
+ : pc.cyan;
60
+ console.error("");
61
+ console.error(color(`${icon} ${ann.title}`));
62
+ console.error(color("─".repeat(48)));
63
+ console.error(` ${ann.body}`);
64
+ if (ann.action_url) {
65
+ console.error(` ${pc.dim("→")} ${pc.underline(ann.action_url)}`);
66
+ }
67
+ console.error("");
68
+ }
69
+ /**
70
+ * Render MOTD (message of the day) to stderr.
71
+ */
72
+ export function renderMotd(message) {
73
+ console.error(pc.dim(message));
74
+ }
75
+ // ─── Helpers ──────────────────────────────────────────
76
+ /** Pad a line with ANSI-aware width calculation */
77
+ function padLine(text, width) {
78
+ const visibleLen = stripAnsi(text).length;
79
+ const pad = Math.max(0, width - visibleLen - 4);
80
+ return "│ " + text + " ".repeat(pad) + "│";
81
+ }
82
+ /** Strip ANSI escape codes for accurate width calculation */
83
+ function stripAnsi(str) {
84
+ // eslint-disable-next-line no-control-regex
85
+ return str.replace(/\x1B\[[0-9;]*m/g, "");
86
+ }
87
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/notifications/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /** API response from api.autodomyh.com/api/v1/cli/bootstrap */
2
+ export interface BootstrapResponse {
3
+ update?: UpdateInfo;
4
+ announcements?: Announcement[];
5
+ entitlements?: EntitlementData;
6
+ motd?: string;
7
+ }
8
+ /** Version update info */
9
+ export interface UpdateInfo {
10
+ latest: string;
11
+ type: "major" | "minor" | "patch";
12
+ changelog_url?: string;
13
+ critical: boolean;
14
+ }
15
+ /** Server-side announcement */
16
+ export interface Announcement {
17
+ id: string;
18
+ type: "info" | "warning" | "critical";
19
+ title: string;
20
+ body: string;
21
+ action_url?: string;
22
+ target?: {
23
+ versions?: string;
24
+ tiers?: string[];
25
+ };
26
+ priority: number;
27
+ dismissible: boolean;
28
+ expires_at?: string;
29
+ }
30
+ /** User entitlement data */
31
+ export interface EntitlementData {
32
+ tier: "free" | "pro" | "enterprise";
33
+ features: string[];
34
+ limits?: Record<string, number>;
35
+ signature?: string;
36
+ }
37
+ /** Local notification cache */
38
+ export interface NotificationCache {
39
+ version: string;
40
+ lastChecked: number;
41
+ dismissed: string[];
42
+ update?: UpdateInfo;
43
+ announcements?: Announcement[];
44
+ entitlements?: EntitlementData;
45
+ motd?: string;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notifications/types.ts"],"names":[],"mappings":"AAGA,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,0BAA0B;AAC1B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,4 @@
1
+ // packages/cli/src/notifications/types.ts
2
+ // Notification Gateway Types v1.0.0
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/notifications/types.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,oCAAoC"}
@@ -0,0 +1,10 @@
1
+ import type { UpdateInfo } from "./types.js";
2
+ /**
3
+ * Check npm registry for a newer CLI version.
4
+ *
5
+ * - Non-blocking: caller should `await` or use `Promise.allSettled`
6
+ * - Timeout: 5 seconds max
7
+ * - Returns null on any error (network, parse, offline)
8
+ */
9
+ export declare function checkForUpdate(): Promise<UpdateInfo | null>;
10
+ //# sourceMappingURL=update-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/notifications/update-checker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C;;;;;;GAMG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA6BjE"}
@@ -0,0 +1,52 @@
1
+ // packages/cli/src/notifications/update-checker.ts
2
+ // Update Checker v1.0.0 — Check npm registry for newer CLI version
3
+ // Pattern: vercel/update-check (minimalistic, full control)
4
+ import { CLI_NAME, CLI_VERSION } from "../utils/constants.js";
5
+ const NPM_REGISTRY = "https://registry.npmjs.org";
6
+ const TIMEOUT_MS = 5000;
7
+ /**
8
+ * Check npm registry for a newer CLI version.
9
+ *
10
+ * - Non-blocking: caller should `await` or use `Promise.allSettled`
11
+ * - Timeout: 5 seconds max
12
+ * - Returns null on any error (network, parse, offline)
13
+ */
14
+ export async function checkForUpdate() {
15
+ try {
16
+ const controller = new AbortController();
17
+ const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
18
+ const res = await fetch(`${NPM_REGISTRY}/${CLI_NAME}/latest`, {
19
+ headers: { Accept: "application/json" },
20
+ signal: controller.signal,
21
+ });
22
+ clearTimeout(timeout);
23
+ if (!res.ok)
24
+ return null;
25
+ const data = (await res.json());
26
+ const latest = data.version;
27
+ if (!latest || latest === CLI_VERSION)
28
+ return null;
29
+ // Determine update type via simple semver compare
30
+ const type = getUpdateType(CLI_VERSION, latest);
31
+ return {
32
+ latest,
33
+ type,
34
+ critical: type === "major",
35
+ };
36
+ }
37
+ catch {
38
+ // Network error, timeout, offline — silent fallback
39
+ return null;
40
+ }
41
+ }
42
+ /** Simple semver comparison to determine update type */
43
+ function getUpdateType(current, latest) {
44
+ const [curMajor, curMinor] = current.split(".").map(Number);
45
+ const [latMajor, latMinor] = latest.split(".").map(Number);
46
+ if (latMajor > curMajor)
47
+ return "major";
48
+ if (latMinor > curMinor)
49
+ return "minor";
50
+ return "patch";
51
+ }
52
+ //# sourceMappingURL=update-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/notifications/update-checker.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,mEAAmE;AACnE,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;QAEjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,IAAI,QAAQ,SAAS,EAAE;YAC5D,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAEnD,kDAAkD;QAClD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEhD,OAAO;YACL,MAAM;YACN,IAAI;YACJ,QAAQ,EAAE,IAAI,KAAK,OAAO;SAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,SAAS,aAAa,CACpB,OAAe,EACf,MAAc;IAEd,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,QAAQ,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,QAAQ,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -73,5 +73,10 @@ export declare class PluginManager {
73
73
  * Simple Levenshtein distance implementation
74
74
  */
75
75
  private levenshtein;
76
+ /**
77
+ * Validate and sanitize npm package name to prevent command injection.
78
+ * Matches npm's package name spec: optional @scope/ + name, optional @version.
79
+ */
80
+ private sanitizePackageName;
76
81
  }
77
82
  //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,aAAa,EACb,eAAe,EAEf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAUpB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,GAAE,oBAAyB;IAc9C,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC9B;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC9C;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7C;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/C;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDjD;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2ChD;;OAEG;IACG,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjD;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC;IAwCnB;;OAEG;IACH,IAAI,IAAI,eAAe,EAAE;IAWzB;;OAEG;IACH,cAAc,IAAI,aAAa,EAAE;IAIjC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAU1B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,OAAO;IAsBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,WAAW;CA0BpB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,aAAa,EACb,eAAe,EAEf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAUpB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,GAAE,oBAAyB;IAc9C,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC9B;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C9C;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7C;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/C;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDjD;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ChD;;OAEG;IACG,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCjD;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC;IAwCnB;;OAEG;IACH,IAAI,IAAI,eAAe,EAAE;IAWzB;;OAEG;IACH,cAAc,IAAI,aAAa,EAAE;IAIjC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAU1B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,OAAO;IAsBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
@@ -84,10 +84,13 @@ export class PluginManager {
84
84
  if (!fs.existsSync(entryPath)) {
85
85
  throw new Error(`Plugin entry not found: ${mainEntry}`);
86
86
  }
87
- // Dynamic import (ESM)
87
+ // Dynamic import (ESM with CJS fallback)
88
88
  const fileUrl = pathToFileURL(entryPath).href;
89
89
  const module = await import(fileUrl);
90
- const plugin = module.default;
90
+ const plugin = module.default ?? module;
91
+ if (!plugin || typeof plugin !== "object") {
92
+ throw new Error(`Plugin "${packageName}" has no valid default export`);
93
+ }
91
94
  // Validate plugin structure
92
95
  this.validate(plugin);
93
96
  // Register by topic
@@ -197,8 +200,9 @@ export class PluginManager {
197
200
  if (!fs.existsSync(pkgJsonPath)) {
198
201
  fs.writeFileSync(pkgJsonPath, JSON.stringify({ private: true, type: "module" }, null, 2));
199
202
  }
200
- // Install via npm
201
- execSync(`npm install ${packageName}`, {
203
+ // Install via npm (sanitize packageName to prevent command injection)
204
+ const safeName = this.sanitizePackageName(packageName);
205
+ execSync(`npm install ${safeName}`, {
202
206
  cwd: this.pluginsDir,
203
207
  stdio: this.options.verbose ? "inherit" : "pipe",
204
208
  });
@@ -238,8 +242,9 @@ export class PluginManager {
238
242
  if (plugin?.destroy) {
239
243
  await plugin.destroy();
240
244
  }
241
- // Uninstall via npm
242
- execSync(`npm uninstall ${packageName}`, {
245
+ // Uninstall via npm (sanitize packageName to prevent command injection)
246
+ const safeName = this.sanitizePackageName(packageName);
247
+ execSync(`npm uninstall ${safeName}`, {
243
248
  cwd: this.pluginsDir,
244
249
  stdio: this.options.verbose ? "inherit" : "pipe",
245
250
  });
@@ -272,7 +277,8 @@ export class PluginManager {
272
277
  console.log(pc.cyan(`⬆ Updating ${pkg}...`));
273
278
  }
274
279
  try {
275
- execSync(`npm update ${pkg}`, {
280
+ const safePkg = this.sanitizePackageName(pkg);
281
+ execSync(`npm update ${safePkg}`, {
276
282
  cwd: this.pluginsDir,
277
283
  stdio: this.options.verbose ? "inherit" : "pipe",
278
284
  });
@@ -470,5 +476,17 @@ ${pc.bold("Usage:")}
470
476
  }
471
477
  return matrix[b.length][a.length];
472
478
  }
479
+ /**
480
+ * Validate and sanitize npm package name to prevent command injection.
481
+ * Matches npm's package name spec: optional @scope/ + name, optional @version.
482
+ */
483
+ sanitizePackageName(name) {
484
+ // npm package name spec: ^(?:@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*(?:@[\w.^~>=<|-]+)?$
485
+ const NPM_PKG_RE = /^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*(?:@[\w.^~>=<|-]+)?$/;
486
+ if (!NPM_PKG_RE.test(name)) {
487
+ throw new Error(`Invalid package name: "${name}"`);
488
+ }
489
+ return name;
490
+ }
473
491
  }
474
492
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,8 @@ export declare const PLUGINS_DIR_NAME = "plugins";
8
8
  export declare const MANIFEST_FILE = "plugins.json";
9
9
  /** NOCK home directory name */
10
10
  export declare const NOCK_DIR_NAME = ".nock";
11
+ /** API base URL — backend for notifications, entitlements, etc. */
12
+ export declare const API_BASE_URL = "https://api.autodomyh.com";
13
+ /** Notification check interval (6 hours in ms) */
14
+ export declare const NOTIFICATION_CHECK_INTERVAL: number;
11
15
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,yBAAyB;AACzB,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAe;AACf,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,yBAAyB;AACzB,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,+BAA+B;AAC/B,eAAO,MAAM,aAAa,UAAU,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,yBAAyB;AACzB,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAe;AACf,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,yBAAyB;AACzB,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,+BAA+B;AAC/B,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,mEAAmE;AACnE,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAExD,kDAAkD;AAClD,eAAO,MAAM,2BAA2B,QAAqB,CAAC"}
@@ -10,4 +10,8 @@ export const PLUGINS_DIR_NAME = "plugins";
10
10
  export const MANIFEST_FILE = "plugins.json";
11
11
  /** NOCK home directory name */
12
12
  export const NOCK_DIR_NAME = ".nock";
13
+ /** API base URL — backend for notifications, entitlements, etc. */
14
+ export const API_BASE_URL = "https://api.autodomyh.com";
15
+ /** Notification check interval (6 hours in ms) */
16
+ export const NOTIFICATION_CHECK_INTERVAL = 6 * 60 * 60 * 1000;
13
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,2CAA2C;AAE3C,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,eAAe;AACf,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEvC,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C,yBAAyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C,+BAA+B;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,2CAA2C;AAE3C,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,eAAe;AACf,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEvC,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C,yBAAyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAE5C,+BAA+B;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAErC,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAExD,kDAAkD;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1,11 +1,28 @@
1
1
  /**
2
- * Official plugins that can be auto-installed when user tries to use them
2
+ * Official plugins that can be auto-installed when user tries to use them.
3
+ * Only includes packages that export NockPlugin interface.
4
+ * MCP servers (like @nockdev/hsa) should NOT be listed here.
3
5
  */
4
6
  export declare const OFFICIAL_PLUGINS: Record<string, string>;
7
+ /**
8
+ * Topic aliases — commands that route through a parent plugin's subcommand.
9
+ * Example: `nock hsa start` → installs @nockdev/awf, then runs `nock awf hsa start`
10
+ */
11
+ export interface TopicAlias {
12
+ /** Parent plugin topic (e.g. "awf") */
13
+ plugin: string;
14
+ /** Subcommand to prepend (e.g. "hsa") */
15
+ subcommand: string;
16
+ }
17
+ export declare const TOPIC_ALIASES: Record<string, TopicAlias>;
5
18
  /**
6
19
  * Check if topic matches an official plugin
7
20
  */
8
21
  export declare function getOfficialPlugin(topic: string): string | null;
22
+ /**
23
+ * Check if topic is an alias that routes through another plugin
24
+ */
25
+ export declare function getTopicAlias(topic: string): TopicAlias | null;
9
26
  /**
10
27
  * Get all official plugin topics
11
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"official-plugins.d.ts","sourceRoot":"","sources":["../../src/utils/official-plugins.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C"}
1
+ {"version":3,"file":"official-plugins.d.ts","sourceRoot":"","sources":["../../src/utils/official-plugins.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKnD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAEpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C"}
@@ -1,21 +1,31 @@
1
1
  // packages/cli/src/utils/official-plugins.ts
2
2
  // Official Plugins Registry - Auto-install support
3
3
  /**
4
- * Official plugins that can be auto-installed when user tries to use them
4
+ * Official plugins that can be auto-installed when user tries to use them.
5
+ * Only includes packages that export NockPlugin interface.
6
+ * MCP servers (like @nockdev/hsa) should NOT be listed here.
5
7
  */
6
8
  export const OFFICIAL_PLUGINS = {
7
9
  // Topic -> npm package name
8
10
  awf: "@nockdev/awf", // AI Workflow Framework
9
- hsa: "@nockdev/hsa", // Hierarchical Smart Agent (MCP Server)
10
11
  // Future plugins:
11
12
  // ui: "@nockdev/ui", // UI Components
12
13
  };
14
+ export const TOPIC_ALIASES = {
15
+ hsa: { plugin: "awf", subcommand: "hsa" },
16
+ };
13
17
  /**
14
18
  * Check if topic matches an official plugin
15
19
  */
16
20
  export function getOfficialPlugin(topic) {
17
21
  return OFFICIAL_PLUGINS[topic] || null;
18
22
  }
23
+ /**
24
+ * Check if topic is an alias that routes through another plugin
25
+ */
26
+ export function getTopicAlias(topic) {
27
+ return TOPIC_ALIASES[topic] || null;
28
+ }
19
29
  /**
20
30
  * Get all official plugin topics
21
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"official-plugins.js","sourceRoot":"","sources":["../../src/utils/official-plugins.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,mDAAmD;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,4BAA4B;IAC5B,GAAG,EAAE,cAAc,EAAM,wBAAwB;IACjD,GAAG,EAAE,cAAc,EAAM,wCAAwC;IACjE,kBAAkB;IAClB,0CAA0C;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"official-plugins.js","sourceRoot":"","sources":["../../src/utils/official-plugins.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,mDAAmD;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,4BAA4B;IAC5B,GAAG,EAAE,cAAc,EAAM,wBAAwB;IACjD,kBAAkB;IAClB,0CAA0C;CAC3C,CAAC;AAaF,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nockdev/cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "NOCK CLI - Extensible Development Platform by NockDev",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",