This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

stigmergic / src / container.ts
1.8 kB 44 lines
1import { Container } from "@cloudflare/containers"; 2import type { DurableObject } from "cloudflare:workers"; 3 4interface ContainerEnv { 5 CARRY_GITHUB_TOKEN: string; 6 OBSIDIAN_AUTH_TOKEN: string; 7 OBSIDIAN_ENCRYPTION_KEY: string; 8 OBSIDIAN_ENCRYPTION_SALT: string; 9 LETTA_API_KEY: string; 10 LETTA_AGENT_ID: string; 11} 12 13export class StrataContainer extends Container<ContainerEnv> { 14 defaultPort = 8080; 15 sleepAfter = "5m"; 16 17 constructor(ctx: DurableObject["ctx"], env: ContainerEnv) { 18 super(ctx, env); 19 // Set env vars before container starts — inject secrets from worker bindings 20 this.envVars = { 21 VAULT_PATH: "/data/vault", 22 CARRY_PATH: "/data/carry", 23 CARRY_BRANCH: "main", 24 ...(env.CARRY_GITHUB_TOKEN ? { CARRY_GITHUB_TOKEN: env.CARRY_GITHUB_TOKEN } : {}), 25 ...(env.OBSIDIAN_AUTH_TOKEN ? { OBSIDIAN_AUTH_TOKEN: env.OBSIDIAN_AUTH_TOKEN } : {}), 26 OBSIDIAN_VAULT_ID: "6472c50492efb918c2878e61048218f2", 27 OBSIDIAN_VAULT_NAME: "notes", 28 OBSIDIAN_SYNC_HOST: "sync-53.obsidian.md", 29 ...(env.OBSIDIAN_ENCRYPTION_KEY ? { OBSIDIAN_ENCRYPTION_KEY: env.OBSIDIAN_ENCRYPTION_KEY } : {}), 30 ...(env.OBSIDIAN_ENCRYPTION_SALT ? { OBSIDIAN_ENCRYPTION_SALT: env.OBSIDIAN_ENCRYPTION_SALT } : {}), 31 ...(env.LETTA_API_KEY ? { LETTA_API_KEY: env.LETTA_API_KEY } : {}), 32 ...(env.LETTA_AGENT_ID ? { LETTA_AGENT_ID: env.LETTA_AGENT_ID } : {}), 33 }; 34 } 35 36 async onStart() { 37 const has = (k: string) => !!this.envVars?.[k]; 38 console.log("[strata-container] started, carry:", has("CARRY_GITHUB_TOKEN") ? "set" : "missing", "obsidian:", has("OBSIDIAN_AUTH_TOKEN") ? "set" : "missing", "letta:", has("LETTA_API_KEY") ? "set" : "missing"); 39 } 40 41 async onStop() { 42 console.log("[strata-container] stopped"); 43 } 44}