bytarch-cli 0.1.2 → 0.1.4
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/.genie-cli/config.json +2 -2
- package/.genie-cli/plan.json +3 -4
- package/bin/bytarch-cli.js +15 -0
- package/dist/commands/chat.d.ts +4 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +11 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/provider/bytarch.d.ts.map +1 -1
- package/dist/provider/bytarch.js +9 -0
- package/dist/provider/bytarch.js.map +1 -1
- package/package.json +2 -1
- package/scripts/test-demo.js +23 -0
- package/src/commands/chat.ts +7 -0
- package/src/index.ts +22 -2
- package/src/provider/bytarch.ts +9 -0
package/.genie-cli/config.json
CHANGED
package/.genie-cli/plan.json
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
"id": "default",
|
|
3
3
|
"title": "Project Plan",
|
|
4
4
|
"description": "Generated project plan",
|
|
5
|
-
"status": "pending",
|
|
6
5
|
"items": [],
|
|
7
6
|
"rationale": "",
|
|
8
|
-
"createdAt": "",
|
|
9
|
-
"updatedAt": ""
|
|
10
|
-
}
|
|
7
|
+
"createdAt": "2026-01-27T13:26:00.170Z",
|
|
8
|
+
"updatedAt": "2026-01-27T13:26:00.171Z"
|
|
9
|
+
}
|
package/bin/bytarch-cli.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('../dist/index.js');
|
|
4
|
+
// If invoked with no subcommands, or with explicit 'chat', enter chat mode by default
|
|
5
|
+
try {
|
|
6
|
+
const argv = process.argv.slice(2);
|
|
7
|
+
const disableAutoChat = process.env.BYTARCH_DISABLE_CHAT_ON_LAUNCH === '1';
|
|
8
|
+
const shouldAutoChat = !disableAutoChat;
|
|
9
|
+
const firstArg = argv[0];
|
|
10
|
+
if ((argv.length === 0 || firstArg === 'chat') && shouldAutoChat) {
|
|
11
|
+
const chat = require('../dist/chat');
|
|
12
|
+
chat.runChat().catch((e) => {
|
|
13
|
+
console.error('Chat mode failed:', e);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
} catch (e) {
|
|
17
|
+
// ignore
|
|
18
|
+
}
|
|
4
19
|
|
|
5
20
|
// If invoked with no subcommands, enter chat mode by default
|
|
6
21
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;WACT,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatCommand = void 0;
|
|
4
|
+
const chat_1 = require("../chat");
|
|
5
|
+
class ChatCommand {
|
|
6
|
+
static async execute() {
|
|
7
|
+
await (0, chat_1.runChat)();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ChatCommand = ChatCommand;
|
|
11
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":";;;AAAA,kCAAiC;AAEjC,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO;QAClB,MAAM,IAAA,cAAO,GAAE,CAAC;IAClB,CAAC;CACF;AAJD,kCAIC"}
|
package/dist/index.js
CHANGED
|
@@ -7,17 +7,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
const commander_1 = require("commander");
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const init_1 = require("./commands/init");
|
|
10
|
+
const chat_1 = require("./commands/chat");
|
|
10
11
|
const plan_1 = require("./commands/plan");
|
|
11
12
|
const edit_1 = require("./commands/edit");
|
|
12
13
|
const review_1 = require("./commands/review");
|
|
13
14
|
const apply_1 = require("./commands/apply");
|
|
14
15
|
const status_1 = require("./commands/status");
|
|
15
16
|
const config_1 = require("./commands/config");
|
|
17
|
+
let __version = '0.0.0';
|
|
18
|
+
try {
|
|
19
|
+
const pkg = require('../package.json');
|
|
20
|
+
if (pkg && typeof pkg.version === 'string') {
|
|
21
|
+
__version = pkg.version;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// ignore if cannot read package.json at runtime
|
|
26
|
+
}
|
|
16
27
|
const program = new commander_1.Command();
|
|
17
28
|
program
|
|
18
29
|
.name('bytarch-cli')
|
|
19
30
|
.description('AI-powered CLI for project planning and code editing using BYTARCH')
|
|
20
|
-
.version(
|
|
31
|
+
.version(__version);
|
|
21
32
|
program
|
|
22
33
|
.command('init')
|
|
23
34
|
.description('Initialize a .genie-cli workspace')
|
|
@@ -103,6 +114,12 @@ program
|
|
|
103
114
|
process.exit(1);
|
|
104
115
|
}
|
|
105
116
|
});
|
|
117
|
+
program
|
|
118
|
+
.command('chat')
|
|
119
|
+
.description('Enter chat mode with AI assistant')
|
|
120
|
+
.action(async () => {
|
|
121
|
+
await chat_1.ChatCommand.execute();
|
|
122
|
+
});
|
|
106
123
|
program
|
|
107
124
|
.command('config')
|
|
108
125
|
.description('Manage configuration')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AAEpC,kDAA0B;AAE1B,0CAA8C;AAC9C,0CAA8C;AAC9C,0CAA8C;AAC9C,8CAAkD;AAClD,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytarch.d.ts","sourceRoot":"","sources":["../../src/provider/bytarch.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMrD,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"bytarch.d.ts","sourceRoot":"","sources":["../../src/provider/bytarch.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMrD,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDpD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAKpE"}
|
package/dist/provider/bytarch.js
CHANGED
|
@@ -11,6 +11,15 @@ class BytarchProvider {
|
|
|
11
11
|
this.apiKey = apiKey;
|
|
12
12
|
}
|
|
13
13
|
async chat(messages) {
|
|
14
|
+
if (process.env.BYTARCH_TEST_MODE === '1') {
|
|
15
|
+
const patchObj = {
|
|
16
|
+
path: 'README.md',
|
|
17
|
+
description: 'Test patch in test mode',
|
|
18
|
+
rationale: 'Test patch for chat flow',
|
|
19
|
+
patch: '--- a/README.md\n+++ b/README.md\n@@ -0,0 +1,1 @@\n+Test patch'
|
|
20
|
+
};
|
|
21
|
+
return JSON.stringify(patchObj);
|
|
22
|
+
}
|
|
14
23
|
if (!this.apiKey) {
|
|
15
24
|
throw new Error('BYTARCH API key is required. Set BYTARCH_API_KEY environment variable or configure in .genie-cli/config.json');
|
|
16
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytarch.js","sourceRoot":"","sources":["../../src/provider/bytarch.ts"],"names":[],"mappings":";;;AAmBA,MAAa,eAAe;IAClB,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,MAAM,CAAS;IAEvB,YAAY,QAAgB,EAAE,KAAa,EAAE,MAAc;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAuB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACzC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ;oBACR,MAAM,EAAE,KAAK;iBACd,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;YAExD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,MAAc;QAC1D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"bytarch.js","sourceRoot":"","sources":["../../src/provider/bytarch.ts"],"names":[],"mappings":";;;AAmBA,MAAa,eAAe;IAClB,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,MAAM,CAAS;IAEvB,YAAY,QAAgB,EAAE,KAAa,EAAE,MAAc;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAuB;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,0BAA0B;gBACrC,KAAK,EAAE,gEAAgE;aACxE,CAAC;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACzC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ;oBACR,MAAM,EAAE,KAAK;iBACd,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;YAExD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,MAAc;QAC1D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAhED,0CAgEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bytarch-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "AI-powered CLI for project planning and code editing using BYTARCH OpenAI-compatible API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"start": "node bin/bytarch-cli.js",
|
|
12
12
|
"dev": "ts-node src/index.ts",
|
|
13
13
|
"test": "jest",
|
|
14
|
+
"test-demo": "node scripts/test-demo.js",
|
|
14
15
|
"lint": "eslint src/**/*.ts",
|
|
15
16
|
"format": "prettier --write src/**/*.ts"
|
|
16
17
|
},
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Simple end-to-end test demo for BYTARCH CLI in test mode.
|
|
2
|
+
// It auto-initializes, runs a plan in test mode, creates a test edit, and then exits.
|
|
3
|
+
const { spawnSync } = require('child_process');
|
|
4
|
+
|
|
5
|
+
function run(cmd, args, env) {
|
|
6
|
+
const result = spawnSync(cmd, args, { stdio: 'inherit', env: Object.assign({}, process.env, env) });
|
|
7
|
+
if (result.status !== 0) {
|
|
8
|
+
throw new Error(`Command failed: ${cmd} ${args.join(' ')}`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const envBase = { BYTARCH_TEST_MODE: '1', BYTARCH_API_KEY: 'dummy', BYTARCH_AUTO_INIT_YES: '1' };
|
|
13
|
+
|
|
14
|
+
console.log('--- Init (auto) ---');
|
|
15
|
+
run(process.execPath, ['bin/bytarch-cli.js', 'init'], envBase);
|
|
16
|
+
|
|
17
|
+
console.log('--- Plan (test mode) ---');
|
|
18
|
+
run(process.execPath, ['bin/bytarch-cli.js', 'plan', 'Test project'], envBase);
|
|
19
|
+
|
|
20
|
+
console.log('--- Create test edit (test mode) ---');
|
|
21
|
+
run(process.execPath, ['bin/bytarch-cli.js', 'edit', 'README.md', 'Add test content'], envBase);
|
|
22
|
+
|
|
23
|
+
console.log('Test demo completed.');
|
package/src/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import * as path from 'path';
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
|
|
7
7
|
import { InitCommand } from './commands/init';
|
|
8
|
+
import { ChatCommand } from './commands/chat';
|
|
8
9
|
import { PlanCommand } from './commands/plan';
|
|
9
10
|
import { EditCommand } from './commands/edit';
|
|
10
11
|
import { ReviewCommand } from './commands/review';
|
|
@@ -12,12 +13,24 @@ import { ApplyCommand } from './commands/apply';
|
|
|
12
13
|
import { StatusCommand } from './commands/status';
|
|
13
14
|
import { ConfigCommand } from './commands/config';
|
|
14
15
|
|
|
16
|
+
// Dynamically load version from root package.json to keep version in sync
|
|
17
|
+
declare var require: any;
|
|
18
|
+
let __version: string = '0.0.0';
|
|
19
|
+
try {
|
|
20
|
+
const pkg = require('../package.json');
|
|
21
|
+
if (pkg && typeof pkg.version === 'string') {
|
|
22
|
+
__version = pkg.version;
|
|
23
|
+
}
|
|
24
|
+
} catch {
|
|
25
|
+
// ignore if cannot read package.json at runtime
|
|
26
|
+
}
|
|
27
|
+
|
|
15
28
|
const program = new Command();
|
|
16
29
|
|
|
17
30
|
program
|
|
18
31
|
.name('bytarch-cli')
|
|
19
32
|
.description('AI-powered CLI for project planning and code editing using BYTARCH')
|
|
20
|
-
.version(
|
|
33
|
+
.version(__version);
|
|
21
34
|
|
|
22
35
|
program
|
|
23
36
|
.command('init')
|
|
@@ -104,6 +117,13 @@ program
|
|
|
104
117
|
}
|
|
105
118
|
});
|
|
106
119
|
|
|
120
|
+
program
|
|
121
|
+
.command('chat')
|
|
122
|
+
.description('Enter chat mode with AI assistant')
|
|
123
|
+
.action(async () => {
|
|
124
|
+
await ChatCommand.execute();
|
|
125
|
+
});
|
|
126
|
+
|
|
107
127
|
program
|
|
108
128
|
.command('config')
|
|
109
129
|
.description('Manage configuration')
|
|
@@ -120,4 +140,4 @@ program
|
|
|
120
140
|
}
|
|
121
141
|
});
|
|
122
142
|
|
|
123
|
-
program.parse();
|
|
143
|
+
program.parse();
|
package/src/provider/bytarch.ts
CHANGED
|
@@ -29,6 +29,15 @@ export class BytarchProvider {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
async chat(messages: ChatMessage[]): Promise<string> {
|
|
32
|
+
if (process.env.BYTARCH_TEST_MODE === '1') {
|
|
33
|
+
const patchObj = {
|
|
34
|
+
path: 'README.md',
|
|
35
|
+
description: 'Test patch in test mode',
|
|
36
|
+
rationale: 'Test patch for chat flow',
|
|
37
|
+
patch: '--- a/README.md\n+++ b/README.md\n@@ -0,0 +1,1 @@\n+Test patch'
|
|
38
|
+
};
|
|
39
|
+
return JSON.stringify(patchObj);
|
|
40
|
+
}
|
|
32
41
|
if (!this.apiKey) {
|
|
33
42
|
throw new Error('BYTARCH API key is required. Set BYTARCH_API_KEY environment variable or configure in .genie-cli/config.json');
|
|
34
43
|
}
|