@vibes.diy/api-svc 13.0.7 → 13.0.9

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 (68) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +2 -0
  3. package/index.js.map +1 -1
  4. package/intern/attempt-backend-fetch.d.ts +4 -0
  5. package/intern/attempt-backend-fetch.js +10 -0
  6. package/intern/attempt-backend-fetch.js.map +1 -1
  7. package/intern/attempt-backend-onchange.d.ts +4 -0
  8. package/intern/attempt-backend-onchange.js +12 -2
  9. package/intern/attempt-backend-onchange.js.map +1 -1
  10. package/intern/attempt-backend-scheduled.d.ts +4 -0
  11. package/intern/attempt-backend-scheduled.js +10 -0
  12. package/intern/attempt-backend-scheduled.js.map +1 -1
  13. package/intern/backend-do-addr.d.ts +5 -0
  14. package/intern/backend-do-addr.js +7 -0
  15. package/intern/backend-do-addr.js.map +1 -1
  16. package/intern/backend-github-callback.d.ts +11 -0
  17. package/intern/backend-github-callback.js +141 -0
  18. package/intern/backend-github-callback.js.map +1 -0
  19. package/intern/backend-github-op.d.ts +1 -0
  20. package/intern/backend-github-op.js +2 -0
  21. package/intern/backend-github-op.js.map +1 -0
  22. package/intern/backend-policy-version.d.ts +1 -1
  23. package/intern/backend-policy-version.js +1 -1
  24. package/intern/egress-platform-list.js +2 -0
  25. package/intern/egress-platform-list.js.map +1 -1
  26. package/intern/github-app-auth.d.ts +40 -0
  27. package/intern/github-app-auth.js +214 -0
  28. package/intern/github-app-auth.js.map +1 -0
  29. package/intern/write-apps.js +2 -2
  30. package/intern/write-apps.js.map +1 -1
  31. package/package.json +12 -11
  32. package/public/app-documents-head-query.d.ts +17 -0
  33. package/public/app-documents-head-query.js +38 -1
  34. package/public/app-documents-head-query.js.map +1 -1
  35. package/public/app-documents-read-eventos.js +7 -2
  36. package/public/app-documents-read-eventos.js.map +1 -1
  37. package/public/convert-image-evt.js +1 -1
  38. package/public/convert-image-evt.js.map +1 -1
  39. package/public/dm-lane.d.ts +0 -1
  40. package/public/dm-lane.js +0 -1
  41. package/public/dm-lane.js.map +1 -1
  42. package/public/dm-read-eventos.d.ts +3 -0
  43. package/public/dm-read-eventos.js +15 -6
  44. package/public/dm-read-eventos.js.map +1 -1
  45. package/public/dm-sync-eventos.js +2 -2
  46. package/public/dm-sync-eventos.js.map +1 -1
  47. package/public/dm-write-eventos.js +2 -13
  48. package/public/dm-write-eventos.js.map +1 -1
  49. package/public/email-unsubscribe.js +6 -2
  50. package/public/email-unsubscribe.js.map +1 -1
  51. package/public/ensure-user-settings.js +4 -2
  52. package/public/ensure-user-settings.js.map +1 -1
  53. package/public/github-setup.d.ts +26 -0
  54. package/public/github-setup.js +339 -0
  55. package/public/github-setup.js.map +1 -0
  56. package/public/github-webhook.d.ts +29 -0
  57. package/public/github-webhook.js +150 -0
  58. package/public/github-webhook.js.map +1 -0
  59. package/public/prompt-chat-section.js +4 -3
  60. package/public/prompt-chat-section.js.map +1 -1
  61. package/usage-report/backfill-geo-country.d.ts +1 -0
  62. package/usage-report/backfill-geo-country.js +168 -0
  63. package/usage-report/backfill-geo-country.js.map +1 -0
  64. package/usage-report/backfill-release-tailwind-util.js +2 -11
  65. package/usage-report/backfill-release-tailwind-util.js.map +1 -1
  66. package/usage-report/geo-country-normalize.d.ts +1 -0
  67. package/usage-report/geo-country-normalize.js +135 -0
  68. package/usage-report/geo-country-normalize.js.map +1 -0
package/index.d.ts CHANGED
@@ -51,6 +51,8 @@ export * from "./public/social-invite-store.js";
51
51
  export * from "./public/social-invite-flow.js";
52
52
  export * from "./public/social-invite-signup-match.js";
53
53
  export * from "./public/invite-unsubscribe.js";
54
+ export * from "./public/github-webhook.js";
55
+ export * from "./public/github-setup.js";
54
56
  export * from "./public/ensure-handle-avatar.js";
55
57
  export * from "./public/convert-image-evt.js";
56
58
  export * from "./public/access-function.js";
package/index.js CHANGED
@@ -51,6 +51,8 @@ export * from "./public/social-invite-store.js";
51
51
  export * from "./public/social-invite-flow.js";
52
52
  export * from "./public/social-invite-signup-match.js";
53
53
  export * from "./public/invite-unsubscribe.js";
54
+ export * from "./public/github-webhook.js";
55
+ export * from "./public/github-setup.js";
54
56
  export * from "./public/ensure-handle-avatar.js";
55
57
  export * from "./public/convert-image-evt.js";
56
58
  export * from "./public/access-function.js";
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
@@ -21,6 +21,10 @@ export interface AttemptBackendFetchInput {
21
21
  readonly policyVersion?: string;
22
22
  readonly logRate?: BackendLogRateWindow;
23
23
  readonly logIdLatch?: LogIdLatch;
24
+ readonly githubApp?: {
25
+ readonly appId: string;
26
+ readonly privateKeyPem: string;
27
+ };
24
28
  }
25
29
  export declare function attemptBackendFetch(vctx: VibesApiSQLCtx, input: AttemptBackendFetchInput): Promise<BackendFetchOutcome>;
26
30
  export declare const STRIPPED_BACKEND_FETCH_HEADERS: ReadonlySet<string>;
@@ -6,6 +6,7 @@ import { makeBackendDbCallback, resolveBackendWriteIdentity } from "./backend-db
6
6
  import { makeBackendAiCallback } from "./backend-ai-callback.js";
7
7
  import { makeBackendNotifyCallback } from "./backend-notify-callback.js";
8
8
  import { flushBackendLog, makeBackendLogCallback } from "./backend-log-callback.js";
9
+ import { makeBackendGithubCallback } from "./backend-github-callback.js";
9
10
  export async function attemptBackendFetch(vctx, input) {
10
11
  const rExec = exception2Result(() => selectBackendExecutor(parseBackendJsMode(input.backendJs), {
11
12
  loader: input.loader,
@@ -56,6 +57,14 @@ export async function attemptBackendFetch(vctx, input) {
56
57
  rate: input.logRate,
57
58
  idLatch: input.logIdLatch,
58
59
  });
60
+ const github = input.githubApp === undefined
61
+ ? undefined
62
+ : makeBackendGithubCallback(vctx, {
63
+ ownerHandle: input.ownerHandle,
64
+ appSlug: input.appSlug,
65
+ appId: input.githubApp.appId,
66
+ privateKeyPem: input.githubApp.privateKeyPem,
67
+ });
59
68
  const rRes = await exception2Result(async () => {
60
69
  const payload = await serializeRequest(input.request);
61
70
  return executor.invoke({
@@ -67,6 +76,7 @@ export async function attemptBackendFetch(vctx, input) {
67
76
  ai,
68
77
  notify,
69
78
  log: logLane.log,
79
+ github,
70
80
  dbFetcher: input.dbFetcher,
71
81
  });
72
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"attempt-backend-fetch.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attempt-backend-fetch.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-fetch.ts"],"names":[],"mappings":"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"}
@@ -24,5 +24,9 @@ export interface AttemptBackendOnChangeInput {
24
24
  readonly policyVersion?: string;
25
25
  readonly logRate?: BackendLogRateWindow;
26
26
  readonly logIdLatch?: LogIdLatch;
27
+ readonly githubApp?: {
28
+ readonly appId: string;
29
+ readonly privateKeyPem: string;
30
+ };
27
31
  }
28
32
  export declare function attemptBackendOnChange(vctx: VibesApiSQLCtx, input: AttemptBackendOnChangeInput): Promise<OnChangeOutcome>;
@@ -6,6 +6,7 @@ import { makeBackendDbCallback, resolveBackendWriteIdentity } from "./backend-db
6
6
  import { makeBackendAiCallback } from "./backend-ai-callback.js";
7
7
  import { makeBackendNotifyCallback } from "./backend-notify-callback.js";
8
8
  import { flushBackendLog, makeBackendLogCallback } from "./backend-log-callback.js";
9
+ import { makeBackendGithubCallback } from "./backend-github-callback.js";
9
10
  import { logBackendInvokeFailure, readIsolateErrorBody } from "./backend-invoke-failure-log.js";
10
11
  export async function attemptBackendOnChange(vctx, input) {
11
12
  const rExec = exception2Result(() => selectBackendExecutor(parseBackendJsMode(input.backendJs), {
@@ -68,13 +69,21 @@ export async function attemptBackendOnChange(vctx, input) {
68
69
  rate: input.logRate,
69
70
  idLatch: input.logIdLatch,
70
71
  });
71
- prepared = { source: loaded.source, identity, db, secrets, ai, notify, logLane };
72
+ const github = input.githubApp === undefined
73
+ ? undefined
74
+ : makeBackendGithubCallback(vctx, {
75
+ ownerHandle: input.ownerHandle,
76
+ appSlug: input.appSlug,
77
+ appId: input.githubApp.appId,
78
+ privateKeyPem: input.githubApp.privateKeyPem,
79
+ });
80
+ prepared = { source: loaded.source, identity, db, secrets, ai, notify, logLane, github };
72
81
  }
73
82
  catch (err) {
74
83
  logFailure({ stage: "prepare", err });
75
84
  return { ran: false, reason: "platform_error" };
76
85
  }
77
- const { source, identity, db, secrets, ai, notify, logLane } = prepared;
86
+ const { source, identity, db, secrets, ai, notify, logLane, github } = prepared;
78
87
  const rRes = await exception2Result(async () => executor.invoke({
79
88
  source,
80
89
  handler: "onChange",
@@ -94,6 +103,7 @@ export async function attemptBackendOnChange(vctx, input) {
94
103
  ai,
95
104
  notify,
96
105
  log: logLane.log,
106
+ github,
97
107
  dbFetcher: input.dbFetcher,
98
108
  }));
99
109
  await flushBackendLog(vctx, logLane);
@@ -1 +1 @@
1
- {"version":3,"file":"attempt-backend-onchange.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-onchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attempt-backend-onchange.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-onchange.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,9 @@ export interface AttemptBackendScheduledInput {
18
18
  readonly policyVersion?: string;
19
19
  readonly logRate?: BackendLogRateWindow;
20
20
  readonly logIdLatch?: LogIdLatch;
21
+ readonly githubApp?: {
22
+ readonly appId: string;
23
+ readonly privateKeyPem: string;
24
+ };
21
25
  }
22
26
  export declare function attemptBackendScheduled(vctx: VibesApiSQLCtx, input: AttemptBackendScheduledInput): Promise<ScheduledOutcome>;
@@ -6,6 +6,7 @@ import { makeBackendDbCallback, resolveOwnerWriteIdentity } from "./backend-db-c
6
6
  import { makeBackendAiCallback } from "./backend-ai-callback.js";
7
7
  import { makeBackendNotifyCallback } from "./backend-notify-callback.js";
8
8
  import { flushBackendLog, makeBackendLogCallback } from "./backend-log-callback.js";
9
+ import { makeBackendGithubCallback } from "./backend-github-callback.js";
9
10
  import { boundDetail, boundedErrorDetail, logBackendInvokeFailure, readIsolateErrorBody } from "./backend-invoke-failure-log.js";
10
11
  export async function attemptBackendScheduled(vctx, input) {
11
12
  const rExec = exception2Result(() => selectBackendExecutor(parseBackendJsMode(input.backendJs), {
@@ -54,6 +55,14 @@ export async function attemptBackendScheduled(vctx, input) {
54
55
  rate: input.logRate,
55
56
  idLatch: input.logIdLatch,
56
57
  });
58
+ const github = input.githubApp === undefined
59
+ ? undefined
60
+ : makeBackendGithubCallback(vctx, {
61
+ ownerHandle: input.ownerHandle,
62
+ appSlug: input.appSlug,
63
+ appId: input.githubApp.appId,
64
+ privateKeyPem: input.githubApp.privateKeyPem,
65
+ });
57
66
  const rRes = await exception2Result(async () => executor.invoke({
58
67
  source: loaded.source,
59
68
  handler: "scheduled",
@@ -63,6 +72,7 @@ export async function attemptBackendScheduled(vctx, input) {
63
72
  ai,
64
73
  notify,
65
74
  log: logLane.log,
75
+ github,
66
76
  dbFetcher: input.dbFetcher,
67
77
  }));
68
78
  await flushBackendLog(vctx, logLane);
@@ -1 +1 @@
1
- {"version":3,"file":"attempt-backend-scheduled.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-scheduled.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attempt-backend-scheduled.js","sourceRoot":"","sources":["../../jsr/intern/attempt-backend-scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAwB,MAAM,6CAA6C,CAAC;AAG9H,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAkEjI,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAoB,EACpB,KAAmC;IAEnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAgC,EAAE,CAC/D,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACzD,MAAM,EAAE,KAAK,CAAC,MAAyC;QACvD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;KACjE,CAAC,CACH,CAAC;IAGF,MAAM,UAAU,GAAG,CAAC,MAA+F,EAAQ,EAAE,CAC3H,uBAAuB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAE1H,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IAC3F,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IAC5B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE9E,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAGhE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC/C,CAAC;IAUD,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnH,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ;QACR,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAGH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAG9E,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAGH,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE;QAC7C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC;IAMH,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE;QAC3C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,WAAW;QACpB,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,KAAK,CAAC,OAAO;QACnB,OAAO,EAAE,KAAK,CAAC,UAAU;KAC1B,CAAC,CAAC;IAKH,MAAM,MAAM,GACV,KAAK,CAAC,SAAS,KAAK,SAAS;QAC3B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK;YAC5B,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa;SAC7C,CAAC,CAAC;IACT,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAC7C,QAAQ,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,EAAE;QAC3F,OAAO;QACP,EAAE;QACF,EAAE;QACF,MAAM;QACN,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CACH,CAAC;IAGF,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC;IAKD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAG3E,OAAO;YACL,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,WAAW,CAAC,WAAW,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -11,7 +11,9 @@ export declare function isControlPlaneAuthorized(secret: string | undefined, pro
11
11
  interface MutableHeaders {
12
12
  set(name: string, value: string): void;
13
13
  delete(name: string): void;
14
+ keys(): Iterable<string>;
14
15
  }
16
+ export declare const VIBES_RESERVED_HEADER_PREFIX = "x-vibes-";
15
17
  export declare function sanitizeBackendApiForwardHeaders(headers: MutableHeaders, target: {
16
18
  ownerHandle: string;
17
19
  appSlug: string;
@@ -24,6 +26,8 @@ export type BackendDoLane = {
24
26
  readonly lane: "notify-op";
25
27
  } | {
26
28
  readonly lane: "log-op";
29
+ } | {
30
+ readonly lane: "github-op";
27
31
  } | {
28
32
  readonly lane: "control-plane";
29
33
  readonly op: string;
@@ -51,6 +55,7 @@ export declare function classifyBackendDoRequest(input: {
51
55
  readonly aiOpUrl?: string;
52
56
  readonly notifyOpUrl?: string;
53
57
  readonly logOpUrl?: string;
58
+ readonly githubOpUrl?: string;
54
59
  }): BackendDoLane;
55
60
  export declare function backendDoName(ownerHandle: string, appSlug: string): string;
56
61
  export {};
@@ -12,10 +12,15 @@ export function isControlPlaneAuthorized(secret, provided) {
12
12
  return true;
13
13
  return provided === secret;
14
14
  }
15
+ export const VIBES_RESERVED_HEADER_PREFIX = "x-vibes-";
15
16
  export function sanitizeBackendApiForwardHeaders(headers, target) {
16
17
  headers.delete(BACKEND_OP_HEADER);
17
18
  headers.delete(BACKEND_INTERNAL_AUTH_HEADER);
18
19
  headers.delete(BACKEND_LOG_COUNTRY_HEADER);
20
+ for (const name of [...headers.keys()]) {
21
+ if (name.toLowerCase().startsWith(VIBES_RESERVED_HEADER_PREFIX))
22
+ headers.delete(name);
23
+ }
19
24
  headers.set(BACKEND_OWNER_HEADER, target.ownerHandle);
20
25
  headers.set(BACKEND_SLUG_HEADER, target.appSlug);
21
26
  }
@@ -28,6 +33,8 @@ export function classifyBackendDoRequest(input) {
28
33
  return { lane: "notify-op" };
29
34
  if (input.logOpUrl !== undefined && input.url === input.logOpUrl)
30
35
  return { lane: "log-op" };
36
+ if (input.githubOpUrl !== undefined && input.url === input.githubOpUrl)
37
+ return { lane: "github-op" };
31
38
  const authorized = isControlPlaneAuthorized(input.internalSecret, input.providedAuth);
32
39
  const addressed = !!input.ownerHandle && !!input.appSlug;
33
40
  if (input.op === BACKEND_OP_ARM ||
@@ -1 +1 @@
1
- {"version":3,"file":"backend-do-addr.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-addr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-do-addr.js","sourceRoot":"","sources":["../../jsr/intern/backend-do-addr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { BackendGithubCallback } from "@vibes.diy/vibe-runtime/backend-executor.js";
2
+ import { VibesApiSQLCtx } from "../types.js";
3
+ export interface BackendGithubCallbackBase {
4
+ readonly ownerHandle: string;
5
+ readonly appSlug: string;
6
+ readonly appId: string;
7
+ readonly privateKeyPem: string;
8
+ readonly fetchImpl?: typeof fetch;
9
+ readonly nowMs?: () => number;
10
+ }
11
+ export declare function makeBackendGithubCallback(vctx: VibesApiSQLCtx, base: BackendGithubCallbackBase): BackendGithubCallback;
@@ -0,0 +1,141 @@
1
+ import { and, eq } from "drizzle-orm";
2
+ import { exception2Result, TxtEnDecoderSingleton } from "@adviser/cement";
3
+ import { getInstallationToken } from "./github-app-auth.js";
4
+ const GITHUB_API = "https://api.github.com";
5
+ const USER_AGENT = "vibes.diy-github-app";
6
+ const DEFAULT_ACCEPT = "application/vnd.github+json";
7
+ const MAX_BODY_BYTES = 1024 * 1024;
8
+ const GITHUB_ORIGIN = new URL(GITHUB_API).origin;
9
+ function normalizeGithubUrl(path) {
10
+ if (path.startsWith("/") === false)
11
+ return undefined;
12
+ if (path.startsWith("//"))
13
+ return undefined;
14
+ if (path.includes("\\"))
15
+ return undefined;
16
+ let u;
17
+ try {
18
+ u = new URL(path, GITHUB_API);
19
+ }
20
+ catch {
21
+ return undefined;
22
+ }
23
+ if (u.origin !== GITHUB_ORIGIN)
24
+ return undefined;
25
+ return u;
26
+ }
27
+ const INSTALLATION_REPOSITORIES = "/installation/repositories";
28
+ function isModeledPathname(pathname) {
29
+ if (pathname === INSTALLATION_REPOSITORIES)
30
+ return true;
31
+ return pathname.startsWith("/repos/");
32
+ }
33
+ function repoOfPathname(pathname) {
34
+ const seg = pathname.split("/");
35
+ if (seg.length < 4)
36
+ return undefined;
37
+ if (seg[1] !== "repos")
38
+ return undefined;
39
+ if (seg[2] === "" || seg[3] === "")
40
+ return undefined;
41
+ return `${seg[2]}/${seg[3]}`.toLowerCase();
42
+ }
43
+ const ALLOWED_METHODS = new Set(["GET", "POST", "PATCH", "PUT", "DELETE"]);
44
+ const DENIED_REQUEST_HEADERS = new Set(["authorization", "cookie", "user-agent", "host", "content-length"]);
45
+ const SAFE_RESPONSE_HEADERS = [
46
+ "content-type",
47
+ "etag",
48
+ "last-modified",
49
+ "link",
50
+ "location",
51
+ "retry-after",
52
+ "x-github-request-id",
53
+ "x-ratelimit-limit",
54
+ "x-ratelimit-remaining",
55
+ "x-ratelimit-reset",
56
+ "x-ratelimit-used",
57
+ ];
58
+ const refuse = (reason) => ({ ok: false, reason });
59
+ function byteLength(s) {
60
+ return TxtEnDecoderSingleton().encode(s).length;
61
+ }
62
+ export function makeBackendGithubCallback(vctx, base) {
63
+ return async (op) => {
64
+ const path = typeof op?.path === "string" ? op.path : "";
65
+ const url = normalizeGithubUrl(path);
66
+ if (url === undefined || isModeledPathname(url.pathname) === false)
67
+ return refuse("unmodeled_endpoint");
68
+ const method = typeof op?.method === "string" ? op.method.toUpperCase() : "GET";
69
+ if (ALLOWED_METHODS.has(method) === false)
70
+ return refuse("unsupported_method");
71
+ const body = typeof op?.body === "string" ? op.body : undefined;
72
+ if (op?.body !== undefined && op?.body !== null && body === undefined)
73
+ return refuse("streaming_unsupported");
74
+ if (body !== undefined && byteLength(body) > MAX_BODY_BYTES)
75
+ return refuse("body_too_large");
76
+ const t = vctx.sql.tables.githubRepoRoutes;
77
+ const rows = await vctx.sql.db
78
+ .select({ installationId: t.installationId, repoFullName: t.repoFullName })
79
+ .from(t)
80
+ .where(and(eq(t.ownerHandle, base.ownerHandle), eq(t.appSlug, base.appSlug), eq(t.removedAt, "")));
81
+ if (rows.length === 0)
82
+ return refuse("not_connected");
83
+ let installationId;
84
+ if (url.pathname === INSTALLATION_REPOSITORIES) {
85
+ installationId = rows[0].installationId;
86
+ }
87
+ else {
88
+ const wanted = repoOfPathname(url.pathname);
89
+ const match = rows.find((r) => typeof r.repoFullName === "string" && r.repoFullName.toLowerCase() === wanted);
90
+ if (wanted === undefined || match === undefined)
91
+ return refuse("unmodeled_endpoint");
92
+ installationId = match.installationId;
93
+ }
94
+ const rToken = await getInstallationToken({
95
+ installationId,
96
+ appId: base.appId,
97
+ privateKeyPem: base.privateKeyPem,
98
+ nowMs: base.nowMs === undefined ? Date.now() : base.nowMs(),
99
+ fetchImpl: base.fetchImpl,
100
+ });
101
+ if (rToken.isErr())
102
+ return refuse("upstream_error");
103
+ const headers = {};
104
+ for (const [k, v] of Object.entries(op?.headers ?? {})) {
105
+ const lk = k.toLowerCase();
106
+ if (DENIED_REQUEST_HEADERS.has(lk))
107
+ continue;
108
+ if (typeof v !== "string")
109
+ continue;
110
+ headers[lk] = v;
111
+ }
112
+ if (headers["accept"] === undefined)
113
+ headers["accept"] = DEFAULT_ACCEPT;
114
+ headers["authorization"] = `Bearer ${rToken.Ok().token}`;
115
+ headers["user-agent"] = USER_AGENT;
116
+ const fetchImpl = base.fetchImpl ?? fetch.bind(globalThis);
117
+ const rRes = await exception2Result(() => fetchImpl(url.toString(), {
118
+ method,
119
+ headers,
120
+ body: method === "GET" ? undefined : body,
121
+ }));
122
+ if (rRes.isErr())
123
+ return refuse("upstream_error");
124
+ const res = rRes.Ok();
125
+ const rText = await exception2Result(() => res.text());
126
+ if (rText.isErr())
127
+ return refuse("upstream_error");
128
+ const text = rText.Ok();
129
+ if (res.status === 403 && (/permission/i.test(text) || /not accessible by integration/i.test(text))) {
130
+ return refuse("permission_not_granted");
131
+ }
132
+ const safeHeaders = {};
133
+ for (const name of SAFE_RESPONSE_HEADERS) {
134
+ const v = res.headers.get(name);
135
+ if (v !== null)
136
+ safeHeaders[name] = v;
137
+ }
138
+ return { ok: true, status: res.status, headers: safeHeaders, body: text };
139
+ };
140
+ }
141
+ //# sourceMappingURL=backend-github-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-github-callback.js","sourceRoot":"","sources":["../../jsr/intern/backend-github-callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAQ1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAIrD,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AASnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AA4BjD,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAErD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAM,CAAC;IAGX,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,CAAC,CAAC;AACX,CAAC;AAGD,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAgB/D,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,QAAQ,KAAK,yBAAyB;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAQD,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAOhG,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAOjI,MAAM,qBAAqB,GAAsB;IAC/C,cAAc;IACd,MAAM;IACN,eAAe;IACf,MAAM;IACN,UAAU;IACV,aAAa;IACb,qBAAqB;IACrB,mBAAmB;IACnB,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AAiBF,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAE7F,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AA6BD,MAAM,UAAU,yBAAyB,CAAC,IAAoB,EAAE,IAA+B;IAC7F,OAAO,KAAK,EAAE,EAAmB,EAAgC,EAAE;QACjE,MAAM,IAAI,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxG,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAChF,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAG/E,MAAM,IAAI,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,EAAE,EAAE,IAAI,KAAK,SAAS,IAAI,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9G,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc;YAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAM7F,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC3B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;aAC1E,IAAI,CAAC,CAAC,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QAWtD,IAAI,cAAsB,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,yBAAyB,EAAE,CAAC;YAI/C,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;YAC9G,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACrF,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,cAAc;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,SAAS;YACpC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAGD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;QACxE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAG3D,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM;YACN,OAAO;YACP,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SAC1C,CAAC,CACH,CAAC;QAGF,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QAOxB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACpG,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,IAAI;gBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export { BACKEND_GITHUB_OP_URL, handleBackendGithubOp } from "@vibes.diy/vibe-runtime/backend-executor.js";
@@ -0,0 +1,2 @@
1
+ export { BACKEND_GITHUB_OP_URL, handleBackendGithubOp } from "@vibes.diy/vibe-runtime/backend-executor.js";
2
+ //# sourceMappingURL=backend-github-op.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-github-op.js","sourceRoot":"","sources":["../../jsr/intern/backend-github-op.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const EGRESS_POLICY_VERSION = "e5";
1
+ export declare const EGRESS_POLICY_VERSION = "e6";
2
2
  export declare function computeBackendPolicyVersion(envBase: string | undefined): string;
@@ -1,4 +1,4 @@
1
- export const EGRESS_POLICY_VERSION = "e5";
1
+ export const EGRESS_POLICY_VERSION = "e6";
2
2
  export function computeBackendPolicyVersion(envBase) {
3
3
  return `${envBase ?? "v1"}+egress:${EGRESS_POLICY_VERSION}`;
4
4
  }
@@ -6,6 +6,8 @@ export const PLATFORM_EGRESS_LIST = [
6
6
  { host: "www.linkedin.com", pathPrefix: "/dms-uploads/", methods: ["PUT"] },
7
7
  { host: "bsky.social", path: "/xrpc/app.bsky.feed.searchPosts", methods: ["GET"] },
8
8
  { host: "bsky.social", path: "/xrpc/app.bsky.feed.getAuthorFeed", methods: ["GET"] },
9
+ { host: "web-production-fe6e.up.railway.app", path: "/analyze", methods: ["POST"] },
10
+ { host: "web-production-fe6e.up.railway.app", pathPrefix: "/analyze/", methods: ["GET"] },
9
11
  ];
10
12
  export function hostMatchesAllowEntry(host, pattern) {
11
13
  const h = host.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"egress-platform-list.js","sourceRoot":"","sources":["../../jsr/intern/egress-platform-list.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,oBAAoB,GAAmC;IAElE,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAQ1B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACpE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAiBpE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACzG,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAU3E,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;CACrF,CAAC;AASF,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,GAAQ,EACR,MAAc,EACd,IAAI,GAAmC,oBAAoB;IAE3D,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI;YAAE,SAAS;QACtE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,SAAS;QACxE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"egress-platform-list.js","sourceRoot":"","sources":["../../jsr/intern/egress-platform-list.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,oBAAoB,GAAmC;IAElE,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAQ1B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACpE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAiBpE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IACzG,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAU3E,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAiBpF,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;IAKnF,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;CAC1F,CAAC;AASF,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,GAAQ,EACR,MAAc,EACd,IAAI,GAAmC,oBAAoB;IAE3D,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI;YAAE,SAAS;QACtE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,SAAS;QACxE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { Result } from "@adviser/cement";
2
+ export declare const GITHUB_API = "https://api.github.com";
3
+ export interface MintAppJwtOpts {
4
+ readonly appId: string;
5
+ readonly privateKeyPem: string;
6
+ readonly nowMs: number;
7
+ }
8
+ export interface InstallationToken {
9
+ readonly token: string;
10
+ readonly expiresAt: string;
11
+ }
12
+ export interface GetInstallationTokenOpts {
13
+ readonly installationId: string;
14
+ readonly appId: string;
15
+ readonly privateKeyPem: string;
16
+ readonly nowMs: number;
17
+ readonly fetchImpl?: typeof fetch;
18
+ }
19
+ export interface InstallationRepo {
20
+ readonly fullName: string;
21
+ readonly accountLogin: string;
22
+ }
23
+ export interface ListInstallationReposOpts {
24
+ readonly installationId: string;
25
+ readonly token: string;
26
+ readonly fetchImpl?: typeof fetch;
27
+ }
28
+ export interface ListUserInstallationReposOpts {
29
+ readonly installationId: string;
30
+ readonly userToken: string;
31
+ readonly fetchImpl?: typeof fetch;
32
+ }
33
+ export declare function privateKeyPemToPkcs8(privateKeyPem: string): Result<Uint8Array>;
34
+ export declare function mintAppJwt(opts: MintAppJwtOpts): Promise<Result<string>>;
35
+ export declare function resetInstallationTokenCacheForTests(): void;
36
+ export declare function peekCachedInstallationToken(installationId: string, nowMs: number): InstallationToken | undefined;
37
+ export declare function getInstallationToken(opts: GetInstallationTokenOpts): Promise<Result<InstallationToken>>;
38
+ export declare function nextGithubPageUrl(linkHeader: string | null, expectedPathname: string): Result<string | undefined>;
39
+ export declare function listInstallationRepos(opts: ListInstallationReposOpts): Promise<Result<InstallationRepo[]>>;
40
+ export declare function listUserInstallationRepos(opts: ListUserInstallationReposOpts): Promise<Result<InstallationRepo[]>>;