@bevel-software/platform-shared 0.25.2 → 0.27.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/git/pr.types.d.ts +101 -0
- package/dist/git/pr.types.d.ts.map +1 -1
- package/dist/git/types.d.ts +76 -2
- package/dist/git/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 +1 -0
- package/dist/index.js.map +1 -1
- package/dist/workflow/events.d.ts +24 -1
- package/dist/workflow/events.d.ts.map +1 -1
- package/dist/workflow/events.js +1 -0
- package/dist/workflow/events.js.map +1 -1
- package/dist/workflow/interface.d.ts +42 -1
- package/dist/workflow/interface.d.ts.map +1 -1
- package/dist/workflow/types.d.ts +57 -3
- package/dist/workflow/types.d.ts.map +1 -1
- package/dist/workspace/kb-layout.d.ts +40 -101
- package/dist/workspace/kb-layout.d.ts.map +1 -1
- package/dist/workspace/kb-layout.js +40 -159
- package/dist/workspace/kb-layout.js.map +1 -1
- package/dist/workspace/md-links.d.ts +138 -0
- package/dist/workspace/md-links.d.ts.map +1 -0
- package/dist/workspace/md-links.js +703 -0
- package/dist/workspace/md-links.js.map +1 -0
- package/dist/workspace/platform-files.d.ts +25 -24
- package/dist/workspace/platform-files.d.ts.map +1 -1
- package/dist/workspace/platform-files.js +41 -25
- package/dist/workspace/platform-files.js.map +1 -1
- package/package.json +1 -1
- package/src/git/pr.types.ts +99 -0
- package/src/git/types.ts +80 -2
- package/src/index.ts +1 -0
- package/src/workflow/events.ts +26 -0
- package/src/workflow/interface.ts +42 -0
- package/src/workflow/types.ts +48 -4
- package/src/workspace/kb-layout.ts +39 -172
- package/src/workspace/md-links.ts +757 -0
- package/src/workspace/platform-files.ts +44 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"md-links.js","sourceRoot":"","sources":["../../src/workspace/md-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,31 +2,28 @@ import { type KbLayout } from './kb-layout.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* The files the platform reads as configuration, not content. `access.md`
|
|
4
4
|
* governs the folder it sits in and `.bevelignore` layers like `.gitignore`,
|
|
5
|
-
* so both count at any depth; `roles.yaml`
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* so both count at any depth; `roles.yaml` is read from the repository root
|
|
6
|
+
* only, so a nested file of that name is ordinary content. Moving one changes
|
|
7
|
+
* what the platform enforces, so moves refuse them.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* The platform file names under the DEFAULT layout — what they were before the
|
|
20
|
-
* guide could be renamed. Kept for callers that want the default answer rather
|
|
21
|
-
* than this deployment's; anything judging a real path asks
|
|
22
|
-
* {@link platformFileNames}, which knows what this deployment called its guide.
|
|
9
|
+
* The agent guide is NOT among them. It was, while the platform wrote it to
|
|
10
|
+
* the repository root; the backend serves it from code now (core-backend's
|
|
11
|
+
* `modules/agent-guide`), and a root `AGENTS.md` — or a file under whatever
|
|
12
|
+
* name a deployment once gave the guide — is the organisation's own
|
|
13
|
+
* conventions page, which moves and deletes like any other.
|
|
14
|
+
*
|
|
15
|
+
* Still a FUNCTION OF THE LAYOUT, so every gate asks the question the same
|
|
16
|
+
* way it asks the others, and a file the layout makes a platform file again
|
|
17
|
+
* one day needs no caller to change.
|
|
23
18
|
*/
|
|
19
|
+
export declare function platformFileNames(_layout: KbLayout): readonly string[];
|
|
20
|
+
/** The platform file names under the DEFAULT layout — the same three on every deployment. */
|
|
24
21
|
export declare const PLATFORM_FILE_NAMES: readonly string[];
|
|
25
22
|
/**
|
|
26
23
|
* The platform files split by the DEPTH they count at, which is the half of
|
|
27
24
|
* {@link isPlatformFile} that a name alone does not tell you: `access.md` and
|
|
28
|
-
* `.bevelignore` are platform files in any folder, `roles.yaml`
|
|
29
|
-
*
|
|
25
|
+
* `.bevelignore` are platform files in any folder, `roles.yaml` only in the
|
|
26
|
+
* repository root.
|
|
30
27
|
*
|
|
31
28
|
* Exported because the agent-facing rules state that split in prose, and a
|
|
32
29
|
* prose list written by hand drifts from the predicate that actually refuses
|
|
@@ -57,7 +54,7 @@ export declare function platformFileCreationRefusal(pathOrName: string): string;
|
|
|
57
54
|
/**
|
|
58
55
|
* The sentence an UPLOAD is refused with when one of its paths would land a
|
|
59
56
|
* platform file — a zip carrying an `access.md`, a `.bevelignore`, a
|
|
60
|
-
* `roles.yaml
|
|
57
|
+
* `roles.yaml`, or a single file sent under one of those
|
|
61
58
|
* names.
|
|
62
59
|
*
|
|
63
60
|
* Its own sentence rather than the move's, because the thing being kept out is
|
|
@@ -80,18 +77,22 @@ export declare function isPlatformFolder(repoRelativeDir: string, layout: KbLayo
|
|
|
80
77
|
export declare function platformFolderRefusal(repoRelativeDir: string): string;
|
|
81
78
|
/**
|
|
82
79
|
* Whether the platform file at `repoRelativePath` sits directly in the
|
|
83
|
-
* repository root — the copy every one of the
|
|
80
|
+
* repository root — the copy every one of the three is read from there, and so
|
|
84
81
|
* never the misplaced one: it is the copy a restore puts back. A nested
|
|
85
82
|
* `access.md` or `.bevelignore` is a platform file too, but it layers on top
|
|
86
83
|
* of the root's rather than standing in for it, which is why moving the
|
|
87
84
|
* ROOT's copy into a folder is a move out and not a restore.
|
|
88
85
|
*/
|
|
89
86
|
export declare function isRootPlatformFile(repoRelativePath: string, layout: KbLayout): boolean;
|
|
87
|
+
/** Whether `repoRelativePath` is one of the files no surface deletes (see above). Exact spelling. */
|
|
88
|
+
export declare function isRepositoryOwnFile(repoRelativePath: string, layout: KbLayout): boolean;
|
|
89
|
+
/** The one sentence every surface refuses a delete of the repository's own file with. */
|
|
90
|
+
export declare function repositoryOwnFileDeleteRefusal(pathOrName: string): string;
|
|
90
91
|
/**
|
|
91
92
|
* The place a misplaced platform file is allowed to be put back, when
|
|
92
93
|
* `repoRelativeDestination` names one, and null when it does not.
|
|
93
94
|
*
|
|
94
|
-
* `roles.yaml`
|
|
95
|
+
* `roles.yaml` is read from the repository root and
|
|
95
96
|
* nowhere else, so their one required location is the root. A nested `.bevelignore` is
|
|
96
97
|
* read too (it layers, see `BevelIgnoreStack`), yet a restore of one lands at
|
|
97
98
|
* the root only — a deliberate narrowing of the exception, not a claim about
|
|
@@ -120,8 +121,8 @@ export declare function platformRestoreDestination(repoRelativeDestination: stri
|
|
|
120
121
|
* Three things make the shape, and all three are about the move rather than
|
|
121
122
|
* about the source's current standing:
|
|
122
123
|
*
|
|
123
|
-
* - the source is NAMED like a platform file. A nested `roles.yaml
|
|
124
|
-
*
|
|
124
|
+
* - the source is NAMED like a platform file. A nested `roles.yaml` is
|
|
125
|
+
* ordinary content where it sits
|
|
125
126
|
* (`isPlatformFile` says so, and moving it needs no exception), but it is
|
|
126
127
|
* still the copy a restore carries back to the root — judging the shape on
|
|
127
128
|
* `isPlatformFile` would skip the exception for exactly the two files the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-files.d.ts","sourceRoot":"","sources":["../../src/workspace/platform-files.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"platform-files.d.ts","sourceRoot":"","sources":["../../src/workspace/platform-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,MAAM,EAAE,CAEtE;AAED,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAEhD,CAAC;AAKF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAMnH;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAKlF;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAInF;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEtF;AAaD,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEvF;AAED,yFAAyF;AACzF,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,wBAAgB,0BAA0B,CACxC,uBAAuB,EAAE,MAAM,EAC/B,MAAM,EAAE,QAAQ,GACf,0BAA0B,GAAG,IAAI,CAUnC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,MAAM,EAC/B,MAAM,EAAE,QAAQ,GACf,OAAO,CAOT"}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
import { DEFAULT_KB_LAYOUT, FIXED_PLATFORM_FILE_NAMES,
|
|
1
|
+
import { DEFAULT_KB_LAYOUT, FIXED_PLATFORM_FILE_NAMES, reservedRootDirNames, } from './kb-layout.js';
|
|
2
2
|
/**
|
|
3
3
|
* The files the platform reads as configuration, not content. `access.md`
|
|
4
4
|
* governs the folder it sits in and `.bevelignore` layers like `.gitignore`,
|
|
5
|
-
* so both count at any depth; `roles.yaml`
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* so both count at any depth; `roles.yaml` is read from the repository root
|
|
6
|
+
* only, so a nested file of that name is ordinary content. Moving one changes
|
|
7
|
+
* what the platform enforces, so moves refuse them.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
9
|
+
* The agent guide is NOT among them. It was, while the platform wrote it to
|
|
10
|
+
* the repository root; the backend serves it from code now (core-backend's
|
|
11
|
+
* `modules/agent-guide`), and a root `AGENTS.md` — or a file under whatever
|
|
12
|
+
* name a deployment once gave the guide — is the organisation's own
|
|
13
|
+
* conventions page, which moves and deletes like any other.
|
|
14
|
+
*
|
|
15
|
+
* Still a FUNCTION OF THE LAYOUT, so every gate asks the question the same
|
|
16
|
+
* way it asks the others, and a file the layout makes a platform file again
|
|
17
|
+
* one day needs no caller to change.
|
|
16
18
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- the layout is the question's shape, kept for every caller (see above)
|
|
20
|
+
export function platformFileNames(_layout) {
|
|
21
|
+
return [...FIXED_PLATFORM_FILE_NAMES];
|
|
19
22
|
}
|
|
20
|
-
/**
|
|
21
|
-
* The platform file names under the DEFAULT layout — what they were before the
|
|
22
|
-
* guide could be renamed. Kept for callers that want the default answer rather
|
|
23
|
-
* than this deployment's; anything judging a real path asks
|
|
24
|
-
* {@link platformFileNames}, which knows what this deployment called its guide.
|
|
25
|
-
*/
|
|
23
|
+
/** The platform file names under the DEFAULT layout — the same three on every deployment. */
|
|
26
24
|
export const PLATFORM_FILE_NAMES = Object.freeze(platformFileNames(DEFAULT_KB_LAYOUT));
|
|
27
25
|
/** The platform files that are read wherever they sit, not only at the root. */
|
|
28
26
|
const PLATFORM_FILES_AT_ANY_DEPTH = new Set(['access.md', '.bevelignore']);
|
|
29
27
|
/**
|
|
30
28
|
* The platform files split by the DEPTH they count at, which is the half of
|
|
31
29
|
* {@link isPlatformFile} that a name alone does not tell you: `access.md` and
|
|
32
|
-
* `.bevelignore` are platform files in any folder, `roles.yaml`
|
|
33
|
-
*
|
|
30
|
+
* `.bevelignore` are platform files in any folder, `roles.yaml` only in the
|
|
31
|
+
* repository root.
|
|
34
32
|
*
|
|
35
33
|
* Exported because the agent-facing rules state that split in prose, and a
|
|
36
34
|
* prose list written by hand drifts from the predicate that actually refuses
|
|
@@ -91,7 +89,7 @@ export function platformFileCreationRefusal(pathOrName) {
|
|
|
91
89
|
/**
|
|
92
90
|
* The sentence an UPLOAD is refused with when one of its paths would land a
|
|
93
91
|
* platform file — a zip carrying an `access.md`, a `.bevelignore`, a
|
|
94
|
-
* `roles.yaml
|
|
92
|
+
* `roles.yaml`, or a single file sent under one of those
|
|
95
93
|
* names.
|
|
96
94
|
*
|
|
97
95
|
* Its own sentence rather than the move's, because the thing being kept out is
|
|
@@ -127,7 +125,7 @@ export function platformFolderRefusal(repoRelativeDir) {
|
|
|
127
125
|
}
|
|
128
126
|
/**
|
|
129
127
|
* Whether the platform file at `repoRelativePath` sits directly in the
|
|
130
|
-
* repository root — the copy every one of the
|
|
128
|
+
* repository root — the copy every one of the three is read from there, and so
|
|
131
129
|
* never the misplaced one: it is the copy a restore puts back. A nested
|
|
132
130
|
* `access.md` or `.bevelignore` is a platform file too, but it layers on top
|
|
133
131
|
* of the root's rather than standing in for it, which is why moving the
|
|
@@ -136,6 +134,24 @@ export function platformFolderRefusal(repoRelativeDir) {
|
|
|
136
134
|
export function isRootPlatformFile(repoRelativePath, layout) {
|
|
137
135
|
return platformFiles(layout).has(normalize(repoRelativePath));
|
|
138
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* The platform files that govern the WHOLE repository: the root's `access.md`,
|
|
139
|
+
* which every folder without its own falls back to, and `roles.yaml`, which
|
|
140
|
+
* says what the roles are. Deleting either leaves the repository ungoverned,
|
|
141
|
+
* so no surface deletes them — not the agent tools, not the app. A nested
|
|
142
|
+
* `access.md` is not among them: it narrows its own folder, and whoever may
|
|
143
|
+
* write it may delete it, which hands the folder back to its parent's rules.
|
|
144
|
+
* `.bevelignore` is not among them either; its delete rules are untouched.
|
|
145
|
+
*/
|
|
146
|
+
const REPOSITORY_OWN_FILES = new Set(['access.md', 'roles.yaml']);
|
|
147
|
+
/** Whether `repoRelativePath` is one of the files no surface deletes (see above). Exact spelling. */
|
|
148
|
+
export function isRepositoryOwnFile(repoRelativePath, layout) {
|
|
149
|
+
return isRootPlatformFile(repoRelativePath, layout) && REPOSITORY_OWN_FILES.has(normalize(repoRelativePath));
|
|
150
|
+
}
|
|
151
|
+
/** The one sentence every surface refuses a delete of the repository's own file with. */
|
|
152
|
+
export function repositoryOwnFileDeleteRefusal(pathOrName) {
|
|
153
|
+
return `${baseName(pathOrName)} is the repository's own file and cannot be deleted.`;
|
|
154
|
+
}
|
|
139
155
|
export function platformRestoreDestination(repoRelativeDestination, layout) {
|
|
140
156
|
const norm = normalize(repoRelativeDestination);
|
|
141
157
|
if (hasTraversal(norm))
|
|
@@ -158,8 +174,8 @@ export function platformRestoreDestination(repoRelativeDestination, layout) {
|
|
|
158
174
|
* Three things make the shape, and all three are about the move rather than
|
|
159
175
|
* about the source's current standing:
|
|
160
176
|
*
|
|
161
|
-
* - the source is NAMED like a platform file. A nested `roles.yaml
|
|
162
|
-
*
|
|
177
|
+
* - the source is NAMED like a platform file. A nested `roles.yaml` is
|
|
178
|
+
* ordinary content where it sits
|
|
163
179
|
* (`isPlatformFile` says so, and moving it needs no exception), but it is
|
|
164
180
|
* still the copy a restore carries back to the root — judging the shape on
|
|
165
181
|
* `isPlatformFile` would skip the exception for exactly the two files the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-files.js","sourceRoot":"","sources":["../../src/workspace/platform-files.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"platform-files.js","sourceRoot":"","sources":["../../src/workspace/platform-files.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bevel-software/platform-shared",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "Shared types and pure domain utilities of the Bevel core platform (auth, workspace, git/workflow contracts, branch registry).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
package/src/git/pr.types.ts
CHANGED
|
@@ -41,8 +41,33 @@ export interface PullRequestSummary {
|
|
|
41
41
|
base: string;
|
|
42
42
|
state: PullRequestState;
|
|
43
43
|
createdAt: string;
|
|
44
|
+
/**
|
|
45
|
+
* The latest moment the change-request ROW records: the latest of its
|
|
46
|
+
* creation time, its `updated_at` stamp (written when the row itself
|
|
47
|
+
* changes — a merge, a close, a recorded apply failure) and its close time.
|
|
48
|
+
* GitHub's `updated_at` on a pull request means "when anything about it
|
|
49
|
+
* last changed"; comments and approvals carry their own times here and do
|
|
50
|
+
* not move this one, so this is as close as the row can honestly answer —
|
|
51
|
+
* never a time guessed from elsewhere. Absent only on a summary built by
|
|
52
|
+
* something other than a change-request row (test doubles).
|
|
53
|
+
*/
|
|
54
|
+
updatedAt?: string;
|
|
44
55
|
/** Relative paths within `knowledge-base/`. Empty if not yet computed. */
|
|
45
56
|
touchedNodePaths: string[];
|
|
57
|
+
/**
|
|
58
|
+
* The same changed files as {@link touchedNodePaths}, paired with the path
|
|
59
|
+
* each was renamed from — what a READ gate has to decide over, since
|
|
60
|
+
* `touchedNodePaths` reports a rename under its new name alone and so cannot
|
|
61
|
+
* say that a readable-looking file came out of a folder its reader cannot
|
|
62
|
+
* open.
|
|
63
|
+
*
|
|
64
|
+
* Absent when no summary builder filled it (a test double, a caller that
|
|
65
|
+
* constructs a summary by hand). A read gate must treat absence as "nothing
|
|
66
|
+
* proven" rather than falling back to `touchedNodePaths` — that fallback is
|
|
67
|
+
* precisely the disagreement between a list and a detail this field exists to
|
|
68
|
+
* remove, and it would come back silently.
|
|
69
|
+
*/
|
|
70
|
+
touchedNodeFiles?: ChangedPathPair[];
|
|
46
71
|
review: PullRequestReviewStatus;
|
|
47
72
|
/**
|
|
48
73
|
* Link to the change request: absolute (`<public frontend address>/change-requests/<number>`)
|
|
@@ -79,6 +104,69 @@ export interface ChangeRequestApplyFailure {
|
|
|
79
104
|
byName: string;
|
|
80
105
|
}
|
|
81
106
|
|
|
107
|
+
/**
|
|
108
|
+
* One changed file of a change request, named on both sides: where it is now
|
|
109
|
+
* and, for a rename, where it came from.
|
|
110
|
+
*
|
|
111
|
+
* The minimum a READ gate needs. A plain path list says a rename's new name and
|
|
112
|
+
* (with `forAccessCheck`) its old one, but not that the two are the same file —
|
|
113
|
+
* and the diff of a rename shows the old side's content, so a file moved out of
|
|
114
|
+
* a folder its reader cannot open must not be offered under its new name
|
|
115
|
+
* either. Both the list of change requests and the detail of one decide
|
|
116
|
+
* readability over these, so the two cannot disagree about whether a request is
|
|
117
|
+
* visible.
|
|
118
|
+
*/
|
|
119
|
+
export interface ChangedPathPair {
|
|
120
|
+
path: string;
|
|
121
|
+
previousPath?: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* An APPLIED change request, named by BOTH the commit its row records and the
|
|
126
|
+
* number that row carries — because reading the commit's own change is only
|
|
127
|
+
* sound if the commit really is that request's merge commit, and the number is
|
|
128
|
+
* what proves it (the merge commit's subject ends with `(#<number>)`).
|
|
129
|
+
*
|
|
130
|
+
* The pair travels together so no read can ask for a commit without saying which
|
|
131
|
+
* request it must belong to. `merged_sha` is not reliably a commit the request
|
|
132
|
+
* created: a merge with nothing to merge used to record the TARGET TIP, which in
|
|
133
|
+
* a deployment that lands everything through change requests is usually ANOTHER
|
|
134
|
+
* request's merge commit.
|
|
135
|
+
*/
|
|
136
|
+
export interface AppliedChangeRef {
|
|
137
|
+
/** The change request's number, as its merge commit's subject names it. */
|
|
138
|
+
number: number;
|
|
139
|
+
/** The `merged_sha` the row records. */
|
|
140
|
+
mergeSha: string;
|
|
141
|
+
/**
|
|
142
|
+
* The request's stored title, which lets a merge commit written by an
|
|
143
|
+
* earlier release — the title not yet flattened, so a blank line in it put
|
|
144
|
+
* the number after git's subject — be recognised as the request's own.
|
|
145
|
+
*/
|
|
146
|
+
title?: string;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* What applying a change request did.
|
|
151
|
+
*
|
|
152
|
+
* Two different commits, which is why they are two fields:
|
|
153
|
+
*
|
|
154
|
+
* `sha` is the state the target is left at — the tip at which the request
|
|
155
|
+
* counts as merged. When there was nothing to merge it is whatever landed on
|
|
156
|
+
* the target last, usually ANOTHER request's merge commit, so it must never be
|
|
157
|
+
* recorded as this request's own: a reader would answer with that other
|
|
158
|
+
* request's files under this number.
|
|
159
|
+
*
|
|
160
|
+
* `mergeCommit` is the commit this request OWNS, and the only sha a row may
|
|
161
|
+
* record as its `merged_sha` — the commit this merge wrote, or the one an
|
|
162
|
+
* earlier attempt wrote and left on the target when it failed to finalize the
|
|
163
|
+
* row. Null when the request has none, which is the genuinely empty case: its
|
|
164
|
+
* file list is empty anyway, so nothing readable is lost.
|
|
165
|
+
*/
|
|
166
|
+
export type AppliedMergeResult =
|
|
167
|
+
| { kind: 'merged'; sha: string; mergeCommit: string | null }
|
|
168
|
+
| { kind: 'conflicts'; paths: string[] };
|
|
169
|
+
|
|
82
170
|
export type PrFileStatus =
|
|
83
171
|
| 'added'
|
|
84
172
|
| 'modified'
|
|
@@ -368,6 +456,17 @@ export interface IPullRequestService {
|
|
|
368
456
|
* via `gh pr create`) and the user expects to see the update immediately.
|
|
369
457
|
*/
|
|
370
458
|
listOpenPrs(opts?: { fresh?: boolean }): Promise<PullRequestSummary[]>;
|
|
459
|
+
/**
|
|
460
|
+
* PRs in ANY of `states`, newest first — what `listOpenPrs` answers for the
|
|
461
|
+
* open ones, widened to the closed and merged rows it filters out. Only the
|
|
462
|
+
* `['open']` case goes through that method's 30s list cache; a read that
|
|
463
|
+
* asks for closed rows is rare (a reader catching up on what happened) and
|
|
464
|
+
* is served straight from the table.
|
|
465
|
+
*/
|
|
466
|
+
listPrsByState(
|
|
467
|
+
states: PullRequestState[],
|
|
468
|
+
opts?: { fresh?: boolean; workspaceId?: string },
|
|
469
|
+
): Promise<PullRequestSummary[]>;
|
|
371
470
|
listPrsAuthoredBy(githubLoginOrEmail: string): Promise<PullRequestSummary[]>;
|
|
372
471
|
/**
|
|
373
472
|
* PRs whose touched paths have an owner with the given email.
|
package/src/git/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AuthUser } from '../auth/types.js';
|
|
2
|
-
import type { PullRequestFile } from './pr.types.js';
|
|
2
|
+
import type { AppliedChangeRef, ChangedPathPair, PullRequestFile } from './pr.types.js';
|
|
3
3
|
|
|
4
4
|
export interface BranchInfo {
|
|
5
5
|
name: string;
|
|
@@ -107,13 +107,16 @@ export interface IGitService {
|
|
|
107
107
|
* has the ref (the safety property the flag has always provided).
|
|
108
108
|
* Protected branches and the currently-checked-out branch are always
|
|
109
109
|
* rejected.
|
|
110
|
+
*
|
|
111
|
+
* Answers the tip the branch had (origin's when it had one), or null when
|
|
112
|
+
* there was none — what a restore of the branch would start from.
|
|
110
113
|
*/
|
|
111
114
|
deleteBranch(
|
|
112
115
|
workspaceId: string,
|
|
113
116
|
name: string,
|
|
114
117
|
user: AuthUser,
|
|
115
118
|
opts?: { onlyIfNoRemote?: boolean },
|
|
116
|
-
): Promise<
|
|
119
|
+
): Promise<{ lastCommit: string | null }>;
|
|
117
120
|
// `forkCurrentToDraft` removed: under the per-branch workspace model each
|
|
118
121
|
// branch is its own workspace by construction, so the "carry uncommitted
|
|
119
122
|
// edits onto a new draft" escape hatch can't fire. Use `createBranch` +
|
|
@@ -278,6 +281,81 @@ export interface IGitService {
|
|
|
278
281
|
opts?: { fetch?: boolean },
|
|
279
282
|
): Promise<string[]>;
|
|
280
283
|
|
|
284
|
+
/**
|
|
285
|
+
* `changedPathsForPr`'s answer AND the same diff left as rename-aware pairs,
|
|
286
|
+
* from ONE `git diff`.
|
|
287
|
+
*
|
|
288
|
+
* The flat list cannot pair a rename's two paths: git reports a rename under
|
|
289
|
+
* its new name, and `forAccessCheck` adds the old name to the same
|
|
290
|
+
* undifferentiated set. That union is enough to authorize a WRITE ("may they
|
|
291
|
+
* touch everything this lands?"), but not to decide a READ — a file renamed
|
|
292
|
+
* out of a folder the caller cannot open is readable under neither of its
|
|
293
|
+
* names, since the diff of a rename shows the old side's content, and
|
|
294
|
+
* deciding that needs to know which old path belongs to which new file. The
|
|
295
|
+
* change-request read tools gate their file lists on exactly this, and the
|
|
296
|
+
* list of requests must reach the same verdict as the detail of one.
|
|
297
|
+
*/
|
|
298
|
+
changedPathsAndPairsForPr(
|
|
299
|
+
workspaceId: string,
|
|
300
|
+
baseBranch: string,
|
|
301
|
+
headBranch: string,
|
|
302
|
+
opts?: { fetch?: boolean },
|
|
303
|
+
): Promise<{ paths: string[]; pairs: ChangedPathPair[] }>;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* The changed-file list an APPLIED change request landed, read from its merge
|
|
307
|
+
* commit against that commit's first parent.
|
|
308
|
+
*
|
|
309
|
+
* Its source branch is retired, so the branch pair the other two methods want
|
|
310
|
+
* no longer exists; what is left is the merge commit the row records. Its
|
|
311
|
+
* first parent is the target as it stood before the merge, so the two-dot diff
|
|
312
|
+
* between them is precisely what the request applied — and immutable, which
|
|
313
|
+
* the branch pair never was.
|
|
314
|
+
*
|
|
315
|
+
* The commit is VERIFIED to be that request's own, which is why the ref
|
|
316
|
+
* carries the number as well as the sha: a merge with nothing to merge used to
|
|
317
|
+
* record the target tip, and reading that commit's change would answer with
|
|
318
|
+
* another request's files. It must be in the clone, have a second parent, and
|
|
319
|
+
* carry a subject naming this request; anything else rejects with
|
|
320
|
+
* `WorkflowValidationError`, which every caller reads as "the file set could
|
|
321
|
+
* not be resolved" and answers fail-closed (no files, so author-only) rather
|
|
322
|
+
* than reaching for a fetch per request.
|
|
323
|
+
*
|
|
324
|
+
* No network, either way.
|
|
325
|
+
*/
|
|
326
|
+
changedFilesOfAppliedChange(
|
|
327
|
+
workspaceId: string,
|
|
328
|
+
applied: AppliedChangeRef,
|
|
329
|
+
opts?: { patchCap?: number },
|
|
330
|
+
): Promise<PullRequestFile[]>;
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* The same applied change as the two path views a change-request SUMMARY
|
|
334
|
+
* needs, out of one `git diff` — `changedPathsAndPairsForPr` for an applied
|
|
335
|
+
* request instead of a branch pair, with the same verification and the same
|
|
336
|
+
* no-network contract as {@link changedFilesOfAppliedChange}.
|
|
337
|
+
*/
|
|
338
|
+
changedPathsAndPairsOfAppliedChange(
|
|
339
|
+
workspaceId: string,
|
|
340
|
+
applied: AppliedChangeRef,
|
|
341
|
+
): Promise<{ paths: string[]; pairs: ChangedPathPair[] }>;
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* The two commits an APPLIED change request spanned, recovered from its merge
|
|
345
|
+
* commit: the target before the merge (`^1`) and the source tip that was
|
|
346
|
+
* merged (`^2`).
|
|
347
|
+
*
|
|
348
|
+
* The head matters beyond being informative: an approval is called stale when
|
|
349
|
+
* the head it was given against is not the detail's `headSha`, so answering
|
|
350
|
+
* the merge commit there would report every approval a merged request ever
|
|
351
|
+
* collected as stale. Same verification, same no-network contract and the same
|
|
352
|
+
* `WorkflowValidationError` as {@link changedFilesOfAppliedChange}.
|
|
353
|
+
*/
|
|
354
|
+
appliedChangeShas(
|
|
355
|
+
workspaceId: string,
|
|
356
|
+
applied: AppliedChangeRef,
|
|
357
|
+
): Promise<{ baseSha: string; headSha: string }>;
|
|
358
|
+
|
|
281
359
|
/**
|
|
282
360
|
* A change request's fork point (merge base of the two resolved commits)
|
|
283
361
|
* and whether the target has commits the proposal does not contain. No
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './workspace/entry-exists.js';
|
|
|
12
12
|
export * from './workspace/kb-layout.js';
|
|
13
13
|
export * from './workspace/join-request.js';
|
|
14
14
|
export * from './workspace/frontmatter.js';
|
|
15
|
+
export * from './workspace/md-links.js';
|
|
15
16
|
export * from './workspace/placeholder.js';
|
|
16
17
|
export * from './workspace/frontmatter-carriers.js';
|
|
17
18
|
export * from './workspace/platform-files.js';
|
package/src/workflow/events.ts
CHANGED
|
@@ -310,6 +310,30 @@ export interface ResyncEvent {
|
|
|
310
310
|
reason: string;
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
+
/**
|
|
314
|
+
* One of `forUserId`'s agents has reached the platform: the FIRST
|
|
315
|
+
* authenticated request on one of their agent connections or connection keys
|
|
316
|
+
* — the `initialize` or `tools/list` every client sends on connecting, before
|
|
317
|
+
* it has called any tool. Emitted once per connection or key, when its use
|
|
318
|
+
* stamp goes from never to now; later uses stamp quietly. It is what the
|
|
319
|
+
* onboarding waits for (the connect-your-agent page, the Get set up list),
|
|
320
|
+
* so those pages listen rather than ask on a timer. User-scoped: nobody
|
|
321
|
+
* else's session cares.
|
|
322
|
+
*/
|
|
323
|
+
export interface AgentConnectedEvent {
|
|
324
|
+
kind: 'agent-connected';
|
|
325
|
+
forUserId: string;
|
|
326
|
+
/** The agent's registered client name, or the connection key's label. */
|
|
327
|
+
client: string;
|
|
328
|
+
/**
|
|
329
|
+
* Which of the two `client` is: `agent` for an OAuth connection's
|
|
330
|
+
* registered name, `key` for a connection key's free-text label.
|
|
331
|
+
*/
|
|
332
|
+
agentKind: 'agent' | 'key';
|
|
333
|
+
/** When the first request landed, ISO 8601. */
|
|
334
|
+
at: string;
|
|
335
|
+
}
|
|
336
|
+
|
|
313
337
|
// ── Union + helpers ──────────────────────────────────────────────────────────
|
|
314
338
|
|
|
315
339
|
export type WorkflowEventPayload =
|
|
@@ -321,6 +345,7 @@ export type WorkflowEventPayload =
|
|
|
321
345
|
| GitSyncRecoveredEvent
|
|
322
346
|
| BranchSwitchedEvent
|
|
323
347
|
| AgentToolCallEvent
|
|
348
|
+
| AgentConnectedEvent
|
|
324
349
|
| ChangeRequestOpenedEvent
|
|
325
350
|
| ChangeRequestMergedEvent
|
|
326
351
|
| ChangeRequestRejectedEvent
|
|
@@ -352,6 +377,7 @@ export function isUserScoped(
|
|
|
352
377
|
): e is WorkflowEventPayload & { forUserId: string } {
|
|
353
378
|
return (
|
|
354
379
|
e.kind === 'agent-tool-call' ||
|
|
380
|
+
e.kind === 'agent-connected' ||
|
|
355
381
|
e.kind === 'branch-switched' ||
|
|
356
382
|
e.kind === 'change-request-merge-failed'
|
|
357
383
|
);
|