- Migrate src/ → plugin/ (plugin/core/, plugin/web/, plugin/commands/)
and src/mcp/ → services/ per OpenClaw plugin dev spec
- Add Gemini CLI backend (plugin/core/gemini/sdk-adapter.ts) with GEMINI.md
system-prompt injection
- Inject bootstrap as stateless system prompt on every turn instead of
first turn only: Claude via --system-prompt, Gemini via workspace/GEMINI.md;
eliminates isFirstTurn branch, keeps skills in sync with OpenClaw snapshots
- Fix session-map-store defensive parsing (sessions ?? []) to handle bare {}
reset files without crashing on .find()
- Add docs/TEST_FLOW.md with E2E test scenarios and expected outcomes
- Add docs/claude/BRIDGE_MODEL_FINDINGS.md with contractor-probe results
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
16 lines
491 B
TypeScript
16 lines
491 B
TypeScript
import path from "node:path";
|
|
import fs from "node:fs";
|
|
|
|
export function getContractorStateDir(workspace: string): string {
|
|
return path.join(workspace, ".openclaw", "contractor-agent");
|
|
}
|
|
|
|
export function getSessionMapPath(workspace: string): string {
|
|
return path.join(getContractorStateDir(workspace), "session-map.json");
|
|
}
|
|
|
|
export function ensureContractorStateDir(workspace: string): void {
|
|
const dir = getContractorStateDir(workspace);
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
}
|