@opengeni/api-router 0.22.2 → 0.26.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.
- package/dist/app.d.ts +2 -2
- package/dist/app.js +1 -1
- package/dist/auth/managed-auth.d.ts +0 -30
- package/dist/browser-controller-authority.d.ts +43 -0
- package/dist/browser-state-authority.d.ts +27 -0
- package/dist/{chunk-HWXJW5C7.js → chunk-JIKNR5YL.js} +27993 -14546
- package/dist/chunk-JIKNR5YL.js.map +1 -0
- package/dist/codemode.d.ts +23 -0
- package/dist/editable-artifact-live-hints.d.ts +11 -0
- package/dist/editable-artifact-native-kernel.d.ts +37 -0
- package/dist/editable-artifact-office-import.d.ts +22 -0
- package/dist/editable-artifact-production.d.ts +29 -0
- package/dist/editable-artifact-websocket.d.ts +49 -0
- package/dist/editable-artifact-workspace-files.d.ts +23 -0
- package/dist/github-browser-flow.d.ts +6 -0
- package/dist/http/cors.d.ts +1 -0
- package/dist/http/sse.d.ts +2 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1824 -30
- package/dist/index.js.map +1 -1
- package/dist/integrations/api-integrations.d.ts +24 -0
- package/dist/integrations/atlassian.d.ts +176 -0
- package/dist/integrations/github-skill-source.d.ts +5 -0
- package/dist/integrations/google-drive.d.ts +85 -0
- package/dist/integrations/oauth-client.d.ts +30 -1
- package/dist/integrations/provider-oauth.d.ts +19 -0
- package/dist/integrations/slack-bot.d.ts +4 -0
- package/dist/integrations/slack-interactions.d.ts +14 -2
- package/dist/integrations/social-api.d.ts +2 -1
- package/dist/mcp/editable-artifact-query-schema.d.ts +4 -0
- package/dist/mcp/editable-artifacts.d.ts +13 -0
- package/dist/mcp/receipts.d.ts +28 -0
- package/dist/mcp/scheduled-task-view.d.ts +518 -0
- package/dist/mcp/server.d.ts +14 -3
- package/dist/memory-slack-delivery.d.ts +9 -0
- package/dist/routes/api-integrations.d.ts +8 -0
- package/dist/routes/browser-identities.d.ts +5 -0
- package/dist/routes/browser-sessions.d.ts +6 -0
- package/dist/routes/company-profile.d.ts +3 -0
- package/dist/routes/computer-sessions.d.ts +6 -0
- package/dist/routes/editable-artifacts.d.ts +44 -0
- package/dist/routes/integration-features.d.ts +3 -0
- package/dist/routes/memory-slack-publications.d.ts +6 -0
- package/dist/routes/plugins.d.ts +8 -0
- package/dist/routes/sessions.d.ts +17 -2
- package/dist/routes/skills.d.ts +6 -0
- package/dist/routes/video-generation.d.ts +3 -0
- package/dist/sandbox/auth-callout.d.ts +2 -0
- package/dist/sandbox/channel-a.d.ts +59 -2
- package/dist/sandbox/metrics-ingestion.d.ts +6 -1
- package/dist/sandbox/viewer.d.ts +4 -2
- package/dist/temporal-schedule-cleanup.d.ts +26 -0
- package/package.json +19 -14
- package/src/app.ts +277 -41
- package/src/auth/managed-auth.ts +0 -16
- package/src/browser-controller-authority.ts +137 -0
- package/src/browser-state-authority.ts +236 -0
- package/src/codemode.ts +186 -0
- package/src/editable-artifact-live-hints.ts +64 -0
- package/src/editable-artifact-native-kernel.ts +659 -0
- package/src/editable-artifact-office-import.ts +230 -0
- package/src/editable-artifact-production.ts +419 -0
- package/src/editable-artifact-websocket.ts +311 -0
- package/src/editable-artifact-workspace-files.ts +186 -0
- package/src/github-browser-flow.ts +35 -6
- package/src/http/auth.ts +2 -0
- package/src/http/cors.ts +3 -0
- package/src/http/sse.ts +101 -6
- package/src/index.ts +147 -23
- package/src/integrations/api-integrations.ts +350 -0
- package/src/integrations/atlassian.ts +1621 -0
- package/src/integrations/github-skill-source.ts +142 -0
- package/src/integrations/google-drive.ts +1000 -64
- package/src/integrations/oauth-client.ts +159 -89
- package/src/integrations/provider-oauth.ts +777 -0
- package/src/integrations/slack-bot.ts +31 -2
- package/src/integrations/slack-interactions.ts +610 -42
- package/src/integrations/social-api.ts +11 -0
- package/src/mcp/documents.ts +74 -26
- package/src/mcp/editable-artifact-query-schema.ts +236 -0
- package/src/mcp/editable-artifacts.ts +448 -0
- package/src/mcp/receipts.ts +95 -0
- package/src/mcp/scheduled-task-view.ts +642 -0
- package/src/mcp/server.ts +1718 -310
- package/src/memory-slack-delivery.ts +209 -0
- package/src/observability.ts +3 -3
- package/src/routes/api-integrations.ts +407 -0
- package/src/routes/api-keys.ts +7 -1
- package/src/routes/browser-identities.ts +136 -0
- package/src/routes/browser-sessions.ts +2543 -0
- package/src/routes/codex.ts +7 -4
- package/src/routes/company-profile.ts +255 -0
- package/src/routes/computer-sessions.ts +1247 -0
- package/src/routes/connections.ts +358 -102
- package/src/routes/documents.ts +22 -3
- package/src/routes/editable-artifacts.ts +1159 -0
- package/src/routes/enrollments.ts +54 -12
- package/src/routes/environments.ts +60 -11
- package/src/routes/files.ts +277 -65
- package/src/routes/github.ts +18 -2
- package/src/routes/install.ts +38 -2
- package/src/routes/integration-features.ts +258 -0
- package/src/routes/machines.ts +1 -1
- package/src/routes/memory-slack-publications.ts +216 -0
- package/src/routes/packs.ts +437 -7
- package/src/routes/plugins.ts +751 -0
- package/src/routes/rigs.ts +77 -20
- package/src/routes/scheduled-tasks.ts +94 -42
- package/src/routes/sessions.ts +475 -234
- package/src/routes/skills.ts +174 -0
- package/src/routes/transcription-recordings.ts +65 -33
- package/src/routes/video-generation.ts +132 -0
- package/src/routes/workspaces.ts +46 -24
- package/src/sandbox/auth-callout.ts +16 -4
- package/src/sandbox/channel-a.ts +809 -85
- package/src/sandbox/enrollment.ts +13 -3
- package/src/sandbox/machines.ts +1 -1
- package/src/sandbox/metrics-ingestion.ts +121 -3
- package/src/sandbox/rematerialize.ts +35 -47
- package/src/sandbox/viewer.ts +58 -29
- package/src/temporal-schedule-cleanup.ts +135 -0
- package/dist/chunk-HWXJW5C7.js.map +0 -1
- package/dist/mcp/toolspace.d.ts +0 -62
- package/src/mcp/toolspace.ts +0 -1186
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type SessionAuthorizationOperation } from "@opengeni/contracts";
|
|
1
|
+
import { ClientSessionEvent, SteerSessionMessageRequest, type SessionAuthorizationOperation } from "@opengeni/contracts";
|
|
2
|
+
import { type SessionDiscoveryCursor } from "@opengeni/db";
|
|
2
3
|
import type { Context, Hono } from "hono";
|
|
3
4
|
import type { ApiRouteDeps } from "@opengeni/core";
|
|
4
|
-
import { type ViewerServices } from "../sandbox/viewer";
|
|
5
|
+
import { type ViewerServices } from "../sandbox/viewer.js";
|
|
5
6
|
type SessionRouteDeps = ApiRouteDeps & Pick<ViewerServices, "establishSandboxSession">;
|
|
6
7
|
export declare function registerSessionRoutes(app: Hono, deps: SessionRouteDeps): void;
|
|
7
8
|
/**
|
|
@@ -10,6 +11,20 @@ export declare function registerSessionRoutes(app: Hono, deps: SessionRouteDeps)
|
|
|
10
11
|
* host-managed mode; standalone deployments never consult this classifier.
|
|
11
12
|
*/
|
|
12
13
|
export declare function sessionAuthorizationOperationForHttp(method: string, pathname: string, sessionId: string): SessionAuthorizationOperation | null;
|
|
14
|
+
export type AgentTopologyCursorEnvelope = {
|
|
15
|
+
cursor: SessionDiscoveryCursor;
|
|
16
|
+
parentSessionId: string | null;
|
|
17
|
+
search: string | null;
|
|
18
|
+
};
|
|
19
|
+
export declare function encodeAgentTopologyCursor(value: AgentTopologyCursorEnvelope): string;
|
|
20
|
+
export declare function agentTopologyQuery(query: Record<string, string>): {
|
|
21
|
+
limit: number;
|
|
22
|
+
parentSessionId: string | null;
|
|
23
|
+
search: string | undefined;
|
|
24
|
+
cursor: SessionDiscoveryCursor | undefined;
|
|
25
|
+
};
|
|
13
26
|
/** Stable, value-free JSON errors for only the create-session boundary. */
|
|
14
27
|
export declare function sessionCreateErrorResponse(c: Context, error: unknown): Response;
|
|
28
|
+
export declare function parseSessionEventAdmission(raw: unknown): ClientSessionEvent;
|
|
29
|
+
export declare function parseSteerSessionAdmission(raw: unknown): SteerSessionMessageRequest;
|
|
15
30
|
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ApiRouteDeps, type GitHubSkillSourceClient } from "@opengeni/core";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
export type SkillRouteOverrides = Readonly<{
|
|
4
|
+
github?: GitHubSkillSourceClient;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function registerSkillRoutes(app: Hono, deps: ApiRouteDeps, overrides?: SkillRouteOverrides): void;
|
|
@@ -4,6 +4,8 @@ import { type ResponderConnection } from "@opengeni/events";
|
|
|
4
4
|
import type { Observability } from "@opengeni/observability";
|
|
5
5
|
/** The NATS subject nats-server publishes authorization requests on (ADR-26). */
|
|
6
6
|
export declare const AUTH_CALLOUT_SUBJECT = "$SYS.REQ.USER.AUTH";
|
|
7
|
+
/** Keep live NATS credentials short-lived while never outliving the bearer. */
|
|
8
|
+
export declare const NATS_USER_JWT_TTL_SECONDS: number;
|
|
7
9
|
export interface AuthCalloutDeps {
|
|
8
10
|
db: Database;
|
|
9
11
|
settings: Settings;
|
|
@@ -3,27 +3,73 @@ import type { Session } from "@opengeni/contracts";
|
|
|
3
3
|
import { type Database, type LeaseSnapshot } from "@opengeni/db";
|
|
4
4
|
import { type EventBus } from "@opengeni/events";
|
|
5
5
|
import { type Observability } from "@opengeni/observability";
|
|
6
|
-
import { SandboxChannelAService, type RoutingSandboxSession } from "@opengeni/runtime/sandbox";
|
|
6
|
+
import { SandboxChannelAService, type ChannelASession, type EstablishedSandboxSession, type RoutingSandboxSession } from "@opengeni/runtime/sandbox";
|
|
7
7
|
export type ChannelAServices = {
|
|
8
8
|
db: Database;
|
|
9
9
|
settings: Settings;
|
|
10
10
|
bus: EventBus;
|
|
11
11
|
observability?: Observability | undefined;
|
|
12
12
|
};
|
|
13
|
+
export type ChannelAOperation = "fs.list" | "fs.list-batch" | "fs.read" | "fs.write" | "fs.delete" | "fs.move" | "fs.mkdir" | "git.status" | "git.diff" | "git.read-batch" | "git.log" | "git.show" | "terminal.exec" | "terminal.pty.open" | "terminal.pty.write" | "terminal.pty.resize" | "terminal.pty.close" | "browser.create" | "browser.resume" | "browser.suspend" | "browser.end" | "browser.read" | "browser.control" | "browser.attach" | "computer.create" | "computer.end" | "computer.read" | "computer.control" | "computer.attach";
|
|
13
14
|
export type ChannelAContext = {
|
|
14
15
|
accountId: string;
|
|
15
16
|
workspaceId: string;
|
|
16
17
|
session: Session;
|
|
17
18
|
subjectId: string;
|
|
19
|
+
/** Cancel lifecycle waiting when the originating HTTP request disconnects. */
|
|
20
|
+
waitSignal?: AbortSignal | undefined;
|
|
21
|
+
/** Bounded route identity for metrics and safe operator diagnostics. */
|
|
22
|
+
operation?: ChannelAOperation | undefined;
|
|
23
|
+
};
|
|
24
|
+
export type ChannelAOperationFailureReason = "request_cancelled" | "provider_read_busy" | "provider_unavailable" | "lifecycle_conflict" | "request_rejected" | "unexpected";
|
|
25
|
+
export type ChannelAOperationFailureDiagnostic = {
|
|
26
|
+
reason: ChannelAOperationFailureReason;
|
|
27
|
+
status: number;
|
|
28
|
+
errorCode: "sandbox_channel_a_cancelled" | "sandbox_channel_a_provider_busy" | "sandbox_channel_a_provider_unavailable" | "sandbox_channel_a_lifecycle_conflict" | "sandbox_channel_a_operation_failed";
|
|
18
29
|
};
|
|
19
30
|
export type ChannelAHandle = {
|
|
20
31
|
service: SandboxChannelAService;
|
|
21
32
|
/** Connected Machine homes deliberately have no cloud lease. Durable PTYs
|
|
22
33
|
* require a real home-provider lease and reject this null case. */
|
|
23
34
|
lease: LeaseSnapshot | null;
|
|
35
|
+
/** Exact placement-home session established under this request's lease or
|
|
36
|
+
* Connected Machine fence. Unlike routingSession, this never follows a later
|
|
37
|
+
* active-sandbox pointer and is safe for placement-bound controllers. */
|
|
38
|
+
homeSession: ChannelASession;
|
|
24
39
|
routingSession: RoutingSandboxSession;
|
|
25
40
|
requestId: string;
|
|
26
41
|
};
|
|
42
|
+
export type EstablishedHandleCacheKind = "read" | "process" | "none";
|
|
43
|
+
export declare function isChannelAHandleCacheEntryFresh(lastUsedAtMonotonicMs: number, nowMonotonicMs: number, idleTtlMs?: number): boolean;
|
|
44
|
+
export declare function isChannelAProcessHandleCacheEntryFresh(lastUsedAtMonotonicMs: number, nowMonotonicMs: number, idleTtlMs?: number): boolean;
|
|
45
|
+
/** Reuse the exact lease-fenced provider handle across API-direct surfaces.
|
|
46
|
+
* Stream capability negotiation and the first Files/Changes reads commonly run
|
|
47
|
+
* back-to-back; sharing this handle avoids paying the same Modal resume twice. */
|
|
48
|
+
export declare function establishCachedChannelAHandle(workspaceId: string, sessionId: string, lease: LeaseSnapshot, establish: () => Promise<EstablishedSandboxSession>): Promise<EstablishedSandboxSession>;
|
|
49
|
+
/**
|
|
50
|
+
* Run independent, side-effect-free Channel-A reads concurrently without
|
|
51
|
+
* releasing the direct-request holder while sibling provider commands are
|
|
52
|
+
* still settling. A typed temporary-unavailable failure is retried exactly
|
|
53
|
+
* once after every first attempt has settled; validation, conflict, not-found,
|
|
54
|
+
* and unknown failures are never replayed.
|
|
55
|
+
*/
|
|
56
|
+
export declare function runConcurrentChannelAReads<T>(operations: readonly (() => Promise<T>)[]): Promise<T[]>;
|
|
57
|
+
type ChannelAReadRecoveryOptions = {
|
|
58
|
+
/** Modal may expose one more stale command-router route after the first
|
|
59
|
+
* successful handle rebuild. Keep this closed and statically bounded. */
|
|
60
|
+
maxFreshHandleRetries?: 1 | 2;
|
|
61
|
+
/** Never start another provider attempt after the originating request ends. */
|
|
62
|
+
waitSignal?: AbortSignal | undefined;
|
|
63
|
+
};
|
|
64
|
+
/** Retry a side-effect-free Channel-A read only after the caller has discarded
|
|
65
|
+
* and freshly re-established its provider handle. The ordinary provider-neutral
|
|
66
|
+
* contract allows one retry; Modal opts into one additional rebuild because a
|
|
67
|
+
* command-router rollover can outlive the first replacement handle. Provider
|
|
68
|
+
* commands are never replayed for validation/conflict/unknown errors, mutation
|
|
69
|
+
* routes never call this helper, and request cancellation stops recovery before
|
|
70
|
+
* another provider command begins. */
|
|
71
|
+
export declare function runChannelAReadWithFreshHandleRetry<T>(run: () => Promise<T>, refreshHandle: (attempt: 1 | 2) => Promise<void>, options?: ChannelAReadRecoveryOptions): Promise<T>;
|
|
72
|
+
export declare function shouldEvictChannelAHandleAfterError(error: unknown, cacheKind: EstablishedHandleCacheKind): boolean;
|
|
27
73
|
/**
|
|
28
74
|
* Run a Channel-A op against a live box, API-direct. Acquires an exact direct holder
|
|
29
75
|
* (warming the box when cold), resumes by id, builds the service, runs `fn`, and
|
|
@@ -34,6 +80,17 @@ export type ChannelAHandle = {
|
|
|
34
80
|
* otherwise). A `backend:none` session has no box -> 409 before touching it.
|
|
35
81
|
*/
|
|
36
82
|
export declare function withChannelA<T>(services: ChannelAServices, ctx: ChannelAContext, fn: (handle: ChannelAHandle) => Promise<T>): Promise<T>;
|
|
83
|
+
/** Read-only API-direct seam. Separate requests for the same exact live Modal
|
|
84
|
+
* instance are serialized across API replicas; each request's batched reads
|
|
85
|
+
* remain concurrent behind that one distributed boundary. A typed temporary
|
|
86
|
+
* provider-channel failure gets one retry only after rebuilding the exact
|
|
87
|
+
* lease-fenced handle. */
|
|
88
|
+
export declare function withChannelARead<T>(services: ChannelAServices, ctx: ChannelAContext, fn: (handle: ChannelAHandle) => Promise<T>): Promise<T>;
|
|
37
89
|
/** Map the service's typed errors to HTTP status (the §5.3 matrix). Re-throws an
|
|
38
90
|
* already-HTTPException unchanged. */
|
|
39
|
-
export declare function mapChannelAError(error: unknown): unknown;
|
|
91
|
+
export declare function mapChannelAError(error: unknown, waitSignal?: AbortSignal): unknown;
|
|
92
|
+
export declare function isChannelARequestCancellation(error: unknown, waitSignal?: AbortSignal): boolean;
|
|
93
|
+
/** Structural classification only: exact provider exception text, codes, URLs,
|
|
94
|
+
* and identifiers never cross the telemetry boundary. */
|
|
95
|
+
export declare function channelAOperationFailureDiagnostic(error: unknown, waitSignal?: AbortSignal): ChannelAOperationFailureDiagnostic;
|
|
96
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type Database, type MachineMetricsSample } from "@opengeni/db";
|
|
2
|
+
import { type AttachedBrowserInventorySnapshot as AttachedBrowserInventoryContractValue } from "@opengeni/contracts";
|
|
2
3
|
import { type EventBus } from "@opengeni/events";
|
|
3
4
|
import type { Observability } from "@opengeni/observability";
|
|
4
|
-
import { Hello, type MetricsSample } from "@opengeni/agent-proto";
|
|
5
|
+
import { Hello, type AttachedBrowserInventorySnapshot as WireAttachedBrowserInventorySnapshot, type MetricsSample } from "@opengeni/agent-proto";
|
|
5
6
|
/** The wildcard subject the agent event plane publishes heartbeats on. */
|
|
6
7
|
export declare const AGENT_EVENTS_SUBJECT = "agent.*.*.events";
|
|
7
8
|
/** The wildcard subject the agent publishes its connect Hello on. */
|
|
@@ -27,6 +28,10 @@ export declare function parseAgentHelloSubject(subject: string): {
|
|
|
27
28
|
* GPU plane; cpu/mem/disk 0 is a legitimate reading the dashboard shows as 0).
|
|
28
29
|
*/
|
|
29
30
|
export declare function wireSampleToDbSample(wire: MetricsSample): MachineMetricsSample;
|
|
31
|
+
/** Validate and project one wire inventory before it reaches durable browser
|
|
32
|
+
* discovery. Unknown enum values and unsafe uint64 counters reject the whole
|
|
33
|
+
* authoritative snapshot instead of partially disconnecting good endpoints. */
|
|
34
|
+
export declare function wireAttachedBrowserInventoryToContract(wire: WireAttachedBrowserInventorySnapshot): AttachedBrowserInventoryContractValue;
|
|
30
35
|
/**
|
|
31
36
|
* Ingest ONE decoded heartbeat for an enrolled machine. Resolves the enrollment's
|
|
32
37
|
* accountId (needed for the RLS-scoped writes) from the enrollment row; an
|
package/dist/sandbox/viewer.d.ts
CHANGED
|
@@ -65,6 +65,8 @@ export declare function attachViewer(services: ViewerServices, input: {
|
|
|
65
65
|
workspaceId: string;
|
|
66
66
|
session: Session;
|
|
67
67
|
viewerId?: string;
|
|
68
|
+
/** Cancel lifecycle waiting when the originating HTTP request disconnects. */
|
|
69
|
+
waitSignal?: AbortSignal;
|
|
68
70
|
}): Promise<ViewerAttachResult>;
|
|
69
71
|
export type SessionGroupReadinessHold = {
|
|
70
72
|
lease: LeaseSnapshot;
|
|
@@ -149,7 +151,7 @@ export type MintDesktopStreamInput = {
|
|
|
149
151
|
session: Session;
|
|
150
152
|
/** The viewer holder id the scoped token is minted for. */
|
|
151
153
|
viewerId: string;
|
|
152
|
-
/** The live lease (must be warm
|
|
154
|
+
/** The live lease (must be holder-confirmed warm). A selfhosted-active
|
|
153
155
|
* session may have no Modal group lease; omit and the selfhosted branch handles it. */
|
|
154
156
|
lease?: LeaseSnapshot;
|
|
155
157
|
/** The epoch the CALLER last observed the URL minted under. When the live
|
|
@@ -196,7 +198,7 @@ export type MintTerminalStreamInput = {
|
|
|
196
198
|
session: Session;
|
|
197
199
|
/** The viewer holder / principal id the scoped token is minted for. */
|
|
198
200
|
viewerId: string;
|
|
199
|
-
/** The live lease (must be warm
|
|
201
|
+
/** The live lease (must be holder-confirmed warm). A selfhosted-active
|
|
200
202
|
* session may have no Modal group lease; omit and the selfhosted branch handles it. */
|
|
201
203
|
lease?: LeaseSnapshot;
|
|
202
204
|
/** Test seam: override how the box is re-established by id (see
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Database, type TemporalScheduleCleanupClaim } from "@opengeni/db";
|
|
2
|
+
import type { Observability } from "@opengeni/observability";
|
|
3
|
+
type TemporalScheduleCleanupDependencies = {
|
|
4
|
+
db: Database;
|
|
5
|
+
deleteSchedule: (temporalScheduleId: string) => Promise<void>;
|
|
6
|
+
observability?: Pick<Observability, "info" | "warn" | "error">;
|
|
7
|
+
};
|
|
8
|
+
export type TemporalScheduleCleanupBatchResult = {
|
|
9
|
+
claimed: number;
|
|
10
|
+
deleted: number;
|
|
11
|
+
failed: number;
|
|
12
|
+
stale: number;
|
|
13
|
+
};
|
|
14
|
+
/** Settle exact claims concurrently; every external delete is idempotent. */
|
|
15
|
+
export declare function processTemporalScheduleCleanupClaims(deps: TemporalScheduleCleanupDependencies, claims: readonly TemporalScheduleCleanupClaim[]): Promise<TemporalScheduleCleanupBatchResult>;
|
|
16
|
+
/** Claim and process one globally bounded batch. */
|
|
17
|
+
export declare function drainTemporalScheduleCleanupOutbox(deps: TemporalScheduleCleanupDependencies): Promise<TemporalScheduleCleanupBatchResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Start one non-overlapping reconciliation loop. PostgreSQL claims coordinate
|
|
20
|
+
* replicas; an API crash merely delays the exact row until its short claim
|
|
21
|
+
* expires.
|
|
22
|
+
*/
|
|
23
|
+
export declare function startTemporalScheduleCleanupPump(deps: TemporalScheduleCleanupDependencies, options?: {
|
|
24
|
+
intervalMs?: number;
|
|
25
|
+
}): () => Promise<void>;
|
|
26
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeni/api-router",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
4
4
|
"description": "OpenGeni HTTP surface: the Hono adapter/router (createApp), routes, MCP HTTP transport, and HTTP access adapters over @opengeni/core. An engine-distribution surface — its runtime closure includes engine-internal packages.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -41,25 +41,30 @@
|
|
|
41
41
|
"@aws-sdk/client-s3": "^3.1044.0",
|
|
42
42
|
"@aws-sdk/s3-request-presigner": "^3.1044.0",
|
|
43
43
|
"@hono/zod-validator": "^0.7.6",
|
|
44
|
+
"@llamaindex/liteparse": "^1.5.3",
|
|
44
45
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
45
|
-
"@opengeni/agent-proto": "^0.
|
|
46
|
-
"@opengeni/
|
|
47
|
-
"@opengeni/
|
|
48
|
-
"@opengeni/
|
|
49
|
-
"@opengeni/
|
|
50
|
-
"@opengeni/
|
|
51
|
-
"@opengeni/
|
|
52
|
-
"@opengeni/
|
|
53
|
-
"@opengeni/
|
|
54
|
-
"@opengeni/
|
|
55
|
-
"@opengeni/
|
|
56
|
-
"@opengeni/
|
|
57
|
-
"@opengeni/
|
|
46
|
+
"@opengeni/agent-proto": "^0.4.0",
|
|
47
|
+
"@opengeni/artifact-tool": "^0.2.2",
|
|
48
|
+
"@opengeni/capabilities": "^0.1.1",
|
|
49
|
+
"@opengeni/codemode": "^0.2.2",
|
|
50
|
+
"@opengeni/codex": "^0.2.15",
|
|
51
|
+
"@opengeni/config": "^0.13.2",
|
|
52
|
+
"@opengeni/contracts": "^0.44.1",
|
|
53
|
+
"@opengeni/core": "^0.24.1",
|
|
54
|
+
"@opengeni/db": "^0.31.1",
|
|
55
|
+
"@opengeni/documents": "^0.5.32",
|
|
56
|
+
"@opengeni/events": "^0.3.103",
|
|
57
|
+
"@opengeni/github": "^0.4.50",
|
|
58
|
+
"@opengeni/network": "^0.2.2",
|
|
59
|
+
"@opengeni/observability": "^0.6.2",
|
|
60
|
+
"@opengeni/runtime": "^0.19.2",
|
|
61
|
+
"@opengeni/storage": "^0.2.87",
|
|
58
62
|
"@temporalio/client": "^1.17.0",
|
|
59
63
|
"better-auth": "^1.6.14",
|
|
60
64
|
"hono": "^4.12.18",
|
|
61
65
|
"pg": "^8.21.0",
|
|
62
66
|
"resend": "^6.12.4",
|
|
67
|
+
"sharp": "^0.34.5",
|
|
63
68
|
"stripe": "^22.2.0",
|
|
64
69
|
"zod": "^4.2.1"
|
|
65
70
|
},
|