@sdods/cli 0.17.0 → 0.18.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.
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync }
2
2
  import { isAbsolute, join, relative, resolve as resolvePath } from 'node:path';
3
3
  import { execa } from 'execa';
4
4
  import pc from 'picocolors';
5
- import { RecordingModeSchema, newRunId, runFiles, } from '@sdods/contracts';
5
+ import { RecordingModeSchema, isRunId, newRunId, runFiles, } from '@sdods/contracts';
6
6
  import { SdodsError, CLI_OVERRIDES_ENV, VERSION, checkPoolCapacity, collectGateEvidence, effectiveWorkers, evaluateGates, formatFindings, hasGates, lintProject, listGeneratedProjects, moduleByName, moduleDir, normalizeTagExpr, parseTagExpr, poolAccountsFor, poolDemandByRole, poolTooSmallError, redactRunTraces, serializeCliOverrides, setupTierOf, } from '@sdods/core';
7
7
  import { analyzeChangeImpact } from '@sdods/mcp';
8
8
  import { createContext } from '../context.js';
@@ -87,6 +87,13 @@ export function register(program) {
87
87
  });
88
88
  }
89
89
  export async function runCommand(flags, cmd) {
90
+ // The run id names `.sdods/generated/<runId>`, which is removed recursively when the run ends,
91
+ // so `--run-id ../..` must be refused before anything touches the disk.
92
+ if (flags.runId !== undefined && !isRunId(flags.runId))
93
+ throw new SdodsError('CONFIG_INVALID', `Invalid run id "${flags.runId}".`, {
94
+ hint: 'Use letters, digits, ".", "_" or "-", not starting with "." (or omit --run-id).',
95
+ exitCode: 2,
96
+ });
90
97
  const ctx = createContext(cmd);
91
98
  const entry = ctx.registry.pick(flags.project);
92
99
  const projectCfg = entry.config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sdods/cli",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "SDODS command line: run, record, analyze, agents, MCP server, scheduler and the web server.",
5
5
  "license": "Apache-2.0",
6
6
  "funding": "https://sdods.com/sponsor/",
@@ -26,8 +26,8 @@
26
26
  "node": ">=22"
27
27
  },
28
28
  "dependencies": {
29
- "@sdods/contracts": "0.17.0",
30
- "@sdods/core": "0.17.0",
29
+ "@sdods/contracts": "0.18.0",
30
+ "@sdods/core": "0.18.0",
31
31
  "commander": "^15.0.0",
32
32
  "execa": "^10.2.1",
33
33
  "picocolors": "^1.1.1",
@@ -36,12 +36,12 @@
36
36
  "zod": "^4.6.7",
37
37
  "@playwright/test": "^1.64.0",
38
38
  "playwright-core": "^1.64.0",
39
- "@sdods/integrations": "0.17.0",
40
- "@sdods/mcp": "0.17.0",
41
- "@sdods/agents": "0.17.0",
42
- "@sdods/db": "0.17.0",
39
+ "@sdods/integrations": "0.18.0",
40
+ "@sdods/mcp": "0.18.0",
41
+ "@sdods/agents": "0.18.0",
42
+ "@sdods/db": "0.18.0",
43
43
  "csv-parse": "^7.0.3",
44
- "@sdods/server": "0.17.0"
44
+ "@sdods/server": "0.18.0"
45
45
  },
46
46
  "homepage": "https://sdods.com",
47
47
  "bugs": {