@kbve/droid 0.0.6 → 0.1.2
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/droid.mjs +2312 -74
- package/index.d.ts +32 -0
- package/lib/agents/api-types.d.ts +121 -0
- package/lib/agents/api-types.d.ts.map +1 -0
- package/lib/agents/auth/init.d.ts +8 -0
- package/lib/agents/auth/init.d.ts.map +1 -0
- package/lib/agents/cache.d.ts +9 -0
- package/lib/agents/cache.d.ts.map +1 -0
- package/lib/agents/client/callGuildVault.d.ts +3 -0
- package/lib/agents/client/callGuildVault.d.ts.map +1 -0
- package/lib/agents/client/callJson.d.ts +3 -0
- package/lib/agents/client/callJson.d.ts.map +1 -0
- package/lib/agents/config.d.ts +36 -0
- package/lib/agents/config.d.ts.map +1 -0
- package/lib/agents/constants.d.ts +11 -0
- package/lib/agents/constants.d.ts.map +1 -0
- package/lib/agents/createAgents.d.ts +4 -0
- package/lib/agents/createAgents.d.ts.map +1 -0
- package/lib/agents/ctx.d.ts +46 -0
- package/lib/agents/ctx.d.ts.map +1 -0
- package/lib/agents/discord/bot.d.ts +21 -0
- package/lib/agents/discord/bot.d.ts.map +1 -0
- package/lib/agents/discord/guilds.d.ts +8 -0
- package/lib/agents/discord/guilds.d.ts.map +1 -0
- package/lib/agents/formDrafts.d.ts +5 -0
- package/lib/agents/formDrafts.d.ts.map +1 -0
- package/lib/agents/generated/agents-schema.d.ts +73 -0
- package/lib/agents/generated/agents-schema.d.ts.map +1 -0
- package/lib/agents/generated/discordsh-agents-schema.d.ts +71 -0
- package/lib/agents/generated/discordsh-agents-schema.d.ts.map +1 -0
- package/lib/agents/github/backfill.d.ts +23 -0
- package/lib/agents/github/backfill.d.ts.map +1 -0
- package/lib/agents/github/events.d.ts +10 -0
- package/lib/agents/github/events.d.ts.map +1 -0
- package/lib/agents/github/pat.d.ts +13 -0
- package/lib/agents/github/pat.d.ts.map +1 -0
- package/lib/agents/github/repoConfig.d.ts +25 -0
- package/lib/agents/github/repoConfig.d.ts.map +1 -0
- package/lib/agents/github/tokens.d.ts +22 -0
- package/lib/agents/github/tokens.d.ts.map +1 -0
- package/lib/agents/github/webhook.d.ts +37 -0
- package/lib/agents/github/webhook.d.ts.map +1 -0
- package/lib/agents/index.d.ts +8 -0
- package/lib/agents/index.d.ts.map +1 -0
- package/lib/agents/state/atoms.d.ts +122 -0
- package/lib/agents/state/atoms.d.ts.map +1 -0
- package/lib/agents/types.d.ts +65 -0
- package/lib/agents/types.d.ts.map +1 -0
- package/lib/gateway/SupabaseGateway.d.ts +38 -0
- package/lib/gateway/SupabaseGateway.d.ts.map +1 -0
- package/lib/gateway/WorkerCommunication.d.ts +39 -0
- package/lib/gateway/WorkerCommunication.d.ts.map +1 -0
- package/lib/gateway/WorkerPool.d.ts +55 -0
- package/lib/gateway/WorkerPool.d.ts.map +1 -0
- package/lib/gateway/capabilities.d.ts +23 -0
- package/lib/gateway/capabilities.d.ts.map +1 -0
- package/lib/gateway/index.d.ts +9 -0
- package/lib/gateway/index.d.ts.map +1 -0
- package/lib/gateway/strategies/DirectStrategy.d.ts +52 -0
- package/lib/gateway/strategies/DirectStrategy.d.ts.map +1 -0
- package/lib/gateway/strategies/SharedWorkerStrategy.d.ts +46 -0
- package/lib/gateway/strategies/SharedWorkerStrategy.d.ts.map +1 -0
- package/lib/gateway/strategies/WebWorkerStrategy.d.ts +45 -0
- package/lib/gateway/strategies/WebWorkerStrategy.d.ts.map +1 -0
- package/lib/gateway/types.d.ts +81 -0
- package/lib/gateway/types.d.ts.map +1 -0
- package/lib/workers/canvas-ui-renderer.d.ts +25 -0
- package/lib/workers/canvas-ui-renderer.d.ts.map +1 -0
- package/lib/workers/canvas-worker.d.ts +14 -0
- package/lib/workers/canvas-worker.d.ts.map +1 -0
- package/lib/workers/canvas-worker.js +5 -302
- package/lib/workers/data.d.ts +40 -0
- package/lib/workers/data.d.ts.map +1 -0
- package/lib/workers/db-worker.d.ts +69 -0
- package/lib/workers/db-worker.d.ts.map +1 -0
- package/lib/workers/db-worker.js +13 -3636
- package/lib/workers/events.d.ts +11 -0
- package/lib/workers/events.d.ts.map +1 -0
- package/lib/workers/flexbuilder.d.ts +4 -0
- package/lib/workers/flexbuilder.d.ts.map +1 -0
- package/lib/workers/init.d.ts +11 -0
- package/lib/workers/init.d.ts.map +1 -0
- package/lib/workers/main.d.ts +105 -0
- package/lib/workers/main.d.ts.map +1 -0
- package/lib/workers/supabase-db-worker.d.ts +2 -0
- package/lib/workers/supabase-db-worker.d.ts.map +1 -0
- package/lib/workers/supabase-db-worker.js +23 -0
- package/lib/workers/supabase-shared-worker.d.ts +2 -0
- package/lib/workers/supabase-shared-worker.d.ts.map +1 -0
- package/lib/workers/supabase-shared-worker.js +25 -0
- package/lib/workers/tools.d.ts +4 -0
- package/lib/workers/tools.d.ts.map +1 -0
- package/lib/workers/validate.d.ts +15 -0
- package/lib/workers/validate.d.ts.map +1 -0
- package/lib/workers/ws-worker.d.ts +10 -0
- package/lib/workers/ws-worker.d.ts.map +1 -0
- package/lib/workers/ws-worker.js +5 -273
- package/main.js +5711 -0
- package/package.json +18 -6
- package/src/index.ts +41 -13
- package/src/lib/agents/api-types.ts +170 -0
- package/src/lib/agents/auth/init.ts +200 -0
- package/src/lib/agents/cache.ts +127 -0
- package/src/lib/agents/client/callGuildVault.ts +71 -0
- package/src/lib/agents/client/callJson.ts +64 -0
- package/src/lib/agents/config.ts +83 -0
- package/src/lib/agents/constants.ts +11 -0
- package/src/lib/agents/createAgents.ts +62 -0
- package/src/lib/agents/ctx.ts +63 -0
- package/src/lib/agents/discord/bot.ts +169 -0
- package/src/lib/agents/discord/guilds.ts +106 -0
- package/src/lib/agents/formDrafts.ts +55 -0
- package/src/lib/agents/generated/agents-schema.ts +155 -0
- package/src/lib/agents/generated/discordsh-agents-schema.ts +96 -0
- package/src/lib/agents/github/backfill.ts +126 -0
- package/src/lib/agents/github/events.ts +131 -0
- package/src/lib/agents/github/pat.ts +150 -0
- package/src/lib/agents/github/repoConfig.ts +240 -0
- package/src/lib/agents/github/tokens.ts +222 -0
- package/src/lib/agents/github/webhook.ts +349 -0
- package/src/lib/agents/index.ts +35 -0
- package/src/lib/agents/state/atoms.ts +122 -0
- package/src/lib/agents/types.ts +83 -0
- package/src/lib/api.ts +71 -0
- package/src/lib/droid.spec.ts +14 -19
- package/src/lib/droid.ts +48 -4
- package/src/lib/gateway/SupabaseGateway.ts +236 -0
- package/src/lib/gateway/WorkerCommunication.ts +132 -0
- package/src/lib/gateway/WorkerPool.ts +304 -0
- package/src/lib/gateway/capabilities.spec.ts +144 -0
- package/src/lib/gateway/capabilities.ts +80 -0
- package/src/lib/gateway/index.ts +15 -0
- package/src/lib/gateway/strategies/DirectStrategy.ts +443 -0
- package/src/lib/gateway/strategies/SharedWorkerStrategy.ts +278 -0
- package/src/lib/gateway/strategies/WebWorkerStrategy.ts +278 -0
- package/src/lib/gateway/types.ts +139 -0
- package/src/lib/mod/mod-manager.ts +13 -8
- package/src/lib/mod/module/bento/mod-bento.worker.ts +1 -1
- package/src/lib/mod/module/supabase/mod-supabase.spec.ts +21 -25
- package/src/lib/mod/module/supabase/mod-supabase.ts +73 -0
- package/src/lib/mod/module/supabase/mod-supabase.worker.ts +1 -56
- package/src/lib/state/auth.spec.ts +58 -0
- package/src/lib/state/auth.ts +148 -0
- package/src/lib/state/bento.spec.ts +76 -0
- package/src/lib/state/bento.ts +51 -0
- package/src/lib/state/index.ts +98 -0
- package/src/lib/state/overlay-manager.ts +125 -0
- package/src/lib/state/profile-sync.ts +214 -0
- package/src/lib/state/profile.ts +155 -0
- package/src/lib/state/router.ts +24 -0
- package/src/lib/state/staff.ts +128 -0
- package/src/lib/state/sync-bus.ts +109 -0
- package/src/lib/state/theme-sync.ts +75 -0
- package/src/lib/state/toasts.spec.ts +106 -0
- package/src/lib/state/toasts.ts +34 -0
- package/src/lib/state/ui.spec.ts +148 -0
- package/src/lib/state/ui.ts +45 -0
- package/src/lib/state/welcome-toast.spec.ts +101 -0
- package/src/lib/state/welcome-toast.ts +76 -0
- package/src/lib/sw-recovery.spec.ts +165 -0
- package/src/lib/sw-recovery.ts +141 -0
- package/src/lib/types/bento.spec.ts +116 -0
- package/src/lib/types/bento.ts +94 -55
- package/src/lib/types/event-schemas.spec.ts +120 -0
- package/src/lib/types/event-types.spec.ts +96 -0
- package/src/lib/types/event-types.ts +113 -3
- package/src/lib/types/modules.ts +12 -5
- package/src/lib/types/ui-event-types.ts +66 -0
- package/src/lib/workers/canvas-ui-renderer.ts +266 -0
- package/src/lib/workers/canvas-worker.ts +94 -9
- package/src/lib/workers/data.ts +64 -37
- package/src/lib/workers/db-worker.ts +105 -32
- package/src/lib/workers/events.spec.ts +208 -0
- package/src/lib/workers/events.ts +27 -14
- package/src/lib/workers/flexbuilder.ts +2 -2
- package/src/lib/workers/init.ts +25 -17
- package/src/lib/workers/main.ts +506 -327
- package/src/lib/workers/supabase-db-worker.ts +243 -0
- package/src/lib/workers/supabase-shared-worker.ts +607 -0
- package/src/lib/workers/validate.ts +64 -0
- package/src/lib/workers/ws-worker.spec.ts +41 -0
- package/src/lib/workers/ws-worker.ts +255 -31
- package/src/setup-vitest.ts +4 -2
- package/src/types.ts +30 -0
- package/src/vite-env.d.ts +1 -0
- package/workers/main.js +2 -1125
- package/comlink.js +0 -253
- package/index.js +0 -2972
- package/reference.js +0 -259
- package/src/types.d.ts +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repoConfig.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/agents/github/repoConfig.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE5E,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS;4BAGzB,OAAO,CACzC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAC/C;8BAesC,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAAC;yCAYrB,MAAM,SAAS,MAAM,EAAE,KAAG,IAAI;uCAWhC,MAAM,SAAS,MAAM,EAAE,KAAG,IAAI;uCAO9B,MAAM,KAAG,IAAI;yCAU7C,MAAM,sBAEb,OAAO,CAAC,MAAM,CAAC;sCAoB6B,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAwBxC,OAAO,CACrC,MAAM,CAAC;QAAE,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CACnC;2BAYmC,eAAe,KAAG,OAAO,CAAC,MAAM,CAAC;qCAa3D,MAAM,OACV,eAAe,KAClB,IAAI;mCAYG,MAAM,SACR,OAAO,CAAC,kBAAkB,CAAC,KAChC,IAAI;mCAS+B,MAAM,KAAG,IAAI;qCAUzC,MAAM,sBAEb,OAAO,CAAC,MAAM,CAAC;kCAoByB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EAwCnE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AgentsCtx } from '../ctx';
|
|
2
|
+
import { AgentsApi } from '../api-types';
|
|
3
|
+
import { TokenServiceValue } from '../generated/agents-schema';
|
|
4
|
+
import { AgentTokenRow, Result } from '../types';
|
|
5
|
+
export declare function makeTokens(ctx: AgentsCtx, api: AgentsApi): {
|
|
6
|
+
loadTokens: (guildId: string, force?: boolean) => Promise<void>;
|
|
7
|
+
addToken: (input: {
|
|
8
|
+
tokenName: string;
|
|
9
|
+
service: TokenServiceValue;
|
|
10
|
+
tokenValue: string;
|
|
11
|
+
description?: string | null;
|
|
12
|
+
}) => Promise<Result<{
|
|
13
|
+
tokenId: string;
|
|
14
|
+
}>>;
|
|
15
|
+
deleteToken: (tokenId: string) => Promise<Result>;
|
|
16
|
+
peekToken: (service: TokenServiceValue) => Promise<Result<{
|
|
17
|
+
value: string | null;
|
|
18
|
+
}>>;
|
|
19
|
+
toggleToken: (tokenId: string, isActive: boolean) => Promise<Result>;
|
|
20
|
+
hasService: (service: TokenServiceValue) => AgentTokenRow | null;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/agents/github/tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEN,KAAK,iBAAiB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEtD,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS;0BAGrB,MAAM,sBAAkB,OAAO,CAAC,IAAI,CAAC;sBA4FzC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,iBAAiB,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,KAAG,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;2BA2BJ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;yBAwBlD,iBAAiB,KACxB,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;2BAuBlC,MAAM,YACL,OAAO,KACf,OAAO,CAAC,MAAM,CAAC;0BAkBW,iBAAiB,KAAG,aAAa,GAAG,IAAI;EAiBrE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AgentsCtx } from '../ctx';
|
|
2
|
+
import { AgentsApi } from '../api-types';
|
|
3
|
+
import { GithubRepoHook, Result, WebhookInstallResult } from '../types';
|
|
4
|
+
export declare function makeWebhook(ctx: AgentsCtx, api: AgentsApi): {
|
|
5
|
+
setWebhookDraft: (guildId: string, secret: string | null) => void;
|
|
6
|
+
clearWebhookError: (guildId: string) => void;
|
|
7
|
+
saveWebhookDraft: (guildId: string, tokenName: string, description: string) => Promise<Result<{
|
|
8
|
+
tokenId: string;
|
|
9
|
+
}>>;
|
|
10
|
+
installRepoWebhook: (guildId: string, owner: string, repo: string) => Promise<WebhookInstallResult | {
|
|
11
|
+
ok: false;
|
|
12
|
+
error: string;
|
|
13
|
+
}>;
|
|
14
|
+
pingRepoWebhook: (guildId: string, owner: string, repo: string) => Promise<{
|
|
15
|
+
ok: true;
|
|
16
|
+
hookId: number;
|
|
17
|
+
url: string;
|
|
18
|
+
} | {
|
|
19
|
+
ok: false;
|
|
20
|
+
error: string;
|
|
21
|
+
retryAfterMs?: number;
|
|
22
|
+
}>;
|
|
23
|
+
listRepoWebhooks: (guildId: string, owner: string, repo: string) => Promise<Result<{
|
|
24
|
+
expectedUrl: string;
|
|
25
|
+
hooks: GithubRepoHook[];
|
|
26
|
+
}>>;
|
|
27
|
+
setWebhookInstallSelected: (guildId: string, repo: string) => void;
|
|
28
|
+
clearWebhookInstallResult: (guildId: string) => void;
|
|
29
|
+
installWebhookForGuild: (guildId: string) => Promise<void>;
|
|
30
|
+
pingWebhookForGuild: (guildId: string) => Promise<void>;
|
|
31
|
+
verifyWebhookInstall: (guildId: string, repoFull: string) => Promise<void>;
|
|
32
|
+
rotateWebhookForGuild: (guildId: string, owner: string, repo: string) => Promise<void>;
|
|
33
|
+
deleteWebhookForGuild: (guildId: string, owner: string, repo: string) => Promise<Result>;
|
|
34
|
+
loadWebhookDeliveries: (guildId: string, owner: string, repo: string, limit?: number) => Promise<void>;
|
|
35
|
+
webhookUrlFor: (guildId: string) => string;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/agents/github/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EACX,cAAc,EACd,MAAM,EAEN,oBAAoB,EACpB,MAAM,UAAU,CAAC;AAElB,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS;+BAGvB,MAAM,UAAU,MAAM,GAAG,IAAI,KAAG,IAAI;iCAOlC,MAAM,KAAG,IAAI;gCAOvC,MAAM,aACJ,MAAM,eACJ,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;kCAgC7B,MAAM,SACR,MAAM,QACP,MAAM,KACV,OAAO,CAAC,oBAAoB,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;+BAqBrD,MAAM,SACR,MAAM,QACP,MAAM,KACV,OAAO,CACP;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACzC;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CACrD;gCAgBS,MAAM,SACR,MAAM,QACP,MAAM,KACV,OAAO,CAAC,MAAM,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;yCA2BxB,MAAM,QAAQ,MAAM,KAAG,IAAI;yCAO3B,MAAM,KAAG,IAAI;sCAMV,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;mCAqBzB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;oCAsBxD,MAAM,YACL,MAAM,KACd,OAAO,CAAC,IAAI,CAAC;qCAqBN,MAAM,SACR,MAAM,QACP,MAAM,KACV,OAAO,CAAC,IAAI,CAAC;qCAyBN,MAAM,SACR,MAAM,QACP,MAAM,KACV,OAAO,CAAC,MAAM,CAAC;qCA0BR,MAAM,SACR,MAAM,QACP,MAAM,qBAEV,OAAO,CAAC,IAAI,CAAC;6BA8CgB,MAAM,KAAG,MAAM;EAqB/C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { createAgents } from './createAgents';
|
|
2
|
+
export type { AgentsApi, AgentsMethods } from './api-types';
|
|
3
|
+
export type { AgentsStore } from './state/atoms';
|
|
4
|
+
export type { AgentsConfig, AgentsNotice, AgentsSession, ResolvedAgentsConfig, } from './config';
|
|
5
|
+
export { emptyBotConfigFormDraft, botConfigToFormDraft, botConfigFromFormDraft, } from './formDrafts';
|
|
6
|
+
export { parseJwtPayload, extractJwtOwnedGuildIds } from './cache';
|
|
7
|
+
export type { AgentTokenRow, AuthState as AgentsAuthState, BackfillResult, BotConfigFormDraft, DiscordChannel, DiscordForumChannel, DiscordGuild, DiscordshConfig, EventQueueStats, FailedEvent, GithubRepoHook, GuildChannels, PatValidation, PendingEvent, Result as AgentsResult, WebhookDelivery, WebhookInstallResult, WebhookOpResult, } from './types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,oBAAoB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACnE,YAAY,EACX,aAAa,EACb,SAAS,IAAI,eAAe,EAC5B,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,MAAM,IAAI,YAAY,EACtB,eAAe,EACf,oBAAoB,EACpB,eAAe,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { WritableAtom } from 'nanostores';
|
|
2
|
+
import { AuthState, BackfillResult, BotConfigFormDraft, DiscordGuild, GuildChannels, PatValidation, WebhookInstallResult, WebhookOpResult } from '../types';
|
|
3
|
+
type Fail = {
|
|
4
|
+
ok: false;
|
|
5
|
+
error: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function createAgentsStore(): {
|
|
8
|
+
$authState: import('nanostores').PreinitializedWritableAtom<AuthState> & object;
|
|
9
|
+
$accessToken: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
10
|
+
$providerToken: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
11
|
+
$userId: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
12
|
+
$guilds: import('nanostores').PreinitializedWritableAtom<DiscordGuild[]> & object;
|
|
13
|
+
$guildsLoading: import('nanostores').PreinitializedWritableAtom<boolean> & object;
|
|
14
|
+
$guildsError: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
15
|
+
$guildsStale: import('nanostores').PreinitializedWritableAtom<boolean> & object;
|
|
16
|
+
$selectedGuildId: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
17
|
+
$tokens: import('nanostores').PreinitializedWritableAtom<{
|
|
18
|
+
token_id: string;
|
|
19
|
+
token_name: string;
|
|
20
|
+
service: string;
|
|
21
|
+
is_active: boolean;
|
|
22
|
+
created_at: string;
|
|
23
|
+
description?: string | null | undefined;
|
|
24
|
+
updated_at?: string | null | undefined;
|
|
25
|
+
}[]> & object;
|
|
26
|
+
$tokensLoading: import('nanostores').PreinitializedWritableAtom<boolean> & object;
|
|
27
|
+
$tokensError: import('nanostores').PreinitializedWritableAtom<string | null> & object;
|
|
28
|
+
$botConfigDrafts: import('nanostores').PreinitializedWritableAtom<Record<string, BotConfigFormDraft>> & object;
|
|
29
|
+
$botConfigSavingFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
30
|
+
$botConfigErrors: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
31
|
+
$botConfigLoadedFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
32
|
+
$repoAllowlistDrafts: import('nanostores').PreinitializedWritableAtom<Record<string, string[]>> & object;
|
|
33
|
+
$repoAllowlistSavingFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
34
|
+
$repoAllowlistErrors: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
35
|
+
$repoAllowlistLoadedFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
36
|
+
$webhookDrafts: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
37
|
+
$webhookSavingFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
38
|
+
$webhookErrors: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
39
|
+
$patDrafts: import('nanostores').PreinitializedWritableAtom<Record<string, string>> & object;
|
|
40
|
+
$patValidatedFor: import('nanostores').PreinitializedWritableAtom<Record<string, PatValidation | null>> & object;
|
|
41
|
+
$patValidatingFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
42
|
+
$patSavingFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
43
|
+
$patErrors: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
44
|
+
$backfillDrafts: import('nanostores').PreinitializedWritableAtom<Record<string, {
|
|
45
|
+
owner: string;
|
|
46
|
+
repo: string;
|
|
47
|
+
}>> & object;
|
|
48
|
+
$backfillBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
49
|
+
$backfillResults: import('nanostores').PreinitializedWritableAtom<Record<string, BackfillResult | Fail | null>> & object;
|
|
50
|
+
$webhookInstallSelected: import('nanostores').PreinitializedWritableAtom<Record<string, string>> & object;
|
|
51
|
+
$webhookInstallBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
52
|
+
$webhookInstallResults: import('nanostores').PreinitializedWritableAtom<Record<string, WebhookInstallResult | Fail | null>> & object;
|
|
53
|
+
$webhookPingBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
54
|
+
$webhookPingResults: import('nanostores').PreinitializedWritableAtom<Record<string, WebhookOpResult | Fail | null>> & object;
|
|
55
|
+
$guildChannels: WritableAtom<Record<string, GuildChannels & {
|
|
56
|
+
cached_at: number;
|
|
57
|
+
}>>;
|
|
58
|
+
$guildChannelsLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
59
|
+
$guildChannelsError: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
60
|
+
$botMembership: WritableAtom<Record<string, {
|
|
61
|
+
isMember: boolean;
|
|
62
|
+
cached_at: number;
|
|
63
|
+
}>>;
|
|
64
|
+
$botMembershipLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
65
|
+
$botMembershipError: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
66
|
+
$webhookDeliveries: import('nanostores').PreinitializedWritableAtom<Record<string, {
|
|
67
|
+
id: number;
|
|
68
|
+
guid: string;
|
|
69
|
+
delivered_at: string;
|
|
70
|
+
redelivery: boolean;
|
|
71
|
+
duration: number;
|
|
72
|
+
status: string;
|
|
73
|
+
status_code: number;
|
|
74
|
+
event: string;
|
|
75
|
+
action?: string | null | undefined;
|
|
76
|
+
}[]>> & object;
|
|
77
|
+
$webhookDeliveriesLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
78
|
+
$webhookDeliveriesError: import('nanostores').PreinitializedWritableAtom<Record<string, string | null>> & object;
|
|
79
|
+
$webhookRotateBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
80
|
+
$webhookRotateResults: import('nanostores').PreinitializedWritableAtom<Record<string, WebhookOpResult | Fail | null>> & object;
|
|
81
|
+
$webhookDeleteBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
82
|
+
$eventStats: import('nanostores').PreinitializedWritableAtom<Record<string, {
|
|
83
|
+
pending_count: number;
|
|
84
|
+
in_flight_count: number;
|
|
85
|
+
delivered_count: number;
|
|
86
|
+
failed_count: number;
|
|
87
|
+
last_delivered_at?: string | null | undefined;
|
|
88
|
+
last_recorded_at?: string | null | undefined;
|
|
89
|
+
oldest_pending_at?: string | null | undefined;
|
|
90
|
+
}>> & object;
|
|
91
|
+
$eventStatsLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
92
|
+
$failedEvents: import('nanostores').PreinitializedWritableAtom<Record<string, {
|
|
93
|
+
id: number;
|
|
94
|
+
owner: string;
|
|
95
|
+
repo: string;
|
|
96
|
+
number: number;
|
|
97
|
+
event_type: string;
|
|
98
|
+
delivery_attempts: number;
|
|
99
|
+
created_at: string;
|
|
100
|
+
updated_at: string;
|
|
101
|
+
actor?: string | null | undefined;
|
|
102
|
+
last_error?: string | null | undefined;
|
|
103
|
+
}[]>> & object;
|
|
104
|
+
$failedEventsLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
105
|
+
$pendingEvents: import('nanostores').PreinitializedWritableAtom<Record<string, {
|
|
106
|
+
id: number;
|
|
107
|
+
owner: string;
|
|
108
|
+
repo: string;
|
|
109
|
+
number: number;
|
|
110
|
+
event_type: string;
|
|
111
|
+
delivery_state: number;
|
|
112
|
+
delivery_attempts: number;
|
|
113
|
+
created_at: string;
|
|
114
|
+
actor?: string | null | undefined;
|
|
115
|
+
claimed_at?: string | null | undefined;
|
|
116
|
+
}[]>> & object;
|
|
117
|
+
$pendingEventsLoading: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
118
|
+
$eventRequeueBusyFor: import('nanostores').PreinitializedWritableAtom<Record<string, boolean>> & object;
|
|
119
|
+
};
|
|
120
|
+
export type AgentsStore = ReturnType<typeof createAgentsStore>;
|
|
121
|
+
export {};
|
|
122
|
+
//# sourceMappingURL=atoms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoms.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/agents/state/atoms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAEX,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,YAAY,EAGZ,aAAa,EACb,aAAa,EAGb,oBAAoB,EACpB,eAAe,EACf,MAAM,UAAU,CAAC;AAElB,KAAK,IAAI,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAezC,wBAAgB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsCe,MAAM;cAAQ,MAAM;;;;;;;;;;mBAmBrB,MAAM;;;;;kBAMvB,OAAO;mBAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBvD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export type AuthState = 'loading' | 'authenticated' | 'unauthenticated' | 'discord_reauth_required';
|
|
2
|
+
export interface DiscordGuild {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
icon: string | null;
|
|
6
|
+
owner: boolean;
|
|
7
|
+
permissions: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BotConfigFormDraft {
|
|
10
|
+
default_repo: string;
|
|
11
|
+
claim_channel_id: string;
|
|
12
|
+
forum_channel_id: string;
|
|
13
|
+
noticeboard_channel_id: string;
|
|
14
|
+
taskboard_channel_id: string;
|
|
15
|
+
max_assignees: string;
|
|
16
|
+
mirror_pr_events: boolean;
|
|
17
|
+
active: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type { AgentTokenRow, AgentError } from './generated/agents-schema';
|
|
20
|
+
export type { DiscordshConfig, GithubRepoHook, WebhookDelivery, EventQueueStats, FailedEvent, PendingEvent, } from './generated/discordsh-agents-schema';
|
|
21
|
+
export interface DiscordForumChannel {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
parent_id: string | null;
|
|
25
|
+
position: number;
|
|
26
|
+
}
|
|
27
|
+
export interface DiscordChannel {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
parent_id: string | null;
|
|
31
|
+
position: number;
|
|
32
|
+
}
|
|
33
|
+
export interface GuildChannels {
|
|
34
|
+
forums: DiscordChannel[];
|
|
35
|
+
texts: DiscordChannel[];
|
|
36
|
+
}
|
|
37
|
+
export interface PatValidation {
|
|
38
|
+
login: string;
|
|
39
|
+
scopes: string[];
|
|
40
|
+
tokenType: string;
|
|
41
|
+
}
|
|
42
|
+
export interface BackfillResult {
|
|
43
|
+
ok: true;
|
|
44
|
+
upserted: number;
|
|
45
|
+
pages: number;
|
|
46
|
+
rateLimitRemaining: number | null;
|
|
47
|
+
}
|
|
48
|
+
export interface WebhookInstallResult {
|
|
49
|
+
ok: true;
|
|
50
|
+
installed: boolean;
|
|
51
|
+
alreadyPresent: boolean;
|
|
52
|
+
hookId: number | null;
|
|
53
|
+
}
|
|
54
|
+
export interface WebhookOpResult {
|
|
55
|
+
ok: true;
|
|
56
|
+
hookId: number;
|
|
57
|
+
at: number;
|
|
58
|
+
}
|
|
59
|
+
export type Result<T = unknown> = ({
|
|
60
|
+
ok: true;
|
|
61
|
+
} & T) | {
|
|
62
|
+
ok: false;
|
|
63
|
+
error: string;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/agents/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAClB,SAAS,GACT,eAAe,GACf,iBAAiB,GACjB,yBAAyB,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,GACZ,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,cAAc,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACpC,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAC3B,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,CAAC,GAClB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ISupabaseStrategy, SelectOptions, SessionResponse, WebSocketStatus, StrategyType, GatewayConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* SupabaseGateway: Unified interface for all Supabase operations
|
|
4
|
+
*
|
|
5
|
+
* Automatically selects the best strategy based on browser capabilities:
|
|
6
|
+
* 1. SharedWorker + DB Worker Pool (desktop: Chrome, Firefox, Edge)
|
|
7
|
+
* 2. WebSocket Worker + DB Worker Pool (Android, Safari)
|
|
8
|
+
* 3. Direct/Main thread (fallback)
|
|
9
|
+
*
|
|
10
|
+
* All strategies implement the same interface, so application code is unchanged.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SupabaseGateway implements ISupabaseStrategy {
|
|
13
|
+
private strategy;
|
|
14
|
+
private strategyType;
|
|
15
|
+
constructor(config?: GatewayConfig);
|
|
16
|
+
getStrategyType(): StrategyType;
|
|
17
|
+
getStrategyDescription(): string;
|
|
18
|
+
init(url: string, anonKey: string, options?: Record<string, unknown>): Promise<SessionResponse>;
|
|
19
|
+
on(event: string, callback: (payload: unknown) => void): () => void;
|
|
20
|
+
getSession(): Promise<SessionResponse>;
|
|
21
|
+
signInWithPassword(email: string, password: string): Promise<SessionResponse>;
|
|
22
|
+
signOut(): Promise<void>;
|
|
23
|
+
select(table: string, opts?: SelectOptions): Promise<unknown[]>;
|
|
24
|
+
insert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
25
|
+
update(table: string, data: Record<string, unknown>, match: Record<string, unknown>): Promise<unknown[]>;
|
|
26
|
+
upsert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
27
|
+
delete(table: string, match: Record<string, unknown>): Promise<unknown[]>;
|
|
28
|
+
rpc(fn: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
29
|
+
subscribePostgres(key: string, params: Record<string, unknown>, callback: (payload: unknown) => void): () => void;
|
|
30
|
+
connectWebSocket(wsUrl?: string): Promise<WebSocketStatus>;
|
|
31
|
+
disconnectWebSocket(): Promise<void>;
|
|
32
|
+
sendWebSocketMessage(data: unknown): Promise<void>;
|
|
33
|
+
getWebSocketStatus(): Promise<WebSocketStatus>;
|
|
34
|
+
onWebSocketMessage(callback: (message: unknown) => void): () => void;
|
|
35
|
+
onWebSocketStatus(callback: (status: WebSocketStatus) => void): () => void;
|
|
36
|
+
terminate(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=SupabaseGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupabaseGateway.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/gateway/SupabaseGateway.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,MAAM,SAAS,CAAC;AAiBjB;;;;;;;;;GASG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,GAAE,aAAkB;IAsDtC,eAAe,IAAI,YAAY;IAI/B,sBAAsB,IAAI,MAAM;IAM1B,IAAI,CACT,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,eAAe,CAAC;IAuC3B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAInE,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAItC,kBAAkB,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;IAI3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI/D,MAAM,CACL,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACvD,OAAO,CAAC,OAAO,EAAE,CAAC;IAIrB,MAAM,CACL,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,EAAE,CAAC;IAIrB,MAAM,CACL,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACvD,OAAO,CAAC,OAAO,EAAE,CAAC;IAIrB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIzE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,iBAAiB,CAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAClC,MAAM,IAAI;IAIb,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI1D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAI9C,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAIpE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI;IAI1E,SAAS;CAGT"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BroadcastEvent } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* WorkerCommunication: Unified communication layer for workers
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - BroadcastChannel for real-time events
|
|
7
|
+
* - Works in SharedWorker, WebWorker, and main thread
|
|
8
|
+
*
|
|
9
|
+
* Note: This layer does NOT open IndexedDB. The SharedWorker is the single
|
|
10
|
+
* writer to the auth database (sb-auth-v2). All other contexts receive
|
|
11
|
+
* auth state via BroadcastChannel or postMessage.
|
|
12
|
+
*/
|
|
13
|
+
export declare class WorkerCommunication {
|
|
14
|
+
private bc;
|
|
15
|
+
private listeners;
|
|
16
|
+
private channelName;
|
|
17
|
+
constructor(channelName?: string);
|
|
18
|
+
private initBroadcastChannel;
|
|
19
|
+
/**
|
|
20
|
+
* Broadcast an event to all workers and tabs
|
|
21
|
+
*/
|
|
22
|
+
broadcast(event: BroadcastEvent): void;
|
|
23
|
+
private handleBroadcast;
|
|
24
|
+
/**
|
|
25
|
+
* Subscribe to events (local and broadcast)
|
|
26
|
+
*/
|
|
27
|
+
on(event: string, callback: (payload: unknown) => void): () => void;
|
|
28
|
+
private emit;
|
|
29
|
+
/**
|
|
30
|
+
* Check if BroadcastChannel is available
|
|
31
|
+
*/
|
|
32
|
+
hasBroadcastChannel(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Close connections
|
|
35
|
+
*/
|
|
36
|
+
close(): void;
|
|
37
|
+
}
|
|
38
|
+
export declare function getWorkerCommunication(channelName?: string): WorkerCommunication;
|
|
39
|
+
//# sourceMappingURL=WorkerCommunication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerCommunication.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/gateway/WorkerCommunication.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,EAAE,CAAiC;IAC3C,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,SAAoB;IAK3C,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc;IAU/B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAiBnE,OAAO,CAAC,IAAI;IAgBZ;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,KAAK;CAOL;AAOD,wBAAgB,sBAAsB,CACrC,WAAW,CAAC,EAAE,MAAM,GAClB,mBAAmB,CAKrB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface WorkerPoolConfig {
|
|
2
|
+
size: number;
|
|
3
|
+
workerUrl: string | URL;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* WorkerPool: Manages a pool of workers with round-robin load balancing
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Fixed-size pool (default: 3 workers)
|
|
10
|
+
* - Round-robin routing for database operations
|
|
11
|
+
* - Request/response tracking with UUIDs
|
|
12
|
+
* - Automatic error handling with exponential backoff retries
|
|
13
|
+
*/
|
|
14
|
+
export declare class WorkerPool {
|
|
15
|
+
private workers;
|
|
16
|
+
private poolSize;
|
|
17
|
+
private roundRobinIndex;
|
|
18
|
+
private pending;
|
|
19
|
+
private workerUrl;
|
|
20
|
+
private workerRetryCount;
|
|
21
|
+
private workerRetryTimers;
|
|
22
|
+
private readonly MAX_RETRY_ATTEMPTS;
|
|
23
|
+
private readonly BASE_RETRY_DELAY_MS;
|
|
24
|
+
private readonly MAX_RETRY_DELAY_MS;
|
|
25
|
+
private readonly REQUEST_TIMEOUT_MS;
|
|
26
|
+
constructor(config: WorkerPoolConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Initialize the worker pool
|
|
29
|
+
*/
|
|
30
|
+
init(): Promise<void>;
|
|
31
|
+
private getNextWorker;
|
|
32
|
+
private sendToWorker;
|
|
33
|
+
/**
|
|
34
|
+
* Send message to next available worker (round-robin)
|
|
35
|
+
*/
|
|
36
|
+
send<T>(type: string, payload?: unknown): Promise<T>;
|
|
37
|
+
private handleMessage;
|
|
38
|
+
private handleError;
|
|
39
|
+
private scheduleWorkerRecreation;
|
|
40
|
+
private recreateWorker;
|
|
41
|
+
/**
|
|
42
|
+
* Terminate all workers
|
|
43
|
+
*/
|
|
44
|
+
terminate(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Get pool statistics
|
|
47
|
+
*/
|
|
48
|
+
getStats(): {
|
|
49
|
+
size: number;
|
|
50
|
+
activeWorkers: number;
|
|
51
|
+
pendingRequests: number;
|
|
52
|
+
nextWorker: number;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=WorkerPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerPool.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/gateway/WorkerPool.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,OAAO,CAOX;IACJ,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,MAAM,EAAE,gBAAgB;IAKpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC3B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IA2CpB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAQpD,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,wBAAwB;YAkClB,cAAc;IAoC5B;;OAEG;IACH,SAAS;IAsBT;;OAEG;IACH,QAAQ;;;;;;CAQR"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BrowserCapabilities, StrategyType } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Detect browser capabilities for worker and communication support
|
|
4
|
+
*/
|
|
5
|
+
export declare function detectCapabilities(): BrowserCapabilities;
|
|
6
|
+
/**
|
|
7
|
+
* Select the best strategy based on browser capabilities
|
|
8
|
+
*
|
|
9
|
+
* Priority:
|
|
10
|
+
* 1. SharedWorker + Worker Pool (desktop Chrome, Firefox, Edge)
|
|
11
|
+
* 2. WebWorker Pool only (Android, Safari, or no SharedWorker)
|
|
12
|
+
* 3. Direct/Main thread (emergency fallback)
|
|
13
|
+
*/
|
|
14
|
+
export declare function selectStrategy(capabilities?: BrowserCapabilities): StrategyType;
|
|
15
|
+
/**
|
|
16
|
+
* Log detected capabilities for debugging
|
|
17
|
+
*/
|
|
18
|
+
export declare function logCapabilities(capabilities: BrowserCapabilities): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get a human-readable description of the selected strategy
|
|
21
|
+
*/
|
|
22
|
+
export declare function getStrategyDescription(strategy: StrategyType): string;
|
|
23
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/gateway/capabilities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,mBAAmB,CAqBxD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAe/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,mBAAmB,QAOhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CASrE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { SupabaseGateway } from './SupabaseGateway';
|
|
2
|
+
export { WorkerPool } from './WorkerPool';
|
|
3
|
+
export { getWorkerCommunication, WorkerCommunication } from './WorkerCommunication';
|
|
4
|
+
export { detectCapabilities, selectStrategy, logCapabilities, getStrategyDescription } from './capabilities';
|
|
5
|
+
export * from './types';
|
|
6
|
+
export { SharedWorkerStrategy } from './strategies/SharedWorkerStrategy';
|
|
7
|
+
export { WebWorkerStrategy } from './strategies/WebWorkerStrategy';
|
|
8
|
+
export { DirectStrategy } from './strategies/DirectStrategy';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/npm/droid/src/lib/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ISupabaseStrategy, SelectOptions, SessionResponse, WebSocketStatus } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* DirectStrategy: Everything runs in main thread
|
|
4
|
+
*
|
|
5
|
+
* Architecture:
|
|
6
|
+
* - No workers, all operations on main thread
|
|
7
|
+
* - Uses Supabase client directly
|
|
8
|
+
* - Implements same interface as worker strategies
|
|
9
|
+
*
|
|
10
|
+
* Best for: Browsers without Worker/BroadcastChannel support, or emergency fallback
|
|
11
|
+
*
|
|
12
|
+
* Note: Requires `@supabase/supabase-js` to be available at runtime.
|
|
13
|
+
* This strategy dynamically imports it to avoid bundling Supabase in the main droid build.
|
|
14
|
+
*/
|
|
15
|
+
export declare class DirectStrategy implements ISupabaseStrategy {
|
|
16
|
+
private client;
|
|
17
|
+
private ws;
|
|
18
|
+
private wsReconnectTimer;
|
|
19
|
+
private wsReconnectAttempts;
|
|
20
|
+
private wsHeartbeatTimer;
|
|
21
|
+
private wsLastPongTime;
|
|
22
|
+
private subscriptions;
|
|
23
|
+
private listeners;
|
|
24
|
+
private readonly WS_MAX_RECONNECT_ATTEMPTS;
|
|
25
|
+
private readonly WS_RECONNECT_DELAY_MS;
|
|
26
|
+
private readonly WS_HEARTBEAT_INTERVAL_MS;
|
|
27
|
+
private readonly WS_HEARTBEAT_TIMEOUT_MS;
|
|
28
|
+
init(url: string, anonKey: string, options?: Record<string, unknown>): Promise<SessionResponse>;
|
|
29
|
+
on(event: string, callback: (payload: unknown) => void): () => void;
|
|
30
|
+
private emit;
|
|
31
|
+
getSession(): Promise<SessionResponse>;
|
|
32
|
+
signInWithPassword(email: string, password: string): Promise<SessionResponse>;
|
|
33
|
+
signOut(): Promise<void>;
|
|
34
|
+
select(table: string, opts?: SelectOptions): Promise<unknown[]>;
|
|
35
|
+
insert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
36
|
+
update(table: string, data: Record<string, unknown>, match: Record<string, unknown>): Promise<unknown[]>;
|
|
37
|
+
upsert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
38
|
+
delete(table: string, match: Record<string, unknown>): Promise<unknown[]>;
|
|
39
|
+
rpc(fn: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
40
|
+
subscribePostgres(key: string, params: Record<string, unknown>, callback: (payload: unknown) => void): () => void;
|
|
41
|
+
connectWebSocket(wsUrl?: string): Promise<WebSocketStatus>;
|
|
42
|
+
disconnectWebSocket(): Promise<void>;
|
|
43
|
+
sendWebSocketMessage(data: unknown): Promise<void>;
|
|
44
|
+
getWebSocketStatus(): Promise<WebSocketStatus>;
|
|
45
|
+
onWebSocketMessage(callback: (message: unknown) => void): () => void;
|
|
46
|
+
onWebSocketStatus(callback: (status: WebSocketStatus) => void): () => void;
|
|
47
|
+
private getDefaultWebSocketUrl;
|
|
48
|
+
private startHeartbeat;
|
|
49
|
+
private stopHeartbeat;
|
|
50
|
+
terminate(): void;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=DirectStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectStrategy.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/gateway/strategies/DirectStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ISupabaseStrategy, SelectOptions, SessionResponse, WebSocketStatus } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* SharedWorkerStrategy: Uses SharedWorker for WebSocket + DB Worker Pool
|
|
4
|
+
*
|
|
5
|
+
* Architecture:
|
|
6
|
+
* - SharedWorker handles WebSocket, auth, and realtime (cross-tab sharing)
|
|
7
|
+
* - Worker pool (3 workers) handles database operations (parallel execution)
|
|
8
|
+
* - BroadcastChannel connects SharedWorker to worker pool
|
|
9
|
+
*
|
|
10
|
+
* Best for: Desktop Chrome, Firefox, Edge
|
|
11
|
+
*/
|
|
12
|
+
export declare class SharedWorkerStrategy implements ISupabaseStrategy {
|
|
13
|
+
private worker?;
|
|
14
|
+
private port?;
|
|
15
|
+
private workerPool?;
|
|
16
|
+
private pending;
|
|
17
|
+
private listeners;
|
|
18
|
+
private comm;
|
|
19
|
+
private sharedWorkerUrl;
|
|
20
|
+
private dbWorkerUrl;
|
|
21
|
+
private poolSize;
|
|
22
|
+
constructor(sharedWorkerUrl: string | URL, dbWorkerUrl: string | URL, poolSize?: number);
|
|
23
|
+
init(url: string, anonKey: string, options?: Record<string, unknown>): Promise<SessionResponse>;
|
|
24
|
+
private onMessage;
|
|
25
|
+
private send;
|
|
26
|
+
on(event: string, callback: (payload: unknown) => void): () => void;
|
|
27
|
+
private emit;
|
|
28
|
+
getSession(): Promise<SessionResponse>;
|
|
29
|
+
signInWithPassword(email: string, password: string): Promise<SessionResponse>;
|
|
30
|
+
signOut(): Promise<void>;
|
|
31
|
+
select(table: string, opts?: SelectOptions): Promise<unknown[]>;
|
|
32
|
+
insert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
33
|
+
update(table: string, data: Record<string, unknown>, match: Record<string, unknown>): Promise<unknown[]>;
|
|
34
|
+
upsert(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<unknown[]>;
|
|
35
|
+
delete(table: string, match: Record<string, unknown>): Promise<unknown[]>;
|
|
36
|
+
rpc(fn: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
37
|
+
subscribePostgres(key: string, params: Record<string, unknown>, callback: (payload: unknown) => void): () => void;
|
|
38
|
+
connectWebSocket(wsUrl?: string): Promise<WebSocketStatus>;
|
|
39
|
+
disconnectWebSocket(): Promise<void>;
|
|
40
|
+
sendWebSocketMessage(data: unknown): Promise<void>;
|
|
41
|
+
getWebSocketStatus(): Promise<WebSocketStatus>;
|
|
42
|
+
onWebSocketMessage(callback: (message: unknown) => void): () => void;
|
|
43
|
+
onWebSocketStatus(callback: (status: WebSocketStatus) => void): () => void;
|
|
44
|
+
terminate(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=SharedWorkerStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedWorkerStrategy.d.ts","sourceRoot":"","sources":["../../../../../../../packages/npm/droid/src/lib/gateway/strategies/SharedWorkerStrategy.ts"],"names":[],"mappings":"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"}
|