@cat-factory/server 0.293.0 → 0.295.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/agents/ContainerAgentExecutor.d.ts +5 -5
- package/dist/agents/ContainerAgentExecutor.js +10 -10
- package/dist/agents/ContainerAgentExecutor.js.map +1 -1
- package/dist/agents/agentContextRecord.d.ts.map +1 -1
- package/dist/agents/agentContextRecord.js +10 -0
- package/dist/agents/agentContextRecord.js.map +1 -1
- package/dist/agents/capabilitySecrets.d.ts +61 -0
- package/dist/agents/capabilitySecrets.d.ts.map +1 -0
- package/dist/agents/{binaryGenerators.js → capabilitySecrets.js} +98 -62
- package/dist/agents/capabilitySecrets.js.map +1 -0
- package/dist/agents/containerAgentBody.d.ts +2 -2
- package/dist/agents/containerAgentBody.d.ts.map +1 -1
- package/dist/agents/containerAgentBody.js +11 -10
- package/dist/agents/containerAgentBody.js.map +1 -1
- package/dist/agents/promptOverrides.d.ts +3 -4
- package/dist/agents/promptOverrides.d.ts.map +1 -1
- package/dist/agents/promptOverrides.js +5 -9
- package/dist/agents/promptOverrides.js.map +1 -1
- package/dist/github/FetchGitHubClient.d.ts +2 -0
- package/dist/github/FetchGitHubClient.d.ts.map +1 -1
- package/dist/github/FetchGitHubClient.js +17 -91
- package/dist/github/FetchGitHubClient.js.map +1 -1
- package/dist/github/githubHttpHelpers.d.ts +59 -3
- package/dist/github/githubHttpHelpers.d.ts.map +1 -1
- package/dist/github/githubHttpHelpers.js +59 -4
- package/dist/github/githubHttpHelpers.js.map +1 -1
- package/dist/github/repoContents.d.ts +31 -0
- package/dist/github/repoContents.d.ts.map +1 -0
- package/dist/github/repoContents.js +121 -0
- package/dist/github/repoContents.js.map +1 -0
- package/dist/http/env.d.ts +10 -1
- package/dist/http/env.d.ts.map +1 -1
- package/dist/modules/capabilityCredentials/CapabilityCredentialsController.d.ts.map +1 -1
- package/dist/modules/capabilityCredentials/CapabilityCredentialsController.js +1 -0
- package/dist/modules/capabilityCredentials/CapabilityCredentialsController.js.map +1 -1
- package/dist/modules/capabilityCredentials/declaredCredentials.d.ts +21 -7
- package/dist/modules/capabilityCredentials/declaredCredentials.d.ts.map +1 -1
- package/dist/modules/capabilityCredentials/declaredCredentials.js +18 -2
- package/dist/modules/capabilityCredentials/declaredCredentials.js.map +1 -1
- package/dist/modules/publicApi/PublicProvisioningController.d.ts +57 -1
- package/dist/modules/publicApi/PublicProvisioningController.d.ts.map +1 -1
- package/dist/modules/publicApi/PublicProvisioningController.js +204 -8
- package/dist/modules/publicApi/PublicProvisioningController.js.map +1 -1
- package/dist/modules/publicApi/boardProjection.d.ts +9 -3
- package/dist/modules/publicApi/boardProjection.d.ts.map +1 -1
- package/dist/modules/publicApi/boardProjection.js +41 -8
- package/dist/modules/publicApi/boardProjection.js.map +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.d.ts +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.d.ts.map +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.js +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.js.map +1 -1
- package/package.json +8 -8
- package/dist/agents/binaryGenerators.d.ts +0 -40
- package/dist/agents/binaryGenerators.d.ts.map +0 -1
- package/dist/agents/binaryGenerators.js.map +0 -1
|
@@ -5,8 +5,42 @@ export declare function parseIssueHtmlUrl(url: string): {
|
|
|
5
5
|
repo: string;
|
|
6
6
|
number: number;
|
|
7
7
|
} | null;
|
|
8
|
-
/**
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Decode the contents API's base64 (whitespace-laden) payload, SAYING when the bytes were not text.
|
|
10
|
+
*
|
|
11
|
+
* Strict first, so `lossy` is the decoder's own verdict rather than a scan for a character a text file
|
|
12
|
+
* may legitimately contain: a document that genuinely holds a U+FFFD is not a binary file, and a check
|
|
13
|
+
* on the output could not tell the two apart. The lossy rendering is still ANSWERED, because what to
|
|
14
|
+
* do about it belongs to the caller: a pre-op folding a file into a prompt wants the best available
|
|
15
|
+
* text, and a read whose job is byte-exact grading refuses (see `RepoFileContent.lossy`).
|
|
16
|
+
*
|
|
17
|
+
* `FetchGitLabClient` holds the same function, because there is no home below both: kernel names no
|
|
18
|
+
* web globals by design (its `lib` is ES2022 alone, where both clients add DOM for `atob` and
|
|
19
|
+
* `TextDecoder`), and neither client package can see the other. Change one, change the other.
|
|
20
|
+
*/
|
|
21
|
+
export declare function decodeRepoFileBase64(value: string): {
|
|
22
|
+
content: string;
|
|
23
|
+
lossy: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Bytes the contents API will serve in one read, past which it refuses.
|
|
27
|
+
*
|
|
28
|
+
* GitHub's own documented ceiling for `GET /repos/{o}/{r}/contents/{path}`: 1 MB with the JSON media
|
|
29
|
+
* type. Named here (rather than at the one comparison) because it is the number a refusal reports to
|
|
30
|
+
* a caller, and a caller that knows it can pick a different mechanism instead of retrying.
|
|
31
|
+
*/
|
|
32
|
+
export declare const GITHUB_CONTENTS_MAX_BYTES = 1048576;
|
|
33
|
+
/**
|
|
34
|
+
* Whether a failed contents read was refused for the blob's SIZE rather than for the credential.
|
|
35
|
+
*
|
|
36
|
+
* GitHub answers an over-limit blob with a `403` carrying `"code": "too_large"`, the same status as
|
|
37
|
+
* a permission denial and as an exhausted primary rate limit, so nothing structural separates them:
|
|
38
|
+
* the body is the only signal, which is why {@link GitHubApiError} carries it. Matched on the human
|
|
39
|
+
* sentence as well as the code because the two sit at opposite ends of a body that arrives truncated
|
|
40
|
+
* and the sentence comes first. Not matched against the whole `message`, which by then also carries
|
|
41
|
+
* this repository's own 403 remedy prose about missing scopes.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isGitHubBlobTooLarge(error: unknown): boolean;
|
|
10
44
|
/** Parse a GitHub ISO-8601 timestamp to epoch ms, or 0 when absent/unparseable. */
|
|
11
45
|
export declare function parseGitHubTime(value: string | null | undefined): number;
|
|
12
46
|
/** A finite numeric response header, or null when absent/unparseable. */
|
|
@@ -39,6 +73,17 @@ export declare const MAX_PAGES = 10;
|
|
|
39
73
|
* the GitHub API specifically.
|
|
40
74
|
*/
|
|
41
75
|
export declare class GitHubApiError extends VcsApiError {
|
|
76
|
+
/**
|
|
77
|
+
* The response body (as the caller truncated it), retained STRUCTURALLY rather than only baked
|
|
78
|
+
* into `message`.
|
|
79
|
+
*
|
|
80
|
+
* Because one status covers causes that need different answers and the body is the only thing
|
|
81
|
+
* that separates them: an over-limit blob and a missing scope are both a `403`
|
|
82
|
+
* (see {@link isGitHubBlobTooLarge}). Reading it back out of the rendered `message` would mean
|
|
83
|
+
* matching against this repository's own remedy prose, which is appended to the same string and
|
|
84
|
+
* changes for reasons that have nothing to do with what GitHub said.
|
|
85
|
+
*/
|
|
86
|
+
readonly body?: string | undefined;
|
|
42
87
|
constructor(status: number, message: string,
|
|
43
88
|
/**
|
|
44
89
|
* Whether the response was rate-limited (`x-ratelimit-remaining: 0`). GitHub reports a
|
|
@@ -47,7 +92,18 @@ export declare class GitHubApiError extends VcsApiError {
|
|
|
47
92
|
* classify the two differently. Retained here so the signal is available structurally
|
|
48
93
|
* instead of only baked into the human message.
|
|
49
94
|
*/
|
|
50
|
-
rateLimited?: boolean
|
|
95
|
+
rateLimited?: boolean,
|
|
96
|
+
/**
|
|
97
|
+
* The response body (as the caller truncated it), retained STRUCTURALLY rather than only baked
|
|
98
|
+
* into `message`.
|
|
99
|
+
*
|
|
100
|
+
* Because one status covers causes that need different answers and the body is the only thing
|
|
101
|
+
* that separates them: an over-limit blob and a missing scope are both a `403`
|
|
102
|
+
* (see {@link isGitHubBlobTooLarge}). Reading it back out of the rendered `message` would mean
|
|
103
|
+
* matching against this repository's own remedy prose, which is appended to the same string and
|
|
104
|
+
* changes for reasons that have nothing to do with what GitHub said.
|
|
105
|
+
*/
|
|
106
|
+
body?: string | undefined);
|
|
51
107
|
}
|
|
52
108
|
/** The HTTP status of a GitHub API failure, or undefined for any other error shape. */
|
|
53
109
|
export declare function githubApiStatus(error: unknown): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubHttpHelpers.d.ts","sourceRoot":"","sources":["../../src/github/githubHttpHelpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIxD;AAED
|
|
1
|
+
{"version":3,"file":"githubHttpHelpers.d.ts","sourceRoot":"","sources":["../../src/github/githubHttpHelpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAWvF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,UAAY,CAAA;AAElD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5D;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIxE;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpE;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAarE;AAKD,eAAO,MAAM,UAAU,gBAAgB,CAAA;AACvC,eAAO,MAAM,WAAW,eAAe,CAAA;AACvC,eAAO,MAAM,MAAM,gCAAgC,CAAA;AACnD,eAAO,MAAM,QAAQ,MAAM,CAAA;AAC3B,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAY3C;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IArBxB,YACE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;IACf;;;;;;OAMG;IACH,WAAW,UAAQ;IACnB;;;;;;;;;OASG;IACM,IAAI,CAAC,EAAE,MAAM,YAAA,EAIvB;CACF;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wGAAwG;AACxG,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,EAClD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE,EAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAmB7C"}
|
|
@@ -10,13 +10,55 @@ export function parseIssueHtmlUrl(url) {
|
|
|
10
10
|
return null;
|
|
11
11
|
return { owner: m[1], repo: m[2], number: Number(m[3]) };
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Decode the contents API's base64 (whitespace-laden) payload, SAYING when the bytes were not text.
|
|
15
|
+
*
|
|
16
|
+
* Strict first, so `lossy` is the decoder's own verdict rather than a scan for a character a text file
|
|
17
|
+
* may legitimately contain: a document that genuinely holds a U+FFFD is not a binary file, and a check
|
|
18
|
+
* on the output could not tell the two apart. The lossy rendering is still ANSWERED, because what to
|
|
19
|
+
* do about it belongs to the caller: a pre-op folding a file into a prompt wants the best available
|
|
20
|
+
* text, and a read whose job is byte-exact grading refuses (see `RepoFileContent.lossy`).
|
|
21
|
+
*
|
|
22
|
+
* `FetchGitLabClient` holds the same function, because there is no home below both: kernel names no
|
|
23
|
+
* web globals by design (its `lib` is ES2022 alone, where both clients add DOM for `atob` and
|
|
24
|
+
* `TextDecoder`), and neither client package can see the other. Change one, change the other.
|
|
25
|
+
*/
|
|
26
|
+
export function decodeRepoFileBase64(value) {
|
|
15
27
|
const binary = atob(value.replace(/\s+/g, ''));
|
|
16
28
|
const bytes = new Uint8Array(binary.length);
|
|
17
29
|
for (let i = 0; i < binary.length; i++)
|
|
18
30
|
bytes[i] = binary.charCodeAt(i);
|
|
19
|
-
|
|
31
|
+
try {
|
|
32
|
+
return { content: new TextDecoder('utf-8', { fatal: true }).decode(bytes), lossy: false };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Not a swallow: the throw IS the answer, reported as `lossy` rather than lost. The strict
|
|
36
|
+
// decoder's own error names only the offending byte, which tells a caller nothing more.
|
|
37
|
+
return { content: new TextDecoder().decode(bytes), lossy: true };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Bytes the contents API will serve in one read, past which it refuses.
|
|
42
|
+
*
|
|
43
|
+
* GitHub's own documented ceiling for `GET /repos/{o}/{r}/contents/{path}`: 1 MB with the JSON media
|
|
44
|
+
* type. Named here (rather than at the one comparison) because it is the number a refusal reports to
|
|
45
|
+
* a caller, and a caller that knows it can pick a different mechanism instead of retrying.
|
|
46
|
+
*/
|
|
47
|
+
export const GITHUB_CONTENTS_MAX_BYTES = 1_048_576;
|
|
48
|
+
/**
|
|
49
|
+
* Whether a failed contents read was refused for the blob's SIZE rather than for the credential.
|
|
50
|
+
*
|
|
51
|
+
* GitHub answers an over-limit blob with a `403` carrying `"code": "too_large"`, the same status as
|
|
52
|
+
* a permission denial and as an exhausted primary rate limit, so nothing structural separates them:
|
|
53
|
+
* the body is the only signal, which is why {@link GitHubApiError} carries it. Matched on the human
|
|
54
|
+
* sentence as well as the code because the two sit at opposite ends of a body that arrives truncated
|
|
55
|
+
* and the sentence comes first. Not matched against the whole `message`, which by then also carries
|
|
56
|
+
* this repository's own 403 remedy prose about missing scopes.
|
|
57
|
+
*/
|
|
58
|
+
export function isGitHubBlobTooLarge(error) {
|
|
59
|
+
if (!(error instanceof GitHubApiError) || error.status !== 403)
|
|
60
|
+
return false;
|
|
61
|
+
return /too_large|too large/i.test(error.body ?? '');
|
|
20
62
|
}
|
|
21
63
|
/** Parse a GitHub ISO-8601 timestamp to epoch ms, or 0 when absent/unparseable. */
|
|
22
64
|
export function parseGitHubTime(value) {
|
|
@@ -89,6 +131,7 @@ export const MAX_PAGES = 10;
|
|
|
89
131
|
* the GitHub API specifically.
|
|
90
132
|
*/
|
|
91
133
|
export class GitHubApiError extends VcsApiError {
|
|
134
|
+
body;
|
|
92
135
|
constructor(status, message,
|
|
93
136
|
/**
|
|
94
137
|
* Whether the response was rate-limited (`x-ratelimit-remaining: 0`). GitHub reports a
|
|
@@ -97,8 +140,20 @@ export class GitHubApiError extends VcsApiError {
|
|
|
97
140
|
* classify the two differently. Retained here so the signal is available structurally
|
|
98
141
|
* instead of only baked into the human message.
|
|
99
142
|
*/
|
|
100
|
-
rateLimited = false
|
|
143
|
+
rateLimited = false,
|
|
144
|
+
/**
|
|
145
|
+
* The response body (as the caller truncated it), retained STRUCTURALLY rather than only baked
|
|
146
|
+
* into `message`.
|
|
147
|
+
*
|
|
148
|
+
* Because one status covers causes that need different answers and the body is the only thing
|
|
149
|
+
* that separates them: an over-limit blob and a missing scope are both a `403`
|
|
150
|
+
* (see {@link isGitHubBlobTooLarge}). Reading it back out of the rendered `message` would mean
|
|
151
|
+
* matching against this repository's own remedy prose, which is appended to the same string and
|
|
152
|
+
* changes for reasons that have nothing to do with what GitHub said.
|
|
153
|
+
*/
|
|
154
|
+
body) {
|
|
101
155
|
super('github', status, message, rateLimited);
|
|
156
|
+
this.body = body;
|
|
102
157
|
this.name = 'GitHubApiError';
|
|
103
158
|
}
|
|
104
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubHttpHelpers.js","sourceRoot":"","sources":["../../src/github/githubHttpHelpers.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,qFAAqF;AACrF,uFAAuF;AACvF,6EAA6E;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAC/B,GAAW;IAEX,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"githubHttpHelpers.js","sourceRoot":"","sources":["../../src/github/githubHttpHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { GitHubRepoRef, RepoContentEntry, RepoEntry, RepoFileContent } from '@cat-factory/kernel';
|
|
2
|
+
/** The narrow slice of `FetchGitHubClient.request` these reads need. */
|
|
3
|
+
export type ContentsRequest = (path: string, opts: {
|
|
4
|
+
installationId: number;
|
|
5
|
+
}) => Promise<{
|
|
6
|
+
json: unknown;
|
|
7
|
+
}>;
|
|
8
|
+
/** The repo root's entries, or `[]` for a repository with no commits yet. */
|
|
9
|
+
export declare function readRootEntries(request: ContentsRequest, installationId: number, ref: GitHubRepoRef): Promise<RepoEntry[]>;
|
|
10
|
+
/** One directory's entries on `gitRef`, or `[]` for a missing path (mirrors {@link readRootEntries}). */
|
|
11
|
+
export declare function readDirectory(request: ContentsRequest, installationId: number, ref: GitHubRepoRef, path: string, gitRef?: string): Promise<RepoContentEntry[]>;
|
|
12
|
+
/**
|
|
13
|
+
* The WHOLE tree in one recursive git-trees read, so file search never walks the contents API
|
|
14
|
+
* directory by directory. `HEAD` resolves to the repository's default branch.
|
|
15
|
+
*/
|
|
16
|
+
export declare function readTree(request: ContentsRequest, installationId: number, ref: GitHubRepoRef, gitRef?: string): Promise<RepoContentEntry[]>;
|
|
17
|
+
/**
|
|
18
|
+
* One file's content and blob sha on `gitRef`, or null when the path is absent.
|
|
19
|
+
*
|
|
20
|
+
* The two refusals this endpoint states badly are translated HERE, because this is the only layer
|
|
21
|
+
* that knows the contents API's own ceiling:
|
|
22
|
+
*
|
|
23
|
+
* - An over-limit blob arrives EITHER as a `403` whose body says `too_large`, or as a `200` with
|
|
24
|
+
* an empty body and `encoding: 'none'`. Left bare, the first reaches a consumer as the same fact
|
|
25
|
+
* as a revoked token (the public file read turned it into a `503` telling an operator to re-mint
|
|
26
|
+
* a credential that worked), and the second as a file that is genuinely empty.
|
|
27
|
+
* - A file whose bytes are not UTF-8 rides back with `lossy: true` rather than pretending the
|
|
28
|
+
* replacement characters are its content.
|
|
29
|
+
*/
|
|
30
|
+
export declare function readFileContent(request: ContentsRequest, installationId: number, ref: GitHubRepoRef, path: string, gitRef?: string): Promise<RepoFileContent | null>;
|
|
31
|
+
//# sourceMappingURL=repoContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repoContents.d.ts","sourceRoot":"","sources":["../../src/github/repoContents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAyB5B,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,KAC7B,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAE/B,6EAA6E;AAC7E,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CActB;AAED,yGAAyG;AACzG,wBAAsB,aAAa,CACjC,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuB7B;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsBjC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { VcsBlobTooLargeError } from '@cat-factory/kernel';
|
|
2
|
+
import { GITHUB_CONTENTS_MAX_BYTES, decodeRepoFileBase64, githubApiStatus, isGitHubBlobTooLarge, } from './githubHttpHelpers.js';
|
|
3
|
+
/** The repo root's entries, or `[]` for a repository with no commits yet. */
|
|
4
|
+
export async function readRootEntries(request, installationId, ref) {
|
|
5
|
+
let json;
|
|
6
|
+
try {
|
|
7
|
+
;
|
|
8
|
+
({ json } = await request(`/repos/${ref.owner}/${ref.repo}/contents/`, { installationId }));
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
// An empty repository has no default branch, so the contents endpoint 404s. That's the signal we
|
|
12
|
+
// want — treat it as "no entries", not an error.
|
|
13
|
+
if (githubApiStatus(err) === 404)
|
|
14
|
+
return [];
|
|
15
|
+
throw err;
|
|
16
|
+
}
|
|
17
|
+
const entries = Array.isArray(json)
|
|
18
|
+
? json
|
|
19
|
+
: [];
|
|
20
|
+
return entries.map((e) => ({ path: e.path ?? e.name ?? '', type: e.type ?? 'file' }));
|
|
21
|
+
}
|
|
22
|
+
/** One directory's entries on `gitRef`, or `[]` for a missing path (mirrors {@link readRootEntries}). */
|
|
23
|
+
export async function readDirectory(request, installationId, ref, path, gitRef) {
|
|
24
|
+
const clean = path.replace(/^\/+|\/+$/g, '');
|
|
25
|
+
const query = gitRef ? `?ref=${encodeURIComponent(gitRef)}` : '';
|
|
26
|
+
let json;
|
|
27
|
+
try {
|
|
28
|
+
;
|
|
29
|
+
({ json } = await request(`/repos/${ref.owner}/${ref.repo}/contents/${clean}${query}`, {
|
|
30
|
+
installationId,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
if (githubApiStatus(err) === 404)
|
|
35
|
+
return [];
|
|
36
|
+
throw err;
|
|
37
|
+
}
|
|
38
|
+
// A directory returns an array; a single file returns an object — coerce both.
|
|
39
|
+
const arr = Array.isArray(json) ? json : [json];
|
|
40
|
+
return arr.map((e) => ({
|
|
41
|
+
path: e.path ?? e.name ?? '',
|
|
42
|
+
name: e.name ?? (e.path ?? '').split('/').pop() ?? '',
|
|
43
|
+
type: e.type ?? 'file',
|
|
44
|
+
sha: e.sha ?? '',
|
|
45
|
+
...(typeof e.size === 'number' ? { size: e.size } : {}),
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The WHOLE tree in one recursive git-trees read, so file search never walks the contents API
|
|
50
|
+
* directory by directory. `HEAD` resolves to the repository's default branch.
|
|
51
|
+
*/
|
|
52
|
+
export async function readTree(request, installationId, ref, gitRef) {
|
|
53
|
+
const treeRef = encodeURIComponent(gitRef && gitRef !== 'HEAD' ? gitRef : 'HEAD');
|
|
54
|
+
let json;
|
|
55
|
+
try {
|
|
56
|
+
;
|
|
57
|
+
({ json } = await request(`/repos/${ref.owner}/${ref.repo}/git/trees/${treeRef}?recursive=1`, {
|
|
58
|
+
installationId,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
// Empty repo / unknown ref → no entries (mirrors readDirectory).
|
|
63
|
+
if (githubApiStatus(err) === 404)
|
|
64
|
+
return [];
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
const body = json;
|
|
68
|
+
const entries = Array.isArray(body.tree) ? body.tree : [];
|
|
69
|
+
// GitHub git-tree `type` is `blob` | `tree` | `commit` (submodule); normalise to the neutral
|
|
70
|
+
// file/dir vocabulary and drop submodules (they have no browsable content here).
|
|
71
|
+
return entries
|
|
72
|
+
.filter((e) => e.type === 'blob' || e.type === 'tree')
|
|
73
|
+
.map((e) => ({
|
|
74
|
+
path: e.path ?? '',
|
|
75
|
+
name: (e.path ?? '').split('/').pop() ?? '',
|
|
76
|
+
type: e.type === 'tree' ? 'dir' : 'file',
|
|
77
|
+
sha: e.sha ?? '',
|
|
78
|
+
...(typeof e.size === 'number' ? { size: e.size } : {}),
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* One file's content and blob sha on `gitRef`, or null when the path is absent.
|
|
83
|
+
*
|
|
84
|
+
* The two refusals this endpoint states badly are translated HERE, because this is the only layer
|
|
85
|
+
* that knows the contents API's own ceiling:
|
|
86
|
+
*
|
|
87
|
+
* - An over-limit blob arrives EITHER as a `403` whose body says `too_large`, or as a `200` with
|
|
88
|
+
* an empty body and `encoding: 'none'`. Left bare, the first reaches a consumer as the same fact
|
|
89
|
+
* as a revoked token (the public file read turned it into a `503` telling an operator to re-mint
|
|
90
|
+
* a credential that worked), and the second as a file that is genuinely empty.
|
|
91
|
+
* - A file whose bytes are not UTF-8 rides back with `lossy: true` rather than pretending the
|
|
92
|
+
* replacement characters are its content.
|
|
93
|
+
*/
|
|
94
|
+
export async function readFileContent(request, installationId, ref, path, gitRef) {
|
|
95
|
+
const clean = path.replace(/^\/+/, '');
|
|
96
|
+
const query = gitRef ? `?ref=${encodeURIComponent(gitRef)}` : '';
|
|
97
|
+
let json;
|
|
98
|
+
try {
|
|
99
|
+
;
|
|
100
|
+
({ json } = await request(`/repos/${ref.owner}/${ref.repo}/contents/${clean}${query}`, {
|
|
101
|
+
installationId,
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
if (githubApiStatus(err) === 404)
|
|
106
|
+
return null;
|
|
107
|
+
if (isGitHubBlobTooLarge(err))
|
|
108
|
+
throw new VcsBlobTooLargeError('github', GITHUB_CONTENTS_MAX_BYTES);
|
|
109
|
+
throw err;
|
|
110
|
+
}
|
|
111
|
+
const file = json;
|
|
112
|
+
if (file.type !== 'file' || typeof file.content !== 'string')
|
|
113
|
+
return null;
|
|
114
|
+
if (file.encoding === 'none')
|
|
115
|
+
throw new VcsBlobTooLargeError('github', GITHUB_CONTENTS_MAX_BYTES);
|
|
116
|
+
const { content, lossy } = file.encoding === 'base64'
|
|
117
|
+
? decodeRepoFileBase64(file.content)
|
|
118
|
+
: { content: file.content, lossy: false };
|
|
119
|
+
return { content, sha: file.sha ?? '', ...(lossy ? { lossy: true } : {}) };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=repoContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repoContents.js","sourceRoot":"","sources":["../../src/github/repoContents.ts"],"names":[],"mappings":"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"}
|
package/dist/http/env.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context } from 'hono';
|
|
2
|
-
import type { AgentRunRepository, AuthAttemptRepository, ExecutionRepository, MachineNodeRepository, NotificationChannel, PlatformAlertSink, ResolveBinaryArtifactStore, ConsensusSessionRepository, ResolveRunRepoContext, LocalVcsSetup, Logger, SealedSecretInventory, SecretCipher, ToolSecretResolver, UserRepoAccessRepository, VcsIdentityRegistry, VcsProviderRegistry, VcsWebhookSink, WorkspacePermission, WorkspaceRole } from '@cat-factory/kernel';
|
|
2
|
+
import type { AgentRunRepository, AuthAttemptRepository, ExecutionRepository, MachineNodeRepository, NotificationChannel, PlatformAlertSink, ResolveBinaryArtifactStore, ConsensusSessionRepository, ResolveRepoFilesForCoords, ResolveRunRepoContext, LocalVcsSetup, Logger, SealedSecretInventory, SecretCipher, ToolSecretResolver, UserRepoAccessRepository, VcsIdentityRegistry, VcsProviderRegistry, VcsWebhookSink, WorkspacePermission, WorkspaceRole } from '@cat-factory/kernel';
|
|
3
3
|
import type { ApiKeyService, EnvironmentBackendRegistry, LocalModelEndpointService, LocalSettingsService, OpenRouterCatalogService, PersonalSubscriptionService, ProviderSubscriptionService, NotificationWebhookService, McpAuthorizationServer, PublicApiKeyService, RunnerBackendRegistry, TestSecretsService, CapabilityCredentialsService, McpOAuthService, ValidationConfigService, UserSecretService } from '@cat-factory/integrations';
|
|
4
4
|
import type { Core } from '@cat-factory/orchestration';
|
|
5
5
|
import type { AgentKindRegistry } from '@cat-factory/agents';
|
|
@@ -76,6 +76,15 @@ export interface ServerContainer extends Core {
|
|
|
76
76
|
* spec endpoint returns an empty view.
|
|
77
77
|
*/
|
|
78
78
|
resolveRunRepoContext?: ResolveRunRepoContext;
|
|
79
|
+
/**
|
|
80
|
+
* The BLOCK-LESS sibling of {@link resolveRunRepoContext}: the same checkout-free
|
|
81
|
+
* {@link RepoFiles}, from repo coordinates a caller names.
|
|
82
|
+
* `GET /api/v1/repos/:owner/:name/contents?path=` reads through it (the path is a QUERY value, not
|
|
83
|
+
* a path segment: see the contract), so the public file read is scoped to what this workspace has
|
|
84
|
+
* LINKED rather than to whatever the deployment's credential can reach. Present only when a VCS is
|
|
85
|
+
* wired (both facades compose it with `makeResolveRepoFilesForCoords`); absent → the read is a 503.
|
|
86
|
+
*/
|
|
87
|
+
resolveRepoFilesForCoords?: ResolveRepoFilesForCoords;
|
|
79
88
|
/**
|
|
80
89
|
* Resolve the repo (installation + owner/name + default branch) linked to a
|
|
81
90
|
* block's enclosing service frame — the same ancestry walk the container executor
|
package/dist/http/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/http/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/http/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityCredentialsController.d.ts","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/CapabilityCredentialsController.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"CapabilityCredentialsController.d.ts","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/CapabilityCredentialsController.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAkD/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAAC,MAAM,CAAC,CAoC9D"}
|
|
@@ -19,6 +19,7 @@ async function viewFor(container, stored) {
|
|
|
19
19
|
const declarations = await collectDeclaredCapabilityCredentials({
|
|
20
20
|
agentKindRegistry: container.agentKindRegistry,
|
|
21
21
|
binaryGenerators: container.binaryGenerators,
|
|
22
|
+
foundationalBuiltins: container.foundationalBuiltins,
|
|
22
23
|
logger,
|
|
23
24
|
});
|
|
24
25
|
return buildCapabilityCredentialsView({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityCredentialsController.js","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/CapabilityCredentialsController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CapabilityCredentialsController.js","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/CapabilityCredentialsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { BinaryGeneratorSource, Logger } from '@cat-factory/kernel';
|
|
1
|
+
import type { BinaryGeneratorSource, FoundationalBuiltinSource, Logger } from '@cat-factory/kernel';
|
|
2
2
|
import type { AgentKindRegistry } from '@cat-factory/agents';
|
|
3
3
|
import type { CapabilityCredentialRef, CapabilityCredentialsView } from '@cat-factory/contracts';
|
|
4
4
|
/** One capability's declaration of a credential it needs, flattened for the join below. */
|
|
5
5
|
export interface DeclaredCapabilityCredential {
|
|
6
|
-
subject: 'tool-server' | 'binary-generator';
|
|
6
|
+
subject: 'tool-server' | 'binary-generator' | 'foundational-service';
|
|
7
7
|
id: string;
|
|
8
8
|
label: string;
|
|
9
9
|
key: string;
|
|
@@ -14,10 +14,13 @@ export interface DeclaredCapabilityCredential {
|
|
|
14
14
|
export interface DeclaredCapabilityCredentials {
|
|
15
15
|
declared: DeclaredCapabilityCredential[];
|
|
16
16
|
/**
|
|
17
|
-
* True when
|
|
18
|
-
* answering an empty set when
|
|
19
|
-
*
|
|
20
|
-
* workspace snapshot's picker applies to the
|
|
17
|
+
* True when either REMOTE-CAPABLE half could not be read. `BinaryGeneratorSource` and
|
|
18
|
+
* `FoundationalBuiltinSource` both throw rather than answering an empty set when they cannot
|
|
19
|
+
* reach the mothership, and this surface must not turn that outage into "nothing needs a
|
|
20
|
+
* credential" — the same "absent ≠ zero" rule the workspace snapshot's picker applies to the
|
|
21
|
+
* same reads. One flag rather than one per half, because what it changes downstream is a single
|
|
22
|
+
* judgement (whether a stored key with no declarer may be called orphaned), and that judgement
|
|
23
|
+
* is unsafe if EITHER half is short.
|
|
21
24
|
*/
|
|
22
25
|
incomplete: boolean;
|
|
23
26
|
}
|
|
@@ -25,9 +28,20 @@ export interface CollectDeclaredCredentialsInput {
|
|
|
25
28
|
agentKindRegistry: AgentKindRegistry;
|
|
26
29
|
/** The set a RUN resolves against — this process's registry, or the mothership's. */
|
|
27
30
|
binaryGenerators: BinaryGeneratorSource;
|
|
31
|
+
/**
|
|
32
|
+
* The catalog's `builtin` tier, read through the SOURCE for the reason the generators are:
|
|
33
|
+
* on a mothership-mode node the estate is the mothership's, and a checklist built from this
|
|
34
|
+
* process's own registry would ask an operator for keys no run resolves against.
|
|
35
|
+
*
|
|
36
|
+
* Only this tier appears, because only a code-registered service may declare a credential
|
|
37
|
+
* (`storedTierMayNotDeclareCredentials`): the resolver reads a declared key off the
|
|
38
|
+
* deployment's own environment, so a stored row naming one would be a workspace admin asking
|
|
39
|
+
* the platform to read deployment-level secret state into an agent process.
|
|
40
|
+
*/
|
|
41
|
+
foundationalBuiltins: FoundationalBuiltinSource;
|
|
28
42
|
logger?: Logger;
|
|
29
43
|
}
|
|
30
|
-
/** Every credential a registered tool server
|
|
44
|
+
/** Every credential a registered tool server, generative integration or catalog service declares. */
|
|
31
45
|
export declare function collectDeclaredCapabilityCredentials(input: CollectDeclaredCredentialsInput): Promise<DeclaredCapabilityCredentials>;
|
|
32
46
|
/**
|
|
33
47
|
* Join what the deployment DECLARES to what the workspace has STORED.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaredCredentials.d.ts","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/declaredCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"declaredCredentials.d.ts","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/declaredCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EACV,uBAAuB,EAEvB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAA;AAkB/B,2FAA2F;AAC3F,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,GAAG,kBAAkB,GAAG,sBAAsB,CAAA;IACpE,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,4BAA4B,EAAE,CAAA;IACxC;;;;;;;;OAQG;IACH,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,+BAA+B;IAC9C,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,qFAAqF;IACrF,gBAAgB,EAAE,qBAAqB,CAAA;IACvC;;;;;;;;;OASG;IACH,oBAAoB,EAAE,yBAAyB,CAAA;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qGAAqG;AACrG,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,6BAA6B,CAAC,CAwFxC;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,YAAY,EAAE,6BAA6B,CAAA;IAC3C,MAAM,EAAE,uBAAuB,EAAE,CAAA;IACjC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,GAAG,yBAAyB,CA0C5B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { noopLogger, runBestEffort } from '@cat-factory/kernel';
|
|
2
|
-
/** Every credential a registered tool server
|
|
2
|
+
/** Every credential a registered tool server, generative integration or catalog service declares. */
|
|
3
3
|
export async function collectDeclaredCapabilityCredentials(input) {
|
|
4
4
|
const declared = [];
|
|
5
5
|
const seen = new Set();
|
|
@@ -62,7 +62,23 @@ export async function collectDeclaredCapabilityCredentials(input) {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
// The third declarer, read on the same terms as the generators above and folded into the same
|
|
66
|
+
// `incomplete` flag: a service whose credential the operator never fills in is a step that
|
|
67
|
+
// generates fine and cannot store a byte.
|
|
68
|
+
const services = await runBestEffort(input.logger ?? noopLogger, 'read foundational services for the credential checklist', () => input.foundationalBuiltins.entries());
|
|
69
|
+
for (const service of services ?? []) {
|
|
70
|
+
for (const credential of service.credentials ?? []) {
|
|
71
|
+
push({
|
|
72
|
+
subject: 'foundational-service',
|
|
73
|
+
id: service.id,
|
|
74
|
+
label: service.name,
|
|
75
|
+
key: credential.key,
|
|
76
|
+
...(credential.usage ? { usage: credential.usage } : {}),
|
|
77
|
+
required: credential.required !== false,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { declared, incomplete: views === undefined || services === undefined };
|
|
66
82
|
}
|
|
67
83
|
/**
|
|
68
84
|
* Join what the deployment DECLARES to what the workspace has STORED.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaredCredentials.js","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/declaredCredentials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"declaredCredentials.js","sourceRoot":"","sources":["../../../src/modules/capabilityCredentials/declaredCredentials.ts"],"names":[],"mappings":"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"}
|