@threadbase-sh/streamer 1.63.0 → 1.64.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.
- package/dist/agent/agent-client.d.ts +14 -0
- package/dist/agent/agent-client.d.ts.map +1 -0
- package/dist/agent/agent-config.d.ts +24 -0
- package/dist/agent/agent-config.d.ts.map +1 -0
- package/dist/agent/conversation-writer.d.ts +13 -0
- package/dist/agent/conversation-writer.d.ts.map +1 -0
- package/dist/agent/dedupe.d.ts +6 -0
- package/dist/agent/dedupe.d.ts.map +1 -0
- package/dist/agent/errors.d.ts +23 -0
- package/dist/agent/errors.d.ts.map +1 -0
- package/dist/agent/handle-send-agent-input.d.ts +21 -0
- package/dist/agent/handle-send-agent-input.d.ts.map +1 -0
- package/dist/agent/handle-start-agent-session.d.ts +21 -0
- package/dist/agent/handle-start-agent-session.d.ts.map +1 -0
- package/dist/agent/history-mapper.d.ts +4 -0
- package/dist/agent/history-mapper.d.ts.map +1 -0
- package/dist/agent/payload-guard.d.ts +29 -0
- package/dist/agent/payload-guard.d.ts.map +1 -0
- package/dist/api/app.d.ts +28 -0
- package/dist/api/app.d.ts.map +1 -0
- package/dist/api/handlers/conversations.handlers.d.ts +69 -0
- package/dist/api/handlers/conversations.handlers.d.ts.map +1 -0
- package/dist/api/handlers/http-helpers.d.ts +50 -0
- package/dist/api/handlers/http-helpers.d.ts.map +1 -0
- package/dist/api/handlers/sessions.handlers.d.ts +230 -0
- package/dist/api/handlers/sessions.handlers.d.ts.map +1 -0
- package/dist/api/middleware/auth.middleware.d.ts +5 -0
- package/dist/api/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/api/middleware/cors.middleware.d.ts +5 -0
- package/dist/api/middleware/cors.middleware.d.ts.map +1 -0
- package/dist/api/middleware/error.middleware.d.ts +4 -0
- package/dist/api/middleware/error.middleware.d.ts.map +1 -0
- package/dist/api/routes/backup.routes.d.ts +5 -0
- package/dist/api/routes/backup.routes.d.ts.map +1 -0
- package/dist/api/routes/browse.routes.d.ts +5 -0
- package/dist/api/routes/browse.routes.d.ts.map +1 -0
- package/dist/api/routes/cacheAlert.routes.d.ts +5 -0
- package/dist/api/routes/cacheAlert.routes.d.ts.map +1 -0
- package/dist/api/routes/config.routes.d.ts +5 -0
- package/dist/api/routes/config.routes.d.ts.map +1 -0
- package/dist/api/routes/conversations.routes.d.ts +5 -0
- package/dist/api/routes/conversations.routes.d.ts.map +1 -0
- package/dist/api/routes/devices.routes.d.ts +17 -0
- package/dist/api/routes/devices.routes.d.ts.map +1 -0
- package/dist/api/routes/diagnostics.routes.d.ts +5 -0
- package/dist/api/routes/diagnostics.routes.d.ts.map +1 -0
- package/dist/api/routes/health.routes.d.ts +5 -0
- package/dist/api/routes/health.routes.d.ts.map +1 -0
- package/dist/api/routes/logs.routes.d.ts +3 -0
- package/dist/api/routes/logs.routes.d.ts.map +1 -0
- package/dist/api/routes/misc.routes.d.ts +77 -0
- package/dist/api/routes/misc.routes.d.ts.map +1 -0
- package/dist/api/routes/pair.routes.d.ts +5 -0
- package/dist/api/routes/pair.routes.d.ts.map +1 -0
- package/dist/api/routes/progress.routes.d.ts +39 -0
- package/dist/api/routes/progress.routes.d.ts.map +1 -0
- package/dist/api/routes/projects.routes.d.ts +5 -0
- package/dist/api/routes/projects.routes.d.ts.map +1 -0
- package/dist/api/routes/providers.routes.d.ts +19 -0
- package/dist/api/routes/providers.routes.d.ts.map +1 -0
- package/dist/api/routes/scanner.routes.d.ts +5 -0
- package/dist/api/routes/scanner.routes.d.ts.map +1 -0
- package/dist/api/routes/sessions.routes.d.ts +6 -0
- package/dist/api/routes/sessions.routes.d.ts.map +1 -0
- package/dist/api/routes/ws.routes.d.ts +7 -0
- package/dist/api/routes/ws.routes.d.ts.map +1 -0
- package/dist/api/types/api-deps.d.ts +114 -0
- package/dist/api/types/api-deps.d.ts.map +1 -0
- package/dist/auth.d.ts +81 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/browse.d.ts +17 -0
- package/dist/browse.d.ts.map +1 -0
- package/dist/claude-flags.d.ts +76 -0
- package/dist/claude-flags.d.ts.map +1 -0
- package/dist/cli.cjs +20 -5
- package/dist/cli.cjs.map +1 -1
- package/dist/codex-pty-runner.d.ts +90 -0
- package/dist/codex-pty-runner.d.ts.map +1 -0
- package/dist/config/update-config.d.ts +13 -0
- package/dist/config/update-config.d.ts.map +1 -0
- package/dist/conversation-cache.d.ts +336 -0
- package/dist/conversation-cache.d.ts.map +1 -0
- package/dist/db/config.d.ts +11 -0
- package/dist/db/config.d.ts.map +1 -0
- package/dist/db/index.d.ts +5 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/migrations.d.ts +3 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.d.ts.map +1 -0
- package/dist/db/query-timing.d.ts +52 -0
- package/dist/db/query-timing.d.ts.map +1 -0
- package/dist/db/repositories/cacheMetadata.repository.d.ts +12 -0
- package/dist/db/repositories/cacheMetadata.repository.d.ts.map +1 -0
- package/dist/db/repositories/conversations.repository.d.ts +27 -0
- package/dist/db/repositories/conversations.repository.d.ts.map +1 -0
- package/dist/db/repositories/devices.repository.d.ts +137 -0
- package/dist/db/repositories/devices.repository.d.ts.map +1 -0
- package/dist/db/repositories/managed-sessions.repository.d.ts +127 -0
- package/dist/db/repositories/managed-sessions.repository.d.ts.map +1 -0
- package/dist/db/repositories/projects.repository.d.ts +28 -0
- package/dist/db/repositories/projects.repository.d.ts.map +1 -0
- package/dist/db/repositories/push.repository.d.ts +186 -0
- package/dist/db/repositories/push.repository.d.ts.map +1 -0
- package/dist/db/repositories/sessions.repository.d.ts +16 -0
- package/dist/db/repositories/sessions.repository.d.ts.map +1 -0
- package/dist/db/runtime-store.d.ts +80 -0
- package/dist/db/runtime-store.d.ts.map +1 -0
- package/dist/db/sqlite-migrate.d.ts +13 -0
- package/dist/db/sqlite-migrate.d.ts.map +1 -0
- package/dist/db/upload-records.d.ts +11 -0
- package/dist/db/upload-records.d.ts.map +1 -0
- package/dist/e2ee/noise.d.ts +261 -0
- package/dist/e2ee/noise.d.ts.map +1 -0
- package/dist/e2ee/pair-payload.d.ts +60 -0
- package/dist/e2ee/pair-payload.d.ts.map +1 -0
- package/dist/e2ee/pair-request.d.ts +24 -0
- package/dist/e2ee/pair-request.d.ts.map +1 -0
- package/dist/external-tails.d.ts +91 -0
- package/dist/external-tails.d.ts.map +1 -0
- package/dist/feature-flags.d.ts +212 -0
- package/dist/feature-flags.d.ts.map +1 -0
- package/dist/handlers/handleListProjects.d.ts +3 -0
- package/dist/handlers/handleListProjects.d.ts.map +1 -0
- package/dist/index.d.ts +18 -2571
- package/dist/index.d.ts.map +1 -0
- package/dist/lifecycle/constants.d.ts +21 -0
- package/dist/lifecycle/constants.d.ts.map +1 -0
- package/dist/lifecycle/process-liveness.d.ts +7 -0
- package/dist/lifecycle/process-liveness.d.ts.map +1 -0
- package/dist/live-session-manager.d.ts +59 -0
- package/dist/live-session-manager.d.ts.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/pair-store.d.ts +60 -0
- package/dist/pair-store.d.ts.map +1 -0
- package/dist/platform.d.ts +25 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/process-discovery.d.ts +35 -0
- package/dist/process-discovery.d.ts.map +1 -0
- package/dist/providers.d.ts +7 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/pty-host/protocol.d.ts +270 -0
- package/dist/pty-host/protocol.d.ts.map +1 -0
- package/dist/pty-host/remote-session-runner.d.ts +133 -0
- package/dist/pty-host/remote-session-runner.d.ts.map +1 -0
- package/dist/pty-host/socket.d.ts +54 -0
- package/dist/pty-host/socket.d.ts.map +1 -0
- package/dist/pty-host/spawn-host.d.ts +30 -0
- package/dist/pty-host/spawn-host.d.ts.map +1 -0
- package/dist/pty-manager.d.ts +65 -0
- package/dist/pty-manager.d.ts.map +1 -0
- package/dist/pty-shared.d.ts +27 -0
- package/dist/pty-shared.d.ts.map +1 -0
- package/dist/scanner-manager.d.ts +126 -0
- package/dist/scanner-manager.d.ts.map +1 -0
- package/dist/schemas/cacheAlert.schema.d.ts +14 -0
- package/dist/schemas/cacheAlert.schema.d.ts.map +1 -0
- package/dist/schemas/claudeFlags.schema.d.ts +7 -0
- package/dist/schemas/claudeFlags.schema.d.ts.map +1 -0
- package/dist/schemas/project.schema.d.ts +18 -0
- package/dist/schemas/project.schema.d.ts.map +1 -0
- package/dist/schemas/updateConfig.schema.d.ts +19 -0
- package/dist/schemas/updateConfig.schema.d.ts.map +1 -0
- package/dist/seal.d.ts +14 -0
- package/dist/seal.d.ts.map +1 -0
- package/dist/server-identity.d.ts +43 -0
- package/dist/server-identity.d.ts.map +1 -0
- package/dist/server-wiring.d.ts +184 -0
- package/dist/server-wiring.d.ts.map +1 -0
- package/dist/server.d.ts +390 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/services/backup/backup.d.ts +103 -0
- package/dist/services/backup/backup.d.ts.map +1 -0
- package/dist/services/cache/cacheMetadata.d.ts +8 -0
- package/dist/services/cache/cacheMetadata.d.ts.map +1 -0
- package/dist/services/cache-integrity/alertStore.d.ts +24 -0
- package/dist/services/cache-integrity/alertStore.d.ts.map +1 -0
- package/dist/services/cache-integrity/backup.d.ts +8 -0
- package/dist/services/cache-integrity/backup.d.ts.map +1 -0
- package/dist/services/cache-integrity/cacheIntegrityMonitor.d.ts +71 -0
- package/dist/services/cache-integrity/cacheIntegrityMonitor.d.ts.map +1 -0
- package/dist/services/conversations/conversationWatcher.d.ts +99 -0
- package/dist/services/conversations/conversationWatcher.d.ts.map +1 -0
- package/dist/services/conversations/findSearchTarget.d.ts +30 -0
- package/dist/services/conversations/findSearchTarget.d.ts.map +1 -0
- package/dist/services/conversations/isAgentConversation.d.ts +8 -0
- package/dist/services/conversations/isAgentConversation.d.ts.map +1 -0
- package/dist/services/conversations/pruneAgentConversations.d.ts +8 -0
- package/dist/services/conversations/pruneAgentConversations.d.ts.map +1 -0
- package/dist/services/conversations/refreshConversationCache.d.ts +27 -0
- package/dist/services/conversations/refreshConversationCache.d.ts.map +1 -0
- package/dist/services/conversations/shouldRefreshProjectsFromHdd.d.ts +33 -0
- package/dist/services/conversations/shouldRefreshProjectsFromHdd.d.ts.map +1 -0
- package/dist/services/diagnostics/diagnostics.d.ts +66 -0
- package/dist/services/diagnostics/diagnostics.d.ts.map +1 -0
- package/dist/services/projectChats/deriveProjectChatTitle.d.ts +15 -0
- package/dist/services/projectChats/deriveProjectChatTitle.d.ts.map +1 -0
- package/dist/services/projects/ensureProjectsForConversations.d.ts +15 -0
- package/dist/services/projects/ensureProjectsForConversations.d.ts.map +1 -0
- package/dist/services/providers/capabilities.d.ts +105 -0
- package/dist/services/providers/capabilities.d.ts.map +1 -0
- package/dist/services/providers/providerHealth.d.ts +72 -0
- package/dist/services/providers/providerHealth.d.ts.map +1 -0
- package/dist/services/push/apnsClient.d.ts +105 -0
- package/dist/services/push/apnsClient.d.ts.map +1 -0
- package/dist/services/push/expoPushSender.d.ts +37 -0
- package/dist/services/push/expoPushSender.d.ts.map +1 -0
- package/dist/services/push/liveActivityContentState.d.ts +60 -0
- package/dist/services/push/liveActivityContentState.d.ts.map +1 -0
- package/dist/services/push/liveActivityNotifier.d.ts +49 -0
- package/dist/services/push/liveActivityNotifier.d.ts.map +1 -0
- package/dist/services/push/liveActivityRenewal.d.ts +63 -0
- package/dist/services/push/liveActivityRenewal.d.ts.map +1 -0
- package/dist/services/push/liveActivitySender.d.ts +88 -0
- package/dist/services/push/liveActivitySender.d.ts.map +1 -0
- package/dist/services/push/waitingInputNotifier.d.ts +41 -0
- package/dist/services/push/waitingInputNotifier.d.ts.map +1 -0
- package/dist/services/questions/answersToKeystrokes.d.ts +8 -0
- package/dist/services/questions/answersToKeystrokes.d.ts.map +1 -0
- package/dist/services/questions/codexGateAnswers.d.ts +14 -0
- package/dist/services/questions/codexGateAnswers.d.ts.map +1 -0
- package/dist/services/questions/codexScreen.d.ts +74 -0
- package/dist/services/questions/codexScreen.d.ts.map +1 -0
- package/dist/services/questions/detectAskUserQuestion.d.ts +6 -0
- package/dist/services/questions/detectAskUserQuestion.d.ts.map +1 -0
- package/dist/services/questions/detectPermissionGate.d.ts +62 -0
- package/dist/services/questions/detectPermissionGate.d.ts.map +1 -0
- package/dist/services/questions/detectQuestionFromScreen.d.ts +30 -0
- package/dist/services/questions/detectQuestionFromScreen.d.ts.map +1 -0
- package/dist/services/questions/detectShellPrompt.d.ts +18 -0
- package/dist/services/questions/detectShellPrompt.d.ts.map +1 -0
- package/dist/services/questions/parseAgentPhase.d.ts +12 -0
- package/dist/services/questions/parseAgentPhase.d.ts.map +1 -0
- package/dist/services/questions/parseStatusLine.d.ts +19 -0
- package/dist/services/questions/parseStatusLine.d.ts.map +1 -0
- package/dist/services/questions/questionBroadcast.d.ts +18 -0
- package/dist/services/questions/questionBroadcast.d.ts.map +1 -0
- package/dist/services/questions/resolveAnswer.d.ts +16 -0
- package/dist/services/questions/resolveAnswer.d.ts.map +1 -0
- package/dist/services/search/searchQuery.d.ts +78 -0
- package/dist/services/search/searchQuery.d.ts.map +1 -0
- package/dist/services/security/capabilities.d.ts +50 -0
- package/dist/services/security/capabilities.d.ts.map +1 -0
- package/dist/services/sessions/autoResumeOnBoot.d.ts +28 -0
- package/dist/services/sessions/autoResumeOnBoot.d.ts.map +1 -0
- package/dist/services/sessions/codexRolloutOwner.d.ts +55 -0
- package/dist/services/sessions/codexRolloutOwner.d.ts.map +1 -0
- package/dist/services/sessions/conversationBusy.d.ts +32 -0
- package/dist/services/sessions/conversationBusy.d.ts.map +1 -0
- package/dist/services/sessions/idempotency.d.ts +67 -0
- package/dist/services/sessions/idempotency.d.ts.map +1 -0
- package/dist/services/sessions/reconcileSessions.d.ts +63 -0
- package/dist/services/sessions/reconcileSessions.d.ts.map +1 -0
- package/dist/services/sessions/rehydrateSessions.d.ts +68 -0
- package/dist/services/sessions/rehydrateSessions.d.ts.map +1 -0
- package/dist/services/sessions/resumeIdentity.d.ts +16 -0
- package/dist/services/sessions/resumeIdentity.d.ts.map +1 -0
- package/dist/session-registry-boot.d.ts +142 -0
- package/dist/session-registry-boot.d.ts.map +1 -0
- package/dist/session-store.d.ts +32 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/session-watchers.d.ts +60 -0
- package/dist/session-watchers.d.ts.map +1 -0
- package/dist/types.d.ts +616 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/uploads.d.ts +16 -0
- package/dist/uploads.d.ts.map +1 -0
- package/dist/utils/bootToken.d.ts +3 -0
- package/dist/utils/bootToken.d.ts.map +1 -0
- package/dist/utils/canonicalizeFilePath.d.ts +75 -0
- package/dist/utils/canonicalizeFilePath.d.ts.map +1 -0
- package/dist/utils/canonicalizeProjectPath.d.ts +13 -0
- package/dist/utils/canonicalizeProjectPath.d.ts.map +1 -0
- package/dist/utils/codexConversationLine.d.ts +38 -0
- package/dist/utils/codexConversationLine.d.ts.map +1 -0
- package/dist/utils/conversationEtag.d.ts +19 -0
- package/dist/utils/conversationEtag.d.ts.map +1 -0
- package/dist/utils/dates.d.ts +12 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/debounce.d.ts +15 -0
- package/dist/utils/debounce.d.ts.map +1 -0
- package/dist/utils/deriveSessionName.d.ts +10 -0
- package/dist/utils/deriveSessionName.d.ts.map +1 -0
- package/dist/utils/fileIdentity.d.ts +36 -0
- package/dist/utils/fileIdentity.d.ts.map +1 -0
- package/dist/utils/isScannedSnapshotStale.d.ts +16 -0
- package/dist/utils/isScannedSnapshotStale.d.ts.map +1 -0
- package/dist/utils/scanProgressThrottle.d.ts +12 -0
- package/dist/utils/scanProgressThrottle.d.ts.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/ws-hub.d.ts +15 -0
- package/dist/ws-hub.d.ts.map +1 -0
- package/package.json +3 -4
- package/dist/index.d.cts +0 -2571
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.middleware.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/error.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,MAAM,CAehD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createBackupRoutes: (deps: Pick<ApiDeps, "projectsRepo">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=backup.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/backup.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA+BjD,eAAO,MAAM,kBAAkB,SAAU,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,wDA+GrE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createBrowseRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=browse.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/browse.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,kBAAkB,SAAU,OAAO,wDAe/C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createCacheAlertRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=cacheAlert.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheAlert.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/cacheAlert.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,eAAO,MAAM,sBAAsB,SAAU,OAAO,wDA+CnD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createConfigRoutes: (deps: Pick<ApiDeps, "claudeFlagsConfig" | "setClaudeFlagsConfig" | "featureFlagsConfig" | "localNoAuth">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=config.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/config.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,eAAO,MAAM,kBAAkB,SACvB,IAAI,CACR,OAAO,EACP,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,aAAa,CACpF,wDA2DF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createConversationRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=conversations.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/conversations.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,wBAAwB,SAAU,OAAO,wDAmCrD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
/**
|
|
5
|
+
* Paired-device management (C5 / mobile U10).
|
|
6
|
+
*
|
|
7
|
+
* Revoking a device previously meant rotating the shared API key, which
|
|
8
|
+
* de-authenticated every other device at the same time. These routes make
|
|
9
|
+
* revocation per-device and give the client something to display: which devices
|
|
10
|
+
* exist, what each may do, and when it was last seen.
|
|
11
|
+
*
|
|
12
|
+
* No response ever includes a device token or its hash. A management surface
|
|
13
|
+
* has no reason to hand back a credential, and this endpoint is exactly where
|
|
14
|
+
* an accidental echo would be most damaging.
|
|
15
|
+
*/
|
|
16
|
+
export declare const createDeviceRoutes: (deps: Pick<ApiDeps, "devicesRepo">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
17
|
+
//# sourceMappingURL=devices.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/devices.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,SAAU,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,wDAmFpE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createDiagnosticsRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=diagnostics.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/diagnostics.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD,eAAO,MAAM,uBAAuB,SAAU,OAAO,wDA+IpD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createHealthRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=health.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/health.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,SAAU,OAAO,wDAS/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/logs.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAqE5B,wBAAgB,gBAAgB,+EA8E/B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
/**
|
|
5
|
+
* What push this server can actually deliver.
|
|
6
|
+
*
|
|
7
|
+
* Reported on `GET /api/info` and `GET /api/push/health` so a client can hide an
|
|
8
|
+
* affordance the server can never honour instead of registering tokens nothing
|
|
9
|
+
* will ever send to. It cannot be inferred from `/api/push/health`'s `available`,
|
|
10
|
+
* which reports whether the SQLite token store opened — that is `true` on a
|
|
11
|
+
* server holding no APNs credentials at all.
|
|
12
|
+
*/
|
|
13
|
+
export interface PushCapability {
|
|
14
|
+
/**
|
|
15
|
+
* Live Activity (ActivityKit) push. True only when APNs credentials resolved
|
|
16
|
+
* *and* the sender was wired, so it is the same fact the boot log reports as
|
|
17
|
+
* `live_activity.enabled` / `live_activity.disabled`.
|
|
18
|
+
*/
|
|
19
|
+
liveActivity: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Ordinary (non-Live-Activity) notifications. Always false: `expo-server-sdk`
|
|
22
|
+
* is not a dependency and `PushRepository.listDeliverable()` has no caller, so
|
|
23
|
+
* nothing sends them. Reported rather than omitted so a client cannot infer
|
|
24
|
+
* that ordinary push works because Live Activity push happens to be configured.
|
|
25
|
+
*/
|
|
26
|
+
notifications: boolean;
|
|
27
|
+
/** Why `liveActivity` is false; absent when it is true. Names env vars, never values. */
|
|
28
|
+
liveActivityReason?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Describe push capability for a client.
|
|
32
|
+
*
|
|
33
|
+
* `liveActivityEnabled` is the server's own wiring state rather than a re-read of
|
|
34
|
+
* the environment: credentials alone are not enough, since the notifier is only
|
|
35
|
+
* built when the push token store opened too.
|
|
36
|
+
*/
|
|
37
|
+
export declare function describePushCapability(liveActivityEnabled: boolean, env?: NodeJS.ProcessEnv): PushCapability;
|
|
38
|
+
/** Envelope version this build speaks. The same number the pair QR carries as `v`. */
|
|
39
|
+
export declare const E2EE_PROTOCOL_VERSION = 1;
|
|
40
|
+
/**
|
|
41
|
+
* Whether a client should encrypt to this server, and why not when it should not.
|
|
42
|
+
*
|
|
43
|
+
* The contract is `push`'s: additive, and **absent means "older server,
|
|
44
|
+
* unknown"** rather than "unsupported". A client reads `enabled` to decide
|
|
45
|
+
* whether to attempt a handshake — never `supported` alone, which only says the
|
|
46
|
+
* code path exists.
|
|
47
|
+
*
|
|
48
|
+
* `required` is the stage-3 bit (refuse plaintext from *any* client) and is
|
|
49
|
+
* false until that is an explicit product decision. It is reported rather than
|
|
50
|
+
* omitted because an absent field means "unknown", and "unknown" is the wrong
|
|
51
|
+
* answer to a question this server can answer.
|
|
52
|
+
*/
|
|
53
|
+
export interface E2eeCapability {
|
|
54
|
+
supported: boolean;
|
|
55
|
+
enabled: boolean;
|
|
56
|
+
version: number;
|
|
57
|
+
required: boolean;
|
|
58
|
+
/** Why `enabled` is false while `supported` is true; absent otherwise. */
|
|
59
|
+
reason?: string;
|
|
60
|
+
}
|
|
61
|
+
export declare function describeE2eeCapability(flagEnabled: boolean): E2eeCapability;
|
|
62
|
+
/**
|
|
63
|
+
* This server's identity public key, or `undefined` when the key file cannot be
|
|
64
|
+
* read — which `JSON.stringify` renders as an absent field, exactly what the
|
|
65
|
+
* `/api/info` contract says absent means.
|
|
66
|
+
*
|
|
67
|
+
* Deliberately different from the CLI's answer to the same failure. `/api/info`
|
|
68
|
+
* is how a client discovers capabilities and renders its server list, so a
|
|
69
|
+
* corrupt key file must cost verification and nothing else; turning it into a
|
|
70
|
+
* 500 would take down the whole endpoint over a file unrelated to the rest of
|
|
71
|
+
* the response. The pair banner throws instead, because a QR that cannot carry
|
|
72
|
+
* `spk` is a QR worth refusing to print — and `serve` already degrades that
|
|
73
|
+
* into a warn plus a QR-less banner (`cli/index.ts`).
|
|
74
|
+
*/
|
|
75
|
+
export declare function describeServerIdentityKey(): string | undefined;
|
|
76
|
+
export declare const createMiscRoutes: (deps: Pick<ApiDeps, "publicUrl" | "sessionStore" | "ptyAttachedIds" | "rotateApiKey" | "localNoAuth" | "pushRepo" | "liveActivityPushEnabled" | "featureFlagsConfig">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
77
|
+
//# sourceMappingURL=misc.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/misc.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,OAAO,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,cAAc,CAahB;AAED,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAkBvC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAmB3E;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAe9D;AAYD,eAAO,MAAM,gBAAgB,SACrB,IAAI,CACR,OAAO,EACL,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,UAAU,GACV,yBAAyB,GACzB,oBAAoB,CACvB,wDA2NF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createPairRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=pair.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pair.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/pair.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,gBAAgB,SAAU,OAAO,wDAe7C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { WSMessage } from "../../types";
|
|
3
|
+
import type { AppEnv } from "../app";
|
|
4
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
5
|
+
interface AgentDeps {
|
|
6
|
+
sessionStore: {
|
|
7
|
+
getManaged: (sessionId: string) => {
|
|
8
|
+
id: string;
|
|
9
|
+
progressDedupeIds?: {
|
|
10
|
+
hasSeen: (id: string) => boolean;
|
|
11
|
+
};
|
|
12
|
+
currentTurnId?: string | null;
|
|
13
|
+
} | null;
|
|
14
|
+
};
|
|
15
|
+
wsHub: {
|
|
16
|
+
broadcast: (m: WSMessage) => void;
|
|
17
|
+
};
|
|
18
|
+
conversationWriter: {
|
|
19
|
+
appendAssistantTurn: (a: {
|
|
20
|
+
sessionId: string;
|
|
21
|
+
turnId: string;
|
|
22
|
+
content: string;
|
|
23
|
+
reviewerOverruled?: boolean;
|
|
24
|
+
}) => Promise<void>;
|
|
25
|
+
} | null;
|
|
26
|
+
agentConfig: {
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
webhook: {
|
|
29
|
+
hmacSecret: string;
|
|
30
|
+
timestampSkewSeconds: number;
|
|
31
|
+
};
|
|
32
|
+
dedupe: {
|
|
33
|
+
perSessionCapacity: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export declare const createProgressRoutes: (deps: ApiDeps & AgentDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=progress.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/progress.routes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,UAAU,SAAS;IACjB,YAAY,EAAE;QACZ,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;YACjC,EAAE,EAAE,MAAM,CAAC;YACX,iBAAiB,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;aAAE,CAAC;YACzD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SAC/B,GAAG,IAAI,CAAC;KACV,CAAC;IACF,KAAK,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7C,kBAAkB,EAAE;QAClB,mBAAmB,EAAE,CAAC,CAAC,EAAE;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;SAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACrB,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9D,MAAM,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAA;SAAE,CAAC;KACxC,CAAC;CACH;AA2BD,eAAO,MAAM,oBAAoB,SAAU,OAAO,GAAG,SAAS,wDAwH7D,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createProjectRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=projects.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/projects.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAsBhD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
/**
|
|
4
|
+
* GET /api/providers — what each provider supports, and whether the installed
|
|
5
|
+
* build is one we have verified against (C2).
|
|
6
|
+
*
|
|
7
|
+
* Clients need this to hide actions a provider cannot perform, rather than
|
|
8
|
+
* offering them and failing. Before this, the only capability signal that
|
|
9
|
+
* reached a client was a 501 from LiveSessionManager — i.e. it arrived as a
|
|
10
|
+
* failed action instead of an absent button.
|
|
11
|
+
*
|
|
12
|
+
* Capabilities are per-provider, not per-session, so this is a separate
|
|
13
|
+
* endpoint rather than more fields on SessionResponse.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately exposes no filesystem paths: which binary resolved is an
|
|
16
|
+
* implementation detail, and a resolved path can leak the user's home layout.
|
|
17
|
+
*/
|
|
18
|
+
export declare const createProviderRoutes: () => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
19
|
+
//# sourceMappingURL=providers.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/providers.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,2DAahC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const createScannerRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
5
|
+
//# sourceMappingURL=scanner.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/scanner.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAUhD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { AppEnv } from "../app";
|
|
3
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
4
|
+
export declare const ALREADY_HANDLED = 597;
|
|
5
|
+
export declare const createSessionRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
6
|
+
//# sourceMappingURL=sessions.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/sessions.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAgGhD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import type { UpgradeWebSocket } from "hono/ws";
|
|
3
|
+
import type { WebSocket } from "ws";
|
|
4
|
+
import type { AppEnv } from "../app";
|
|
5
|
+
import type { ApiDeps } from "../types/api-deps";
|
|
6
|
+
export declare const createWsRoutes: (deps: ApiDeps, upgradeWebSocket: UpgradeWebSocket<WebSocket>) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
|
|
7
|
+
//# sourceMappingURL=ws.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/ws.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,cAAc,SAAU,OAAO,oBAAoB,gBAAgB,CAAC,SAAS,CAAC,wDA+B1F,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "http";
|
|
2
|
+
import type { WebSocket } from "ws";
|
|
3
|
+
import type { AgentClient } from "../../agent/agent-client";
|
|
4
|
+
import type { AgentConfig } from "../../agent/agent-config";
|
|
5
|
+
import type { ConversationWriter } from "../../agent/conversation-writer";
|
|
6
|
+
import type { ClaudeFlagValues, FlagDefinition } from "../../claude-flags";
|
|
7
|
+
import type { ConversationCache } from "../../conversation-cache";
|
|
8
|
+
import type { CacheMetadataRepository } from "../../db/repositories/cacheMetadata.repository";
|
|
9
|
+
import type { ConversationsRepository } from "../../db/repositories/conversations.repository";
|
|
10
|
+
import type { DevicesRepository } from "../../db/repositories/devices.repository";
|
|
11
|
+
import type { ManagedSessionsRepository } from "../../db/repositories/managed-sessions.repository";
|
|
12
|
+
import type { ProjectsRepository } from "../../db/repositories/projects.repository";
|
|
13
|
+
import type { PushRepository } from "../../db/repositories/push.repository";
|
|
14
|
+
import type { SessionsRepository } from "../../db/repositories/sessions.repository";
|
|
15
|
+
import type { RuntimeStore } from "../../db/runtime-store";
|
|
16
|
+
import type { FeatureFlagDefinition, FeatureFlagId, FeatureFlagSource, ResolvedFeatureFlags } from "../../feature-flags";
|
|
17
|
+
import type { LiveSessionManager } from "../../live-session-manager";
|
|
18
|
+
import type { CacheIntegrityMonitor } from "../../services/cache-integrity/cacheIntegrityMonitor";
|
|
19
|
+
import type { Principal } from "../../services/security/capabilities";
|
|
20
|
+
import type { ReconcileVerdict } from "../../services/sessions/reconcileSessions";
|
|
21
|
+
import type { SessionStore } from "../../session-store";
|
|
22
|
+
import type { WSHub } from "../../ws-hub";
|
|
23
|
+
export type ApiDeps = {
|
|
24
|
+
apiKey: string;
|
|
25
|
+
localNoAuth: boolean;
|
|
26
|
+
logMenubarRequests: boolean;
|
|
27
|
+
rotateApiKey: () => {
|
|
28
|
+
newKey: string;
|
|
29
|
+
persisted: boolean;
|
|
30
|
+
};
|
|
31
|
+
claudeFlagsConfig: () => {
|
|
32
|
+
registry: readonly FlagDefinition[];
|
|
33
|
+
values: ClaudeFlagValues;
|
|
34
|
+
extraArgs: string | null;
|
|
35
|
+
persisted: boolean;
|
|
36
|
+
};
|
|
37
|
+
setClaudeFlagsConfig: (values: ClaudeFlagValues, extraArgs: string | undefined) => {
|
|
38
|
+
values: ClaudeFlagValues;
|
|
39
|
+
extraArgs: string | null;
|
|
40
|
+
persisted: boolean;
|
|
41
|
+
};
|
|
42
|
+
featureFlagsConfig: () => {
|
|
43
|
+
registry: readonly FeatureFlagDefinition[];
|
|
44
|
+
values: ResolvedFeatureFlags;
|
|
45
|
+
sources: Record<FeatureFlagId, FeatureFlagSource>;
|
|
46
|
+
};
|
|
47
|
+
publicUrl: string | null;
|
|
48
|
+
browseRoot: string | null;
|
|
49
|
+
browserCors: string | undefined;
|
|
50
|
+
ptyManager: LiveSessionManager;
|
|
51
|
+
sessionStore: SessionStore;
|
|
52
|
+
wsHub: WSHub;
|
|
53
|
+
cache: () => ConversationCache | null;
|
|
54
|
+
cacheMonitor: () => CacheIntegrityMonitor | null;
|
|
55
|
+
/** Push registration + delivery state (C7). Null when the cache DB is unavailable. */
|
|
56
|
+
pushRepo: () => PushRepository | null;
|
|
57
|
+
/**
|
|
58
|
+
* Whether Live Activity push is actually running on this server — the same
|
|
59
|
+
* fact the boot log reports as `live_activity.enabled`. Asked of the server
|
|
60
|
+
* rather than re-derived from the environment, because APNs credentials alone
|
|
61
|
+
* do not enable it: the sender is only wired when the token store opened too.
|
|
62
|
+
*/
|
|
63
|
+
liveActivityPushEnabled: () => boolean;
|
|
64
|
+
/** Paired-device registry (C5). Null when the cache DB is unavailable. */
|
|
65
|
+
devicesRepo: () => DevicesRepository | null;
|
|
66
|
+
projectsRepo: () => ProjectsRepository | null;
|
|
67
|
+
conversationsRepo: () => ConversationsRepository | null;
|
|
68
|
+
sessionsRepo: () => SessionsRepository | null;
|
|
69
|
+
cacheMetadataRepo: () => CacheMetadataRepository | null;
|
|
70
|
+
/** Authoritative session registry (~/.threadbase/runtime.db). Null when it failed to open. */
|
|
71
|
+
runtimeStore: () => RuntimeStore | null;
|
|
72
|
+
/** Rows of that registry. Null when it failed to open. */
|
|
73
|
+
managedSessionsRepo: () => ManagedSessionsRepository | null;
|
|
74
|
+
/** This boot's reconcile verdicts, by session id. Empty before it has run. */
|
|
75
|
+
sessionVerdicts: () => Map<string, ReconcileVerdict>;
|
|
76
|
+
ptyAttachedIds: () => Set<string>;
|
|
77
|
+
handleListSessions: (url: URL, res: ServerResponse) => Promise<void>;
|
|
78
|
+
handleSessionsCount: (res: ServerResponse) => void;
|
|
79
|
+
handleGetRecentSessions: (url: URL, res: ServerResponse) => void;
|
|
80
|
+
handleGetSessionNames: (res: ServerResponse) => void;
|
|
81
|
+
handleGetSession: (sessionId: string, res: ServerResponse) => Promise<void>;
|
|
82
|
+
handleGetOutput: (sessionId: string, res: ServerResponse) => void;
|
|
83
|
+
handleSendInput: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
84
|
+
handleSendAnswer: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
85
|
+
handleCancel: (sessionId: string, res: ServerResponse) => void;
|
|
86
|
+
handleStopSession: (sessionId: string, res: ServerResponse) => Promise<void>;
|
|
87
|
+
handleSetSessionName: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
88
|
+
handleSetSessionModel: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
89
|
+
handleSetSessionEffort: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
90
|
+
handleUploadFile: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
91
|
+
handleAdopt: (sessionId: string, res: ServerResponse) => Promise<void>;
|
|
92
|
+
handleFork: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
93
|
+
handleResume: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
94
|
+
handleStartSession: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
95
|
+
handleListConversations: (url: URL, res: ServerResponse) => Promise<void>;
|
|
96
|
+
handleConversationsCount: (url: URL, res: ServerResponse) => Promise<void>;
|
|
97
|
+
handleGetConversation: (id: string, url: URL, res: ServerResponse, ifNoneMatch?: string) => Promise<void>;
|
|
98
|
+
handleSearch: (url: URL, res: ServerResponse) => Promise<void>;
|
|
99
|
+
handleSearchTarget: (id: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
100
|
+
handleListProjects: (url: URL, res: ServerResponse) => void;
|
|
101
|
+
handleGetPopularProjects: (url: URL, res: ServerResponse) => void;
|
|
102
|
+
handleGetProjectSummaries: (url: URL, res: ServerResponse) => void;
|
|
103
|
+
handlePairStart: (res: ServerResponse) => void;
|
|
104
|
+
handlePairExchange: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
105
|
+
handleBrowse: (url: URL, res: ServerResponse) => Promise<void>;
|
|
106
|
+
handleMkdir: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
107
|
+
handleWsOpen: (ws: WebSocket) => void;
|
|
108
|
+
handleWsMessage: (ws: WebSocket, raw: unknown, principal: Principal | null) => void;
|
|
109
|
+
handleWsClose: (ws: WebSocket) => void;
|
|
110
|
+
agentClient: AgentClient | null;
|
|
111
|
+
conversationWriter: ConversationWriter | null;
|
|
112
|
+
agentConfig: AgentConfig;
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=api-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-deps.d.ts","sourceRoot":"","sources":["../../../src/api/types/api-deps.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type ClaudeFlagValues, type PermissionMode } from "./claude-flags";
|
|
2
|
+
import { type FeatureFlagValues } from "./feature-flags";
|
|
3
|
+
export declare function generateApiKey(): string;
|
|
4
|
+
export declare function validateApiKey(provided: string, expected: string): boolean;
|
|
5
|
+
export declare function loadOrCreateApiKey(): string;
|
|
6
|
+
export declare function loadBrowseRoot(): string | undefined;
|
|
7
|
+
export declare function loadPublicUrl(): string | undefined;
|
|
8
|
+
export declare function loadBrowserCors(): string | undefined;
|
|
9
|
+
export declare function loadCacheDir(): string | undefined;
|
|
10
|
+
export declare function loadTailSize(): number | undefined;
|
|
11
|
+
export declare function loadPtyGracePeriodMs(): number | undefined;
|
|
12
|
+
export declare function loadDefaultPermissionMode(): PermissionMode | undefined;
|
|
13
|
+
export declare function setDefaultPermissionMode(mode: PermissionMode): void;
|
|
14
|
+
/**
|
|
15
|
+
* Whether interrupted sessions are re-started automatically at boot
|
|
16
|
+
* (persistence plan Phase 7a).
|
|
17
|
+
*
|
|
18
|
+
* **Tri-state on purpose.** `undefined` means the key is absent — the user has
|
|
19
|
+
* never been asked — and is what triggers the one-time prompt. It is not the
|
|
20
|
+
* same as `false`, which is a real answer and must never be re-asked.
|
|
21
|
+
* Collapsing the two would either nag on every boot or silently decide for
|
|
22
|
+
* someone who was never given the choice.
|
|
23
|
+
*
|
|
24
|
+
* Not a feature flag: feature flags gate behaviour *we* are unsure about, while
|
|
25
|
+
* this is a user preference with a persisted answer — the
|
|
26
|
+
* `default_permission_mode` shape, not the `codexSystemPrompt` shape.
|
|
27
|
+
*/
|
|
28
|
+
export declare function loadAutoResumeOnBoot(): boolean | undefined;
|
|
29
|
+
export declare function setAutoResumeOnBoot(value: boolean): void;
|
|
30
|
+
/**
|
|
31
|
+
* Allowlisted Claude CLI flags, stored as ONE line of JSON:
|
|
32
|
+
*
|
|
33
|
+
* claude_flags: {"permissionMode":"bypassPermissions","addDir":["/srv/a b"]}
|
|
34
|
+
*
|
|
35
|
+
* JSON rather than a bespoke encoding because JSON.stringify already escapes
|
|
36
|
+
* colons, quotes and spaces (killing the whole quoting-bug class) and emits no
|
|
37
|
+
* raw newlines, so the one-line invariant holds by construction. It is also a
|
|
38
|
+
* valid YAML flow mapping, so the file still parses if a real YAML reader is
|
|
39
|
+
* ever pointed at it.
|
|
40
|
+
*
|
|
41
|
+
* A malformed line yields {} plus a warning rather than throwing: server.yaml is
|
|
42
|
+
* hand-editable and a typo must never stop the server from booting.
|
|
43
|
+
*/
|
|
44
|
+
export declare function loadClaudeFlags(): ClaudeFlagValues;
|
|
45
|
+
export declare function setClaudeFlags(values: ClaudeFlagValues): void;
|
|
46
|
+
/** Free-text argv appended after the allowlisted flags. Unvalidated by design. */
|
|
47
|
+
export declare function loadClaudeExtraArgs(): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Throws on an embedded newline rather than silently sanitizing: a newline would
|
|
50
|
+
* corrupt the flat one-line-per-key file, and the caller (the HTTP layer) should
|
|
51
|
+
* surface that to the user as a validation error instead of quietly rewriting
|
|
52
|
+
* what they typed.
|
|
53
|
+
*/
|
|
54
|
+
export declare function setClaudeExtraArgs(text: string | undefined): void;
|
|
55
|
+
/**
|
|
56
|
+
* Server feature flags, stored as ONE line of JSON — same encoding and the same
|
|
57
|
+
* reasons as claude_flags above:
|
|
58
|
+
*
|
|
59
|
+
* feature_flags: {"codexSystemPrompt":true}
|
|
60
|
+
*
|
|
61
|
+
* Keys must match `FEATURE_FLAGS` object keys (`ptyHost`), not env var names
|
|
62
|
+
* (`THREADBASE_FEATURE_PTY_HOST`). Unknown keys are dropped.
|
|
63
|
+
*
|
|
64
|
+
* Read-only from this module's perspective: nothing writes this key, because
|
|
65
|
+
* flags resolve at boot and there is no runtime-mutation endpoint. Add a
|
|
66
|
+
* setFeatureFlags() alongside a PUT, if one is ever added.
|
|
67
|
+
*
|
|
68
|
+
* A malformed line yields {} plus a warning rather than throwing, so a typo in a
|
|
69
|
+
* hand-edited server.yaml costs the flag, not the boot.
|
|
70
|
+
*/
|
|
71
|
+
export declare function loadFeatureFlags(): FeatureFlagValues;
|
|
72
|
+
export type PublicUrlValidation = {
|
|
73
|
+
ok: true;
|
|
74
|
+
normalized: string;
|
|
75
|
+
} | {
|
|
76
|
+
ok: false;
|
|
77
|
+
error: string;
|
|
78
|
+
};
|
|
79
|
+
export declare function validatePublicUrl(raw: string): PublicUrlValidation;
|
|
80
|
+
export declare function setApiKey(key: string): void;
|
|
81
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,iBAAiB,CAAC;AAcpF,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAqB3C;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CASnD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CASlD;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CASpD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CASjD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CASjD;AAKD,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CASzD;AAED,wBAAgB,yBAAyB,IAAI,cAAc,GAAG,SAAS,CAUtE;AAgDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAY1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAExD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAclD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAG7D;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAUxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,CAcpD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAkBlE;AAMD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA0B3C"}
|
package/dist/browse.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown when a browse target is inside the root but does not exist on disk
|
|
3
|
+
* (e.g. a mobile-cached path whose folder was since moved or deleted). Lets the
|
|
4
|
+
* browse handler answer 404 instead of conflating it with an out-of-root 400.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BrowsePathNotFoundError extends Error {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveBrowsePath(browseRoot: string, relativePath: string): Promise<string>;
|
|
10
|
+
export declare function listDirectories(absolutePath: string): Promise<Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
}>>;
|
|
13
|
+
export declare function listFiles(absolutePath: string): Promise<Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
}>>;
|
|
16
|
+
export declare function createDirectory(parentAbsolutePath: string, name: string): Promise<string>;
|
|
17
|
+
//# sourceMappingURL=browse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../src/browse.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCjG;AAED,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAM5F;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMtF;AAED,wBAAsB,eAAe,CAAC,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa/F"}
|