Просмотр исходного кода

Add flag system and auto-share functionality

- Add Flag module for environment variable configuration
- Implement OPENCODE_AUTO_SHARE flag to automatically share new sessions
- Update session creation to conditionally auto-share based on flag

🤖 Generated with [OpenCode](https://opencode.ai)

Co-Authored-By: OpenCode <[email protected]>
Dax Raad 8 месяцев назад
Родитель
Сommit
0f9c2c5c27
2 измененных файлов с 15 добавлено и 0 удалено
  1. 8 0
      packages/opencode/src/flag/flag.ts
  2. 7 0
      packages/opencode/src/session/index.ts

+ 8 - 0
packages/opencode/src/flag/flag.ts

@@ -0,0 +1,8 @@
+export namespace Flag {
+  export const OPENCODE_AUTO_SHARE = truthy("OPENCODE_AUTO_SHARE")
+
+  function truthy(key: string) {
+    const value = process.env[key]?.toLowerCase()
+    return value === "true" || value === "1"
+  }
+}

+ 7 - 0
packages/opencode/src/session/index.ts

@@ -27,6 +27,7 @@ import { MCP } from "../mcp"
 import { NamedError } from "../util/error"
 import type { Tool } from "../tool/tool"
 import { SystemPrompt } from "./system"
+import { Flag } from "../flag/flag"
 
 export namespace Session {
   const log = Log.create({ service: "session" })
@@ -92,6 +93,12 @@ export namespace Session {
     log.info("created", result)
     state().sessions.set(result.id, result)
     await Storage.writeJSON("session/info/" + result.id, result)
+    if (!result.parentID && Flag.OPENCODE_AUTO_SHARE)
+      share(result.id).then((share) => {
+        update(result.id, (draft) => {
+          draft.share = share
+        })
+      })
     Bus.publish(Event.Updated, {
       info: result,
     })