autonomous-sdlc-harness 0.4.2 → 0.6.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/dist/commands/init.js +113 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/config/check.js +28 -6
- package/dist/config/check.js.map +1 -1
- package/dist/config/model.js +64 -5
- package/dist/config/model.js.map +1 -1
- package/dist/core/pluginIdentity.js +2 -0
- package/dist/core/pluginIdentity.js.map +1 -1
- package/dist/core/writer.js +10 -5
- package/dist/core/writer.js.map +1 -1
- package/dist/core/yamlScalar.js +14 -0
- package/dist/core/yamlScalar.js.map +1 -0
- package/dist/doctor/checks.js +454 -23
- package/dist/doctor/checks.js.map +1 -1
- package/dist/generators/githubWorkflows.js +125 -20
- package/dist/generators/githubWorkflows.js.map +1 -1
- package/dist/generators/repoRoot.js +17 -8
- package/dist/generators/repoRoot.js.map +1 -1
- package/dist/remote/githubActions.js +110 -7
- package/dist/remote/githubActions.js.map +1 -1
- package/dist/retrieval/pythonBackend.js +114 -0
- package/dist/retrieval/pythonBackend.js.map +1 -0
- package/dist/retrieval/setup.js +8 -0
- package/dist/retrieval/setup.js.map +1 -1
- package/package.json +1 -1
- package/templates/README.md +1 -1
- package/templates/github/workflows/harness-control.yml +184 -0
- package/templates/github/workflows/harness-resume.yml +9 -0
- package/templates/github/workflows/harness-run.yml +127 -12
- package/templates/github/workflows/harness-trigger.yml +144 -0
- package/templates/repo/gitignore +5 -0
- package/templates/scripts/README.md +1 -1
- package/templates/scripts/autonomous-watcher.sh +121 -249
- package/templates/scripts/create-worktree.sh +52 -10
- package/templates/scripts/docs-search-server.sh +88 -17
- package/templates/scripts/lib/harness-run-lib.sh +614 -14
- package/templates/scripts/remote-run.sh +3684 -144
- package/templates/scripts/scratch-run.sh +54 -73
- package/templates/state-dir/README-root.md +1 -1
- package/templates/state-dir/scratch/README.md +4 -2
- package/templates/state-dir/user_reviews/README.md +2 -2
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generator: the
|
|
3
|
-
* the watcher dispatches a run to,
|
|
4
|
-
*
|
|
2
|
+
* Generator: the GitHub Actions workflows remote execution runs on — `harness-run.yml`, the job
|
|
3
|
+
* the watcher dispatches a run to, `harness-resume.yml`, the self-disabling resume poller,
|
|
4
|
+
* `harness-trigger.yml`, the issue-label and `repository_dispatch` trigger, and `harness-control.yml`,
|
|
5
|
+
* the comment-command and review handler — written into the adopter's `.github/workflows/`.
|
|
5
6
|
*
|
|
6
|
-
* **The rule this module exists to enforce: the workflows are written exactly when
|
|
7
|
-
* `config/model.ts` → `remoteExecutionApplies(config)` holds,
|
|
7
|
+
* **The rule this module exists to enforce: the first two workflows are written exactly when
|
|
8
|
+
* `config/model.ts` → `remoteExecutionApplies(config)` holds, the two forge workflows — the trigger
|
|
9
|
+
* and the control workflow — exactly when `config/model.ts` → `forgeTriggerApplies(config)` also
|
|
10
|
+
* holds, and all four from the templates under
|
|
8
11
|
* `cli/templates/` → {@link WORKFLOW_TEMPLATE_DIR} only.** With the key absent or `local` this module
|
|
9
12
|
* enqueues nothing, so such a repository receives exactly what `init` wrote before remote execution
|
|
10
|
-
* existed. Every name — the directory,
|
|
13
|
+
* existed. Every name — the directory, the file names, the template directory — is imported from
|
|
11
14
|
* `remote/githubActions.ts`, which owns them.
|
|
12
15
|
*
|
|
13
|
-
* ##
|
|
16
|
+
* ## Five non-obvious choices, and where each comes from
|
|
14
17
|
*
|
|
15
18
|
* 1. **No configured value is rendered into either file; only this CLI's own version is.** The job
|
|
16
19
|
* reads `harness.config.json` at run time, so a workflow frozen with a configured value would go
|
|
@@ -23,44 +26,146 @@
|
|
|
23
26
|
* pattern never matches one and the check sees only `{{cliVersion}}`.
|
|
24
27
|
* 3. **`harness-resume.yml` is copied verbatim, not rendered.** It carries no token, so there is no
|
|
25
28
|
* value for the renderer to check; a token added to it later belongs in this module first.
|
|
29
|
+
* 4. **The upgrade mode ({@link GithubWorkflowsOptions.upgrade}) replaces through a per-request
|
|
30
|
+
* `forceOverride: 'always'`, not a fifth `WritePolicy`.** The engine's `.bak`-then-replace is
|
|
31
|
+
* exactly the operation wanted, and `core/writer.ts` reserves new policies for a new re-run
|
|
32
|
+
* contract. The condition is the pin `remote/githubActions.ts` → `renderedCliVersions` reads from
|
|
33
|
+
* `harness-run.yml`: absent, or any value other than this CLI's version. A re-render writes that
|
|
34
|
+
* version, so a second run finds nothing to replace. The resume poller's `- cron:` lines are
|
|
35
|
+
* carried into its re-render because the schedule is the one thing an adopter tunes inside that
|
|
36
|
+
* file; every other edit to either file survives only in its `.bak`. The runner and the timeouts
|
|
37
|
+
* are repository variables, which the re-render does not touch.
|
|
38
|
+
* 5. **The two forge workflows — the trigger and the control workflow — are gated on
|
|
39
|
+
* `forgeTriggerApplies`, carry no pin and are not upgraded,** because each calls the scripts on the
|
|
40
|
+
* default branch and shares their re-run contract. Both are copied verbatim like
|
|
41
|
+
* `harness-resume.yml` (choice 3) and never carry a `forceOverride`, upgrade mode included.
|
|
26
42
|
*
|
|
27
|
-
*
|
|
43
|
+
* **Declared mirror.** `cli/templates/github/workflows/harness-run.yml`'s `Install the pinned plugin`
|
|
44
|
+
* step spells the route {@link upgradeWorkflowsCommand} produces,
|
|
45
|
+
* `npx autonomous-sdlc-harness@<version> init --upgrade-workflows`, as a literal the compiler cannot
|
|
46
|
+
* reach, and declares the mirror in its own `# DECLARED MIRRORS` block: a change to
|
|
47
|
+
* {@link UPGRADE_WORKFLOWS_FLAG} or to that route is an edit to that line too.
|
|
48
|
+
*
|
|
49
|
+
* **This module owns {@link IN_FLIGHT_RUNS_NOTE}.** `init`'s upgrade report and `doctor`'s
|
|
50
|
+
* `remote-execution` version warning both print it, and neither re-spells it.
|
|
51
|
+
*
|
|
52
|
+
* Every file is `create-if-absent`: the adopter tunes the cron, the timeouts and the runner, and a
|
|
28
53
|
* re-run keeps that edit; `--force` replaces each after a `.bak` (`core/writer.ts`'s re-run table).
|
|
29
54
|
*/
|
|
55
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
30
56
|
import { join } from 'node:path';
|
|
31
|
-
import { remoteExecutionApplies } from '../config/model.js';
|
|
57
|
+
import { forgeTriggerApplies, remoteExecutionApplies } from '../config/model.js';
|
|
32
58
|
import { ownManifestString, readTemplate } from '../core/paths.js';
|
|
33
59
|
import { renderTemplate } from '../core/templating.js';
|
|
34
|
-
import {
|
|
60
|
+
import { unquoteYamlScalar } from '../core/yamlScalar.js';
|
|
61
|
+
import { WORKFLOW_RESUME_FILE, WORKFLOW_RESUME_PATH, WORKFLOW_CONTROL_FILE, WORKFLOW_CONTROL_PATH, WORKFLOW_RUN_FILE, WORKFLOW_RUN_PATH, WORKFLOW_TEMPLATE_DIR, WORKFLOW_TRIGGER_FILE, WORKFLOW_TRIGGER_PATH, renderedCliVersions, } from '../remote/githubActions.js';
|
|
62
|
+
/** The `init` flag that runs {@link writeGithubWorkflows} with {@link GithubWorkflowsOptions.upgrade}. */
|
|
63
|
+
export const UPGRADE_WORKFLOWS_FLAG = '--upgrade-workflows';
|
|
64
|
+
/** The one producer of the `npx <package>@<version>` prefix a version-pinned remedy command starts with. */
|
|
65
|
+
export function pinnedCliCommand(version) {
|
|
66
|
+
return `npx ${ownManifestString('name')}@${version}`;
|
|
67
|
+
}
|
|
68
|
+
/** The one producer of the command that re-renders both workflows at `version`. */
|
|
69
|
+
export function upgradeWorkflowsCommand(version) {
|
|
70
|
+
return `${pinnedCliCommand(version)} init ${UPGRADE_WORKFLOWS_FLAG}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The upgrade route's one statement that an upgrade does not reach a run already in flight. One
|
|
74
|
+
* complete sentence ending in exactly one `.` and carrying no backtick, so a caller joins it with a
|
|
75
|
+
* space. Its citation is spelled as `harness-run.yml`'s `upgrade_route` spells it.
|
|
76
|
+
*/
|
|
77
|
+
export const IN_FLIGHT_RUNS_NOTE = "An upgrade reaches only the runs dropped after it is pushed: each run's branch carries the workflows it was cut with, so a run already in flight finishes on the version it started with, and moving one on purpose is a separate step (docs/remote-execution.md, section 7, Upgrading).";
|
|
78
|
+
const CRON_LINE = /^\s*- cron: /;
|
|
79
|
+
/** The schedule a `- cron:` line carries, quotes stripped. */
|
|
80
|
+
function cronExpression(line) {
|
|
81
|
+
return unquoteYamlScalar(line.replace(CRON_LINE, '').trim());
|
|
82
|
+
}
|
|
83
|
+
/** Substitute `cron` for the template's `- cron:` line, at the template's indentation. */
|
|
84
|
+
function carryCron(template, cron) {
|
|
85
|
+
return template
|
|
86
|
+
.split('\n')
|
|
87
|
+
.flatMap((line) => {
|
|
88
|
+
if (!CRON_LINE.test(line))
|
|
89
|
+
return [line];
|
|
90
|
+
const indent = line.slice(0, line.length - line.trimStart().length);
|
|
91
|
+
return cron.map((carried) => indent + carried.trimStart());
|
|
92
|
+
})
|
|
93
|
+
.join('\n');
|
|
94
|
+
}
|
|
35
95
|
/**
|
|
36
|
-
* Enqueue
|
|
96
|
+
* Enqueue the workflows when remote execution is on — the trigger and control workflows only when
|
|
97
|
+
* `forgeTriggerApplies` also holds — and nothing otherwise.
|
|
37
98
|
*
|
|
38
|
-
* Nothing here
|
|
99
|
+
* Nothing here writes the filesystem: the generator plans, and `init` applies the plan once. The
|
|
100
|
+
* upgrade mode reads the two existing workflows to decide.
|
|
39
101
|
*/
|
|
40
|
-
export function writeGithubWorkflows({ repoRoot, config, plan }) {
|
|
102
|
+
export function writeGithubWorkflows({ repoRoot, config, plan, upgrade = false, }) {
|
|
41
103
|
if (!remoteExecutionApplies(config))
|
|
42
|
-
return { written: false, workflows: [] };
|
|
104
|
+
return { written: false, workflows: [], trigger: false };
|
|
43
105
|
const runPath = join(repoRoot, ...WORKFLOW_RUN_PATH.split('/'));
|
|
44
106
|
const resumePath = join(repoRoot, ...WORKFLOW_RESUME_PATH.split('/'));
|
|
107
|
+
const version = ownManifestString('version');
|
|
108
|
+
let upgradeResult;
|
|
109
|
+
let resumeContent = readTemplate(`${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_RESUME_FILE}`);
|
|
110
|
+
let replaceResume = false;
|
|
111
|
+
if (upgrade && existsSync(runPath)) {
|
|
112
|
+
const renderedFor = renderedCliVersions(readFileSync(runPath, 'utf8'));
|
|
113
|
+
const replaced = renderedFor.length === 0 || renderedFor.some((pin) => pin !== version);
|
|
114
|
+
let cron;
|
|
115
|
+
if (replaced && existsSync(resumePath)) {
|
|
116
|
+
const existing = readFileSync(resumePath, 'utf8');
|
|
117
|
+
const lines = existing.split(/\r?\n/).filter((line) => CRON_LINE.test(line));
|
|
118
|
+
if (lines.length > 0) {
|
|
119
|
+
cron = lines.map(cronExpression);
|
|
120
|
+
resumeContent = carryCron(resumeContent, lines);
|
|
121
|
+
}
|
|
122
|
+
replaceResume = existing !== resumeContent;
|
|
123
|
+
}
|
|
124
|
+
upgradeResult = { renderedFor, to: version, replaced, cron };
|
|
125
|
+
}
|
|
45
126
|
const runTemplate = `${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_RUN_FILE}`;
|
|
46
127
|
plan.add({
|
|
47
128
|
path: runPath,
|
|
48
129
|
policy: 'create-if-absent',
|
|
49
|
-
content: renderTemplate(readTemplate(runTemplate), { cliVersion:
|
|
130
|
+
content: renderTemplate(readTemplate(runTemplate), { cliVersion: version }, { describe: `the workflow template ${runTemplate}`, assertNoneSurvive: true }),
|
|
50
131
|
label: `workflow ${WORKFLOW_RUN_FILE}`,
|
|
132
|
+
...(upgradeResult?.replaced === true ? { forceOverride: 'always' } : {}),
|
|
51
133
|
});
|
|
52
134
|
plan.add({
|
|
53
135
|
path: resumePath,
|
|
54
136
|
policy: 'create-if-absent',
|
|
55
|
-
content:
|
|
137
|
+
content: resumeContent,
|
|
56
138
|
label: `workflow ${WORKFLOW_RESUME_FILE}`,
|
|
139
|
+
...(replaceResume ? { forceOverride: 'always' } : {}),
|
|
57
140
|
});
|
|
141
|
+
const workflows = [
|
|
142
|
+
{ absolute: runPath, repoPath: WORKFLOW_RUN_PATH },
|
|
143
|
+
{ absolute: resumePath, repoPath: WORKFLOW_RESUME_PATH },
|
|
144
|
+
];
|
|
145
|
+
const trigger = forgeTriggerApplies(config);
|
|
146
|
+
if (trigger) {
|
|
147
|
+
const triggerPath = join(repoRoot, ...WORKFLOW_TRIGGER_PATH.split('/'));
|
|
148
|
+
plan.add({
|
|
149
|
+
path: triggerPath,
|
|
150
|
+
policy: 'create-if-absent',
|
|
151
|
+
content: readTemplate(`${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_TRIGGER_FILE}`),
|
|
152
|
+
label: `workflow ${WORKFLOW_TRIGGER_FILE}`,
|
|
153
|
+
});
|
|
154
|
+
workflows.push({ absolute: triggerPath, repoPath: WORKFLOW_TRIGGER_PATH });
|
|
155
|
+
const controlPath = join(repoRoot, ...WORKFLOW_CONTROL_PATH.split('/'));
|
|
156
|
+
plan.add({
|
|
157
|
+
path: controlPath,
|
|
158
|
+
policy: 'create-if-absent',
|
|
159
|
+
content: readTemplate(`${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_CONTROL_FILE}`),
|
|
160
|
+
label: `workflow ${WORKFLOW_CONTROL_FILE}`,
|
|
161
|
+
});
|
|
162
|
+
workflows.push({ absolute: controlPath, repoPath: WORKFLOW_CONTROL_PATH });
|
|
163
|
+
}
|
|
58
164
|
return {
|
|
59
165
|
written: true,
|
|
60
|
-
workflows
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
],
|
|
166
|
+
workflows,
|
|
167
|
+
trigger,
|
|
168
|
+
...(upgradeResult === undefined ? {} : { upgrade: upgradeResult }),
|
|
64
169
|
};
|
|
65
170
|
}
|
|
66
171
|
//# sourceMappingURL=githubWorkflows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubWorkflows.js","sourceRoot":"","sources":["../../src/generators/githubWorkflows.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"githubWorkflows.js","sourceRoot":"","sources":["../../src/generators/githubWorkflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,15 +55,20 @@
|
|
|
55
55
|
* **either** predicate holds, as **one** `merge-json` request carrying whichever halves apply —
|
|
56
56
|
* two requests for one path would be two writers of one file. With retrieval on and no browser
|
|
57
57
|
* driven, the file declares the docs server alone.
|
|
58
|
-
* 4. **The block covers files a harness command creates, and of the `.bak` siblings only
|
|
59
|
-
*
|
|
58
|
+
* 4. **The block covers files a harness command creates, and of the `.bak` siblings only four, each
|
|
59
|
+
* by exact path.** OS and editor noise (`.DS_Store`, `*~`) is per-developer and per-OS, so it
|
|
60
60
|
* belongs in the adopter's own ignore file or a global `core.excludesFile` and not in a block
|
|
61
|
-
* every adopter shares.
|
|
62
|
-
* the
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
61
|
+
* every adopter shares. Ignored: the {@link CONFIG_FILENAME} `.bak`, which `config set` writes on
|
|
62
|
+
* the documented path, root-anchored; the two remote-execution workflows' `.bak` files, because
|
|
63
|
+
* `init --upgrade-workflows` is the routine route on every release and its own report names each
|
|
64
|
+
* copy, so `git status` visibility adds nothing; and the permission profile's `.bak`, because it
|
|
65
|
+
* carries the same machine paths as the profile. The `.bak` copies `init --force` takes of every
|
|
66
|
+
* other generated file are the adopter's previous copies of files they edit, from a deliberate
|
|
67
|
+
* regeneration whose value is that they stay visible. No glob such as `.github/workflows/*.yml.bak`
|
|
68
|
+
* stands in for the workflow pair: it would claim the adopter's own workflow backups, which no
|
|
69
|
+
* harness command creates. A bare `*.bak` has no path component and so matches at every depth of
|
|
70
|
+
* the adopter's tree; this block is append-only, so a too-wide rule can be withdrawn only by hand
|
|
71
|
+
* in every adopter's file.
|
|
67
72
|
*
|
|
68
73
|
* Nothing here touches the filesystem beyond reading its templates: the generator plans, and `init`
|
|
69
74
|
* applies the plan once.
|
|
@@ -75,6 +80,7 @@ import { isJsonObject } from '../core/json.js';
|
|
|
75
80
|
import { readTemplate } from '../core/paths.js';
|
|
76
81
|
import { normalizeRepoDir } from '../core/repoPaths.js';
|
|
77
82
|
import { renderTemplate } from '../core/templating.js';
|
|
83
|
+
import { WORKFLOW_RESUME_PATH, WORKFLOW_RUN_PATH } from '../remote/githubActions.js';
|
|
78
84
|
import { DOCS_SERVER_NAME } from '../retrieval/server.js';
|
|
79
85
|
import { INDEX_DIR_NAME } from '../retrieval/store.js';
|
|
80
86
|
import { PUSH_ENV_PATH, QA_CREDENTIALS_PATH } from './harnessConfig.js';
|
|
@@ -484,6 +490,9 @@ export function writeRepoRootFiles({ repoRoot, config, plan }) {
|
|
|
484
490
|
testRunLogsReadmeException: testRunLogs.readmeException,
|
|
485
491
|
// Derived from the configuration's own filename, so a rename moves its ignore rule with it.
|
|
486
492
|
configBackupFile: `${CONFIG_FILENAME}.bak`,
|
|
493
|
+
// Ungated (choice 4): a rule gated on `remoteExecutionApplies` would change `.gitignore` in the
|
|
494
|
+
// same run that turns remote execution on. No leading slash: each path has an inner separator.
|
|
495
|
+
harnessBackups: [WORKFLOW_RUN_PATH, WORKFLOW_RESUME_PATH, PROFILE_PATH].map((path) => `${path}.bak`).join('\n'),
|
|
487
496
|
qaBrowserArtifacts,
|
|
488
497
|
docsRetrievalIndex,
|
|
489
498
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repoRoot.js","sourceRoot":"","sources":["../../src/generators/repoRoot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repoRoot.js","sourceRoot":"","sources":["../../src/generators/repoRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,31 @@
|
|
|
4
4
|
* **The rule this module exists to enforce: every remote-execution name has one owner, and a copy
|
|
5
5
|
* anywhere else in `cli/src` imports it.** The workflow file names and paths, the template directory,
|
|
6
6
|
* the repository secret and variable names, the two artifact names and the `gh` test-seam variable
|
|
7
|
-
* are declared here once; the generator that writes the workflows and the `doctor` checks that grade
|
|
8
|
-
* them read these constants rather than retyping a literal.
|
|
7
|
+
* and the rendered CLI-version pin are declared here once; the generator that writes the workflows and the `doctor` checks that grade
|
|
8
|
+
* them read these constants rather than retyping a literal, and so does `generators/repoRoot.ts`,
|
|
9
|
+
* which spells the two workflow `.bak` ignore rules whatever `execution.target` says.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
* every consumer tests that switch first.
|
|
11
|
+
* Except in `generators/repoRoot.ts`, nothing here is consulted unless `config/model.ts` →
|
|
12
|
+
* `remoteExecutionApplies(config)` is true: every other consumer tests that switch first. That one
|
|
13
|
+
* is ungated because a gated rule would change `.gitignore` in the same run that turns remote
|
|
14
|
+
* execution on. The issue-trigger names (`WORKFLOW_TRIGGER_*`, `TRIGGER_*`, `DEFAULT_TRIGGER_LABEL`,
|
|
15
|
+
* `LEGACY_TRIGGER_LABEL`)
|
|
16
|
+
* and the run-control names (`WORKFLOW_CONTROL_*`, `COMMAND_*`, `COMMENT_MARKER`,
|
|
17
|
+
* `REVIEW_ROUND_STATE`, `STATE_LABEL_PREFIX`, `RUN_STATES`, `STATE_LABELS`, `PR_CREATE_SETTING`,
|
|
18
|
+
* `PR_CREATE_SETTING_PATH`) are gated tighter
|
|
19
|
+
* still: they are consulted only where `forgeTriggerApplies(config)` is true.
|
|
12
20
|
*
|
|
13
21
|
* **Shell and YAML mirrors that must agree byte for byte.** The compiler cannot reach them, so each
|
|
14
22
|
* declares the mirror in its own header, and a rename here is an edit to each of them:
|
|
15
|
-
* `cli/templates/scripts/remote-run.sh`, `cli/templates/github/workflows/harness-run.yml
|
|
16
|
-
* `cli/templates/github/workflows/harness-resume.yml
|
|
17
|
-
*
|
|
23
|
+
* `cli/templates/scripts/remote-run.sh`, `cli/templates/github/workflows/harness-run.yml`,
|
|
24
|
+
* `cli/templates/github/workflows/harness-resume.yml`,
|
|
25
|
+
* `cli/templates/github/workflows/harness-trigger.yml`,
|
|
26
|
+
* `cli/templates/github/workflows/harness-control.yml` and
|
|
27
|
+
* `cli/templates/scripts/lib/harness-run-lib.sh`, which mirrors {@link WORKFLOW_RUN_FILE} and
|
|
28
|
+
* {@link STATE_ARTIFACT_NAME} for the GitHub route its notification producers print.
|
|
29
|
+
* `cli/templates/scripts/autonomous-watcher.sh` is not one: it reaches GitHub only through
|
|
30
|
+
* `remote-run.sh`, spells none of these names in code, and reaches the GitHub-route text only through
|
|
31
|
+
* the library's `hr_github_answer_route` and `hr_github_resume_route`.
|
|
18
32
|
*
|
|
19
33
|
* **Why {@link GH_CLI_VARIABLE} exists.** Every real route into `gh` reaches the network, which no
|
|
20
34
|
* test may do, so the binary run as `gh` is taken from `${HARNESS_GH_CLI:-gh}` in both this CLI and
|
|
@@ -24,12 +38,44 @@
|
|
|
24
38
|
* It reads no configuration and writes nothing.
|
|
25
39
|
*/
|
|
26
40
|
import { spawnSync } from 'node:child_process';
|
|
41
|
+
import { unquoteYamlScalar } from '../core/yamlScalar.js';
|
|
27
42
|
/** The adopter-side directory GitHub reads workflows from. */
|
|
28
43
|
export const WORKFLOWS_DIR = '.github/workflows';
|
|
29
44
|
export const WORKFLOW_RUN_FILE = 'harness-run.yml';
|
|
30
45
|
export const WORKFLOW_RUN_PATH = `${WORKFLOWS_DIR}/${WORKFLOW_RUN_FILE}`;
|
|
31
46
|
export const WORKFLOW_RESUME_FILE = 'harness-resume.yml';
|
|
32
47
|
export const WORKFLOW_RESUME_PATH = `${WORKFLOWS_DIR}/${WORKFLOW_RESUME_FILE}`;
|
|
48
|
+
/** The workflow that turns a labelled issue or a `repository_dispatch` event into a remote run. */
|
|
49
|
+
export const WORKFLOW_TRIGGER_FILE = 'harness-trigger.yml';
|
|
50
|
+
export const WORKFLOW_TRIGGER_PATH = `${WORKFLOWS_DIR}/${WORKFLOW_TRIGGER_FILE}`;
|
|
51
|
+
/** The workflow that turns a comment command or a review into a harness action. */
|
|
52
|
+
export const WORKFLOW_CONTROL_FILE = 'harness-control.yml';
|
|
53
|
+
export const WORKFLOW_CONTROL_PATH = `${WORKFLOWS_DIR}/${WORKFLOW_CONTROL_FILE}`;
|
|
54
|
+
/** The first word of a command comment, matched case-insensitively. */
|
|
55
|
+
export const COMMAND_HANDLE = '@sdlc-harness';
|
|
56
|
+
/** The verbs a command comment may carry after {@link COMMAND_HANDLE}. */
|
|
57
|
+
export const COMMAND_VERBS = ['answer', 'pause', 'resume', 'stop', 'clear'];
|
|
58
|
+
/**
|
|
59
|
+
* The prefix of the hidden line every harness comment carries; the whole line is
|
|
60
|
+
* `<!-- sdlc-harness event=<event> branch=<branch>[ question=<n>] -->`. A comment containing the
|
|
61
|
+
* prefix anywhere is never a command.
|
|
62
|
+
*/
|
|
63
|
+
export const COMMENT_MARKER = '<!-- sdlc-harness';
|
|
64
|
+
/** The `review.state` that starts a review round, lowercase as the webhook payload carries it. */
|
|
65
|
+
export const REVIEW_ROUND_STATE = 'changes_requested';
|
|
66
|
+
/** The prefix every run-state label's name starts with. */
|
|
67
|
+
export const STATE_LABEL_PREFIX = 'sdlc-harness: ';
|
|
68
|
+
/** The states a run's pull request is labelled with, one label each. */
|
|
69
|
+
export const RUN_STATES = ['running', 'parked', 'paused', 'done', 'failed', 'stopped'];
|
|
70
|
+
/** The label name for each {@link RunState}; total, so a new state fails to compile until it has one. */
|
|
71
|
+
export const STATE_LABELS = {
|
|
72
|
+
running: `${STATE_LABEL_PREFIX}running`,
|
|
73
|
+
parked: `${STATE_LABEL_PREFIX}parked`,
|
|
74
|
+
paused: `${STATE_LABEL_PREFIX}paused`,
|
|
75
|
+
done: `${STATE_LABEL_PREFIX}done`,
|
|
76
|
+
failed: `${STATE_LABEL_PREFIX}failed`,
|
|
77
|
+
stopped: `${STATE_LABEL_PREFIX}stopped`,
|
|
78
|
+
};
|
|
33
79
|
/** Under `cli/templates/`; stored without the dot, which `init` adds (`cli/templates/README.md`). */
|
|
34
80
|
export const WORKFLOW_TEMPLATE_DIR = 'github/workflows';
|
|
35
81
|
/** The Actions artifact every job uploads its state bundle as. */
|
|
@@ -40,14 +86,71 @@ export const POLL_STATE_ARTIFACT_NAME = 'harness-poll-state';
|
|
|
40
86
|
export const RUNNER_VARIABLE = 'HARNESS_RUNNER';
|
|
41
87
|
/** Repository variable: any non-empty value stops every job and poller tick before it launches. */
|
|
42
88
|
export const REMOTE_STOP_VARIABLE = 'HARNESS_REMOTE_STOP';
|
|
89
|
+
/** Repository variable naming the issue label that starts a run; unset or empty means {@link DEFAULT_TRIGGER_LABEL}. */
|
|
90
|
+
export const TRIGGER_LABEL_VARIABLE = 'HARNESS_TRIGGER_LABEL';
|
|
91
|
+
/** The issue label that starts a run when {@link TRIGGER_LABEL_VARIABLE} is unset or empty. */
|
|
92
|
+
export const DEFAULT_TRIGGER_LABEL = 'sdlc-harness';
|
|
93
|
+
/**
|
|
94
|
+
* The previous release's {@link DEFAULT_TRIGGER_LABEL}. The trigger still accepts it when its
|
|
95
|
+
* workflow passes no label, which only that release's `harness-trigger.yml` does: it is never
|
|
96
|
+
* re-rendered by `init --upgrade-workflows`, and its own `if:` already ran the job for this label.
|
|
97
|
+
*/
|
|
98
|
+
export const LEGACY_TRIGGER_LABEL = 'harness';
|
|
99
|
+
const TRIGGER_FALLBACK_PATTERN = new RegExp(`\\(\\s*vars\\.${TRIGGER_LABEL_VARIABLE}\\s*\\|\\|\\s*'([^']+)'\\s*\\)`);
|
|
100
|
+
/**
|
|
101
|
+
* The label a trigger workflow's text falls back to when {@link TRIGGER_LABEL_VARIABLE} is unset: the
|
|
102
|
+
* single-quoted literal of the first `(vars.HARNESS_TRIGGER_LABEL || '<label>')`, or `undefined` when
|
|
103
|
+
* no line carries one. Pure — the caller reads the file. It exists because the committed
|
|
104
|
+
* `harness-trigger.yml` carries no version pin and is never upgraded, so its own fallback, not
|
|
105
|
+
* {@link DEFAULT_TRIGGER_LABEL}, is what starts a run in a repository wired by an earlier release.
|
|
106
|
+
*/
|
|
107
|
+
export function triggerFallbackLabel(text) {
|
|
108
|
+
for (const line of text.split(/\r?\n/)) {
|
|
109
|
+
const match = TRIGGER_FALLBACK_PATTERN.exec(line);
|
|
110
|
+
if (match !== null)
|
|
111
|
+
return match[1];
|
|
112
|
+
}
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
/** Repository variable: comma-separated bot logins that may start a run; unset or empty admits none. */
|
|
116
|
+
export const TRIGGER_ALLOWED_BOTS_VARIABLE = 'HARNESS_TRIGGER_ALLOWED_BOTS';
|
|
117
|
+
/** The `repository_dispatch` `event_type` the trigger workflow listens to. */
|
|
118
|
+
export const TRIGGER_DISPATCH_EVENT_TYPE = 'harness-task';
|
|
43
119
|
/** Repository secret for subscription billing. */
|
|
44
120
|
export const OAUTH_TOKEN_SECRET = 'CLAUDE_CODE_OAUTH_TOKEN';
|
|
45
121
|
/** Repository secret for API billing; wins over {@link OAUTH_TOKEN_SECRET} when both are set. */
|
|
46
122
|
export const API_KEY_SECRET = 'ANTHROPIC_API_KEY';
|
|
47
123
|
export const PUSH_URL_SECRET = 'HARNESS_PUSH_URL';
|
|
48
124
|
export const GIT_TOKEN_SECRET = 'HARNESS_GIT_TOKEN';
|
|
125
|
+
/** GitHub's repository setting that lets a workflow's own token open a pull request; off by default. */
|
|
126
|
+
export const PR_CREATE_SETTING = 'Allow GitHub Actions to create and approve pull requests';
|
|
127
|
+
/** Where an adopter finds {@link PR_CREATE_SETTING} in the repository's settings. */
|
|
128
|
+
export const PR_CREATE_SETTING_PATH = 'Settings -> Actions -> General -> Workflow permissions';
|
|
49
129
|
/** The environment variable naming the binary run as `gh`: `${HARNESS_GH_CLI:-gh}`. */
|
|
50
130
|
export const GH_CLI_VARIABLE = 'HARNESS_GH_CLI';
|
|
131
|
+
/**
|
|
132
|
+
* The job-level `env:` variable carrying the CLI version a rendered `harness-run.yml` is pinned to.
|
|
133
|
+
* Mirrored in `cli/templates/github/workflows/harness-run.yml`, once per job.
|
|
134
|
+
*/
|
|
135
|
+
export const CLI_VERSION_VARIABLE = 'HARNESS_CLI_VERSION';
|
|
136
|
+
const CLI_VERSION_LINE = new RegExp(`^[ \\t]*${CLI_VERSION_VARIABLE}:[ \\t]*(.*?)(?:[ \\t]+#.*)?[ \\t]*$`);
|
|
137
|
+
/**
|
|
138
|
+
* Every version a workflow's text is pinned to: the value of each `<indent>HARNESS_CLI_VERSION: <value>`
|
|
139
|
+
* line, a trailing ` # comment` and the quotes stripped, distinct and in file order; `[]` when no such
|
|
140
|
+
* line exists. Pure — the caller reads the file.
|
|
141
|
+
*/
|
|
142
|
+
export function renderedCliVersions(text) {
|
|
143
|
+
const versions = [];
|
|
144
|
+
for (const line of text.split(/\r?\n/)) {
|
|
145
|
+
const match = CLI_VERSION_LINE.exec(line);
|
|
146
|
+
if (match === null)
|
|
147
|
+
continue;
|
|
148
|
+
const value = unquoteYamlScalar(match[1] ?? '');
|
|
149
|
+
if (value !== '' && !versions.includes(value))
|
|
150
|
+
versions.push(value);
|
|
151
|
+
}
|
|
152
|
+
return versions;
|
|
153
|
+
}
|
|
51
154
|
/** The binary run as `gh` when {@link GH_CLI_VARIABLE} is unset or empty. */
|
|
52
155
|
export const DEFAULT_GH_CLI = 'gh';
|
|
53
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubActions.js","sourceRoot":"","sources":["../../src/remote/githubActions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"githubActions.js","sourceRoot":"","sources":["../../src/remote/githubActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every fact about the Python docs-retrieval backend that both the launcher and `doctor` need: the
|
|
3
|
+
* console script's name, its sub-commands, the database variable, the default connection string, the
|
|
4
|
+
* launcher's unavailable-backend exit code, the `self-check` line contract and the launcher's `PATH`
|
|
5
|
+
* fallback list.
|
|
6
|
+
*
|
|
7
|
+
* **The rule this module exists to enforce: every name the Python backend is reached by is spelled
|
|
8
|
+
* here once, and each copy outside the compiler is a declared mirror.**
|
|
9
|
+
*
|
|
10
|
+
* Pure data and pure functions: this module spawns nothing, reads no file and imports no retrieval
|
|
11
|
+
* peer, so `cli/test/retrieval-loading.test.mjs`'s guarantees do not reach it.
|
|
12
|
+
*
|
|
13
|
+
* **MIRRORS.** Each copy outside the compiler, and what it holds:
|
|
14
|
+
* - `cli/templates/scripts/docs-search-server.sh` — {@link PYTHON_RETRIEVAL_COMMAND},
|
|
15
|
+
* {@link PYTHON_SERVE_SUB_COMMAND}, {@link PYTHON_DATABASE_URL_VARIABLE},
|
|
16
|
+
* {@link PYTHON_DEFAULT_DATABASE_URL} and {@link PYTHON_BACKEND_UNAVAILABLE_EXIT}.
|
|
17
|
+
* - `docs-retrieval-service/compose.yaml` → `postgres` — the user, password, database and port inside
|
|
18
|
+
* {@link PYTHON_DEFAULT_DATABASE_URL}.
|
|
19
|
+
* - `docs-retrieval-service/src/harness_docs_retrieval/self_check.py` — `SELF_CHECK_QUESTIONS`
|
|
20
|
+
* ({@link SELF_CHECK_QUESTIONS}), `CheckLine.render` (the line shape {@link parseSelfCheck} reads)
|
|
21
|
+
* and `_check_index`'s not-attempted detail ({@link SELF_CHECK_INDEX_NOT_ATTEMPTED}).
|
|
22
|
+
* - `docs-retrieval-service/src/harness_docs_retrieval/store.py` — `DATABASE_URL_ENV`
|
|
23
|
+
* ({@link PYTHON_DATABASE_URL_VARIABLE}).
|
|
24
|
+
* - `cli/templates/scripts/lib/harness-run-lib.sh` → `hr_path_with_fallbacks` —
|
|
25
|
+
* {@link LAUNCHER_PATH_FALLBACKS} and the policy {@link launcherSearchPath} reproduces.
|
|
26
|
+
* - `docs-retrieval-service/tests/test_launcher_e2e.py` — `_BACKEND_UNAVAILABLE_EXIT`
|
|
27
|
+
* ({@link PYTHON_BACKEND_UNAVAILABLE_EXIT}).
|
|
28
|
+
*
|
|
29
|
+
* A change to a mirrored literal is an edit to every file that mirrors it, in the same change; a
|
|
30
|
+
* mirror this header does not declare is a defect (`.claude/context/conventions.md` →
|
|
31
|
+
* `## Configuration is the source of truth…`, the persisted-key bullet).
|
|
32
|
+
*/
|
|
33
|
+
/** The Python package's console script. */
|
|
34
|
+
export const PYTHON_RETRIEVAL_COMMAND = 'harness-docs-retrieval';
|
|
35
|
+
/** The sub-command the launcher runs as its child to serve MCP over stdio, never `exec`ed. */
|
|
36
|
+
export const PYTHON_SERVE_SUB_COMMAND = 'serve-mcp';
|
|
37
|
+
/** The sub-command whose stdout {@link parseSelfCheck} reads. */
|
|
38
|
+
export const PYTHON_SELF_CHECK_SUB_COMMAND = 'self-check';
|
|
39
|
+
/** The sub-command `doctor`'s missing-weights remedy names. */
|
|
40
|
+
export const PYTHON_FETCH_MODELS_SUB_COMMAND = 'fetch-models';
|
|
41
|
+
/** The variable the Python backend reads its Postgres connection string from. */
|
|
42
|
+
export const PYTHON_DATABASE_URL_VARIABLE = 'HARNESS_DOCS_RETRIEVAL_DATABASE_URL';
|
|
43
|
+
/**
|
|
44
|
+
* The connection string used when {@link PYTHON_DATABASE_URL_VARIABLE} is unset. The credentials are
|
|
45
|
+
* the compose file's throwaway values for a loopback-only container, never a real secret.
|
|
46
|
+
*/
|
|
47
|
+
export const PYTHON_DEFAULT_DATABASE_URL = 'postgresql://harness:harness@127.0.0.1:5432/docs_retrieval';
|
|
48
|
+
/** The launcher's exit code when the Python backend is selected but cannot be started. */
|
|
49
|
+
export const PYTHON_BACKEND_UNAVAILABLE_EXIT = 3;
|
|
50
|
+
/** The questions `self-check` answers, one line each, in this order. */
|
|
51
|
+
export const SELF_CHECK_QUESTIONS = ['packages', 'weights', 'index'];
|
|
52
|
+
/** `CheckLine.render`'s two prefixes; the `ok` one is padded to the width of `FAIL `. */
|
|
53
|
+
const SELF_CHECK_LINE = /^(ok {3}|FAIL )([a-z]+): (.*)$/;
|
|
54
|
+
/**
|
|
55
|
+
* The `index` line's detail when an earlier question failed, naming that question — `_check_index`'s
|
|
56
|
+
* `not attempted, because … failed`.
|
|
57
|
+
*/
|
|
58
|
+
export const SELF_CHECK_INDEX_NOT_ATTEMPTED = /^not attempted, because (packages|weights) failed$/;
|
|
59
|
+
/**
|
|
60
|
+
* Parse `self-check`'s stdout. Answers `undefined` unless the non-empty lines are exactly one per
|
|
61
|
+
* {@link SELF_CHECK_QUESTIONS} entry, in that order, each in `CheckLine.render`'s shape — a shape this
|
|
62
|
+
* cannot read is the caller's to report, never guessed at.
|
|
63
|
+
*/
|
|
64
|
+
export function parseSelfCheck(stdout) {
|
|
65
|
+
const lines = stdout.split(/\r?\n/).filter((line) => line.length > 0);
|
|
66
|
+
if (lines.length !== SELF_CHECK_QUESTIONS.length)
|
|
67
|
+
return undefined;
|
|
68
|
+
const parsed = new Map();
|
|
69
|
+
for (const [index, question] of SELF_CHECK_QUESTIONS.entries()) {
|
|
70
|
+
const match = SELF_CHECK_LINE.exec(lines[index] ?? '');
|
|
71
|
+
if (match === null || match[2] !== question)
|
|
72
|
+
return undefined;
|
|
73
|
+
parsed.set(question, { question, ok: match[1] !== 'FAIL ', detail: match[3] ?? '' });
|
|
74
|
+
}
|
|
75
|
+
return parsed;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The connection string the server will use: `serverEnv[PYTHON_DATABASE_URL_VARIABLE]` when
|
|
79
|
+
* `serverEnv` (the `harness-docs` server's `env` object in `.mcp.json`) is an object holding a
|
|
80
|
+
* non-empty string there, else {@link PYTHON_DEFAULT_DATABASE_URL}. A shell export is deliberately not
|
|
81
|
+
* consulted: the agent runner never passes one to the server (`docs/retrieval.md` → **How the variable
|
|
82
|
+
* reaches the server, since an export does not.**).
|
|
83
|
+
*/
|
|
84
|
+
export function pythonDatabaseUrl(serverEnv) {
|
|
85
|
+
if (typeof serverEnv === 'object' && serverEnv !== null && !Array.isArray(serverEnv)) {
|
|
86
|
+
const value = serverEnv[PYTHON_DATABASE_URL_VARIABLE];
|
|
87
|
+
if (typeof value === 'string' && value.length > 0)
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
return PYTHON_DEFAULT_DATABASE_URL;
|
|
91
|
+
}
|
|
92
|
+
/** The fixed directories `hr_path_with_fallbacks` appends, in its order. */
|
|
93
|
+
export const LAUNCHER_PATH_FALLBACKS = ['/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin'];
|
|
94
|
+
/**
|
|
95
|
+
* The `PATH` the launcher resolves {@link PYTHON_RETRIEVAL_COMMAND} on, as `hr_path_with_fallbacks`
|
|
96
|
+
* builds it: the inherited non-empty entries kept in order, each {@link LAUNCHER_PATH_FALLBACKS} entry
|
|
97
|
+
* not already present appended, then `<home>/.local/bin` (one trailing `/` stripped from `home`) when
|
|
98
|
+
* `home` is non-empty and that entry is not among the inherited ones.
|
|
99
|
+
*/
|
|
100
|
+
export function launcherSearchPath(inherited, home) {
|
|
101
|
+
const kept = inherited.split(':').filter((entry) => entry.length > 0);
|
|
102
|
+
const suffix = [];
|
|
103
|
+
for (const dir of LAUNCHER_PATH_FALLBACKS) {
|
|
104
|
+
if (!kept.includes(dir) && !suffix.includes(dir))
|
|
105
|
+
suffix.push(dir);
|
|
106
|
+
}
|
|
107
|
+
if (home !== undefined && home.length > 0) {
|
|
108
|
+
const local = `${home.endsWith('/') ? home.slice(0, -1) : home}/.local/bin`;
|
|
109
|
+
if (!kept.includes(local))
|
|
110
|
+
suffix.push(local);
|
|
111
|
+
}
|
|
112
|
+
return [...kept, ...suffix].join(':');
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=pythonBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pythonBackend.js","sourceRoot":"","sources":["../../src/retrieval/pythonBackend.ts"],"names":[],"mappings":"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"}
|