@revisium/orchestrator 0.1.0-alpha.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -130
- package/control-plane/default-playbook/catalog/pipelines.json +280 -11
- package/control-plane/default-playbook/package.json +1 -1
- package/control-plane/default-playbook/prompts/developer.md +1 -0
- package/control-plane/default-playbook/prompts/triager.md +3 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js +30 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
- package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
- package/dist/api/graphql-api/runs/model/run.model.js +6 -0
- package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
- package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
- package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
- package/dist/cli/commands/lifecycle.js +113 -8
- package/dist/cli/commands/lifecycle.js.map +1 -1
- package/dist/cli/commands/mcp.js +8 -1
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/process-tree.js +42 -0
- package/dist/cli/commands/process-tree.js.map +1 -1
- package/dist/cli/commands/rogue-reaper.js +63 -0
- package/dist/cli/commands/rogue-reaper.js.map +1 -0
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/control-plane/bootstrap.js +14 -1
- package/dist/control-plane/bootstrap.js.map +1 -1
- package/dist/control-plane/client-transport.js +1 -1
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/default-playbook-policy.js +593 -0
- package/dist/control-plane/default-playbook-policy.js.map +1 -0
- package/dist/control-plane/seed-default-playbook.js +77 -8
- package/dist/control-plane/seed-default-playbook.js.map +1 -1
- package/dist/e2e/kit/agents.js +15 -21
- package/dist/e2e/kit/agents.js.map +1 -1
- package/dist/e2e/kit/assertions.js +18 -13
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/e2e/kit/fake-integrator.js +11 -2
- package/dist/e2e/kit/fake-integrator.js.map +1 -1
- package/dist/e2e/kit/gh-emulator.js +2 -1
- package/dist/e2e/kit/gh-emulator.js.map +1 -1
- package/dist/e2e/kit/git-target-repo.js +1 -1
- package/dist/engine/dbos.service.js +3 -0
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
- package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
- package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
- package/dist/host/daemon.js +14 -1
- package/dist/host/daemon.js.map +1 -1
- package/dist/host/host-runtime.js +20 -2
- package/dist/host/host-runtime.js.map +1 -1
- package/dist/mcp/mcp-capabilities.js +16 -1
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +325 -12
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-tools.js +58 -12
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/observability/activity-signal.js +107 -0
- package/dist/observability/activity-signal.js.map +1 -0
- package/dist/observability/index.js +1 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +549 -44
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
- package/dist/pipeline/pipeline.service.js +195 -101
- package/dist/pipeline/pipeline.service.js.map +1 -1
- package/dist/pipeline/route-contract.js +4 -3
- package/dist/pipeline/route-contract.js.map +1 -1
- package/dist/pipeline-core/interpret.js +2 -0
- package/dist/pipeline-core/interpret.js.map +1 -1
- package/dist/pipeline-core/kit/builders.js +2 -0
- package/dist/pipeline-core/kit/builders.js.map +1 -1
- package/dist/pipeline-core/kit/fixtures.js +72 -21
- package/dist/pipeline-core/kit/fixtures.js.map +1 -1
- package/dist/pipeline-core/types.js +2 -0
- package/dist/pipeline-core/types.js.map +1 -1
- package/dist/pipeline-core/validate-dataflow.js +32 -0
- package/dist/pipeline-core/validate-dataflow.js.map +1 -1
- package/dist/playbook/import-mapper.js +8 -1
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/poller/pr-readiness-core.js +299 -28
- package/dist/poller/pr-readiness-core.js.map +1 -1
- package/dist/revisium/playbooks.service.js +17 -2
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/run.service.js +1 -0
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/run/append-event.js +8 -5
- package/dist/run/append-event.js.map +1 -1
- package/dist/run/create-run.js +5 -1
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +30 -4
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/issue-ref.js +88 -0
- package/dist/run/issue-ref.js.map +1 -0
- package/dist/runners/claude-code.service.js +2 -2
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/codex.service.js +2 -2
- package/dist/runners/codex.service.js.map +1 -1
- package/dist/runners/integrator-branch-naming.js +33 -13
- package/dist/runners/integrator-branch-naming.js.map +1 -1
- package/dist/runners/integrator.js +285 -72
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/worktree.service.js +2 -2
- package/dist/runners/worktree.service.js.map +1 -1
- package/dist/task-control-plane/pr-readiness.service.js +15 -13
- package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
- package/dist/task-control-plane/run-watch.service.js +512 -0
- package/dist/task-control-plane/run-watch.service.js.map +1 -0
- package/dist/task-control-plane/task-control-plane-api.service.js +277 -25
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/worker/artifact-store.js +21 -3
- package/dist/worker/artifact-store.js.map +1 -1
- package/dist/worker/build-context.js +19 -3
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +76 -15
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +40 -13
- package/dist/worker/codex-runner.js.map +1 -1
- package/dist/worker/process-executor.js +149 -20
- package/dist/worker/process-executor.js.map +1 -1
- package/dist/worker/runner-common.js +29 -0
- package/dist/worker/runner-common.js.map +1 -1
- package/dist/worker/runner.js +16 -1
- package/dist/worker/runner.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const GITHUB_OWNER_RE = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$/;
|
|
2
|
+
const GITHUB_REPO_RE = /^[A-Za-z0-9._-]{1,100}$/;
|
|
3
|
+
const WHITESPACE_RE = /\s/;
|
|
4
|
+
function asRecord(value) {
|
|
5
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
6
|
+
return null;
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
function hasOwnIssueRef(params) {
|
|
10
|
+
return Object.prototype.hasOwnProperty.call(params, 'issueRef');
|
|
11
|
+
}
|
|
12
|
+
function hasControlCharacter(value) {
|
|
13
|
+
for (let i = 0; i < value.length; i++) {
|
|
14
|
+
const code = value.charCodeAt(i);
|
|
15
|
+
if (code <= 31 || code === 127)
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
function normalizeIssueRepo(value, source) {
|
|
21
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
22
|
+
throw new TypeError(`${source}.repo must be a GitHub owner/repo full name`);
|
|
23
|
+
}
|
|
24
|
+
if (value.trim() !== value || hasControlCharacter(value) || WHITESPACE_RE.test(value)) {
|
|
25
|
+
throw new TypeError(`${source}.repo must not contain whitespace or control characters`);
|
|
26
|
+
}
|
|
27
|
+
const parts = value.split('/');
|
|
28
|
+
if (parts.length !== 2) {
|
|
29
|
+
throw new TypeError(`${source}.repo must be a GitHub owner/repo full name`);
|
|
30
|
+
}
|
|
31
|
+
const [owner, repo] = parts;
|
|
32
|
+
if (!owner || !repo || !GITHUB_OWNER_RE.test(owner)) {
|
|
33
|
+
throw new TypeError(`${source}.repo owner must be a valid GitHub owner slug`);
|
|
34
|
+
}
|
|
35
|
+
if (!GITHUB_REPO_RE.test(repo) || repo === '.' || repo === '..' || repo.toLowerCase().endsWith('.git')) {
|
|
36
|
+
throw new TypeError(`${source}.repo name must be a valid GitHub repository slug`);
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
export function normalizeIssueRef(value, source = 'issueRef') {
|
|
41
|
+
if (value === undefined)
|
|
42
|
+
return undefined;
|
|
43
|
+
const record = asRecord(value);
|
|
44
|
+
if (!record)
|
|
45
|
+
throw new TypeError(`${source} must be an object with repo, number, and url`);
|
|
46
|
+
const repo = normalizeIssueRepo(record.repo, source);
|
|
47
|
+
const url = typeof record.url === 'string' ? record.url.trim() : '';
|
|
48
|
+
const number = record.number;
|
|
49
|
+
if (typeof number !== 'number' || !Number.isSafeInteger(number) || number <= 0) {
|
|
50
|
+
throw new TypeError(`${source}.number must be a positive integer`);
|
|
51
|
+
}
|
|
52
|
+
if (!url)
|
|
53
|
+
throw new TypeError(`${source}.url must be a non-empty string`);
|
|
54
|
+
return { repo, number, url };
|
|
55
|
+
}
|
|
56
|
+
export function issueRefsEqual(left, right) {
|
|
57
|
+
return (left.repo.toLowerCase() === right.repo.toLowerCase() &&
|
|
58
|
+
left.number === right.number &&
|
|
59
|
+
left.url === right.url);
|
|
60
|
+
}
|
|
61
|
+
export function normalizeIssueRefIntoParams(params, topLevelIssueRef) {
|
|
62
|
+
const paramsIssueRef = hasOwnIssueRef(params)
|
|
63
|
+
? normalizeIssueRef(params.issueRef, 'params.issueRef')
|
|
64
|
+
: undefined;
|
|
65
|
+
const issueRef = normalizeIssueRef(topLevelIssueRef, 'issueRef');
|
|
66
|
+
if (paramsIssueRef && issueRef && !issueRefsEqual(paramsIssueRef, issueRef)) {
|
|
67
|
+
throw new Error('issueRef conflicts with params.issueRef');
|
|
68
|
+
}
|
|
69
|
+
const canonical = issueRef ?? paramsIssueRef;
|
|
70
|
+
return canonical ? { ...params, issueRef: canonical } : params;
|
|
71
|
+
}
|
|
72
|
+
export function issueRefFromParams(params) {
|
|
73
|
+
const record = asRecord(params);
|
|
74
|
+
if (!record || !hasOwnIssueRef(record))
|
|
75
|
+
return undefined;
|
|
76
|
+
try {
|
|
77
|
+
return normalizeIssueRef(record.issueRef, 'params.issueRef');
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export function issueRefTag(issueRef, repo) {
|
|
84
|
+
if (!issueRef)
|
|
85
|
+
return '';
|
|
86
|
+
return repo && issueRef.repo.toLowerCase() === repo.toLowerCase() ? `#${issueRef.number}` : `${issueRef.repo}#${issueRef.number}`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=issue-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue-ref.js","sourceRoot":"","sources":["../../src/run/issue-ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,11 +23,11 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
23
23
|
import { Injectable, Inject } from '@nestjs/common';
|
|
24
24
|
import { join } from 'node:path';
|
|
25
25
|
import { createClaudeCodeRunner } from '../worker/claude-code-runner.js';
|
|
26
|
+
import { DEFAULT_RUNNER_WALL_CLOCK_LIMIT_MS } from '../worker/process-executor.js';
|
|
26
27
|
import { createArtifactStore } from '../worker/artifact-store.js';
|
|
27
28
|
import { RunService } from '../revisium/run.service.js';
|
|
28
29
|
import { PROCESS_EXECUTOR } from './tokens.js';
|
|
29
30
|
import { getConfig } from '../config.js';
|
|
30
|
-
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
31
31
|
let ClaudeCodeService = class ClaudeCodeService {
|
|
32
32
|
runService;
|
|
33
33
|
runner;
|
|
@@ -36,7 +36,7 @@ let ClaudeCodeService = class ClaudeCodeService {
|
|
|
36
36
|
this.runner = createClaudeCodeRunner({
|
|
37
37
|
executor,
|
|
38
38
|
resolveCwd: this.runService.makeResolveCwd(),
|
|
39
|
-
timeoutMs:
|
|
39
|
+
timeoutMs: DEFAULT_RUNNER_WALL_CLOCK_LIMIT_MS,
|
|
40
40
|
artifactStore: createArtifactStore(join(getConfig().dataDir, 'run-artifacts')),
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.service.js","sourceRoot":"","sources":["../../src/runners/claude-code.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.service.js","sourceRoot":"","sources":["../../src/runners/claude-code.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,kCAAkC,EAAwB,MAAM,+BAA+B,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGlC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAMT;IALF,MAAM,CAAW;IAElC,YAC4B,QAAyB,EAElC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAEvC,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC;YACnC,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAC5C,SAAS,EAAE,kCAAkC;YAC7C,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,GAAG,GAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC7C,CAAA;AAlBY,iBAAiB;IAD7B,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;+CACU,UAAU;GAN9B,iBAAiB,CAkB7B"}
|
|
@@ -24,8 +24,8 @@ import { getConfig } from '../config.js';
|
|
|
24
24
|
import { RunService } from '../revisium/run.service.js';
|
|
25
25
|
import { createArtifactStore } from '../worker/artifact-store.js';
|
|
26
26
|
import { createCodexRunner } from '../worker/codex-runner.js';
|
|
27
|
+
import { DEFAULT_RUNNER_WALL_CLOCK_LIMIT_MS } from '../worker/process-executor.js';
|
|
27
28
|
import { PROCESS_EXECUTOR } from './tokens.js';
|
|
28
|
-
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
29
29
|
let CodexService = class CodexService {
|
|
30
30
|
runService;
|
|
31
31
|
runner;
|
|
@@ -34,7 +34,7 @@ let CodexService = class CodexService {
|
|
|
34
34
|
this.runner = createCodexRunner({
|
|
35
35
|
executor,
|
|
36
36
|
resolveCwd: this.runService.makeResolveCwd(),
|
|
37
|
-
timeoutMs:
|
|
37
|
+
timeoutMs: DEFAULT_RUNNER_WALL_CLOCK_LIMIT_MS,
|
|
38
38
|
artifactStore: createArtifactStore(join(getConfig().dataDir, 'run-artifacts')),
|
|
39
39
|
});
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.service.js","sourceRoot":"","sources":["../../src/runners/codex.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.service.js","sourceRoot":"","sources":["../../src/runners/codex.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kCAAkC,EAAwB,MAAM,+BAA+B,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAMJ;IALF,MAAM,CAAW;IAElC,YAC4B,QAAyB,EAElC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAEvC,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;YAC9B,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAC5C,SAAS,EAAE,kCAAkC;YAC7C,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,GAAG,GAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC7C,CAAA;AAlBY,YAAY;IADxB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;+CACU,UAAU;GAN9B,YAAY,CAkBxB"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* integrator-branch-naming — deterministic feature-branch naming from a task.
|
|
3
|
-
*
|
|
4
|
-
* `branchName` is the contract between the worktree manager and the integrator (plan 0017): the
|
|
5
|
-
* worktree is created already checked out on the SAME branch the integrator commits/pushes on, so the
|
|
6
|
-
* two must derive an identical name from (taskId, title). Lifted from integrator.ts.
|
|
7
|
-
*/
|
|
8
1
|
const SLUG_MAX = 40;
|
|
9
|
-
function slugify(
|
|
10
|
-
return
|
|
2
|
+
function slugify(text) {
|
|
3
|
+
return text
|
|
11
4
|
.toLowerCase()
|
|
12
5
|
.replace(/[^a-z0-9]+/g, '-')
|
|
13
6
|
.split('-')
|
|
14
7
|
.filter((seg) => seg.length > 0)
|
|
15
8
|
.join('-')
|
|
16
|
-
.slice(0, SLUG_MAX)
|
|
9
|
+
.slice(0, SLUG_MAX)
|
|
10
|
+
.replace(/-+$/, ''); // slice() may cut mid-separator — never leave a trailing '-' (invalid-looking ref)
|
|
11
|
+
}
|
|
12
|
+
// The unique tail of a machine taskId is the segment after the LAST '_'
|
|
13
|
+
// (`task_<stamp>_<titleSlug>_<idSuffix>` → `<idSuffix>`). Falls back to a sanitized
|
|
14
|
+
// whole id when there is no usable trailing segment, so the branch stays unique + a valid ref.
|
|
15
|
+
function shortId(taskId) {
|
|
16
|
+
const tail = taskId.slice(taskId.lastIndexOf('_') + 1); // lastIndexOf -1 → whole id (no underscore)
|
|
17
|
+
return slugify(tail) || slugify(taskId) || 'task';
|
|
18
|
+
}
|
|
19
|
+
function issueBoundSlug(title, issueRef) {
|
|
20
|
+
const issueSlug = `issue-${issueRef.number}`;
|
|
21
|
+
const titleSlug = slugify(title);
|
|
22
|
+
if (!titleSlug)
|
|
23
|
+
return issueSlug;
|
|
24
|
+
const titleMax = Math.max(0, SLUG_MAX - issueSlug.length - 1);
|
|
25
|
+
const titlePart = titleSlug.slice(0, titleMax).replace(/-+$/, '');
|
|
26
|
+
return titlePart ? `${issueSlug}-${titlePart}` : issueSlug;
|
|
17
27
|
}
|
|
18
28
|
/** Derive deterministic feature branch name from taskId + title. Exported so the worktree manager
|
|
19
29
|
* checks out the SAME branch the integrator commits/pushes on (plan 0017). */
|
|
20
|
-
export function branchName(taskId, title) {
|
|
21
|
-
const
|
|
22
|
-
|
|
30
|
+
export function branchName(taskId, title, issueRef) {
|
|
31
|
+
const id = shortId(taskId);
|
|
32
|
+
const slug = slugify(title);
|
|
33
|
+
if (issueRef) {
|
|
34
|
+
return `feat/${id}-${issueBoundSlug(title, issueRef)}`;
|
|
35
|
+
}
|
|
36
|
+
return slug ? `feat/${id}-${slug}` : `feat/${id}`; // drop empty slug so no trailing '-'
|
|
37
|
+
}
|
|
38
|
+
/** The `feat/<shortId>-` prefix shared by every branch `branchName(taskId, *)` can produce.
|
|
39
|
+
* Use this in emulators/assertions to scope gh-call lookups to a specific task without knowing
|
|
40
|
+
* the title. */
|
|
41
|
+
export function taskBranchPrefix(taskId) {
|
|
42
|
+
return `feat/${shortId(taskId)}-`;
|
|
23
43
|
}
|
|
24
44
|
//# sourceMappingURL=integrator-branch-naming.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrator-branch-naming.js","sourceRoot":"","sources":["../../src/runners/integrator-branch-naming.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integrator-branch-naming.js","sourceRoot":"","sources":["../../src/runners/integrator-branch-naming.ts"],"names":[],"mappings":"AASA,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC;SACT,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,mFAAmF;AAC5G,CAAC;AAED,wEAAwE;AACxE,oFAAoF;AACpF,+FAA+F;AAC/F,SAAS,OAAO,CAAC,MAAc;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACpG,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,QAAkB;IACvD,MAAM,SAAS,GAAG,SAAS,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;+EAC+E;AAC/E,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,QAAmB;IAC3E,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,EAAE,IAAI,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,qCAAqC;AAC1F,CAAC;AAED;;iBAEiB;AACjB,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC"}
|