@joynt/foundry 0.0.0-stage → 0.1.51

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.
Files changed (216) hide show
  1. package/dist/backends/command.d.ts +37 -0
  2. package/dist/backends/command.d.ts.map +1 -0
  3. package/dist/backends/command.js +79 -0
  4. package/dist/backends/command.js.map +1 -0
  5. package/dist/backends/index.d.ts +9 -0
  6. package/dist/backends/index.d.ts.map +1 -0
  7. package/dist/backends/index.js +37 -0
  8. package/dist/backends/index.js.map +1 -0
  9. package/dist/cli.d.ts +3 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +191 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/commands/action.d.ts +6 -0
  14. package/dist/commands/action.d.ts.map +1 -0
  15. package/dist/commands/action.js +171 -0
  16. package/dist/commands/action.js.map +1 -0
  17. package/dist/commands/cancelled.d.ts +5 -0
  18. package/dist/commands/cancelled.d.ts.map +1 -0
  19. package/dist/commands/cancelled.js +107 -0
  20. package/dist/commands/cancelled.js.map +1 -0
  21. package/dist/commands/init.d.ts +5 -0
  22. package/dist/commands/init.d.ts.map +1 -0
  23. package/dist/commands/init.js +323 -0
  24. package/dist/commands/init.js.map +1 -0
  25. package/dist/commands/preview.d.ts +4 -0
  26. package/dist/commands/preview.d.ts.map +1 -0
  27. package/dist/commands/preview.js +108 -0
  28. package/dist/commands/preview.js.map +1 -0
  29. package/dist/commands/release.d.ts +2 -0
  30. package/dist/commands/release.d.ts.map +1 -0
  31. package/dist/commands/release.js +89 -0
  32. package/dist/commands/release.js.map +1 -0
  33. package/dist/commands/report.d.ts +14 -0
  34. package/dist/commands/report.d.ts.map +1 -0
  35. package/dist/commands/report.js +91 -0
  36. package/dist/commands/report.js.map +1 -0
  37. package/dist/commands/reset.d.ts +4 -0
  38. package/dist/commands/reset.d.ts.map +1 -0
  39. package/dist/commands/reset.js +155 -0
  40. package/dist/commands/reset.js.map +1 -0
  41. package/dist/commands/review.d.ts +2 -0
  42. package/dist/commands/review.d.ts.map +1 -0
  43. package/dist/commands/review.js +73 -0
  44. package/dist/commands/review.js.map +1 -0
  45. package/dist/commands/setup-bot.d.ts +31 -0
  46. package/dist/commands/setup-bot.d.ts.map +1 -0
  47. package/dist/commands/setup-bot.js +429 -0
  48. package/dist/commands/setup-bot.js.map +1 -0
  49. package/dist/commands/sync.d.ts +2 -0
  50. package/dist/commands/sync.d.ts.map +1 -0
  51. package/dist/commands/sync.js +77 -0
  52. package/dist/commands/sync.js.map +1 -0
  53. package/dist/config.d.ts +9 -0
  54. package/dist/config.d.ts.map +1 -0
  55. package/dist/config.js +147 -0
  56. package/dist/config.js.map +1 -0
  57. package/dist/index.d.ts +15 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +29 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/lib/agent-output.d.ts +49 -0
  62. package/dist/lib/agent-output.d.ts.map +1 -0
  63. package/dist/lib/agent-output.js +256 -0
  64. package/dist/lib/agent-output.js.map +1 -0
  65. package/dist/lib/agent-report.d.ts +107 -0
  66. package/dist/lib/agent-report.d.ts.map +1 -0
  67. package/dist/lib/agent-report.js +233 -0
  68. package/dist/lib/agent-report.js.map +1 -0
  69. package/dist/lib/authorize.d.ts +3 -0
  70. package/dist/lib/authorize.d.ts.map +1 -0
  71. package/dist/lib/authorize.js +67 -0
  72. package/dist/lib/authorize.js.map +1 -0
  73. package/dist/lib/branches.d.ts +22 -0
  74. package/dist/lib/branches.d.ts.map +1 -0
  75. package/dist/lib/branches.js +82 -0
  76. package/dist/lib/branches.js.map +1 -0
  77. package/dist/lib/claim.d.ts +22 -0
  78. package/dist/lib/claim.d.ts.map +1 -0
  79. package/dist/lib/claim.js +129 -0
  80. package/dist/lib/claim.js.map +1 -0
  81. package/dist/lib/completion.d.ts +5 -0
  82. package/dist/lib/completion.d.ts.map +1 -0
  83. package/dist/lib/completion.js +63 -0
  84. package/dist/lib/completion.js.map +1 -0
  85. package/dist/lib/deployments.d.ts +21 -0
  86. package/dist/lib/deployments.d.ts.map +1 -0
  87. package/dist/lib/deployments.js +104 -0
  88. package/dist/lib/deployments.js.map +1 -0
  89. package/dist/lib/event-handler.d.ts +74 -0
  90. package/dist/lib/event-handler.d.ts.map +1 -0
  91. package/dist/lib/event-handler.js +1002 -0
  92. package/dist/lib/event-handler.js.map +1 -0
  93. package/dist/lib/events.d.ts +72 -0
  94. package/dist/lib/events.d.ts.map +1 -0
  95. package/dist/lib/events.js +3 -0
  96. package/dist/lib/events.js.map +1 -0
  97. package/dist/lib/gh-cli-client.d.ts +46 -0
  98. package/dist/lib/gh-cli-client.d.ts.map +1 -0
  99. package/dist/lib/gh-cli-client.js +260 -0
  100. package/dist/lib/gh-cli-client.js.map +1 -0
  101. package/dist/lib/git.d.ts +42 -0
  102. package/dist/lib/git.d.ts.map +1 -0
  103. package/dist/lib/git.js +247 -0
  104. package/dist/lib/git.js.map +1 -0
  105. package/dist/lib/github-client.d.ts +98 -0
  106. package/dist/lib/github-client.d.ts.map +1 -0
  107. package/dist/lib/github-client.js +3 -0
  108. package/dist/lib/github-client.js.map +1 -0
  109. package/dist/lib/github.d.ts +82 -0
  110. package/dist/lib/github.d.ts.map +1 -0
  111. package/dist/lib/github.js +202 -0
  112. package/dist/lib/github.js.map +1 -0
  113. package/dist/lib/issue-file.d.ts +15 -0
  114. package/dist/lib/issue-file.d.ts.map +1 -0
  115. package/dist/lib/issue-file.js +84 -0
  116. package/dist/lib/issue-file.js.map +1 -0
  117. package/dist/lib/labels.d.ts +14 -0
  118. package/dist/lib/labels.d.ts.map +1 -0
  119. package/dist/lib/labels.js +70 -0
  120. package/dist/lib/labels.js.map +1 -0
  121. package/dist/lib/log.d.ts +11 -0
  122. package/dist/lib/log.d.ts.map +1 -0
  123. package/dist/lib/log.js +53 -0
  124. package/dist/lib/log.js.map +1 -0
  125. package/dist/lib/octokit-client.d.ts +112 -0
  126. package/dist/lib/octokit-client.d.ts.map +1 -0
  127. package/dist/lib/octokit-client.js +507 -0
  128. package/dist/lib/octokit-client.js.map +1 -0
  129. package/dist/lib/preview-verify.d.ts +48 -0
  130. package/dist/lib/preview-verify.d.ts.map +1 -0
  131. package/dist/lib/preview-verify.js +148 -0
  132. package/dist/lib/preview-verify.js.map +1 -0
  133. package/dist/lib/preview.d.ts +33 -0
  134. package/dist/lib/preview.d.ts.map +1 -0
  135. package/dist/lib/preview.js +308 -0
  136. package/dist/lib/preview.js.map +1 -0
  137. package/dist/lib/reconcile.d.ts +14 -0
  138. package/dist/lib/reconcile.d.ts.map +1 -0
  139. package/dist/lib/reconcile.js +114 -0
  140. package/dist/lib/reconcile.js.map +1 -0
  141. package/dist/lib/review.d.ts +38 -0
  142. package/dist/lib/review.d.ts.map +1 -0
  143. package/dist/lib/review.js +284 -0
  144. package/dist/lib/review.js.map +1 -0
  145. package/dist/lib/stale-prs.d.ts +31 -0
  146. package/dist/lib/stale-prs.d.ts.map +1 -0
  147. package/dist/lib/stale-prs.js +161 -0
  148. package/dist/lib/stale-prs.js.map +1 -0
  149. package/dist/lib/state-store.d.ts +23 -0
  150. package/dist/lib/state-store.d.ts.map +1 -0
  151. package/dist/lib/state-store.js +3 -0
  152. package/dist/lib/state-store.js.map +1 -0
  153. package/dist/lib/state.d.ts +23 -0
  154. package/dist/lib/state.d.ts.map +1 -0
  155. package/dist/lib/state.js +57 -0
  156. package/dist/lib/state.js.map +1 -0
  157. package/dist/lib/status-comment.d.ts +14 -0
  158. package/dist/lib/status-comment.d.ts.map +1 -0
  159. package/dist/lib/status-comment.js +195 -0
  160. package/dist/lib/status-comment.js.map +1 -0
  161. package/dist/lib/stores/file-store.d.ts +22 -0
  162. package/dist/lib/stores/file-store.d.ts.map +1 -0
  163. package/dist/lib/stores/file-store.js +172 -0
  164. package/dist/lib/stores/file-store.js.map +1 -0
  165. package/dist/lib/stores/index.d.ts +13 -0
  166. package/dist/lib/stores/index.d.ts.map +1 -0
  167. package/dist/lib/stores/index.js +20 -0
  168. package/dist/lib/stores/index.js.map +1 -0
  169. package/dist/lib/task-recovery.d.ts +22 -0
  170. package/dist/lib/task-recovery.d.ts.map +1 -0
  171. package/dist/lib/task-recovery.js +172 -0
  172. package/dist/lib/task-recovery.js.map +1 -0
  173. package/dist/lib/templates.d.ts +8 -0
  174. package/dist/lib/templates.d.ts.map +1 -0
  175. package/dist/lib/templates.js +58 -0
  176. package/dist/lib/templates.js.map +1 -0
  177. package/dist/lib/thread.d.ts +13 -0
  178. package/dist/lib/thread.d.ts.map +1 -0
  179. package/dist/lib/thread.js +75 -0
  180. package/dist/lib/thread.js.map +1 -0
  181. package/dist/lib/verify.d.ts +31 -0
  182. package/dist/lib/verify.d.ts.map +1 -0
  183. package/dist/lib/verify.js +90 -0
  184. package/dist/lib/verify.js.map +1 -0
  185. package/dist/lib/version.d.ts +9 -0
  186. package/dist/lib/version.d.ts.map +1 -0
  187. package/dist/lib/version.js +134 -0
  188. package/dist/lib/version.js.map +1 -0
  189. package/dist/lib/webhook.d.ts +39 -0
  190. package/dist/lib/webhook.d.ts.map +1 -0
  191. package/dist/lib/webhook.js +248 -0
  192. package/dist/lib/webhook.js.map +1 -0
  193. package/dist/lib/worker.d.ts +42 -0
  194. package/dist/lib/worker.d.ts.map +1 -0
  195. package/dist/lib/worker.js +9 -0
  196. package/dist/lib/worker.js.map +1 -0
  197. package/dist/lib/workers/index.d.ts +11 -0
  198. package/dist/lib/workers/index.d.ts.map +1 -0
  199. package/dist/lib/workers/index.js +18 -0
  200. package/dist/lib/workers/index.js.map +1 -0
  201. package/dist/lib/workers/subprocess.d.ts +8 -0
  202. package/dist/lib/workers/subprocess.d.ts.map +1 -0
  203. package/dist/lib/workers/subprocess.js +105 -0
  204. package/dist/lib/workers/subprocess.js.map +1 -0
  205. package/dist/lib/worktree.d.ts +21 -0
  206. package/dist/lib/worktree.d.ts.map +1 -0
  207. package/dist/lib/worktree.js +113 -0
  208. package/dist/lib/worktree.js.map +1 -0
  209. package/dist/types.d.ts +201 -0
  210. package/dist/types.d.ts.map +1 -0
  211. package/dist/types.js +6 -0
  212. package/dist/types.js.map +1 -0
  213. package/package.json +44 -4
  214. package/templates/foundry.yml +121 -0
  215. package/templates/vercel-preview-url.sh +61 -0
  216. 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,4 @@
1
+ export declare function runReset(issueArg: string, opts: {
2
+ force?: boolean;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=reset.d.ts.map
@@ -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,2 @@
1
+ export declare function runReview(target: string): Promise<void>;
2
+ //# sourceMappingURL=review.d.ts.map
@@ -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"}