@joynt/foundry 0.0.0-stage → 0.1.50
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/backends/command.d.ts +37 -0
- package/dist/backends/command.d.ts.map +1 -0
- package/dist/backends/command.js +79 -0
- package/dist/backends/command.js.map +1 -0
- package/dist/backends/index.d.ts +9 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +37 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +191 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/action.d.ts +6 -0
- package/dist/commands/action.d.ts.map +1 -0
- package/dist/commands/action.js +171 -0
- package/dist/commands/action.js.map +1 -0
- package/dist/commands/cancelled.d.ts +5 -0
- package/dist/commands/cancelled.d.ts.map +1 -0
- package/dist/commands/cancelled.js +107 -0
- package/dist/commands/cancelled.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +323 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/preview.d.ts +4 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +108 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/release.d.ts +2 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +89 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/report.d.ts +14 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +91 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/reset.d.ts +4 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +155 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/review.d.ts +2 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +73 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/setup-bot.d.ts +31 -0
- package/dist/commands/setup-bot.d.ts.map +1 -0
- package/dist/commands/setup-bot.js +429 -0
- package/dist/commands/setup-bot.js.map +1 -0
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +77 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +147 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-output.d.ts +49 -0
- package/dist/lib/agent-output.d.ts.map +1 -0
- package/dist/lib/agent-output.js +256 -0
- package/dist/lib/agent-output.js.map +1 -0
- package/dist/lib/agent-report.d.ts +107 -0
- package/dist/lib/agent-report.d.ts.map +1 -0
- package/dist/lib/agent-report.js +233 -0
- package/dist/lib/agent-report.js.map +1 -0
- package/dist/lib/authorize.d.ts +3 -0
- package/dist/lib/authorize.d.ts.map +1 -0
- package/dist/lib/authorize.js +67 -0
- package/dist/lib/authorize.js.map +1 -0
- package/dist/lib/branches.d.ts +22 -0
- package/dist/lib/branches.d.ts.map +1 -0
- package/dist/lib/branches.js +82 -0
- package/dist/lib/branches.js.map +1 -0
- package/dist/lib/claim.d.ts +22 -0
- package/dist/lib/claim.d.ts.map +1 -0
- package/dist/lib/claim.js +129 -0
- package/dist/lib/claim.js.map +1 -0
- package/dist/lib/completion.d.ts +5 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +63 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/deployments.d.ts +21 -0
- package/dist/lib/deployments.d.ts.map +1 -0
- package/dist/lib/deployments.js +104 -0
- package/dist/lib/deployments.js.map +1 -0
- package/dist/lib/event-handler.d.ts +74 -0
- package/dist/lib/event-handler.d.ts.map +1 -0
- package/dist/lib/event-handler.js +1002 -0
- package/dist/lib/event-handler.js.map +1 -0
- package/dist/lib/events.d.ts +72 -0
- package/dist/lib/events.d.ts.map +1 -0
- package/dist/lib/events.js +3 -0
- package/dist/lib/events.js.map +1 -0
- package/dist/lib/gh-cli-client.d.ts +46 -0
- package/dist/lib/gh-cli-client.d.ts.map +1 -0
- package/dist/lib/gh-cli-client.js +260 -0
- package/dist/lib/gh-cli-client.js.map +1 -0
- package/dist/lib/git.d.ts +42 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +247 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/github-client.d.ts +98 -0
- package/dist/lib/github-client.d.ts.map +1 -0
- package/dist/lib/github-client.js +3 -0
- package/dist/lib/github-client.js.map +1 -0
- package/dist/lib/github.d.ts +82 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +202 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/issue-file.d.ts +15 -0
- package/dist/lib/issue-file.d.ts.map +1 -0
- package/dist/lib/issue-file.js +84 -0
- package/dist/lib/issue-file.js.map +1 -0
- package/dist/lib/labels.d.ts +14 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +70 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/lib/log.d.ts +11 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +53 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/octokit-client.d.ts +112 -0
- package/dist/lib/octokit-client.d.ts.map +1 -0
- package/dist/lib/octokit-client.js +507 -0
- package/dist/lib/octokit-client.js.map +1 -0
- package/dist/lib/preview-verify.d.ts +48 -0
- package/dist/lib/preview-verify.d.ts.map +1 -0
- package/dist/lib/preview-verify.js +148 -0
- package/dist/lib/preview-verify.js.map +1 -0
- package/dist/lib/preview.d.ts +33 -0
- package/dist/lib/preview.d.ts.map +1 -0
- package/dist/lib/preview.js +308 -0
- package/dist/lib/preview.js.map +1 -0
- package/dist/lib/reconcile.d.ts +14 -0
- package/dist/lib/reconcile.d.ts.map +1 -0
- package/dist/lib/reconcile.js +114 -0
- package/dist/lib/reconcile.js.map +1 -0
- package/dist/lib/review.d.ts +38 -0
- package/dist/lib/review.d.ts.map +1 -0
- package/dist/lib/review.js +284 -0
- package/dist/lib/review.js.map +1 -0
- package/dist/lib/stale-prs.d.ts +31 -0
- package/dist/lib/stale-prs.d.ts.map +1 -0
- package/dist/lib/stale-prs.js +161 -0
- package/dist/lib/stale-prs.js.map +1 -0
- package/dist/lib/state-store.d.ts +23 -0
- package/dist/lib/state-store.d.ts.map +1 -0
- package/dist/lib/state-store.js +3 -0
- package/dist/lib/state-store.js.map +1 -0
- package/dist/lib/state.d.ts +23 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +57 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/status-comment.d.ts +14 -0
- package/dist/lib/status-comment.d.ts.map +1 -0
- package/dist/lib/status-comment.js +195 -0
- package/dist/lib/status-comment.js.map +1 -0
- package/dist/lib/stores/file-store.d.ts +22 -0
- package/dist/lib/stores/file-store.d.ts.map +1 -0
- package/dist/lib/stores/file-store.js +172 -0
- package/dist/lib/stores/file-store.js.map +1 -0
- package/dist/lib/stores/index.d.ts +13 -0
- package/dist/lib/stores/index.d.ts.map +1 -0
- package/dist/lib/stores/index.js +20 -0
- package/dist/lib/stores/index.js.map +1 -0
- package/dist/lib/task-recovery.d.ts +22 -0
- package/dist/lib/task-recovery.d.ts.map +1 -0
- package/dist/lib/task-recovery.js +172 -0
- package/dist/lib/task-recovery.js.map +1 -0
- package/dist/lib/templates.d.ts +8 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +58 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/thread.d.ts +13 -0
- package/dist/lib/thread.d.ts.map +1 -0
- package/dist/lib/thread.js +75 -0
- package/dist/lib/thread.js.map +1 -0
- package/dist/lib/verify.d.ts +31 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +90 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/lib/version.d.ts +9 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +134 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/lib/webhook.d.ts +39 -0
- package/dist/lib/webhook.d.ts.map +1 -0
- package/dist/lib/webhook.js +248 -0
- package/dist/lib/webhook.js.map +1 -0
- package/dist/lib/worker.d.ts +42 -0
- package/dist/lib/worker.d.ts.map +1 -0
- package/dist/lib/worker.js +9 -0
- package/dist/lib/worker.js.map +1 -0
- package/dist/lib/workers/index.d.ts +11 -0
- package/dist/lib/workers/index.d.ts.map +1 -0
- package/dist/lib/workers/index.js +18 -0
- package/dist/lib/workers/index.js.map +1 -0
- package/dist/lib/workers/subprocess.d.ts +8 -0
- package/dist/lib/workers/subprocess.d.ts.map +1 -0
- package/dist/lib/workers/subprocess.js +105 -0
- package/dist/lib/workers/subprocess.js.map +1 -0
- package/dist/lib/worktree.d.ts +21 -0
- package/dist/lib/worktree.d.ts.map +1 -0
- package/dist/lib/worktree.js +113 -0
- package/dist/lib/worktree.js.map +1 -0
- package/dist/types.d.ts +201 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +44 -4
- package/templates/foundry.yml +121 -0
- package/templates/vercel-preview-url.sh +61 -0
- package/README.md +0 -3
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runRelease = runRelease;
|
|
37
|
+
/**
|
|
38
|
+
* foundry release [patch|minor|major] — unified monorepo version bump.
|
|
39
|
+
*
|
|
40
|
+
* - Bumps version in ALL configured version_sources
|
|
41
|
+
* - Commits on integration
|
|
42
|
+
* - Optionally tags main after merge
|
|
43
|
+
*/
|
|
44
|
+
const config_js_1 = require("../config.js");
|
|
45
|
+
const git = __importStar(require("../lib/git.js"));
|
|
46
|
+
const version = __importStar(require("../lib/version.js"));
|
|
47
|
+
const log = __importStar(require("../lib/log.js"));
|
|
48
|
+
const branches_js_1 = require("../lib/branches.js");
|
|
49
|
+
async function runRelease(bumpType) {
|
|
50
|
+
const config = (0, config_js_1.loadConfig)();
|
|
51
|
+
const repoDir = (0, config_js_1.getConfigDir)();
|
|
52
|
+
if (!['patch', 'minor', 'major'].includes(bumpType)) {
|
|
53
|
+
log.error(`Invalid bump type: ${bumpType}. Use: patch, minor, or major.`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (config.version_sources.length === 0) {
|
|
57
|
+
log.error('No version_sources configured in .joynt-foundry.yml');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Ensure we're on the integration branch
|
|
61
|
+
const integration = (0, branches_js_1.integrationBranch)(config);
|
|
62
|
+
const branch = git.currentBranch(repoDir);
|
|
63
|
+
if (branch !== integration) {
|
|
64
|
+
log.error(`Must be on the integration branch (${integration}). Currently on: ${branch}`);
|
|
65
|
+
log.info(`Run: git checkout ${integration}`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
git.fetchAll(repoDir);
|
|
69
|
+
// Bump versions
|
|
70
|
+
log.info(`Bumping ${bumpType} version across ${config.version_sources.length} file(s)...`);
|
|
71
|
+
const result = version.bumpAllVersionSources(config.version_sources, bumpType, repoDir);
|
|
72
|
+
log.success(`New version: ${result.version}`);
|
|
73
|
+
for (const f of result.files) {
|
|
74
|
+
log.info(` Updated: ${f}`);
|
|
75
|
+
}
|
|
76
|
+
// Commit
|
|
77
|
+
const tagName = `${config.tag_prefix}${result.version}`;
|
|
78
|
+
git.commitAll(`release: ${tagName}`, repoDir);
|
|
79
|
+
log.success(`Committed version bump.`);
|
|
80
|
+
// Push the integration branch
|
|
81
|
+
git.push(integration, repoDir);
|
|
82
|
+
log.success(`Pushed ${integration}.`);
|
|
83
|
+
log.info('');
|
|
84
|
+
log.info('Next steps:');
|
|
85
|
+
log.info(` 1. Create PR: integration → main`);
|
|
86
|
+
log.info(` 2. After merge, tag main: git tag -a ${tagName} -m "Release ${tagName}"`);
|
|
87
|
+
log.info(` 3. Push tag: git push origin ${tagName}`);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gCAoDC;AAjED;;;;;;GAMG;AACH,4CAAwD;AACxD,mDAAqC;AACrC,2DAA6C;AAC7C,mDAAqC;AACrC,oDAAuD;AAEhD,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,wBAAY,GAAE,CAAC;IAE/B,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,KAAK,CAAC,sBAAsB,QAAQ,gCAAgC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,yCAAyC;IACzC,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,sCAAsC,WAAW,oBAAoB,MAAM,EAAE,CAAC,CAAC;QACzF,GAAG,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtB,gBAAgB;IAChB,GAAG,CAAC,IAAI,CAAC,WAAW,QAAQ,mBAAmB,MAAM,CAAC,eAAe,CAAC,MAAM,aAAa,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAC1C,MAAM,CAAC,eAAe,EACtB,QAA4B,EAC5B,OAAO,CACR,CAAC;IAEF,GAAG,CAAC,OAAO,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS;IACT,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACxD,GAAG,CAAC,SAAS,CAAC,YAAY,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEvC,8BAA8B;IAC9B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,OAAO,CAAC,UAAU,WAAW,GAAG,CAAC,CAAC;IAEtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,0CAA0C,OAAO,gBAAgB,OAAO,GAAG,CAAC,CAAC;IACtF,GAAG,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type AgentReportQuestion } from '../lib/agent-report.js';
|
|
2
|
+
export interface ReportOptions {
|
|
3
|
+
status: string;
|
|
4
|
+
summary: string;
|
|
5
|
+
assumption?: string[];
|
|
6
|
+
question?: string[];
|
|
7
|
+
plan?: string;
|
|
8
|
+
planFile?: string;
|
|
9
|
+
file?: string;
|
|
10
|
+
}
|
|
11
|
+
/** "Which layout? | Table; List" → { question, options }. */
|
|
12
|
+
export declare function parseQuestionArg(arg: string): AgentReportQuestion;
|
|
13
|
+
export declare function runReport(opts: ReportOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoD,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEpH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAKjE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiClE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseQuestionArg = parseQuestionArg;
|
|
37
|
+
exports.runReport = runReport;
|
|
38
|
+
/**
|
|
39
|
+
* foundry report — how an agent that cannot produce structured output tells
|
|
40
|
+
* Foundry what happened. Validates, then writes the report file that
|
|
41
|
+
* `foundry action` reads when the agent exits. Exits non-zero with a precise
|
|
42
|
+
* message on invalid input so the agent can correct itself and retry.
|
|
43
|
+
*
|
|
44
|
+
* foundry report --status done --summary "Added the Spanish greeting." \
|
|
45
|
+
* --assumption "Placed it after the English line."
|
|
46
|
+
*
|
|
47
|
+
* foundry report --status needs_input --summary "Two layouts are possible." \
|
|
48
|
+
* --question "Which layout? | Table; List"
|
|
49
|
+
*/
|
|
50
|
+
const fs = __importStar(require("node:fs"));
|
|
51
|
+
const agent_report_js_1 = require("../lib/agent-report.js");
|
|
52
|
+
/** "Which layout? | Table; List" → { question, options }. */
|
|
53
|
+
function parseQuestionArg(arg) {
|
|
54
|
+
const bar = arg.indexOf(' | ');
|
|
55
|
+
if (bar === -1)
|
|
56
|
+
return { question: arg.trim() };
|
|
57
|
+
const options = arg.slice(bar + 3).split(';').map(o => o.trim()).filter(Boolean).map(label => ({ label }));
|
|
58
|
+
return { question: arg.slice(0, bar).trim(), ...(options.length > 0 ? { options } : {}) };
|
|
59
|
+
}
|
|
60
|
+
async function runReport(opts) {
|
|
61
|
+
const file = opts.file ?? process.env[agent_report_js_1.REPORT_FILE_ENV];
|
|
62
|
+
if (!file) {
|
|
63
|
+
console.error(`foundry report: no destination. Pass --file or set ${agent_report_js_1.REPORT_FILE_ENV}.`);
|
|
64
|
+
process.exit(2);
|
|
65
|
+
}
|
|
66
|
+
let plan = opts.plan;
|
|
67
|
+
if (opts.planFile) {
|
|
68
|
+
try {
|
|
69
|
+
plan = fs.readFileSync(opts.planFile, 'utf-8');
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
console.error(`foundry report: cannot read --plan-file: ${err.message}`);
|
|
73
|
+
process.exit(2);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const candidate = {
|
|
77
|
+
status: opts.status,
|
|
78
|
+
summary: opts.summary,
|
|
79
|
+
...(opts.assumption && opts.assumption.length > 0 ? { assumptions: opts.assumption } : {}),
|
|
80
|
+
...(opts.question && opts.question.length > 0 ? { questions: opts.question.map(parseQuestionArg) } : {}),
|
|
81
|
+
...(plan ? { plan } : {}),
|
|
82
|
+
};
|
|
83
|
+
const result = (0, agent_report_js_1.validateReport)(candidate);
|
|
84
|
+
if (!result.ok) {
|
|
85
|
+
console.error(`foundry report: ${result.error}`);
|
|
86
|
+
process.exit(2);
|
|
87
|
+
}
|
|
88
|
+
(0, agent_report_js_1.writeReportFile)(file, result.report);
|
|
89
|
+
console.log(`Report recorded: ${result.report.status}`);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"AAoBA,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFzF"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runReset = runReset;
|
|
37
|
+
/**
|
|
38
|
+
* foundry reset <issue> — undo everything Foundry created for a task on GitHub
|
|
39
|
+
* and clear its state label. `@foundry go` starts it again.
|
|
40
|
+
*
|
|
41
|
+
* Works from any checkout with no local state: the task is rebuilt from the
|
|
42
|
+
* issue itself (claim comment, state label, PR, preview comment). Order is
|
|
43
|
+
* preview → PR → remote branch → label, so a failure part-way leaves the
|
|
44
|
+
* issue in a state a human can read.
|
|
45
|
+
*
|
|
46
|
+
* Dry-run by default; pass --force to execute.
|
|
47
|
+
*/
|
|
48
|
+
const config_js_1 = require("../config.js");
|
|
49
|
+
const github = __importStar(require("../lib/github.js"));
|
|
50
|
+
const git = __importStar(require("../lib/git.js"));
|
|
51
|
+
const preview = __importStar(require("../lib/preview.js"));
|
|
52
|
+
const state = __importStar(require("../lib/state.js"));
|
|
53
|
+
const task_recovery_js_1 = require("../lib/task-recovery.js");
|
|
54
|
+
const labels_js_1 = require("../lib/labels.js");
|
|
55
|
+
const log = __importStar(require("../lib/log.js"));
|
|
56
|
+
async function runReset(issueArg, opts) {
|
|
57
|
+
const config = (0, config_js_1.loadConfigSafe)();
|
|
58
|
+
if (!config) {
|
|
59
|
+
log.error('No .joynt-foundry.yml found. Run from the repo root.');
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const issue = parseInt(issueArg, 10);
|
|
63
|
+
if (isNaN(issue)) {
|
|
64
|
+
log.error(`Invalid issue number: ${issueArg}`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const repoDir = (0, config_js_1.getConfigDir)();
|
|
68
|
+
const task = state.getTask(config.repo, issue) ?? await (0, task_recovery_js_1.recoverTask)(config, repoDir, issue);
|
|
69
|
+
if (!task) {
|
|
70
|
+
log.error(`#${issue} has never been claimed by Foundry (no claim comment). Nothing to reset.`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const dryRun = !opts.force;
|
|
74
|
+
const act = (msg) => log.info(`${dryRun ? '[dry-run] ' : ''}${msg}`);
|
|
75
|
+
log.info(`${dryRun ? 'Dry-run reset' : 'Resetting'} #${issue}: ${task.title} (${task.status})`);
|
|
76
|
+
// 1. Preview
|
|
77
|
+
if (task.preview_url) {
|
|
78
|
+
act(`Tear down preview: ${task.preview_url}`);
|
|
79
|
+
if (!dryRun) {
|
|
80
|
+
try {
|
|
81
|
+
await preview.previewDown(config, task);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
log.warn(`Preview teardown failed: ${err.message}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// 2. Pull request
|
|
89
|
+
let prRef = task.pr_number ?? task.pr_url;
|
|
90
|
+
if (prRef) {
|
|
91
|
+
let open = false;
|
|
92
|
+
try {
|
|
93
|
+
const pr = await github.getPRStatus(config.repo, task.branch);
|
|
94
|
+
open = !!pr && /^open$/i.test(pr.state);
|
|
95
|
+
}
|
|
96
|
+
catch { }
|
|
97
|
+
if (open) {
|
|
98
|
+
act(`Close PR ${typeof prRef === 'number' ? '#' + prRef : prRef}`);
|
|
99
|
+
if (!dryRun) {
|
|
100
|
+
try {
|
|
101
|
+
await github.closePR(config.repo, prRef);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
log.warn(`Close PR failed: ${err.message}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
log.info(' PR: none open');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// 3. Remote branch
|
|
113
|
+
try {
|
|
114
|
+
git.fetchAll(repoDir);
|
|
115
|
+
}
|
|
116
|
+
catch { }
|
|
117
|
+
if (git.remoteBranchExists(task.branch, repoDir)) {
|
|
118
|
+
act(`Delete remote branch origin/${task.branch}`);
|
|
119
|
+
if (!dryRun) {
|
|
120
|
+
try {
|
|
121
|
+
git.deleteRemoteBranch(task.branch, repoDir);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
log.warn(`Delete branch failed: ${err.message}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
log.info(` remote branch origin/${task.branch}: not found`);
|
|
130
|
+
}
|
|
131
|
+
// 4. Label
|
|
132
|
+
act('Clear the state label');
|
|
133
|
+
if (!dryRun)
|
|
134
|
+
await (0, labels_js_1.setStateLabel)(config, issue, null);
|
|
135
|
+
// 5. Local state, if this checkout had any
|
|
136
|
+
if (!dryRun)
|
|
137
|
+
state.removeTask(config.repo, issue);
|
|
138
|
+
// 6. Leave a trace on the issue
|
|
139
|
+
if (!dryRun) {
|
|
140
|
+
try {
|
|
141
|
+
await github.addComment(config.repo, issue, [
|
|
142
|
+
'**Foundry reset**',
|
|
143
|
+
'',
|
|
144
|
+
'Branch, PR, and preview removed. Comment `@foundry go` to start it again from scratch.',
|
|
145
|
+
].join('\n'));
|
|
146
|
+
}
|
|
147
|
+
catch { }
|
|
148
|
+
}
|
|
149
|
+
log.info('');
|
|
150
|
+
if (dryRun)
|
|
151
|
+
log.info('No changes made. Run with --force to execute.');
|
|
152
|
+
else
|
|
153
|
+
log.success(`Reset complete for #${issue}.`);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAYA,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runReview = runReview;
|
|
37
|
+
/**
|
|
38
|
+
* foundry review <pr|url> — the approve-button flow, from a checkout.
|
|
39
|
+
*
|
|
40
|
+
* Same code as the pr_approved event under the Action: rebase onto the base,
|
|
41
|
+
* wait for checks, merge with the rebase method, run integration_rebuild.
|
|
42
|
+
*/
|
|
43
|
+
const config_js_1 = require("../config.js");
|
|
44
|
+
const github = __importStar(require("../lib/github.js"));
|
|
45
|
+
const log = __importStar(require("../lib/log.js"));
|
|
46
|
+
const branches_js_1 = require("../lib/branches.js");
|
|
47
|
+
const review_js_1 = require("../lib/review.js");
|
|
48
|
+
async function runReview(target) {
|
|
49
|
+
const config = (0, config_js_1.loadConfig)();
|
|
50
|
+
const repoDir = (0, config_js_1.getConfigDir)();
|
|
51
|
+
const m = String(target).match(/(\d+)\/?$/);
|
|
52
|
+
if (!m) {
|
|
53
|
+
log.error(`Cannot parse target: ${target}`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const pr = parseInt(m[1], 10);
|
|
57
|
+
let branch;
|
|
58
|
+
try {
|
|
59
|
+
branch = await github.getPRBranch(config.repo, pr);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
log.error(`Failed to get PR #${pr}: ${err.message}`);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const outcome = await (0, review_js_1.reviewAndMerge)(config, repoDir, { pr_number: pr, branch, base: (0, branches_js_1.integrationBranch)(config) });
|
|
66
|
+
if (!outcome.merged) {
|
|
67
|
+
log.error(`PR #${pr} not merged: ${outcome.reason} (${outcome.detail})`);
|
|
68
|
+
process.exitCode = 1;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
log.success(`Review complete for PR #${pr}.`);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,8BA0BC;AAtCD;;;;;GAKG;AACH,4CAAwD;AACxD,yDAA2C;AAC3C,mDAAqC;AACrC,oDAAuD;AACvD,gDAAkD;AAE3C,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,wBAAY,GAAE,CAAC;IAE/B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9B,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAc,EAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,+BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
interface AppManifest {
|
|
2
|
+
name: string;
|
|
3
|
+
url: string;
|
|
4
|
+
hook_attributes: {
|
|
5
|
+
url: string;
|
|
6
|
+
active: boolean;
|
|
7
|
+
};
|
|
8
|
+
redirect_url: string;
|
|
9
|
+
public: boolean;
|
|
10
|
+
default_permissions: Record<string, string>;
|
|
11
|
+
default_events: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Build the GitHub App manifest JSON.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildManifest(name: string, redirectUrl: string, serverUrl?: string): AppManifest;
|
|
17
|
+
/**
|
|
18
|
+
* Detect repo slug (owner/repo) from git remote origin URL.
|
|
19
|
+
* Works without any GitHub auth — just reads the local git config.
|
|
20
|
+
* Supports SSH (git@github.com:owner/repo.git) and HTTPS (https://github.com/owner/repo.git).
|
|
21
|
+
*/
|
|
22
|
+
export declare function repoSlugFromRemote(): string | null;
|
|
23
|
+
interface SetupBotOptions {
|
|
24
|
+
serverUrl?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Main setup-bot flow.
|
|
28
|
+
*/
|
|
29
|
+
export declare function runSetupBot(opts?: SetupBotOptions): Promise<void>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=setup-bot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-bot.d.ts","sourceRoot":"","sources":["../../src/commands/setup-bot.ts"],"names":[],"mappings":"AAoBA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAmBhG;AAwKD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAmBlD;AAED,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuM3E"}
|