Merge pull request #120 from vinaypokharkar/feature/qoder-support

feat: add Qoder harness support
This commit is contained in:
Paul Bakaus
2026-04-28 17:55:52 -07:00
committed by GitHub
62 changed files with 15426 additions and 22 deletions
+1
View File
@@ -13,6 +13,7 @@ export const transformGitHub = createTransformer(PROVIDERS.github);
export const transformKiro = createTransformer(PROVIDERS.kiro);
export const transformOpenCode = createTransformer(PROVIDERS.opencode);
export const transformPi = createTransformer(PROVIDERS.pi);
export const transformQoder = createTransformer(PROVIDERS.qoder);
export const transformRovoDev = createTransformer(PROVIDERS['rovo-dev']);
export { createTransformer, PROVIDERS };
+6
View File
@@ -69,6 +69,12 @@ export const PROVIDERS = {
displayName: 'Pi',
frontmatterFields: ['license', 'compatibility', 'metadata', 'allowed-tools'],
},
qoder: {
provider: 'qoder',
configDir: '.qoder',
displayName: 'Qoder',
frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata', 'allowed-tools'],
},
'trae-cn': {
provider: 'trae-cn',
configDir: '.trae-cn',
+8 -2
View File
@@ -45,7 +45,7 @@ export function restorePerProjectArtifacts(rootDir, stashed) {
* Returns { frontmatter: object, body: string }
*/
export function parseFrontmatter(content) {
const frontmatterRegex = /^---\n([\s\S]*?)\n---\n([\s\S]*)$/;
const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n([\s\S]*)$/;
const match = content.match(frontmatterRegex);
if (!match) {
@@ -56,7 +56,7 @@ export function parseFrontmatter(content) {
const frontmatter = {};
// Simple YAML parser (handles basic key-value and arrays)
const lines = frontmatterText.split('\n');
const lines = frontmatterText.split(/\r?\n/);
let currentKey = null;
let currentArray = null;
@@ -505,6 +505,12 @@ export const PROVIDER_PLACEHOLDERS = {
ask_instruction: 'ask the user directly to clarify what you cannot infer.',
command_prefix: '/'
},
'qoder': {
model: 'the model',
config_file: 'AGENTS.md',
ask_instruction: 'ask the user directly to clarify what you cannot infer.',
command_prefix: '/'
},
'trae': {
model: 'the model',
config_file: 'RULES.md',