@nanocollective/sentinel 0.1.0-alpha.0 → 0.1.0-alpha.1

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/cli.js CHANGED
@@ -8,16 +8,19 @@
8
8
  * The init command's logic lives in ./init; this file is the interactive glue
9
9
  * (prompting, printing) and is excluded from coverage.
10
10
  */
11
- import { readFileSync, writeFileSync } from 'node:fs';
11
+ import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, } from 'node:fs';
12
12
  import { dirname, join, resolve } from 'node:path';
13
13
  import { createInterface } from 'node:readline/promises';
14
14
  import { parseConfig } from './config/parse.js';
15
15
  import { parseInitArgs } from './init/args.js';
16
16
  import { scaffold } from './init/scaffold.js';
17
17
  import { ghIssueClient } from './issues/gh-client.js';
18
+ import { renderDashboard } from './observe/dashboard.js';
19
+ import { buildRunRecord, recordFilename } from './observe/record.js';
18
20
  import { nanocoderRunner } from './orchestrator/nanocoder-runner.js';
19
- import { ensureTargets } from './run/clone.js';
21
+ import { prepareRepo } from './run/clone.js';
20
22
  import { renderPreview } from './run/preview.js';
23
+ import { ghRepoLister } from './run/repo-lister.js';
21
24
  import { renderReport } from './run/report.js';
22
25
  import { runFromConfig, runLocal } from './run/run.js';
23
26
  import { fsPackLoader, fsRepoFiles } from './run/sources.js';
@@ -147,6 +150,32 @@ function writeReport(markdown, output) {
147
150
  console.log(markdown);
148
151
  }
149
152
  }
153
+ function writeRunRecord(record, recordsDir) {
154
+ mkdirSync(recordsDir, { recursive: true });
155
+ const path = join(recordsDir, recordFilename(record.timestamp));
156
+ writeFileSync(path, `${JSON.stringify(record, null, 2)}\n`);
157
+ console.log(`Wrote run record to ${path}`);
158
+ }
159
+ function writeDashboard(recordsDir, dashboardDir) {
160
+ const records = [];
161
+ if (existsSync(recordsDir)) {
162
+ for (const name of readdirSync(recordsDir)) {
163
+ if (!name.endsWith('.json')) {
164
+ continue;
165
+ }
166
+ try {
167
+ records.push(JSON.parse(readFileSync(join(recordsDir, name), 'utf8')));
168
+ }
169
+ catch {
170
+ // Skip a malformed record rather than fail the whole dashboard.
171
+ }
172
+ }
173
+ }
174
+ mkdirSync(dashboardDir, { recursive: true });
175
+ const path = join(dashboardDir, 'index.html');
176
+ writeFileSync(path, renderDashboard(records));
177
+ console.log(`Wrote dashboard to ${path}`);
178
+ }
150
179
  async function runRun(argv) {
151
180
  if (argv.includes('--help') || argv.includes('-h')) {
152
181
  console.log(RUN_USAGE);
@@ -180,28 +209,19 @@ async function runRun(argv) {
180
209
  }
181
210
  const dryRun = flags.get('dry-run') === true;
182
211
  const workspace = flagStr(flags, 'workspace') ?? '.';
183
- // Clone any target repos not already present in the workspace.
184
- if (flags.get('no-clone') !== true) {
185
- const repos = parsed.config.targets
186
- .map(target => target.repo)
187
- .filter((repo) => Boolean(repo));
188
- const ensured = ensureTargets(repos, workspace);
189
- for (const repo of ensured.cloned) {
190
- console.log(`cloned ${repo}`);
191
- }
192
- for (const { repo, error } of ensured.errors) {
193
- console.error(`clone failed for ${repo}: ${error}`);
194
- }
195
- }
212
+ const noClone = flags.get('no-clone') === true;
196
213
  // The client is available whenever a token is present — a dry run uses it to
197
214
  // read existing issues for the preview, a live run to file.
198
215
  const hasToken = Boolean(process.env.GITHUB_TOKEN);
216
+ const now = new Date().toISOString();
199
217
  const report = await runFromConfig(parsed.config, {
200
218
  runner: nanocoderRunner,
201
219
  files: fsRepoFiles,
202
220
  packs: fsPackLoader,
203
221
  client: hasToken ? ghIssueClient : undefined,
204
- now: new Date().toISOString(),
222
+ repoLister: ghRepoLister,
223
+ cloneRepo: noClone ? undefined : prepareRepo,
224
+ now,
205
225
  }, {
206
226
  workspaceDir: workspace,
207
227
  packsDir: flagStr(flags, 'packs-dir') ?? join(dirname(configPath), 'rule-packs'),
@@ -217,6 +237,9 @@ async function runRun(argv) {
217
237
  ? renderPreview(report.previews)
218
238
  : renderReport(report.outcome);
219
239
  writeReport(markdown, output);
240
+ for (const error of report.targetErrors) {
241
+ console.error(`target: ${error}`);
242
+ }
220
243
  if (report.filed) {
221
244
  for (const { repo: repoName, result } of report.reconciled) {
222
245
  console.log(`${repoName}: filed ${result.created.length}, touched ${result.touched}, resolved ${result.resolved}`);
@@ -228,6 +251,19 @@ async function runRun(argv) {
228
251
  else {
229
252
  console.log('No GITHUB_TOKEN — no issues filed.');
230
253
  }
254
+ // Commit the durable run record and regenerate the static dashboard.
255
+ if (flags.get('no-record') !== true) {
256
+ const mode = dryRun
257
+ ? 'dry-run'
258
+ : report.filed
259
+ ? 'live'
260
+ : 'audit-only';
261
+ const recordsDir = flagStr(flags, 'records-dir') ?? 'runs';
262
+ writeRunRecord(buildRunRecord(report, now, mode), recordsDir);
263
+ if (flags.get('no-dashboard') !== true) {
264
+ writeDashboard(recordsDir, flagStr(flags, 'dashboard-dir') ?? 'dashboard');
265
+ }
266
+ }
231
267
  return 0;
232
268
  }
233
269
  async function main(argv) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../source/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../source/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -24,6 +24,9 @@ export { buildIssueBody, buildIssueTitle } from './issues/body.js';
24
24
  export { buildIssueContent, fileFindings, qualifyingFindings, targetRepoFor, } from './issues/file.js';
25
25
  export { buildGhCloseArgs, buildGhEditArgs, buildGhIssueArgs, buildGhListArgs, ghIssueClient, parseIssueList, parseIssueUrl, } from './issues/gh-client.js';
26
26
  export type { CreatedIssue, CreateIssueParams, ExistingIssue, FiledIssue, FilingContext, FilingError, FilingResult, GitHubClient, IssueContent, IssueQueryClient, ReconcileClient, } from './issues/types.js';
27
+ export { renderDashboard } from './observe/dashboard.js';
28
+ export { buildRunRecord, recordFilename } from './observe/record.js';
29
+ export type { FilingSummary, PackRunRecord, RepoRunRecord, RunMode, RunRecord, SeverityCounts, } from './observe/types.js';
27
30
  export { runAudit } from './orchestrator/audit.js';
28
31
  export { type AutoFixOptions, type AutoFixResult, buildAutoFixPrompt, runAuditWithAutoFix, } from './orchestrator/auto-fix.js';
29
32
  export { extractJsonArray } from './orchestrator/extract.js';
@@ -37,8 +40,10 @@ export { globToRegExp, matchesAppliesTo, matchesGlob, } from './rule-packs/glob.
37
40
  export { parseRulePack, splitFrontmatter } from './rule-packs/parse.js';
38
41
  export type { AppliesTo, ParseResult, RulePack, RulePackError, RulePackManifest, } from './rule-packs/types.js';
39
42
  export { auditPack, type PackAuditContext } from './run/audit.js';
40
- export { buildCloneArgs, type EnsureTargetsResult } from './run/clone.js';
43
+ export { buildCloneArgs, type PrepareResult, prepareRepo, } from './run/clone.js';
44
+ export { type ExpandResult, expandTargets, type ResolvedRepoTarget, } from './run/expand.js';
41
45
  export { type DryRunPreview, previewReconciliation, renderPreview, } from './run/preview.js';
46
+ export { buildRepoListArgs, ghRepoLister, parseRepoList, type RepoLister, } from './run/repo-lister.js';
42
47
  export { countFindings, renderReport } from './run/report.js';
43
48
  export { type RunConfigOptions, type RunDeps, type RunLocalDeps, type RunReport, runFromConfig, runLocal, } from './run/run.js';
44
49
  export { isEnabledPackPath, unionPatterns } from './run/select.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ export { DEFAULT_INIT_OPTIONS, } from './init/types.js';
20
20
  export { buildIssueBody, buildIssueTitle } from './issues/body.js';
21
21
  export { buildIssueContent, fileFindings, qualifyingFindings, targetRepoFor, } from './issues/file.js';
22
22
  export { buildGhCloseArgs, buildGhEditArgs, buildGhIssueArgs, buildGhListArgs, ghIssueClient, parseIssueList, parseIssueUrl, } from './issues/gh-client.js';
23
+ export { renderDashboard } from './observe/dashboard.js';
24
+ export { buildRunRecord, recordFilename } from './observe/record.js';
23
25
  export { runAudit } from './orchestrator/audit.js';
24
26
  export { buildAutoFixPrompt, runAuditWithAutoFix, } from './orchestrator/auto-fix.js';
25
27
  export { extractJsonArray } from './orchestrator/extract.js';
@@ -29,8 +31,10 @@ export { resolveDependencies } from './rule-packs/dependencies.js';
29
31
  export { globToRegExp, matchesAppliesTo, matchesGlob, } from './rule-packs/glob.js';
30
32
  export { parseRulePack, splitFrontmatter } from './rule-packs/parse.js';
31
33
  export { auditPack } from './run/audit.js';
32
- export { buildCloneArgs } from './run/clone.js';
34
+ export { buildCloneArgs, prepareRepo, } from './run/clone.js';
35
+ export { expandTargets, } from './run/expand.js';
33
36
  export { previewReconciliation, renderPreview, } from './run/preview.js';
37
+ export { buildRepoListArgs, ghRepoLister, parseRepoList, } from './run/repo-lister.js';
34
38
  export { countFindings, renderReport } from './run/report.js';
35
39
  export { runFromConfig, runLocal, } from './run/run.js';
36
40
  export { isEnabledPackPath, unionPatterns } from './run/select.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAa5D,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACN,kBAAkB,EAGlB,kBAAkB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEN,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,YAAY,GACZ,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAsB,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAsB,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,oBAAoB,GAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,uBAAuB,CAAC;AAc/B,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAGN,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,GACd,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACN,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAQtE,OAAO,EAAC,SAAS,EAAwB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAC,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAEN,qBAAqB,EACrB,aAAa,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAKN,aAAa,EACb,QAAQ,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAU3D,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GAElB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../source/init/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAY5C,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwBzD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAgDzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAmCpC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAkBxC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAiCzD"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../source/init/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAY5C,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwBzD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA2DzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAmCpC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAkBxC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAmCzD"}
@@ -54,8 +54,9 @@ concurrency:
54
54
  group: sentinel
55
55
  cancel-in-progress: false
56
56
 
57
+ # contents: write lets the run commit its record and dashboard back to this repo.
57
58
  permissions:
58
- contents: read
59
+ contents: write
59
60
  issues: write
60
61
 
61
62
  jobs:
@@ -83,6 +84,16 @@ jobs:
83
84
  --workspace "$RUNNER_TEMP/sentinel"
84
85
  --output "$GITHUB_STEP_SUMMARY"
85
86
  \${{ github.event.inputs.dry_run == 'true' && '--dry-run' || '' }}
87
+
88
+ - name: Commit run record and dashboard
89
+ run: |
90
+ git config user.name "github-actions[bot]"
91
+ git config user.email "github-actions[bot]@users.noreply.github.com"
92
+ git add runs dashboard
93
+ if ! git diff --cached --quiet; then
94
+ git commit -m "chore: sentinel run record [skip ci]"
95
+ git push
96
+ fi
86
97
  `;
87
98
  }
88
99
  /**
@@ -182,6 +193,8 @@ the example block and set its key as an environment variable / Actions secret.
182
193
  - \`agents.config.json\` — Nanocoder provider/model wiring.
183
194
  - \`rule-packs/\` — your rule packs (you author these).
184
195
  - \`.github/workflows/sentinel.yml\` — the scheduled audit.
196
+ - \`runs/\` — a committed JSON record per run (the durable history).
197
+ - \`dashboard/\` — a generated static \`index.html\`; serve it via GitHub Pages.
185
198
  `;
186
199
  }
187
200
  //# sourceMappingURL=templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../source/init/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,SAAS,YAAY,CAAC,OAAiB;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACnE,OAAO,IAAI;SACT,GAAG,CACH,IAAI,CAAC,EAAE,CACN,aAAa,IAAI,4DAA4D,CAC9E;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;;EAKN,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;;;aAGlB,OAAO,CAAC,QAAQ;;;sBAGP,OAAO,CAAC,iBAAiB;;;;cAIjC,OAAO,CAAC,QAAQ;WACnB,OAAO,CAAC,KAAK;;;;WAIb,OAAO,CAAC,KAAK;;CAEvB,CAAC;AACF,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;eAIO,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0C9B,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCP,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CACvB;QACC,SAAS,EAAE;YACV,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,yCAAyC;oBAC/C,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE,sCAAsC;oBAC/C,MAAM,EAAE,uBAAuB;oBAC/B,MAAM,EAAE,CAAC,eAAe,CAAC;iBACzB;aACD;SACD;KACD,EACD,IAAI,EACJ,CAAC,CACD,IAAI,CAAC;AACP,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;;;;;;;;;;;wDAcgD,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;CAiBvE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../source/init/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,SAAS,YAAY,CAAC,OAAiB;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACnE,OAAO,IAAI;SACT,GAAG,CACH,IAAI,CAAC,EAAE,CACN,aAAa,IAAI,4DAA4D,CAC9E;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;;EAKN,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;;;aAGlB,OAAO,CAAC,QAAQ;;;sBAGP,OAAO,CAAC,iBAAiB;;;;cAIjC,OAAO,CAAC,QAAQ;WACnB,OAAO,CAAC,KAAK;;;;WAIb,OAAO,CAAC,KAAK;;CAEvB,CAAC;AACF,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;eAIO,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD9B,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCP,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CACvB;QACC,SAAS,EAAE;YACV,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,yCAAyC;oBAC/C,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE,sCAAsC;oBAC/C,MAAM,EAAE,uBAAuB;oBAC/B,MAAM,EAAE,CAAC,eAAe,CAAC;iBACzB;aACD;SACD;KACD,EACD,IAAI,EACJ,CAAC,CACD,IAAI,CAAC;AACP,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,OAAO;;;;;;;;;;;;;;wDAcgD,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;CAmBvE,CAAC;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Render a self-contained static HTML dashboard from the committed run records.
3
+ * No database, no build step, no external assets — a single page suitable for
4
+ * the config repo's GitHub Pages. Pure and tested.
5
+ */
6
+ import type { RunRecord } from './types.js';
7
+ /** Render the dashboard HTML for a set of run records (newest first). */
8
+ export declare function renderDashboard(records: RunRecord[]): string;
9
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../source/observe/dashboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAmC1C,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAsD5D"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Render a self-contained static HTML dashboard from the committed run records.
3
+ * No database, no build step, no external assets — a single page suitable for
4
+ * the config repo's GitHub Pages. Pure and tested.
5
+ */
6
+ const MAX_ROWS = 60;
7
+ function escapeHtml(text) {
8
+ return text
9
+ .replace(/&/g, '&')
10
+ .replace(/</g, '&lt;')
11
+ .replace(/>/g, '&gt;')
12
+ .replace(/"/g, '&quot;');
13
+ }
14
+ function severityCell(count, className) {
15
+ const shown = count > 0 ? String(count) : '·';
16
+ return `<td class="sev ${className}">${shown}</td>`;
17
+ }
18
+ function row(record) {
19
+ const { bySeverity } = record.totals;
20
+ const filed = record.filing ? String(record.filing.filed) : '—';
21
+ return [
22
+ '<tr>',
23
+ `<td class="ts">${escapeHtml(record.timestamp)}</td>`,
24
+ `<td><span class="mode ${record.mode}">${record.mode}</span></td>`,
25
+ `<td class="num">${record.totals.repos}</td>`,
26
+ `<td class="num">${record.totals.findings}</td>`,
27
+ severityCell(bySeverity.critical, 'critical'),
28
+ severityCell(bySeverity.high, 'high'),
29
+ severityCell(bySeverity.medium, 'medium'),
30
+ severityCell(bySeverity.low, 'low'),
31
+ `<td class="num">${filed}</td>`,
32
+ '</tr>',
33
+ ].join('');
34
+ }
35
+ /** Render the dashboard HTML for a set of run records (newest first). */
36
+ export function renderDashboard(records) {
37
+ const sorted = [...records].sort((a, b) => b.timestamp.localeCompare(a.timestamp));
38
+ const latest = sorted[0];
39
+ const rows = sorted.slice(0, MAX_ROWS).map(row).join('\n');
40
+ const summary = latest
41
+ ? `Latest run ${escapeHtml(latest.timestamp)} — ${latest.totals.findings} finding(s) across ${latest.totals.repos} repo(s).`
42
+ : 'No runs recorded yet.';
43
+ return `<!doctype html>
44
+ <html lang="en">
45
+ <head>
46
+ <meta charset="utf-8">
47
+ <meta name="viewport" content="width=device-width, initial-scale=1">
48
+ <title>Sentinel</title>
49
+ <style>
50
+ :root { color-scheme: dark; }
51
+ body { font-family: system-ui, sans-serif; background: #1a1b26; color: #a9b1d6; margin: 0; padding: 2rem; }
52
+ h1 { color: #7aa2f7; margin: 0 0 .25rem; font-size: 1.4rem; }
53
+ p.summary { color: #c0caf5; margin: 0 0 1.5rem; }
54
+ table { border-collapse: collapse; width: 100%; font-size: .9rem; }
55
+ th, td { padding: .5rem .6rem; text-align: left; border-bottom: 1px solid #292e42; }
56
+ th { color: #565f89; font-weight: 600; text-transform: uppercase; font-size: .72rem; letter-spacing: .04em; }
57
+ td.num, td.sev { text-align: right; font-variant-numeric: tabular-nums; }
58
+ .ts { color: #9aa5ce; font-variant-numeric: tabular-nums; }
59
+ .mode { padding: .1rem .45rem; border-radius: 999px; font-size: .72rem; }
60
+ .mode.live { background: #2d3b2d; color: #9ece6a; }
61
+ .mode.dry-run { background: #3b352d; color: #e0af68; }
62
+ .mode.audit-only { background: #2d3242; color: #7dcfff; }
63
+ .sev.critical { color: #f7768e; }
64
+ .sev.high { color: #ff9e64; }
65
+ .sev.medium { color: #e0af68; }
66
+ .sev.low { color: #565f89; }
67
+ footer { margin-top: 1.5rem; color: #565f89; font-size: .8rem; }
68
+ </style>
69
+ </head>
70
+ <body>
71
+ <h1>🛡️ Sentinel</h1>
72
+ <p class="summary">${summary}</p>
73
+ <table>
74
+ <thead><tr>
75
+ <th>Run</th><th>Mode</th><th>Repos</th><th>Findings</th>
76
+ <th>Crit</th><th>High</th><th>Med</th><th>Low</th><th>Filed</th>
77
+ </tr></thead>
78
+ <tbody>
79
+ ${rows}
80
+ </tbody>
81
+ </table>
82
+ <footer>Generated by <a href="https://docs.nanocollective.org/sentinel/docs" style="color:#7aa2f7">Sentinel</a> from committed run records.</footer>
83
+ </body>
84
+ </html>
85
+ `;
86
+ }
87
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../source/observe/dashboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO,IAAI;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,SAAiB;IACrD,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,OAAO,kBAAkB,SAAS,KAAK,KAAK,OAAO,CAAC;AACrD,CAAC;AAED,SAAS,GAAG,CAAC,MAAiB;IAC7B,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,OAAO;QACN,MAAM;QACN,kBAAkB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;QACrD,yBAAyB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,cAAc;QAClE,mBAAmB,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO;QAC7C,mBAAmB,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO;QAChD,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC7C,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;QACrC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;QACzC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;QACnC,mBAAmB,KAAK,OAAO;QAC/B,OAAO;KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,OAAoB;IACnD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CACtC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,MAAM;QACrB,CAAC,CAAC,cAAc,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,sBAAsB,MAAM,CAAC,MAAM,CAAC,KAAK,WAAW;QAC5H,CAAC,CAAC,uBAAuB,CAAC;IAE3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6Ba,OAAO;;;;;;;EAO1B,IAAI;;;;;;CAML,CAAC;AACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Build a durable {@link RunRecord} from a run's {@link RunReport}. Pure — the
3
+ * CLI stamps the timestamp and mode and writes the JSON.
4
+ */
5
+ import type { RunReport } from '../run/run.js';
6
+ import type { RunMode, RunRecord } from './types.js';
7
+ /** Build a run record from a report, a timestamp, and the run mode. */
8
+ export declare function buildRunRecord(report: RunReport, timestamp: string, mode: RunMode): RunRecord;
9
+ /** A filesystem-safe filename for a run record from its timestamp. */
10
+ export declare function recordFilename(timestamp: string): string;
11
+ //# sourceMappingURL=record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../source/observe/record.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAGX,OAAO,EACP,SAAS,EAET,MAAM,YAAY,CAAC;AA8BpB,uEAAuE;AACvE,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,GACX,SAAS,CAiCX;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Build a durable {@link RunRecord} from a run's {@link RunReport}. Pure — the
3
+ * CLI stamps the timestamp and mode and writes the JSON.
4
+ */
5
+ import { SEVERITIES } from '../findings/types.js';
6
+ function emptyCounts() {
7
+ return { low: 0, medium: 0, high: 0, critical: 0 };
8
+ }
9
+ function addCounts(into, from) {
10
+ for (const severity of SEVERITIES) {
11
+ into[severity] += from[severity];
12
+ }
13
+ }
14
+ function repoRecord(outcome) {
15
+ const bySeverity = emptyCounts();
16
+ let findings = 0;
17
+ const packs = outcome.packs.map(pack => {
18
+ for (const finding of pack.findings) {
19
+ bySeverity[finding.severity] += 1;
20
+ }
21
+ findings += pack.findings.length;
22
+ return {
23
+ pack: pack.pack,
24
+ version: pack.version,
25
+ findings: pack.findings.length,
26
+ ok: pack.ok,
27
+ };
28
+ });
29
+ return { repo: outcome.repo, findings, bySeverity, packs };
30
+ }
31
+ /** Build a run record from a report, a timestamp, and the run mode. */
32
+ export function buildRunRecord(report, timestamp, mode) {
33
+ const repos = report.outcome.repos.map(repoRecord);
34
+ const totalsBySeverity = emptyCounts();
35
+ let totalFindings = 0;
36
+ for (const repo of repos) {
37
+ addCounts(totalsBySeverity, repo.bySeverity);
38
+ totalFindings += repo.findings;
39
+ }
40
+ const record = {
41
+ timestamp,
42
+ mode,
43
+ repos,
44
+ totals: {
45
+ repos: repos.length,
46
+ findings: totalFindings,
47
+ bySeverity: totalsBySeverity,
48
+ },
49
+ targetErrors: report.targetErrors,
50
+ };
51
+ if (report.filed) {
52
+ const filing = { filed: 0, touched: 0, resolved: 0 };
53
+ for (const { result } of report.reconciled) {
54
+ filing.filed += result.created.length;
55
+ filing.touched += result.touched;
56
+ filing.resolved += result.resolved;
57
+ }
58
+ record.filing = filing;
59
+ }
60
+ return record;
61
+ }
62
+ /** A filesystem-safe filename for a run record from its timestamp. */
63
+ export function recordFilename(timestamp) {
64
+ return `${timestamp.replace(/[:.]/g, '-')}.json`;
65
+ }
66
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../source/observe/record.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,UAAU,EAAgB,MAAM,sBAAsB,CAAC;AAW/D,SAAS,WAAW;IACnB,OAAO,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB,EAAE,IAAoB;IAC5D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,OAAoB;IACvC,MAAM,UAAU,GAAG,WAAW,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,UAAU,CAAC,OAAO,CAAC,QAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;SACX,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;AAC1D,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAC7B,MAAiB,EACjB,SAAiB,EACjB,IAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC;IACvC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAc;QACzB,SAAS;QACT,IAAI;QACJ,KAAK;QACL,MAAM,EAAE;YACP,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,gBAAgB;SAC5B;QACD,YAAY,EAAE,MAAM,CAAC,YAAY;KACjC,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,GAAkB,EAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC;QAClE,KAAK,MAAM,EAAC,MAAM,EAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YACtC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;YACjC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;AAClD,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The durable per-run record and the shapes the dashboard renders from. One
3
+ * record is committed to the config repo per run (the durable store); the
4
+ * dashboard is the read-side surface generated from the records
5
+ * (see docs/workflow/index.md#observability-and-run-history).
6
+ */
7
+ import type { Severity } from '../findings/types.js';
8
+ /** Finding counts broken down by severity. */
9
+ export type SeverityCounts = Record<Severity, number>;
10
+ /** One pack's contribution within a repo, for the record. */
11
+ export interface PackRunRecord {
12
+ pack: string;
13
+ version: string;
14
+ findings: number;
15
+ ok: boolean;
16
+ }
17
+ /** One repository's result within a run. */
18
+ export interface RepoRunRecord {
19
+ repo: string;
20
+ findings: number;
21
+ bySeverity: SeverityCounts;
22
+ packs: PackRunRecord[];
23
+ }
24
+ /** The mode a run executed in. */
25
+ export type RunMode = 'live' | 'dry-run' | 'audit-only';
26
+ /** Issue-filing totals for a live run. */
27
+ export interface FilingSummary {
28
+ filed: number;
29
+ touched: number;
30
+ resolved: number;
31
+ }
32
+ /** A committed record of one Sentinel run. */
33
+ export interface RunRecord {
34
+ /** ISO timestamp of the run. */
35
+ timestamp: string;
36
+ mode: RunMode;
37
+ repos: RepoRunRecord[];
38
+ totals: {
39
+ repos: number;
40
+ findings: number;
41
+ bySeverity: SeverityCounts;
42
+ };
43
+ /** Present on a live run. */
44
+ filing?: FilingSummary;
45
+ /** Target-expansion / clone failures, carried for visibility. */
46
+ targetErrors: string[];
47
+ }
48
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../source/observe/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;CACZ;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAExD,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACzB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,cAAc,CAAC;KAC3B,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iEAAiE;IACjE,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The durable per-run record and the shapes the dashboard renders from. One
3
+ * record is committed to the config repo per run (the durable store); the
4
+ * dashboard is the read-side surface generated from the records
5
+ * (see docs/workflow/index.md#observability-and-run-history).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/observe/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -6,18 +6,16 @@
6
6
  */
7
7
  /** Build the `gh repo clone` argv for a shallow single-branch clone. */
8
8
  export declare function buildCloneArgs(repo: string, dir: string): string[];
9
- /** The outcome of ensuring the target repos are present in the workspace. */
10
- export interface EnsureTargetsResult {
11
- cloned: string[];
12
- skipped: string[];
13
- errors: {
14
- repo: string;
15
- error: string;
16
- }[];
9
+ /** The outcome of ensuring one repo is present in the workspace. */
10
+ export interface PrepareResult {
11
+ ok: boolean;
12
+ /** True if the repo was already present and no clone was attempted. */
13
+ skipped: boolean;
14
+ error?: string;
17
15
  }
18
16
  /**
19
- * Ensure each repo is checked out under `workspaceDir/<owner>/<name>`, cloning
20
- * any that are missing. Repos already present are left untouched.
17
+ * Ensure a single repo is checked out at `dir`, cloning it if missing. Returns
18
+ * a result rather than throwing so one failure does not abort a run.
21
19
  */
22
- export declare function ensureTargets(repos: string[], workspaceDir: string): EnsureTargetsResult;
20
+ export declare function prepareRepo(repo: string, dir: string): Promise<PrepareResult>;
23
21
  //# sourceMappingURL=clone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../source/run/clone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAElE;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CACxC;AAGD;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,GAClB,mBAAmB,CA+BrB"}
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../source/run/clone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAElE;AAED,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAGD;;;GAGG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,aAAa,CAAC,CAwBxB"}
package/dist/run/clone.js CHANGED
@@ -6,46 +6,38 @@
6
6
  */
7
7
  import { spawnSync } from 'node:child_process';
8
8
  import { existsSync } from 'node:fs';
9
- import { join } from 'node:path';
10
9
  /** Build the `gh repo clone` argv for a shallow single-branch clone. */
11
10
  export function buildCloneArgs(repo, dir) {
12
11
  return ['repo', 'clone', repo, dir, '--', '--depth', '1', '--single-branch'];
13
12
  }
14
13
  /* c8 ignore start -- spawns gh and touches the filesystem. */
15
14
  /**
16
- * Ensure each repo is checked out under `workspaceDir/<owner>/<name>`, cloning
17
- * any that are missing. Repos already present are left untouched.
15
+ * Ensure a single repo is checked out at `dir`, cloning it if missing. Returns
16
+ * a result rather than throwing so one failure does not abort a run.
18
17
  */
19
- export function ensureTargets(repos, workspaceDir) {
20
- const result = { cloned: [], skipped: [], errors: [] };
21
- for (const repo of repos) {
22
- const dir = join(workspaceDir, repo);
23
- if (existsSync(dir)) {
24
- result.skipped.push(repo);
25
- continue;
26
- }
27
- const run = spawnSync('gh', buildCloneArgs(repo, dir), {
28
- encoding: 'utf8',
29
- stdio: ['ignore', 'pipe', 'pipe'],
30
- env: process.env,
31
- });
32
- if (run.error) {
33
- const code = run.error.code;
34
- result.errors.push({
35
- repo,
36
- error: code === 'ENOENT'
37
- ? '`gh` is not on PATH. Install the GitHub CLI.'
38
- : String(run.error),
39
- });
40
- }
41
- else if (run.status !== 0) {
42
- result.errors.push({ repo, error: (run.stderr ?? '').trim() });
43
- }
44
- else {
45
- result.cloned.push(repo);
46
- }
18
+ export async function prepareRepo(repo, dir) {
19
+ if (existsSync(dir)) {
20
+ return { ok: true, skipped: true };
47
21
  }
48
- return result;
22
+ const run = spawnSync('gh', buildCloneArgs(repo, dir), {
23
+ encoding: 'utf8',
24
+ stdio: ['ignore', 'pipe', 'pipe'],
25
+ env: process.env,
26
+ });
27
+ if (run.error) {
28
+ const code = run.error.code;
29
+ return {
30
+ ok: false,
31
+ skipped: false,
32
+ error: code === 'ENOENT'
33
+ ? '`gh` is not on PATH. Install the GitHub CLI.'
34
+ : String(run.error),
35
+ };
36
+ }
37
+ if (run.status !== 0) {
38
+ return { ok: false, skipped: false, error: (run.stderr ?? '').trim() };
39
+ }
40
+ return { ok: true, skipped: false };
49
41
  }
50
42
  /* c8 ignore stop */
51
43
  //# sourceMappingURL=clone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../source/run/clone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,GAAW;IACvD,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAC9E,CAAC;AASD,8DAA8D;AAC9D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC5B,KAAe,EACf,YAAoB;IAEpB,MAAM,MAAM,GAAwB,EAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAC;IAE1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,SAAS;QACV,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YACtD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,GAAG,CAAC,KAA+B,CAAC,IAAI,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClB,IAAI;gBACJ,KAAK,EACJ,IAAI,KAAK,QAAQ;oBAChB,CAAC,CAAC,8CAA8C;oBAChD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aACrB,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AACD,oBAAoB"}
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../source/run/clone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAEnC,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,GAAW;IACvD,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAC9E,CAAC;AAUD,8DAA8D;AAC9D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,IAAY,EACZ,GAAW;IAEX,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACtD,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,GAAG,CAAC,KAA+B,CAAC,IAAI,CAAC;QACvD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,KAAK;YACd,KAAK,EACJ,IAAI,KAAK,QAAQ;gBAChB,CAAC,CAAC,8CAA8C;gBAChD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SACrB,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC;IACtE,CAAC;IACD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;AACnC,CAAC;AACD,oBAAoB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Expand a config's targets into concrete repositories. Explicit `repo:`
3
+ * targets pass through; `pattern:` targets are matched against the owner's
4
+ * repositories (listed via an injected {@link RepoLister}). A repo that matches
5
+ * several targets is audited once, with the union of their rule packs.
6
+ */
7
+ import type { Target } from '../config/types.js';
8
+ import type { RepoLister } from './repo-lister.js';
9
+ /** A concrete repository to audit, with its assigned rule packs. */
10
+ export interface ResolvedRepoTarget {
11
+ repo: string;
12
+ rulePacks: string[];
13
+ }
14
+ /** The outcome of expanding targets. */
15
+ export interface ExpandResult {
16
+ targets: ResolvedRepoTarget[];
17
+ /** Reasons a target could not be expanded (missing lister, list failure). */
18
+ errors: string[];
19
+ }
20
+ /**
21
+ * Expand `config.targets`. Pattern targets need a lister; without one they are
22
+ * recorded as errors and skipped. The owner is the segment before the first
23
+ * `/` in the pattern (e.g. `my-org` for `my-org/web-*`).
24
+ */
25
+ export declare function expandTargets(targets: Target[], lister?: RepoLister): Promise<ExpandResult>;
26
+ //# sourceMappingURL=expand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../source/run/expand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,6EAA6E;IAC7E,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAcD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,YAAY,CAAC,CAkDvB"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Expand a config's targets into concrete repositories. Explicit `repo:`
3
+ * targets pass through; `pattern:` targets are matched against the owner's
4
+ * repositories (listed via an injected {@link RepoLister}). A repo that matches
5
+ * several targets is audited once, with the union of their rule packs.
6
+ */
7
+ import { matchesGlob } from '../rule-packs/glob.js';
8
+ function addRepo(byRepo, repo, rulePacks) {
9
+ const packs = byRepo.get(repo) ?? new Set();
10
+ for (const pack of rulePacks) {
11
+ packs.add(pack);
12
+ }
13
+ byRepo.set(repo, packs);
14
+ }
15
+ /**
16
+ * Expand `config.targets`. Pattern targets need a lister; without one they are
17
+ * recorded as errors and skipped. The owner is the segment before the first
18
+ * `/` in the pattern (e.g. `my-org` for `my-org/web-*`).
19
+ */
20
+ export async function expandTargets(targets, lister) {
21
+ const byRepo = new Map();
22
+ const errors = [];
23
+ const listed = new Map();
24
+ for (const target of targets) {
25
+ if (target.repo) {
26
+ addRepo(byRepo, target.repo, target.rulePacks);
27
+ continue;
28
+ }
29
+ if (!target.pattern) {
30
+ continue;
31
+ }
32
+ const pattern = target.pattern;
33
+ if (!lister) {
34
+ errors.push(`cannot expand pattern "${pattern}" — no repo lister available (needs a GitHub token)`);
35
+ continue;
36
+ }
37
+ const owner = pattern.split('/')[0];
38
+ if (!owner) {
39
+ errors.push(`invalid pattern "${pattern}" — expected owner/glob`);
40
+ continue;
41
+ }
42
+ let repos = listed.get(owner);
43
+ if (!repos) {
44
+ try {
45
+ repos = await lister.list(owner);
46
+ listed.set(owner, repos);
47
+ }
48
+ catch (error) {
49
+ const message = error instanceof Error ? error.message : String(error);
50
+ errors.push(`failed to list repos for "${owner}": ${message}`);
51
+ continue;
52
+ }
53
+ }
54
+ const matched = repos.filter(repo => matchesGlob(pattern, repo));
55
+ for (const repo of matched) {
56
+ addRepo(byRepo, repo, target.rulePacks);
57
+ }
58
+ }
59
+ const resolved = [...byRepo.entries()].map(([repo, packs]) => ({ repo, rulePacks: [...packs] }));
60
+ return { targets: resolved, errors };
61
+ }
62
+ //# sourceMappingURL=expand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../source/run/expand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAgBlD,SAAS,OAAO,CACf,MAAgC,EAChC,IAAY,EACZ,SAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAiB,EACjB,MAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,SAAS;QACV,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,SAAS;QACV,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACV,0BAA0B,OAAO,qDAAqD,CACtF,CAAC;YACF,SAAS;QACV,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,oBAAoB,OAAO,yBAAyB,CAAC,CAAC;YAClE,SAAS;QACV,CAAC;QAED,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC;gBACJ,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC;gBAC/D,SAAS;YACV,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAyB,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAC/D,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,EAAC,CAAC,CAClD,CAAC;IACF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * List an owner's repositories so `pattern:` targets can be expanded into
3
+ * concrete repos. Injectable (RepoLister) so target expansion is testable
4
+ * without the GitHub API; the real implementation shells out to `gh`.
5
+ */
6
+ /** Lists the repositories under a GitHub owner (org or user). */
7
+ export interface RepoLister {
8
+ /** Return `owner/name` for every non-archived repo under `owner`. */
9
+ list(owner: string): Promise<string[]>;
10
+ }
11
+ /** Build the `gh repo list` argv. Pure and tested. */
12
+ export declare function buildRepoListArgs(owner: string): string[];
13
+ /** Parse `gh repo list --json ...` output, dropping archived repos. */
14
+ export declare function parseRepoList(json: string): string[];
15
+ export declare const ghRepoLister: RepoLister;
16
+ //# sourceMappingURL=repo-lister.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-lister.d.ts","sourceRoot":"","sources":["../../source/run/repo-lister.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,iEAAiE;AACjE,MAAM,WAAW,UAAU;IAC1B,qEAAqE;IACrE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACvC;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpD;AAGD,eAAO,MAAM,YAAY,EAAE,UAqB1B,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * List an owner's repositories so `pattern:` targets can be expanded into
3
+ * concrete repos. Injectable (RepoLister) so target expansion is testable
4
+ * without the GitHub API; the real implementation shells out to `gh`.
5
+ */
6
+ import { spawnSync } from 'node:child_process';
7
+ /** Build the `gh repo list` argv. Pure and tested. */
8
+ export function buildRepoListArgs(owner) {
9
+ return [
10
+ 'repo',
11
+ 'list',
12
+ owner,
13
+ '--limit',
14
+ '1000',
15
+ '--json',
16
+ 'nameWithOwner,isArchived',
17
+ ];
18
+ }
19
+ /** Parse `gh repo list --json ...` output, dropping archived repos. */
20
+ export function parseRepoList(json) {
21
+ const raw = JSON.parse(json);
22
+ return raw.filter(repo => !repo.isArchived).map(repo => repo.nameWithOwner);
23
+ }
24
+ /* c8 ignore start -- spawns the gh CLI; not exercised in unit tests. */
25
+ export const ghRepoLister = {
26
+ async list(owner) {
27
+ const result = spawnSync('gh', buildRepoListArgs(owner), {
28
+ encoding: 'utf8',
29
+ stdio: ['ignore', 'pipe', 'pipe'],
30
+ env: process.env,
31
+ });
32
+ if (result.error) {
33
+ const code = result.error.code;
34
+ if (code === 'ENOENT') {
35
+ throw new Error('`gh` is not on PATH. Install the GitHub CLI.');
36
+ }
37
+ throw result.error;
38
+ }
39
+ if (result.status !== 0) {
40
+ throw new Error(`gh repo list ${owner} failed (status ${result.status}): ${(result.stderr ?? '').trim()}`);
41
+ }
42
+ return parseRepoList(result.stdout ?? '');
43
+ },
44
+ };
45
+ /* c8 ignore stop */
46
+ //# sourceMappingURL=repo-lister.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-lister.js","sourceRoot":"","sources":["../../source/run/repo-lister.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAQ7C,sDAAsD;AACtD,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC9C,OAAO;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,MAAM;QACN,QAAQ;QACR,0BAA0B;KAC1B,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAGzB,CAAC;IACH,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7E,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAe;IACvC,KAAK,CAAC,IAAI,CAAC,KAAa;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACxD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,GAAI,MAAM,CAAC,KAA+B,CAAC,IAAI,CAAC;YAC1D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACd,gBAAgB,KAAK,mBAAmB,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACzF,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CACD,CAAC;AACF,oBAAoB"}
package/dist/run/run.d.ts CHANGED
@@ -12,7 +12,9 @@ import { type ReconcileResult } from '../dedup/reconcile.js';
12
12
  import type { ReconcileClient } from '../issues/types.js';
13
13
  import type { AutoFixOptions } from '../orchestrator/auto-fix.js';
14
14
  import type { ModelRunner } from '../orchestrator/types.js';
15
+ import type { PrepareResult } from './clone.js';
15
16
  import { type DryRunPreview } from './preview.js';
17
+ import type { RepoLister } from './repo-lister.js';
16
18
  import type { PackLoadError, PackLoader, RepoFiles, RunOutcome } from './types.js';
17
19
  /** Injected dependencies for a run. */
18
20
  export interface RunDeps {
@@ -21,6 +23,10 @@ export interface RunDeps {
21
23
  packs: PackLoader;
22
24
  /** Present only when filing issues (the Actions path). */
23
25
  client?: ReconcileClient;
26
+ /** Lists an owner's repos to expand pattern targets. */
27
+ repoLister?: RepoLister;
28
+ /** Ensures a target repo is checked out; omit to assume repos are present. */
29
+ cloneRepo?: (repo: string, dir: string) => Promise<PrepareResult>;
24
30
  /** ISO timestamp for deterministic reconciliation. */
25
31
  now: string;
26
32
  }
@@ -56,6 +62,8 @@ export interface RunReport {
56
62
  preview: DryRunPreview;
57
63
  }[];
58
64
  packLoadErrors: PackLoadError[];
65
+ /** Target-expansion and clone failures. */
66
+ targetErrors: string[];
59
67
  /** True if issues were filed (client present and not a dry run). */
60
68
  filed: boolean;
61
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../source/run/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAe,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAC,KAAK,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAgB,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAC,KAAK,aAAa,EAAwB,MAAM,cAAc,CAAC;AAEvE,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EAEV,SAAS,EAET,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB,uCAAuC;AACvC,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAChC,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAC,EAAE,CAAC;IACtD,8CAA8C;IAC9C,QAAQ,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC,EAAE,CAAC;IACnD,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;CACf;AAcD,gDAAgD;AAChD,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC,CAkHpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,cAAmB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAwBrB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../source/run/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAe,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAC,KAAK,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAgB,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAK1D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,KAAK,aAAa,EAAwB,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EAEV,SAAS,EAET,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB,uCAAuC;AACvC,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAChC,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAC,EAAE,CAAC;IACtD,8CAA8C;IAC9C,QAAQ,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC,EAAE,CAAC;IACnD,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,2CAA2C;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;CACf;AAcD,gDAAgD;AAChD,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC,CA6HpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,cAAmB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAwBrB"}
package/dist/run/run.js CHANGED
@@ -14,6 +14,7 @@ import { targetRepoFor } from '../issues/file.js';
14
14
  import { resolveDependencies } from '../rule-packs/dependencies.js';
15
15
  import { parseRulePack } from '../rule-packs/parse.js';
16
16
  import { auditPack } from './audit.js';
17
+ import { expandTargets } from './expand.js';
17
18
  import { previewReconciliation } from './preview.js';
18
19
  import { unionPatterns } from './select.js';
19
20
  async function readOverride(files, repoDir) {
@@ -32,14 +33,20 @@ export async function runFromConfig(config, deps, options) {
32
33
  const reconciled = [];
33
34
  const previews = [];
34
35
  const filing = Boolean(deps.client) && !options.dryRun;
35
- for (const target of config.targets) {
36
- // Pattern targets need org repo enumeration (a GitHub API concern); v1
37
- // audits explicit repos.
38
- if (!target.repo) {
39
- continue;
40
- }
36
+ // Expand explicit and pattern targets into concrete repositories.
37
+ const expanded = await expandTargets(config.targets, deps.repoLister);
38
+ const targetErrors = [...expanded.errors];
39
+ for (const target of expanded.targets) {
41
40
  const repoName = target.repo;
42
41
  const repoDir = join(options.workspaceDir, repoName);
42
+ // Clone the repo if a cloner is provided and it is not already present.
43
+ if (deps.cloneRepo) {
44
+ const prepared = await deps.cloneRepo(repoName, repoDir);
45
+ if (!prepared.ok) {
46
+ targetErrors.push(`could not check out ${repoName}: ${prepared.error ?? 'clone failed'}`);
47
+ continue;
48
+ }
49
+ }
43
50
  const resolvedNames = new Set();
44
51
  const missingPacks = [];
45
52
  for (const name of target.rulePacks) {
@@ -104,6 +111,7 @@ export async function runFromConfig(config, deps, options) {
104
111
  reconciled,
105
112
  previews,
106
113
  packLoadErrors: loaded.errors,
114
+ targetErrors,
107
115
  filed: filing,
108
116
  };
109
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../source/run/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAuB,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAqB,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAoD1C,KAAK,UAAU,YAAY,CAC1B,KAAgB,EAChB,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAsB,EACtB,IAAa,EACb,OAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACpD,CAAC;IAEF,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,UAAU,GAA8C,EAAE,CAAC;IACjE,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAEvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,uEAAuE;QACvE,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,SAAS;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAErD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC3C,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QAED,MAAM,aAAa,GAAe,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAE3E,MAAM,aAAa,GAAmB;YACrC,GAAG,OAAO,CAAC,OAAO;YAClB,GAAG,EAAE,OAAO;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC;QACF,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAChB,MAAM,SAAS,CACd,IAAI,EACJ,EAAC,QAAQ,EAAE,KAAK,EAAC,EACjB,MAAM,CAAC,KAAK,EACZ,IAAI,CAAC,MAAM,EACX,aAAa,CACb,CACD,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,OAAO,GAAkB;YAC9B,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACrC,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,MAAM,EACX,OAAO,EACP,IAAI,CAAC,GAAG,EACR,EAAC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAC,EAChD,QAAQ,CACR,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7C,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;gBACpC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CACpC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR;gBACC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;aAC9C,CACD,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,EAAC,KAAK,EAAC;QAChB,UAAU;QACV,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,MAAM;QAC7B,KAAK,EAAE,MAAM;KACb,CAAC;AACH,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,QAAgB,EAChB,OAAe,EACf,KAA8B,EAC9B,IAAkB,EAClB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;aAC1B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,SAAS,CAC9B,IAAI,EACJ,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAC,EAC1B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,EAAC,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAC1B,CAAC;IAEF,OAAO,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../source/run/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAuB,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAErC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAqB,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AA0D1C,KAAK,UAAU,YAAY,CAC1B,KAAgB,EAChB,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAsB,EACtB,IAAa,EACb,OAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACpD,CAAC;IAEF,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,UAAU,GAA8C,EAAE,CAAC;IACjE,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAEvD,kEAAkE;IAClE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1C,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAErD,wEAAwE;QACxE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,YAAY,CAAC,IAAI,CAChB,uBAAuB,QAAQ,KAAK,QAAQ,CAAC,KAAK,IAAI,cAAc,EAAE,CACtE,CAAC;gBACF,SAAS;YACV,CAAC;QACF,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC3C,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QAED,MAAM,aAAa,GAAe,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAE3E,MAAM,aAAa,GAAmB;YACrC,GAAG,OAAO,CAAC,OAAO;YAClB,GAAG,EAAE,OAAO;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC;QACF,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAChB,MAAM,SAAS,CACd,IAAI,EACJ,EAAC,QAAQ,EAAE,KAAK,EAAC,EACjB,MAAM,CAAC,KAAK,EACZ,IAAI,CAAC,MAAM,EACX,aAAa,CACb,CACD,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,OAAO,GAAkB;YAC9B,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACrC,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,MAAM,EACX,OAAO,EACP,IAAI,CAAC,GAAG,EACR,EAAC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAC,EAChD,QAAQ,CACR,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7C,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;gBACpC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CACpC,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR;gBACC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;aAC9C,CACD,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,EAAC,KAAK,EAAC;QAChB,UAAU;QACV,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,MAAM;QAC7B,YAAY;QACZ,KAAK,EAAE,MAAM;KACb,CAAC;AACH,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,QAAgB,EAChB,OAAe,EACf,KAA8B,EAC9B,IAAkB,EAClB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;aAC1B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,SAAS,CAC9B,IAAI,EACJ,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAC,EAC1B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,EAAC,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAC1B,CAAC;IAEF,OAAO,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanocollective/sentinel",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.1",
4
4
  "description": "An installable, Nanocoder-driven workflow that runs continuous, configurable security and code audits across a GitHub organisation's repositories and files findings as issues.",
5
5
  "keywords": [
6
6
  "security",