4runr-os 2.5.2 → 2.5.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"package-integrity.d.ts","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAoB9F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAyB5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwCzG"}
1
+ {"version":3,"file":"package-integrity.d.ts","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAkB9F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAwB5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuCzG"}
@@ -4,13 +4,14 @@
4
4
  */
5
5
  import * as crypto from 'crypto';
6
6
  import { spawnSync } from 'child_process';
7
+ import * as fs from 'fs';
8
+ import { sanitizePackageName } from './validation.js';
7
9
  /**
8
10
  * Get package integrity hash from npm registry
9
11
  */
10
12
  export function getPackageIntegrity(packageName, version) {
11
13
  try {
12
14
  // SECURITY: Validate package name
13
- const { sanitizePackageName } = require('./validation.js');
14
15
  const validation = sanitizePackageName(packageName);
15
16
  if (!validation.valid || !validation.sanitized) {
16
17
  throw new Error(`Invalid package name: ${validation.error}`);
@@ -35,7 +36,6 @@ export function getPackageIntegrity(packageName, version) {
35
36
  */
36
37
  export function verifyPackageIntegrity(tarballPath, expectedIntegrity) {
37
38
  try {
38
- const fs = require('fs');
39
39
  // Parse integrity string (format: algorithm-base64hash)
40
40
  const match = expectedIntegrity.match(/^(sha\d+)-(.+)$/);
41
41
  if (!match) {
@@ -56,7 +56,6 @@ export function verifyPackageIntegrity(tarballPath, expectedIntegrity) {
56
56
  */
57
57
  export function verifyInstalledVersion(packageName, expectedVersion) {
58
58
  try {
59
- const { sanitizePackageName } = require('./validation.js');
60
59
  const validation = sanitizePackageName(packageName);
61
60
  if (!validation.valid || !validation.sanitized) {
62
61
  return false;
@@ -81,7 +80,6 @@ export function verifyInstalledVersion(packageName, expectedVersion) {
81
80
  */
82
81
  export function safeNpmInstall(packageName, version) {
83
82
  try {
84
- const { sanitizePackageName } = require('./validation.js');
85
83
  const validation = sanitizePackageName(packageName);
86
84
  if (!validation.valid || !validation.sanitized) {
87
85
  return { success: false, error: `Invalid package name: ${validation.error}` };
@@ -1 +1 @@
1
- {"version":3,"file":"package-integrity.js","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-integrity.js","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"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"}
@@ -120,7 +120,7 @@ fn render_header(f: &mut Frame, area: Rect, state: &AppState) {
120
120
 
121
121
  // Line 1: Brand + version + uptime - Bug 3 fix: Use "4Runr." with dot (matches brand logo)
122
122
  // Use npm package version (2.3.5) - matches package.json
123
- const PACKAGE_VERSION: &str = "2.5.2";
123
+ const PACKAGE_VERSION: &str = "2.5.3";
124
124
  let brand_line = Line::from(vec![
125
125
  Span::styled("4Runr.", Style::default().fg(BRAND_PURPLE).add_modifier(Modifier::BOLD)),
126
126
  Span::styled(" AI AGENT OS", Style::default().fg(BRAND_VIOLET)),
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "2.5.2",
3
+ "version": "2.5.3",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.5.2: Fixed loading screen being overshadowed by agent list during boot. Resolved all compilation warnings. Professional help popup interface, Agent List viewer with detail popup. Enhanced UX with clean navigation. Built with Rust + Ratatui. ⚠️ Pre-MVP / Development Phase",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.5.3: Fixed auto-update error 'require is not defined' by converting package-integrity.ts to ESM imports. Fixed loading screen being overshadowed by agent list. Professional help popup interface, Agent List viewer with detail popup. Enhanced UX with clean navigation. Built with Rust + Ratatui. ⚠️ Pre-MVP / Development Phase",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",
@@ -5,6 +5,8 @@
5
5
 
6
6
  import * as crypto from 'crypto';
7
7
  import { spawnSync } from 'child_process';
8
+ import * as fs from 'fs';
9
+ import { sanitizePackageName } from './validation.js';
8
10
 
9
11
  /**
10
12
  * Get package integrity hash from npm registry
@@ -12,7 +14,6 @@ import { spawnSync } from 'child_process';
12
14
  export function getPackageIntegrity(packageName: string, version: string): string | null {
13
15
  try {
14
16
  // SECURITY: Validate package name
15
- const { sanitizePackageName } = require('./validation.js');
16
17
  const validation = sanitizePackageName(packageName);
17
18
 
18
19
  if (!validation.valid || !validation.sanitized) {
@@ -41,8 +42,6 @@ export function getPackageIntegrity(packageName: string, version: string): strin
41
42
  */
42
43
  export function verifyPackageIntegrity(tarballPath: string, expectedIntegrity: string): boolean {
43
44
  try {
44
- const fs = require('fs');
45
-
46
45
  // Parse integrity string (format: algorithm-base64hash)
47
46
  const match = expectedIntegrity.match(/^(sha\d+)-(.+)$/);
48
47
  if (!match) {
@@ -66,7 +65,6 @@ export function verifyPackageIntegrity(tarballPath: string, expectedIntegrity: s
66
65
  */
67
66
  export function verifyInstalledVersion(packageName: string, expectedVersion: string): boolean {
68
67
  try {
69
- const { sanitizePackageName } = require('./validation.js');
70
68
  const validation = sanitizePackageName(packageName);
71
69
 
72
70
  if (!validation.valid || !validation.sanitized) {
@@ -96,7 +94,6 @@ export function verifyInstalledVersion(packageName: string, expectedVersion: str
96
94
  */
97
95
  export function safeNpmInstall(packageName: string, version: string): { success: boolean; error?: string } {
98
96
  try {
99
- const { sanitizePackageName } = require('./validation.js');
100
97
  const validation = sanitizePackageName(packageName);
101
98
 
102
99
  if (!validation.valid || !validation.sanitized) {