@gnsx/genesys.agent.cli 1.0.4 → 1.0.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/dist/src/args.d.ts +5 -6
- package/dist/src/args.d.ts.map +1 -1
- package/dist/src/args.js +61 -103
- package/dist/src/args.js.map +1 -1
- package/dist/src/cli.js +38 -12
- package/dist/src/cli.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -8
package/dist/src/args.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Intentionally minimal — model selection, session management and tool
|
|
5
5
|
* configuration are delegated to pi's own machinery via createAgentSession.
|
|
6
6
|
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
7
8
|
import type { ThinkingLevel } from '@mariozechner/pi-agent-core';
|
|
8
9
|
export interface Args {
|
|
9
10
|
/** Working directory (default: process.cwd()) */
|
|
@@ -29,11 +30,9 @@ export interface Args {
|
|
|
29
30
|
continue: boolean;
|
|
30
31
|
/** Positional arguments / prompt text (used in print mode) */
|
|
31
32
|
messages: string[];
|
|
32
|
-
/** Show help and exit */
|
|
33
|
-
help: boolean;
|
|
34
|
-
/** Show version and exit */
|
|
35
|
-
version: boolean;
|
|
36
33
|
}
|
|
37
|
-
export declare function parseArgs(argv: string[]):
|
|
38
|
-
|
|
34
|
+
export declare function parseArgs(argv: string[], version: string, packageName: string): {
|
|
35
|
+
args: Args;
|
|
36
|
+
program: Command;
|
|
37
|
+
};
|
|
39
38
|
//# sourceMappingURL=args.d.ts.map
|
package/dist/src/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,IAAI;IACnB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAoBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiEhH"}
|
package/dist/src/args.js
CHANGED
|
@@ -4,120 +4,78 @@
|
|
|
4
4
|
* Intentionally minimal — model selection, session management and tool
|
|
5
5
|
* configuration are delegated to pi's own machinery via createAgentSession.
|
|
6
6
|
*/
|
|
7
|
+
import { addUpdateCommand } from '@gnsx/cli-utils/self-update';
|
|
8
|
+
import { Command } from 'commander';
|
|
7
9
|
const THINKING_LEVELS = ['off', 'minimal', 'low', 'medium', 'high', 'xhigh'];
|
|
8
10
|
function isThinkingLevel(value) {
|
|
9
11
|
return THINKING_LEVELS.includes(value);
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
function parseModel(value) {
|
|
14
|
+
// Support "provider/model" shorthand
|
|
15
|
+
if (value.includes('/')) {
|
|
16
|
+
const slash = value.indexOf('/');
|
|
17
|
+
return {
|
|
18
|
+
provider: value.slice(0, slash),
|
|
19
|
+
model: value.slice(slash + 1),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return { model: value };
|
|
23
|
+
}
|
|
24
|
+
export function parseArgs(argv, version, packageName) {
|
|
25
|
+
const program = new Command();
|
|
12
26
|
const args = {
|
|
13
27
|
print: false,
|
|
14
28
|
noSession: false,
|
|
15
29
|
continue: false,
|
|
16
30
|
messages: [],
|
|
17
|
-
help: false,
|
|
18
|
-
version: false,
|
|
19
31
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (!next) {
|
|
46
|
-
console.error('--cwd requires a value');
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
args.cwd = next;
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
case '--model':
|
|
53
|
-
case '-m': {
|
|
54
|
-
const next = argv[++i];
|
|
55
|
-
if (!next) {
|
|
56
|
-
console.error('--model requires a value');
|
|
57
|
-
process.exit(1);
|
|
58
|
-
}
|
|
59
|
-
// Support "provider/model" shorthand
|
|
60
|
-
if (next.includes('/') && !args.provider) {
|
|
61
|
-
const slash = next.indexOf('/');
|
|
62
|
-
args.provider = next.slice(0, slash);
|
|
63
|
-
args.model = next.slice(slash + 1);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
args.model = next;
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case '--provider': {
|
|
71
|
-
const next = argv[++i];
|
|
72
|
-
if (!next) {
|
|
73
|
-
console.error('--provider requires a value');
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
args.provider = next;
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
case '--thinking': {
|
|
80
|
-
const next = argv[++i];
|
|
81
|
-
if (!next || !isThinkingLevel(next)) {
|
|
82
|
-
console.error(`--thinking requires one of: ${THINKING_LEVELS.join(', ')}`);
|
|
83
|
-
process.exit(1);
|
|
84
|
-
}
|
|
85
|
-
args.thinking = next;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
default:
|
|
89
|
-
// Unknown flags are silently ignored; positional args become messages
|
|
90
|
-
if (!arg.startsWith('-')) {
|
|
91
|
-
args.messages.push(arg);
|
|
92
|
-
}
|
|
93
|
-
break;
|
|
32
|
+
program
|
|
33
|
+
.name('genesys')
|
|
34
|
+
.description('Genesys Agent v2 CLI - AI-powered coding assistant')
|
|
35
|
+
.version(version, '-v, --version')
|
|
36
|
+
.usage('[options] [prompt]');
|
|
37
|
+
// Add update command
|
|
38
|
+
addUpdateCommand(program, packageName, version);
|
|
39
|
+
program
|
|
40
|
+
.option('-p, --print', 'print mode: send prompt, output response, exit', false)
|
|
41
|
+
.option('-c, --continue', 'continue the most recent session', false)
|
|
42
|
+
.option('--no-session', 'disable session persistence (in-memory only)', false)
|
|
43
|
+
.option('-m, --model <model>', 'model to use, e.g. "anthropic/claude-opus-4-5"')
|
|
44
|
+
.option('--provider <name>', 'provider name (used with --model)')
|
|
45
|
+
.option('--thinking <level>', `thinking level: ${THINKING_LEVELS.join(', ')}`)
|
|
46
|
+
.option('--cwd <dir>', 'working directory (default: current directory)')
|
|
47
|
+
.argument('[prompt...]', 'initial prompt text')
|
|
48
|
+
.parse(argv, { from: 'user' });
|
|
49
|
+
const opts = program.opts();
|
|
50
|
+
const cliArgs = program.processedArgs;
|
|
51
|
+
// Handle model parsing with provider/model shorthand
|
|
52
|
+
if (opts.model) {
|
|
53
|
+
const parsed = parseModel(opts.model);
|
|
54
|
+
args.model = parsed.model;
|
|
55
|
+
if (parsed.provider) {
|
|
56
|
+
args.provider = parsed.provider;
|
|
94
57
|
}
|
|
95
|
-
i++;
|
|
96
58
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
genesys -c # Continue most recent session
|
|
119
|
-
genesys -p "Explain this codebase" # Single-shot prompt
|
|
120
|
-
genesys -m anthropic/claude-opus-4-5 # Use a specific model
|
|
121
|
-
`);
|
|
59
|
+
// Provider can be overridden explicitly
|
|
60
|
+
if (opts.provider) {
|
|
61
|
+
args.provider = opts.provider;
|
|
62
|
+
}
|
|
63
|
+
// Validate thinking level
|
|
64
|
+
if (opts.thinking) {
|
|
65
|
+
if (!isThinkingLevel(opts.thinking)) {
|
|
66
|
+
console.error(`--thinking must be one of: ${THINKING_LEVELS.join(', ')}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
args.thinking = opts.thinking;
|
|
70
|
+
}
|
|
71
|
+
args.print = opts.print ?? false;
|
|
72
|
+
args.noSession = opts.noSession ?? false;
|
|
73
|
+
args.continue = opts.continue ?? false;
|
|
74
|
+
args.cwd = opts.cwd;
|
|
75
|
+
// Collect positional arguments as messages
|
|
76
|
+
if (cliArgs.length > 0 && cliArgs[0]) {
|
|
77
|
+
args.messages = cliArgs[0];
|
|
78
|
+
}
|
|
79
|
+
return { args, program };
|
|
122
80
|
}
|
|
123
81
|
//# sourceMappingURL=args.js.map
|
package/dist/src/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,MAAM,eAAe,GAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9F,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,qCAAqC;IACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAC9B,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,OAAe,EAAE,WAAmB;IAC5E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAS;QACjB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,oDAAoD,CAAC;SACjE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE/B,qBAAqB;IACrB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO;SACJ,MAAM,CAAC,aAAa,EAAE,gDAAgD,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,KAAK,CAAC;SACnE,MAAM,CAAC,cAAc,EAAE,8CAA8C,EAAE,KAAK,CAAC;SAC7E,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;SAC/E,MAAM,CAAC,mBAAmB,EAAE,mCAAmC,CAAC;SAChE,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7E,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;SACvE,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;SAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,aAA2B,CAAC;IAEpD,qDAAqD;IACrD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;IACH,CAAC;IACD,wCAAwC;IACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,8BAA8B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACvC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAEpB,2CAA2C;IAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/src/cli.js
CHANGED
|
@@ -12,22 +12,40 @@ import { fileURLToPath } from 'node:url';
|
|
|
12
12
|
import { getModel, setBedrockProviderModule } from '@mariozechner/pi-ai';
|
|
13
13
|
import { bedrockProviderModule } from '@mariozechner/pi-ai/bedrock-provider';
|
|
14
14
|
import { createAgentSession, DefaultResourceLoader, getAgentDir, InteractiveMode, runPrintMode, SessionManager, SettingsManager, } from '@mariozechner/pi-coding-agent';
|
|
15
|
-
import { parseArgs
|
|
15
|
+
import { parseArgs } from './args.js';
|
|
16
16
|
import { getPackageJson } from './utils/package.js';
|
|
17
|
+
/**
|
|
18
|
+
* Read all data from stdin if available.
|
|
19
|
+
* Returns null if stdin is not piped/redirected.
|
|
20
|
+
*/
|
|
21
|
+
async function readStdin() {
|
|
22
|
+
if (process.stdin.isTTY) {
|
|
23
|
+
// stdin is a terminal (not piped)
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
let data = '';
|
|
28
|
+
process.stdin.setEncoding('utf-8');
|
|
29
|
+
process.stdin.on('data', (chunk) => {
|
|
30
|
+
data += chunk;
|
|
31
|
+
});
|
|
32
|
+
process.stdin.on('end', () => {
|
|
33
|
+
resolve(data.trim() || null);
|
|
34
|
+
});
|
|
35
|
+
process.stdin.on('error', (err) => {
|
|
36
|
+
reject(err);
|
|
37
|
+
});
|
|
38
|
+
// Resume stdin to start reading
|
|
39
|
+
process.stdin.resume();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
17
42
|
// Register Bedrock provider so AWS users can use it without extra setup
|
|
18
43
|
setBedrockProviderModule(bedrockProviderModule);
|
|
19
44
|
const __filename = fileURLToPath(import.meta.url);
|
|
20
45
|
const __dirname = dirname(__filename);
|
|
21
46
|
async function main(argv) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
console.log(getPackageJson().version);
|
|
25
|
-
process.exit(0);
|
|
26
|
-
}
|
|
27
|
-
if (args.help) {
|
|
28
|
-
printHelp(getPackageJson().version);
|
|
29
|
-
process.exit(0);
|
|
30
|
-
}
|
|
47
|
+
const pkg = getPackageJson();
|
|
48
|
+
const { args } = parseArgs(argv, pkg.version, pkg.name);
|
|
31
49
|
const cwd = args.cwd ? resolve(args.cwd) : process.cwd();
|
|
32
50
|
// -------------------------------------------------------------------------
|
|
33
51
|
// Session manager
|
|
@@ -88,17 +106,25 @@ async function main(argv) {
|
|
|
88
106
|
// -------------------------------------------------------------------------
|
|
89
107
|
// Run mode
|
|
90
108
|
// -------------------------------------------------------------------------
|
|
109
|
+
// Read from stdin if -p flag is set but no prompt provided
|
|
110
|
+
let initialMessage = args.messages[0];
|
|
111
|
+
if (args.print && !initialMessage) {
|
|
112
|
+
const stdinContent = await readStdin();
|
|
113
|
+
if (stdinContent) {
|
|
114
|
+
initialMessage = stdinContent;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
91
117
|
if (args.print) {
|
|
92
118
|
await runPrintMode(session, {
|
|
93
119
|
mode: 'text',
|
|
94
|
-
initialMessage
|
|
120
|
+
initialMessage,
|
|
95
121
|
messages: args.messages.slice(1),
|
|
96
122
|
});
|
|
97
123
|
process.exit(0);
|
|
98
124
|
}
|
|
99
125
|
else {
|
|
100
126
|
const mode = new InteractiveMode(session, {
|
|
101
|
-
initialMessage
|
|
127
|
+
initialMessage,
|
|
102
128
|
initialMessages: args.messages.slice(1),
|
|
103
129
|
});
|
|
104
130
|
await mode.run();
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|