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;
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"package-integrity.js","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"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"}
|
package/mk3-tui/src/ui/layout.rs
CHANGED
|
@@ -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.
|
|
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.
|
|
3
|
+
"version": "2.5.3",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.5.
|
|
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) {
|