compact-agent 1.1.0
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 +394 -0
- package/bin/anycode.js +2 -0
- package/bin/crowcoder.js +19 -0
- package/bin/ecc-hooks.cjs +138 -0
- package/dist/agents.d.ts +17 -0
- package/dist/agents.js +1603 -0
- package/dist/agents.js.map +1 -0
- package/dist/api.d.ts +16 -0
- package/dist/api.js +115 -0
- package/dist/api.js.map +1 -0
- package/dist/autonomous-loops.d.ts +108 -0
- package/dist/autonomous-loops.js +526 -0
- package/dist/autonomous-loops.js.map +1 -0
- package/dist/codemaps.d.ts +53 -0
- package/dist/codemaps.js +325 -0
- package/dist/codemaps.js.map +1 -0
- package/dist/compaction.d.ts +30 -0
- package/dist/compaction.js +125 -0
- package/dist/compaction.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +79 -0
- package/dist/config.js.map +1 -0
- package/dist/content-engine.d.ts +97 -0
- package/dist/content-engine.js +721 -0
- package/dist/content-engine.js.map +1 -0
- package/dist/cost-tracker.d.ts +49 -0
- package/dist/cost-tracker.js +150 -0
- package/dist/cost-tracker.js.map +1 -0
- package/dist/counter-button.d.ts +35 -0
- package/dist/counter-button.js +48 -0
- package/dist/counter-button.js.map +1 -0
- package/dist/counter.d.ts +21 -0
- package/dist/counter.js +31 -0
- package/dist/counter.js.map +1 -0
- package/dist/coverage.d.ts +23 -0
- package/dist/coverage.js +215 -0
- package/dist/coverage.js.map +1 -0
- package/dist/docs-sync.d.ts +23 -0
- package/dist/docs-sync.js +266 -0
- package/dist/docs-sync.js.map +1 -0
- package/dist/ecc.d.ts +41 -0
- package/dist/ecc.js +644 -0
- package/dist/ecc.js.map +1 -0
- package/dist/evaluation.d.ts +24 -0
- package/dist/evaluation.js +412 -0
- package/dist/evaluation.js.map +1 -0
- package/dist/export.d.ts +22 -0
- package/dist/export.js +109 -0
- package/dist/export.js.map +1 -0
- package/dist/git-workflow.d.ts +22 -0
- package/dist/git-workflow.js +197 -0
- package/dist/git-workflow.js.map +1 -0
- package/dist/hook-controls.d.ts +34 -0
- package/dist/hook-controls.js +90 -0
- package/dist/hook-controls.js.map +1 -0
- package/dist/hooks.d.ts +30 -0
- package/dist/hooks.js +130 -0
- package/dist/hooks.js.map +1 -0
- package/dist/html-parser.d.ts +18 -0
- package/dist/html-parser.js +101 -0
- package/dist/html-parser.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +1230 -0
- package/dist/index.js.map +1 -0
- package/dist/learning.d.ts +35 -0
- package/dist/learning.js +238 -0
- package/dist/learning.js.map +1 -0
- package/dist/login.d.ts +37 -0
- package/dist/login.js +191 -0
- package/dist/login.js.map +1 -0
- package/dist/memory.d.ts +39 -0
- package/dist/memory.js +183 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-router.d.ts +23 -0
- package/dist/model-router.js +145 -0
- package/dist/model-router.js.map +1 -0
- package/dist/modes.d.ts +17 -0
- package/dist/modes.js +217 -0
- package/dist/modes.js.map +1 -0
- package/dist/orchestration.d.ts +37 -0
- package/dist/orchestration.js +139 -0
- package/dist/orchestration.js.map +1 -0
- package/dist/package-detect.d.ts +36 -0
- package/dist/package-detect.js +529 -0
- package/dist/package-detect.js.map +1 -0
- package/dist/permissions.d.ts +25 -0
- package/dist/permissions.js +50 -0
- package/dist/permissions.js.map +1 -0
- package/dist/pm2-manager.d.ts +40 -0
- package/dist/pm2-manager.js +127 -0
- package/dist/pm2-manager.js.map +1 -0
- package/dist/query.d.ts +15 -0
- package/dist/query.js +278 -0
- package/dist/query.js.map +1 -0
- package/dist/refactor.d.ts +22 -0
- package/dist/refactor.js +226 -0
- package/dist/refactor.js.map +1 -0
- package/dist/retry.d.ts +20 -0
- package/dist/retry.js +88 -0
- package/dist/retry.js.map +1 -0
- package/dist/rules.d.ts +34 -0
- package/dist/rules.js +942 -0
- package/dist/rules.js.map +1 -0
- package/dist/schema.d.ts +23 -0
- package/dist/schema.js +12 -0
- package/dist/schema.js.map +1 -0
- package/dist/search-first.d.ts +17 -0
- package/dist/search-first.js +301 -0
- package/dist/search-first.js.map +1 -0
- package/dist/security.d.ts +10 -0
- package/dist/security.js +145 -0
- package/dist/security.js.map +1 -0
- package/dist/sessions.d.ts +21 -0
- package/dist/sessions.js +112 -0
- package/dist/sessions.js.map +1 -0
- package/dist/skill-create.d.ts +38 -0
- package/dist/skill-create.js +389 -0
- package/dist/skill-create.js.map +1 -0
- package/dist/skills.d.ts +34 -0
- package/dist/skills.js +161 -0
- package/dist/skills.js.map +1 -0
- package/dist/strategic-compaction.d.ts +24 -0
- package/dist/strategic-compaction.js +144 -0
- package/dist/strategic-compaction.js.map +1 -0
- package/dist/system-prompt.d.ts +3 -0
- package/dist/system-prompt.js +101 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/theme.d.ts +60 -0
- package/dist/theme.js +220 -0
- package/dist/theme.js.map +1 -0
- package/dist/tools/bash.d.ts +2 -0
- package/dist/tools/bash.js +49 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +2 -0
- package/dist/tools/edit.js +76 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +2 -0
- package/dist/tools/glob.js +54 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +2 -0
- package/dist/tools/grep.js +64 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +27 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-dir.d.ts +2 -0
- package/dist/tools/list-dir.js +51 -0
- package/dist/tools/list-dir.js.map +1 -0
- package/dist/tools/read.d.ts +2 -0
- package/dist/tools/read.js +56 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/types.d.ts +45 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +2 -0
- package/dist/tools/web-fetch.js +41 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +27 -0
- package/dist/tools/web-search.js +139 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/write.d.ts +2 -0
- package/dist/tools/write.js +36 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.js +57 -0
- package/dist/types.js.map +1 -0
- package/dist/users.d.ts +51 -0
- package/dist/users.js +193 -0
- package/dist/users.js.map +1 -0
- package/dist/verification.d.ts +73 -0
- package/dist/verification.js +269 -0
- package/dist/verification.js.map +1 -0
- package/dist/walkthrough.d.ts +10 -0
- package/dist/walkthrough.js +121 -0
- package/dist/walkthrough.js.map +1 -0
- package/package.json +58 -0
- package/resources/ecc/agents/architect.json +16 -0
- package/resources/ecc/agents/architect.md +212 -0
- package/resources/ecc/agents/build-error-resolver.json +17 -0
- package/resources/ecc/agents/build-error-resolver.md +116 -0
- package/resources/ecc/agents/chief-of-staff.json +17 -0
- package/resources/ecc/agents/chief-of-staff.md +153 -0
- package/resources/ecc/agents/code-reviewer.json +16 -0
- package/resources/ecc/agents/code-reviewer.md +238 -0
- package/resources/ecc/agents/database-reviewer.json +16 -0
- package/resources/ecc/agents/database-reviewer.md +92 -0
- package/resources/ecc/agents/doc-updater.json +16 -0
- package/resources/ecc/agents/doc-updater.md +108 -0
- package/resources/ecc/agents/e2e-runner.json +17 -0
- package/resources/ecc/agents/e2e-runner.md +109 -0
- package/resources/ecc/agents/go-build-resolver.json +17 -0
- package/resources/ecc/agents/go-build-resolver.md +96 -0
- package/resources/ecc/agents/go-reviewer.json +16 -0
- package/resources/ecc/agents/go-reviewer.md +77 -0
- package/resources/ecc/agents/harness-optimizer.json +15 -0
- package/resources/ecc/agents/harness-optimizer.md +34 -0
- package/resources/ecc/agents/loop-operator.json +16 -0
- package/resources/ecc/agents/loop-operator.md +36 -0
- package/resources/ecc/agents/planner.json +15 -0
- package/resources/ecc/agents/planner.md +212 -0
- package/resources/ecc/agents/python-reviewer.json +16 -0
- package/resources/ecc/agents/python-reviewer.md +99 -0
- package/resources/ecc/agents/refactor-cleaner.json +17 -0
- package/resources/ecc/agents/refactor-cleaner.md +87 -0
- package/resources/ecc/agents/security-reviewer.json +16 -0
- package/resources/ecc/agents/security-reviewer.md +109 -0
- package/resources/ecc/agents/tdd-guide.json +17 -0
- package/resources/ecc/agents/tdd-guide.md +93 -0
- package/resources/ecc/commands/add-language-rules.md +39 -0
- package/resources/ecc/commands/database-migration.md +36 -0
- package/resources/ecc/commands/feature-development.md +38 -0
- package/resources/ecc/prompts/build-fix.prompt.md +47 -0
- package/resources/ecc/prompts/code-review.prompt.md +56 -0
- package/resources/ecc/prompts/plan.prompt.md +52 -0
- package/resources/ecc/prompts/refactor.prompt.md +50 -0
- package/resources/ecc/prompts/security-review.prompt.md +70 -0
- package/resources/ecc/prompts/tdd.prompt.md +47 -0
- package/resources/ecc/rules/common-agents.md +53 -0
- package/resources/ecc/rules/common-coding-style.md +52 -0
- package/resources/ecc/rules/common-development-workflow.md +33 -0
- package/resources/ecc/rules/common-git-workflow.md +28 -0
- package/resources/ecc/rules/common-hooks.md +34 -0
- package/resources/ecc/rules/common-patterns.md +35 -0
- package/resources/ecc/rules/common-performance.md +59 -0
- package/resources/ecc/rules/common-security.md +33 -0
- package/resources/ecc/rules/common-testing.md +33 -0
- package/resources/ecc/rules/golang-coding-style.md +31 -0
- package/resources/ecc/rules/golang-hooks.md +16 -0
- package/resources/ecc/rules/golang-patterns.md +44 -0
- package/resources/ecc/rules/golang-security.md +33 -0
- package/resources/ecc/rules/golang-testing.md +30 -0
- package/resources/ecc/rules/kotlin-coding-style.md +39 -0
- package/resources/ecc/rules/kotlin-hooks.md +16 -0
- package/resources/ecc/rules/kotlin-patterns.md +50 -0
- package/resources/ecc/rules/kotlin-security.md +58 -0
- package/resources/ecc/rules/kotlin-testing.md +38 -0
- package/resources/ecc/rules/php-coding-style.md +25 -0
- package/resources/ecc/rules/php-hooks.md +21 -0
- package/resources/ecc/rules/php-patterns.md +23 -0
- package/resources/ecc/rules/php-security.md +24 -0
- package/resources/ecc/rules/php-testing.md +26 -0
- package/resources/ecc/rules/python-coding-style.md +42 -0
- package/resources/ecc/rules/python-hooks.md +19 -0
- package/resources/ecc/rules/python-patterns.md +39 -0
- package/resources/ecc/rules/python-security.md +30 -0
- package/resources/ecc/rules/python-testing.md +38 -0
- package/resources/ecc/rules/swift-coding-style.md +47 -0
- package/resources/ecc/rules/swift-hooks.md +20 -0
- package/resources/ecc/rules/swift-patterns.md +66 -0
- package/resources/ecc/rules/swift-security.md +33 -0
- package/resources/ecc/rules/swift-testing.md +45 -0
- package/resources/ecc/rules/typescript-coding-style.md +63 -0
- package/resources/ecc/rules/typescript-hooks.md +20 -0
- package/resources/ecc/rules/typescript-patterns.md +50 -0
- package/resources/ecc/rules/typescript-security.md +26 -0
- package/resources/ecc/rules/typescript-testing.md +16 -0
- package/resources/ecc/skills/agent-introspection-debugging/SKILL.md +152 -0
- package/resources/ecc/skills/agent-introspection-debugging/agents/openai.yaml +7 -0
- package/resources/ecc/skills/agent-sort/SKILL.md +214 -0
- package/resources/ecc/skills/agent-sort/agents/openai.yaml +7 -0
- package/resources/ecc/skills/api-design/SKILL.md +522 -0
- package/resources/ecc/skills/api-design/agents/openai.yaml +7 -0
- package/resources/ecc/skills/article-writing/SKILL.md +78 -0
- package/resources/ecc/skills/article-writing/agents/openai.yaml +7 -0
- package/resources/ecc/skills/backend-patterns/SKILL.md +597 -0
- package/resources/ecc/skills/backend-patterns/agents/openai.yaml +7 -0
- package/resources/ecc/skills/brand-voice/SKILL.md +96 -0
- package/resources/ecc/skills/brand-voice/agents/openai.yaml +7 -0
- package/resources/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/resources/ecc/skills/bun-runtime/SKILL.md +83 -0
- package/resources/ecc/skills/bun-runtime/agents/openai.yaml +7 -0
- package/resources/ecc/skills/coding-standards/SKILL.md +548 -0
- package/resources/ecc/skills/coding-standards/agents/openai.yaml +7 -0
- package/resources/ecc/skills/content-engine/SKILL.md +130 -0
- package/resources/ecc/skills/content-engine/agents/openai.yaml +7 -0
- package/resources/ecc/skills/crosspost/SKILL.md +110 -0
- package/resources/ecc/skills/crosspost/agents/openai.yaml +7 -0
- package/resources/ecc/skills/deep-research/SKILL.md +154 -0
- package/resources/ecc/skills/deep-research/agents/openai.yaml +7 -0
- package/resources/ecc/skills/dmux-workflows/SKILL.md +143 -0
- package/resources/ecc/skills/dmux-workflows/agents/openai.yaml +7 -0
- package/resources/ecc/skills/documentation-lookup/SKILL.md +89 -0
- package/resources/ecc/skills/documentation-lookup/agents/openai.yaml +7 -0
- package/resources/ecc/skills/e2e-testing/SKILL.md +325 -0
- package/resources/ecc/skills/e2e-testing/agents/openai.yaml +7 -0
- package/resources/ecc/skills/eval-harness/SKILL.md +235 -0
- package/resources/ecc/skills/eval-harness/agents/openai.yaml +7 -0
- package/resources/ecc/skills/everything-claude-code/SKILL.md +442 -0
- package/resources/ecc/skills/everything-claude-code/agents/openai.yaml +7 -0
- package/resources/ecc/skills/exa-search/SKILL.md +169 -0
- package/resources/ecc/skills/exa-search/agents/openai.yaml +7 -0
- package/resources/ecc/skills/fal-ai-media/SKILL.md +276 -0
- package/resources/ecc/skills/fal-ai-media/agents/openai.yaml +7 -0
- package/resources/ecc/skills/frontend-patterns/SKILL.md +647 -0
- package/resources/ecc/skills/frontend-patterns/agents/openai.yaml +7 -0
- package/resources/ecc/skills/frontend-slides/SKILL.md +183 -0
- package/resources/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/resources/ecc/skills/frontend-slides/agents/openai.yaml +7 -0
- package/resources/ecc/skills/investor-materials/SKILL.md +95 -0
- package/resources/ecc/skills/investor-materials/agents/openai.yaml +7 -0
- package/resources/ecc/skills/investor-outreach/SKILL.md +90 -0
- package/resources/ecc/skills/investor-outreach/agents/openai.yaml +7 -0
- package/resources/ecc/skills/market-research/SKILL.md +74 -0
- package/resources/ecc/skills/market-research/agents/openai.yaml +7 -0
- package/resources/ecc/skills/mcp-server-patterns/SKILL.md +66 -0
- package/resources/ecc/skills/mcp-server-patterns/agents/openai.yaml +7 -0
- package/resources/ecc/skills/mle-workflow/SKILL.md +346 -0
- package/resources/ecc/skills/mle-workflow/agents/openai.yaml +7 -0
- package/resources/ecc/skills/nextjs-turbopack/SKILL.md +43 -0
- package/resources/ecc/skills/nextjs-turbopack/agents/openai.yaml +7 -0
- package/resources/ecc/skills/product-capability/SKILL.md +140 -0
- package/resources/ecc/skills/product-capability/agents/openai.yaml +7 -0
- package/resources/ecc/skills/security-review/SKILL.md +494 -0
- package/resources/ecc/skills/security-review/agents/openai.yaml +7 -0
- package/resources/ecc/skills/strategic-compact/SKILL.md +102 -0
- package/resources/ecc/skills/strategic-compact/agents/openai.yaml +7 -0
- package/resources/ecc/skills/tdd-workflow/SKILL.md +409 -0
- package/resources/ecc/skills/tdd-workflow/agents/openai.yaml +7 -0
- package/resources/ecc/skills/verification-loop/SKILL.md +125 -0
- package/resources/ecc/skills/verification-loop/agents/openai.yaml +7 -0
- package/resources/ecc/skills/video-editing/SKILL.md +307 -0
- package/resources/ecc/skills/video-editing/agents/openai.yaml +7 -0
- package/resources/ecc/skills/x-api/SKILL.md +229 -0
- package/resources/ecc/skills/x-api/agents/openai.yaml +7 -0
package/dist/ecc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type CheckResult = 'pass' | 'warn' | 'fail';
|
|
2
|
+
export interface QualityCheck {
|
|
3
|
+
name: string;
|
|
4
|
+
result: CheckResult;
|
|
5
|
+
message: string;
|
|
6
|
+
score: number;
|
|
7
|
+
}
|
|
8
|
+
export interface AuditReport {
|
|
9
|
+
checks: QualityCheck[];
|
|
10
|
+
totalScore: number;
|
|
11
|
+
maxScore: number;
|
|
12
|
+
grade: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildReviewPrompt(cwd: string, target?: string): string | null;
|
|
15
|
+
export declare function buildTDDPrompt(description: string): string;
|
|
16
|
+
export declare function buildSecurityReviewPrompt(cwd: string): string;
|
|
17
|
+
export declare function buildPlanPrompt(task: string, cwd: string): string;
|
|
18
|
+
export declare function buildE2EPrompt(target: string, cwd: string): string;
|
|
19
|
+
export declare function buildBuildFixPrompt(cwd: string, errorOutput?: string): string;
|
|
20
|
+
export declare function buildEvalPrompt(criteria: string, target?: string): string;
|
|
21
|
+
export declare function buildUpdateDocsPrompt(cwd: string): string;
|
|
22
|
+
export declare function runAudit(cwd: string): AuditReport;
|
|
23
|
+
export declare function printAuditReport(report: AuditReport): void;
|
|
24
|
+
export declare function detectE2EFramework(cwd: string): string;
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluation framework — quality gates, code review, TDD, security review.
|
|
3
|
+
* Also includes verification loops and harness audit scoring.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
import { existsSync, statSync, readFileSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { isGitRepo, gitDiff, gitStatus } from './git-workflow.js';
|
|
10
|
+
// ── Code Review Prompt ────────────────────────────────────
|
|
11
|
+
export function buildReviewPrompt(cwd, target) {
|
|
12
|
+
if (!isGitRepo(cwd))
|
|
13
|
+
return null;
|
|
14
|
+
const diff = target
|
|
15
|
+
? execSafe(`git diff ${target}`, cwd)
|
|
16
|
+
: gitDiff(cwd, false) || gitDiff(cwd, true);
|
|
17
|
+
if (!diff)
|
|
18
|
+
return null;
|
|
19
|
+
return `Perform a thorough code review of the following changes.
|
|
20
|
+
|
|
21
|
+
\`\`\`diff
|
|
22
|
+
${diff.slice(0, 15000)}
|
|
23
|
+
\`\`\`
|
|
24
|
+
|
|
25
|
+
Review for:
|
|
26
|
+
1. **Correctness** — Logic errors, edge cases, off-by-one
|
|
27
|
+
2. **Security** — Injection, XSS, secrets, path traversal, auth issues
|
|
28
|
+
3. **Performance** — N+1 queries, unbounded loops, memory leaks
|
|
29
|
+
4. **Maintainability** — Naming, complexity, dead code, duplication
|
|
30
|
+
5. **Testing** — Are tests adequate? What's missing?
|
|
31
|
+
|
|
32
|
+
For each issue found, specify:
|
|
33
|
+
- File and line number
|
|
34
|
+
- Severity: CRITICAL / HIGH / MEDIUM / LOW / NIT
|
|
35
|
+
- What's wrong and how to fix it
|
|
36
|
+
|
|
37
|
+
End with an overall verdict: APPROVE / REQUEST CHANGES / NEEDS DISCUSSION`;
|
|
38
|
+
}
|
|
39
|
+
// ── TDD Prompt ────────────────────────────────────────────
|
|
40
|
+
export function buildTDDPrompt(description) {
|
|
41
|
+
return `I want to implement: ${description}
|
|
42
|
+
|
|
43
|
+
Follow strict TDD methodology:
|
|
44
|
+
|
|
45
|
+
**Step 1 — RED**: Write a failing test first.
|
|
46
|
+
- Use the project's existing test framework (detect from package.json, pytest.ini, etc.)
|
|
47
|
+
- The test should define the expected behavior clearly
|
|
48
|
+
- Run the test and show it fails
|
|
49
|
+
|
|
50
|
+
**Step 2 — GREEN**: Write the minimal code to make the test pass.
|
|
51
|
+
- Only write enough code to pass the test
|
|
52
|
+
- No extra functionality
|
|
53
|
+
- Run the test and show it passes
|
|
54
|
+
|
|
55
|
+
**Step 3 — REFACTOR**: Clean up if needed.
|
|
56
|
+
- Remove duplication
|
|
57
|
+
- Improve naming
|
|
58
|
+
- Ensure tests still pass
|
|
59
|
+
|
|
60
|
+
Repeat for each behavior. Show test output after each step.`;
|
|
61
|
+
}
|
|
62
|
+
// ── Security Review Prompt ────────────────────────────────
|
|
63
|
+
export function buildSecurityReviewPrompt(cwd) {
|
|
64
|
+
return `Perform a security review of this project at ${cwd}.
|
|
65
|
+
|
|
66
|
+
Check for:
|
|
67
|
+
1. **Injection vulnerabilities** — SQL, command, XSS, template
|
|
68
|
+
2. **Authentication/Authorization** — Missing auth checks, weak sessions
|
|
69
|
+
3. **Secrets management** — Hardcoded credentials, API keys in code
|
|
70
|
+
4. **Input validation** — Missing validation, type coercion issues
|
|
71
|
+
5. **Dependency vulnerabilities** — Check package.json/requirements.txt for known CVEs
|
|
72
|
+
6. **File system** — Path traversal, unsafe file operations
|
|
73
|
+
7. **Network** — HTTPS enforcement, CORS misconfiguration
|
|
74
|
+
8. **Cryptography** — Weak algorithms, improper key management
|
|
75
|
+
|
|
76
|
+
For each finding:
|
|
77
|
+
- Severity: CRITICAL / HIGH / MEDIUM / LOW
|
|
78
|
+
- Location: file:line
|
|
79
|
+
- Description and remediation
|
|
80
|
+
|
|
81
|
+
Start by scanning the project structure, then read key files.`;
|
|
82
|
+
}
|
|
83
|
+
// ── Implementation Plan Prompt ────────────────────────────
|
|
84
|
+
export function buildPlanPrompt(task, cwd) {
|
|
85
|
+
return `Task: ${task}
|
|
86
|
+
|
|
87
|
+
Working directory: ${cwd}
|
|
88
|
+
|
|
89
|
+
Create a detailed implementation plan:
|
|
90
|
+
|
|
91
|
+
**Phase Breakdown**:
|
|
92
|
+
For each phase, include:
|
|
93
|
+
- Phase number and name
|
|
94
|
+
- Dependencies (what phases must complete first)
|
|
95
|
+
- Files to create or modify (with paths)
|
|
96
|
+
- Estimated complexity (1-5, where 5 is most complex)
|
|
97
|
+
- Key implementation details
|
|
98
|
+
|
|
99
|
+
**File Inventory**:
|
|
100
|
+
List each file that will be created or modified with:
|
|
101
|
+
- Full file path (relative to ${cwd})
|
|
102
|
+
- Purpose/reason for change
|
|
103
|
+
- Rough line count estimate if applicable
|
|
104
|
+
|
|
105
|
+
**Edge Cases & Testing**:
|
|
106
|
+
- Identify 3-5 edge cases to handle
|
|
107
|
+
- Suggest test scenarios for each phase
|
|
108
|
+
- Note any integration points with existing code
|
|
109
|
+
|
|
110
|
+
**Implementation Order**:
|
|
111
|
+
Number your phases in dependency order so each can be built on previous ones.
|
|
112
|
+
|
|
113
|
+
Output as a numbered list with clear formatting.`;
|
|
114
|
+
}
|
|
115
|
+
// ── E2E Test Generation Prompt ─────────────────────────────
|
|
116
|
+
export function buildE2EPrompt(target, cwd) {
|
|
117
|
+
const framework = detectE2EFramework(cwd);
|
|
118
|
+
return `Generate end-to-end tests for: ${target}
|
|
119
|
+
|
|
120
|
+
Framework: ${framework}
|
|
121
|
+
Working directory: ${cwd}
|
|
122
|
+
|
|
123
|
+
**Testing Strategy**:
|
|
124
|
+
|
|
125
|
+
1. **Page Object Model Pattern**:
|
|
126
|
+
- Create page objects for main UI components
|
|
127
|
+
- Encapsulate selectors and actions
|
|
128
|
+
- Reuse across test scenarios
|
|
129
|
+
|
|
130
|
+
2. **Test Scenarios**:
|
|
131
|
+
- **Happy Path**: Normal user workflow for the feature
|
|
132
|
+
- **Error States**: Invalid inputs, API failures, network errors
|
|
133
|
+
- **Edge Cases**: Boundary conditions, race conditions, permission checks
|
|
134
|
+
- **State Transitions**: Moving between different feature states
|
|
135
|
+
|
|
136
|
+
3. **Test Structure**:
|
|
137
|
+
- Setup: Browser initialization, test data creation
|
|
138
|
+
- Teardown: Cleanup, screenshot on failure
|
|
139
|
+
- Assertions: Verify UI state, API responses, database changes
|
|
140
|
+
|
|
141
|
+
4. **Coverage Areas**:
|
|
142
|
+
- User interactions (click, type, select, submit)
|
|
143
|
+
- Validation messages and error handling
|
|
144
|
+
- Navigation and routing
|
|
145
|
+
- Asynchronous operations (loading states, waits)
|
|
146
|
+
|
|
147
|
+
Generate complete, runnable test code with proper error handling and waits.`;
|
|
148
|
+
}
|
|
149
|
+
// ── Build Error Fix Prompt ─────────────────────────────────
|
|
150
|
+
export function buildBuildFixPrompt(cwd, errorOutput) {
|
|
151
|
+
const strategy = errorOutput
|
|
152
|
+
? `The following build errors were captured:
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
${errorOutput.slice(0, 5000)}
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
Analyze these errors and fix them one at a time.`
|
|
159
|
+
: `Run the build command in ${cwd} and capture the output.
|
|
160
|
+
If there are errors, analyze them and fix them one at a time.
|
|
161
|
+
After each fix, re-run the build to verify.`;
|
|
162
|
+
return `${strategy}
|
|
163
|
+
|
|
164
|
+
**Error Resolution Process**:
|
|
165
|
+
|
|
166
|
+
For each error found:
|
|
167
|
+
1. **Parse** the error message
|
|
168
|
+
- Identify the root cause (missing dependency, syntax error, type error, etc.)
|
|
169
|
+
- Extract file path and line number
|
|
170
|
+
- Note the error category
|
|
171
|
+
|
|
172
|
+
2. **Fix** the error
|
|
173
|
+
- Make the minimal change to resolve it
|
|
174
|
+
- Don't over-engineer
|
|
175
|
+
|
|
176
|
+
3. **Verify**
|
|
177
|
+
- Run build/test commands
|
|
178
|
+
- Confirm the error is resolved
|
|
179
|
+
|
|
180
|
+
4. **Repeat** until build succeeds
|
|
181
|
+
|
|
182
|
+
**Supported Error Types**:
|
|
183
|
+
- TypeScript compilation errors
|
|
184
|
+
- Rust build errors
|
|
185
|
+
- Go build errors
|
|
186
|
+
- Java compilation errors
|
|
187
|
+
- Python import/syntax errors
|
|
188
|
+
|
|
189
|
+
Be methodical and show your work at each step.`;
|
|
190
|
+
}
|
|
191
|
+
// ── Evaluation Prompt ──────────────────────────────────────
|
|
192
|
+
export function buildEvalPrompt(criteria, target) {
|
|
193
|
+
const targetStr = target ? `Target: ${target}\n` : '';
|
|
194
|
+
return `${targetStr}Evaluate against criterion: ${criteria}
|
|
195
|
+
|
|
196
|
+
**Scoring & Evidence**:
|
|
197
|
+
|
|
198
|
+
For each sub-criterion or aspect:
|
|
199
|
+
1. Score from 1-10 (1=failing, 10=excellent)
|
|
200
|
+
2. Provide specific evidence:
|
|
201
|
+
- Point to code examples, metrics, or test results
|
|
202
|
+
- Include exact file paths and line numbers when relevant
|
|
203
|
+
- Cite measurements (e.g., "Lighthouse score: 95/100")
|
|
204
|
+
3. Explain your reasoning briefly
|
|
205
|
+
|
|
206
|
+
**Output Format**:
|
|
207
|
+
|
|
208
|
+
For each major aspect:
|
|
209
|
+
\`\`\`
|
|
210
|
+
Aspect: [Name]
|
|
211
|
+
Score: [X]/10
|
|
212
|
+
Evidence: [specific findings]
|
|
213
|
+
Recommendation: [actionable improvement]
|
|
214
|
+
\`\`\`
|
|
215
|
+
|
|
216
|
+
**Final Summary**:
|
|
217
|
+
- Overall criterion score (weighted average if multiple aspects)
|
|
218
|
+
- Top 3 strengths
|
|
219
|
+
- Top 3 areas for improvement
|
|
220
|
+
- Specific, actionable next steps
|
|
221
|
+
|
|
222
|
+
Be specific and evidence-based in your evaluation.`;
|
|
223
|
+
}
|
|
224
|
+
// ── Documentation Update Prompt ────────────────────────────
|
|
225
|
+
export function buildUpdateDocsPrompt(cwd) {
|
|
226
|
+
return `Update project documentation at ${cwd}.
|
|
227
|
+
|
|
228
|
+
**Documentation Review**:
|
|
229
|
+
|
|
230
|
+
1. **Find docs**:
|
|
231
|
+
- README.md
|
|
232
|
+
- API documentation (docs/, wiki/, etc.)
|
|
233
|
+
- CHANGELOG.md
|
|
234
|
+
- Code comments and inline docs
|
|
235
|
+
|
|
236
|
+
2. **Compare with code**:
|
|
237
|
+
- Read the current code
|
|
238
|
+
- Check if docs match implementation
|
|
239
|
+
- Identify outdated sections
|
|
240
|
+
|
|
241
|
+
3. **Update**:
|
|
242
|
+
- Fix inaccurate sections
|
|
243
|
+
- Add missing features or APIs
|
|
244
|
+
- Update examples with current code
|
|
245
|
+
- Improve unclear explanations
|
|
246
|
+
|
|
247
|
+
4. **Add**:
|
|
248
|
+
- Document new features not yet documented
|
|
249
|
+
- Add examples for complex features
|
|
250
|
+
- Document configuration options
|
|
251
|
+
- Add troubleshooting sections if missing
|
|
252
|
+
|
|
253
|
+
Be thorough and ensure all public APIs and features are documented.`;
|
|
254
|
+
}
|
|
255
|
+
// ── Harness Audit ─────────────────────────────────────────
|
|
256
|
+
export function runAudit(cwd) {
|
|
257
|
+
const checks = [];
|
|
258
|
+
// 1. Git repo check
|
|
259
|
+
checks.push(isGitRepo(cwd)
|
|
260
|
+
? { name: 'Git Repository', result: 'pass', message: 'Project is version controlled', score: 10 }
|
|
261
|
+
: { name: 'Git Repository', result: 'fail', message: 'Not a git repo — version control recommended', score: 0 });
|
|
262
|
+
// 2. Clean working tree
|
|
263
|
+
if (isGitRepo(cwd)) {
|
|
264
|
+
const status = gitStatus(cwd);
|
|
265
|
+
checks.push(!status
|
|
266
|
+
? { name: 'Clean Working Tree', result: 'pass', message: 'No uncommitted changes', score: 10 }
|
|
267
|
+
: { name: 'Clean Working Tree', result: 'warn', message: `${status.split('\n').length} uncommitted changes`, score: 5 });
|
|
268
|
+
}
|
|
269
|
+
// 3. Package manager lock file
|
|
270
|
+
const hasLockFile = fileExists(cwd, 'package-lock.json') || fileExists(cwd, 'yarn.lock') ||
|
|
271
|
+
fileExists(cwd, 'pnpm-lock.yaml') || fileExists(cwd, 'bun.lock') ||
|
|
272
|
+
fileExists(cwd, 'Cargo.lock') || fileExists(cwd, 'go.sum') ||
|
|
273
|
+
fileExists(cwd, 'poetry.lock') || fileExists(cwd, 'Pipfile.lock');
|
|
274
|
+
checks.push(hasLockFile
|
|
275
|
+
? { name: 'Lock File', result: 'pass', message: 'Dependency lock file present', score: 10 }
|
|
276
|
+
: { name: 'Lock File', result: 'warn', message: 'No lock file — builds may not be reproducible', score: 3 });
|
|
277
|
+
// 4. Tests exist
|
|
278
|
+
const hasTests = dirExists(cwd, 'test') || dirExists(cwd, 'tests') || dirExists(cwd, '__tests__') ||
|
|
279
|
+
dirExists(cwd, 'spec') || fileExists(cwd, 'jest.config.js') || fileExists(cwd, 'pytest.ini') ||
|
|
280
|
+
fileExists(cwd, 'vitest.config.ts');
|
|
281
|
+
checks.push(hasTests
|
|
282
|
+
? { name: 'Test Suite', result: 'pass', message: 'Test directory/config found', score: 15 }
|
|
283
|
+
: { name: 'Test Suite', result: 'fail', message: 'No tests found — testing is essential', score: 0 });
|
|
284
|
+
// 5. .gitignore
|
|
285
|
+
checks.push(fileExists(cwd, '.gitignore')
|
|
286
|
+
? { name: '.gitignore', result: 'pass', message: '.gitignore present', score: 5 }
|
|
287
|
+
: { name: '.gitignore', result: 'warn', message: 'No .gitignore — may commit unwanted files', score: 2 });
|
|
288
|
+
// 6. README
|
|
289
|
+
const hasReadme = fileExists(cwd, 'README.md') || fileExists(cwd, 'README.txt') || fileExists(cwd, 'README');
|
|
290
|
+
checks.push(hasReadme
|
|
291
|
+
? { name: 'README', result: 'pass', message: 'README found', score: 5 }
|
|
292
|
+
: { name: 'README', result: 'warn', message: 'No README — documentation recommended', score: 2 });
|
|
293
|
+
// 7. CI/CD
|
|
294
|
+
const hasCI = dirExists(cwd, '.github/workflows') || fileExists(cwd, '.gitlab-ci.yml') ||
|
|
295
|
+
fileExists(cwd, 'Jenkinsfile') || fileExists(cwd, '.circleci/config.yml');
|
|
296
|
+
checks.push(hasCI
|
|
297
|
+
? { name: 'CI/CD', result: 'pass', message: 'CI/CD configuration found', score: 10 }
|
|
298
|
+
: { name: 'CI/CD', result: 'warn', message: 'No CI/CD — automated testing/deployment recommended', score: 3 });
|
|
299
|
+
// 8. No secrets in repo
|
|
300
|
+
const secretsCheck = checkForSecrets(cwd);
|
|
301
|
+
checks.push(secretsCheck);
|
|
302
|
+
// 9. Linter/formatter config
|
|
303
|
+
const hasLinter = fileExists(cwd, '.eslintrc.json') || fileExists(cwd, '.eslintrc.js') ||
|
|
304
|
+
fileExists(cwd, 'biome.json') || fileExists(cwd, '.prettierrc') ||
|
|
305
|
+
fileExists(cwd, 'rustfmt.toml') || fileExists(cwd, '.golangci.yml') ||
|
|
306
|
+
fileExists(cwd, 'setup.cfg') || fileExists(cwd, 'pyproject.toml');
|
|
307
|
+
checks.push(hasLinter
|
|
308
|
+
? { name: 'Linter/Formatter', result: 'pass', message: 'Code quality tool configured', score: 10 }
|
|
309
|
+
: { name: 'Linter/Formatter', result: 'warn', message: 'No linter/formatter — code consistency at risk', score: 3 });
|
|
310
|
+
// 10. TypeScript strict (if applicable)
|
|
311
|
+
if (fileExists(cwd, 'tsconfig.json')) {
|
|
312
|
+
const tsCheck = checkTSStrict(cwd);
|
|
313
|
+
checks.push(tsCheck);
|
|
314
|
+
}
|
|
315
|
+
// Calculate totals
|
|
316
|
+
const totalScore = checks.reduce((s, c) => s + c.score, 0);
|
|
317
|
+
const maxScore = checks.length * 15; // max 15 per check
|
|
318
|
+
const pct = (totalScore / maxScore) * 100;
|
|
319
|
+
const grade = pct >= 90 ? 'A' : pct >= 75 ? 'B' : pct >= 60 ? 'C' : pct >= 40 ? 'D' : 'F';
|
|
320
|
+
return { checks, totalScore, maxScore, grade };
|
|
321
|
+
}
|
|
322
|
+
export function printAuditReport(report) {
|
|
323
|
+
const gradeColor = { A: chalk.green, B: chalk.cyan, C: chalk.yellow, D: chalk.red, F: chalk.bgRed.white };
|
|
324
|
+
const gc = gradeColor[report.grade] || chalk.white;
|
|
325
|
+
console.log(chalk.cyan('\n Harness Audit Report'));
|
|
326
|
+
console.log(gc(` Grade: ${report.grade} (${report.totalScore}/${report.maxScore})\n`));
|
|
327
|
+
for (const c of report.checks) {
|
|
328
|
+
const icon = c.result === 'pass' ? chalk.green('✓') : c.result === 'warn' ? chalk.yellow('⚠') : chalk.red('✗');
|
|
329
|
+
console.log(` ${icon} ${c.name.padEnd(20)} ${chalk.dim(c.message)}`);
|
|
330
|
+
}
|
|
331
|
+
console.log();
|
|
332
|
+
}
|
|
333
|
+
// ── Helpers ───────────────────────────────────────────────
|
|
334
|
+
function fileExists(cwd, name) {
|
|
335
|
+
try {
|
|
336
|
+
return existsSync(join(cwd, name));
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
function dirExists(cwd, name) {
|
|
343
|
+
try {
|
|
344
|
+
return statSync(join(cwd, name)).isDirectory();
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
function execSafe(cmd, cwd) {
|
|
351
|
+
try {
|
|
352
|
+
return execSync(cmd, { cwd, encoding: 'utf-8', timeout: 10_000, stdio: 'pipe' }).trim();
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
return '';
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
function checkForSecrets(cwd) {
|
|
359
|
+
const dangerous = ['.env', '.env.local', '.env.production'];
|
|
360
|
+
const found = [];
|
|
361
|
+
for (const f of dangerous) {
|
|
362
|
+
if (fileExists(cwd, f)) {
|
|
363
|
+
// Check if it's gitignored
|
|
364
|
+
const ignored = execSafe(`git check-ignore ${f}`, cwd);
|
|
365
|
+
if (!ignored)
|
|
366
|
+
found.push(f);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
if (found.length > 0) {
|
|
370
|
+
return {
|
|
371
|
+
name: 'Secrets Safety',
|
|
372
|
+
result: 'fail',
|
|
373
|
+
message: `Unignored secret files: ${found.join(', ')}`,
|
|
374
|
+
score: 0,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
return { name: 'Secrets Safety', result: 'pass', message: 'No exposed secret files', score: 10 };
|
|
378
|
+
}
|
|
379
|
+
function checkTSStrict(cwd) {
|
|
380
|
+
try {
|
|
381
|
+
const content = readFileSync(join(cwd, 'tsconfig.json'), 'utf-8');
|
|
382
|
+
const isStrict = content.includes('"strict": true') || content.includes('"strict":true');
|
|
383
|
+
return isStrict
|
|
384
|
+
? { name: 'TS Strict Mode', result: 'pass', message: 'TypeScript strict mode enabled', score: 10 }
|
|
385
|
+
: { name: 'TS Strict Mode', result: 'warn', message: 'TypeScript strict mode not enabled', score: 3 };
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
return { name: 'TS Strict Mode', result: 'warn', message: 'Could not read tsconfig.json', score: 3 };
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
// ── E2E Framework Detection ────────────────────────────────
|
|
392
|
+
export function detectE2EFramework(cwd) {
|
|
393
|
+
try {
|
|
394
|
+
const content = readFileSync(join(cwd, 'package.json'), 'utf-8');
|
|
395
|
+
if (content.includes('"playwright"') || content.includes("'playwright'")) {
|
|
396
|
+
return 'playwright';
|
|
397
|
+
}
|
|
398
|
+
if (content.includes('"cypress"') || content.includes("'cypress'")) {
|
|
399
|
+
return 'cypress';
|
|
400
|
+
}
|
|
401
|
+
if (content.includes('"puppeteer"') || content.includes("'puppeteer'")) {
|
|
402
|
+
return 'puppeteer';
|
|
403
|
+
}
|
|
404
|
+
// Default to Playwright
|
|
405
|
+
return 'playwright';
|
|
406
|
+
}
|
|
407
|
+
catch {
|
|
408
|
+
// Default to Playwright if package.json cannot be read
|
|
409
|
+
return 'playwright';
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=evaluation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluation.js","sourceRoot":"","sources":["../src/evaluation.ts"],"names":[],"mappings":"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"}
|
package/dist/export.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Message } from './types.js';
|
|
2
|
+
export type ExportFormat = 'md' | 'json' | 'txt';
|
|
3
|
+
/**
|
|
4
|
+
* Format messages as Markdown with nice headers and code block preservation.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatAsMarkdown(messages: Message[]): string;
|
|
7
|
+
/**
|
|
8
|
+
* Format messages as JSON.
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatAsJSON(messages: Message[]): string;
|
|
11
|
+
/**
|
|
12
|
+
* Format messages as plain text with minimal formatting.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatAsText(messages: Message[]): string;
|
|
15
|
+
/**
|
|
16
|
+
* Format messages in the specified format.
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatMessages(messages: Message[], format: ExportFormat): string;
|
|
19
|
+
/**
|
|
20
|
+
* Save exported conversation to a file in the current working directory.
|
|
21
|
+
*/
|
|
22
|
+
export declare function saveExport(messages: Message[], format: ExportFormat): string;
|
package/dist/export.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation export functionality.
|
|
3
|
+
* Supports exporting conversations to Markdown, JSON, and plain text formats.
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'node:fs';
|
|
6
|
+
import * as path from 'node:path';
|
|
7
|
+
/**
|
|
8
|
+
* Format messages as Markdown with nice headers and code block preservation.
|
|
9
|
+
*/
|
|
10
|
+
export function formatAsMarkdown(messages) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
lines.push('# Conversation Export\n');
|
|
13
|
+
lines.push(`Exported: ${new Date().toISOString()}\n`);
|
|
14
|
+
lines.push('---\n');
|
|
15
|
+
for (let i = 0; i < messages.length; i++) {
|
|
16
|
+
const msg = messages[i];
|
|
17
|
+
const roleLabel = msg.role.toUpperCase();
|
|
18
|
+
lines.push(`## ${roleLabel}\n`);
|
|
19
|
+
if (msg.content) {
|
|
20
|
+
lines.push(`${msg.content}\n`);
|
|
21
|
+
}
|
|
22
|
+
// Include tool calls if present
|
|
23
|
+
if (msg.tool_calls && msg.tool_calls.length > 0) {
|
|
24
|
+
lines.push('### Tool Calls\n');
|
|
25
|
+
for (const toolCall of msg.tool_calls) {
|
|
26
|
+
lines.push(`- **${toolCall.function.name}**`);
|
|
27
|
+
if (toolCall.function.arguments) {
|
|
28
|
+
lines.push(`\n \`\`\`json\n ${toolCall.function.arguments}\n \`\`\``);
|
|
29
|
+
}
|
|
30
|
+
lines.push('\n');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Include tool_call_id if present
|
|
34
|
+
if (msg.tool_call_id) {
|
|
35
|
+
lines.push(`**Tool Call ID:** \`${msg.tool_call_id}\`\n`);
|
|
36
|
+
}
|
|
37
|
+
lines.push('');
|
|
38
|
+
}
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Format messages as JSON.
|
|
43
|
+
*/
|
|
44
|
+
export function formatAsJSON(messages) {
|
|
45
|
+
return JSON.stringify(messages, null, 2);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Format messages as plain text with minimal formatting.
|
|
49
|
+
*/
|
|
50
|
+
export function formatAsText(messages) {
|
|
51
|
+
const lines = [];
|
|
52
|
+
lines.push(`CONVERSATION EXPORT - ${new Date().toISOString()}`);
|
|
53
|
+
lines.push('='.repeat(80));
|
|
54
|
+
lines.push('');
|
|
55
|
+
for (const msg of messages) {
|
|
56
|
+
const roleLabel = msg.role.toUpperCase();
|
|
57
|
+
lines.push(`[${roleLabel}]`);
|
|
58
|
+
if (msg.content) {
|
|
59
|
+
lines.push(msg.content);
|
|
60
|
+
}
|
|
61
|
+
if (msg.tool_calls && msg.tool_calls.length > 0) {
|
|
62
|
+
lines.push('TOOL CALLS:');
|
|
63
|
+
for (const toolCall of msg.tool_calls) {
|
|
64
|
+
lines.push(` - ${toolCall.function.name}`);
|
|
65
|
+
if (toolCall.function.arguments) {
|
|
66
|
+
lines.push(` Args: ${toolCall.function.arguments}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (msg.tool_call_id) {
|
|
71
|
+
lines.push(`Tool Call ID: ${msg.tool_call_id}`);
|
|
72
|
+
}
|
|
73
|
+
lines.push('');
|
|
74
|
+
}
|
|
75
|
+
return lines.join('\n');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Format messages in the specified format.
|
|
79
|
+
*/
|
|
80
|
+
export function formatMessages(messages, format) {
|
|
81
|
+
switch (format) {
|
|
82
|
+
case 'md':
|
|
83
|
+
return formatAsMarkdown(messages);
|
|
84
|
+
case 'json':
|
|
85
|
+
return formatAsJSON(messages);
|
|
86
|
+
case 'txt':
|
|
87
|
+
return formatAsText(messages);
|
|
88
|
+
default:
|
|
89
|
+
throw new Error(`Unknown export format: ${format}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the file extension for a format.
|
|
94
|
+
*/
|
|
95
|
+
function getExtension(format) {
|
|
96
|
+
return format;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Save exported conversation to a file in the current working directory.
|
|
100
|
+
*/
|
|
101
|
+
export function saveExport(messages, format) {
|
|
102
|
+
const formatted = formatMessages(messages, format);
|
|
103
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
|
|
104
|
+
const filename = `crowcoder-export-${timestamp}.${getExtension(format)}`;
|
|
105
|
+
const filepath = path.join(process.cwd(), filename);
|
|
106
|
+
fs.writeFileSync(filepath, formatted, 'utf-8');
|
|
107
|
+
return filepath;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|