@cat-factory/kernel 0.247.0 → 0.249.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/domain/harness-capabilities.d.ts +95 -0
- package/dist/domain/harness-capabilities.d.ts.map +1 -0
- package/dist/domain/harness-capabilities.js +132 -0
- package/dist/domain/harness-capabilities.js.map +1 -0
- package/dist/domain/types.d.ts +1 -1
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ports/agent-tool-calls.d.ts +2 -2
- package/dist/ports/agent-tool-calls.d.ts.map +1 -1
- package/dist/ports/index.d.ts +3 -3
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/llm-metrics.d.ts +19 -6
- package/dist/ports/llm-metrics.d.ts.map +1 -1
- package/dist/ports/llm-metrics.js +8 -4
- package/dist/ports/llm-metrics.js.map +1 -1
- package/dist/ports/operational-metrics.d.ts +33 -0
- package/dist/ports/operational-metrics.d.ts.map +1 -1
- package/dist/ports/operational-metrics.js.map +1 -1
- package/dist/ports/pr-report.d.ts +70 -19
- package/dist/ports/pr-report.d.ts.map +1 -1
- package/dist/ports/runner-pool-provider.d.ts +20 -5
- package/dist/ports/runner-pool-provider.d.ts.map +1 -1
- package/dist/ports/runner-transport.d.ts +62 -1
- package/dist/ports/runner-transport.d.ts.map +1 -1
- package/dist/shared/host-markdown.logic.d.ts +24 -0
- package/dist/shared/host-markdown.logic.d.ts.map +1 -1
- package/dist/shared/host-markdown.logic.js +48 -1
- package/dist/shared/host-markdown.logic.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAUA
|
|
1
|
+
{"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,15 @@
|
|
|
8
8
|
// end. The domain depends only on this interface; each runtime facade implements it
|
|
9
9
|
// (D1 on Cloudflare, Drizzle/Postgres on Node).
|
|
10
10
|
/**
|
|
11
|
-
* Upstream finish reasons that are not failures but warrant a warning: the model
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Upstream finish reasons that are not failures but warrant a warning: the model was cut short
|
|
12
|
+
* by the output limit, or filtered. Shared by the service's classification and each repo's
|
|
13
|
+
* summary aggregation so the two runtimes agree.
|
|
14
|
+
*
|
|
15
|
+
* DEFINED in `@cat-factory/contracts` and re-exported here: the SPA must make the same
|
|
16
|
+
* judgement to badge and to FILTER a call list, and it cannot see kernel. Re-exported rather
|
|
17
|
+
* than moved outright so every backend consumer keeps importing it from the port it belongs to.
|
|
14
18
|
*/
|
|
15
|
-
export
|
|
19
|
+
export { LLM_WARNING_FINISH_REASONS } from '@cat-factory/contracts';
|
|
16
20
|
/**
|
|
17
21
|
* Escape a literal term for use inside a SQL `LIKE`/`ILIKE` pattern with `\` as the escape
|
|
18
22
|
* character (Postgres' default; SQLite is told via `ESCAPE '\'`). Shared by both runtime
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD
|
|
1
|
+
{"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD;;;;;;;;GAQG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAyPnE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -16,6 +16,39 @@ export type OperationalCounter =
|
|
|
16
16
|
| 'container.dispatch_failed'
|
|
17
17
|
/** A container job settled as evicted/crashed. Dimensioned by the eviction kind. */
|
|
18
18
|
| 'container.evicted'
|
|
19
|
+
/**
|
|
20
|
+
* A container dispatch was REFUSED because the runner image told us it does not parse a
|
|
21
|
+
* capability field the job body carried (`domain/harness-capabilities.ts`). Dimensioned by
|
|
22
|
+
* `capability`, which is a closed union, so the cardinality is the vocabulary's size.
|
|
23
|
+
*
|
|
24
|
+
* The refusal is per RUN and the cause is per POOL, so a single lagging runner pool produces
|
|
25
|
+
* one of these for every dispatch until someone updates it. That standing rate is the point:
|
|
26
|
+
* the log line names the run, and only the rate says the deployment has a fleet problem.
|
|
27
|
+
*/
|
|
28
|
+
| 'container.capability_unsupported'
|
|
29
|
+
/**
|
|
30
|
+
* A container dispatch carried a capability and the backend could not tell whether the image
|
|
31
|
+
* serves it: an image older than the handshake, or a transport that does not forward the
|
|
32
|
+
* harness's own dispatch response. The run proceeds, because refusing on an absent answer
|
|
33
|
+
* would fail every dispatch on every image predating the handshake.
|
|
34
|
+
*
|
|
35
|
+
* Counted rather than only logged because it is the BLIND SPOT's own metric: it should decay
|
|
36
|
+
* to zero as pools update, and a rate that does not is how an operator learns the handshake is
|
|
37
|
+
* not actually reaching them. Dimensioned by `capability`, same closed union as above.
|
|
38
|
+
*/
|
|
39
|
+
| 'container.capability_unknown'
|
|
40
|
+
/**
|
|
41
|
+
* A container dispatch was refused as blind AND the backend could not confirm the job it had
|
|
42
|
+
* already started was stopped. Dimensioned by `outcome` (`requested` | `unsupported` |
|
|
43
|
+
* `failed`), a closed union of three, each naming a different operator action: verify at the
|
|
44
|
+
* pool, give the backend a cancel path, investigate a fault.
|
|
45
|
+
*
|
|
46
|
+
* Counted separately from the refusal itself because they are different severities. A refusal
|
|
47
|
+
* that stopped its job cost one step; one that did not left an agent running unsupervised
|
|
48
|
+
* against a repository, able to push a branch and open a pull request for a step the engine
|
|
49
|
+
* already failed, and nothing else in the system will notice.
|
|
50
|
+
*/
|
|
51
|
+
| 'container.blind_job_not_stopped'
|
|
19
52
|
/** An observability export was dropped (a trace sink, a metrics POST). */
|
|
20
53
|
| 'telemetry.export_dropped'
|
|
21
54
|
/** An outbound notification delivery failed after its retries. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACjF,oBAAoB;AACtB,0FAA0F;GACxF,qBAAqB;AACvB,sFAAsF;GACpF,mBAAmB;AACrB,yFAAyF;GACvF,cAAc;AAChB,wFAAwF;GACtF,2BAA2B;AAC7B,oFAAoF;GAClF,mBAAmB;AACrB,0EAA0E;GACxE,0BAA0B;AAC5B,kEAAkE;GAChE,8BAA8B;AAChC,uEAAuE;GACrE,WAAW;AACb,+EAA+E;GAC7E,YAAY;AACd;;;;GAIG;GACD,uBAAuB;AACzB;;;GAGG;GACD,iCAAiC;AACnC;;;;;;;;;;;;;;;;GAgBG;GACD,uBAAuB,GACvB,yBAAyB,GACzB,yBAAyB;AAC3B;;;;;;;;;;;GAWG;GACD,kBAAkB;AACpB;;;;;;;;;;GAUG;GACD,8BAA8B,CAAA;AAUlC,wFAAwF;AACxF,MAAM,MAAM,gBAAgB;AAC1B,yEAAyE;AACzE,aAAa,CAAA;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpE,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,qBAAqB,CAAA;IACjC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,qBAAqB,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjG;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE;;;;;OAKG;IACH,KAAK,IAAI,wBAAwB,EAAE,CAAA;CACpC;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,kBAA4C,CAAA;AAYjF;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CA8B/E"}
|
|
1
|
+
{"version":3,"file":"operational-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACjF,oBAAoB;AACtB,0FAA0F;GACxF,qBAAqB;AACvB,sFAAsF;GACpF,mBAAmB;AACrB,yFAAyF;GACvF,cAAc;AAChB,wFAAwF;GACtF,2BAA2B;AAC7B,oFAAoF;GAClF,mBAAmB;AACrB;;;;;;;;GAQG;GACD,kCAAkC;AACpC;;;;;;;;;GASG;GACD,8BAA8B;AAChC;;;;;;;;;;GAUG;GACD,iCAAiC;AACnC,0EAA0E;GACxE,0BAA0B;AAC5B,kEAAkE;GAChE,8BAA8B;AAChC,uEAAuE;GACrE,WAAW;AACb,+EAA+E;GAC7E,YAAY;AACd;;;;GAIG;GACD,uBAAuB;AACzB;;;GAGG;GACD,iCAAiC;AACnC;;;;;;;;;;;;;;;;GAgBG;GACD,uBAAuB,GACvB,yBAAyB,GACzB,yBAAyB;AAC3B;;;;;;;;;;;GAWG;GACD,kBAAkB;AACpB;;;;;;;;;;GAUG;GACD,8BAA8B,CAAA;AAUlC,wFAAwF;AACxF,MAAM,MAAM,gBAAgB;AAC1B,yEAAyE;AACzE,aAAa,CAAA;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpE,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,qBAAqB,CAAA;IACjC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,qBAAqB,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjG;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE;;;;;OAKG;IACH,KAAK,IAAI,wBAAwB,EAAE,CAAA;CACpC;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,kBAA4C,CAAA;AAYjF;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CA8B/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-metrics.js","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0CAA0C;AAC1C,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,4FAA4F;AAC5F,2FAA2F;AAC3F,6CAA6C;AAC7C,EAAE;AACF,8DAA8D;AAC9D,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAiD;AACjD,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,6FAA6F;AAC7F,mFAAmF;
|
|
1
|
+
{"version":3,"file":"operational-metrics.js","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0CAA0C;AAC1C,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,4FAA4F;AAC5F,2FAA2F;AAC3F,6CAA6C;AAC7C,EAAE;AACF,8DAA8D;AAC9D,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAiD;AACjD,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,6FAA6F;AAC7F,mFAAmF;AAuLnF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAuB,EAAE,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;AAEjF;;;;GAIG;AACH,SAAS,YAAY,CAAC,UAAiC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC;IAC/C,wFAAwF;IACxF,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IACH,OAAO;QACL,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC;YAC3C,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;gBACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;;gBAChC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,KAAK;YACH,MAAM,OAAO,GAA+B,EAAE,CAAA;YAC9C,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC/C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBACpD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import type { VcsProvider } from '../domain/vcs-types.js';
|
|
1
|
+
import type { VcsConnectionRef, VcsProvider } from '../domain/vcs-types.js';
|
|
2
2
|
/** Why a publish did nothing, when it didn't publish. */
|
|
3
3
|
export type PrReportSkipReason =
|
|
4
|
-
/** The block has no recorded pull request yet (nothing to write onto). */
|
|
5
|
-
'no_pull_request'
|
|
6
|
-
/** The block's repo could not be resolved (no linked repo projection row). */
|
|
7
|
-
| 'no_repo'
|
|
8
4
|
/** The PR body already carried exactly this section — no remote write was made. */
|
|
9
|
-
|
|
5
|
+
'unchanged';
|
|
10
6
|
/**
|
|
11
7
|
* Where a block's report would go, resolved by the adapter (which owns "which PR / which
|
|
12
8
|
* repo / which provider" — the engine has no VCS vocabulary of its own).
|
|
@@ -15,6 +11,15 @@ export type PrReportSkipReason =
|
|
|
15
11
|
* the run targeted. Deriving those from the run's own dispatch diagnostics instead would be a
|
|
16
12
|
* different question with a different answer: diagnostics record the MOST RECENT dispatch,
|
|
17
13
|
* which on a multi-repo task is a peer repo, not the repo whose PR is being written to.
|
|
14
|
+
*
|
|
15
|
+
* A multi-repo run resolves SEVERAL of these (see {@link PrVerificationReportPublisher.resolveTargets}),
|
|
16
|
+
* one per pull request it opened, and each gets its own composed report.
|
|
17
|
+
*
|
|
18
|
+
* A target is SELF-DESCRIBING: it carries everything the write needs, so publishing costs no
|
|
19
|
+
* second resolution. That is what keeps a run with N pull requests at ONE resolution per
|
|
20
|
+
* settlement rather than N (the no-N+1 rule), and it retires the failure mode the re-resolving
|
|
21
|
+
* shape had to defend against by hand — a report composed for one repo landing on another's PR
|
|
22
|
+
* is not a case to detect when the target names its own address.
|
|
18
23
|
*/
|
|
19
24
|
export interface PrReportTarget {
|
|
20
25
|
/** The pull/merge request the report is written onto. */
|
|
@@ -23,6 +28,29 @@ export interface PrReportTarget {
|
|
|
23
28
|
repo: string;
|
|
24
29
|
/** The VCS provider that repo lives on. */
|
|
25
30
|
provider: VcsProvider;
|
|
31
|
+
/**
|
|
32
|
+
* The connection the write goes through, in the neutral vocabulary (GitHub's installation id
|
|
33
|
+
* rides `connectionId`, mapped by `githubConnectionRef` / `githubInstallationId`). Resolved
|
|
34
|
+
* once, when the target is, so `publish` reads no repository at all.
|
|
35
|
+
*/
|
|
36
|
+
connection: VcsConnectionRef;
|
|
37
|
+
/**
|
|
38
|
+
* `own` for the task's own-service pull request — the only target a single-repo run has —
|
|
39
|
+
* and `peer` for a connected involved service's repo (`Block.peerPullRequests`).
|
|
40
|
+
*
|
|
41
|
+
* The engine composes a DIFFERENT report for each: the sections that are statements about
|
|
42
|
+
* the own-service repo (pre-PR validation, the reproduction proof, the `spec/` requirement
|
|
43
|
+
* join) are withheld from a peer's report rather than copied onto it, since a peer repo's
|
|
44
|
+
* checks were never the ones that ran. See the contracts' `prReportScopeSchema`.
|
|
45
|
+
*/
|
|
46
|
+
role: 'own' | 'peer';
|
|
47
|
+
/**
|
|
48
|
+
* The involved service frame whose repo this is, when the recorded peer PR attributed one.
|
|
49
|
+
* Null for the own-service target, and for a peer whose frame was not recorded.
|
|
50
|
+
*/
|
|
51
|
+
frameId?: string | null;
|
|
52
|
+
/** The pull request's web URL, when known — what a peer report links back to. */
|
|
53
|
+
url?: string | null;
|
|
26
54
|
}
|
|
27
55
|
/** The outcome of one publish attempt. */
|
|
28
56
|
export interface PrReportPublishResult {
|
|
@@ -30,27 +58,50 @@ export interface PrReportPublishResult {
|
|
|
30
58
|
published: boolean;
|
|
31
59
|
/** Set when `published` is false; see {@link PrReportSkipReason}. */
|
|
32
60
|
skipped?: PrReportSkipReason;
|
|
33
|
-
/** The pull request the report was written onto
|
|
34
|
-
prNumber
|
|
61
|
+
/** The pull request the report was written onto — the target's, always. */
|
|
62
|
+
prNumber: number;
|
|
35
63
|
}
|
|
36
64
|
export interface PrVerificationReportPublisher {
|
|
37
65
|
/**
|
|
38
|
-
* Resolve
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
66
|
+
* Resolve EVERY pull request the block's report should be published onto — the own-service
|
|
67
|
+
* PR first, then one per peer repo the run opened a PR in — or an empty array when there is
|
|
68
|
+
* nowhere to write yet (no recorded pull request, or no linked repo).
|
|
69
|
+
*
|
|
70
|
+
* The engine calls this FIRST: it short-circuits the compose for a run that has no PR (most
|
|
71
|
+
* runs, for most of their life) and supplies the repo/provider/role each report states. Never
|
|
72
|
+
* throws for an absent PR/repo; those are ordinary skips.
|
|
73
|
+
*
|
|
74
|
+
* Ordering is load-bearing: the own-service target is FIRST when it exists, because a peer
|
|
75
|
+
* report points back at it and the engine reads it from this list rather than re-resolving.
|
|
76
|
+
* A run whose peers opened PRs but whose own service did not yet returns peers only, and
|
|
77
|
+
* their reports say the own-service PR is not open rather than naming one that isn't there.
|
|
78
|
+
*
|
|
79
|
+
* This is the ONLY resolution a settlement pays for, however many pull requests the run
|
|
80
|
+
* opened: the block is read once, the run's repo set once, and every recorded peer PR is
|
|
81
|
+
* joined onto it (the no-N+1 rule). Each returned target then carries its own address, so the
|
|
82
|
+
* writes that follow read nothing.
|
|
42
83
|
*/
|
|
43
|
-
|
|
84
|
+
resolveTargets(workspaceId: string, blockId: string): Promise<PrReportTarget[]>;
|
|
44
85
|
/**
|
|
45
|
-
* Upsert the engine-managed verification-report section on
|
|
86
|
+
* Upsert the engine-managed verification-report section on ONE resolved pull request.
|
|
46
87
|
* `section` is the fully rendered markdown (human-readable prose + the fenced JSON block);
|
|
47
|
-
* the adapter reads
|
|
88
|
+
* the adapter reads that PR's current body, splices the marked region, and writes it back
|
|
48
89
|
* ONLY when it changed.
|
|
49
90
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
91
|
+
* `target` says where, and says it completely: it was resolved by {@link resolveTargets} and
|
|
92
|
+
* the caller composed `section` FOR it. Re-deriving "the block's pull request" here is how
|
|
93
|
+
* the body written and the report written into it would come to disagree about which repo
|
|
94
|
+
* they are about, which on a multi-repo run is not even a well-posed question.
|
|
95
|
+
*
|
|
96
|
+
* A transport failure MAY throw; the engine treats a failed publish as best-effort
|
|
97
|
+
* bookkeeping and never fails a run over it. A pull request that has been closed or deleted
|
|
98
|
+
* since it resolved surfaces as exactly that: a transport error, not a silent success.
|
|
99
|
+
*
|
|
100
|
+
* `workspaceId` states whose workspace the write is on behalf of. The GitHub adapter does not
|
|
101
|
+
* need it (the target is self-describing), but a write that cannot name its own scope is one
|
|
102
|
+
* an adapter which authorizes or logs per workspace could not implement, and the block id it
|
|
103
|
+
* replaced was only ever there to be re-resolved.
|
|
53
104
|
*/
|
|
54
|
-
publish(workspaceId: string,
|
|
105
|
+
publish(workspaceId: string, target: PrReportTarget, section: string): Promise<PrReportPublishResult>;
|
|
55
106
|
}
|
|
56
107
|
//# sourceMappingURL=pr-report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-report.d.ts","sourceRoot":"","sources":["../../src/ports/pr-report.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"pr-report.d.ts","sourceRoot":"","sources":["../../src/ports/pr-report.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAE3E,yDAAyD;AACzD,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACnF,WAAW,CAAA;AAEb;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,QAAQ,EAAE,WAAW,CAAA;IACrB;;;;OAIG;IACH,UAAU,EAAE,gBAAgB,CAAA;IAC5B;;;;;;;;OAQG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAClC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ConnectionTestResult, ProviderConfigField, RunnerPoolManifest } from '../domain/types.js';
|
|
2
2
|
import type { SecretResolver } from './environment-provider.js';
|
|
3
|
-
import type { RunnerJobView } from './runner-transport.js';
|
|
3
|
+
import type { RunnerDispatchAck, RunnerJobStopOutcome, RunnerJobView } from './runner-transport.js';
|
|
4
4
|
export interface RunnerDispatchRequest {
|
|
5
5
|
manifest: RunnerPoolManifest;
|
|
6
6
|
/** The cat-factory job id (execution id) the pool is keyed on. */
|
|
@@ -21,12 +21,27 @@ export interface RunnerPoolConnectionTestRequest {
|
|
|
21
21
|
resolveSecret: SecretResolver;
|
|
22
22
|
}
|
|
23
23
|
export interface RunnerPoolProvider {
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Start (or re-attach to) the job on the pool. Idempotent per `jobId`.
|
|
26
|
+
*
|
|
27
|
+
* Returns a {@link RunnerDispatchAck} when the manifest MAPS the harness's acceptance body onto
|
|
28
|
+
* the response (`dispatchCapabilitiesPath`, one line for a pool that proxies `POST /jobs`
|
|
29
|
+
* line); `void` when it does not, which the dispatch site reads as "could not tell". A pool is
|
|
30
|
+
* the deployment shape most likely to lag the backend's image, so mapping it is worth a
|
|
31
|
+
* scheduler author's attention. See `backend/docs/mcp-tool-servers.md`.
|
|
32
|
+
*/
|
|
33
|
+
dispatch(req: RunnerDispatchRequest): Promise<RunnerDispatchAck | void>;
|
|
26
34
|
/** Read the job's current state, mapped onto the canonical view. */
|
|
27
35
|
poll(req: RunnerPollRequest): Promise<RunnerJobView>;
|
|
28
|
-
/**
|
|
29
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Free the job/runner through the manifest's `release` template, and say whether there WAS one.
|
|
38
|
+
*
|
|
39
|
+
* The outcome is returned rather than swallowed because this doubles as the pool's only way to
|
|
40
|
+
* cancel a job, and a manifest with no `release` template cancels nothing at all. At best it is
|
|
41
|
+
* `requested`: the scheduler accepted the call, and no part of this backend can see far enough
|
|
42
|
+
* into the pool to confirm the runner actually stopped.
|
|
43
|
+
*/
|
|
44
|
+
release(req: RunnerPollRequest): Promise<RunnerJobStopOutcome>;
|
|
30
45
|
/** Declare the config fields this pool provider expects (see EnvironmentProvider). */
|
|
31
46
|
describeConfig?(manifest?: RunnerPoolManifest): ProviderConfigField[];
|
|
32
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-pool-provider.d.ts","sourceRoot":"","sources":["../../src/ports/runner-pool-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"runner-pool-provider.d.ts","sourceRoot":"","sources":["../../src/ports/runner-pool-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AASnG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACvE,oEAAoE;IACpE,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACpD;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC9D,sFAAsF;IACtF,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAAA;IACrE;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,kBAAkB,CAAA;IAC/C,sFAAsF;IACtF,cAAc,CAAC,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACrF"}
|
|
@@ -486,6 +486,42 @@ export interface RunnerJobRef {
|
|
|
486
486
|
/** The job's own id, unique within the run (one per pipeline step). */
|
|
487
487
|
jobId: string;
|
|
488
488
|
}
|
|
489
|
+
/**
|
|
490
|
+
* What the harness said when it ACCEPTED a job. Read at the dispatch site, where the body that
|
|
491
|
+
* was just sent is still in scope, which is the only place the answer can be acted on before
|
|
492
|
+
* the agent starts working from a prompt the body may not be able to back up.
|
|
493
|
+
*
|
|
494
|
+
* Everything on it is optional and everything absent means "this backend could not tell",
|
|
495
|
+
* never "no". See `domain/harness-capabilities.ts` for why that distinction is load-bearing.
|
|
496
|
+
*/
|
|
497
|
+
export interface RunnerDispatchAck {
|
|
498
|
+
/**
|
|
499
|
+
* The optional job-body capability fields the running image parses, verbatim off the wire
|
|
500
|
+
* (`HarnessBodyCapability[]` once narrowed). Absent on an image older than the handshake.
|
|
501
|
+
*/
|
|
502
|
+
capabilities?: readonly string[];
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* What a request to stop ONE in-flight job actually achieved, which is a different question from
|
|
506
|
+
* whether the request returned.
|
|
507
|
+
*
|
|
508
|
+
* A job that has already been ACCEPTED is doing work: a harness starts on acceptance, so a caller
|
|
509
|
+
* that has decided the job must not run (the capability refusal) has to stop it, and a caller that
|
|
510
|
+
* cannot stop it must say so rather than let the silence read as a stop. That is the same rule the
|
|
511
|
+
* environment-disposal flow learned the hard way (a teardown call returning is not the environment
|
|
512
|
+
* being gone), so the outcome is REPORTED rather than assumed:
|
|
513
|
+
*
|
|
514
|
+
* - `stopped`: the job is confirmed no longer running. Either the harness acknowledged the abort
|
|
515
|
+
* and the job left `running`, or the thing that held it (the container, the pod) was destroyed.
|
|
516
|
+
* - `requested`: a cancel was handed to a control plane this backend cannot see through (a
|
|
517
|
+
* self-hosted pool's scheduler) and accepted. Better than nothing and worse than proof.
|
|
518
|
+
* - `unsupported`: there is no mechanism at all: a transport with no {@link RunnerTransport.stopJob},
|
|
519
|
+
* or a pool whose manifest declares no `release` template. Nothing was even attempted.
|
|
520
|
+
*
|
|
521
|
+
* A stop that was attempted and ERRORED is not a member: it throws, so the caller can log the cause
|
|
522
|
+
* and report the fourth fact (the attempt failed) instead of picking one of these to stand in for it.
|
|
523
|
+
*/
|
|
524
|
+
export type RunnerJobStopOutcome = 'stopped' | 'requested' | 'unsupported';
|
|
489
525
|
export interface RunnerTransport {
|
|
490
526
|
/**
|
|
491
527
|
* A stable identifier for this backend (`local-native` / `local-container` / `runner-pool` /
|
|
@@ -501,8 +537,14 @@ export interface RunnerTransport {
|
|
|
501
537
|
* replayed dispatch never starts a duplicate. `kind` is the single manifest-driven
|
|
502
538
|
* `agent` kind (carried in the job body; the body's `mode` + data select the flow);
|
|
503
539
|
* the job is polled via {@link poll}.
|
|
540
|
+
*
|
|
541
|
+
* Returns the harness's {@link RunnerDispatchAck} when the backend can see it. `void` is a
|
|
542
|
+
* first-class answer, not a stub: a transport whose control plane does not forward the
|
|
543
|
+
* harness's own response (a self-hosted pool's job API, a deploy backend that runs no agent)
|
|
544
|
+
* genuinely does not know, and the capability handshake reads that as `unknown` rather than as
|
|
545
|
+
* a refusal. See `domain/harness-capabilities.ts`.
|
|
504
546
|
*/
|
|
505
|
-
dispatch(ref: RunnerJobRef, spec: Record<string, unknown>, kind?: RunnerDispatchKind, options?: RunnerDispatchOptions): Promise<void>;
|
|
547
|
+
dispatch(ref: RunnerJobRef, spec: Record<string, unknown>, kind?: RunnerDispatchKind, options?: RunnerDispatchOptions): Promise<RunnerDispatchAck | void>;
|
|
506
548
|
/** Poll the job's current state. */
|
|
507
549
|
poll(ref: RunnerJobRef): Promise<RunnerJobView>;
|
|
508
550
|
/**
|
|
@@ -510,8 +552,27 @@ export interface RunnerTransport {
|
|
|
510
552
|
* that share one across the run (Cloudflare, local Docker), and any of the run's
|
|
511
553
|
* still-running jobs on a per-job backend (a self-hosted pool cancels `ref.jobId`).
|
|
512
554
|
* Best-effort and idempotent — releasing an already-gone run/job is a no-op.
|
|
555
|
+
*
|
|
556
|
+
* NOT a way to stop a job. On a backend that shares one container across a run this reclaims
|
|
557
|
+
* (and so kills) whatever is inside it, but on a POOLED backend it does the opposite: a warm
|
|
558
|
+
* pool member is handed back for the next run to lease, job and all. Use {@link stopJob} where
|
|
559
|
+
* the job itself must die.
|
|
513
560
|
*/
|
|
514
561
|
release?(ref: RunnerJobRef): Promise<void>;
|
|
562
|
+
/**
|
|
563
|
+
* Optionally stop the single in-flight job `ref.jobId`, and report what that achieved (see
|
|
564
|
+
* {@link RunnerJobStopOutcome}). Idempotent: stopping a job that already settled is `stopped`.
|
|
565
|
+
*
|
|
566
|
+
* Distinct from {@link release} because the intents differ and so do the correct behaviours: a
|
|
567
|
+
* release hands a pool member BACK, which is exactly wrong for a job that must not keep running,
|
|
568
|
+
* and a release on a per-job pool is frequently a no-op. A transport that owns the container the
|
|
569
|
+
* job runs in may ESCALATE (destroy the container) when the graceful abort fails, since that is
|
|
570
|
+
* still a confirmed stop.
|
|
571
|
+
*
|
|
572
|
+
* Absent ⇒ the caller reads `unsupported`: this backend has no way to stop an accepted job, which
|
|
573
|
+
* is a fact to report, never one to assume away.
|
|
574
|
+
*/
|
|
575
|
+
stopJob?(ref: RunnerJobRef): Promise<RunnerJobStopOutcome>;
|
|
515
576
|
}
|
|
516
577
|
export {};
|
|
517
578
|
//# sourceMappingURL=runner-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-transport.d.ts","sourceRoot":"","sources":["../../src/ports/runner-transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner-transport.d.ts","sourceRoot":"","sources":["../../src/ports/runner-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,30 @@ export declare function cell(value: string): string;
|
|
|
57
57
|
* to a caller's own budget, before the escapes, exactly as in {@link prose}.
|
|
58
58
|
*/
|
|
59
59
|
export declare function inline(value: string, max?: number): string;
|
|
60
|
+
/**
|
|
61
|
+
* Render a LINK whose target is not trusted either.
|
|
62
|
+
*
|
|
63
|
+
* The other helpers here neutralise a value that becomes link TEXT; this one covers the other
|
|
64
|
+
* half of `[text](target)`, which a bare template hole leaves open. A URL reaches the report
|
|
65
|
+
* from the harness's own job result (a peer repo's pull-request URL is a string the container
|
|
66
|
+
* reported), so it is exactly as untrusted as the prose beside it, and it lands in a position
|
|
67
|
+
* with its own syntax: an unescaped `)` closes the target early and spills the rest of the URL
|
|
68
|
+
* into the document, taking whatever the caller wrote after it along.
|
|
69
|
+
*
|
|
70
|
+
* Rather than escape a hostile target into something that still resolves, an unusable one is
|
|
71
|
+
* simply NOT LINKED: the label renders on its own. So a caller cannot emit a link to a scheme
|
|
72
|
+
* the platform never meant to publish (`javascript:`, `data:`), and the degraded form is the
|
|
73
|
+
* plain text a reader can still act on. `http(s)` only, on purpose — every link this platform
|
|
74
|
+
* writes onto a host is a web URL.
|
|
75
|
+
*/
|
|
76
|
+
export declare function link(label: string, url: string | null | undefined): string;
|
|
77
|
+
/**
|
|
78
|
+
* {@link link}'s table-cell twin: the label is escaped with {@link cell}, so a pipe in it cannot
|
|
79
|
+
* open a new column. The same split as {@link cell} versus {@link inline} and
|
|
80
|
+
* {@link codeCell} versus {@link inlineCode}, and it exists so a link inside a table row is not
|
|
81
|
+
* the one position where the boundary quietly drops back to the weaker escape.
|
|
82
|
+
*/
|
|
83
|
+
export declare function cellLink(label: string, url: string | null | undefined): string;
|
|
60
84
|
/**
|
|
61
85
|
* Render untrusted text as a CODE SPAN in a markdown table cell (a command, a path, a stored id).
|
|
62
86
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host-markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"AA6BA,+FAA+F;AAC/F,eAAO,MAAM,eAAe,OAAQ,CAAA;AACpC,sEAAsE;AACtE,eAAO,MAAM,cAAc,MAAM,CAAA;AACjC,yEAAyE;AACzE,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAgHvC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAWD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAwB,GAAG,MAAM,CAQ1E;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE9E;AA4CD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE5E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAIlD;AAED,gGAAgG;AAChG,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAG/E"}
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
// goes).
|
|
24
24
|
//
|
|
25
25
|
// Adding a field to any host-bound body means picking one of {@link inline}, {@link cell} or
|
|
26
|
-
// {@link prose} for it — never a bare template hole.
|
|
26
|
+
// {@link prose} for it — never a bare template hole. A field that becomes a link TARGET rather
|
|
27
|
+
// than link text picks {@link link}, which covers the other half of the same hole.
|
|
27
28
|
// ---------------------------------------------------------------------------
|
|
28
29
|
/** Free-text prose (a tester summary, a merge rationale) is capped at this many characters. */
|
|
29
30
|
export const MAX_PROSE_CHARS = 4_000;
|
|
@@ -213,6 +214,52 @@ export function cell(value) {
|
|
|
213
214
|
export function inline(value, max = MAX_CELL_CHARS) {
|
|
214
215
|
return inertLine(truncate(value.replace(/\s+/g, ' '), max));
|
|
215
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Render a LINK whose target is not trusted either.
|
|
219
|
+
*
|
|
220
|
+
* The other helpers here neutralise a value that becomes link TEXT; this one covers the other
|
|
221
|
+
* half of `[text](target)`, which a bare template hole leaves open. A URL reaches the report
|
|
222
|
+
* from the harness's own job result (a peer repo's pull-request URL is a string the container
|
|
223
|
+
* reported), so it is exactly as untrusted as the prose beside it, and it lands in a position
|
|
224
|
+
* with its own syntax: an unescaped `)` closes the target early and spills the rest of the URL
|
|
225
|
+
* into the document, taking whatever the caller wrote after it along.
|
|
226
|
+
*
|
|
227
|
+
* Rather than escape a hostile target into something that still resolves, an unusable one is
|
|
228
|
+
* simply NOT LINKED: the label renders on its own. So a caller cannot emit a link to a scheme
|
|
229
|
+
* the platform never meant to publish (`javascript:`, `data:`), and the degraded form is the
|
|
230
|
+
* plain text a reader can still act on. `http(s)` only, on purpose — every link this platform
|
|
231
|
+
* writes onto a host is a web URL.
|
|
232
|
+
*/
|
|
233
|
+
export function link(label, url) {
|
|
234
|
+
return renderLink(inline(label), url);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* {@link link}'s table-cell twin: the label is escaped with {@link cell}, so a pipe in it cannot
|
|
238
|
+
* open a new column. The same split as {@link cell} versus {@link inline} and
|
|
239
|
+
* {@link codeCell} versus {@link inlineCode}, and it exists so a link inside a table row is not
|
|
240
|
+
* the one position where the boundary quietly drops back to the weaker escape.
|
|
241
|
+
*/
|
|
242
|
+
export function cellLink(label, url) {
|
|
243
|
+
return renderLink(cell(label), url);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The shared half: emit `[text](url)` only for a target that is safe to put there, else the text
|
|
247
|
+
* alone. `text` is already escaped by the caller, which is what picks cell vs inline semantics.
|
|
248
|
+
*/
|
|
249
|
+
function renderLink(text, url) {
|
|
250
|
+
return url && SAFE_LINK_TARGET.test(url) ? `[${text}](${url})` : text;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* What may stand between `](` and `)`: an absolute web URL, and nothing else.
|
|
254
|
+
*
|
|
255
|
+
* A pattern rather than a URL parse, and not only because kernel has no host APIs. The question
|
|
256
|
+
* here is not "is this a valid URL" but "can this sit in a markdown target without escaping the
|
|
257
|
+
* syntax", and a parser answers the wrong one: it ACCEPTS the delimiters by percent-encoding
|
|
258
|
+
* them on the way in, so a round-trip through it would hand back a string that still closes the
|
|
259
|
+
* target early. Whitespace and the bracket family are refused for that reason; the `https?`
|
|
260
|
+
* anchor is what keeps a `javascript:`/`data:` target from ever being emitted as a link.
|
|
261
|
+
*/
|
|
262
|
+
const SAFE_LINK_TARGET = /^https?:\/\/[^\s()<>[\]]+$/i;
|
|
216
263
|
/**
|
|
217
264
|
* Wrap already-flattened text in a code span whose delimiter the text cannot break out of.
|
|
218
265
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-markdown.logic.js","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,EAAE;AACF,2FAA2F;AAC3F,6FAA6F;AAC7F,wFAAwF;AACxF,4FAA4F;AAC5F,4DAA4D;AAC5D,EAAE;AACF,yFAAyF;AACzF,qFAAqF;AACrF,6FAA6F;AAC7F,4FAA4F;AAC5F,2FAA2F;AAC3F,0CAA0C;AAC1C,EAAE;AACF,6FAA6F;AAC7F,8FAA8F;AAC9F,gFAAgF;AAChF,6FAA6F;AAC7F,6FAA6F;AAC7F,2FAA2F;AAC3F,SAAS;AACT,EAAE;AACF,6FAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"host-markdown.logic.js","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.249.0",
|
|
4
4
|
"description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.51",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/contracts": "0.251.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@stryker-mutator/core": "9.6.1",
|