autonomous-sdlc-harness 0.1.0 → 0.4.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.
Files changed (121) hide show
  1. package/README.md +4 -3
  2. package/dist/cli.js +0 -0
  3. package/dist/commands/docs.js +220 -0
  4. package/dist/commands/docs.js.map +1 -0
  5. package/dist/commands/doctor.js +32 -11
  6. package/dist/commands/doctor.js.map +1 -1
  7. package/dist/commands/init.js +240 -64
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/registry.js +2 -0
  10. package/dist/commands/registry.js.map +1 -1
  11. package/dist/config/check.js +36 -9
  12. package/dist/config/check.js.map +1 -1
  13. package/dist/config/model.js +43 -1
  14. package/dist/config/model.js.map +1 -1
  15. package/dist/core/git.js +29 -0
  16. package/dist/core/git.js.map +1 -1
  17. package/dist/core/layerGapRemedy.js +3 -2
  18. package/dist/core/layerGapRemedy.js.map +1 -1
  19. package/dist/core/paths.js +22 -2
  20. package/dist/core/paths.js.map +1 -1
  21. package/dist/core/pluginIdentity.js +33 -0
  22. package/dist/core/pluginIdentity.js.map +1 -0
  23. package/dist/core/prompt.js +6 -2
  24. package/dist/core/prompt.js.map +1 -1
  25. package/dist/core/report.js +9 -0
  26. package/dist/core/report.js.map +1 -1
  27. package/dist/core/writer.js +24 -5
  28. package/dist/core/writer.js.map +1 -1
  29. package/dist/detect/presets.js +35 -26
  30. package/dist/detect/presets.js.map +1 -1
  31. package/dist/detect/signals.js +13 -9
  32. package/dist/detect/signals.js.map +1 -1
  33. package/dist/doctor/checks.js +483 -38
  34. package/dist/doctor/checks.js.map +1 -1
  35. package/dist/generators/claudeContext.js +4 -5
  36. package/dist/generators/claudeContext.js.map +1 -1
  37. package/dist/generators/githubWorkflows.js +66 -0
  38. package/dist/generators/githubWorkflows.js.map +1 -0
  39. package/dist/generators/harnessConfig.js +13 -5
  40. package/dist/generators/harnessConfig.js.map +1 -1
  41. package/dist/generators/notifications.js +105 -19
  42. package/dist/generators/notifications.js.map +1 -1
  43. package/dist/generators/outerLoopScripts.js +30 -3
  44. package/dist/generators/outerLoopScripts.js.map +1 -1
  45. package/dist/generators/permissionProfile.js +152 -21
  46. package/dist/generators/permissionProfile.js.map +1 -1
  47. package/dist/generators/projectSettings.js +5 -15
  48. package/dist/generators/projectSettings.js.map +1 -1
  49. package/dist/generators/repoRoot.js +148 -25
  50. package/dist/generators/repoRoot.js.map +1 -1
  51. package/dist/generators/scripts.js +4 -1
  52. package/dist/generators/scripts.js.map +1 -1
  53. package/dist/generators/stateDir.js +9 -3
  54. package/dist/generators/stateDir.js.map +1 -1
  55. package/dist/machine/paths.js +19 -4
  56. package/dist/machine/paths.js.map +1 -1
  57. package/dist/machine/plugins.js +2 -1
  58. package/dist/machine/plugins.js.map +1 -1
  59. package/dist/remote/githubActions.js +86 -0
  60. package/dist/remote/githubActions.js.map +1 -0
  61. package/dist/retrieval/chunk.js +158 -0
  62. package/dist/retrieval/chunk.js.map +1 -0
  63. package/dist/retrieval/corpus.js +75 -0
  64. package/dist/retrieval/corpus.js.map +1 -0
  65. package/dist/retrieval/models.js +175 -0
  66. package/dist/retrieval/models.js.map +1 -0
  67. package/dist/retrieval/queryLog.js +70 -0
  68. package/dist/retrieval/queryLog.js.map +1 -0
  69. package/dist/retrieval/refresh.js +55 -0
  70. package/dist/retrieval/refresh.js.map +1 -0
  71. package/dist/retrieval/runtime.js +161 -0
  72. package/dist/retrieval/runtime.js.map +1 -0
  73. package/dist/retrieval/search.js +129 -0
  74. package/dist/retrieval/search.js.map +1 -0
  75. package/dist/retrieval/server.js +197 -0
  76. package/dist/retrieval/server.js.map +1 -0
  77. package/dist/retrieval/session.js +41 -0
  78. package/dist/retrieval/session.js.map +1 -0
  79. package/dist/retrieval/setup.js +121 -0
  80. package/dist/retrieval/setup.js.map +1 -0
  81. package/dist/retrieval/store.js +170 -0
  82. package/dist/retrieval/store.js.map +1 -0
  83. package/package.json +22 -3
  84. package/templates/README.md +3 -2
  85. package/templates/claude/CLAUDE.md +4 -4
  86. package/templates/claude/README.md +3 -1
  87. package/templates/claude/context/conventions.md +1 -1
  88. package/templates/claude/context/layer.md +1 -1
  89. package/templates/claude/push-notify.env.example +7 -2
  90. package/templates/claude/settings.autonomous.json +1 -1
  91. package/templates/claude/settings.autonomous.retrieval.json +9 -0
  92. package/templates/github/workflows/harness-resume.yml +124 -0
  93. package/templates/github/workflows/harness-run.yml +446 -0
  94. package/templates/repo/README.md +2 -0
  95. package/templates/repo/gitignore +6 -0
  96. package/templates/repo/gitignore.retrieval +2 -0
  97. package/templates/repo/mcp.retrieval.json +11 -0
  98. package/templates/scripts/README.md +1 -1
  99. package/templates/scripts/autonomous-notify.sh +10 -4
  100. package/templates/scripts/autonomous-watcher.sh +1445 -221
  101. package/templates/scripts/cleanup-merged-worktrees.sh +126 -8
  102. package/templates/scripts/docs-search-server.sh +64 -0
  103. package/templates/scripts/flow-walker.sh +629 -0
  104. package/templates/scripts/flows/task_plan_writing.graph.json +192 -0
  105. package/templates/scripts/lib/flow-walker-gates.sh +165 -0
  106. package/templates/scripts/lib/harness-run-lib.sh +452 -21
  107. package/templates/scripts/remote-run.sh +1785 -0
  108. package/templates/scripts/restart-watcher.sh +24 -3
  109. package/templates/scripts/run-test-suite.sh +182 -0
  110. package/templates/scripts/scratch-run.sh +2 -1
  111. package/templates/state-dir/README-root.md +1 -1
  112. package/templates/state-dir/autonomous_logs/README.md +1 -1
  113. package/templates/state-dir/business_parity_reviews/README.md +1 -1
  114. package/templates/state-dir/clarification_digests/README.md +1 -1
  115. package/templates/state-dir/clarifications/README.md +4 -4
  116. package/templates/state-dir/improvement_observations/README.md +2 -0
  117. package/templates/state-dir/scratch/README.md +1 -1
  118. package/templates/state-dir/test_fix_plan_reviews/README.md +9 -0
  119. package/templates/state-dir/test_fix_plans/README.md +9 -0
  120. package/templates/state-dir/test_fix_point_reviews/README.md +9 -0
  121. package/templates/state-dir/test_run_logs/README.md +11 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Generator: the two GitHub Actions workflows remote execution runs on — `harness-run.yml`, the job
3
+ * the watcher dispatches a run to, and `harness-resume.yml`, the self-disabling resume poller —
4
+ * written into the adopter's `.github/workflows/`.
5
+ *
6
+ * **The rule this module exists to enforce: the workflows are written exactly when
7
+ * `config/model.ts` → `remoteExecutionApplies(config)` holds, and from the two templates under
8
+ * `cli/templates/` → {@link WORKFLOW_TEMPLATE_DIR} only.** With the key absent or `local` this module
9
+ * enqueues nothing, so such a repository receives exactly what `init` wrote before remote execution
10
+ * existed. Every name — the directory, both file names, the template directory — is imported from
11
+ * `remote/githubActions.ts`, which owns them.
12
+ *
13
+ * ## Three non-obvious choices, and where each comes from
14
+ *
15
+ * 1. **No configured value is rendered into either file; only this CLI's own version is.** The job
16
+ * reads `harness.config.json` at run time, so a workflow frozen with a configured value would go
17
+ * wrong the moment the key changed. The version is the exception because it is the pin the job
18
+ * installs the plugin and runs `npx autonomous-sdlc-harness@<version>` against, and it is read
19
+ * through `core/paths.ts` → `ownManifestString`, the one reader of this package's manifest.
20
+ * 2. **`assertNoneSurvive` is on for `harness-run.yml`.** The one substituted value is a version
21
+ * string, which has no business carrying `{{…}}`; one that did would ship a workflow pinned to
22
+ * nothing. The template's GitHub expressions are all written `${{ ` with a space, so the token
23
+ * pattern never matches one and the check sees only `{{cliVersion}}`.
24
+ * 3. **`harness-resume.yml` is copied verbatim, not rendered.** It carries no token, so there is no
25
+ * value for the renderer to check; a token added to it later belongs in this module first.
26
+ *
27
+ * Both files are `create-if-absent`: the adopter tunes the cron, the timeouts and the runner, and a
28
+ * re-run keeps that edit; `--force` replaces each after a `.bak` (`core/writer.ts`'s re-run table).
29
+ */
30
+ import { join } from 'node:path';
31
+ import { remoteExecutionApplies } from '../config/model.js';
32
+ import { ownManifestString, readTemplate } from '../core/paths.js';
33
+ import { renderTemplate } from '../core/templating.js';
34
+ import { WORKFLOW_RESUME_FILE, WORKFLOW_RESUME_PATH, WORKFLOW_RUN_FILE, WORKFLOW_RUN_PATH, WORKFLOW_TEMPLATE_DIR, } from '../remote/githubActions.js';
35
+ /**
36
+ * Enqueue both workflows when remote execution is on, and nothing otherwise.
37
+ *
38
+ * Nothing here touches the filesystem: the generator plans, and `init` applies the plan once.
39
+ */
40
+ export function writeGithubWorkflows({ repoRoot, config, plan }) {
41
+ if (!remoteExecutionApplies(config))
42
+ return { written: false, workflows: [] };
43
+ const runPath = join(repoRoot, ...WORKFLOW_RUN_PATH.split('/'));
44
+ const resumePath = join(repoRoot, ...WORKFLOW_RESUME_PATH.split('/'));
45
+ const runTemplate = `${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_RUN_FILE}`;
46
+ plan.add({
47
+ path: runPath,
48
+ policy: 'create-if-absent',
49
+ content: renderTemplate(readTemplate(runTemplate), { cliVersion: ownManifestString('version') }, { describe: `the workflow template ${runTemplate}`, assertNoneSurvive: true }),
50
+ label: `workflow ${WORKFLOW_RUN_FILE}`,
51
+ });
52
+ plan.add({
53
+ path: resumePath,
54
+ policy: 'create-if-absent',
55
+ content: readTemplate(`${WORKFLOW_TEMPLATE_DIR}/${WORKFLOW_RESUME_FILE}`),
56
+ label: `workflow ${WORKFLOW_RESUME_FILE}`,
57
+ });
58
+ return {
59
+ written: true,
60
+ workflows: [
61
+ { absolute: runPath, repoPath: WORKFLOW_RUN_PATH },
62
+ { absolute: resumePath, repoPath: WORKFLOW_RESUME_PATH },
63
+ ],
64
+ };
65
+ }
66
+ //# sourceMappingURL=githubWorkflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubWorkflows.js","sourceRoot":"","sources":["../../src/generators/githubWorkflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAsB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAoBpC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAA0B;IACrF,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAE9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,GAAG,qBAAqB,IAAI,iBAAiB,EAAE,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC;QACP,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,cAAc,CACrB,YAAY,CAAC,WAAW,CAAC,EACzB,EAAE,UAAU,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAC5C,EAAE,QAAQ,EAAE,yBAAyB,WAAW,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC9E;QACD,KAAK,EAAE,YAAY,iBAAiB,EAAE;KACvC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC;QACP,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,YAAY,CAAC,GAAG,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;QACzE,KAAK,EAAE,YAAY,oBAAoB,EAAE;KAC1C,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE;YACT,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE;YAClD,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE;SACzD;KACF,CAAC;AACJ,CAAC"}
@@ -160,7 +160,7 @@ function buildCommands(scriptsDir, raw) {
160
160
  * on the same single-derivation rule the reporting lines in `detect/presets.ts` read it by, and the
161
161
  * written key means **this family derived at least one of the two required commands**.
162
162
  *
163
- * **No `review` key is written here.** It is the `/harness-analyze` command's to record through
163
+ * **No `review` key is written here.** It is the `/autonomous-sdlc-harness:harness-analyze` command's to record through
164
164
  * `config set detection.review`, and an empty object would read as a review that happened.
165
165
  *
166
166
  * **Written on the run that generates the file, and never refreshed by a plain re-run.**
@@ -416,11 +416,12 @@ function resolveQaDriver(flag, ask, note, defer) {
416
416
  * `defaultBranch` and `protectedBranches` were written as), {@link resolveQaDriver}'s unknown-answer
417
417
  * arm (what `qa.driver` was written as) and {@link settleQaDriver} (what the written driver costs)
418
418
  * are deferred warnings, and {@link resolveDefaultBranch}'s five rung notes together with
419
- * {@link resolveQaDriver}'s three are deferred notes — every note this assembler has. The
419
+ * {@link resolveQaDriver}'s three and the docs-retrieval could-not-ask note are deferred notes —
420
+ * every note this assembler has. The
420
421
  * `--qa-driver` without `--qa` and `--parity` without `--reference-impl` arms below are not
421
422
  * deferred: each is about a flag the adopter typed on this command line.
422
423
  */
423
- export function buildConfig({ repoRoot, detection, preset, flags, warn, noteIfWritten, warnIfWritten, askDriver, }) {
424
+ export function buildConfig({ repoRoot, detection, preset, flags, warn, noteIfWritten, warnIfWritten, askDriver, askRetrieval, }) {
424
425
  const report = warn ?? (() => { });
425
426
  const informIfWritten = noteIfWritten ?? (() => { });
426
427
  const defer = warnIfWritten ?? (() => { });
@@ -468,7 +469,13 @@ export function buildConfig({ repoRoot, detection, preset, flags, warn, noteIfWr
468
469
  report('--qa-driver was given without --qa, so it was not written anywhere: qa.driver is read only while the interactive test phase is on, and no qa section is written while it is off — re-run with --qa to turn the phase on and set the driver in the same run');
469
470
  }
470
471
  if (phases.docs) {
471
- config.docs = { root: flags.docsRoot ?? DEFAULT_DOCS_ROOT };
472
+ const asked = flags.docsRetrieval === true ? true : askRetrieval?.();
473
+ if (asked === undefined) {
474
+ informIfWritten(`docs retrieval stays off: this run could not ask. Pass --docs-retrieval to turn it on, or later run \`${CLI} config set docs.retrieval true\` and then \`init --force\``);
475
+ }
476
+ // The key is written only when on: an absent key is the schema default, so a declined or unasked
477
+ // run writes the `docs` section it wrote before retrieval existed.
478
+ config.docs = { root: flags.docsRoot ?? DEFAULT_DOCS_ROOT, ...(asked === true ? { retrieval: true } : {}) };
472
479
  }
473
480
  if (phases.parity) {
474
481
  // Omitted rather than written empty when there is nothing to put in it: the phase toggle is
@@ -522,7 +529,7 @@ function keptQaDriverClause(config) {
522
529
  * The write itself, the `.bak` and the `--dry-run` suppression all belong to the write engine; this
523
530
  * generator has no filesystem-mutating call.
524
531
  */
525
- export function writeHarnessConfig({ repoRoot, detection, preset, flags, plan, resetConfig = false, dryRun = false, appDirSource = 'default', askDriver, }) {
532
+ export function writeHarnessConfig({ repoRoot, detection, preset, flags, plan, resetConfig = false, dryRun = false, appDirSource = 'default', askDriver, askRetrieval, }) {
526
533
  const warnings = [];
527
534
  const notes = [];
528
535
  // Both held back until `kept` is known, and published or dropped there — one list per stream
@@ -534,6 +541,7 @@ export function writeHarnessConfig({ repoRoot, detection, preset, flags, plan, r
534
541
  detection,
535
542
  ...(preset === undefined ? {} : { preset }),
536
543
  ...(askDriver === undefined ? {} : { askDriver }),
544
+ ...(askRetrieval === undefined ? {} : { askRetrieval }),
537
545
  flags,
538
546
  warn: (message) => warnings.push(message),
539
547
  warnIfWritten: (message) => ifWritten.push(message),
@@ -1 +1 @@
1
- {"version":3,"file":"harnessConfig.js","sourceRoot":"","sources":["../../src/generators/harnessConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harnessConfig.js","sourceRoot":"","sources":["../../src/generators/harnessConfig.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,10 @@
12
12
  * declares exactly {@link PUSH_URL_KEY} and {@link PUSH_CMD_KEY}. The credential-bearing value is
13
13
  * therefore the push **URL**, and its home is the machine-local `push.env` that `docs/watcher.md`
14
14
  * §6 already names as the first file the notifier reads. "Guided ntfy setup" ships accordingly as a
15
- * vendor-neutral endpoint prompt whose guided line uses `https://ntfy.sh/<your-topic>` as the
16
- * worked example rather than as the only thing that works.
15
+ * vendor-neutral destination: an adopter may give an ntfy topic name, which is written as its
16
+ * `https://ntfy.sh/<topic>` address, or the full URL of any endpoint that accepts a POST.
17
17
  *
18
- * ## Three non-obvious choices, and where each comes from
18
+ * ## Four non-obvious choices, and where each comes from
19
19
  *
20
20
  * 1. **An opt-in with no endpoint writes nothing — and that is the whole point of the file.**
21
21
  * `docs/watcher.md` §6's precedence is that the machine-local file wins and the repository's
@@ -24,17 +24,32 @@
24
24
  * file that already has values, turning an opt-in into a silent opt-out. When the answer to
25
25
  * "where should notifications be posted" is nothing, this generator enqueues nothing and returns
26
26
  * the guided setup as a note instead.
27
- * 2. **The value is never logged back.** The run's action log names the path the write engine
28
- * wrote, the note names the two keys, and neither says what the URL is — the same discipline
27
+ * 2. **The value is never logged back — a topic name no more than a URL.** The run's action log
28
+ * names the path the write engine wrote, the note names the two keys and which form was
29
+ * recognised, and none of them says what the URL or the topic is — the same discipline
29
30
  * `autonomous-notify.sh`'s header states for the delivery side ("NO VALUE IS EVER PRINTED, by
30
31
  * this script or in a failure line — only paths and key names"). A push URL is a bearer
31
- * credential for every endpoint worth pointing this at, and a terminal scrollback is not where
32
- * it belongs.
32
+ * credential for every endpoint worth pointing this at, and an ntfy topic is one too: the public
33
+ * server has no account behind a topic, so anyone who knows its name can read and post to it. An
34
+ * answer that is neither form is not repeated either, because it is most likely a mistyped one.
35
+ * A terminal scrollback is not where any of them belongs.
33
36
  * 3. **The precedence has exactly one definition on the TypeScript side**, {@link pushEnvCandidates},
34
37
  * so a `doctor` check reporting which file is in effect reads that order rather than re-joining
35
38
  * either path. Two derivations of a first-wins order is two answers to the one question anybody
36
39
  * asks about these files, and the answers would differ exactly where it matters — on a machine
37
40
  * that has both.
41
+ * 4. **One grammar for the destination, and a file that survives being sourced.**
42
+ * {@link resolvePushDestination} is the only definition of what may be given, and
43
+ * {@link PUSH_DESTINATION_FORMS} the only sentence describing it, for the reason choice 3 gives
44
+ * for the precedence; {@link UNRECOGNISED_DESTINATION_NOTE}, the line `init`'s re-ask prints,
45
+ * is produced here too. The file is a shell fragment `autonomous-notify.sh` sources under
46
+ * `set -a`, so {@link pushEnvContent} single-quotes a URL outside a conservative character set:
47
+ * an unquoted `&` or `;` in a query string would break the file or run a command. The grammar
48
+ * refuses `'`, so single quotes always suffice.
49
+ *
50
+ * **Finding: `autonomous-notify.sh` needs no change for the topic form.** The stored value is
51
+ * always a full URL, which it POSTs verbatim; a topic is resolved to its address here, before the
52
+ * file is written.
38
53
  *
39
54
  * Nothing here touches the filesystem: the generator plans, and `init` applies the plan once — so
40
55
  * `--dry-run` writes no machine-local file for the same structural reason it writes nothing inside
@@ -52,13 +67,68 @@ export const PUSH_CMD_KEY = 'HARNESS_PUSH_CMD';
52
67
  /** Mode of the written file: it holds a credential, so it is the owner's to read and nobody else's. */
53
68
  const PUSH_ENV_MODE = 0o600;
54
69
  /**
55
- * The worked example in the guided setup — an endpoint that accepts a POST and needs no account.
70
+ * A value bash reads back unchanged when written unquoted in an assignment. `~` is deliberately
71
+ * outside it: bash tilde-expands it after a `:` in an assignment.
72
+ */
73
+ const SHELL_SAFE_VALUE = /^[A-Za-z0-9._:/?#@%+=,-]+$/;
74
+ /** The public ntfy server a bare topic name is posted to. */
75
+ export const NTFY_PUBLIC_ORIGIN = 'https://ntfy.sh';
76
+ /** The ntfy server's own topic-name rule; a name outside it is one the server would refuse. */
77
+ const NTFY_TOPIC_PATTERN = /^[-_A-Za-z0-9]{1,64}$/;
78
+ /** The one placeholder every flag row, note and advice line prints for the destination. */
79
+ export const PUSH_DESTINATION_PLACEHOLDER = '<url-or-ntfy-topic>';
80
+ /**
81
+ * What an ntfy topic becomes once written. Module-private: it reaches callers only inside
82
+ * {@link PUSH_DESTINATION_FORMS}, which is the surface every caller quotes.
83
+ */
84
+ const GUIDED_ENDPOINT_EXAMPLE = `${NTFY_PUBLIC_ORIGIN}/<your-topic>`;
85
+ /**
86
+ * The one description of what may be given as a push destination: a noun phrase, without a final
87
+ * stop, so a caller can write "Type {@link PUSH_DESTINATION_FORMS}." or "takes …; the value given is
88
+ * neither". Every surface asking for or refusing a destination interpolates it rather than
89
+ * re-wording it.
90
+ */
91
+ export const PUSH_DESTINATION_FORMS = `either an ntfy topic name — install the free ntfy app from the App Store or Play Store, create a topic there and type its name, with no server and no account needed (it is posted to as ${GUIDED_ENDPOINT_EXAMPLE}); the name works like a password, because anyone who knows it can read and send these notifications, so choose one nobody would guess — or the full http:// or https:// URL of any other endpoint that accepts a POST`;
92
+ const NOT_REPEATED_CLAUSE = 'it is not repeated here, because a push destination is a credential';
93
+ /**
94
+ * The line `init`'s re-ask prints after an unrecognised answer. It names no form, because the
95
+ * question it follows interpolates {@link PUSH_DESTINATION_FORMS}, and never quotes the answer.
96
+ */
97
+ export const UNRECOGNISED_DESTINATION_NOTE = `That answer is not one of the forms asked for, so it was not used; ${NOT_REPEATED_CLAUSE}.`;
98
+ const HTTP_SCHEME = /^https?:\/\//i;
99
+ // `'` is refused so the single-quoting in `pushEnvContent` can never be broken out of.
100
+ const UNWRITABLE_IN_URL = /[\s\u0000-\u001f\u007f']/;
101
+ const NTFY_HOSTED_TOPIC = /^ntfy\.sh\/([^/]*)\/?$/i;
102
+ /**
103
+ * Resolve a push destination as given — a full `http://` / `https://` URL, `ntfy.sh/<topic>`, or a
104
+ * bare ntfy topic name — to the URL the notifier posts to.
56
105
  *
57
- * Exported so `init`'s prompt and this generator's guided note quote **one** example: two would be
58
- * two answers to "what does a URL that works look like", and the prompt is where the question is
59
- * first asked while the note is where an unanswered one is explained.
106
+ * **The rule this function exists to enforce: it is the only grammar for this value, and every
107
+ * entry point calls it** — the `--push-url` flag, the terminal prompt, {@link writeNotifications},
108
+ * and any later one such as `ROADMAP.md`'s unshipped `notifications set-url`. A second copy of the
109
+ * grammar is two answers to "what may I type here".
110
+ *
111
+ * A URL is kept as typed (trimmed), not normalised through `URL.href`, so what is written is what
112
+ * the adopter gave.
60
113
  */
61
- export const GUIDED_ENDPOINT_EXAMPLE = 'https://ntfy.sh/<your-topic>';
114
+ export function resolvePushDestination(answer) {
115
+ const trimmed = answer.trim();
116
+ if (HTTP_SCHEME.test(trimmed) && !UNWRITABLE_IN_URL.test(trimmed)) {
117
+ let hostname = '';
118
+ try {
119
+ hostname = new URL(trimmed).hostname;
120
+ }
121
+ catch {
122
+ hostname = '';
123
+ }
124
+ if (hostname !== '')
125
+ return { kind: 'url', url: trimmed };
126
+ }
127
+ const topic = NTFY_HOSTED_TOPIC.exec(trimmed)?.[1] ?? trimmed;
128
+ if (NTFY_TOPIC_PATTERN.test(topic))
129
+ return { kind: 'ntfy-topic', url: `${NTFY_PUBLIC_ORIGIN}/${topic}` };
130
+ return { kind: 'unrecognised' };
131
+ }
62
132
  /** The machine-local push-notification settings file — the first file the notifier reads. */
63
133
  export function machinePushEnvPath() {
64
134
  return join(machineConfigDir(), PUSH_ENV_FILENAME);
@@ -111,8 +181,12 @@ function repositoryPushEnvPath(repoRoot, config) {
111
181
  * copy is. Nor does it restate what either key does: that is `autonomous-notify.sh`'s header, which
112
182
  * is the one implementation of the delivery arms, and a second account of it here would be the copy
113
183
  * that goes stale.
184
+ *
185
+ * The value is written unquoted only inside {@link SHELL_SAFE_VALUE}, and single-quoted otherwise
186
+ * (module header, choice 4).
114
187
  */
115
188
  function pushEnvContent(url) {
189
+ const value = SHELL_SAFE_VALUE.test(url) ? url : `'${url}'`;
116
190
  return [
117
191
  '# Push notifications for unattended runs — machine-local, written by',
118
192
  '# `npx autonomous-sdlc-harness init --notifications`.',
@@ -126,8 +200,12 @@ function pushEnvContent(url) {
126
200
  '# It holds a credential: it is created 0600 inside a 0700 directory, it is outside every',
127
201
  '# repository so it cannot be committed by accident, and no command in this CLI prints a value',
128
202
  '# from it back. Edit it freely — `init` creates it once and a later run leaves it as you left it.',
203
+ '#',
204
+ `# ${PUSH_URL_KEY} always holds a full URL: an ntfy topic is written as ${NTFY_PUBLIC_ORIGIN}/<topic>,`,
205
+ '# and the topic name in it is itself the credential — anyone who knows it can read and post to it.',
206
+ "# The file is sourced by a shell, so a URL containing `&`, `;` or a space must stay single-quoted.",
129
207
  '',
130
- `${PUSH_URL_KEY}=${url}`,
208
+ `${PUSH_URL_KEY}=${value}`,
131
209
  `${PUSH_CMD_KEY}=`,
132
210
  '',
133
211
  ].join('\n');
@@ -135,14 +213,16 @@ function pushEnvContent(url) {
135
213
  /**
136
214
  * Enqueue the machine-local settings file, or explain why nothing was written.
137
215
  *
138
- * Three outcomes, and the middle one is the one to read first:
216
+ * Four outcomes, and the second is the one to read first:
139
217
  *
140
218
  * - **opt-in not taken** — nothing is enqueued and a note records that delivery stays opt-in and
141
219
  * defaults to nothing pushed, which is what every release before this one did;
142
220
  * - **opt-in taken with no endpoint** — nothing is enqueued, and the note carries the guided setup:
143
221
  * the path, the two key names and a worked example. Writing an empty file here would shadow a
144
222
  * repository-side file that already has values (choice 1 in the module header);
145
- * - **opt-in taken with an endpoint** — the directory at `0700` and the file at `0600`, both
223
+ * - **opt-in taken with a destination {@link resolvePushDestination} does not recognise** — nothing
224
+ * is enqueued, for the same reason, and one warning says so without repeating the value;
225
+ * - **opt-in taken with a recognised destination** — its resolved URL is written; the directory at `0700` and the file at `0600`, both
146
226
  * `allowOutsideRepo`, the file `create-if-absent` so a re-run leaves an edited one alone.
147
227
  */
148
228
  export function writeNotifications({ repoRoot, config, plan, enabled, pushUrl, }) {
@@ -163,13 +243,19 @@ export function writeNotifications({ repoRoot, config, plan, enabled, pushUrl, }
163
243
  if (pushUrl !== undefined) {
164
244
  warnings.push('--push-url was given without --notifications, so it was not written anywhere: the endpoint is only ever written into the machine-local push-notification settings file, and that file is written only when the opt-in is taken — re-run with --notifications to take it and set the endpoint in the same run');
165
245
  }
166
- notes.push(`no push-notification settings were written and none were changed: delivery is opt-in and defaults to nothing pushed, so an unattended run's completed, parked and failed events reach a desktop banner where one is available and nothing else. Re-run with --notifications --push-url <url> to write ${target}, or ${repositoryRemedy} — the machine-local file is read first and the repository one only when it is absent (docs/watcher.md §6)`);
246
+ notes.push(`no push-notification settings were written and none were changed: delivery is opt-in and defaults to nothing pushed, so an unattended run's completed, parked and failed events reach a desktop banner where one is available and nothing else. Re-run with --notifications --push-url ${PUSH_DESTINATION_PLACEHOLDER}, giving ${PUSH_DESTINATION_FORMS}, to write ${target}, or ${repositoryRemedy} — the machine-local file is read first and the repository one only when it is absent (docs/watcher.md §6)`);
167
247
  return { written: false, notes, warnings };
168
248
  }
169
249
  if (pushUrl === undefined) {
170
- notes.push(`push notifications were asked for and no endpoint was given, so nothing was written — deliberately: the machine-local file is read before ${repositoryName} and while it exists that one is not read at all, so an empty ${target} would shadow values you may already have there and turn this opt-in into a silent opt-out. Re-run with --push-url <url>, naming any endpoint that accepts a POST (${GUIDED_ENDPOINT_EXAMPLE} is the worked example: choose a topic name nobody would guess, subscribe to it in an ntfy client, and that URL is the endpoint), or write ${target} yourself with ${PUSH_URL_KEY} set and ${PUSH_CMD_KEY} empty`);
250
+ notes.push(`push notifications were asked for and no destination was given, so nothing was written — deliberately: the machine-local file is read before ${repositoryName} and while it exists that one is not read at all, so an empty ${target} would shadow values you may already have there and turn this opt-in into a silent opt-out. Re-run with --push-url ${PUSH_DESTINATION_PLACEHOLDER}, giving ${PUSH_DESTINATION_FORMS}; or write ${target} yourself with ${PUSH_URL_KEY} set to a full URL and ${PUSH_CMD_KEY} empty`);
251
+ return { written: false, notes, warnings };
252
+ }
253
+ const destination = resolvePushDestination(pushUrl);
254
+ if (destination.kind === 'unrecognised') {
255
+ warnings.push(`the push destination given is not ${PUSH_DESTINATION_FORMS}, so nothing was written; ${NOT_REPEATED_CLAUSE}. Re-run with --notifications --push-url ${PUSH_DESTINATION_PLACEHOLDER}, or write ${target} yourself with ${PUSH_URL_KEY} set to a full URL and ${PUSH_CMD_KEY} empty`);
171
256
  return { written: false, notes, warnings };
172
257
  }
258
+ const recognised = destination.kind === 'ntfy-topic' ? `the ntfy topic you gave, as its ${NTFY_PUBLIC_ORIGIN} address` : 'the URL you gave';
173
259
  plan.add({
174
260
  path: machineConfigDir(),
175
261
  policy: 'ensure-dir',
@@ -180,12 +266,12 @@ export function writeNotifications({ repoRoot, config, plan, enabled, pushUrl, }
180
266
  plan.add({
181
267
  path: target,
182
268
  policy: 'create-if-absent',
183
- content: pushEnvContent(pushUrl),
269
+ content: pushEnvContent(destination.url),
184
270
  label: 'machine-local push-notification settings',
185
271
  mode: PUSH_ENV_MODE,
186
272
  allowOutsideRepo: true,
187
273
  });
188
- notes.push(`${target} is the machine-local push-notification settings file, written to hold ${PUSH_URL_KEY} and an empty ${PUSH_CMD_KEY} — the endpoint itself is deliberately not printed here or anywhere else. It is machine-local rather than committed, and it is read before ${repositoryName}, which is then not read at all. It is create-if-absent: a file already there is kept exactly as you edited it and still carries the endpoint it was written with, so --push-url on a re-run sets nothing — to point it elsewhere, edit ${PUSH_URL_KEY} in it by hand, or re-run with --force, which copies it to a .bak sibling and re-writes it from this run's --push-url`);
274
+ notes.push(`${target} is the machine-local push-notification settings file, written to hold ${PUSH_URL_KEY}, set to ${recognised}, and an empty ${PUSH_CMD_KEY} — the endpoint itself is deliberately not printed here or anywhere else. It is machine-local rather than committed, and it is read before ${repositoryName}, which is then not read at all. It is create-if-absent: a file already there is kept exactly as you edited it and still carries the endpoint it was written with, so --push-url on a re-run sets nothing — to point it elsewhere, edit ${PUSH_URL_KEY} in it by hand, or re-run with --force, which copies it to a .bak sibling and re-writes it from this run's --push-url`);
189
275
  return { written: true, notes, warnings };
190
276
  }
191
277
  //# sourceMappingURL=notifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/generators/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/generators/notifications.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * Generator: the outer-loop scripts — the run watcher, the git wrappers, the worktree tooling and
3
- * the shared library they all source — written into the adopter's configured `scriptsDir`.
2
+ * Generator: the outer-loop scripts — the run watcher, the git wrappers, the worktree tooling, the
3
+ * flow walker with its gate library and flow graph, the test-suite runner, and the shared library
4
+ * they all source —
5
+ * written into the adopter's configured `scriptsDir`.
4
6
  *
5
7
  * **The rule this module exists to enforce: {@link OUTER_LOOP_SCRIPTS} is the single declaration of
6
8
  * which outer-loop files ship, where each one lands, what mode it carries and which of them an
@@ -57,9 +59,19 @@ export const WATCHER_SCRIPT_NAME = 'autonomous-watcher.sh';
57
59
  * The row below is built from it, so the file is renamed here and nowhere else.
58
60
  */
59
61
  export const NOTIFY_SCRIPT_NAME = 'autonomous-notify.sh';
62
+ /**
63
+ * The docs-retrieval server launcher's file name, named on its own for the same reason
64
+ * {@link WATCHER_SCRIPT_NAME} is: `generators/repoRoot.ts` → `retrievalWiring` joins it into
65
+ * `.mcp.json`'s launcher argument, and that argument and the writer disagreeing would declare a
66
+ * server whose program was never written.
67
+ *
68
+ * The row below is built from it, so the file is renamed here and nowhere else.
69
+ */
70
+ export const DOCS_SEARCH_SERVER_SCRIPT_NAME = 'docs-search-server.sh';
60
71
  /**
61
72
  * The whole outer-loop set, in the order `init` writes it: the shared library first, because every
62
- * other row sources it.
73
+ * other row sources it, and each further library or data file before the script that sources or
74
+ * reads it.
63
75
  *
64
76
  * **Declared once, here.** One row is one line, and adding a script is adding its template plus its
65
77
  * row — no condition threaded through the writer, no second list to keep in step.
@@ -76,13 +88,28 @@ export const OUTER_LOOP_SCRIPTS = Object.freeze([
76
88
  // regenerated, which is the whole point of shipping it as a script rather than as an interpreter
77
89
  // allow entry.
78
90
  Object.freeze({ file: 'scratch-run.sh', mode: 0o755, agentInvocable: true }),
91
+ // Sourced and read by `flow-walker.sh` from its own directory, never run.
92
+ Object.freeze({ file: 'flow-walker-gates.sh', subdir: 'lib', mode: 0o644, agentInvocable: false }),
93
+ Object.freeze({ file: 'task_plan_writing.graph.json', subdir: 'flows', mode: 0o644, agentInvocable: false }),
94
+ // Run by the orchestrating session; no `DENY_SCRIPT_BASENAMES` entry, because it must be reachable.
95
+ Object.freeze({ file: 'flow-walker.sh', mode: 0o755, agentInvocable: true }),
96
+ // Run by the orchestrating session in the Run gates phase; no `DENY_SCRIPT_BASENAMES` entry,
97
+ // because it must be reachable.
98
+ Object.freeze({ file: 'run-test-suite.sh', mode: 0o755, agentInvocable: true }),
79
99
  Object.freeze({ file: 'create-worktree.sh', mode: 0o755, agentInvocable: false }),
80
100
  Object.freeze({ file: 'setup-worktree.sh', mode: 0o755, agentInvocable: false }),
101
+ // Started by the agent runner from `.mcp.json`, never by a dispatched agent's Bash call, so `false`
102
+ // is a calling convention. No `DENY_SCRIPT_BASENAMES` entry: the guard auto-allowing it runs
103
+ // nothing destructive.
104
+ Object.freeze({ file: DOCS_SEARCH_SERVER_SCRIPT_NAME, mode: 0o755, agentInvocable: false }),
81
105
  Object.freeze({ file: 'cleanup-merged-worktrees.sh', mode: 0o755, agentInvocable: false }),
82
106
  Object.freeze({ file: 'autonomous-format-stream.sh', mode: 0o755, agentInvocable: false }),
83
107
  Object.freeze({ file: NOTIFY_SCRIPT_NAME, mode: 0o755, agentInvocable: false }),
84
108
  Object.freeze({ file: WATCHER_SCRIPT_NAME, mode: 0o755, agentInvocable: false }),
85
109
  Object.freeze({ file: 'restart-watcher.sh', mode: 0o755, agentInvocable: false }),
110
+ // Run by the watcher, the remote job or a person. Carries a `DENY_SCRIPT_BASENAMES` entry: a run that
111
+ // could dispatch runs could start runs about itself.
112
+ Object.freeze({ file: 'remote-run.sh', mode: 0o755, agentInvocable: false }),
86
113
  ]);
87
114
  /** The templates' subdirectory under `cli/templates/`, addressed as {@link readTemplate} wants it. */
88
115
  const TEMPLATE_DIR = 'scripts';
@@ -1 +1 @@
1
- {"version":3,"file":"outerLoopScripts.js","sourceRoot":"","sources":["../../src/generators/outerLoopScripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outerLoopScripts.js","sourceRoot":"","sources":["../../src/generators/outerLoopScripts.ts"],"names":[],"mappings":"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"}