@opencode-ai/plugin 0.0.0-dev-17987 → 0.0.0-dev-202608231534

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.
Files changed (149) hide show
  1. package/dist/example-workspace.d.ts +3 -0
  2. package/dist/example-workspace.js +30 -0
  3. package/dist/example.d.ts +2 -0
  4. package/dist/example.js +16 -0
  5. package/dist/index.d.ts +322 -0
  6. package/dist/index.js +1 -0
  7. package/dist/shell.d.ts +109 -0
  8. package/dist/shell.js +1 -0
  9. package/dist/tool.d.ts +60 -0
  10. package/dist/tool.js +5 -0
  11. package/dist/tui.d.ts +510 -0
  12. package/dist/tui.js +7 -0
  13. package/dist/v2/effect/agent.d.ts +12 -0
  14. package/dist/v2/effect/agent.js +1 -0
  15. package/dist/{effect → v2/effect}/aisdk.d.ts +6 -9
  16. package/dist/v2/effect/aisdk.js +1 -0
  17. package/dist/v2/effect/catalog.d.ts +29 -0
  18. package/dist/v2/effect/catalog.js +1 -0
  19. package/dist/v2/effect/command.d.ts +11 -0
  20. package/dist/v2/effect/command.js +1 -0
  21. package/dist/v2/effect/context.d.ts +21 -0
  22. package/dist/v2/effect/context.js +1 -0
  23. package/dist/v2/effect/event.d.ts +8 -0
  24. package/dist/v2/effect/event.js +1 -0
  25. package/dist/v2/effect/filesystem.d.ts +23 -0
  26. package/dist/v2/effect/filesystem.js +1 -0
  27. package/dist/v2/effect/index.d.ts +3 -0
  28. package/dist/v2/effect/index.js +1 -0
  29. package/dist/v2/effect/integration.d.ts +46 -0
  30. package/dist/v2/effect/integration.js +1 -0
  31. package/dist/v2/effect/location.d.ts +6 -0
  32. package/dist/v2/effect/location.js +1 -0
  33. package/dist/v2/effect/npm.d.ts +7 -0
  34. package/dist/v2/effect/npm.js +1 -0
  35. package/dist/v2/effect/path.d.ts +8 -0
  36. package/dist/v2/effect/path.js +1 -0
  37. package/dist/v2/effect/plugin.d.ts +11 -0
  38. package/dist/{promise → v2/effect}/reference.d.ts +5 -7
  39. package/dist/v2/effect/reference.js +1 -0
  40. package/dist/v2/effect/registration.d.ts +10 -0
  41. package/dist/v2/effect/registration.js +1 -0
  42. package/dist/v2/effect/skill.d.ts +9 -0
  43. package/dist/v2/effect/skill.js +1 -0
  44. package/dist/v2/options.js +1 -0
  45. package/dist/v2/promise/agent.d.ts +6 -0
  46. package/dist/v2/promise/agent.js +1 -0
  47. package/dist/{promise → v2/promise}/aisdk.d.ts +6 -9
  48. package/dist/v2/promise/aisdk.js +1 -0
  49. package/dist/v2/promise/catalog.d.ts +6 -0
  50. package/dist/v2/promise/catalog.js +1 -0
  51. package/dist/v2/promise/command.d.ts +6 -0
  52. package/dist/v2/promise/command.js +1 -0
  53. package/dist/v2/promise/context.d.ts +21 -0
  54. package/dist/v2/promise/context.js +1 -0
  55. package/dist/v2/promise/index.d.ts +12 -0
  56. package/dist/v2/promise/index.js +1 -0
  57. package/dist/v2/promise/integration.d.ts +12 -0
  58. package/dist/v2/promise/integration.js +1 -0
  59. package/dist/v2/promise/plugin.d.ts +10 -0
  60. package/dist/v2/promise/reference.d.ts +6 -0
  61. package/dist/v2/promise/reference.js +1 -0
  62. package/dist/v2/promise/registration.d.ts +9 -0
  63. package/dist/v2/promise/registration.js +1 -0
  64. package/dist/v2/promise/skill.d.ts +6 -0
  65. package/dist/v2/promise/skill.js +1 -0
  66. package/package.json +34 -33
  67. package/dist/app.d.ts +0 -5
  68. package/dist/app.js +0 -0
  69. package/dist/effect/agent.d.ts +0 -15
  70. package/dist/effect/agent.js +0 -0
  71. package/dist/effect/aisdk.js +0 -0
  72. package/dist/effect/catalog.d.ts +0 -33
  73. package/dist/effect/catalog.js +0 -2
  74. package/dist/effect/command.d.ts +0 -14
  75. package/dist/effect/command.js +0 -0
  76. package/dist/effect/event.d.ts +0 -3
  77. package/dist/effect/event.js +0 -0
  78. package/dist/effect/index.d.ts +0 -13
  79. package/dist/effect/index.js +0 -12
  80. package/dist/effect/integration.d.ts +0 -80
  81. package/dist/effect/integration.js +0 -2
  82. package/dist/effect/mcp.d.ts +0 -15
  83. package/dist/effect/mcp.js +0 -0
  84. package/dist/effect/plugin.d.ts +0 -43
  85. package/dist/effect/reference.d.ts +0 -13
  86. package/dist/effect/reference.js +0 -0
  87. package/dist/effect/registration.d.ts +0 -11
  88. package/dist/effect/registration.js +0 -0
  89. package/dist/effect/session.d.ts +0 -47
  90. package/dist/effect/session.js +0 -0
  91. package/dist/effect/shell.d.ts +0 -14
  92. package/dist/effect/shell.js +0 -0
  93. package/dist/effect/skill.d.ts +0 -14
  94. package/dist/effect/skill.js +0 -1
  95. package/dist/effect/storage.d.ts +0 -8
  96. package/dist/effect/storage.js +0 -0
  97. package/dist/effect/tool.d.ts +0 -40
  98. package/dist/effect/tool.js +0 -1
  99. package/dist/effect/websearch.d.ts +0 -20
  100. package/dist/effect/websearch.js +0 -0
  101. package/dist/options.js +0 -0
  102. package/dist/promise/adapter.d.ts +0 -12
  103. package/dist/promise/adapter.js +0 -257
  104. package/dist/promise/agent.d.ts +0 -15
  105. package/dist/promise/agent.js +0 -0
  106. package/dist/promise/aisdk.js +0 -0
  107. package/dist/promise/catalog.d.ts +0 -33
  108. package/dist/promise/catalog.js +0 -0
  109. package/dist/promise/command.d.ts +0 -13
  110. package/dist/promise/command.js +0 -0
  111. package/dist/promise/event.d.ts +0 -3
  112. package/dist/promise/event.js +0 -0
  113. package/dist/promise/index.d.ts +0 -14
  114. package/dist/promise/index.js +0 -12
  115. package/dist/promise/integration.d.ts +0 -79
  116. package/dist/promise/integration.js +0 -2
  117. package/dist/promise/mcp.d.ts +0 -15
  118. package/dist/promise/mcp.js +0 -0
  119. package/dist/promise/plugin.d.ts +0 -43
  120. package/dist/promise/reference.js +0 -0
  121. package/dist/promise/registration.d.ts +0 -10
  122. package/dist/promise/registration.js +0 -0
  123. package/dist/promise/session.d.ts +0 -47
  124. package/dist/promise/session.js +0 -0
  125. package/dist/promise/shell.d.ts +0 -14
  126. package/dist/promise/shell.js +0 -0
  127. package/dist/promise/skill.d.ts +0 -14
  128. package/dist/promise/skill.js +0 -0
  129. package/dist/promise/storage.d.ts +0 -8
  130. package/dist/promise/storage.js +0 -0
  131. package/dist/promise/tool.d.ts +0 -44
  132. package/dist/promise/tool.js +0 -2
  133. package/dist/promise/types.d.ts +0 -3
  134. package/dist/promise/types.js +0 -0
  135. package/dist/promise/websearch.d.ts +0 -21
  136. package/dist/promise/websearch.js +0 -0
  137. package/dist/storage.d.ts +0 -14
  138. package/dist/storage.js +0 -0
  139. package/dist/tui/context.d.ts +0 -421
  140. package/dist/tui/context.js +0 -0
  141. package/dist/tui/index.d.ts +0 -2
  142. package/dist/tui/index.js +0 -2
  143. package/dist/tui/plugin.d.ts +0 -8
  144. package/dist/tui/plugin.js +0 -3
  145. package/dist/tui/solid.d.ts +0 -7
  146. package/dist/tui/solid.js +0 -16
  147. /package/dist/{effect → v2/effect}/plugin.js +0 -0
  148. /package/dist/{options.d.ts → v2/options.d.ts} +0 -0
  149. /package/dist/{promise → v2/promise}/plugin.js +0 -0
@@ -0,0 +1,46 @@
1
+ import type { ConnectionInfo, CredentialOAuth, CredentialValue, IntegrationEnvMethod, IntegrationInputs, IntegrationKeyMethod, IntegrationMethod, IntegrationOAuthMethod, IntegrationRef } from "@opencode-ai/sdk/v2/types";
2
+ import type { Effect, Scope } from "effect";
3
+ import type { Hooks } from "./registration.js";
4
+ export type IntegrationOAuthAuthorization = {
5
+ readonly url: string;
6
+ readonly instructions: string;
7
+ } & ({
8
+ readonly mode: "auto";
9
+ readonly callback: Effect.Effect<CredentialOAuth, unknown>;
10
+ } | {
11
+ readonly mode: "code";
12
+ readonly callback: (code: string) => Effect.Effect<CredentialOAuth, unknown>;
13
+ });
14
+ export type IntegrationOAuthMethodRegistration = {
15
+ readonly integrationID: string;
16
+ readonly method: IntegrationOAuthMethod;
17
+ readonly authorize: (inputs: IntegrationInputs) => Effect.Effect<IntegrationOAuthAuthorization, unknown, Scope.Scope>;
18
+ readonly refresh?: (credential: CredentialOAuth) => Effect.Effect<CredentialOAuth, unknown>;
19
+ readonly label?: (credential: CredentialOAuth) => string | undefined;
20
+ };
21
+ export type IntegrationMethodRegistration = IntegrationOAuthMethodRegistration | {
22
+ readonly integrationID: string;
23
+ readonly method: IntegrationKeyMethod;
24
+ } | {
25
+ readonly integrationID: string;
26
+ readonly method: IntegrationEnvMethod;
27
+ };
28
+ export interface IntegrationDraft {
29
+ list(): readonly IntegrationRef[];
30
+ get(id: string): IntegrationRef | undefined;
31
+ update(id: string, update: (integration: IntegrationRef) => void): void;
32
+ remove(id: string): void;
33
+ readonly method: {
34
+ list(integrationID: string): readonly IntegrationMethod[];
35
+ update(input: IntegrationMethodRegistration): void;
36
+ remove(integrationID: string, method: IntegrationMethod): void;
37
+ };
38
+ }
39
+ export interface IntegrationHooks extends Hooks<{
40
+ transform: IntegrationDraft;
41
+ }> {
42
+ readonly connection: {
43
+ readonly active: (integrationID: string) => Effect.Effect<ConnectionInfo | undefined>;
44
+ readonly resolve: (connection: ConnectionInfo) => Effect.Effect<CredentialValue | undefined, unknown>;
45
+ };
46
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface Location {
2
+ readonly directory: string;
3
+ readonly project: {
4
+ readonly directory: string;
5
+ };
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { Effect } from "effect";
2
+ export interface Npm {
3
+ add(pkg: string): Effect.Effect<{
4
+ readonly directory: string;
5
+ readonly entrypoint?: string;
6
+ }, unknown>;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export interface Path {
2
+ readonly home: string;
3
+ readonly data: string;
4
+ readonly cache: string;
5
+ readonly config: string;
6
+ readonly state: string;
7
+ readonly temp: string;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { Effect, Scope } from "effect";
2
+ import type { PluginContext } from "./context.js";
3
+ export interface Plugin<R = Scope.Scope> {
4
+ readonly id: string;
5
+ readonly effect: (context: PluginContext) => Effect.Effect<void, never, R>;
6
+ }
7
+ export declare function define<R = Scope.Scope>(plugin: Plugin<R>): Plugin<R>;
8
+ export interface PluginDomain {
9
+ readonly add: (plugin: Plugin) => Effect.Effect<void>;
10
+ readonly remove: (id: string) => Effect.Effect<void>;
11
+ }
@@ -1,12 +1,10 @@
1
- import type { ReferenceApi } from "@opencode-ai/client/promise/api";
2
- import type { ReferenceGitSource, ReferenceLocalSource } from "@opencode-ai/client";
3
- import type { Transform } from "./registration.js";
1
+ import type { ReferenceGitSource, ReferenceLocalSource } from "@opencode-ai/sdk/v2/types";
2
+ import type { Hooks } from "./registration.js";
4
3
  export interface ReferenceDraft {
5
4
  add(name: string, source: ReferenceLocalSource | ReferenceGitSource): void;
6
5
  remove(name: string): void;
7
6
  list(): readonly (readonly [string, ReferenceLocalSource | ReferenceGitSource])[];
8
7
  }
9
- export interface ReferenceDomain extends ReferenceApi {
10
- readonly transform: Transform<ReferenceDraft>;
11
- readonly reload: () => Promise<void>;
12
- }
8
+ export type ReferenceHooks = Hooks<{
9
+ transform: ReferenceDraft;
10
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { Effect, Scope } from "effect";
2
+ export interface Registration {
3
+ readonly dispose: Effect.Effect<void>;
4
+ }
5
+ export interface Reload {
6
+ readonly reload: () => Effect.Effect<void>;
7
+ }
8
+ export type Hooks<Spec> = {
9
+ readonly [Name in keyof Spec]: (callback: (input: Spec[Name]) => Effect.Effect<void> | void) => Effect.Effect<Registration, never, Scope.Scope>;
10
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { SkillV2Source } from "@opencode-ai/sdk/v2/types";
2
+ import type { Hooks } from "./registration.js";
3
+ export interface SkillDraft {
4
+ source(source: SkillV2Source): void;
5
+ list(): readonly SkillV2Source[];
6
+ }
7
+ export type SkillHooks = Hooks<{
8
+ transform: SkillDraft;
9
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { AgentDraft } from "../effect/agent.js";
2
+ import type { Hooks } from "./registration.js";
3
+ export type { AgentDraft };
4
+ export type AgentHooks = Hooks<{
5
+ transform: AgentDraft;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,20 +1,17 @@
1
1
  import type { LanguageModelV3 } from "@ai-sdk/provider";
2
- import type { Model } from "@opencode-ai/schema/model";
3
- import type { ModelHooks } from "./registration.js";
4
- export interface AISDKHooks {
2
+ import type { ModelV2Info } from "@opencode-ai/sdk/v2/types";
3
+ import type { Hooks } from "./registration.js";
4
+ export type AISDKHooks = Hooks<{
5
5
  sdk: {
6
- readonly model: Model.Info;
6
+ readonly model: ModelV2Info;
7
7
  readonly package: string;
8
8
  readonly options: Record<string, any>;
9
9
  sdk?: any;
10
10
  };
11
11
  language: {
12
- readonly model: Model.Info;
12
+ readonly model: ModelV2Info;
13
13
  readonly sdk: any;
14
14
  readonly options: Record<string, any>;
15
15
  language?: LanguageModelV3;
16
16
  };
17
- }
18
- export interface AISDKDomain {
19
- readonly hook: ModelHooks<AISDKHooks>;
20
- }
17
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { CatalogDraft, CatalogProviderRecord } from "../effect/catalog.js";
2
+ import type { Hooks } from "./registration.js";
3
+ export type { CatalogDraft, CatalogProviderRecord };
4
+ export type CatalogHooks = Hooks<{
5
+ transform: CatalogDraft;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { CommandDraft } from "../effect/command.js";
2
+ import type { Hooks } from "./registration.js";
3
+ export type { CommandDraft };
4
+ export type CommandHooks = Hooks<{
5
+ transform: CommandDraft;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { PluginOptions } from "../options.js";
2
+ import type { AgentHooks } from "./agent.js";
3
+ import type { AISDKHooks } from "./aisdk.js";
4
+ import type { CatalogHooks } from "./catalog.js";
5
+ import type { CommandHooks } from "./command.js";
6
+ import type { IntegrationHooks } from "./integration.js";
7
+ import type { PluginDomain } from "./plugin.js";
8
+ import type { ReferenceHooks } from "./reference.js";
9
+ import type { SkillHooks } from "./skill.js";
10
+ import type { Reload } from "./registration.js";
11
+ export interface PluginContext {
12
+ readonly options: PluginOptions;
13
+ readonly agent: AgentHooks & Reload;
14
+ readonly aisdk: AISDKHooks;
15
+ readonly catalog: CatalogHooks & Reload;
16
+ readonly command: CommandHooks & Reload;
17
+ readonly integration: IntegrationHooks & Reload;
18
+ readonly plugin: PluginDomain;
19
+ readonly reference: ReferenceHooks & Reload;
20
+ readonly skill: SkillHooks & Reload;
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ export type { PluginContext } from "./context.js";
2
+ export type { PluginOptions } from "../options.js";
3
+ export { define } from "./plugin.js";
4
+ export type { Plugin, PluginDomain } from "./plugin.js";
5
+ export type { Registration, Reload } from "./registration.js";
6
+ export type { AgentDraft, AgentHooks } from "./agent.js";
7
+ export type { AISDKHooks } from "./aisdk.js";
8
+ export type { CatalogDraft, CatalogHooks, CatalogProviderRecord } from "./catalog.js";
9
+ export type { CommandDraft, CommandHooks } from "./command.js";
10
+ export type { IntegrationDraft, IntegrationHooks, IntegrationMethodRegistration } from "./integration.js";
11
+ export type { ReferenceDraft, ReferenceHooks } from "./reference.js";
12
+ export type { SkillDraft, SkillHooks } from "./skill.js";
@@ -0,0 +1 @@
1
+ export { define } from "./plugin.js";
@@ -0,0 +1,12 @@
1
+ import type { IntegrationDraft, IntegrationMethodRegistration } from "../effect/integration.js";
2
+ import type { CredentialValue } from "@opencode-ai/sdk/v2/types";
3
+ import type { Hooks } from "./registration.js";
4
+ export type { IntegrationDraft, IntegrationMethodRegistration };
5
+ export interface IntegrationHooks extends Hooks<{
6
+ transform: IntegrationDraft;
7
+ }> {
8
+ readonly connection: {
9
+ readonly active: (integrationID: string) => Promise<import("@opencode-ai/sdk/v2/types").ConnectionInfo | undefined>;
10
+ readonly resolve: (connection: import("@opencode-ai/sdk/v2/types").ConnectionInfo) => Promise<CredentialValue | undefined>;
11
+ };
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { PluginContext } from "./context.js";
2
+ export interface Plugin {
3
+ readonly id: string;
4
+ readonly setup: (context: PluginContext) => Promise<void> | void;
5
+ }
6
+ export declare function define(plugin: Plugin): Plugin;
7
+ export interface PluginDomain {
8
+ readonly add: (plugin: Plugin) => Promise<void>;
9
+ readonly remove: (id: string) => Promise<void>;
10
+ }
@@ -0,0 +1,6 @@
1
+ import type { ReferenceDraft } from "../effect/reference.js";
2
+ import type { Hooks } from "./registration.js";
3
+ export type { ReferenceDraft };
4
+ export type ReferenceHooks = Hooks<{
5
+ transform: ReferenceDraft;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ export interface Registration {
2
+ readonly dispose: () => Promise<void>;
3
+ }
4
+ export interface Reload {
5
+ readonly reload: () => Promise<void>;
6
+ }
7
+ export type Hooks<Spec> = {
8
+ readonly [Name in keyof Spec]: (callback: (input: Spec[Name]) => Promise<void> | void) => Promise<Registration>;
9
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { SkillDraft } from "../effect/skill.js";
2
+ import type { Hooks } from "./registration.js";
3
+ export type { SkillDraft };
4
+ export type SkillHooks = Hooks<{
5
+ transform: SkillDraft;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,30 +1,41 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode-ai/plugin",
4
- "version": "0.0.0-dev-17987",
4
+ "version": "0.0.0-dev-202608231534",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
- "test": "bun test --timeout 5000",
9
8
  "typecheck": "tsgo --noEmit",
10
- "build": "tsc -p tsconfig.build.json"
9
+ "build": "tsc"
11
10
  },
12
11
  "exports": {
13
12
  ".": {
14
- "import": "./dist/promise/index.js",
15
- "types": "./dist/promise/index.d.ts"
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
16
15
  },
17
- "./effect": {
18
- "import": "./dist/effect/index.js",
19
- "types": "./dist/effect/index.d.ts"
16
+ "./tool": {
17
+ "import": "./dist/tool.js",
18
+ "types": "./dist/tool.d.ts"
20
19
  },
21
20
  "./tui": {
22
- "import": "./dist/tui/index.js",
23
- "types": "./dist/tui/index.d.ts"
21
+ "import": "./dist/tui.js",
22
+ "types": "./dist/tui.d.ts"
24
23
  },
25
- "./*": {
26
- "import": "./dist/*.js",
27
- "types": "./dist/*.d.ts"
24
+ "./v2/effect": {
25
+ "import": "./dist/v2/effect/index.js",
26
+ "types": "./dist/v2/effect/index.d.ts"
27
+ },
28
+ "./v2/effect/integration": {
29
+ "import": "./dist/v2/effect/integration.js",
30
+ "types": "./dist/v2/effect/integration.d.ts"
31
+ },
32
+ "./v2/effect/plugin": {
33
+ "import": "./dist/v2/effect/plugin.js",
34
+ "types": "./dist/v2/effect/plugin.d.ts"
35
+ },
36
+ "./v2/promise": {
37
+ "import": "./dist/v2/promise/index.js",
38
+ "types": "./dist/v2/promise/index.d.ts"
28
39
  }
29
40
  },
30
41
  "files": [
@@ -32,42 +43,32 @@
32
43
  ],
33
44
  "dependencies": {
34
45
  "@ai-sdk/provider": "3.0.8",
35
- "@opencode-ai/ai": "0.0.0-dev-17987",
36
- "@opencode-ai/client": "0.0.0-dev-17987",
37
- "@opencode-ai/protocol": "0.0.0-dev-17987",
38
- "@opencode-ai/schema": "0.0.0-dev-17987",
39
- "@standard-schema/spec": "1.1.0",
40
- "effect": "4.0.0-rc.110",
46
+ "@opencode-ai/sdk": "0.0.0-dev-202608231534",
47
+ "effect": "4.0.0-beta.83",
41
48
  "zod": "4.1.8"
42
49
  },
43
50
  "peerDependencies": {
44
- "@opencode-ai/theme": "0.0.0-dev-17987",
45
- "@opentui/core": ">=0.5.7",
46
- "@opentui/solid": ">=0.5.7",
47
- "solid-js": ">=1.9.0"
51
+ "@opentui/core": ">=0.4.5",
52
+ "@opentui/keymap": ">=0.4.5",
53
+ "@opentui/solid": ">=0.4.5"
48
54
  },
49
55
  "peerDependenciesMeta": {
50
- "@opencode-ai/theme": {
51
- "optional": true
52
- },
53
56
  "@opentui/core": {
54
57
  "optional": true
55
58
  },
56
- "@opentui/solid": {
59
+ "@opentui/keymap": {
57
60
  "optional": true
58
61
  },
59
- "solid-js": {
62
+ "@opentui/solid": {
60
63
  "optional": true
61
64
  }
62
65
  },
63
66
  "devDependencies": {
64
- "@opencode-ai/theme": "0.0.0-dev-17987",
65
- "@opentui/core": "0.5.7",
66
- "@opentui/solid": "0.5.7",
67
- "@tsconfig/bun": "1.0.9",
67
+ "@opentui/core": "0.4.5",
68
+ "@opentui/keymap": "0.4.5",
69
+ "@opentui/solid": "0.4.5",
68
70
  "@tsconfig/node22": "22.0.2",
69
71
  "@types/node": "24.12.2",
70
- "solid-js": "1.9.10",
71
72
  "typescript": "5.8.2",
72
73
  "@typescript/native-preview": "7.0.0-dev.20251207.1"
73
74
  }
package/dist/app.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export interface App {
2
- readonly name: string;
3
- readonly version: string;
4
- readonly channel: string;
5
- }
package/dist/app.js DELETED
File without changes
@@ -1,15 +0,0 @@
1
- import type { AgentApi } from "@opencode-ai/client/effect/api";
2
- import type { Agent } from "@opencode-ai/schema/agent";
3
- import type { Effect, Types } from "effect";
4
- import type { Transform } from "./registration.js";
5
- export interface AgentDraft {
6
- list(): readonly Types.DeepMutable<Agent.Info>[];
7
- get(id: string): Types.DeepMutable<Agent.Info> | undefined;
8
- default(id: string | undefined): void;
9
- update(id: string, update: (agent: Types.DeepMutable<Agent.Info>) => void): void;
10
- remove(id: string): void;
11
- }
12
- export interface AgentDomain extends AgentApi<unknown> {
13
- readonly transform: Transform<AgentDraft>;
14
- readonly reload: () => Effect.Effect<void>;
15
- }
File without changes
File without changes
@@ -1,33 +0,0 @@
1
- import type { CatalogApi } from "@opencode-ai/client/effect/api";
2
- import { Model } from "@opencode-ai/schema/model";
3
- import { Provider } from "@opencode-ai/schema/provider";
4
- import type { Effect, Types } from "effect";
5
- import type { Transform } from "./registration.js";
6
- export interface CatalogProviderRecord {
7
- readonly provider: Types.DeepMutable<Provider.Info>;
8
- readonly models: ReadonlyMap<string, Types.DeepMutable<Model.Info>>;
9
- }
10
- export interface CatalogDraft {
11
- readonly provider: {
12
- list(): readonly CatalogProviderRecord[];
13
- get(providerID: string): CatalogProviderRecord | undefined;
14
- update(providerID: string, update: (provider: Types.DeepMutable<Provider.Info>) => void): void;
15
- remove(providerID: string): void;
16
- };
17
- readonly model: {
18
- get(providerID: string, modelID: string): Types.DeepMutable<Model.Info> | undefined;
19
- update(providerID: string, modelID: string, update: (model: Types.DeepMutable<Model.Info>) => void): void;
20
- remove(providerID: string, modelID: string): void;
21
- readonly default: {
22
- get(): {
23
- providerID: string;
24
- modelID: string;
25
- } | undefined;
26
- set(providerID: string, modelID: string): void;
27
- };
28
- };
29
- }
30
- export interface CatalogDomain extends CatalogApi<unknown> {
31
- readonly transform: Transform<CatalogDraft>;
32
- readonly reload: () => Effect.Effect<void>;
33
- }
@@ -1,2 +0,0 @@
1
- import { Model } from "@opencode-ai/schema/model";
2
- import { Provider } from "@opencode-ai/schema/provider";
@@ -1,14 +0,0 @@
1
- import type { CommandApi } from "@opencode-ai/client/effect/api";
2
- import type { CommandInfo } from "@opencode-ai/client";
3
- import type { Effect } from "effect";
4
- import type { Transform } from "./registration.js";
5
- export interface CommandDraft {
6
- list(): readonly CommandInfo[];
7
- get(name: string): CommandInfo | undefined;
8
- update(name: string, update: (command: CommandInfo) => void): void;
9
- remove(name: string): void;
10
- }
11
- export interface CommandDomain extends CommandApi<unknown> {
12
- readonly transform: Transform<CommandDraft>;
13
- readonly reload: () => Effect.Effect<void>;
14
- }
File without changes
@@ -1,3 +0,0 @@
1
- import type { EventApi } from "@opencode-ai/client/effect/api";
2
- export interface EventDomain extends Pick<EventApi<unknown>, "subscribe"> {
3
- }
File without changes
@@ -1,13 +0,0 @@
1
- export * as Plugin from "./plugin.js";
2
- export type { StorageEntry, StorageScanOptions, StorageScanResult } from "../storage.js";
3
- export { Agent } from "@opencode-ai/schema/agent";
4
- export { Command } from "@opencode-ai/schema/command";
5
- export { Connection } from "@opencode-ai/schema/connection";
6
- export { Credential } from "@opencode-ai/schema/credential";
7
- export { Integration } from "@opencode-ai/schema/integration";
8
- export { Mcp } from "@opencode-ai/schema/mcp";
9
- export { Model } from "@opencode-ai/schema/model";
10
- export { Provider } from "@opencode-ai/schema/provider";
11
- export { Reference } from "@opencode-ai/schema/reference";
12
- export { Skill } from "@opencode-ai/schema/skill";
13
- export { WebSearch } from "@opencode-ai/schema/websearch";
@@ -1,12 +0,0 @@
1
- export * as Plugin from "./plugin.js";
2
- export { Agent } from "@opencode-ai/schema/agent";
3
- export { Command } from "@opencode-ai/schema/command";
4
- export { Connection } from "@opencode-ai/schema/connection";
5
- export { Credential } from "@opencode-ai/schema/credential";
6
- export { Integration } from "@opencode-ai/schema/integration";
7
- export { Mcp } from "@opencode-ai/schema/mcp";
8
- export { Model } from "@opencode-ai/schema/model";
9
- export { Provider } from "@opencode-ai/schema/provider";
10
- export { Reference } from "@opencode-ai/schema/reference";
11
- export { Skill } from "@opencode-ai/schema/skill";
12
- export { WebSearch } from "@opencode-ai/schema/websearch";
@@ -1,80 +0,0 @@
1
- import type { ConnectionInfo } from "@opencode-ai/client";
2
- import type { IntegrationApi } from "@opencode-ai/client/effect/api";
3
- import { Credential } from "@opencode-ai/schema/credential";
4
- import { Form } from "@opencode-ai/schema/form";
5
- import type { Effect, Scope } from "effect";
6
- import type { Transform } from "./registration.js";
7
- type IntegrationRef = {
8
- id: string;
9
- name: string;
10
- };
11
- export interface IntegrationOAuthMethod {
12
- readonly id: string;
13
- readonly type: "oauth";
14
- readonly label: string;
15
- readonly form?: Form.Fields;
16
- }
17
- export interface IntegrationCommandMethod {
18
- readonly id: string;
19
- readonly type: "command";
20
- readonly label: string;
21
- readonly command: ReadonlyArray<string>;
22
- }
23
- export interface IntegrationKeyMethod {
24
- readonly type: "key";
25
- readonly label?: string;
26
- readonly form?: Form.Fields;
27
- }
28
- export interface IntegrationEnvMethod {
29
- readonly type: "env";
30
- readonly names: ReadonlyArray<string>;
31
- }
32
- export type IntegrationMethod = IntegrationOAuthMethod | IntegrationCommandMethod | IntegrationKeyMethod | IntegrationEnvMethod;
33
- export type IntegrationOAuthAuthorization = {
34
- readonly url: string;
35
- readonly instructions: string;
36
- readonly expiresAt?: number;
37
- } & ({
38
- readonly mode: "auto";
39
- readonly callback: Effect.Effect<Credential.OAuth, unknown>;
40
- } | {
41
- readonly mode: "code";
42
- readonly callback: (code: string) => Effect.Effect<Credential.OAuth, unknown>;
43
- });
44
- export type IntegrationOAuthMethodRegistration = {
45
- readonly integrationID: string;
46
- readonly method: IntegrationOAuthMethod;
47
- readonly authorize: (answer: Form.Answer) => Effect.Effect<IntegrationOAuthAuthorization, unknown, Scope.Scope>;
48
- readonly refresh?: (credential: Credential.OAuth) => Effect.Effect<Credential.OAuth, unknown>;
49
- readonly label?: (credential: Credential.OAuth) => string | undefined;
50
- };
51
- export type IntegrationMethodRegistration = IntegrationOAuthMethodRegistration | {
52
- readonly integrationID: string;
53
- readonly method: IntegrationCommandMethod;
54
- } | {
55
- readonly integrationID: string;
56
- readonly method: IntegrationKeyMethod;
57
- } | {
58
- readonly integrationID: string;
59
- readonly method: IntegrationEnvMethod;
60
- };
61
- export interface IntegrationDraft {
62
- list(): readonly IntegrationRef[];
63
- get(id: string): IntegrationRef | undefined;
64
- update(id: string, update: (integration: IntegrationRef) => void): void;
65
- remove(id: string): void;
66
- readonly method: {
67
- list(integrationID: string): readonly IntegrationMethod[];
68
- update(input: IntegrationMethodRegistration): void;
69
- remove(integrationID: string, method: IntegrationMethod): void;
70
- };
71
- }
72
- export interface IntegrationDomain extends Omit<IntegrationApi<unknown>, "wellknown"> {
73
- readonly transform: Transform<IntegrationDraft>;
74
- readonly reload: () => Effect.Effect<void>;
75
- readonly connection: {
76
- readonly active: (integrationID: string) => Effect.Effect<ConnectionInfo | undefined>;
77
- readonly resolve: (connection: ConnectionInfo) => Effect.Effect<Credential.Value | undefined, unknown>;
78
- };
79
- }
80
- export {};