@cat-factory/server 0.285.0 → 0.286.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/dist/modules/bugHunt/BugHuntController.d.ts.map +1 -1
- package/dist/modules/bugHunt/BugHuntController.js +31 -8
- package/dist/modules/bugHunt/BugHuntController.js.map +1 -1
- package/dist/modules/tasks/TaskSourceController.d.ts.map +1 -1
- package/dist/modules/tasks/TaskSourceController.js +3 -47
- package/dist/modules/tasks/TaskSourceController.js.map +1 -1
- package/dist/modules/tasks/sourceRepoScope.d.ts +54 -0
- package/dist/modules/tasks/sourceRepoScope.d.ts.map +1 -0
- package/dist/modules/tasks/sourceRepoScope.js +104 -0
- package/dist/modules/tasks/sourceRepoScope.js.map +1 -0
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BugHuntController.d.ts","sourceRoot":"","sources":["../../../src/modules/bugHunt/BugHuntController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"BugHuntController.d.ts","sourceRoot":"","sources":["../../../src/modules/bugHunt/BugHuntController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA+C/C,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,CAqFhD"}
|
|
@@ -8,11 +8,19 @@ import { runInitiatorRole } from '../../http/runAdmission.js';
|
|
|
8
8
|
import { blockEditAuthority } from '../../http/workspaceAccess.js';
|
|
9
9
|
import { personalGateForBlock, readPersonalPassword } from '../providers/personalCredentialGate.js';
|
|
10
10
|
import { requireCapability } from '../../http/guards.js';
|
|
11
|
+
import { resolveHuntBoard } from '../tasks/sourceRepoScope.js';
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
|
-
// Bug hunt: pick a connected tracker,
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
13
|
+
// Bug hunt: pick a connected tracker, scope the scan, get its open + unassigned bugs ranked by
|
|
14
|
+
// impact against implementation complexity, confirm one, and have it adopted onto the board and
|
|
15
|
+
// driven through the bug-fix pipeline. The interactive dual of the recurring `bug-intake` step.
|
|
16
|
+
// See `backend/docs/bug-hunt.md`.
|
|
17
|
+
//
|
|
18
|
+
// What SCOPES the scan is decided here rather than in the service, because it is the one part of
|
|
19
|
+
// a hunt that depends on the board: a REPO-BACKED source (GitHub Issues, GitLab Issues) hunts the
|
|
20
|
+
// repository the run's own service frame is linked to, which is the `resolveRepoTarget` ancestry
|
|
21
|
+
// walk the request container carries; every other source names a board of its own. Both resolve
|
|
22
|
+
// through the same helper the issue search scopes with, so the two surfaces cannot disagree about
|
|
23
|
+
// which sources have a board to pick.
|
|
16
24
|
//
|
|
17
25
|
// Member-tier by design, and deliberately NOT mounted alongside the admin-gated
|
|
18
26
|
// `TaskSourceController`: a hunt neither reads nor edits a connection (the service resolves the
|
|
@@ -39,9 +47,10 @@ function sourceParam(c) {
|
|
|
39
47
|
}
|
|
40
48
|
export function bugHuntController() {
|
|
41
49
|
const app = new Hono();
|
|
42
|
-
// The boards a hunt can be scoped to (Jira projects / Linear teams
|
|
43
|
-
//
|
|
44
|
-
//
|
|
50
|
+
// The boards a hunt can be scoped to (Jira projects / Linear teams). A source whose provider
|
|
51
|
+
// can't enumerate them raises a ValidationError the SPA turns into "type the board in
|
|
52
|
+
// yourself", which is a usable answer; an empty list would not be. A repo-backed source is
|
|
53
|
+
// refused with its own reason, because there is nothing to type either.
|
|
45
54
|
buildHonoRoute(app, listTrackerBoardsContract, async (c) => {
|
|
46
55
|
const tasks = requireTasks(c);
|
|
47
56
|
const source = sourceParam(c);
|
|
@@ -53,7 +62,21 @@ export function bugHuntController() {
|
|
|
53
62
|
// the ranked board scan, and the user picks from it.
|
|
54
63
|
buildHonoRoute(app, runBugHuntContract, async (c) => {
|
|
55
64
|
const tasks = requireTasks(c);
|
|
56
|
-
const
|
|
65
|
+
const source = sourceParam(c);
|
|
66
|
+
const { containerId, board, ...predicates } = c.req.valid('json');
|
|
67
|
+
// The source is settled FIRST, on the registry the service owns: what a hunt's board even is
|
|
68
|
+
// depends on the provider, so a source this deployment cannot hunt has no board question to
|
|
69
|
+
// answer and gets the refusal that names the capability instead.
|
|
70
|
+
const provider = tasks.bugHuntService.requireProvider(source);
|
|
71
|
+
// Resolved BEFORE the scan, and it can refuse: a repo-backed source whose service frame has
|
|
72
|
+
// no linked repository has no issues to hunt, and answering that with an unscoped vendor
|
|
73
|
+
// search would read every repository the credential can reach.
|
|
74
|
+
const resolvedBoard = await resolveHuntBoard(c, provider, { containerId, board });
|
|
75
|
+
const result = await tasks.bugHuntService.hunt(param(c, 'workspaceId'), source, {
|
|
76
|
+
board: resolvedBoard,
|
|
77
|
+
containerId,
|
|
78
|
+
...predicates,
|
|
79
|
+
});
|
|
57
80
|
return c.json(result, 200);
|
|
58
81
|
});
|
|
59
82
|
// Adopt the confirmed candidate: import the issue, materialise it as a `bug` task in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BugHuntController.js","sourceRoot":"","sources":["../../../src/modules/bugHunt/BugHuntController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"BugHuntController.js","sourceRoot":"","sources":["../../../src/modules/bugHunt/BugHuntController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAsD/C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAwOnD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiCpD"}
|
|
@@ -8,6 +8,7 @@ import { StateSigner } from '../../github/state.js';
|
|
|
8
8
|
import { blockEditAuthority, mountWorkspacePermission } from '../../http/workspaceAccess.js';
|
|
9
9
|
import { param } from '../../http/params.js';
|
|
10
10
|
import { requireCapability } from '../../http/guards.js';
|
|
11
|
+
import { resolveSourceRepoScope } from './sourceRepoScope.js';
|
|
11
12
|
/** Resolve the tasks module, or refuse with a 503 naming what isn't wired. */
|
|
12
13
|
function requireTasks(c) {
|
|
13
14
|
return requireCapability(c.get('container').tasks, 'Task-source integration is not configured');
|
|
@@ -28,54 +29,9 @@ function sourceParam(c) {
|
|
|
28
29
|
}
|
|
29
30
|
return source;
|
|
30
31
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Resolve the repository a REPO-BACKED source's search runs against, from the search's
|
|
33
|
-
* originating block (a service frame or a task/module under one). A service is always created
|
|
34
|
-
* from (or with) a repo, so such a search REQUIRES the link: if it can't be resolved we refuse
|
|
35
|
-
* rather than silently widening it (the task couldn't run against an unlinked service anyway,
|
|
36
|
-
* and an unscoped vendor issue search reaches every repository the credential can see, which
|
|
37
|
-
* under a PAT is all of public GitHub, or every project on the GitLab instance). `blockId` is
|
|
38
|
-
* required by the contract, so there is no unscoped surface left to skip.
|
|
39
|
-
*
|
|
40
|
-
* Which sources are repo-backed is read off the provider's declared `repoScope`, never a source
|
|
41
|
-
* id compared here. A list in this function is a second authority that has to be edited in step
|
|
42
|
-
* with the registry, and the failure when it is not is silent in exactly the wrong direction:
|
|
43
|
-
* the provider refuses every search for want of a scope this function decided not to resolve,
|
|
44
|
-
* so a source that imports fine can never be searched. An UNREGISTERED source resolves no scope
|
|
45
|
-
* and reaches `importService.search`, which is where an unconfigured source is refused (the same
|
|
46
|
-
* division of labour {@link sourceParam} documents).
|
|
47
|
-
*/
|
|
48
|
-
async function resolveSearchScope(c, tasks, source, blockId) {
|
|
49
|
-
const provider = tasks.registry.get(source);
|
|
50
|
-
if (!provider?.repoScope)
|
|
51
|
-
return null;
|
|
52
|
-
const resolve = c.get('container').resolveRepoTarget;
|
|
53
|
-
let target = null;
|
|
54
|
-
try {
|
|
55
|
-
target = resolve ? await resolve(param(c, 'workspaceId'), blockId) : null;
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
// `resolveRepoTarget` throws a ValidationError precisely when the block isn't under a
|
|
59
|
-
// repo-linked service — the case this endpoint refuses below. Anything else (an
|
|
60
|
-
// unexpected repo/DB failure) is NOT a "link a repo" problem, so let it propagate
|
|
61
|
-
// rather than mislabel it; only the documented not-linked outcome falls through.
|
|
62
|
-
if (!(err instanceof ValidationError))
|
|
63
|
-
throw err;
|
|
64
|
-
target = null;
|
|
65
|
-
}
|
|
66
|
-
if (!target) {
|
|
67
|
-
// A machine-readable reason so the SPA can render a localized message; the prose is the
|
|
68
|
-
// untranslated last resort (CLAUDE.md "Backend strings"). It names no vendor, because the
|
|
69
|
-
// link that is missing is the board's own service→repo link and the source asking for it
|
|
70
|
-
// may be any repo-backed one: naming GitHub here sends a GitLab deployment to an
|
|
71
|
-
// integration it does not run.
|
|
72
|
-
throw new ValidationError('This service is not linked to a repository. Link it to a repo before creating tasks from issues.', { reason: 'repo_not_linked' });
|
|
73
|
-
}
|
|
74
|
-
return { owner: target.owner, repo: target.name };
|
|
75
|
-
}
|
|
76
32
|
/**
|
|
77
33
|
* Resolve the repo scope for the imported-issue LIST from an optional block. Unlike
|
|
78
|
-
* {@link
|
|
34
|
+
* {@link resolveSourceRepoScope} this NEVER throws: the list spans every source, so a
|
|
79
35
|
* repo-less service (or an unwired repo resolver) simply yields no scope and the list
|
|
80
36
|
* is returned unfiltered rather than refused: the search endpoint is where an
|
|
81
37
|
* unlinked service is rejected. A resolved scope narrows the rows of every repo-backed
|
|
@@ -232,7 +188,7 @@ export function taskSourceController() {
|
|
|
232
188
|
const tasks = requireTasks(c);
|
|
233
189
|
const source = sourceParam(c);
|
|
234
190
|
const { query, blockId } = c.req.valid('json');
|
|
235
|
-
const scope = await
|
|
191
|
+
const scope = await resolveSourceRepoScope(c, tasks, source, blockId);
|
|
236
192
|
const results = await tasks.importService.search(param(c, 'workspaceId'), source, query, scope);
|
|
237
193
|
return c.json({ results }, 200);
|
|
238
194
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskSourceController.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TaskSourceController.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { TaskSourceKind } from '@cat-factory/contracts';
|
|
2
|
+
import { type TaskSearchRepoScope, type TaskSourceProvider } from '@cat-factory/kernel';
|
|
3
|
+
import type { Context } from 'hono';
|
|
4
|
+
import type { TasksModule } from '@cat-factory/orchestration';
|
|
5
|
+
import type { AppEnv } from '../../http/env.js';
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the repository a REPO-BACKED source reads for, from the block the surface runs on (a
|
|
8
|
+
* service frame, or a task/module under one). A service is always created from (or with) a repo,
|
|
9
|
+
* so this REQUIRES the link: if it can't be resolved we refuse rather than silently widening
|
|
10
|
+
* (the task couldn't run against an unlinked service anyway, and an unscoped vendor issue search
|
|
11
|
+
* reaches every repository the credential can see, which under a PAT is all of public GitHub, or
|
|
12
|
+
* every project on the GitLab instance).
|
|
13
|
+
*
|
|
14
|
+
* `null` means the SOURCE has no repository notion (Jira, Linear), never that this block has no
|
|
15
|
+
* repo, which throws instead. Callers depend on the two being distinguishable: a repo-less source
|
|
16
|
+
* is scoped by its own board, a repo-backed one by this.
|
|
17
|
+
*
|
|
18
|
+
* Which sources are repo-backed is read off the provider's declared `repoScope`, never a source id
|
|
19
|
+
* compared here. A list in this function is a second authority that has to be edited in step with
|
|
20
|
+
* the registry, and the failure when it is not is silent in exactly the wrong direction: the
|
|
21
|
+
* provider refuses every search for want of a scope this function decided not to resolve, so a
|
|
22
|
+
* source that imports fine can never be searched. An UNREGISTERED source resolves no scope and
|
|
23
|
+
* reaches the service, which is where an unconfigured source is refused. That works for a SEARCH,
|
|
24
|
+
* whose scope is an optional narrowing; a hunt cannot borrow it, because there the same `null`
|
|
25
|
+
* would decide the board itself, so {@link resolveHuntBoard} takes a resolved provider instead.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveSourceRepoScope<E extends AppEnv>(c: Context<E>, tasks: TasksModule, source: TaskSourceKind, blockId: string): Promise<TaskSearchRepoScope | null>;
|
|
28
|
+
/**
|
|
29
|
+
* The board a hunt scans: the repository the container's service frame is linked to for a
|
|
30
|
+
* repo-backed source, else the board the caller named.
|
|
31
|
+
*
|
|
32
|
+
* Takes the RESOLVED provider rather than a source id, because "no provider" is not a board
|
|
33
|
+
* question at all: an unregistered or unwired source is refused by the service that owns the
|
|
34
|
+
* registry, naming the capability this deployment lacks. Answering here instead told the caller
|
|
35
|
+
* to pick a board on a surface that renders none.
|
|
36
|
+
*
|
|
37
|
+
* Both mismatches are REFUSED rather than reconciled, because each one means the caller and the
|
|
38
|
+
* platform disagree about what is being scanned. A board named for a repo-backed source would be
|
|
39
|
+
* ignored in favour of the service's repository, which answers a request to scan one place with a
|
|
40
|
+
* scan of another; and a repo-less source with no board has nothing to narrow at all, which is the
|
|
41
|
+
* unscoped vendor search every layer of this path exists to prevent. Both are decidable from the
|
|
42
|
+
* request BODY, so both land before the repository read: a stale client that names a board AND
|
|
43
|
+
* sits on an unlinked service would otherwise be sent to fix the link, retry, and only then be
|
|
44
|
+
* told the board it named was never allowed.
|
|
45
|
+
*
|
|
46
|
+
* A repository becomes a board scope as its `owner/name` slug on BOTH repo-backed vendors: it is
|
|
47
|
+
* exactly what their intake query legs (`githubRepo`, a GitLab `path_with_namespace`) are split
|
|
48
|
+
* back out of, and a GitLab owner carrying a nested group path composes into the same shape.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolveHuntBoard<E extends AppEnv>(c: Context<E>, provider: TaskSourceProvider, input: {
|
|
51
|
+
containerId: string;
|
|
52
|
+
board: string | null;
|
|
53
|
+
}): Promise<string>;
|
|
54
|
+
//# sourceMappingURL=sourceRepoScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceRepoScope.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/sourceRepoScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAC3D,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAIrC;AAqCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EACrD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ValidationError, } from '@cat-factory/kernel';
|
|
2
|
+
import { param } from '../../http/params.js';
|
|
3
|
+
// Where a REPO-BACKED task source's repository comes from, for every surface that needs one.
|
|
4
|
+
//
|
|
5
|
+
// It lives here rather than in either controller because two of them ask the same question about
|
|
6
|
+
// the same fact: an issue search scopes its vendor query to the searching service's repository,
|
|
7
|
+
// and a bug hunt takes that repository AS its board. A second copy would be a second authority on
|
|
8
|
+
// which sources are repo-backed and on what an unlinked service means, and the drift is silent in
|
|
9
|
+
// the direction that matters: one surface refusing what the other scopes.
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the repository a REPO-BACKED source reads for, from the block the surface runs on (a
|
|
12
|
+
* service frame, or a task/module under one). A service is always created from (or with) a repo,
|
|
13
|
+
* so this REQUIRES the link: if it can't be resolved we refuse rather than silently widening
|
|
14
|
+
* (the task couldn't run against an unlinked service anyway, and an unscoped vendor issue search
|
|
15
|
+
* reaches every repository the credential can see, which under a PAT is all of public GitHub, or
|
|
16
|
+
* every project on the GitLab instance).
|
|
17
|
+
*
|
|
18
|
+
* `null` means the SOURCE has no repository notion (Jira, Linear), never that this block has no
|
|
19
|
+
* repo, which throws instead. Callers depend on the two being distinguishable: a repo-less source
|
|
20
|
+
* is scoped by its own board, a repo-backed one by this.
|
|
21
|
+
*
|
|
22
|
+
* Which sources are repo-backed is read off the provider's declared `repoScope`, never a source id
|
|
23
|
+
* compared here. A list in this function is a second authority that has to be edited in step with
|
|
24
|
+
* the registry, and the failure when it is not is silent in exactly the wrong direction: the
|
|
25
|
+
* provider refuses every search for want of a scope this function decided not to resolve, so a
|
|
26
|
+
* source that imports fine can never be searched. An UNREGISTERED source resolves no scope and
|
|
27
|
+
* reaches the service, which is where an unconfigured source is refused. That works for a SEARCH,
|
|
28
|
+
* whose scope is an optional narrowing; a hunt cannot borrow it, because there the same `null`
|
|
29
|
+
* would decide the board itself, so {@link resolveHuntBoard} takes a resolved provider instead.
|
|
30
|
+
*/
|
|
31
|
+
export async function resolveSourceRepoScope(c, tasks, source, blockId) {
|
|
32
|
+
const provider = tasks.registry.get(source);
|
|
33
|
+
if (!provider?.repoScope)
|
|
34
|
+
return null;
|
|
35
|
+
return requireRepoScope(c, blockId);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The repository a block reads for, or the refusal naming the link that is missing. Split out
|
|
39
|
+
* from {@link resolveSourceRepoScope} so a caller that has ALREADY established the source is
|
|
40
|
+
* repo-backed gets a total answer rather than one it has to re-narrow.
|
|
41
|
+
*/
|
|
42
|
+
async function requireRepoScope(c, blockId) {
|
|
43
|
+
const resolve = c.get('container').resolveRepoTarget;
|
|
44
|
+
let target = null;
|
|
45
|
+
try {
|
|
46
|
+
target = resolve ? await resolve(param(c, 'workspaceId'), blockId) : null;
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
// `resolveRepoTarget` throws a ValidationError precisely when the block isn't under a
|
|
50
|
+
// repo-linked service, the case this refuses below. Anything else (an unexpected repo/DB
|
|
51
|
+
// failure) is NOT a "link a repo" problem, so let it propagate rather than mislabel it; only
|
|
52
|
+
// the documented not-linked outcome falls through.
|
|
53
|
+
if (!(err instanceof ValidationError))
|
|
54
|
+
throw err;
|
|
55
|
+
target = null;
|
|
56
|
+
}
|
|
57
|
+
if (!target) {
|
|
58
|
+
// A machine-readable reason so the SPA can render a localized message; the prose is the
|
|
59
|
+
// untranslated last resort (CLAUDE.md "Backend strings"). It names no vendor, because the
|
|
60
|
+
// link that is missing is the board's own service→repo link and the source asking for it
|
|
61
|
+
// may be any repo-backed one: naming GitHub here sends a GitLab deployment to an
|
|
62
|
+
// integration it does not run.
|
|
63
|
+
throw new ValidationError('This service is not linked to a repository. Link it to a repo before reading its issues.', { reason: 'repo_not_linked' });
|
|
64
|
+
}
|
|
65
|
+
return { owner: target.owner, repo: target.name };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The board a hunt scans: the repository the container's service frame is linked to for a
|
|
69
|
+
* repo-backed source, else the board the caller named.
|
|
70
|
+
*
|
|
71
|
+
* Takes the RESOLVED provider rather than a source id, because "no provider" is not a board
|
|
72
|
+
* question at all: an unregistered or unwired source is refused by the service that owns the
|
|
73
|
+
* registry, naming the capability this deployment lacks. Answering here instead told the caller
|
|
74
|
+
* to pick a board on a surface that renders none.
|
|
75
|
+
*
|
|
76
|
+
* Both mismatches are REFUSED rather than reconciled, because each one means the caller and the
|
|
77
|
+
* platform disagree about what is being scanned. A board named for a repo-backed source would be
|
|
78
|
+
* ignored in favour of the service's repository, which answers a request to scan one place with a
|
|
79
|
+
* scan of another; and a repo-less source with no board has nothing to narrow at all, which is the
|
|
80
|
+
* unscoped vendor search every layer of this path exists to prevent. Both are decidable from the
|
|
81
|
+
* request BODY, so both land before the repository read: a stale client that names a board AND
|
|
82
|
+
* sits on an unlinked service would otherwise be sent to fix the link, retry, and only then be
|
|
83
|
+
* told the board it named was never allowed.
|
|
84
|
+
*
|
|
85
|
+
* A repository becomes a board scope as its `owner/name` slug on BOTH repo-backed vendors: it is
|
|
86
|
+
* exactly what their intake query legs (`githubRepo`, a GitLab `path_with_namespace`) are split
|
|
87
|
+
* back out of, and a GitLab owner carrying a nested group path composes into the same shape.
|
|
88
|
+
*/
|
|
89
|
+
export async function resolveHuntBoard(c, provider, input) {
|
|
90
|
+
if (!provider.repoScope) {
|
|
91
|
+
if (input.board === null) {
|
|
92
|
+
throw new ValidationError('Pick the board to hunt for bugs on.', {
|
|
93
|
+
reason: 'missing_board',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return input.board;
|
|
97
|
+
}
|
|
98
|
+
if (input.board !== null) {
|
|
99
|
+
throw new ValidationError('This source hunts the repository its service is linked to, so it cannot be given a board.', { reason: 'board_from_service' });
|
|
100
|
+
}
|
|
101
|
+
const scope = await requireRepoScope(c, input.containerId);
|
|
102
|
+
return `${scope.owner}/${scope.repo}`;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=sourceRepoScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceRepoScope.js","sourceRoot":"","sources":["../../../src/modules/tasks/sourceRepoScope.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,GAGhB,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE5C,6FAA6F;AAC7F,EAAE;AACF,iGAAiG;AACjG,gGAAgG;AAChG,kGAAkG;AAClG,kGAAkG;AAClG,0EAA0E;AAE1E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,CAAa,EACb,KAAkB,EAClB,MAAsB,EACtB,OAAe;IAEf,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,QAAQ,EAAE,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,CAAa,EACb,OAAe;IAEf,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,iBAAiB,CAAA;IACpD,IAAI,MAAM,GAAqD,IAAI,CAAA;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sFAAsF;QACtF,yFAAyF;QACzF,6FAA6F;QAC7F,mDAAmD;QACnD,IAAI,CAAC,CAAC,GAAG,YAAY,eAAe,CAAC;YAAE,MAAM,GAAG,CAAA;QAChD,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,wFAAwF;QACxF,0FAA0F;QAC1F,yFAAyF;QACzF,iFAAiF;QACjF,+BAA+B;QAC/B,MAAM,IAAI,eAAe,CACvB,0FAA0F,EAC1F,EAAE,MAAM,EAAE,iBAAgD,EAAE,CAC7D,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,CAAa,EACb,QAA4B,EAC5B,KAAoD;IAEpD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,eAAe,CAAC,qCAAqC,EAAE;gBAC/D,MAAM,EAAE,eAA8C;aACvD,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CACvB,2FAA2F,EAC3F,EAAE,MAAM,EAAE,oBAAmD,EAAE,CAChE,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC1D,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;AACvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.286.0",
|
|
4
4
|
"description": "Runtime-neutral HTTP layer for the Agent Architecture Board: the Hono controllers, middleware (auth/authz/CORS/error), request helpers and the gateway seams shared by every deployment facade (Cloudflare Worker, Node service).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"jose": "^6.2.8",
|
|
32
32
|
"pino": "^10.3.1",
|
|
33
33
|
"valibot": "^1.4.2",
|
|
34
|
-
"@cat-factory/agents": "0.130.
|
|
35
|
-
"@cat-factory/contracts": "0.
|
|
36
|
-
"@cat-factory/
|
|
34
|
+
"@cat-factory/agents": "0.130.1",
|
|
35
|
+
"@cat-factory/contracts": "0.311.0",
|
|
36
|
+
"@cat-factory/integrations": "0.161.0",
|
|
37
|
+
"@cat-factory/kernel": "0.299.1",
|
|
37
38
|
"@cat-factory/mcp-server": "0.39.0",
|
|
38
|
-
"@cat-factory/
|
|
39
|
-
"@cat-factory/
|
|
40
|
-
"@cat-factory/spend": "0.15.92"
|
|
39
|
+
"@cat-factory/orchestration": "0.271.1",
|
|
40
|
+
"@cat-factory/spend": "0.15.93"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^26.2.0",
|