cursedops 0.5.0 → 0.5.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/README.md CHANGED
@@ -185,8 +185,18 @@ exported definitions and this file exports nothing, so eighteen copies read as z
185
185
  wrapper exists because `bun ../../tools/check-paths.ts .` died on its first step in every
186
186
  worktree (2026-09-17). The walk and the worktree follow-back are the copies' own; **no
187
187
  generation is still no pass** — a lone clone exits 1 saying which walk came back empty. Every
188
- argument that is not `--also` passes through to the laws (`bun run paths --prune`). This repo
189
- dogfoods it: `"paths": "bun src/paths.ts"`, and its own copy is gone.
188
+ argument that is not `--also` passes through to the laws (`bun run paths --prune`).
189
+
190
+ 🔴 **Until the roster rule can read the bin, the wrapper is two lines that NAME the laws.**
191
+ `check-doc-citations`' `pathsRunsThis` proves a repo runs it by reading the `paths` command or
192
+ the one `scripts/` file it delegates to, so a bare `forge-paths` reads as unwired. The form that
193
+ passes today — and the one this repo uses — is:
194
+
195
+ ```ts
196
+ // scripts/paths.ts, with "paths": "bun run scripts/paths.ts"
197
+ import { runGenerationLaws } from "cursedops/paths";
198
+ process.exit(runGenerationLaws(import.meta.dir, { laws: ["check-paths.ts", "check-doc-citations.ts"], argv: process.argv.slice(2) }));
199
+ ```
190
200
 
191
201
  ## `cursedops/launchd`
192
202
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "cursedops",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "The build-and-ops answers this generation's apps wrote independently and identically: finding a generation's roots — and printing a command that runs when pasted — without knowing a path, the generation's whole-tree laws run over one repo from a checkout or a worktree, macOS launchd agent install/replace/remove and the live port a job serves, the scaffolding and verdicts of a deployed smoke (origin probe, the smoke's own environment, a network that lies about DNS, a settled version), the static-serving helpers eight apps copied — the path-traversal guard among them — the API floor that keeps an unmatched /api/... from ever being answered with the app shell, the commit and dirty flag a checkout-served process reports, the Cloudflare Worker deploy toolkit four apps copied (the deploy sequence, exact-set secrets over a pipe, origin-first rollback, the curl edge fetch, the row-for-row D1 import proof), and the public-surface ratchet three published libraries each carried a forked copy of. Mechanism only — no app knows its name from here. Bun, zero runtime dependencies (typescript is an optional peer, for public-surface only), ships source.",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "typecheck": "tsc -p tsconfig.json --noEmit",
8
8
  "lint": "biome check .",
9
9
  "test": "bun test src",
10
- "paths": "bun src/paths.ts",
10
+ "paths": "bun run scripts/paths.ts",
11
11
  "verify": "bun run paths && bun run typecheck && bun run lint && bun run test",
12
12
  "prepublishOnly": "bun run verify"
13
13
  },
@@ -4,7 +4,7 @@
4
4
  * variables, and the commands that build, stage, attach secrets and smoke.
5
5
  *
6
6
  * ```ts
7
- * import { cloudflareCredential, parseWorkerEnv, runWorkerDeploy, wranglerEnvArgs } from "cursedops/worker-deploy";
7
+ * import { cloudflareCredential, parseWorkerEnv, runWorkerDeploy, workerDeployDeps } from "cursedops/worker-deploy";
8
8
  *
9
9
  * const env = parseWorkerEnv(process.argv.slice(2));
10
10
  * const result = runWorkerDeploy({
@@ -12,8 +12,9 @@
12
12
  * stampVars: { commit: "MUSIC_BUILD_COMMIT", dirty: "MUSIC_BUILD_DIRTY" },
13
13
  * build: ["bun", "run", "build"],
14
14
  * stageFirst: [["bun", "run", "scripts/worker-deploy.ts", "--env", "stage"], ["bun", "run", "scripts/worker-stage-walk.ts"]],
15
- * secrets: ["bun", "run", "scripts/worker-secrets.ts", ...wranglerEnvArgs(env)],
16
- * smoke: ["bun", "run", "scripts/worker-smoke.ts"],
15
+ * // the app's own scripts take `--env stage`; `wranglerEnvArgs` is for WRANGLER's argv only
16
+ * secrets: ["bun", "run", "scripts/worker-secrets.ts", ...(env === "stage" ? ["--env", "stage"] : [])],
17
+ * smoke: ["bun", "run", "scripts/worker-smoke.ts", ...(env === "stage" ? ["--env", "stage"] : [])],
17
18
  * credential: cloudflareCredential(file),
18
19
  * }, workerDeployDeps(ROOT));
19
20
  * process.exit(result.code);