@cat-factory/kernel 0.173.0 → 0.174.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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { InjectedContextFile, PullRequestRef } from '../domain/types.js';
|
|
2
2
|
import type { AgentRunContext, AgentRunResult } from './agent-executor.js';
|
|
3
|
+
import type { Logger } from './logging.js';
|
|
3
4
|
import type { RepoFiles } from './repo-files.js';
|
|
4
5
|
/** Where an agent's LLM step runs. */
|
|
5
6
|
export type AgentSurface =
|
|
@@ -108,6 +109,16 @@ export interface RepoOpContext {
|
|
|
108
109
|
* e.g. render `spec/` from `result.spec`); absent for preOps.
|
|
109
110
|
*/
|
|
110
111
|
result?: AgentRunResult;
|
|
112
|
+
/**
|
|
113
|
+
* Where an op reports work it declined to do. A post-op is BEST-EFFORT by contract (a
|
|
114
|
+
* bookkeeping commit must never turn a green step red), which means every early return and
|
|
115
|
+
* every swallowed throw is otherwise indistinguishable from success — the spec-promotion
|
|
116
|
+
* hole this port field exists to close (`docs/initiatives/observability-logging-gaps.md`, D3).
|
|
117
|
+
*
|
|
118
|
+
* REQUIRED, not optional: an absent optional logger is silent by definition, which is exactly
|
|
119
|
+
* the failure mode. A test or a harness passes `noopLogger` explicitly.
|
|
120
|
+
*/
|
|
121
|
+
logger: Logger;
|
|
111
122
|
}
|
|
112
123
|
/**
|
|
113
124
|
* What a {@link RepoOp} may report back to the engine. A committing post-op that opened a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-definition.d.ts","sourceRoot":"","sources":["../../src/ports/agent-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAoBhD,sCAAsC;AACtC,MAAM,MAAM,YAAY;AACtB,oFAAoF;AAClF,QAAQ;AACV,6FAA6F;GAC3F,mBAAmB;AACrB,8FAA8F;GAC5F,kBAAkB,CAAA;AAEtB,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,8FAA8F;IAC9F,IAAI,EAAE,OAAO,GAAG,YAAY,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,CAAA;IAC7C,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAA;IAC5C;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,IAAI,EAAE,SAAS,CAAA;IACf,sFAAsF;IACtF,OAAO,EAAE,eAAe,CAAA;IACxB,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;OAQG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-definition.d.ts","sourceRoot":"","sources":["../../src/ports/agent-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAoBhD,sCAAsC;AACtC,MAAM,MAAM,YAAY;AACtB,oFAAoF;AAClF,QAAQ;AACV,6FAA6F;GAC3F,mBAAmB;AACrB,8FAA8F;GAC5F,kBAAkB,CAAA;AAEtB,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,8FAA8F;IAC9F,IAAI,EAAE,OAAO,GAAG,YAAY,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,CAAA;IAC7C,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAA;IAC5C;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,IAAI,EAAE,SAAS,CAAA;IACf,sFAAsF;IACtF,OAAO,EAAE,eAAe,CAAA;IACxB,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;OAQG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,2FAA2F;IAC3F,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAA;CACrC;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA"}
|
|
@@ -35,10 +35,13 @@ export interface TaskContent {
|
|
|
35
35
|
links?: TaskDependencyLink[];
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
38
|
+
* The ONE repository a search runs in, for a repo-backed source (GitHub Issues): the
|
|
39
|
+
* provider confines its hits to it and resolves a bare issue number against it. Sources
|
|
40
|
+
* with no repo notion (Jira, Linear) have nothing to narrow and ignore it.
|
|
41
|
+
*
|
|
42
|
+
* A repo-backed provider REQUIRES this and refuses a search without it — see
|
|
43
|
+
* {@link TaskSourceProvider.search} for why an unscoped search is not merely broader but
|
|
44
|
+
* unsafe.
|
|
42
45
|
*/
|
|
43
46
|
export interface TaskSearchRepoScope {
|
|
44
47
|
owner: string;
|
|
@@ -127,12 +130,18 @@ export interface TaskSourceProvider {
|
|
|
127
130
|
* ignores `credentials`) can scope the search to that workspace's installation
|
|
128
131
|
* instead of leaking across tenants.
|
|
129
132
|
*
|
|
130
|
-
* `scope`
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
133
|
+
* `scope` pins a repo-backed source (GitHub Issues) to a single repository — the one the
|
|
134
|
+
* service the search runs from is linked to — so the results are that service's own issues
|
|
135
|
+
* and a bare issue number resolves against it. It is a REQUIRED parameter carrying a
|
|
136
|
+
* NULLABLE value, deliberately: `null` means "this source has no repo to narrow to" (Jira,
|
|
137
|
+
* Linear), which every caller must state rather than reach by omitting an argument. That
|
|
138
|
+
* distinction is load-bearing, because a repo-backed search is not merely broader without a
|
|
139
|
+
* scope — GitHub's `/search/issues` has no scope of its own, so an unscoped query returns
|
|
140
|
+
* whatever the CREDENTIAL can reach, which under a PAT is every public repository on GitHub.
|
|
141
|
+
* A repo-backed provider therefore throws on `null`; a repo-less one ignores it (and its
|
|
142
|
+
* implementation simply declares fewer parameters).
|
|
134
143
|
*/
|
|
135
|
-
search?(credentials: TaskCredentials, query: string, workspaceId: string, scope
|
|
144
|
+
search?(credentials: TaskCredentials, query: string, workspaceId: string, scope: TaskSearchRepoScope | null): Promise<TaskSearchResult[]>;
|
|
136
145
|
/**
|
|
137
146
|
* Predicate search for issue intake: open issues on the query's board matching
|
|
138
147
|
* every predicate, oldest-first, at most `query.limit` lean hits (the returned
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-source.d.ts","sourceRoot":"","sources":["../../src/ports/task-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAepE,qEAAqE;AACrE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,oBAAoB;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,QAAQ,EAAE,WAAW,EAAE,CAAA;IAKvB,wFAAwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oEAAoE;IACpE,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC7B;AAED
|
|
1
|
+
{"version":3,"file":"task-source.d.ts","sourceRoot":"","sources":["../../src/ports/task-source.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.174.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.37",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/contracts": "0.181.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@vitest/coverage-v8": "^4.1.10",
|