@opengeni/api-router 2.8.1-canary.0 → 2.10.0-canary.1

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 (63) hide show
  1. package/dist/access-grant-rls.d.ts +3 -0
  2. package/dist/app.js +1 -1
  3. package/dist/auth/organization-user-setup.d.ts +23 -0
  4. package/dist/{chunk-HHKQMVY7.js → chunk-3VUEFGWS.js} +7191 -4431
  5. package/dist/chunk-3VUEFGWS.js.map +1 -0
  6. package/dist/codemode.d.ts +9 -0
  7. package/dist/http/request-source.d.ts +14 -0
  8. package/dist/index.js +6 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/integrations/oauth-client.d.ts +2 -11
  11. package/dist/integrations/slack-interactions.d.ts +1 -1
  12. package/dist/mcp/command-read.d.ts +24 -0
  13. package/dist/mcp/server.d.ts +160 -1
  14. package/dist/mcp/session-event-view.d.ts +86 -0
  15. package/dist/mcp/session-view.d.ts +56 -2
  16. package/dist/mcp/session-wait.d.ts +1 -1
  17. package/dist/mcp-oauth.d.ts +19 -0
  18. package/dist/routes/codex.d.ts +19 -1
  19. package/dist/routes/workspace-artifacts.d.ts +2 -1
  20. package/dist/sandbox/channel-a.d.ts +2 -0
  21. package/dist/sandbox/rematerialize.d.ts +2 -0
  22. package/dist/sandbox/viewer.d.ts +2 -0
  23. package/dist/session-event-view-MU3HMNV3.js +264 -0
  24. package/dist/session-event-view-MU3HMNV3.js.map +1 -0
  25. package/dist/site-uploads.d.ts +41 -0
  26. package/dist/work-discovery-observability.d.ts +1 -1
  27. package/dist/workspace-artifact-content.d.ts +28 -0
  28. package/dist/workspace-artifact-provenance.d.ts +7 -0
  29. package/dist/workspace-tool-gateway-observability.d.ts +17 -0
  30. package/dist/workspace-tool-gateway.d.ts +118 -0
  31. package/package.json +19 -18
  32. package/src/access-grant-rls.ts +40 -0
  33. package/src/app.ts +260 -44
  34. package/src/auth/organization-user-setup.ts +92 -2
  35. package/src/codemode.ts +85 -4
  36. package/src/http/auth.ts +11 -0
  37. package/src/http/request-source.ts +37 -0
  38. package/src/index.ts +5 -1
  39. package/src/integrations/oauth-client.ts +218 -209
  40. package/src/mcp/command-read.ts +109 -0
  41. package/src/mcp/server.ts +635 -144
  42. package/src/mcp/session-event-view.ts +336 -0
  43. package/src/mcp/session-view.ts +20 -1
  44. package/src/mcp/session-wait.ts +4 -1
  45. package/src/mcp-oauth.ts +539 -0
  46. package/src/routes/codex.ts +106 -41
  47. package/src/routes/documents.ts +67 -19
  48. package/src/routes/files.ts +54 -6
  49. package/src/routes/github.ts +124 -1
  50. package/src/routes/organization-memberships.ts +9 -13
  51. package/src/routes/scheduled-tasks.ts +19 -1
  52. package/src/routes/sessions.ts +215 -20
  53. package/src/routes/workspace-artifacts.ts +251 -71
  54. package/src/sandbox/channel-a.ts +22 -4
  55. package/src/sandbox/rematerialize.ts +46 -3
  56. package/src/sandbox/viewer.ts +3 -0
  57. package/src/site-uploads.ts +202 -0
  58. package/src/work-discovery-observability.ts +3 -3
  59. package/src/workspace-artifact-content.ts +144 -0
  60. package/src/workspace-artifact-provenance.ts +104 -0
  61. package/src/workspace-tool-gateway-observability.ts +100 -0
  62. package/src/workspace-tool-gateway.ts +691 -0
  63. package/dist/chunk-HHKQMVY7.js.map +0 -1
@@ -1,5 +1,8 @@
1
1
  import { type AccessGrant, type AttemptToolCatalog, type CodemodeCallSubmission as CodemodeCallSubmissionValue, type CodemodeOperation } from "@opengeni/contracts";
2
2
  import type { ApiRouteDeps } from "@opengeni/core";
3
+ /** Reuse normal REST handlers, including their resource/command authorization.
4
+ * The exact attempt is checked before issuing this internal-only credential. */
5
+ export declare function codemodeSessionRequest(deps: ApiRouteDeps, grant: AccessGrant, request: Request, path: string): Promise<Request>;
3
6
  export type CodemodeGrantAuthority = {
4
7
  accountId: string;
5
8
  workspaceId: string;
@@ -19,6 +22,10 @@ export declare class CodemodeCatalogNotReadyError extends Error {
19
22
  readonly code = "codemode_catalog_not_ready";
20
23
  constructor();
21
24
  }
25
+ export declare class CodemodeCatalogStaleError extends Error {
26
+ readonly code = "codemode_catalog_stale";
27
+ constructor();
28
+ }
22
29
  export declare function codemodeAuthorityForGrant(grant: AccessGrant): CodemodeGrantAuthority | null;
23
30
  export declare function isCodemodeGrant(grant: AccessGrant): boolean;
24
31
  export declare function requireMatchingCodemodeCatalog(authority: CodemodeGrantAuthority, catalog: AttemptToolCatalog | null): AttemptToolCatalog;
@@ -27,4 +34,6 @@ export declare function requireActiveCodemodeCatalog(deps: ApiRouteDeps, grant:
27
34
  catalog: AttemptToolCatalog;
28
35
  }>;
29
36
  export declare function submitAndDispatchCodemodeCall(deps: ApiRouteDeps, grant: AccessGrant, rawRequest: unknown): Promise<CodemodeCallSubmissionValue>;
37
+ export declare function codemodeOperationNeedsDispatch(operation: CodemodeOperation): boolean;
30
38
  export declare function readCodemodeOperation(deps: ApiRouteDeps, grant: AccessGrant, operationId: string): Promise<CodemodeOperation | null>;
39
+ export declare function refreshAdmittedCodemodeOperation(admitted: CodemodeOperation, read: () => Promise<CodemodeOperation | null>): Promise<CodemodeOperation>;
@@ -0,0 +1,14 @@
1
+ import type { Context } from "hono";
2
+ declare const TRANSPORT_PEER_ADDRESS_BINDING = "opengeniTransportPeerAddress";
3
+ type ApiRequestBindings = {
4
+ [TRANSPORT_PEER_ADDRESS_BINDING]?: string | null;
5
+ };
6
+ export declare function apiRequestBindingsForTransportPeer(address: string | null | undefined): ApiRequestBindings;
7
+ /**
8
+ * Resolve a quota/audit source from the server-owned transport peer. Forwarded
9
+ * values are considered only when the operator declares an exact trusted proxy
10
+ * hop count; the chain is then walked from the server side so caller-prepended
11
+ * values cannot replace the address inserted by the trusted edge.
12
+ */
13
+ export declare function trustedRequestSourceAddress(c: Context, trustedProxyHops: number): string;
14
+ export {};
package/dist/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  InteractionFrameProxyTransport,
3
3
  SlackBotProviderError,
4
+ apiRequestBindingsForTransportPeer,
4
5
  cleanupScheduledTaskConnectorAuthorization,
5
6
  createAppComposition,
6
7
  createOpenGeniSlackBotInteractionClient,
7
8
  startSlackInteractionPump,
8
9
  startTemporalScheduleCleanupPump
9
- } from "./chunk-HHKQMVY7.js";
10
+ } from "./chunk-3VUEFGWS.js";
10
11
 
11
12
  // src/index.ts
12
13
  import {
@@ -2998,7 +2999,10 @@ async function startApi(options = {}) {
2998
2999
  if (artifactWebSockets.handles(request)) {
2999
3000
  return artifactWebSockets.upgrade(request, bunServer);
3000
3001
  }
3001
- return app.fetch(request);
3002
+ return app.fetch(
3003
+ request,
3004
+ apiRequestBindingsForTransportPeer(bunServer.requestIP(request)?.address)
3005
+ );
3002
3006
  },
3003
3007
  websocket: {
3004
3008
  maxPayloadLength: EDITABLE_ARTIFACT_LIVE_WEBSOCKET_MAX_MESSAGE_BYTES,