mb-run 0.0.3 → 0.0.4-dev-20260708-2b76926

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/CHANGELOG.md CHANGED
@@ -21,6 +21,18 @@ If you like this project and find it useful, please consider giving it a star on
21
21
 
22
22
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
23
23
 
24
+ ## [0.0.4] - Dev branch
25
+
26
+ ### Changed
27
+
28
+ - [package]: Update agents instructions.
29
+ - [package]: Update dependencies.
30
+ - [package]: Upgrade package.
31
+ - [codex]: Update codex configuration.
32
+ - [vscode]: Update vscode extensions.
33
+
34
+ <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
35
+
24
36
  ## [0.0.3] - 2026-07-06
25
37
 
26
38
  ### Added
package/bin/mb-run CHANGED
File without changes
package/dist/upgrade.js CHANGED
@@ -27,7 +27,7 @@ export async function runUpgrade(opts) {
27
27
  for (const pkgPath of workspacePackageJsonPaths) {
28
28
  dstDir = path.dirname(pkgPath);
29
29
  const pkgJson = await parsePackageJson(dstDir);
30
- await runPackageJsonUpgrade(opts, dstDir, pkgJson, false, true, false, false);
30
+ await runPackageJsonUpgrade(opts, path.join(dstDir, 'package.json'), pkgJson, false, true, false, false);
31
31
  }
32
32
  if (commandFailures.length > 0) {
33
33
  log(`${red('Failed commands:')}${reset()}\n${inspect(commandFailures, false, 2, true)}`);
@@ -343,8 +343,10 @@ export async function runPackageJsonUpgrade(opts, pkgPath, pkgJson, isMonorepo =
343
343
  fileReplace('CHANGELOG.md', '(https://github.com/prettier/prettier)', '(https://prettier.io/)');
344
344
  fileReplace('CHANGELOG.md', '(https://github.com/eslint/eslint)', '(https://eslint.org/)');
345
345
  fileReplace('CHANGELOG.md', '(https://nodejs.org/api/esm.html)', '(https://nodejs.org/)');
346
- if (isMonorepo)
346
+ if (isMonorepo) {
347
+ log(magenta('Monorepo detected, skipping script setup for the root package.json.'));
347
348
  return;
349
+ }
348
350
  const scripts = pkgJson.scripts;
349
351
  const startScript = scripts?.start ?? `node ${pkgJson.main ?? 'dist/module.js'}`;
350
352
  log(magenta(`Start script: ${cyan(startScript)}`));
@@ -478,13 +480,19 @@ export async function runPackageJsonUpgrade(opts, pkgPath, pkgJson, isMonorepo =
478
480
  delete devDeps?.['@vitest/eslint-plugin'];
479
481
  delete devDeps?.['esbuild'];
480
482
  delete devDeps?.['javascript-obfuscator'];
483
+ log(magenta(`Changing package.json "${pkgPath}" scripts and devDependencies...`));
481
484
  const packageJson = JSON.parse(readFileSync(pkgPath, 'utf8'));
482
485
  writeFileSync(pkgPath, JSON.stringify({
483
486
  ...packageJson,
484
487
  scripts: pkgJson.scripts,
485
488
  devDependencies: pkgJson.devDependencies,
486
489
  }, null, 2) + '\n', 'utf8');
490
+ log(magenta(`Emptying node_modules "${dstDir}"...`));
487
491
  await emptyDir('node_modules', { rootDir: dstDir, dryRun: false });
492
+ if (isWorkspace) {
493
+ log(magenta('Monorepo workspace detected, skipping install dependencies...'));
494
+ return;
495
+ }
488
496
  log(green('Installing devDependencies...'));
489
497
  const commands = [
490
498
  `npm pkg delete overrides`,
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "mb-run",
3
- "version": "0.0.3",
3
+ "version": "0.0.4-dev-20260708-2b76926",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "mb-run",
9
- "version": "0.0.3",
9
+ "version": "0.0.4-dev-20260708-2b76926",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "cross-spawn": "7.0.6",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mb-run",
3
- "version": "0.0.3",
3
+ "version": "0.0.4-dev-20260708-2b76926",
4
4
  "description": "Matterbridge command line executor",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",
@@ -1,4 +1,4 @@
1
- # Matterbridge Endpoint Guide
1
+ # Matterbridge Endpoint Guide (v.1.0.0)
2
2
 
3
3
  Use this guide when writing Matterbridge code in this repository or when authoring a plugin that consumes Matterbridge.
4
4
 
@@ -299,7 +299,7 @@ For most plugins, follow this order:
299
299
  2. Create the endpoint or single-class device.
300
300
  3. Set device identity with one of the Basic Information helpers if you are using a raw `MatterbridgeEndpoint`.
301
301
  4. Add explicit cluster servers you need.
302
- 5. Call `addRequiredClusterServers()` last.
302
+ 5. Call `addRequiredClusters()` last.
303
303
  6. Register the device with `await this.registerDevice(device)`.
304
304
  7. Optionally add UI metadata with `setSelectDevice()` and `setSelectEntity()`.
305
305
 
@@ -1,4 +1,4 @@
1
- # Testing Standards for Unit Tests
1
+ # Testing Standards for Unit Tests (v.1.0.0)
2
2
 
3
3
  ## 1. Test Framework
4
4
 
@@ -7,12 +7,12 @@
7
7
  - Bun test is available in the repository when the file `bunfig.toml` exists.
8
8
  - Jest tests live in `test` folders. Follow the existing convention in the repository for test file placement.
9
9
  - Vitest tests live in `vitest` folders. Follow the existing convention in the repository for test file placement.
10
- - Bun test tests live in `buntest` folders. Follow the existing convention in the repository for test file placement.
10
+ - Bun tests live in `buntest` folders. Follow the existing convention in the repository for test file placement.
11
11
  - Ensure that tests are written in TypeScript and follow the ESM module format.
12
12
 
13
13
  ## 2. Test Structure
14
14
 
15
- - Organize tests in file name `*.test.ts` in the `test`, `vitest`, or `buntest` folders.
15
+ - Organize tests in file named `*.test.ts` in the `test`, `vitest`, or `buntest` folders.
16
16
  - Use `describe` blocks to group related tests and `test` blocks for individual test cases.
17
17
 
18
18
  ## 3. Test Naming
@@ -1,23 +1,25 @@
1
- # Codex config v. 1.0.1
1
+ # Codex config v.1.0.2
2
2
 
3
3
  approval_policy = "on-request"
4
4
  approvals_reviewer = "user"
5
- default_permissions = "matterbridge_safe"
5
+
6
6
  web_search = "live"
7
7
 
8
+ default_permissions = "matterbridge_safe"
9
+
8
10
  [shell_environment_policy]
9
11
  inherit = "core"
10
12
 
11
13
  [windows]
12
14
  sandbox = "elevated"
13
15
 
14
- [permissions.matterbridge_safe.network]
15
- enabled = false
16
-
17
16
  [permissions.matterbridge_safe]
18
17
  description = "Workspace access with sensitive files denied and network disabled."
19
18
  extends = ":workspace"
20
19
 
20
+ [permissions.matterbridge_safe.network]
21
+ enabled = false
22
+
21
23
  [permissions.matterbridge_safe.filesystem]
22
24
  glob_scan_max_depth = 4
23
25
 
@@ -1,4 +1,4 @@
1
- # Codex rules v. 1.0.1
1
+ # Codex rules v.1.0.1
2
2
 
3
3
  # Git mutations
4
4
  prefix_rule(pattern = ["git", "pull"], decision = "forbidden", justification = "Do not change local refs without explicit manual control.")
@@ -1,17 +1,34 @@
1
- # Matterbridge Workspace Instructions (v.1.0.1)
1
+ # Matterbridge Workspace Instructions (v.1.0.2)
2
+
3
+ ## Style And Formatting
2
4
 
3
5
  - Follow [STYLEGUIDE.md](../STYLEGUIDE.md) for code style, naming, JSDoc, validation, logging, and formatting expectations.
4
6
  - JSDoc requirements are enforced by the configured linter. Treat missing or incomplete JSDoc on required APIs as a real lint issue, not optional documentation.
5
7
  - Import and export ordering are enforced by the formatter. Preserve the existing grouped and sorted order unless a change requires updating it.
6
8
  - Formatting is enforced by oxfmt. Follow the existing formatting and do not fight the formatter.
9
+
10
+ ## Scope And Safety
11
+
7
12
  - Keep changes minimal and scoped to the request. Avoid unrelated refactors or broad cleanup.
8
13
  - Do not modify production code only to make a test pass. If a failing test points to a likely source issue, explain the issue and change behavior only when required by the task.
9
14
  - Preserve cross-platform behavior. Changes must work on Windows, macOS, and Linux, especially for paths, shell commands, environment variables, and networking behavior.
10
15
  - Maintain compatibility with the supported Node.js versions in this repository: 20.19, 22.13, 24.0, and 26.0.
16
+
17
+ ## Project Architecture
18
+
11
19
  - This repository uses TypeScript and ESM. Follow existing project patterns for imports, exports, build configuration, and test setup.
20
+
21
+ ## Testing And Validation
22
+
12
23
  - Prefer the existing npm scripts in [package.json](../package.json) and the VS Code tasks in [tasks.json](../.vscode/tasks.json) for building, linting, and testing.
13
24
  - Keep tests deterministic and simple. Prefer small data sets and straightforward setup.
14
25
  - Some tests are intentionally multi-step flows. State may persist across successive steps within a single test flow, but each test unit must remain isolated from other tests.
15
26
  - For validation, run the relevant full test file or the matching suite/task for the touched area rather than assuming arbitrary isolated single-test execution is reliable.
27
+
28
+ ## Documentation
29
+
16
30
  - When behavior changes, update the relevant tests and documentation.
31
+
32
+ ## Additional Agent Guidance
33
+
17
34
  - Use dedicated instruction files under [.github/instructions](instructions/) when a rule applies only to specific file types or workflows.
@@ -1,17 +1,34 @@
1
- # Matterbridge Workspace Instructions (v.1.0.1)
1
+ # Matterbridge Workspace Instructions (v.1.0.2)
2
+
3
+ ## Style And Formatting
2
4
 
3
5
  - Follow [STYLEGUIDE.md](../STYLEGUIDE.md) for code style, naming, JSDoc, validation, logging, and formatting expectations.
4
6
  - JSDoc requirements are enforced by the configured linter. Treat missing or incomplete JSDoc on required APIs as a real lint issue, not optional documentation.
5
7
  - Import and export ordering are enforced by the formatter. Preserve the existing grouped and sorted order unless a change requires updating it.
6
8
  - Formatting is enforced by oxfmt. Follow the existing formatting and do not fight the formatter.
9
+
10
+ ## Scope And Safety
11
+
7
12
  - Keep changes minimal and scoped to the request. Avoid unrelated refactors or broad cleanup.
8
13
  - Do not modify production code only to make a test pass. If a failing test points to a likely source issue, explain the issue and change behavior only when required by the task.
9
14
  - Preserve cross-platform behavior. Changes must work on Windows, macOS, and Linux, especially for paths, shell commands, environment variables, and networking behavior.
10
15
  - Maintain compatibility with the supported Node.js versions in this repository: 20, 22, 24, and 26.
16
+
17
+ ## Project Architecture
18
+
11
19
  - This repository uses TypeScript and ESM. Follow existing project patterns for imports, exports, build configuration, and test setup.
20
+
21
+ ## Testing And Validation
22
+
12
23
  - Prefer the existing npm scripts in [package.json](../package.json) and the VS Code tasks in [tasks.json](../.vscode/tasks.json) for building, linting, and testing.
13
24
  - Keep tests deterministic and simple. Prefer small data sets and straightforward setup.
14
25
  - Some tests are intentionally multi-step flows. State may persist across successive steps within a single test flow, but each test unit must remain isolated from other tests.
15
26
  - For validation, run the relevant full test file or the matching suite/task for the touched area rather than assuming arbitrary isolated single-test execution is reliable.
27
+
28
+ ## Documentation
29
+
16
30
  - When behavior changes, update the relevant tests and documentation.
31
+
32
+ ## Additional Agent Guidance
33
+
17
34
  - Use dedicated instruction files under [.github/instructions](instructions/) when a rule applies only to specific file types or workflows.
@@ -1,10 +1,9 @@
1
- // VS Code extensions native v. 1.0.4
1
+ // VS Code extensions native v. 1.0.5
2
2
  {
3
3
  "recommendations": [
4
4
  "typescriptteam.native-preview",
5
5
  "oxc.oxc-vscode",
6
6
  "vitest.explorer",
7
- "firsttris.vscode-jest-runner",
8
7
  "ms-azuretools.vscode-containers",
9
8
  "anthropic.claude-code",
10
9
  "github.copilot-chat",
@@ -12,5 +11,5 @@
12
11
  "github.vscode-pull-request-github",
13
12
  "openai.chatgpt"
14
13
  ],
15
- "unwantedRecommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
14
+ "unwantedRecommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "firsttris.vscode-jest-runner"]
16
15
  }
package/vendor/AGENTS.md CHANGED
@@ -1,10 +1,10 @@
1
- # Matterbridge Agents Instructions (v.1.0.0)
1
+ # Matterbridge Agents Instructions (v.1.0.2)
2
2
 
3
3
  ## Style And Formatting
4
4
 
5
5
  - Follow [STYLEGUIDE.md](./STYLEGUIDE.md) for code style, naming, JSDoc, validation, logging, and formatting expectations.
6
6
  - JSDoc requirements are enforced by the linter. Treat missing or incomplete JSDoc on required APIs as a real lint issue, not optional documentation.
7
- - Import and export ordering are enforced by the linter or by theformater. Preserve the existing grouped and sorted order unless a change requires updating it.
7
+ - Import and export ordering are enforced by the linter or by the formatter. Preserve the existing grouped and sorted order unless a change requires updating it.
8
8
  - Follow the existing formatting and do not fight the formatter.
9
9
 
10
10
  ## Scope And Safety
@@ -27,11 +27,11 @@
27
27
 
28
28
  ## Documentation
29
29
 
30
- - When behavior changes, update the relevant tests and documentation.
30
+ - When behavior changes, update the relevant tests and documentation in the README.md files.
31
31
 
32
32
  ## Additional Agent Guidance
33
33
 
34
- For task-specific guidance, read relevant files in `.agents/`:
34
+ For task-specific guidance, read relevant files in [.agents](./.agents/):
35
35
 
36
- - `.agents/testing.md` for testing and validation expectations
37
- - `.agents/matterbridge.md` for instruction about using matterbridge in a plugin
36
+ - `.agents/testing.md` for testing and validation expectations;
37
+ - `.agents/matterbridge.md` for instruction about using matterbridge in a plugin.
package/vendor/CLAUDE.md CHANGED
@@ -1,17 +1,34 @@
1
- # Matterbridge Claude Instructions (v.1.0.1)
1
+ # Matterbridge Claude Instructions (v.1.0.2)
2
+
3
+ ## Style And Formatting
2
4
 
3
5
  - Follow [STYLEGUIDE.md](./STYLEGUIDE.md) for code style, naming, JSDoc, validation, logging, and formatting expectations.
4
6
  - JSDoc requirements are enforced by the configured linter. Treat missing or incomplete JSDoc on required APIs as a real lint issue, not optional documentation.
5
7
  - Import and export ordering are enforced by the formatter. Preserve the existing grouped and sorted order unless a change requires updating it.
6
8
  - Formatting is enforced by oxfmt. Follow the existing formatting and do not fight the formatter.
9
+
10
+ ## Scope And Safety
11
+
7
12
  - Keep changes minimal and scoped to the request. Avoid unrelated refactors or broad cleanup.
8
13
  - Do not modify production code only to make a test pass. If a failing test points to a likely source issue, explain the issue and change behavior only when required by the task.
9
14
  - Preserve cross-platform behavior. Changes must work on Windows, macOS, and Linux, especially for paths, shell commands, environment variables, and networking behavior.
10
15
  - Maintain compatibility with the supported Node.js versions in this repository: 20.19, 22.13, 24.0 and 26.0.
16
+
17
+ ## Project Architecture
18
+
11
19
  - This repository uses TypeScript and ESM. Follow existing project patterns for imports, exports, build configuration, and test setup.
20
+
21
+ ## Testing And Validation
22
+
12
23
  - Prefer the existing npm scripts in [package.json](./package.json) and the VS Code tasks in [tasks.json](./.vscode/tasks.json) for building, linting, and testing.
13
24
  - Keep tests deterministic and simple. Prefer small data sets and straightforward setup.
14
25
  - Some tests are intentionally multi-step flows. State may persist across successive steps within a single test flow, but each test unit must remain isolated from other tests.
15
26
  - For validation, run the relevant full test file or the matching suite/task for the touched area rather than assuming arbitrary isolated single-test execution is reliable.
27
+
28
+ ## Documentation
29
+
16
30
  - When behavior changes, update the relevant tests and documentation.
31
+
32
+ ## Additional Agent Guidance
33
+
17
34
  - Use dedicated instruction files under [.claude/rules](.claude/rules/) when a rule applies only to specific file types or workflows.