testeiya 0.10.0 → 0.10.2
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/PIPELINES.md +3 -0
- package/README.md +10 -20
- package/dist/prompt/clis.d.ts +7 -0
- package/dist/prompt/pipeline-report.d.ts +1 -0
- package/dist/prompt/report.d.ts +10 -0
- package/dist/prompt/system-prompt.d.ts +22 -0
- package/dist/prompt/system-prompt.js +1 -1
- package/dist/prompt/system-prompt.js.map +1 -1
- package/dist/prompt/testomat.io.d.ts +19 -0
- package/dist/prompt/thread.d.ts +73 -0
- package/dist/src/args.d.ts +39 -0
- package/dist/src/attribution-extension.d.ts +3 -0
- package/dist/src/checkpoint.d.ts +30 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +27 -32
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.d.ts +11 -0
- package/dist/src/env.d.ts +30 -0
- package/dist/src/exec.d.ts +11 -0
- package/dist/src/git.d.ts +41 -0
- package/dist/src/git.js +10 -0
- package/dist/src/git.js.map +1 -1
- package/dist/src/langfuse-extension.d.ts +7 -0
- package/dist/src/langfuse.d.ts +67 -0
- package/dist/src/mcp.d.ts +19 -0
- package/dist/src/model.d.ts +20 -0
- package/dist/src/model.js +2 -0
- package/dist/src/model.js.map +1 -1
- package/dist/src/models.d.ts +1 -0
- package/dist/src/output.d.ts +84 -0
- package/dist/src/pipeline/command-stage.d.ts +12 -0
- package/dist/src/pipeline/crash-guard.d.ts +12 -0
- package/dist/src/pipeline/crash-guard.js +21 -0
- package/dist/src/pipeline/crash-guard.js.map +1 -0
- package/dist/src/pipeline/diagram.d.ts +24 -0
- package/dist/src/pipeline/gate.d.ts +21 -0
- package/dist/src/pipeline/launcher.d.ts +33 -0
- package/dist/src/pipeline/launcher.js +16 -3
- package/dist/src/pipeline/launcher.js.map +1 -1
- package/dist/src/pipeline/log.d.ts +29 -0
- package/dist/src/pipeline/log.js +9 -0
- package/dist/src/pipeline/log.js.map +1 -1
- package/dist/src/pipeline/overlay.d.ts +29 -0
- package/dist/src/pipeline/pipeline-file.d.ts +44 -0
- package/dist/src/pipeline/pipeline-file.js +16 -8
- package/dist/src/pipeline/pipeline-file.js.map +1 -1
- package/dist/src/pipeline/pipeline.d.ts +78 -0
- package/dist/src/pipeline/pipeline.js +33 -7
- package/dist/src/pipeline/pipeline.js.map +1 -1
- package/dist/src/pipeline/report.d.ts +26 -0
- package/dist/src/pipeline/report.js +13 -0
- package/dist/src/pipeline/report.js.map +1 -1
- package/dist/src/pipeline/spec.d.ts +63 -0
- package/dist/src/pipeline/stage-env.d.ts +13 -0
- package/dist/src/pipeline/stage-env.js +31 -0
- package/dist/src/pipeline/stage-env.js.map +1 -0
- package/dist/src/pipeline/stage.d.ts +71 -0
- package/dist/src/pipeline/stage.js.map +1 -1
- package/dist/src/pipeline/state.d.ts +63 -0
- package/dist/src/pipeline/summary-stage.d.ts +24 -0
- package/dist/src/pipeline/task-stage.d.ts +24 -0
- package/dist/src/pipeline/task-stage.js +86 -2
- package/dist/src/pipeline/task-stage.js.map +1 -1
- package/dist/src/pipeline/variables.d.ts +20 -0
- package/dist/src/result.d.ts +6 -0
- package/dist/src/run.d.ts +69 -0
- package/dist/src/run.js +116 -60
- package/dist/src/run.js.map +1 -1
- package/dist/src/session.d.ts +43 -0
- package/dist/src/session.js +3 -1
- package/dist/src/session.js.map +1 -1
- package/dist/src/sessions.d.ts +23 -0
- package/dist/src/skills.d.ts +29 -0
- package/package.json +11 -2
- package/pipelines/api-testing.yml +16 -5
- package/pipelines/issue-test-cases.yml +3 -4
- package/pipelines/pr-review.yml +14 -5
- package/pipelines/regression.yml +1 -0
- package/pipelines/web-testing.yml +1 -0
- package/prompt/system-prompt.ts +1 -1
- package/scripts/vendor-skills.js +62 -0
- package/skills/codeceptjs/ci-fix-tests/SKILL.md +0 -119
- package/skills/codeceptjs/codeceptjs-auth/SKILL.md +0 -141
- package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +0 -100
- package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +0 -196
- package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +0 -83
- package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +0 -126
- package/skills/codeceptjs/lint-codeceptjs-tests/SKILL.md +0 -104
- package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +0 -109
- package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +0 -295
- package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +0 -339
- package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +0 -459
- package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +0 -338
- package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +0 -78
- package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +0 -102
- package/skills/playwright/playwright-best-practices/SKILL.md +0 -303
- package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +0 -360
- package/skills/playwright/playwright-best-practices/advanced/authentication.md +0 -871
- package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +0 -364
- package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +0 -409
- package/skills/playwright/playwright-best-practices/advanced/multi-context.md +0 -288
- package/skills/playwright/playwright-best-practices/advanced/multi-user.md +0 -393
- package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +0 -452
- package/skills/playwright/playwright-best-practices/advanced/third-party.md +0 -464
- package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +0 -363
- package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +0 -369
- package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +0 -383
- package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +0 -391
- package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +0 -403
- package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +0 -504
- package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +0 -403
- package/skills/playwright/playwright-best-practices/core/annotations.md +0 -424
- package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +0 -361
- package/skills/playwright/playwright-best-practices/core/configuration.md +0 -452
- package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +0 -417
- package/skills/playwright/playwright-best-practices/core/global-setup.md +0 -434
- package/skills/playwright/playwright-best-practices/core/locators.md +0 -242
- package/skills/playwright/playwright-best-practices/core/page-object-model.md +0 -315
- package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +0 -453
- package/skills/playwright/playwright-best-practices/core/test-data.md +0 -492
- package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +0 -361
- package/skills/playwright/playwright-best-practices/core/test-tags.md +0 -298
- package/skills/playwright/playwright-best-practices/debugging/console-errors.md +0 -420
- package/skills/playwright/playwright-best-practices/debugging/debugging.md +0 -504
- package/skills/playwright/playwright-best-practices/debugging/error-testing.md +0 -360
- package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +0 -496
- package/skills/playwright/playwright-best-practices/frameworks/angular.md +0 -530
- package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +0 -469
- package/skills/playwright/playwright-best-practices/frameworks/react.md +0 -531
- package/skills/playwright/playwright-best-practices/frameworks/vue.md +0 -574
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +0 -468
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +0 -283
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +0 -546
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +0 -397
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +0 -521
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +0 -371
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +0 -453
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +0 -424
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +0 -497
- package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +0 -359
- package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +0 -719
- package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +0 -506
- package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +0 -493
- package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +0 -500
- package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +0 -576
- package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +0 -509
- package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +0 -377
- package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +0 -562
- package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +0 -561
- package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +0 -331
- package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +0 -508
- package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +0 -476
- package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +0 -430
- package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +0 -634
- package/skills/playwright/playwright-cli/SKILL.md +0 -489
- package/skills/playwright/playwright-cli/references/element-attributes.md +0 -23
- package/skills/playwright/playwright-cli/references/playwright-tests.md +0 -39
- package/skills/playwright/playwright-cli/references/pr-attachments.md +0 -60
- package/skills/playwright/playwright-cli/references/request-mocking.md +0 -87
- package/skills/playwright/playwright-cli/references/running-code.md +0 -245
- package/skills/playwright/playwright-cli/references/session-management.md +0 -227
- package/skills/playwright/playwright-cli/references/storage-state.md +0 -275
- package/skills/playwright/playwright-cli/references/test-generation.md +0 -433
- package/skills/playwright/playwright-cli/references/tracing.md +0 -139
- package/skills/playwright/playwright-cli/references/video-recording.md +0 -216
- package/skills/skills.lock.json +0 -89
- package/skills/skills.yaml +0 -35
- /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/SKILL.md +0 -0
- /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/references/no-install.md +0 -0
- /package/skills/{testomatio/explorbot → explorbot}/explorbot-plan/SKILL.md +0 -0
- /package/skills/{testomatio/explorbot → explorbot}/explorbot-setup/SKILL.md +0 -0
- /package/skills/{testomatio/explorbot → explorbot}/prima/SKILL.md +0 -0
- /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/SKILL.md +0 -0
- /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/references/output-format.md +0 -0
- /package/skills/{testomatio/qa-process → qa-process}/qa-review-pr/SKILL.md +0 -0
- /package/skills/{testomatio/qa-process → qa-process}/testing-workflow/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/catalog-features/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/catalog-features/references/layout.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/features.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/layout.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/pull-request-diff-analyzer/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/answer-shapes.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/examples.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/references/summary-example.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/references/requirements_reviewer_examples.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/qa-thinking/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/wiki-from-code/SKILL.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/behaviors.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/layout.md +0 -0
- /package/skills/{testomatio/requirements → requirements}/write-user-story/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/CLAUDE.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/epic-requirements-specification/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/qa-automation-test-consolidation/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/qa-data-seeder/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/run-tests-with-testomatio-reporter/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/setup-change-aware-pr-testing/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/setup-ci-automation/SKILL.md +0 -0
- /package/skills/{testomatio/test-automation → test-automation}/testomat-allure-adapter/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/detect-useless-tests/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/improve-test-cases/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CSV_MIGRATION.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CUSTOM_MIGRATION.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTMO_MIGRATION.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTRAIL_MIGRATION.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/XRAY_MIGRATION.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-split-testing-levels-pyramid/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/scripts/check-coverage.mjs +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/test-case-format.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/testomat-tms-guide.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/writing-rule.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/scan-automation-project/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/SKILL.md +0 -0
- /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/references/MCP_SETUP.md +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const STATE_FILE = "pipeline.json";
|
|
2
|
+
export declare const COPY_FILE = "pipeline.yml";
|
|
3
|
+
export declare const SESSIONS_DIR = ".sessions";
|
|
4
|
+
export declare const CHANGES_FILE = "changes.txt";
|
|
5
|
+
/** The last round's files, kept so the next round updates them. */
|
|
6
|
+
export declare const LAST_DIR = ".last";
|
|
7
|
+
/**
|
|
8
|
+
* `pipeline.json` in the pipeline folder: the round, each stage's result, and
|
|
9
|
+
* the rounds before. The next run reads it to retry or start a new round, the
|
|
10
|
+
* summary reads it to explain the run, and `--json` prints it.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PipelineState {
|
|
13
|
+
private readonly dir;
|
|
14
|
+
readonly record: PipelineRecord;
|
|
15
|
+
/** A round in one of these did not finish, so the same commit retries it. */
|
|
16
|
+
static readonly STOPPED: Status[];
|
|
17
|
+
private existing;
|
|
18
|
+
private createdBefore;
|
|
19
|
+
constructor(dir: string, record: PipelineRecord);
|
|
20
|
+
static read(dir: string): PipelineRecord | null;
|
|
21
|
+
/** The worst status wins. */
|
|
22
|
+
static verdict(records: Array<{
|
|
23
|
+
status: Status;
|
|
24
|
+
}>): Status;
|
|
25
|
+
stage(id: string): StageRecord | undefined;
|
|
26
|
+
/** Remember what is in the folder now, so `created` lists only what the stages add. */
|
|
27
|
+
trackFiles(): void;
|
|
28
|
+
/** Close the round in the history, replacing a run of the same round. */
|
|
29
|
+
finishRound(): void;
|
|
30
|
+
save(): void;
|
|
31
|
+
toJSON(): PipelineRecord;
|
|
32
|
+
}
|
|
33
|
+
export type Status = "pass" | "fail" | "broken" | "timeout" | "skipped" | "interrupted" | "not-run" | "running";
|
|
34
|
+
export interface PipelineRecord {
|
|
35
|
+
name: string;
|
|
36
|
+
round: number;
|
|
37
|
+
commit: string | null;
|
|
38
|
+
since: string | null;
|
|
39
|
+
status: Status;
|
|
40
|
+
reason?: string;
|
|
41
|
+
stages: StageRecord[];
|
|
42
|
+
rounds: Array<{
|
|
43
|
+
round: number;
|
|
44
|
+
commit: string | null;
|
|
45
|
+
status: Status;
|
|
46
|
+
}>;
|
|
47
|
+
/** What this round wrote into the folder, cleared when the next round starts. */
|
|
48
|
+
created?: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface StageRecord extends StageResult {
|
|
51
|
+
id: string;
|
|
52
|
+
seconds?: number;
|
|
53
|
+
items?: ItemRecord[];
|
|
54
|
+
}
|
|
55
|
+
export interface ItemRecord extends StageResult {
|
|
56
|
+
item: string;
|
|
57
|
+
}
|
|
58
|
+
export interface StageResult {
|
|
59
|
+
status: Status;
|
|
60
|
+
reason?: string;
|
|
61
|
+
report?: string;
|
|
62
|
+
log?: string;
|
|
63
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PipelineSpec } from "./spec.js";
|
|
2
|
+
import type { Stage, StageContext } from "./stage.js";
|
|
3
|
+
import { type PipelineState, type StageRecord } from "./state.js";
|
|
4
|
+
import { TaskStage } from "./task-stage.js";
|
|
5
|
+
/**
|
|
6
|
+
* The final report. Code joins the stages' reports into a draft, word for
|
|
7
|
+
* word, so the agent only trims it and never writes a section of its own.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SummaryStage extends TaskStage {
|
|
10
|
+
private readonly stages;
|
|
11
|
+
private readonly state;
|
|
12
|
+
constructor(pipeline: PipelineSpec, stages: Stage[], state: PipelineState, dir: string);
|
|
13
|
+
files(): string[];
|
|
14
|
+
run(context: StageContext, record: StageRecord): Promise<void>;
|
|
15
|
+
/** The stages' reports already update the last round, so the summary starts from the draft. */
|
|
16
|
+
protected lastRound(): string | null;
|
|
17
|
+
/** One `### <emoji> <title>` section per stage, in order. */
|
|
18
|
+
private draft;
|
|
19
|
+
private section;
|
|
20
|
+
/** Moves every heading down so the report's top one is `####`, outside code blocks. */
|
|
21
|
+
private demote;
|
|
22
|
+
private headings;
|
|
23
|
+
private level;
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Stage, type Item, type StageContext } from "./stage.js";
|
|
2
|
+
import { type StageResult } from "./state.js";
|
|
3
|
+
import type { Variables } from "./variables.js";
|
|
4
|
+
/**
|
|
5
|
+
* An agent stage: one task, run in this process. It writes its report to `<id>.md`
|
|
6
|
+
* and its verdict to `<id>.json`, in its folder.
|
|
7
|
+
*/
|
|
8
|
+
export declare class TaskStage extends Stage {
|
|
9
|
+
protected readonly result: {
|
|
10
|
+
field: "report";
|
|
11
|
+
extension: string;
|
|
12
|
+
};
|
|
13
|
+
files(): string[];
|
|
14
|
+
protected runItem(context: StageContext, item: Item, vars: Variables): Promise<StageResult>;
|
|
15
|
+
private request;
|
|
16
|
+
/** The old path: a `testeiya task` child process. */
|
|
17
|
+
private spawn;
|
|
18
|
+
private options;
|
|
19
|
+
/** The task, then where its files are, so the model never guesses a path. */
|
|
20
|
+
private task;
|
|
21
|
+
/** A new round updates the last one's result instead of starting over. */
|
|
22
|
+
protected lastRound(context: StageContext): string | null;
|
|
23
|
+
private readEnvelope;
|
|
24
|
+
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
import { UsageError } from "../model.js";
|
|
4
|
+
import { KILL_GRACE_MS } from "./launcher.js";
|
|
3
5
|
import { log } from "./log.js";
|
|
4
6
|
import { Stage } from "./stage.js";
|
|
7
|
+
import { StageEnv } from "./stage-env.js";
|
|
5
8
|
import { CHANGES_FILE, LAST_DIR, SESSIONS_DIR } from "./state.js";
|
|
6
9
|
const RETRY_NOTE = "This stage stopped before it finished. Go on from where you stopped. Files you already wrote are in the stage folder.";
|
|
7
10
|
/**
|
|
8
|
-
* An agent stage:
|
|
11
|
+
* An agent stage: one task, run in this process. It writes its report to `<id>.md`
|
|
9
12
|
* and its verdict to `<id>.json`, in its folder.
|
|
10
13
|
*/
|
|
11
14
|
export class TaskStage extends Stage {
|
|
@@ -20,6 +23,87 @@ export class TaskStage extends Stage {
|
|
|
20
23
|
rmSync(join(dir, report), { force: true });
|
|
21
24
|
rmSync(join(dir, envelope), { force: true });
|
|
22
25
|
const task = this.task(context, vars);
|
|
26
|
+
if (process.env.TESTEIYA_PIPELINE_SPAWN === "1")
|
|
27
|
+
return this.spawn(context, item, vars, task, report, envelope);
|
|
28
|
+
const request = this.request(context, item, [join(dir, report), join(dir, envelope)], task);
|
|
29
|
+
let session = null;
|
|
30
|
+
if (request.sessionFile)
|
|
31
|
+
session = basename(request.sessionFile);
|
|
32
|
+
log.task(`${this.id}${item.suffix}`, context.model, session, task);
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
context.launcher.track(controller);
|
|
35
|
+
let timer;
|
|
36
|
+
if (this.timeout)
|
|
37
|
+
timer = setTimeout(() => controller.abort("timeout"), this.timeout);
|
|
38
|
+
// A task that ignores the abort is left behind once the grace period runs out.
|
|
39
|
+
let grace;
|
|
40
|
+
const abandoned = new Promise((done) => {
|
|
41
|
+
controller.signal.addEventListener("abort", () => (grace = setTimeout(() => done(null), KILL_GRACE_MS)), { once: true });
|
|
42
|
+
});
|
|
43
|
+
const running = {};
|
|
44
|
+
context.guard.arm();
|
|
45
|
+
try {
|
|
46
|
+
// Raced inside the env, so the env comes back even for a task left behind.
|
|
47
|
+
const outcome = await new StageEnv(vars.toEnv()).run(() => {
|
|
48
|
+
running.task = context.runTask(request, { signal: controller.signal });
|
|
49
|
+
return Promise.race([running.task, abandoned]);
|
|
50
|
+
});
|
|
51
|
+
if (!outcome) {
|
|
52
|
+
running.left = true;
|
|
53
|
+
log.abandoned(`${this.id}${item.suffix}`);
|
|
54
|
+
}
|
|
55
|
+
context.report?.copy(join(dir, report));
|
|
56
|
+
const done = { code: outcome?.code ?? 1, timedOut: controller.signal.reason === "timeout", interrupted: context.launcher.interrupted };
|
|
57
|
+
if (!outcome)
|
|
58
|
+
return { ...this.outcome(done, "broken", "it did not stop"), report };
|
|
59
|
+
let status = "pass";
|
|
60
|
+
if (outcome.envelope.status === "fail")
|
|
61
|
+
status = "fail";
|
|
62
|
+
return { ...this.outcome(done, status, outcome.envelope.reason), report };
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
const done = { code: 1, timedOut: false, interrupted: context.launcher.interrupted };
|
|
66
|
+
let message = String(err);
|
|
67
|
+
if (err instanceof Error)
|
|
68
|
+
message = err.message;
|
|
69
|
+
if (err instanceof UsageError)
|
|
70
|
+
return { ...this.outcome(done, "broken", `bad usage: ${message}`), report };
|
|
71
|
+
return { ...this.outcome(done, "broken", message), report };
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
clearTimeout(grace);
|
|
76
|
+
context.launcher.untrack();
|
|
77
|
+
// A task left behind can still crash the process, so the guard stays until it settles.
|
|
78
|
+
const disarm = () => context.guard.disarm();
|
|
79
|
+
if (running.left && running.task)
|
|
80
|
+
running.task.then(disarm, disarm);
|
|
81
|
+
else
|
|
82
|
+
disarm();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
request(context, item, outputs, task) {
|
|
86
|
+
const { session } = this.spec;
|
|
87
|
+
const request = { prompt: task, outputs: [...outputs] };
|
|
88
|
+
// Only the reporting stage posts. Every other stage keeps out of the comment thread.
|
|
89
|
+
if (!context.report) {
|
|
90
|
+
request.noThread = true;
|
|
91
|
+
request.noDefaultFooter = true;
|
|
92
|
+
}
|
|
93
|
+
context.report?.fill(request);
|
|
94
|
+
if (session)
|
|
95
|
+
request.sessionFile = join(context.dir, SESSIONS_DIR, `${session}.jsonl`);
|
|
96
|
+
else
|
|
97
|
+
request.noSession = true;
|
|
98
|
+
if (context.model)
|
|
99
|
+
request.model = context.model;
|
|
100
|
+
if (item.resumed && session)
|
|
101
|
+
request.followUp = RETRY_NOTE;
|
|
102
|
+
return request;
|
|
103
|
+
}
|
|
104
|
+
/** The old path: a `testeiya task` child process. */
|
|
105
|
+
async spawn(context, item, vars, task, report, envelope) {
|
|
106
|
+
const { dir } = context;
|
|
23
107
|
const args = [context.cli, "task", ...this.options(context, item, [join(dir, report), join(dir, envelope)]), "--", task];
|
|
24
108
|
log.command(`testeiya ${args.slice(1, -1).join(" ")} "${task.split("\n")[0]}…"`);
|
|
25
109
|
const done = await context.launcher.start({ command: process.execPath, args, vars, log: null, timeout: this.timeout });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-stage.js","sourceRoot":"","sources":["../../../src/pipeline/task-stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"task-stage.js","sourceRoot":"","sources":["../../../src/pipeline/task-stage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The environment a pipeline runs in, and `${NAME}` expansion over it. */
|
|
2
|
+
export declare class Variables {
|
|
3
|
+
private readonly values;
|
|
4
|
+
constructor(values: Env);
|
|
5
|
+
/** Why the filters in `text` cannot run, or null. */
|
|
6
|
+
static problem(text: string): string | null;
|
|
7
|
+
/** Whether `text` uses a filter. */
|
|
8
|
+
static filtered(text: string): boolean;
|
|
9
|
+
get(name: string): string | undefined;
|
|
10
|
+
/** `${NAME}` and `${NAME:-default}`, the shell's rule: unset is empty. A `|` runs Liquid filters. */
|
|
11
|
+
expand(text: string): string;
|
|
12
|
+
/** A copy with more variables, taken as they are. */
|
|
13
|
+
with(extra: Env): Variables;
|
|
14
|
+
/** A copy with more variables, each expanded against the ones before it. */
|
|
15
|
+
withExpanded(extra: Record<string, string>): Variables;
|
|
16
|
+
without(names: string[]): Variables;
|
|
17
|
+
/** For a child process. */
|
|
18
|
+
toEnv(): Env;
|
|
19
|
+
}
|
|
20
|
+
export type Env = Record<string, string | undefined>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { AgentSession, SessionManager } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import { type Destination, type RunEnvelope } from "./output.js";
|
|
3
|
+
import { type SessionArgs } from "./sessions.js";
|
|
4
|
+
/** One task, start to end. Never exits, never traps signals: the caller owns the process. */
|
|
5
|
+
export declare function runTask(request: TaskRequest, control?: TaskControl): Promise<TaskOutcome>;
|
|
6
|
+
/** Everything a task needs, checked before a single token is spent. */
|
|
7
|
+
export declare function prepareTask(request: TaskRequest, cwd: string): Promise<PrintOptions>;
|
|
8
|
+
/**
|
|
9
|
+
* What the agent is asked, in the order it reads: the task, what moved since
|
|
10
|
+
* the last round, then the user's reply. The task stays in front of both —
|
|
11
|
+
* session restore is best-effort in CI, and a round that lost its thread must
|
|
12
|
+
* still know what it was asked to do. An empty reply changes nothing, so a job
|
|
13
|
+
* can pass a comment body that is not there.
|
|
14
|
+
*/
|
|
15
|
+
export declare function compose(prompt: string, update?: string | null, followUp?: string): string;
|
|
16
|
+
export declare function exitCode(error: string | null, status: "pass" | "fail" | undefined, wantsReport: boolean, report: string | null, exitZero?: boolean): number;
|
|
17
|
+
/** Stops the session when the caller aborts, for as long as it is watched. */
|
|
18
|
+
export declare class TaskAbort {
|
|
19
|
+
private readonly session;
|
|
20
|
+
private readonly signal?;
|
|
21
|
+
private readonly stop;
|
|
22
|
+
constructor(session: Pick<AgentSession, "abort">, signal?: AbortSignal | undefined);
|
|
23
|
+
watch(): void;
|
|
24
|
+
release(): void;
|
|
25
|
+
get reason(): string | null;
|
|
26
|
+
}
|
|
27
|
+
export interface TaskRequest extends SessionArgs {
|
|
28
|
+
prompt: string;
|
|
29
|
+
followUp?: string;
|
|
30
|
+
/** Same strings as -o. */
|
|
31
|
+
outputs: string[];
|
|
32
|
+
json?: boolean;
|
|
33
|
+
brief?: boolean;
|
|
34
|
+
name?: string;
|
|
35
|
+
model?: string;
|
|
36
|
+
thread?: string;
|
|
37
|
+
header?: string;
|
|
38
|
+
footer?: string;
|
|
39
|
+
noDefaultFooter?: boolean;
|
|
40
|
+
noThread?: boolean;
|
|
41
|
+
exitZero?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface TaskControl {
|
|
44
|
+
signal?: AbortSignal;
|
|
45
|
+
}
|
|
46
|
+
export interface TaskOutcome {
|
|
47
|
+
code: number;
|
|
48
|
+
envelope: RunEnvelope;
|
|
49
|
+
/** A destination failed: the caller keeps the report. */
|
|
50
|
+
undelivered: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type TaskRunner = (request: TaskRequest, control?: TaskControl) => Promise<TaskOutcome>;
|
|
53
|
+
export interface PrintOptions {
|
|
54
|
+
prompt: string;
|
|
55
|
+
followUp?: string;
|
|
56
|
+
/** Which conversation this run is, for pull request comments (`--thread`). */
|
|
57
|
+
thread?: string;
|
|
58
|
+
destinations: Destination[];
|
|
59
|
+
sessionManager: SessionManager;
|
|
60
|
+
sessionId?: string | null;
|
|
61
|
+
model?: string;
|
|
62
|
+
brief?: boolean;
|
|
63
|
+
exitZero?: boolean;
|
|
64
|
+
header?: string;
|
|
65
|
+
footer?: string;
|
|
66
|
+
noDefaultFooter?: boolean;
|
|
67
|
+
/** Leave the comment thread alone: no thread rules, no thread comments read. */
|
|
68
|
+
noThread?: boolean;
|
|
69
|
+
}
|
package/dist/src/run.js
CHANGED
|
@@ -8,12 +8,52 @@ import { Git } from "./git.js";
|
|
|
8
8
|
import { VERSION } from "./env.js";
|
|
9
9
|
import { hasTestomatio } from "./mcp.js";
|
|
10
10
|
import { UsageError } from "./model.js";
|
|
11
|
-
import { decorate, defaultFooter, defaultHeader, deliver, marker, markdownPath, modelName, pullRequestNumber, threadComments, threadName, } from "./output.js";
|
|
11
|
+
import { decorate, defaultFooter, defaultHeader, deliver, marker, markdownPath, parseDestinations, preflight, modelName, pullRequestNumber, threadComments, threadName, } from "./output.js";
|
|
12
12
|
import { commentThread, threadHost } from "../prompt/thread.js";
|
|
13
|
-
import { shortId } from "./sessions.js";
|
|
13
|
+
import { openSessionManager, shortId } from "./sessions.js";
|
|
14
14
|
import { createTesteiyaSession } from "./session.js";
|
|
15
15
|
import { expandSkills } from "./skills.js";
|
|
16
|
-
|
|
16
|
+
/** One task, start to end. Never exits, never traps signals: the caller owns the process. */
|
|
17
|
+
export async function runTask(request, control = {}) {
|
|
18
|
+
return execute(await prepareTask(request, process.cwd()), control);
|
|
19
|
+
}
|
|
20
|
+
/** Everything a task needs, checked before a single token is spent. */
|
|
21
|
+
export async function prepareTask(request, cwd) {
|
|
22
|
+
const destinations = parseDestinations(request.outputs, request.json);
|
|
23
|
+
if (typeof destinations === "string")
|
|
24
|
+
throw new UsageError(destinations);
|
|
25
|
+
const unreachable = await preflight(destinations);
|
|
26
|
+
if (unreachable)
|
|
27
|
+
throw new UsageError(unreachable);
|
|
28
|
+
// A job-level TESTEIYA_SESSION_FILE must not quietly redirect a run that named its own session.
|
|
29
|
+
const args = { ...request };
|
|
30
|
+
if (!args.session && !args.resume && !args.continueLast)
|
|
31
|
+
args.sessionFile ??= process.env.TESTEIYA_SESSION_FILE;
|
|
32
|
+
const sessionManager = await openSessionManager(cwd, args);
|
|
33
|
+
if (typeof sessionManager === "string")
|
|
34
|
+
throw new UsageError(sessionManager);
|
|
35
|
+
if (request.name)
|
|
36
|
+
sessionManager.appendSessionInfo(request.name);
|
|
37
|
+
let sessionId = null;
|
|
38
|
+
if (!request.noSession)
|
|
39
|
+
sessionId = sessionManager.getSessionId();
|
|
40
|
+
return {
|
|
41
|
+
prompt: request.prompt,
|
|
42
|
+
followUp: request.followUp,
|
|
43
|
+
destinations,
|
|
44
|
+
sessionManager,
|
|
45
|
+
sessionId,
|
|
46
|
+
brief: request.brief,
|
|
47
|
+
thread: request.thread ?? process.env.TESTEIYA_THREAD,
|
|
48
|
+
model: request.model,
|
|
49
|
+
exitZero: request.exitZero,
|
|
50
|
+
header: request.header,
|
|
51
|
+
footer: request.footer,
|
|
52
|
+
noDefaultFooter: request.noDefaultFooter,
|
|
53
|
+
noThread: request.noThread,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async function execute(options, control) {
|
|
17
57
|
const started = Date.now();
|
|
18
58
|
const result = {};
|
|
19
59
|
const outputPath = markdownPath(options.destinations) ?? impliedReport(options.destinations);
|
|
@@ -41,59 +81,44 @@ export async function runPrint(options) {
|
|
|
41
81
|
// Its length is also whether this thread already has answers: the prompt
|
|
42
82
|
// wants to know first or continuing before the session is built.
|
|
43
83
|
const earlier = inThread ? await threadComments(pr, stamp.thread) : [];
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
?
|
|
51
|
-
:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
...connectionOptions(),
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
// A misconfigured model or missing key is bad usage (exit 2), not a failed
|
|
85
|
-
// run — cli.ts turns it into that. Everything else is a failed run.
|
|
86
|
-
if (err instanceof UsageError)
|
|
87
|
-
throw err;
|
|
88
|
-
note(c.red(` ✗ ${errorText(err)}`));
|
|
89
|
-
return 1;
|
|
90
|
-
}
|
|
84
|
+
// First or continuing: a checkpoint left by a previous round of this
|
|
85
|
+
// session, or an answer already visible in the thread, makes this a later
|
|
86
|
+
// round. Nothing does: the run opens the thread.
|
|
87
|
+
const threadMode = !inThread
|
|
88
|
+
? undefined
|
|
89
|
+
: lastCheckpoint(options.sessionManager) || earlier.length > 0
|
|
90
|
+
? "continuing"
|
|
91
|
+
: "first";
|
|
92
|
+
const created = await createTesteiyaSession({
|
|
93
|
+
cwd,
|
|
94
|
+
result,
|
|
95
|
+
sessionManager: options.sessionManager,
|
|
96
|
+
model: options.model,
|
|
97
|
+
outputFile: outputPath,
|
|
98
|
+
brief: options.brief,
|
|
99
|
+
threadMode,
|
|
100
|
+
// The model names itself in the default footer, and the agent posts that
|
|
101
|
+
// footer, so the section cannot be built until the model is resolved.
|
|
102
|
+
sections: (model) => {
|
|
103
|
+
if (!host)
|
|
104
|
+
return [];
|
|
105
|
+
return [
|
|
106
|
+
commentThread({
|
|
107
|
+
host,
|
|
108
|
+
thread,
|
|
109
|
+
marker: marker(stamp),
|
|
110
|
+
reportFile: outputPath,
|
|
111
|
+
header: headerFor(options, inThread),
|
|
112
|
+
footer: footerFor(options, model),
|
|
113
|
+
delivered: Boolean(pr),
|
|
114
|
+
threadMode,
|
|
115
|
+
}),
|
|
116
|
+
];
|
|
117
|
+
},
|
|
118
|
+
...connectionOptions(),
|
|
119
|
+
});
|
|
91
120
|
const { session, model, skills } = created;
|
|
92
121
|
const task = expandSkills(compose(options.prompt, update, options.followUp), skills);
|
|
93
|
-
process.on("SIGINT", () => {
|
|
94
|
-
note(c.yellow("\n ⨯ interrupted"));
|
|
95
|
-
void session.abort().finally(() => process.exit(130));
|
|
96
|
-
});
|
|
97
122
|
// With nothing but stdout to write to, the answer is the output: one line of
|
|
98
123
|
// run info on stderr, no banner in front of it.
|
|
99
124
|
const verbose = options.destinations.some((destination) => destination.kind !== "stdout");
|
|
@@ -111,8 +136,19 @@ export async function runPrint(options) {
|
|
|
111
136
|
// Read before the run: the answer delivered afterwards cannot be in it, so
|
|
112
137
|
// collapsing this list needs no judgement about which comment is the new one.
|
|
113
138
|
const run = watchRun(session);
|
|
114
|
-
|
|
115
|
-
const
|
|
139
|
+
// Watched through the report nudge too: that is a second agent turn.
|
|
140
|
+
const abort = new TaskAbort(session, control.signal);
|
|
141
|
+
abort.watch();
|
|
142
|
+
if (!abort.reason)
|
|
143
|
+
await promptOnce(session, task.prompt, run);
|
|
144
|
+
if (abort.reason)
|
|
145
|
+
run.error = abort.reason;
|
|
146
|
+
let written = await collectReport(session, run, outputPath, stampBefore);
|
|
147
|
+
abort.release();
|
|
148
|
+
if (abort.reason) {
|
|
149
|
+
run.error = abort.reason;
|
|
150
|
+
written = null;
|
|
151
|
+
}
|
|
116
152
|
if (!run.error && checkpoint)
|
|
117
153
|
saveCheckpoint(options.sessionManager, checkpoint);
|
|
118
154
|
const report = sign(written, options, model, stamp, inThread);
|
|
@@ -141,13 +177,10 @@ export async function runPrint(options) {
|
|
|
141
177
|
const failure = await deliver(options.destinations, envelope, { earlier });
|
|
142
178
|
if (failure) {
|
|
143
179
|
note(` ${c.red(`✗ ${failure}`)}`);
|
|
144
|
-
// The report is worth more than the destination: never lose it.
|
|
145
|
-
if (report)
|
|
146
|
-
process.stdout.write(report);
|
|
147
180
|
code = 1;
|
|
148
181
|
}
|
|
149
182
|
await session.dispose();
|
|
150
|
-
return code;
|
|
183
|
+
return { code, envelope, undelivered: Boolean(failure) };
|
|
151
184
|
}
|
|
152
185
|
/**
|
|
153
186
|
* What the agent is asked, in the order it reads: the task, what moved since
|
|
@@ -431,4 +464,27 @@ function tokens(count) {
|
|
|
431
464
|
return String(count);
|
|
432
465
|
return `${(count / 1000).toFixed(1)}k`;
|
|
433
466
|
}
|
|
467
|
+
/** Stops the session when the caller aborts, for as long as it is watched. */
|
|
468
|
+
export class TaskAbort {
|
|
469
|
+
session;
|
|
470
|
+
signal;
|
|
471
|
+
stop = () => void this.session.abort();
|
|
472
|
+
constructor(session, signal) {
|
|
473
|
+
this.session = session;
|
|
474
|
+
this.signal = signal;
|
|
475
|
+
}
|
|
476
|
+
watch() {
|
|
477
|
+
this.signal?.addEventListener("abort", this.stop, { once: true });
|
|
478
|
+
}
|
|
479
|
+
release() {
|
|
480
|
+
this.signal?.removeEventListener("abort", this.stop);
|
|
481
|
+
}
|
|
482
|
+
get reason() {
|
|
483
|
+
if (!this.signal?.aborted)
|
|
484
|
+
return null;
|
|
485
|
+
if (this.signal.reason === "timeout")
|
|
486
|
+
return "ran past its timeout";
|
|
487
|
+
return "interrupted";
|
|
488
|
+
}
|
|
489
|
+
}
|
|
434
490
|
//# sourceMappingURL=run.js.map
|
package/dist/src/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|