ctxr-cli 0.37.0 → 0.39.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/README.md +15 -4
- package/dist/commands/land.d.ts +5 -0
- package/dist/commands/land.d.ts.map +1 -1
- package/dist/commands/land.js +12 -3
- package/dist/commands/land.js.map +1 -1
- package/dist/commands/review-list.d.ts +5 -1
- package/dist/commands/review-list.d.ts.map +1 -1
- package/dist/commands/review-list.js +2 -2
- package/dist/commands/review-list.js.map +1 -1
- package/dist/commands/second-opinion.d.ts +6 -2
- package/dist/commands/second-opinion.d.ts.map +1 -1
- package/dist/commands/second-opinion.js.map +1 -1
- package/dist/commands/serve.d.ts +2 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +1 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/session-list.d.ts +2 -0
- package/dist/commands/session-list.d.ts.map +1 -1
- package/dist/commands/session-list.js +1 -1
- package/dist/commands/session-list.js.map +1 -1
- package/dist/commands/session-start.d.ts.map +1 -1
- package/dist/commands/session-start.js +2 -1
- package/dist/commands/session-start.js.map +1 -1
- package/dist/commands/session-submit.d.ts +9 -1
- package/dist/commands/session-submit.d.ts.map +1 -1
- package/dist/commands/session-submit.js +1 -1
- package/dist/commands/session-submit.js.map +1 -1
- package/dist/commands/shared-stores-status.d.ts +9 -1
- package/dist/commands/shared-stores-status.d.ts.map +1 -1
- package/dist/commands/shared-stores-status.js +13 -7
- package/dist/commands/shared-stores-status.js.map +1 -1
- package/dist/commands/shared-stores-sync.d.ts +13 -0
- package/dist/commands/shared-stores-sync.d.ts.map +1 -1
- package/dist/commands/shared-stores-sync.js +60 -13
- package/dist/commands/shared-stores-sync.js.map +1 -1
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +9 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +8 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/core/approval/session-group.d.ts +10 -1
- package/dist/core/approval/session-group.d.ts.map +1 -1
- package/dist/core/approval/session-group.js +4 -0
- package/dist/core/approval/session-group.js.map +1 -1
- package/dist/core/errors.d.ts +9 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +11 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/forge/credentials.d.ts +23 -3
- package/dist/core/forge/credentials.d.ts.map +1 -1
- package/dist/core/forge/credentials.js +99 -5
- package/dist/core/forge/credentials.js.map +1 -1
- package/dist/core/forge/github.d.ts +2 -0
- package/dist/core/forge/github.d.ts.map +1 -1
- package/dist/core/forge/github.js +1 -0
- package/dist/core/forge/github.js.map +1 -1
- package/dist/core/git/worktree.d.ts +6 -1
- package/dist/core/git/worktree.d.ts.map +1 -1
- package/dist/core/git/worktree.js +7 -2
- package/dist/core/git/worktree.js.map +1 -1
- package/dist/core/mcp/tool-map.d.ts +12 -1
- package/dist/core/mcp/tool-map.d.ts.map +1 -1
- package/dist/core/mcp/tool-map.js +15 -0
- package/dist/core/mcp/tool-map.js.map +1 -1
- package/dist/core/mcp/tools/cli.d.ts +6 -0
- package/dist/core/mcp/tools/cli.d.ts.map +1 -1
- package/dist/core/mcp/tools/cli.js +77 -4
- package/dist/core/mcp/tools/cli.js.map +1 -1
- package/dist/core/mcp/tools/index.d.ts +2 -0
- package/dist/core/mcp/tools/index.d.ts.map +1 -1
- package/dist/core/mcp/tools/index.js +1 -1
- package/dist/core/mcp/tools/index.js.map +1 -1
- package/dist/core/plugin/commands.d.ts.map +1 -1
- package/dist/core/plugin/commands.js +2 -0
- package/dist/core/plugin/commands.js.map +1 -1
- package/dist/core/second-opinion/confine.d.ts +50 -0
- package/dist/core/second-opinion/confine.d.ts.map +1 -0
- package/dist/core/second-opinion/confine.js +162 -0
- package/dist/core/second-opinion/confine.js.map +1 -0
- package/dist/core/second-opinion/launch.d.ts +6 -1
- package/dist/core/second-opinion/launch.d.ts.map +1 -1
- package/dist/core/second-opinion/launch.js +31 -3
- package/dist/core/second-opinion/launch.js.map +1 -1
- package/dist/core/second-opinion/lineup.d.ts +11 -0
- package/dist/core/second-opinion/lineup.d.ts.map +1 -1
- package/dist/core/second-opinion/lineup.js +15 -0
- package/dist/core/second-opinion/lineup.js.map +1 -1
- package/dist/core/second-opinion/modes.d.ts +19 -2
- package/dist/core/second-opinion/modes.d.ts.map +1 -1
- package/dist/core/second-opinion/modes.js +103 -29
- package/dist/core/second-opinion/modes.js.map +1 -1
- package/dist/core/session/start.d.ts +2 -2
- package/dist/core/skills.d.ts +1 -2
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +3 -2
- package/dist/core/skills.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +4 -1
- package/dist/run.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/mcp/ctxr.md +1 -0
- package/templates/second-opinion/critic-contract.md +2 -1
- package/templates/skills/ctxr-capture-circleback/sweep.mjs +70 -3
- package/templates/skills/ctxr-capture-circleback.md +7 -0
- package/templates/skills/ctxr-second-opinion.md +34 -13
|
@@ -10,6 +10,8 @@ export interface SessionListData {
|
|
|
10
10
|
sessions: SessionInfo[];
|
|
11
11
|
/** `--review` only: which kind of forge credential was used; never the credential. */
|
|
12
12
|
credential?: CredentialKind;
|
|
13
|
+
/** `--review` only: for `owner-token`, the GitHub owner whose token was used; null otherwise. */
|
|
14
|
+
credential_owner?: string | null;
|
|
13
15
|
}
|
|
14
16
|
export interface SessionListOptions {
|
|
15
17
|
review?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-list.d.ts","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,sFAAsF;IACtF,UAAU,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"session-list.d.ts","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,sFAAsF;IACtF,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAE,kBAAuB,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CA2BrJ"}
|
|
@@ -30,7 +30,7 @@ export async function execute(env, store, opts = {}, forge) {
|
|
|
30
30
|
});
|
|
31
31
|
return {
|
|
32
32
|
exitCode: ExitCode.Ok,
|
|
33
|
-
data: { sessions: list.sessions, ...(review === undefined ? {} : { credential: review.forge.credential }) },
|
|
33
|
+
data: { sessions: list.sessions, ...(review === undefined ? {} : { credential: review.forge.credential, credential_owner: review.forge.credentialOwner }) },
|
|
34
34
|
findings,
|
|
35
35
|
humanSummary: [`${list.sessions.length} session(s).`, ...lines].join('\n'),
|
|
36
36
|
storeRoot: store.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-list.js","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAoB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAyB,MAAM,yBAAyB,CAAC;AAG9E,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"session-list.js","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAGpI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8BD;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CA0C3C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { ExitCode } from '../core/exit-codes.js';
|
|
3
3
|
import { SessionRefusedError } from '../core/errors.js';
|
|
4
|
+
import { credentialsFor } from '../core/forge/credentials.js';
|
|
4
5
|
import { fetchOrigin, hasRemote } from '../core/git/worktree.js';
|
|
5
6
|
import { sessionWorktrees } from '../core/approval/sessions.js';
|
|
6
7
|
import { identityOfWorktree, joinedBranchName, joinedWorktreeName } from '../core/approval/session-marker.js';
|
|
@@ -49,7 +50,7 @@ export async function execute(env, store, opts = {}) {
|
|
|
49
50
|
const started = await startSession({
|
|
50
51
|
git: env.git,
|
|
51
52
|
config: store.config,
|
|
52
|
-
fetch: async (cwd) => (await hasRemote(env.git, cwd)) && (await fetchOrigin(env.git, cwd, store.config.git.default_branch)),
|
|
53
|
+
fetch: async (cwd) => (await hasRemote(env.git, cwd)) && (await fetchOrigin(env.git, await credentialsFor(env, cwd), env.env, cwd, store.config.git.default_branch)),
|
|
53
54
|
now: () => new Date(),
|
|
54
55
|
}, store.root, opts.label, joined ?? undefined);
|
|
55
56
|
const { worktree: worktreeDir, branch, startPoint, fetched, label: labelSlug } = started;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
2
|
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import { type CredentialKind } from '../core/forge/credentials.js';
|
|
3
4
|
import { type SubmitResult } from '../core/session/submit.js';
|
|
4
5
|
import type { Store } from '../core/store.js';
|
|
5
6
|
export declare const requires: CommandRequires;
|
|
7
|
+
/** The submit result, with the credential the push and the pull request used (reach-each-owner-with-its-own-token D7). */
|
|
8
|
+
export type SessionSubmitData = SubmitResult & {
|
|
9
|
+
/** Which kind of forge credential the command used; never the credential. */
|
|
10
|
+
credential: CredentialKind;
|
|
11
|
+
/** For `owner-token`, the GitHub owner whose token was used; null otherwise. */
|
|
12
|
+
credential_owner: string | null;
|
|
13
|
+
};
|
|
6
14
|
export interface SessionSubmitOptions {
|
|
7
15
|
session: string;
|
|
8
16
|
branch: string;
|
|
@@ -19,5 +27,5 @@ export interface SessionSubmitOptions {
|
|
|
19
27
|
* Exit `0` with the pull request open, `3` when the gate or a later step
|
|
20
28
|
* stopped it, `2` for a refused argument (design.md D3).
|
|
21
29
|
*/
|
|
22
|
-
export declare function execute(env: RunEnv, store: Store, opts: SessionSubmitOptions): Promise<CommandOutcome<
|
|
30
|
+
export declare function execute(env: RunEnv, store: Store, opts: SessionSubmitOptions): Promise<CommandOutcome<SessionSubmitData>>;
|
|
23
31
|
//# sourceMappingURL=session-submit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-submit.d.ts","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-submit.d.ts","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,6EAA6E;IAC7E,UAAU,EAAE,cAAc,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CA0B/H"}
|
|
@@ -34,7 +34,7 @@ export async function execute(env, store, opts) {
|
|
|
34
34
|
lines.push(`Pages preview at: ${result.preview_url}`);
|
|
35
35
|
return {
|
|
36
36
|
exitCode: ExitCode.Ok,
|
|
37
|
-
data: result,
|
|
37
|
+
data: { ...result, credential: credentials.kind, credential_owner: credentials.owner },
|
|
38
38
|
findings: [],
|
|
39
39
|
humanSummary: lines.join('\n'),
|
|
40
40
|
storeRoot: store.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAqB,MAAM,2BAA2B,CAAC;AAG3F,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAmB/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAY,EAAE,IAA0B;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,uEAAuE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjK,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;QACpH,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAChJ,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACvF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE;QACtF,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
2
|
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import type { CredentialKind } from '../core/forge/credentials.js';
|
|
3
4
|
import type { Store } from '../core/store.js';
|
|
4
5
|
export declare const requires: CommandRequires;
|
|
5
6
|
export interface MountStatus {
|
|
@@ -15,10 +16,17 @@ export interface MountStatus {
|
|
|
15
16
|
commit: string | null;
|
|
16
17
|
/** Uncommitted changes to tracked files; null when there is no clone to ask. */
|
|
17
18
|
dirty: boolean | null;
|
|
19
|
+
/**
|
|
20
|
+
* reach-each-owner-with-its-own-token D7: the forge credential the mount's repository resolves to, as
|
|
21
|
+
* `shared-stores sync` would use it — resolved offline, never the credential itself.
|
|
22
|
+
*/
|
|
23
|
+
credential: CredentialKind;
|
|
24
|
+
/** For `owner-token`, the GitHub owner whose token it is; null otherwise. */
|
|
25
|
+
credential_owner: string | null;
|
|
18
26
|
}
|
|
19
27
|
export interface SharedStoresStatusData {
|
|
20
28
|
mounts: MountStatus[];
|
|
21
29
|
}
|
|
22
|
-
/** shared-stores spec: each mount's state, from the filesystem and local git only — no writes, no network. */
|
|
30
|
+
/** shared-stores spec: each mount's state and credential, from the filesystem, the environment and local git only — no writes, no network. */
|
|
23
31
|
export declare function execute(env: RunEnv, store: Store): Promise<CommandOutcome<SharedStoresStatusData>>;
|
|
24
32
|
//# sourceMappingURL=shared-stores-status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-stores-status.d.ts","sourceRoot":"","sources":["../../src/commands/shared-stores-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-stores-status.d.ts","sourceRoot":"","sources":["../../src/commands/shared-stores-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gFAAgF;IAChF,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,UAAU,EAAE,cAAc,CAAC;IAC3B,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAuCD,8IAA8I;AAC9I,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAYxG"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { ExitCode } from '../core/exit-codes.js';
|
|
4
|
-
import { resolveMounts } from '../core/shared-stores.js';
|
|
4
|
+
import { mainWorkingTreeRoot, resolveMounts } from '../core/shared-stores.js';
|
|
5
|
+
import { mountCredentials } from './shared-stores-sync.js';
|
|
5
6
|
export const requires = { store: 'required' };
|
|
6
|
-
async function statusOf(env, mount) {
|
|
7
|
-
|
|
7
|
+
async function statusOf(env, mount, storeRoot) {
|
|
8
|
+
// Resolving a credential reads the environment, a token file and `origin`; it makes no forge call.
|
|
9
|
+
const credentials = await mountCredentials(env, mount, storeRoot);
|
|
10
|
+
const base = { name: mount.name, location: mount.location, url: mount.url, credential: credentials.kind, credential_owner: credentials.owner };
|
|
8
11
|
if (mount.state === 'absent') {
|
|
9
12
|
return { ...base, present: false, isStore: false, reason: null, branch: null, commit: null, dirty: null };
|
|
10
13
|
}
|
|
@@ -26,19 +29,22 @@ async function statusOf(env, mount) {
|
|
|
26
29
|
dirty,
|
|
27
30
|
};
|
|
28
31
|
}
|
|
32
|
+
function credentialText(status) {
|
|
33
|
+
return `credential ${status.credential}${status.credential_owner === null ? '' : ` for ${status.credential_owner}`}`;
|
|
34
|
+
}
|
|
29
35
|
function line(status) {
|
|
30
36
|
if (!status.present)
|
|
31
|
-
return `${status.location}: absent (run \`ctxr shared-stores sync\` to clone it)`;
|
|
37
|
+
return `${status.location}: absent (run \`ctxr shared-stores sync\` to clone it), ${credentialText(status)}`;
|
|
32
38
|
const where = status.commit ? ` on ${status.branch ?? 'a detached HEAD'} at ${status.commit.slice(0, 7)}` : '';
|
|
33
39
|
const store = status.isStore ? '' : `, not a store (${status.reason})`;
|
|
34
|
-
return `${status.location}: present${where}${status.dirty ? ', with uncommitted changes' : ''}${store}`;
|
|
40
|
+
return `${status.location}: present${where}${status.dirty ? ', with uncommitted changes' : ''}${store}, ${credentialText(status)}`;
|
|
35
41
|
}
|
|
36
|
-
/** shared-stores spec: each mount's state, from the filesystem and local git only — no writes, no network. */
|
|
42
|
+
/** shared-stores spec: each mount's state and credential, from the filesystem, the environment and local git only — no writes, no network. */
|
|
37
43
|
export async function execute(env, store) {
|
|
38
44
|
const mounts = await resolveMounts(store.root, store.config);
|
|
39
45
|
const statuses = [];
|
|
40
46
|
for (const mount of mounts)
|
|
41
|
-
statuses.push(await statusOf(env, mount));
|
|
47
|
+
statuses.push(await statusOf(env, mount, mainWorkingTreeRoot(store.root)));
|
|
42
48
|
return {
|
|
43
49
|
exitCode: ExitCode.Ok,
|
|
44
50
|
data: { mounts: statuses },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-stores-status.js","sourceRoot":"","sources":["../../src/commands/shared-stores-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-stores-status.js","sourceRoot":"","sources":["../../src/commands/shared-stores-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AA4B/D,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAiB,EAAE,SAAiB;IACvE,mGAAmG;IACnG,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;IAC/I,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzH,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAuB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAClG,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QAClC,MAAM;QACN,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACrC,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QAC3D,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;IACzC,OAAO,cAAc,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;AACvH,CAAC;AAED,SAAS,IAAI,CAAC,MAAmB;IAC/B,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,2DAA2D,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAClI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,IAAI,iBAAiB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,CAAC;IACvE,OAAO,GAAG,MAAM,CAAC,QAAQ,YAAY,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACrI,CAAC;AAED,8IAA8I;AAC9I,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAY;IACrD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvG,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC1B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7G,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
2
|
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import { type CredentialKind, type ForgeCredentials } from '../core/forge/credentials.js';
|
|
4
|
+
import { type MountState } from '../core/shared-stores.js';
|
|
3
5
|
import type { Store } from '../core/store.js';
|
|
4
6
|
export declare const requires: CommandRequires;
|
|
5
7
|
export type MountSyncOutcome = 'cloned' | 'fast_forwarded' | 'current' | 'left_alone' | 'failed';
|
|
@@ -11,12 +13,23 @@ export interface MountSyncResult {
|
|
|
11
13
|
to: string | null;
|
|
12
14
|
/** Why the mount was left alone or failed; null otherwise. */
|
|
13
15
|
reason: string | null;
|
|
16
|
+
/** Which kind of forge credential the clone or fetch used; never the credential (reach-each-owner-with-its-own-token D7). */
|
|
17
|
+
credential: CredentialKind;
|
|
18
|
+
/** For `owner-token`, the GitHub owner whose token was used; null otherwise. */
|
|
19
|
+
credential_owner: string | null;
|
|
14
20
|
}
|
|
15
21
|
export interface SharedStoresSyncData {
|
|
16
22
|
mounts: MountSyncResult[];
|
|
17
23
|
/** Whether this run added the `shared/` entry to the repository's local exclude file. */
|
|
18
24
|
excludeAdded: boolean;
|
|
19
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* reach-each-owner-with-its-own-token D2, D4: the mounted repository's forge
|
|
28
|
+
* credential — from its clone's `origin`, or from the declared URL while there
|
|
29
|
+
* is no clone. `CONTEXTURE_GITHUB_REPOSITORY` names the home store's repository
|
|
30
|
+
* only, so it is not passed on to a mount (as `storeForges` does).
|
|
31
|
+
*/
|
|
32
|
+
export declare function mountCredentials(env: RunEnv, mount: MountState, storeRoot: string): Promise<ForgeCredentials>;
|
|
20
33
|
/**
|
|
21
34
|
* shared-stores spec: clone each declared mount that is absent, fast-forward
|
|
22
35
|
* each present one when that is safe, and report every mount. A mount with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-stores-sync.d.ts","sourceRoot":"","sources":["../../src/commands/shared-stores-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-stores-sync.d.ts","sourceRoot":"","sources":["../../src/commands/shared-stores-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAyD,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEjG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6HAA6H;IAC7H,UAAU,EAAE,cAAc,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB;AAuCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAG7G;AAqED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CA6BtG"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { ContextureError } from '../core/errors.js';
|
|
4
5
|
import { ExitCode } from '../core/exit-codes.js';
|
|
6
|
+
import { APP_REPOSITORY_VAR, credentialsFor, githubOwnerOf, OWNER_TOKENS_DIR_VAR, runRemoteGit, } from '../core/forge/credentials.js';
|
|
5
7
|
import { fastForwardIfSafe } from '../core/git/fast-forward.js';
|
|
6
8
|
import { mainWorkingTreeRoot, resolveMounts, SHARED_STORES_DIR } from '../core/shared-stores.js';
|
|
7
9
|
export const requires = { store: 'required' };
|
|
@@ -39,24 +41,65 @@ async function mountDefaultBranch(env, mount) {
|
|
|
39
41
|
const ref = remoteHead.stdout.trim();
|
|
40
42
|
return remoteHead.exitCode === 0 && ref.startsWith('origin/') ? ref.slice('origin/'.length) : null;
|
|
41
43
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
function isClone(mount) {
|
|
45
|
+
return mount.state !== 'absent' && existsSync(path.join(mount.root, '.git'));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* reach-each-owner-with-its-own-token D2, D4: the mounted repository's forge
|
|
49
|
+
* credential — from its clone's `origin`, or from the declared URL while there
|
|
50
|
+
* is no clone. `CONTEXTURE_GITHUB_REPOSITORY` names the home store's repository
|
|
51
|
+
* only, so it is not passed on to a mount (as `storeForges` does).
|
|
52
|
+
*/
|
|
53
|
+
export function mountCredentials(env, mount, storeRoot) {
|
|
54
|
+
const scoped = { ...env, env: { ...env.env, [APP_REPOSITORY_VAR]: undefined } };
|
|
55
|
+
return isClone(mount) ? credentialsFor(scoped, mount.root) : credentialsFor(scoped, storeRoot, mount.url);
|
|
56
|
+
}
|
|
57
|
+
/** git's ways of saying the forge refused the credential: HTTP 401 or 403, or GitHub's answer for a repository it will not show. */
|
|
58
|
+
const REFUSED = /\b40[13]\b|Authentication failed|Repository not found|could not read Username|Invalid username or password|Permission to \S+ denied/i;
|
|
59
|
+
/**
|
|
60
|
+
* Why a clone or fetch failed: git's first line, and, when the forge refused
|
|
61
|
+
* the credential for a github.com repository, the owner, the credential kind
|
|
62
|
+
* used, and where that owner's token goes (reach-each-owner-with-its-own-token
|
|
63
|
+
* D7). Never the token.
|
|
64
|
+
*/
|
|
65
|
+
function failureReason(step, result, mount, credentials) {
|
|
66
|
+
const reason = `git ${step} failed: ${result.stderr.trim().split('\n')[0] ?? ''}`;
|
|
67
|
+
const owner = credentials.owner ?? githubOwnerOf(mount.url);
|
|
68
|
+
if (owner === null || !REFUSED.test(result.stderr))
|
|
69
|
+
return reason;
|
|
70
|
+
return `${reason}; the forge refused the ${credentials.kind} credential for GitHub owner ${owner}. A token for ${owner} goes in a file named ${owner} in the directory ${OWNER_TOKENS_DIR_VAR} names.`;
|
|
71
|
+
}
|
|
72
|
+
/** A clone or fetch through the mount's credential; a credential that cannot be had (an App not installed there) is a failure like a refused one. */
|
|
73
|
+
async function remote(env, credentials, args, cwd) {
|
|
74
|
+
try {
|
|
75
|
+
return await runRemoteGit(env.git, credentials, env.env, args, { cwd, allowFailure: true });
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
if (!(err instanceof ContextureError))
|
|
79
|
+
throw err;
|
|
80
|
+
return { error: err.message };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function syncMount(env, mount, credentials) {
|
|
84
|
+
const base = { name: mount.name, location: mount.location, credential: credentials.kind, credential_owner: credentials.owner };
|
|
44
85
|
if (mount.state === 'absent') {
|
|
45
86
|
await mkdir(path.dirname(mount.root), { recursive: true });
|
|
46
|
-
const cloned = await env
|
|
47
|
-
if (
|
|
48
|
-
return { ...base, outcome: 'failed', from: null, to: null, reason: `git clone failed: ${cloned.
|
|
49
|
-
|
|
87
|
+
const cloned = await remote(env, credentials, ['clone', '--quiet', mount.url, mount.root], path.dirname(mount.root));
|
|
88
|
+
if ('error' in cloned)
|
|
89
|
+
return { ...base, outcome: 'failed', from: null, to: null, reason: `git clone failed: ${cloned.error}` };
|
|
90
|
+
if (cloned.exitCode !== 0)
|
|
91
|
+
return { ...base, outcome: 'failed', from: null, to: null, reason: failureReason('clone', cloned, mount, credentials) };
|
|
50
92
|
const head = await env.git.run(['rev-parse', 'HEAD'], { cwd: mount.root, allowFailure: true });
|
|
51
93
|
return { ...base, outcome: 'cloned', from: null, to: head.exitCode === 0 ? head.stdout.trim() : null, reason: null };
|
|
52
94
|
}
|
|
53
|
-
if (!
|
|
95
|
+
if (!isClone(mount)) {
|
|
54
96
|
return { ...base, outcome: 'left_alone', from: null, to: null, reason: `${mount.location} exists but is not a git clone` };
|
|
55
97
|
}
|
|
56
|
-
const fetched = await env
|
|
57
|
-
if (
|
|
58
|
-
return { ...base, outcome: 'failed', from: null, to: null, reason: `git fetch failed: ${fetched.
|
|
59
|
-
|
|
98
|
+
const fetched = await remote(env, credentials, ['fetch', '--quiet', 'origin'], mount.root);
|
|
99
|
+
if ('error' in fetched)
|
|
100
|
+
return { ...base, outcome: 'failed', from: null, to: null, reason: `git fetch failed: ${fetched.error}` };
|
|
101
|
+
if (fetched.exitCode !== 0)
|
|
102
|
+
return { ...base, outcome: 'failed', from: null, to: null, reason: failureReason('fetch', fetched, mount, credentials) };
|
|
60
103
|
const branch = await mountDefaultBranch(env, mount);
|
|
61
104
|
if (branch === null) {
|
|
62
105
|
return { ...base, outcome: 'left_alone', from: null, to: null, reason: 'its default branch could not be determined' };
|
|
@@ -89,10 +132,14 @@ function line(result) {
|
|
|
89
132
|
export async function execute(env, store) {
|
|
90
133
|
const mainRoot = mainWorkingTreeRoot(store.root);
|
|
91
134
|
const mounts = await resolveMounts(store.root, store.config);
|
|
135
|
+
// reach-each-owner-with-its-own-token D5: an unusable owner token setup is refused before any git command runs.
|
|
136
|
+
const credentials = [];
|
|
137
|
+
for (const mount of mounts)
|
|
138
|
+
credentials.push(await mountCredentials(env, mount, mainRoot));
|
|
92
139
|
const excludeAdded = mounts.length > 0 ? await ensureLocalExclude(env, mainRoot) : false;
|
|
93
140
|
const results = [];
|
|
94
|
-
for (const mount of mounts)
|
|
95
|
-
results.push(await syncMount(env, mount));
|
|
141
|
+
for (const [i, mount] of mounts.entries())
|
|
142
|
+
results.push(await syncMount(env, mount, credentials[i]));
|
|
96
143
|
const findings = [];
|
|
97
144
|
for (const result of results) {
|
|
98
145
|
if (result.outcome === 'left_alone') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-stores-sync.js","sourceRoot":"","sources":["../../src/commands/shared-stores-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAmB,MAAM,0BAA0B,CAAC;AAGlH,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"shared-stores-sync.js","sourceRoot":"","sources":["../../src/commands/shared-stores-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface SyncFlags {
|
|
|
12
12
|
export interface SyncData {
|
|
13
13
|
/** Which kind of forge credential the fetch used; never the credential. */
|
|
14
14
|
credential: CredentialKind | null;
|
|
15
|
+
/** For `owner-token`, the GitHub owner whose token the fetch used; null otherwise (reach-each-owner-with-its-own-token D7). */
|
|
16
|
+
credential_owner: string | null;
|
|
15
17
|
/** The canonical sync, reported as `ctxr land` reports it; null when another landing held the lock. */
|
|
16
18
|
canonical_sync: FastForwardOutcome | null;
|
|
17
19
|
/** `--every` only: the minutes between rounds. */
|
|
@@ -25,6 +27,7 @@ export interface RoundReport {
|
|
|
25
27
|
lines: string[];
|
|
26
28
|
canonical: FastForwardOutcome | null;
|
|
27
29
|
credential: CredentialKind | null;
|
|
30
|
+
credentialOwner: string | null;
|
|
28
31
|
mounts: sharedStoresSyncCommand.MountSyncResult[];
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,uBAAuB,MAAM,yBAAyB,CAAC;AAEnE,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,uGAAuG;IACvG,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACpD;AA0ED,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,uBAAuB,MAAM,yBAAyB,CAAC;AAEnE,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,+HAA+H;IAC/H,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,uGAAuG;IACvG,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACpD;AA0ED,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsC/E;AAED,MAAM,WAAW,QAAQ;IACvB,qFAAqF;IACrF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,YAAY,SAAa,GAAG,QAAQ,CAgC/I;AAiBD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAMvH"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -27,8 +27,8 @@ async function canonicalRound(env, store) {
|
|
|
27
27
|
const branch = store.config.git.default_branch;
|
|
28
28
|
const result = await syncCanonicalClone(() => runRemoteGit(env.git, credentials, env.env, ['fetch', '--quiet', 'origin', branch], { cwd: canonical, allowFailure: true }), (args) => env.git.run(args, { cwd: canonical, allowFailure: true }), branch, 'the canonical clone');
|
|
29
29
|
if (!result.fetched)
|
|
30
|
-
return { kind: 'fetch-failed', branch, error: result.error, outcome: result.outcome, credential: credentials.kind };
|
|
31
|
-
return { kind: 'ran', outcome: result.outcome, credential: credentials.kind };
|
|
30
|
+
return { kind: 'fetch-failed', branch, error: result.error, outcome: result.outcome, credential: credentials.kind, owner: credentials.owner };
|
|
31
|
+
return { kind: 'ran', outcome: result.outcome, credential: credentials.kind, owner: credentials.owner };
|
|
32
32
|
}
|
|
33
33
|
finally {
|
|
34
34
|
await lock.release();
|
|
@@ -62,13 +62,13 @@ function envelope(store, exitCode, data, findings, lines, notices) {
|
|
|
62
62
|
async function once(env, store) {
|
|
63
63
|
const round = await canonicalRound(env, store);
|
|
64
64
|
if (round.kind === 'busy') {
|
|
65
|
-
return envelope(store, ExitCode.Ok, { credential: null, canonical_sync: null }, [], [busyLine(round.holder)], [`sync: another landing is running (process ${round.holder.pid} on ${round.holder.host}); stepped aside.`]);
|
|
65
|
+
return envelope(store, ExitCode.Ok, { credential: null, credential_owner: null, canonical_sync: null }, [], [busyLine(round.holder)], [`sync: another landing is running (process ${round.holder.pid} on ${round.holder.host}); stepped aside.`]);
|
|
66
66
|
}
|
|
67
67
|
if (round.kind === 'fetch-failed')
|
|
68
68
|
throw new SyncForgeUnreachableError(round.branch, round.error);
|
|
69
69
|
const finding = leftAloneFinding(round.outcome);
|
|
70
70
|
// A clone left alone is a warning that keeps the success code, as in every landing run.
|
|
71
|
-
return envelope(store, ExitCode.Ok, { credential: round.credential, canonical_sync: round.outcome }, finding === null ? [] : [finding], [syncLine(round.outcome)]);
|
|
71
|
+
return envelope(store, ExitCode.Ok, { credential: round.credential, credential_owner: round.owner, canonical_sync: round.outcome }, finding === null ? [] : [finding], [syncLine(round.outcome)]);
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* One round of `ctxr sync --every`: the canonical sync, then the mounts as
|
|
@@ -82,12 +82,13 @@ export async function syncRound(env, root) {
|
|
|
82
82
|
store = { root, config: await readConfig(root, env.migrationSteps ?? MIGRATION_STEPS) };
|
|
83
83
|
}
|
|
84
84
|
catch (err) {
|
|
85
|
-
return { failed: true, lines: [`the configuration could not be read: ${err instanceof Error ? err.message : String(err)}`], canonical: null, credential: null, mounts: [] };
|
|
85
|
+
return { failed: true, lines: [`the configuration could not be read: ${err instanceof Error ? err.message : String(err)}`], canonical: null, credential: null, credentialOwner: null, mounts: [] };
|
|
86
86
|
}
|
|
87
87
|
const lines = [];
|
|
88
88
|
let failed = false;
|
|
89
89
|
let canonical = null;
|
|
90
90
|
let credential = null;
|
|
91
|
+
let credentialOwner = null;
|
|
91
92
|
try {
|
|
92
93
|
const round = await canonicalRound(env, store);
|
|
93
94
|
if (round.kind === 'busy') {
|
|
@@ -96,6 +97,7 @@ export async function syncRound(env, root) {
|
|
|
96
97
|
else {
|
|
97
98
|
canonical = round.outcome;
|
|
98
99
|
credential = round.credential;
|
|
100
|
+
credentialOwner = round.owner;
|
|
99
101
|
if (round.kind === 'fetch-failed')
|
|
100
102
|
failed = true;
|
|
101
103
|
lines.push(syncLine(round.outcome));
|
|
@@ -118,7 +120,7 @@ export async function syncRound(env, root) {
|
|
|
118
120
|
failed = true;
|
|
119
121
|
lines.push(`the mounts could not be refreshed: ${err instanceof Error ? err.message : String(err)}`);
|
|
120
122
|
}
|
|
121
|
-
return { failed, lines, canonical, credential, mounts };
|
|
123
|
+
return { failed, lines, canonical, credential, credentialOwner, mounts };
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* write-lifecycle spec ("The canonical-clone sync can keep running, mounts
|
|
@@ -172,7 +174,7 @@ async function every(env, store, minutes) {
|
|
|
172
174
|
}
|
|
173
175
|
const lines = [...first.lines.map((line) => (first.failed ? `round failed: ${line}` : line)), `Syncing again every ${minutes} minute(s) until stopped.`];
|
|
174
176
|
// The loop is running: a failed first round is a warning, never an exit code that reads as "stopped".
|
|
175
|
-
return envelope(store, ExitCode.Ok, { credential: first.credential, canonical_sync: first.canonical, every_minutes: minutes, mounts: first.mounts }, findings, lines);
|
|
177
|
+
return envelope(store, ExitCode.Ok, { credential: first.credential, credential_owner: first.credentialOwner, canonical_sync: first.canonical, every_minutes: minutes, mounts: first.mounts }, findings, lines);
|
|
176
178
|
}
|
|
177
179
|
export async function execute(callerEnv, store, flags = {}) {
|
|
178
180
|
// serve-keeps-its-clone-current D12: every git command a sync runs ignores the repository's hooks and drivers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,uBAAuB,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAS7C,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI9D,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,uGAAuG;IACvG,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC,GACxE,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAwCrC;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE5D;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CA0D/G"}
|