@open-everywhere/provider-github 0.8.0 → 0.9.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.
Files changed (49) hide show
  1. package/agent/app-manifest.ts +39 -17
  2. package/agent/channels/github-catch-up.ts +9 -4
  3. package/agent/channels/github-credentials.ts +41 -0
  4. package/agent/channels/github-engagement.ts +1 -1
  5. package/agent/channels/github-event-reach.ts +9 -4
  6. package/agent/channels/github-post-arm.ts +15 -12
  7. package/agent/channels/github-reaction-feedback.ts +2 -2
  8. package/agent/channels/github.ts +58 -14
  9. package/agent/docs-generated.ts +42 -23
  10. package/agent/memory/memory.ts +13 -12
  11. package/agent/ops.ts +9 -6
  12. package/dist/agent/app-manifest.d.ts +16 -3
  13. package/dist/agent/app-manifest.d.ts.map +1 -1
  14. package/dist/agent/app-manifest.js +32 -17
  15. package/dist/agent/app-manifest.js.map +1 -1
  16. package/dist/agent/channels/github-catch-up.d.ts.map +1 -1
  17. package/dist/agent/channels/github-catch-up.js +9 -5
  18. package/dist/agent/channels/github-catch-up.js.map +1 -1
  19. package/dist/agent/channels/github-credentials.d.ts +10 -0
  20. package/dist/agent/channels/github-credentials.d.ts.map +1 -0
  21. package/dist/agent/channels/github-credentials.js +40 -0
  22. package/dist/agent/channels/github-credentials.js.map +1 -0
  23. package/dist/agent/channels/github-engagement.d.ts +1 -1
  24. package/dist/agent/channels/github-engagement.js +1 -1
  25. package/dist/agent/channels/github-event-reach.d.ts +3 -2
  26. package/dist/agent/channels/github-event-reach.d.ts.map +1 -1
  27. package/dist/agent/channels/github-event-reach.js +8 -4
  28. package/dist/agent/channels/github-event-reach.js.map +1 -1
  29. package/dist/agent/channels/github-post-arm.d.ts.map +1 -1
  30. package/dist/agent/channels/github-post-arm.js +15 -14
  31. package/dist/agent/channels/github-post-arm.js.map +1 -1
  32. package/dist/agent/channels/github-reaction-feedback.d.ts +1 -1
  33. package/dist/agent/channels/github-reaction-feedback.js +2 -2
  34. package/dist/agent/channels/github-reaction-feedback.js.map +1 -1
  35. package/dist/agent/channels/github.d.ts +33 -0
  36. package/dist/agent/channels/github.d.ts.map +1 -1
  37. package/dist/agent/channels/github.js +57 -13
  38. package/dist/agent/channels/github.js.map +1 -1
  39. package/dist/agent/docs-generated.d.ts.map +1 -1
  40. package/dist/agent/docs-generated.js +42 -23
  41. package/dist/agent/docs-generated.js.map +1 -1
  42. package/dist/agent/memory/memory.d.ts +1 -0
  43. package/dist/agent/memory/memory.d.ts.map +1 -1
  44. package/dist/agent/memory/memory.js +12 -12
  45. package/dist/agent/memory/memory.js.map +1 -1
  46. package/dist/agent/ops.d.ts.map +1 -1
  47. package/dist/agent/ops.js +9 -6
  48. package/dist/agent/ops.js.map +1 -1
  49. package/package.json +6 -2
@@ -39,16 +39,16 @@ import {
39
39
  getGitHubApp,
40
40
  MEMORY_WRITE_PERMISSIONS,
41
41
  warmCredential,
42
+ getSettings,
42
43
  } from "@open-everywhere/core/agent/adapter-api.js";
43
44
 
44
- const DEFAULT_BRANCH = process.env.OE_MEMORY_GIT_BRANCH || "main";
45
-
46
45
  export interface GitHubMemoryDeps {
47
46
  readonly contents: GitHubContents;
48
47
  /** Mint a scoped contents:write token for one "owner/repo". */
49
48
  mintToken(repo: string): Promise<string>;
50
49
  /** The bot commit identity (open-everywhere[bot]). */
51
50
  committer(): CommitId;
51
+ /** The branch to read and commit. Absent ⇒ the `memory.gitBranch` setting, read per call (OPE-2650: was `OE_MEMORY_GIT_BRANCH`). */
52
52
  readonly branch?: string;
53
53
  }
54
54
 
@@ -66,17 +66,18 @@ function repoPath(silo: MemorySilo, p: Partition, tier: Tier): string {
66
66
  }
67
67
 
68
68
  export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
69
- const branch = deps.branch ?? DEFAULT_BRANCH;
69
+ // Per call, not at construction: a deployment's `memory.gitBranch` then reaches every read and write.
70
+ const branchOf = (): string => deps.branch ?? getSettings().memory.gitBranch;
70
71
 
71
72
  async function read(p: Partition, tier: Tier, siloArg?: MemorySilo): Promise<MemoryFiles> {
72
73
  const silo = requireSilo(siloArg);
73
74
  const repo = silo.container!;
74
75
  const dir = repoPath(silo, p, tier);
75
76
  const token = await deps.mintToken(repo);
76
- const shas = await deps.contents.listFiles(repo, dir, branch, token, makeSelector(normalizeSelection(silo)));
77
+ const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
77
78
  const out: MemoryFiles = {};
78
79
  for (const rel of Object.keys(shas)) {
79
- const file = await deps.contents.getFile(repo, `${dir}/${rel}`, branch, token);
80
+ const file = await deps.contents.getFile(repo, `${dir}/${rel}`, branchOf(), token);
80
81
  if (file) out[rel] = file.content;
81
82
  }
82
83
  return out;
@@ -92,10 +93,10 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
92
93
  let changed = false;
93
94
  for (const [rel, content] of Object.entries(files)) {
94
95
  const path = `${dir}/${rel}`;
95
- const existing = await deps.contents.getFile(repo, path, branch, token);
96
+ const existing = await deps.contents.getFile(repo, path, branchOf(), token);
96
97
  if (existing && existing.content === content) continue; // unchanged → skip (no-op)
97
98
  changed = true;
98
- last = await deps.contents.putFile(repo, path, content, message, branch, token, committer, existing?.sha);
99
+ last = await deps.contents.putFile(repo, path, content, message, branchOf(), token, committer, existing?.sha);
99
100
  }
100
101
  return changed ? last : null; // null when nothing changed (matches the provider contract)
101
102
  }
@@ -119,7 +120,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
119
120
  const repo = silo.container!;
120
121
  const dir = repoPath(silo, p, tier);
121
122
  const token = await deps.mintToken(repo);
122
- const shas = await deps.contents.listFiles(repo, dir, branch, token, makeSelector(normalizeSelection(silo)));
123
+ const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
123
124
  const entries = Object.entries(shas).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
124
125
  if (entries.length === 0) return null;
125
126
  const h = createHash("sha1");
@@ -140,7 +141,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
140
141
  const repo = silo.container!;
141
142
  const path = `${repoPath(silo, p, tier)}/${relPath}`;
142
143
  const token = await deps.mintToken(repo);
143
- const existing = await deps.contents.getFile(repo, path, branch, token);
144
+ const existing = await deps.contents.getFile(repo, path, branchOf(), token);
144
145
  if (!existing) return null; // already absent — idempotent, matches writeTier's "nothing changed"
145
146
  const committer = deps.committer();
146
147
  // Any failure here (permission, network, a stale sha — the file changed between
@@ -149,7 +150,7 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
149
150
  // propagates to the caller uncaught — control/writes.ts's memory_delete_file
150
151
  // catches it, surfaces a structured error, AND audits the failed attempt. Never a
151
152
  // silent no-op reporting `deleted: true` while the file survives.
152
- return deps.contents.deleteFile(repo, path, existing.sha, `delete ${relPath} from ${tier.kind} memory`, branch, token, committer);
153
+ return deps.contents.deleteFile(repo, path, existing.sha, `delete ${relPath} from ${tier.kind} memory`, branchOf(), token, committer);
153
154
  },
154
155
  deleteTier: async (p, tier, siloArg) => {
155
156
  const silo = requireSilo(siloArg);
@@ -157,9 +158,9 @@ export function makeGitHubProvider(deps: GitHubMemoryDeps): MemoryProvider {
157
158
  const dir = repoPath(silo, p, tier);
158
159
  const token = await deps.mintToken(repo);
159
160
  const committer = deps.committer();
160
- const shas = await deps.contents.listFiles(repo, dir, branch, token, makeSelector(normalizeSelection(silo)));
161
+ const shas = await deps.contents.listFiles(repo, dir, branchOf(), token, makeSelector(normalizeSelection(silo)));
161
162
  for (const [rel, sha] of Object.entries(shas)) {
162
- await deps.contents.deleteFile(repo, `${dir}/${rel}`, sha, `delete ${tier.kind} memory`, branch, token, committer);
163
+ await deps.contents.deleteFile(repo, `${dir}/${rel}`, sha, `delete ${tier.kind} memory`, branchOf(), token, committer);
163
164
  }
164
165
  },
165
166
  };
package/agent/ops.ts CHANGED
@@ -4,19 +4,22 @@
4
4
  // no agent boot) can register it without pulling the whole channel graph — the same split slack
5
5
  // and teams use.
6
6
  //
7
- // This file (not core) owns the credential-probe use of OE_GITHUB_APP_ID. The env var itself
8
- // stays known to core too (packages/core/agent/scm/config.ts) — the SCM subsystem is a SEPARATE
9
- // concern that stays in core by doctrine (see register.ts's header) — so this is not a
10
- // zero-residue fingerprint, only the telemetry probe's own home.
7
+ // This file (not core) owns the credential-probe use of the `github.appId` setting (was the
8
+ // OE_GITHUB_APP_ID env var until OPE-2650). The setting stays known to core too
9
+ // (packages/core/agent/scm/config.ts) — the SCM subsystem is a SEPARATE concern that stays in core by
10
+ // doctrine (see register.ts's header) — so this is not a zero-residue fingerprint, only the telemetry
11
+ // probe's own home.
11
12
  //
12
13
  // ONE-CLICK APP CREATION (OPE-2529): it also registers the GitHub App manifest flow, which the
13
14
  // `surface_app_create` ops tool drives. The manifest and the code exchange live in app-manifest.ts.
14
15
 
15
- import { registerSurfaceAppCreateFlow, registerSurfaceCredentialProbe } from "@open-everywhere/core/agent/adapter-api-ops.js";
16
+ import { getSettings, registerOperatorSecretNames, registerSurfaceAppCreateFlow, registerSurfaceCredentialProbe } from "@open-everywhere/core/agent/adapter-api-ops.js";
16
17
  import { GITHUB_APP_CREATE_FLOW } from "./app-manifest.js";
17
18
 
18
19
  /** Register the github ops-plane arms (telemetry presence probe, one-click App creation). */
19
20
  export function registerGithubOps(): void {
20
- registerSurfaceCredentialProbe("github", () => Boolean(process.env.OE_GITHUB_APP_ID));
21
+ registerSurfaceCredentialProbe("github", () => getSettings().github.appId !== "");
21
22
  registerSurfaceAppCreateFlow("github", GITHUB_APP_CREATE_FLOW);
23
+ // The webhook secret is an operator secret (OPE-2650); core registers the App key itself.
24
+ registerOperatorSecretNames(["GITHUB_WEBHOOK_SECRET"]);
22
25
  }
@@ -20,11 +20,24 @@ export declare function githubAppManifest(opts: {
20
20
  readonly redirectUrl: string;
21
21
  readonly appName?: string;
22
22
  }): Record<string, unknown>;
23
- /** The env names a created App fills, for each shape. The OE_ set is the source-control plane; the
24
- * bare set is the conversational surface (docs/deploy/surfaces/github.md). One App serves both. */
23
+ /** The env names a created App fills, for each shape — its SECRETS only. The OE_ key is the
24
+ * source-control plane's; the bare key is the conversational surface's (docs/deploy/surfaces/github.md).
25
+ * One App serves both. Which App it is (id, slug, client id, bot user id) is the `github.*` settings
26
+ * since OPE-2650, so no id is an env name here: see {@link githubAppSettings}. */
25
27
  export declare function githubAppEnvNames(variant: GithubAppVariant): string[];
28
+ /** The PUBLIC settings a created App fills, setting path → value (OPE-2650). The source-control plane and
29
+ * the conversation surface read the one `github.appId`/`github.appSlug`. `github.conversation` arms the
30
+ * conversation surface, so it is `true` for the `full` App only: a `source-control` App subscribes to no
31
+ * comment event and must start no conversation. */
32
+ export declare function githubAppSettings(app: {
33
+ readonly variant: GithubAppVariant;
34
+ readonly id: string;
35
+ readonly slug: string;
36
+ readonly clientId: string;
37
+ readonly botUserId?: string;
38
+ }): Record<string, string | boolean>;
26
39
  /**
27
- * Turn the redirect's code into this deployment's env. One POST to GitHub's conversion endpoint
40
+ * Turn the redirect's code into this deployment's env and settings. One POST to GitHub's conversion endpoint
28
41
  * (it needs no credential: the code is the proof, and it is single-use and lives one hour), then a
29
42
  * public read of the App's bot user for the commit e-mail. That second read is fail-soft: without
30
43
  * it the plane falls back to the App id (docs/capabilities/source-control.md).
@@ -1 +1 @@
1
- {"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY7D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAazD,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAMnE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAG/F;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB1B;AAED;oGACoG;AACpG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAGrE;AAcD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;CAChC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyClC;AAID,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,EAAE,oBAyBpC,CAAC;AAIF,sGAAsG;AACtG,wBAAgB,2BAA2B,IAAI,MAAM,CAqBpD"}
1
+ {"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,iCAAiC;AACjC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY7D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAazD,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAMnE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAG/F;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB1B;AAED;;;mFAGmF;AACnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAIrE;AAED;;;oDAGoD;AACpD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAQnC;AAcD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;CAChC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuClC;AAID,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,EAAE,oBA0BpC,CAAC;AAIF,sGAAsG;AACtG,wBAAgB,2BAA2B,IAAI,MAAM,CAqBpD"}
@@ -84,16 +84,32 @@ export function githubAppManifest(opts) {
84
84
  default_events: githubAppEvents(opts.variant),
85
85
  };
86
86
  }
87
- /** The env names a created App fills, for each shape. The OE_ set is the source-control plane; the
88
- * bare set is the conversational surface (docs/deploy/surfaces/github.md). One App serves both. */
87
+ /** The env names a created App fills, for each shape — its SECRETS only. The OE_ key is the
88
+ * source-control plane's; the bare key is the conversational surface's (docs/deploy/surfaces/github.md).
89
+ * One App serves both. Which App it is (id, slug, client id, bot user id) is the `github.*` settings
90
+ * since OPE-2650, so no id is an env name here: see {@link githubAppSettings}. */
89
91
  export function githubAppEnvNames(variant) {
90
- const scm = ["OE_GITHUB_APP_ID", "OE_GITHUB_APP_SLUG", "OE_GITHUB_APP_PRIVATE_KEY", "OE_GITHUB_APP_CLIENT_ID", "OE_GITHUB_BOT_USER_ID", "GITHUB_WEBHOOK_SECRET"];
91
- return variant === "full" ? [...scm, "GITHUB_APP_ID", "GITHUB_APP_SLUG", "GITHUB_APP_PRIVATE_KEY"] : scm;
92
+ // ONE private-key name for both variants (OPE-2650 folded OE_GITHUB_APP_PRIVATE_KEY into it): the key
93
+ // and the webhook secret are operator secrets, so `secret_set` moves them from .env.local into the store.
94
+ return ["GITHUB_APP_PRIVATE_KEY", "GITHUB_WEBHOOK_SECRET"];
95
+ }
96
+ /** The PUBLIC settings a created App fills, setting path → value (OPE-2650). The source-control plane and
97
+ * the conversation surface read the one `github.appId`/`github.appSlug`. `github.conversation` arms the
98
+ * conversation surface, so it is `true` for the `full` App only: a `source-control` App subscribes to no
99
+ * comment event and must start no conversation. */
100
+ export function githubAppSettings(app) {
101
+ return {
102
+ "github.appId": app.id,
103
+ "github.appSlug": app.slug,
104
+ "github.appClientId": app.clientId,
105
+ ...(app.botUserId === undefined ? {} : { "github.botUserId": app.botUserId }),
106
+ "github.conversation": app.variant === "full",
107
+ };
92
108
  }
93
109
  const API = "https://api.github.com";
94
110
  const HEADERS = { accept: "application/vnd.github+json", "x-github-api-version": "2022-11-28" };
95
111
  /**
96
- * Turn the redirect's code into this deployment's env. One POST to GitHub's conversion endpoint
112
+ * Turn the redirect's code into this deployment's env and settings. One POST to GitHub's conversion endpoint
97
113
  * (it needs no credential: the code is the proof, and it is single-use and lives one hour), then a
98
114
  * public read of the App's bot user for the commit e-mail. That second read is fail-soft: without
99
115
  * it the plane falls back to the App id (docs/capabilities/source-control.md).
@@ -123,27 +139,25 @@ export async function exchangeGithubManifestCode(opts) {
123
139
  if (missing.length > 0)
124
140
  throw new Error(`GitHub's reply lacked ${missing.join(", ")}`);
125
141
  const env = {
126
- OE_GITHUB_APP_ID: id,
127
- OE_GITHUB_APP_SLUG: slug,
128
- OE_GITHUB_APP_PRIVATE_KEY: pem,
129
- OE_GITHUB_APP_CLIENT_ID: clientId,
142
+ GITHUB_APP_PRIVATE_KEY: pem,
130
143
  GITHUB_WEBHOOK_SECRET: webhookSecret,
131
144
  };
132
- if (opts.variant === "full") {
133
- env.GITHUB_APP_ID = id;
134
- env.GITHUB_APP_SLUG = slug;
135
- env.GITHUB_APP_PRIVATE_KEY = pem;
136
- }
145
+ let botUserId;
137
146
  try {
138
147
  const bot = await opts.fetchFn(`${API}/users/${encodeURIComponent(`${slug}[bot]`)}`, { headers: HEADERS });
139
148
  const botId = bot.ok ? str((await bot.json()).id) : undefined;
140
149
  if (botId !== undefined && /^\d+$/.test(botId))
141
- env.OE_GITHUB_BOT_USER_ID = botId;
150
+ botUserId = botId;
142
151
  }
143
152
  catch {
144
153
  // Fail-soft, see above.
145
154
  }
146
- return { env, appName: str(body.name) ?? slug, installUrl: `https://github.com/apps/${encodeURIComponent(slug)}/installations/new` };
155
+ return {
156
+ env,
157
+ settings: githubAppSettings({ variant: opts.variant, id: id, slug: slug, clientId: clientId, ...(botUserId === undefined ? {} : { botUserId }) }),
158
+ appName: str(body.name) ?? slug,
159
+ installUrl: `https://github.com/apps/${encodeURIComponent(slug)}/installations/new`,
160
+ };
147
161
  }
148
162
  const isVariant = (v) => GITHUB_APP_VARIANTS.some((x) => x.name === v);
149
163
  /** The flow core's `surface_app_create` drives. */
@@ -165,7 +179,8 @@ export const GITHUB_APP_CREATE_FLOW = {
165
179
  // App's one `installation` delivery. Before the redeploy it does not hold the App's webhook secret, so
166
180
  // it refuses that delivery with a 401 and never learns the installation.
167
181
  after: [
168
- "Push each written name to the deployment's environment, piped from .env.local and never printed (the setup skill's deployment-env step), then redeploy.",
182
+ "Commit the returned settings to agent/settings/settings.ts as `github: { appId, appSlug, appClientId, botUserId, conversation }` (public values, safe in Git). Keep any other github key the file already sets.",
183
+ "Store each written name in the deployment's credential store: call the ops tool secret_set with names [\"GITHUB_APP_PRIVATE_KEY\", \"GITHUB_WEBHOOK_SECRET\"] (they are operator secrets, OPE-2650), then redeploy with the settings change.",
169
184
  "Only after that redeploy, install the app on the repositories the agent works in: open the install link. Installing first sends the app's installation delivery to a deployment that does not hold the new webhook secret yet, and it refuses that delivery.",
170
185
  "Optional: on the app's settings page, under Display information, upload the project mark as its logo. The manifest has no logo field.",
171
186
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../agent/app-manifest.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,+DAA+D;AAC/D,kGAAkG;AAClG,EAAE;AACF,iGAAiG;AACjG,wCAAwC;AACxC,oFAAoF;AACpF,iGAAiG;AACjG,mGAAmG;AACnG,+FAA+F;AAC/F,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,mGAAmG;AACnG,EAAE;AACF,+FAA+F;AAE/F,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GAIlB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,iCAAiC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,eAAe;IAC7B,mBAAmB,EAAE,eAAe;IACpC,2BAA2B,EAAE,eAAe;IAC5C,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;CACxB,CAAC;AAKF,MAAM,mBAAmB,GAA6E;IACpG;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wJAAwJ;KAClK;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,sHAAsH;KAChI;CACF,CAAC;AAEF,+FAA+F;AAC/F,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,IAAI,OAAO,KAAK,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,sBAAsB,CAAC,MAAM;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,OAAyB;IAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9G,OAAO,gBAAgB,CAAC,CAAC,qBAAqB,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,IAKjC;IACC,wFAAwF;IACxF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;QACxC,GAAG,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE;QAC3B,WAAW,EAAE,GAAG,IAAI,4DAA4D;QAChF,4FAA4F;QAC5F,qFAAqF;QACrF,eAAe,EAAE,EAAE,GAAG,EAAE,WAAW,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACpF,YAAY,EAAE,IAAI,CAAC,WAAW;QAC9B,+FAA+F;QAC/F,MAAM,EAAE,KAAK;QACb,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;mFAGmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,OAAyB;IACzD,sGAAsG;IACtG,0GAA0G;IAC1G,OAAO,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;AAC7D,CAAC;AAED;;;oDAGoD;AACpD,MAAM,UAAU,iBAAiB,CAAC,GAMjC;IACC,OAAO;QACL,cAAc,EAAE,GAAG,CAAC,EAAE;QACtB,gBAAgB,EAAE,GAAG,CAAC,IAAI;QAC1B,oBAAoB,EAAE,GAAG,CAAC,QAAQ;QAClC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;QAC7E,qBAAqB,EAAE,GAAG,CAAC,OAAO,KAAK,MAAM;KAC9C,CAAC;AACJ,CAAC;AAWD,MAAM,GAAG,GAAG,wBAAwB,CAAC;AACrC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAIhD;IACC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,kBAAkB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1I,8FAA8F;IAC9F,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,MAAM,+CAA+C,CAAC,CAAC;IACzH,8FAA8F;IAC9F,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAe,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxI,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SAClG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,GAAG,GAA2B;QAClC,sBAAsB,EAAE,GAAI;QAC5B,qBAAqB,EAAE,aAAc;KACtC,CAAC;IACF,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,kBAAkB,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS,GAAG,KAAK,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAG,EAAE,IAAI,EAAE,IAAK,EAAE,QAAQ,EAAE,QAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACpJ,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAK;QAChC,UAAU,EAAE,2BAA2B,kBAAkB,CAAC,IAAK,CAAC,oBAAoB;KACrF,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAyB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAEtG,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,mBAAmB;IAC/B,6EAA6E;IAC7E,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CACtB,qDAAqD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uCAAuC;IACzH,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAC9B,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,8CAA8C,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC3E,CAAC,CAAC,oCAAoC,kBAAkB,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,CAAC,KAAK,CAAC,EAAE;IAC1H,aAAa,EAAE,UAAU;IACzB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CACpD,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzI,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/E,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC;IAChH,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IACvI,sGAAsG;IACtG,uGAAuG;IACvG,yEAAyE;IACzE,KAAK,EAAE;QACL,iNAAiN;QACjN,8OAA8O;QAC9O,8PAA8P;QAC9P,uIAAuI;KACxI;CACF,CAAC;AAEF,mGAAmG;AAEnG,sGAAsG;AACtG,MAAM,UAAU,2BAA2B;IACzC,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAE,GAA0C,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;aACtF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5J,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5G,CAAC,CAAC,CAAC;IACH,OAAO;QACL,kDAAkD;QAClD,2BAA2B;QAC3B,GAAG,IAAI;QACP,EAAE;QACF,2BAA2B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8HAA8H;KAClM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-catch-up.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"AAuBA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAkDpD,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;4FACwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D;gGAC4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,GAAE,iBAA4B,GACjC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAiBvC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,gBAAwG,CAAC"}
1
+ {"version":3,"file":"github-catch-up.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,4CAA4C,CAAC;AAkDpD,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;4FACwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D;gGAC4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAcD,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,GAAE,iBAA4B,GACjC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAiBvC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,gBAAwG,CAAC"}
@@ -20,7 +20,7 @@
20
20
  //
21
21
  // An unparseable container yields `[]`. A credential/transport/read error propagates to core's
22
22
  // shared seatCatchUp boundary, which keeps the wake alive and records `failed` (OPE-1842).
23
- import { catchUpSender, resolveSurfaceReadToken, } from "@open-everywhere/core/agent/adapter-api.js";
23
+ import { catchUpSender, getSettings, resolveSurfaceReadToken, } from "@open-everywhere/core/agent/adapter-api.js";
24
24
  import { getJson, liveGithubReadFetch, parseGithubContainer } from "./github-read.js";
25
25
  const API_BASE = "https://api.github.com";
26
26
  /** GitHub's page ceiling for the comments endpoint. ONE page: the catch-up window is "since the seat
@@ -61,12 +61,16 @@ function normalizeComment(c, selfLogin) {
61
61
  text,
62
62
  };
63
63
  }
64
+ // The GitHub App's comment author is `<app-slug>[bot]`; the deployment states its own slug in the
65
+ // `github.appSlug` setting (OPE-2650), and an unset one degrades to "our posts look like a bot's",
66
+ // which the admission policy still admits under `wide`. A getter, so each read sees the registered
67
+ // settings rather than the value at module load.
64
68
  const liveDeps = {
65
69
  fetchFn: liveGithubReadFetch,
66
- // The GitHub App's comment author is `<app-slug>[bot]`; the deployment states its own slug, and an
67
- // unset one degrades to "our posts look like a bot's", which the admission policy still admits
68
- // under `wide`.
69
- selfLogin: process.env.GITHUB_APP_SLUG ? `${process.env.GITHUB_APP_SLUG}[bot]` : undefined,
70
+ get selfLogin() {
71
+ const slug = getSettings().github.appSlug;
72
+ return slug ? `${slug}[bot]` : undefined;
73
+ },
70
74
  };
71
75
  /** The fetch, with its seams exposed so the contract test drives it with no network. */
72
76
  export async function fetchGitHubCatchUpWindow(req, deps = liveDeps) {
@@ -1 +1 @@
1
- {"version":3,"file":"github-catch-up.js","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-catch-up.js","sourceRoot":"","sources":["../../../agent/channels/github-catch-up.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** The webhook signing secret, or `undefined` when this deployment holds none (a fault reads as none,
2
+ * logged once — the route then fails closed). */
3
+ export declare function githubWebhookSecret(): Promise<string | undefined>;
4
+ /** The `credentials` block both `githubChannel(...)` instances carry. Each arm throws eve's OWN message
5
+ * when nothing resolves, byte for byte. */
6
+ export declare const githubEveCredentials: {
7
+ readonly privateKey: () => Promise<string>;
8
+ readonly webhookSecret: () => Promise<string>;
9
+ };
10
+ //# sourceMappingURL=github-credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-credentials.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-credentials.ts"],"names":[],"mappings":"AAqBA;kDACkD;AAClD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEvE;AAED;4CAC4C;AAC5C,eAAO,MAAM,oBAAoB;aAC/B,UAAU,QAAY,OAAO,CAAC,MAAM,CAAC;aAKrC,aAAa,QAAY,OAAO,CAAC,MAAM,CAAC;CAKhC,CAAC"}
@@ -0,0 +1,40 @@
1
+ // WHERE THE GITHUB BUNDLE'S SECRETS COME FROM (OPE-2650) — the App's private key and the webhook
2
+ // signing secret.
3
+ //
4
+ // Both are OPERATOR SECRETS: `oe secret set GITHUB_APP_PRIVATE_KEY`, `oe secret set
5
+ // GITHUB_WEBHOOK_SECRET`. Core reads them: the db credential store first, the env var of the same name
6
+ // as its warned on-ramp, each store lookup remembered for thirty seconds. The private key has ONE name
7
+ // for the scm plane and this bundle (core's `githubAppPrivateKey`); OPE-2650 folded the
8
+ // OE_GITHUB_APP_PRIVATE_KEY spelling into it.
9
+ //
10
+ // 🔴 EVE MUST BE HANDED BOTH. eve's `githubChannel` resolves `credentials.privateKey` and
11
+ // `credentials.webhookSecret`, and with neither it reads the GITHUB_APP_PRIVATE_KEY and
12
+ // GITHUB_WEBHOOK_SECRET env vars itself, so it would never see a stored value: the native route would
13
+ // 401 every delivery on a deployment that holds the secrets in the store only.
14
+ // {@link githubEveCredentials} is that hand-over. Functions, not values: the read is async, and a value
15
+ // read at module load would pin whatever was true at boot.
16
+ import { githubAppPrivateKey, operatorSecretOrUnset } from "@open-everywhere/core/agent/adapter-api.js";
17
+ /** The operator secret holding the webhook HMAC secret. */
18
+ const GITHUB_WEBHOOK_SECRET_NAME = "GITHUB_WEBHOOK_SECRET";
19
+ /** The webhook signing secret, or `undefined` when this deployment holds none (a fault reads as none,
20
+ * logged once — the route then fails closed). */
21
+ export async function githubWebhookSecret() {
22
+ return await operatorSecretOrUnset(GITHUB_WEBHOOK_SECRET_NAME);
23
+ }
24
+ /** The `credentials` block both `githubChannel(...)` instances carry. Each arm throws eve's OWN message
25
+ * when nothing resolves, byte for byte. */
26
+ export const githubEveCredentials = {
27
+ privateKey: async () => {
28
+ const key = await githubAppPrivateKey();
29
+ if (!key)
30
+ throw new Error("githubChannel: GITHUB_APP_PRIVATE_KEY is required.");
31
+ return key;
32
+ },
33
+ webhookSecret: async () => {
34
+ const secret = await githubWebhookSecret();
35
+ if (!secret)
36
+ throw new Error("githubChannel: GITHUB_WEBHOOK_SECRET is required.");
37
+ return secret;
38
+ },
39
+ };
40
+ //# sourceMappingURL=github-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-credentials.js","sourceRoot":"","sources":["../../../agent/channels/github-credentials.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,kBAAkB;AAClB,EAAE;AACF,oFAAoF;AACpF,uGAAuG;AACvG,uGAAuG;AACvG,wFAAwF;AACxF,8CAA8C;AAC9C,EAAE;AACF,0FAA0F;AAC1F,wFAAwF;AACxF,sGAAsG;AACtG,+EAA+E;AAC/E,wGAAwG;AACxG,2DAA2D;AAE3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAExG,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAE3D;kDACkD;AAClD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,MAAM,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;AACjE,CAAC;AAED;4CAC4C;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,KAAK,IAAqB,EAAE;QACtC,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAChF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,aAAa,EAAE,KAAK,IAAqB,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;CACO,CAAC"}
@@ -144,7 +144,7 @@ export declare function markGitHubEngaged(f: GitHubSeamFacts, commentId: string
144
144
  * Is this comment MACHINE-AUTHORED — a GitHub App, a bot account, or this deployment's own reply?
145
145
  *
146
146
  * 🔴 ONE PREDICATE, AND IT MUST FAIL CLOSED ON AN UNRESOLVED SLUG. `githubBotMentioned` needs the
147
- * app slug to recognise a mention at all, so before this seam a deployment with no `GITHUB_APP_SLUG`
147
+ * app slug to recognise a mention at all, so before this seam a deployment with no `github.appSlug`
148
148
  * simply never woke natively. A plain comment now reaches the seam, and without the slug the app
149
149
  * cannot tell its OWN reply from a person's — so "unknown" answers `true` and nothing is delivered,
150
150
  * the same posture `classifyGitHubAmbientComment` takes with its own no-slug drop.
@@ -222,7 +222,7 @@ async function liveMarkEngageSeen(org, key, atIso) {
222
222
  * Is this comment MACHINE-AUTHORED — a GitHub App, a bot account, or this deployment's own reply?
223
223
  *
224
224
  * 🔴 ONE PREDICATE, AND IT MUST FAIL CLOSED ON AN UNRESOLVED SLUG. `githubBotMentioned` needs the
225
- * app slug to recognise a mention at all, so before this seam a deployment with no `GITHUB_APP_SLUG`
225
+ * app slug to recognise a mention at all, so before this seam a deployment with no `github.appSlug`
226
226
  * simply never woke natively. A plain comment now reaches the seam, and without the slug the app
227
227
  * cannot tell its OWN reply from a person's — so "unknown" answers `true` and nothing is delivered,
228
228
  * the same posture `classifyGitHubAmbientComment` takes with its own no-slug drop.
@@ -1,3 +1,4 @@
1
- /** True when the native GitHub route can admit a delivery into the routine fan-out. */
2
- export declare function githubEventsReach(env?: NodeJS.ProcessEnv): boolean;
1
+ /** True when the native GitHub route can admit a delivery into the routine fan-out. `secret` is a test
2
+ * seam; the live default is the gate's own read. */
3
+ export declare function githubEventsReach(secret?: () => Promise<string | undefined>): Promise<boolean>;
3
4
  //# sourceMappingURL=github-event-reach.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-event-reach.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAUA,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAG/E"}
1
+ {"version":3,"file":"github-event-reach.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAcA;qDACqD;AACrD,wBAAsB,iBAAiB,CAAC,MAAM,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzH"}
@@ -5,10 +5,14 @@
5
5
  // into the routine fan-out only through `gateGithubDelivery`: with `GITHUB_WEBHOOK_SECRET` set, or with the
6
6
  // dev-only `webhooks.allowUnverifiedGithub` hatch on. With neither, it 401s every delivery and no GitHub
7
7
  // routine can fire. This probe asks the same two questions the gate asks, and reads the secret's PRESENCE only.
8
+ // The secret is an operator secret since OPE-2650, so the presence read is async and asks the store
9
+ // first, the env var as its on-ramp — the same read the gate makes.
8
10
  import { getSettings } from "@open-everywhere/core/agent/adapter-api.js";
9
- /** True when the native GitHub route can admit a delivery into the routine fan-out. */
10
- export function githubEventsReach(env = process.env) {
11
- const secret = env.GITHUB_WEBHOOK_SECRET;
12
- return (secret !== undefined && secret.length > 0) || getSettings().webhooks.allowUnverifiedGithub;
11
+ import { githubWebhookSecret } from "./github-credentials.js";
12
+ /** True when the native GitHub route can admit a delivery into the routine fan-out. `secret` is a test
13
+ * seam; the live default is the gate's own read. */
14
+ export async function githubEventsReach(secret = githubWebhookSecret) {
15
+ const value = await secret();
16
+ return (value !== undefined && value.length > 0) || getSettings().webhooks.allowUnverifiedGithub;
13
17
  }
14
18
  //# sourceMappingURL=github-event-reach.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-event-reach.js","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,EAAE;AACF,2GAA2G;AAC3G,6GAA6G;AAC7G,4GAA4G;AAC5G,yGAAyG;AACzG,gHAAgH;AAEhH,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IACpE,MAAM,MAAM,GAAG,GAAG,CAAC,qBAAqB,CAAC;IACzC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"github-event-reach.js","sourceRoot":"","sources":["../../../agent/channels/github-event-reach.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,EAAE;AACF,2GAA2G;AAC3G,6GAA6G;AAC7G,4GAA4G;AAC5G,yGAAyG;AACzG,gHAAgH;AAEhH,oGAAoG;AACpG,oEAAoE;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;qDACqD;AACrD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAM,GAAsC,mBAAmB;IACrG,MAAM,KAAK,GAAG,MAAM,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-post-arm.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"AAiBA,OAAO,EAYL,KAAK,qBAAqB,EAE1B,KAAK,OAAO,EAIZ,KAAK,iBAAiB,EAEvB,MAAM,4CAA4C,CAAC;AAGpD,KAAK,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAiEvE,6DAA6D;AAC7D,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAaD;qFACqF;AACrF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhF;AA0DD,0BAA0B;AAC1B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtF;oDACoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;CAC1H;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,EACD,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAED;;;;;mCAKmC;AACnC;6DAC6D;AAC7D,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxF;AAiBD;;;;;iGAKiG;AACjG;mEACmE;AACnE,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7G;AAmDD,eAAO,MAAM,aAAa,EAAE,OA4C3B,CAAC"}
1
+ {"version":3,"file":"github-post-arm.d.ts","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"AAiBA,OAAO,EAcL,KAAK,qBAAqB,EAE1B,KAAK,OAAO,EAIZ,KAAK,iBAAiB,EAEvB,MAAM,4CAA4C,CAAC;AAGpD,KAAK,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAiEvE,6DAA6D;AAC7D,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAcD;qFACqF;AACrF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhF;AA0DD,0BAA0B;AAC1B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtF;oDACoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;CAC1H;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,EACD,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAED;;;;;mCAKmC;AACnC;6DAC6D;AAC7D,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BxF;AAiBD;;;;;iGAKiG;AACjG;mEACmE;AACnE,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7G;AAmDD,eAAO,MAAM,aAAa,EAAE,OA4C3B,CAAC"}
@@ -14,7 +14,7 @@
14
14
  // The SCM plane (mint/config) STAYS in core by doctrine (the single SCM implementation) — this arm
15
15
  // reaches its App-token minting + config through the adapter-api barrel, alongside the post-arm /
16
16
  // wake-origin / unified-reply contracts. See docs/extending/provider-bundles.md.
17
- import { parsePrivateKey, signAppJwt, mintInstallationToken, CONVERSATION_WRITE_PERMISSIONS, loadGitHubAppConfig, githubAuthMode, resolveGitHubInstallationId, warmCredential, markNotApplied, withRetryAfter, friendlyGitHubComment, } from "@open-everywhere/core/agent/adapter-api.js";
17
+ import { parsePrivateKey, signAppJwt, mintInstallationToken, CONVERSATION_WRITE_PERMISSIONS, loadGitHubAppConfig, githubAppPrivateKey, githubAuthMode, getSettings, resolveGitHubInstallationId, warmCredential, markNotApplied, withRetryAfter, friendlyGitHubComment, } from "@open-everywhere/core/agent/adapter-api.js";
18
18
  import { markGitHubConversationPosted } from "./github-reaction-scope.js";
19
19
  /**
20
20
  * One minted token per (installation, repo), held warm by the SHARED seam (core
@@ -69,17 +69,18 @@ const installationToken = warmCredential({
69
69
  export function _resetGitHubInstallationTokenCache() {
70
70
  installationToken.reset();
71
71
  }
72
- /** GitHub App credentials for the unified reply arm: the scm plane's env pair preferred, the eve
73
- * channel's pair as fallback (same App in a normal deploy — two spellings, one identity). */
74
- function githubAppCreds() {
72
+ /** GitHub App credentials for the unified reply arm. The App id is the `github.appId` setting (the scm
73
+ * plane's client id preferred as the JWT issuer when set), and the private key has ONE home since
74
+ * OPE-2650: the operator secret GITHUB_APP_PRIVATE_KEY, for both the scm plane and this surface. */
75
+ async function githubAppCreds() {
75
76
  const scm = loadGitHubAppConfig();
76
- if (scm)
77
- return { appId: scm.clientId ?? scm.appId, privateKeyPem: scm.privateKeyPem, installations: scm.installations };
78
- const appId = process.env.GITHUB_APP_ID;
79
- const privateKeyPem = process.env.GITHUB_APP_PRIVATE_KEY;
80
- if (!appId || !privateKeyPem)
77
+ const appId = scm ? (scm.clientId ?? scm.appId) : getSettings().github.appId;
78
+ if (!appId)
81
79
  return null;
82
- return { appId, privateKeyPem, installations: {} };
80
+ const privateKeyPem = await githubAppPrivateKey();
81
+ if (!privateKeyPem)
82
+ return null;
83
+ return { appId, privateKeyPem, installations: scm?.installations ?? {} };
83
84
  }
84
85
  /** Exported for the reaction-feedback poll (channels/github-reaction-feedback.ts, OPE-1502), which
85
86
  * reads under the same App identity every other GitHub call in this bundle uses. */
@@ -89,18 +90,18 @@ export async function installationTokenFor(origin) {
89
90
  if (githubAuthMode() === "token") {
90
91
  throw markNotApplied(new Error("reply couldn't post to GitHub — this deployment signs in with a personal access token, and the GitHub conversation surface needs the GitHub App."));
91
92
  }
92
- const creds = githubAppCreds();
93
+ const creds = await githubAppCreds();
93
94
  if (!creds) {
94
95
  // DEFINITIVE (OPE-825): no App credentials ⇒ no request ever left this host.
95
- throw markNotApplied(new Error("reply couldn't post to GitHub — no App credentials (set OE_GITHUB_APP_* or GITHUB_APP_ID/GITHUB_APP_PRIVATE_KEY)."));
96
+ throw markNotApplied(new Error("reply couldn't post to GitHub — no App credentials (set the github.appId setting, and store the operator secret GITHUB_APP_PRIVATE_KEY)."));
96
97
  }
97
98
  // The wake's own (webhook-supplied) installation id first; then the SCM plane's composed map —
98
- // OE_GITHUB_INSTALLATIONS authoritative, `installation`-webhook-discovered installs augmenting it
99
+ // the `github.installations` setting authoritative, `installation`-webhook-discovered installs augmenting it
99
100
  // (scm/installations.ts), so an org that self-installed resolves without an env edit.
100
101
  const installationId = origin.installationId !== undefined ? String(origin.installationId) : await resolveGitHubInstallationId(origin.owner, creds.installations);
101
102
  if (!installationId) {
102
103
  // DEFINITIVE (OPE-825): unresolved before any comment request is built — nothing left this host.
103
- throw markNotApplied(new Error(`reply couldn't post to GitHub — no installation id for owner "${origin.owner}" (the wake carried none, OE_GITHUB_INSTALLATIONS has no entry, and no installation webhook has registered one).`));
104
+ throw markNotApplied(new Error(`reply couldn't post to GitHub — no installation id for owner "${origin.owner}" (the wake carried none, the github.installations setting has no entry, and no installation webhook has registered one).`));
104
105
  }
105
106
  // Key by (installation, repo): the minted token is scoped to exactly [origin.repo], so a sibling
106
107
  // repo under the same installation needs its OWN token.
@@ -1 +1 @@
1
- {"version":3,"file":"github-post-arm.js","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-post-arm.js","sourceRoot":"","sources":["../../../agent/channels/github-post-arm.ts"],"names":[],"mappings":"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"}