pcremotecommander 0.7.0-beta.10 → 0.7.0-beta.11

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/README.md CHANGED
@@ -6,4 +6,4 @@ Setup requests full computer control and opens a matching-code approval page on
6
6
 
7
7
  This is a beta. It has not completed a production security or reliability review. Use an isolated workspace for testing.
8
8
 
9
- Beta.10 connects standard setup/connect to the production service. It reuses the verified beta.9 control runtime; its displayed agent version remains beta.9. A saved staging connection requires a fresh production matching-code approval. Explicit --gateway overrides are preserved. Production access is currently limited to the acceptance-test accounts.
9
+ Beta.11 shows a green dot-matrix Welcome to PCRC banner once per setup/connect run, connects to the production service and removes the extra workflow-skills and transport messages from the terminal. A saved staging connection requires a fresh production matching-code approval. Explicit --gateway overrides are preserved. Production access is currently limited to the acceptance-test accounts.
@@ -8,9 +8,9 @@ const crypto=require('node:crypto');
8
8
  const {pipeline}=require('node:stream/promises');
9
9
  const {spawn,spawnSync}=require('node:child_process');
10
10
 
11
- const version='0.7.0-beta.10';
12
- const sha256='025429bd7faff9fea0c36c18ef675019718bffe0c3bdd0ef1a514ac636a23fdc';
13
- const url='https://pc-remote-commander.pcremotecommander.workers.dev/downloads/windows/pcremotecommander-0.7.0-beta.9.tgz';
11
+ const version='0.7.0-beta.11';
12
+ const sha256='07c3782bd1c44f22ed827d55ffaac63c936ecd9d2bcc6fbc030806e0d46c6007';
13
+ const url='https://pc-remote-commander.pcremotecommander.workers.dev/downloads/windows/pcremotecommander-0.7.0-beta.11.tgz';
14
14
  const maximumBytes=100*1024*1024;
15
15
 
16
16
  function cacheRoot(env=process.env) {
@@ -85,16 +85,47 @@ function runtimeArgs(argv) {
85
85
  if(!['setup','connect'].includes(action)||argv.includes('--gateway'))return argv;
86
86
  return [action,...argv.slice(1),'--gateway','https://pc-remote-commander.pcremotecommander.workers.dev'];
87
87
  }
88
+ function welcomeBanner(columns=80,color=false) {
89
+ const glyphs={
90
+ W:['10001','10001','10001','10101','10101','11011','10001'],
91
+ E:['11111','10000','10000','11110','10000','10000','11111'],
92
+ L:['10000','10000','10000','10000','10000','10000','11111'],
93
+ C:['01111','10000','10000','10000','10000','10000','01111'],
94
+ O:['01110','10001','10001','10001','10001','10001','01110'],
95
+ M:['10001','11011','10101','10101','10001','10001','10001'],
96
+ T:['11111','00100','00100','00100','00100','00100','00100'],
97
+ P:['11110','10001','10001','11110','10000','10000','10000'],
98
+ R:['11110','10001','10001','11110','10100','10010','10001'],
99
+ ' ':['00000','00000','00000','00000','00000','00000','00000']
100
+ };
101
+ const groups=columns>=65?['WELCOME TO','PCRC']:['WELCOME','TO PCRC'];
102
+ const width=Math.max(...groups.map(text=>text.length*6-1));
103
+ const scale=columns>=width*2+4?2:1;
104
+ const border='+'+'-'.repeat(width*scale+2)+'+';
105
+ const lines=[border];
106
+ for(const text of groups){
107
+ lines.push('| '+' '.repeat(width*scale)+' |');
108
+ for(let row=0;row<7;row++){
109
+ const pixels=[...text].map(letter=>glyphs[letter][row]).join('0');
110
+ const rendered=[...pixels].map(pixel=>(pixel==='1'?'●':' ').repeat(scale)).join('');
111
+ const padding=Math.floor((width*scale-rendered.length)/2);
112
+ lines.push('| '+' '.repeat(padding)+rendered+' '.repeat(width*scale-padding-rendered.length)+' |');
113
+ }
114
+ }
115
+ lines.push('| '+' '.repeat(width*scale)+' |',border);
116
+ return (color?'\x1b[92m':'')+lines.join('\n')+(color?'\x1b[0m':'');
117
+ }
88
118
  async function main(argv=process.argv.slice(2)) {
89
119
  if(Number(process.versions.node.split('.')[0])<20)throw Error('Node.js 20 or newer is required.');
90
120
  if(['help','--help','-h'].includes(argv[0])) {
91
121
  console.log('PC Remote Commander beta\n\nUsage: pcremotecommander [setup|connect|cli|doctor] [options]\nSetup downloads a pinned runtime, verifies its SHA-256, then starts pairing. Windows and Node.js 20+ are required.');
92
122
  return;
93
123
  }
124
+ if(['setup','connect'].includes(argv[0]??'connect'))console.log(welcomeBanner(process.stdout.columns??80,!!process.stdout.isTTY&&!process.env.NO_COLOR&&process.env.TERM!=='dumb'));
94
125
  const entry=await ensurePayload();
95
126
  const child=spawn(process.execPath,[entry,...runtimeArgs(argv)],{stdio:'inherit',windowsHide:false,shell:false});
96
127
  child.on('error',error=>{console.error('PC Remote Commander runtime could not start: '+error.message);process.exitCode=1;});
97
128
  child.on('exit',(code,signal)=>{process.exitCode=signal?130:code??1;});
98
129
  }
99
130
  if(require.main===module)main().catch(error=>{console.error('PC Remote Commander: '+error.message);process.exitCode=1;});
100
- module.exports={cacheRoot,shaFile,verified,validateEntries,ensurePayload,runtimeArgs,main};
131
+ module.exports={cacheRoot,shaFile,verified,validateEntries,ensurePayload,runtimeArgs,welcomeBanner,main};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pcremotecommander",
3
- "version": "0.7.0-beta.10",
3
+ "version": "0.7.0-beta.11",
4
4
  "description": "PC Remote Commander Windows beta launcher; verifies a pinned full-control runtime and connects to the production service",
5
5
  "license": "UNLICENSED",
6
6
  "bin": {