@miakapp/cli 4.0.0-alpha.5 → 4.0.0-alpha.6
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 +99 -32
- package/assets/agent-guide.md +193 -22
- package/bin/miakapp.js +5 -1
- package/dist/agent-pack.d.ts.map +1 -1
- package/dist/agent-pack.js +12 -5
- package/dist/agent-pack.js.map +1 -1
- package/dist/contexts.d.ts +59 -0
- package/dist/contexts.d.ts.map +1 -0
- package/dist/contexts.js +388 -0
- package/dist/contexts.js.map +1 -0
- package/dist/control-plane.d.ts +14 -0
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +33 -1
- package/dist/control-plane.js.map +1 -1
- package/dist/internal/names.d.ts +5 -0
- package/dist/internal/names.d.ts.map +1 -1
- package/dist/internal/names.js +6 -0
- package/dist/internal/names.js.map +1 -1
- package/dist/main.d.ts +16 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +555 -49
- package/dist/main.js.map +1 -1
- package/dist/mcp.d.ts +7 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +167 -26
- package/dist/mcp.js.map +1 -1
- package/dist/pairing.d.ts +27 -0
- package/dist/pairing.d.ts.map +1 -0
- package/dist/pairing.js +148 -0
- package/dist/pairing.js.map +1 -0
- package/dist/project.d.ts +3 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +33 -6
- package/dist/project.js.map +1 -1
- package/dist/publication.d.ts +20 -5
- package/dist/publication.d.ts.map +1 -1
- package/dist/publication.js +58 -16
- package/dist/publication.js.map +1 -1
- package/dist/terminal.d.ts +10 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +70 -0
- package/dist/terminal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/terminal.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads one secret line from stdin without ever echoing it.
|
|
3
|
+
*
|
|
4
|
+
* On a terminal the prompt goes to stderr and the terminal is put in raw mode,
|
|
5
|
+
* so the code is neither displayed nor kept in the scrollback. From a pipe —
|
|
6
|
+
* `printf %s "$CODE" | miakapp pair`, the form an agent uses — the first line
|
|
7
|
+
* is read and the rest ignored. Either way the value never reaches argv, so it
|
|
8
|
+
* is absent from shell history and from the process list.
|
|
9
|
+
*/
|
|
10
|
+
import { usageError } from './errors.js';
|
|
11
|
+
const MAXIMUM_SECRET_BYTES = 4_096;
|
|
12
|
+
function text(chunk) {
|
|
13
|
+
return typeof chunk === 'string' ? chunk : new TextDecoder().decode(chunk);
|
|
14
|
+
}
|
|
15
|
+
async function readPipe(input) {
|
|
16
|
+
let buffer = '';
|
|
17
|
+
for await (const chunk of input) {
|
|
18
|
+
buffer += text(chunk);
|
|
19
|
+
const newline = buffer.search(/\r?\n/);
|
|
20
|
+
if (newline !== -1)
|
|
21
|
+
return buffer.slice(0, newline);
|
|
22
|
+
if (buffer.length > MAXIMUM_SECRET_BYTES)
|
|
23
|
+
throw usageError('The secret on stdin is too long');
|
|
24
|
+
}
|
|
25
|
+
return buffer;
|
|
26
|
+
}
|
|
27
|
+
function readTerminal(input, writeError) {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
let value = '';
|
|
30
|
+
const finish = (outcome) => {
|
|
31
|
+
input.off?.('data', onData);
|
|
32
|
+
input.setRawMode?.(false);
|
|
33
|
+
input.pause?.();
|
|
34
|
+
writeError('\n');
|
|
35
|
+
outcome();
|
|
36
|
+
};
|
|
37
|
+
const onData = (chunk) => {
|
|
38
|
+
for (const character of text(chunk)) {
|
|
39
|
+
if (character === '\r' || character === '\n' || character === '\u0004') {
|
|
40
|
+
finish(() => resolve(value));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (character === '\u0003') {
|
|
44
|
+
finish(() => reject(usageError('Cancelled')));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (character === '\u007f' || character === '\b') {
|
|
48
|
+
value = value.slice(0, -1);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
value += character;
|
|
52
|
+
if (value.length > MAXIMUM_SECRET_BYTES) {
|
|
53
|
+
finish(() => reject(usageError('The secret is too long')));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
input.setRawMode?.(true);
|
|
59
|
+
input.on?.('data', onData);
|
|
60
|
+
input.resume?.();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export async function readSecret(input, prompt, writeError) {
|
|
64
|
+
if (input.isTTY === true && input.setRawMode !== undefined && input.on !== undefined) {
|
|
65
|
+
writeError(prompt);
|
|
66
|
+
return await readTerminal(input, writeError);
|
|
67
|
+
}
|
|
68
|
+
return await readPipe(input);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
* would resolve a different release than the guide shipped beside it.
|
|
12
12
|
*/
|
|
13
13
|
export declare const PACKAGE_NAME = "@miakapp/cli";
|
|
14
|
-
export declare const CLI_VERSION = "4.0.0-alpha.
|
|
14
|
+
export declare const CLI_VERSION = "4.0.0-alpha.6";
|
|
15
15
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED