4runr-os 1.0.14 → 1.0.21

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.
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 4Runr OS Animation Helper
3
+ * Controlled motion with static fallback
4
+ * Max duration enforcement
5
+ */
6
+ /**
7
+ * Spinner animation (subtle, for runs)
8
+ * Has static fallback
9
+ */
10
+ export declare function createSpinner(label: string): {
11
+ start: () => void;
12
+ stop: (success: boolean, message?: string) => void;
13
+ };
14
+ /**
15
+ * Progress bar (for boot sequence)
16
+ * Static fallback: "CHECKING..." → "OK"
17
+ */
18
+ export declare function createProgress(label: string, maxDuration?: number): {
19
+ start: () => void;
20
+ stop: (success: boolean) => void;
21
+ };
22
+ /**
23
+ * Stop all active animations (cleanup)
24
+ */
25
+ export declare function stopAllAnimations(): void;
26
+ //# sourceMappingURL=animations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../src/animations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAC5C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAoDA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,MAAwC,GAAG;IACpG,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC,CA2CA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 4Runr OS Animation Helper
3
+ * Controlled motion with static fallback
4
+ * Max duration enforcement
5
+ */
6
+ import { AnimationConfig } from './copy.js';
7
+ import { C_ACCENT, C_MUTED, RESET } from './theme.js';
8
+ let activeAnimations = new Set();
9
+ /**
10
+ * Spinner animation (subtle, for runs)
11
+ * Has static fallback
12
+ */
13
+ export function createSpinner(label) {
14
+ const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
15
+ let frameIndex = 0;
16
+ let interval = null;
17
+ let startTime = null;
18
+ return {
19
+ start: () => {
20
+ if (!AnimationConfig.enabled) {
21
+ process.stdout.write(`${C_ACCENT}${label}${RESET} ${C_MUTED}...${RESET}`);
22
+ return;
23
+ }
24
+ startTime = Date.now();
25
+ process.stdout.write(`${C_ACCENT}${label}${RESET} `);
26
+ interval = setInterval(() => {
27
+ if (startTime && Date.now() - startTime > AnimationConfig.maxBootDuration) {
28
+ // Stop after max duration
29
+ if (interval) {
30
+ clearInterval(interval);
31
+ interval = null;
32
+ }
33
+ return;
34
+ }
35
+ process.stdout.write(`\r${C_ACCENT}${label}${RESET} ${frames[frameIndex % frames.length]}`);
36
+ frameIndex++;
37
+ }, AnimationConfig.spinnerInterval);
38
+ if (interval) {
39
+ activeAnimations.add(interval);
40
+ }
41
+ },
42
+ stop: (success, message) => {
43
+ if (interval) {
44
+ clearInterval(interval);
45
+ activeAnimations.delete(interval);
46
+ interval = null;
47
+ }
48
+ if (AnimationConfig.enabled) {
49
+ process.stdout.write(`\r${' '.repeat(50)}\r`); // Clear line
50
+ }
51
+ else {
52
+ process.stdout.write('\n');
53
+ }
54
+ const status = success ? 'OK' : 'ERROR';
55
+ const msg = message ? ` ${message}` : '';
56
+ console.log(`${C_ACCENT}${label}${RESET} ${status}${msg}`);
57
+ },
58
+ };
59
+ }
60
+ /**
61
+ * Progress bar (for boot sequence)
62
+ * Static fallback: "CHECKING..." → "OK"
63
+ */
64
+ export function createProgress(label, maxDuration = AnimationConfig.maxBootDuration) {
65
+ let startTime = null;
66
+ let timeout = null;
67
+ return {
68
+ start: () => {
69
+ startTime = Date.now();
70
+ if (!AnimationConfig.enabled) {
71
+ process.stdout.write(`${C_ACCENT}${label}${RESET} ${C_MUTED}CHECKING...${RESET}`);
72
+ return;
73
+ }
74
+ // Static fallback: just show the label
75
+ process.stdout.write(`${C_ACCENT}${label}${RESET} ${C_MUTED}...${RESET}`);
76
+ // Auto-stop after max duration
77
+ timeout = setTimeout(() => {
78
+ if (timeout) {
79
+ clearTimeout(timeout);
80
+ timeout = null;
81
+ }
82
+ }, maxDuration);
83
+ if (timeout) {
84
+ activeAnimations.add(timeout);
85
+ }
86
+ },
87
+ stop: (success) => {
88
+ if (timeout) {
89
+ clearTimeout(timeout);
90
+ activeAnimations.delete(timeout);
91
+ timeout = null;
92
+ }
93
+ if (!AnimationConfig.enabled) {
94
+ process.stdout.write(`\r${C_ACCENT}${label}${RESET} ${success ? 'OK' : 'ERROR'}\n`);
95
+ return;
96
+ }
97
+ process.stdout.write(`\r${C_ACCENT}${label}${RESET} ${success ? 'OK' : 'ERROR'}\n`);
98
+ },
99
+ };
100
+ }
101
+ /**
102
+ * Stop all active animations (cleanup)
103
+ */
104
+ export function stopAllAnimations() {
105
+ activeAnimations.forEach(interval => {
106
+ clearInterval(interval);
107
+ clearTimeout(interval);
108
+ });
109
+ activeAnimations.clear();
110
+ }
111
+ //# sourceMappingURL=animations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.js","sourceRoot":"","sources":["../src/animations.ts"],"names":[],"mappings":"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"}
package/dist/copy.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * 4Runr OS Copy & Tone
3
+ * Centralized strings - short, declarative, high-status
4
+ * No fluff, no hype, just precise information
5
+ */
6
+ export declare const Copy: {
7
+ boot: {
8
+ initializing: string;
9
+ loadingConfig: string;
10
+ checkingGateway: string;
11
+ checkingDatabase: string;
12
+ loadingAgents: string;
13
+ };
14
+ status: {
15
+ ready: string;
16
+ offlineMode: string;
17
+ notConnected: string;
18
+ connected: string;
19
+ gatewayOnline: string;
20
+ gatewayOffline: string;
21
+ degraded: string;
22
+ };
23
+ connection: {
24
+ linking: string;
25
+ authenticating: string;
26
+ established: string;
27
+ terminated: string;
28
+ unavailable: string;
29
+ };
30
+ agent: {
31
+ created: string;
32
+ notFound: string;
33
+ noAgents: string;
34
+ awaitingOutput: string;
35
+ executionCompleted: string;
36
+ };
37
+ run: {
38
+ starting: string;
39
+ running: string;
40
+ completed: string;
41
+ failed: string;
42
+ noRuns: string;
43
+ };
44
+ error: {
45
+ connectionFailed: string;
46
+ gatewayUnavailable: string;
47
+ agentNotFound: string;
48
+ invalidCommand: string;
49
+ unknownError: string;
50
+ };
51
+ brand: {
52
+ bootComplete: string;
53
+ firstConnection: string;
54
+ firstRunComplete: string;
55
+ };
56
+ };
57
+ export declare const AnimationConfig: {
58
+ enabled: boolean;
59
+ maxBootDuration: number;
60
+ spinnerInterval: number;
61
+ };
62
+ //# sourceMappingURL=copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DhB,CAAC;AAGF,eAAO,MAAM,eAAe;;;;CAI3B,CAAC"}
package/dist/copy.js ADDED
@@ -0,0 +1,70 @@
1
+ /**
2
+ * 4Runr OS Copy & Tone
3
+ * Centralized strings - short, declarative, high-status
4
+ * No fluff, no hype, just precise information
5
+ */
6
+ export const Copy = {
7
+ // Boot sequence
8
+ boot: {
9
+ initializing: 'Initializing runtime',
10
+ loadingConfig: 'Loading configuration',
11
+ checkingGateway: 'Checking gateway',
12
+ checkingDatabase: 'Checking database',
13
+ loadingAgents: 'Loading agent registry',
14
+ },
15
+ // Status messages
16
+ status: {
17
+ ready: 'READY',
18
+ offlineMode: 'OFFLINE MODE',
19
+ notConnected: 'NOT CONNECTED',
20
+ connected: 'Connected',
21
+ gatewayOnline: 'Gateway online',
22
+ gatewayOffline: 'Gateway offline',
23
+ degraded: 'Degraded',
24
+ },
25
+ // Connection
26
+ connection: {
27
+ linking: 'Linking gateway',
28
+ authenticating: 'Authenticating',
29
+ established: 'Link established',
30
+ terminated: 'Link terminated',
31
+ unavailable: 'Gateway unavailable',
32
+ },
33
+ // Agent operations
34
+ agent: {
35
+ created: 'Agent created',
36
+ notFound: 'Agent not found',
37
+ noAgents: 'No agents configured',
38
+ awaitingOutput: 'Awaiting output',
39
+ executionCompleted: 'Execution completed',
40
+ },
41
+ // Run operations
42
+ run: {
43
+ starting: 'Starting',
44
+ running: 'Running',
45
+ completed: 'Completed',
46
+ failed: 'Failed',
47
+ noRuns: 'No runs yet',
48
+ },
49
+ // Errors (actionable)
50
+ error: {
51
+ connectionFailed: 'Connection failed',
52
+ gatewayUnavailable: 'Gateway unavailable',
53
+ agentNotFound: 'Agent not found',
54
+ invalidCommand: 'Invalid command',
55
+ unknownError: 'Unknown error',
56
+ },
57
+ // Brand moments (slightly more flair allowed)
58
+ brand: {
59
+ bootComplete: '4Runr OS initialized',
60
+ firstConnection: 'Gateway linked',
61
+ firstRunComplete: 'First run successful',
62
+ },
63
+ };
64
+ // Animation control
65
+ export const AnimationConfig = {
66
+ enabled: process.stdout.isTTY && !process.env.NO_ANIMATIONS,
67
+ maxBootDuration: 2000, // 2 seconds max
68
+ spinnerInterval: 100,
69
+ };
70
+ //# sourceMappingURL=copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../src/copy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,gBAAgB;IAChB,IAAI,EAAE;QACJ,YAAY,EAAE,sBAAsB;QACpC,aAAa,EAAE,uBAAuB;QACtC,eAAe,EAAE,kBAAkB;QACnC,gBAAgB,EAAE,mBAAmB;QACrC,aAAa,EAAE,wBAAwB;KACxC;IAED,kBAAkB;IAClB,MAAM,EAAE;QACN,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,eAAe;QAC7B,SAAS,EAAE,WAAW;QACtB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,iBAAiB;QACjC,QAAQ,EAAE,UAAU;KACrB;IAED,aAAa;IACb,UAAU,EAAE;QACV,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,gBAAgB;QAChC,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,qBAAqB;KACnC;IAED,mBAAmB;IACnB,KAAK,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,sBAAsB;QAChC,cAAc,EAAE,iBAAiB;QACjC,kBAAkB,EAAE,qBAAqB;KAC1C;IAED,iBAAiB;IACjB,GAAG,EAAE;QACH,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,aAAa;KACtB;IAED,sBAAsB;IACtB,KAAK,EAAE;QACL,gBAAgB,EAAE,mBAAmB;QACrC,kBAAkB,EAAE,qBAAqB;QACzC,aAAa,EAAE,iBAAiB;QAChC,cAAc,EAAE,iBAAiB;QACjC,YAAY,EAAE,eAAe;KAC9B;IAED,8CAA8C;IAC9C,KAAK,EAAE;QACL,YAAY,EAAE,sBAAsB;QACpC,eAAe,EAAE,gBAAgB;QACjC,gBAAgB,EAAE,sBAAsB;KACzC;CACF,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;IAC3D,eAAe,EAAE,IAAI,EAAE,gBAAgB;IACvC,eAAe,EAAE,GAAG;CACrB,CAAC"}