@opencode-ai/schema 0.0.0-dev-17471

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 (193) hide show
  1. package/dist/agent.d.ts +164 -0
  2. package/dist/agent.js +46 -0
  3. package/dist/ai.d.ts +4 -0
  4. package/dist/ai.js +5 -0
  5. package/dist/catalog.d.ts +69 -0
  6. package/dist/catalog.js +4 -0
  7. package/dist/command.d.ts +124 -0
  8. package/dist/command.js +19 -0
  9. package/dist/config/agent.d.ts +42 -0
  10. package/dist/config/agent.js +20 -0
  11. package/dist/config/command.d.ts +27 -0
  12. package/dist/config/command.js +12 -0
  13. package/dist/config/compaction.d.ts +14 -0
  14. package/dist/config/compaction.js +13 -0
  15. package/dist/config/experimental.d.ts +17 -0
  16. package/dist/config/experimental.js +16 -0
  17. package/dist/config/formatter.d.ts +11 -0
  18. package/dist/config/formatter.js +11 -0
  19. package/dist/config/lsp.d.ts +20 -0
  20. package/dist/config/lsp.js +16 -0
  21. package/dist/config/mcp.d.ts +18 -0
  22. package/dist/config/mcp.js +14 -0
  23. package/dist/config/media.d.ts +15 -0
  24. package/dist/config/media.js +14 -0
  25. package/dist/config/model.d.ts +18 -0
  26. package/dist/config/model.js +28 -0
  27. package/dist/config/plugin.d.ts +11 -0
  28. package/dist/config/plugin.js +10 -0
  29. package/dist/config/policy.d.ts +10 -0
  30. package/dist/config/policy.js +8 -0
  31. package/dist/config/provider.d.ts +106 -0
  32. package/dist/config/provider.js +62 -0
  33. package/dist/config/reference.d.ts +21 -0
  34. package/dist/config/reference.js +18 -0
  35. package/dist/config/tool-output.d.ts +8 -0
  36. package/dist/config/tool-output.js +8 -0
  37. package/dist/config/warming.d.ts +10 -0
  38. package/dist/config/warming.js +16 -0
  39. package/dist/config/watcher.d.ts +7 -0
  40. package/dist/config/watcher.js +7 -0
  41. package/dist/config/websearch.d.ts +9 -0
  42. package/dist/config/websearch.js +8 -0
  43. package/dist/config.d.ts +175 -0
  44. package/dist/config.js +136 -0
  45. package/dist/connection.d.ts +28 -0
  46. package/dist/connection.js +15 -0
  47. package/dist/credential.d.ts +38 -0
  48. package/dist/credential.js +25 -0
  49. package/dist/durable-event-manifest.d.ts +3 -0
  50. package/dist/durable-event-manifest.js +5 -0
  51. package/dist/event-log.d.ts +14 -0
  52. package/dist/event-log.js +17 -0
  53. package/dist/event-manifest.d.ts +11372 -0
  54. package/dist/event-manifest.js +45 -0
  55. package/dist/event.d.ts +142 -0
  56. package/dist/event.js +110 -0
  57. package/dist/file-diff.d.ts +21 -0
  58. package/dist/file-diff.js +18 -0
  59. package/dist/filesystem-v1.d.ts +1 -0
  60. package/dist/filesystem-v1.js +1 -0
  61. package/dist/filesystem.d.ts +118 -0
  62. package/dist/filesystem.js +35 -0
  63. package/dist/form.d.ts +1259 -0
  64. package/dist/form.js +120 -0
  65. package/dist/ide-event.d.ts +76 -0
  66. package/dist/ide-event.js +10 -0
  67. package/dist/identifier.d.ts +3 -0
  68. package/dist/identifier.js +24 -0
  69. package/dist/index.d.ts +39 -0
  70. package/dist/index.js +39 -0
  71. package/dist/installation-event.d.ts +149 -0
  72. package/dist/installation-event.js +16 -0
  73. package/dist/instruction-entry.d.ts +23 -0
  74. package/dist/instruction-entry.js +22 -0
  75. package/dist/instruction.d.ts +13 -0
  76. package/dist/instruction.js +8 -0
  77. package/dist/integration-id.d.ts +5 -0
  78. package/dist/integration-id.js +3 -0
  79. package/dist/integration.d.ts +1675 -0
  80. package/dist/integration.js +87 -0
  81. package/dist/legacy-event.d.ts +1 -0
  82. package/dist/legacy-event.js +1 -0
  83. package/dist/llm.d.ts +4 -0
  84. package/dist/llm.js +3 -0
  85. package/dist/location.d.ts +37 -0
  86. package/dist/location.js +22 -0
  87. package/dist/lsp-event.d.ts +67 -0
  88. package/dist/lsp-event.js +4 -0
  89. package/dist/mcp-event.d.ts +222 -0
  90. package/dist/mcp-event.js +24 -0
  91. package/dist/mcp.d.ts +138 -0
  92. package/dist/mcp.js +111 -0
  93. package/dist/model.d.ts +186 -0
  94. package/dist/model.js +104 -0
  95. package/dist/models-dev.d.ts +69 -0
  96. package/dist/models-dev.js +7 -0
  97. package/dist/money.d.ts +10 -0
  98. package/dist/money.js +5 -0
  99. package/dist/permission-saved.d.ts +18 -0
  100. package/dist/permission-saved.js +12 -0
  101. package/dist/permission-v1.d.ts +1 -0
  102. package/dist/permission-v1.js +1 -0
  103. package/dist/permission.d.ts +306 -0
  104. package/dist/permission.js +45 -0
  105. package/dist/plugin.d.ts +150 -0
  106. package/dist/plugin.js +16 -0
  107. package/dist/project-id.d.ts +5 -0
  108. package/dist/project-id.js +3 -0
  109. package/dist/project.d.ts +241 -0
  110. package/dist/project.js +37 -0
  111. package/dist/prompt-input.d.ts +143 -0
  112. package/dist/prompt-input.js +25 -0
  113. package/dist/prompt.d.ts +297 -0
  114. package/dist/prompt.js +61 -0
  115. package/dist/provider.d.ts +60 -0
  116. package/dist/provider.js +42 -0
  117. package/dist/pty-ticket.d.ts +8 -0
  118. package/dist/pty-ticket.js +7 -0
  119. package/dist/pty.d.ts +462 -0
  120. package/dist/pty.js +43 -0
  121. package/dist/question-v1.d.ts +1 -0
  122. package/dist/question-v1.js +1 -0
  123. package/dist/question.d.ts +15 -0
  124. package/dist/question.js +15 -0
  125. package/dist/reference.d.ts +120 -0
  126. package/dist/reference.js +30 -0
  127. package/dist/schema.d.ts +10 -0
  128. package/dist/schema.js +14 -0
  129. package/dist/server-event.d.ts +132 -0
  130. package/dist/server-event.js +5 -0
  131. package/dist/session-compaction-event.d.ts +87 -0
  132. package/dist/session-compaction-event.js +10 -0
  133. package/dist/session-error.d.ts +9 -0
  134. package/dist/session-error.js +8 -0
  135. package/dist/session-event.d.ts +17994 -0
  136. package/dist/session-event.js +499 -0
  137. package/dist/session-fork.d.ts +26 -0
  138. package/dist/session-fork.js +11 -0
  139. package/dist/session-id.d.ts +6 -0
  140. package/dist/session-id.js +10 -0
  141. package/dist/session-inbox.d.ts +748 -0
  142. package/dist/session-inbox.js +47 -0
  143. package/dist/session-message.d.ts +1512 -0
  144. package/dist/session-message.js +209 -0
  145. package/dist/session-revert.d.ts +480 -0
  146. package/dist/session-revert.js +63 -0
  147. package/dist/session-status-event.d.ts +299 -0
  148. package/dist/session-status-event.js +43 -0
  149. package/dist/session-transfer.d.ts +744 -0
  150. package/dist/session-transfer.js +8 -0
  151. package/dist/session-v1.d.ts +1 -0
  152. package/dist/session-v1.js +1 -0
  153. package/dist/session.d.ts +218 -0
  154. package/dist/session.js +45 -0
  155. package/dist/shell.d.ts +381 -0
  156. package/dist/shell.js +58 -0
  157. package/dist/skill.d.ts +133 -0
  158. package/dist/skill.js +48 -0
  159. package/dist/snapshot.d.ts +4 -0
  160. package/dist/snapshot.js +3 -0
  161. package/dist/token-usage.d.ts +13 -0
  162. package/dist/token-usage.js +11 -0
  163. package/dist/tool.d.ts +74 -0
  164. package/dist/tool.js +22 -0
  165. package/dist/tui-event.d.ts +307 -0
  166. package/dist/tui-event.js +53 -0
  167. package/dist/v1/filesystem.d.ts +78 -0
  168. package/dist/v1/filesystem.js +8 -0
  169. package/dist/v1/legacy-event.d.ts +108 -0
  170. package/dist/v1/legacy-event.js +15 -0
  171. package/dist/v1/permission.d.ts +316 -0
  172. package/dist/v1/permission.js +41 -0
  173. package/dist/v1/question.d.ts +444 -0
  174. package/dist/v1/question.js +57 -0
  175. package/dist/v1/session.d.ts +7657 -0
  176. package/dist/v1/session.js +535 -0
  177. package/dist/vcs-event.d.ts +76 -0
  178. package/dist/vcs-event.js +11 -0
  179. package/dist/vcs.d.ts +26 -0
  180. package/dist/vcs.js +17 -0
  181. package/dist/websearch.d.ts +108 -0
  182. package/dist/websearch.js +31 -0
  183. package/dist/workspace-event.d.ts +247 -0
  184. package/dist/workspace-event.js +25 -0
  185. package/dist/workspace-id.d.ts +6 -0
  186. package/dist/workspace-id.js +16 -0
  187. package/dist/workspace.d.ts +9 -0
  188. package/dist/workspace.js +5 -0
  189. package/dist/worktree-event.d.ts +153 -0
  190. package/dist/worktree-event.js +18 -0
  191. package/dist/worktree.d.ts +255 -0
  192. package/dist/worktree.js +61 -0
  193. package/package.json +42 -0
@@ -0,0 +1,13 @@
1
+ export * as TokenUsage from "./token-usage.js";
2
+ import { Schema } from "effect";
3
+ export interface Info extends Schema.Schema.Type<typeof Info> {
4
+ }
5
+ export declare const Info: Schema.Struct<{
6
+ readonly input: Schema.Finite;
7
+ readonly output: Schema.Finite;
8
+ readonly reasoning: Schema.Finite;
9
+ readonly cache: Schema.Struct<{
10
+ readonly read: Schema.Finite;
11
+ readonly write: Schema.Finite;
12
+ }>;
13
+ }>;
@@ -0,0 +1,11 @@
1
+ export * as TokenUsage from "./token-usage.js";
2
+ import { Schema } from "effect";
3
+ export const Info = Schema.Struct({
4
+ input: Schema.Finite,
5
+ output: Schema.Finite,
6
+ reasoning: Schema.Finite,
7
+ cache: Schema.Struct({
8
+ read: Schema.Finite,
9
+ write: Schema.Finite,
10
+ }),
11
+ }).annotate({ identifier: "TokenUsage.Info" });
package/dist/tool.d.ts ADDED
@@ -0,0 +1,74 @@
1
+ export * as Tool from "./tool.js";
2
+ import { Effect, JsonSchema, Schema } from "effect";
3
+ import type { StandardJSONSchemaV1, StandardSchemaV1 } from "@standard-schema/spec";
4
+ import type { Agent } from "./agent.js";
5
+ import type { Session } from "./session.js";
6
+ import type { SessionMessage } from "./session-message.js";
7
+ export type Metadata = Readonly<Record<string, any>>;
8
+ export declare const CallID: Schema.brand<Schema.String, "Tool.CallID">;
9
+ export type CallID = typeof CallID.Type;
10
+ export interface Context {
11
+ readonly sessionID: Session.ID;
12
+ readonly agent: Agent.ID;
13
+ readonly messageID: SessionMessage.ID;
14
+ readonly id: CallID;
15
+ readonly progress: (update: Metadata) => Effect.Effect<void>;
16
+ }
17
+ interface BaseOptions {
18
+ readonly namespace?: string;
19
+ readonly permission?: string;
20
+ }
21
+ export type Options = BaseOptions & ({
22
+ readonly codemode?: true;
23
+ readonly pinned?: boolean;
24
+ } | {
25
+ readonly codemode: boolean;
26
+ readonly pinned?: never;
27
+ });
28
+ export type ValueSchema<A = unknown> = Schema.Codec<A, any> | (StandardSchemaV1<any, A> & StandardJSONSchemaV1<any, A>) | JsonSchema.JsonSchema;
29
+ type InputValue<S> = 0 extends 1 & S ? any : S extends Schema.Codec<infer A, any> ? A : S extends StandardSchemaV1<any, infer A> ? A : unknown;
30
+ type OutputValue<S> = S extends undefined ? never : S extends Schema.Codec<infer A, any> ? A : S extends StandardSchemaV1<infer A, any> ? A : any;
31
+ declare const Error_base: Schema.Class<Error, Schema.TaggedStruct<"Tool.Error", {
32
+ readonly message: Schema.String;
33
+ readonly error: Schema.optional<Schema.Defect>;
34
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
35
+ }>, import("effect/Cause").YieldableError>;
36
+ export declare class Error extends Error_base {
37
+ }
38
+ export interface TextContent extends Schema.Schema.Type<typeof TextContent> {
39
+ }
40
+ export declare const TextContent: Schema.Struct<{
41
+ readonly type: Schema.Literal<"text">;
42
+ readonly text: Schema.String;
43
+ }>;
44
+ export interface FileContent extends Schema.Schema.Type<typeof FileContent> {
45
+ }
46
+ export declare const FileContent: Schema.Struct<{
47
+ readonly type: Schema.Literal<"file">;
48
+ readonly uri: Schema.String;
49
+ readonly mime: Schema.String;
50
+ readonly name: Schema.optional<Schema.String>;
51
+ }>;
52
+ export declare const Content: Schema.Union<readonly [Schema.Struct<{
53
+ readonly type: Schema.Literal<"text">;
54
+ readonly text: Schema.String;
55
+ }>, Schema.Struct<{
56
+ readonly type: Schema.Literal<"file">;
57
+ readonly uri: Schema.String;
58
+ readonly mime: Schema.String;
59
+ readonly name: Schema.optional<Schema.String>;
60
+ }>]>;
61
+ export type Content = Schema.Schema.Type<typeof Content>;
62
+ export interface Result<Output extends ValueSchema<any> | undefined = ValueSchema<any> | undefined> {
63
+ readonly output?: OutputValue<Output>;
64
+ readonly content?: string | ReadonlyArray<Content>;
65
+ readonly metadata?: Metadata;
66
+ }
67
+ export type Info<Input extends ValueSchema<any> = ValueSchema<any>, Output extends ValueSchema<any> | undefined = ValueSchema<any> | undefined> = {
68
+ readonly name: string;
69
+ readonly input: Input;
70
+ readonly description: string;
71
+ readonly execute: (input: InputValue<Input>, context: Context) => Effect.Effect<Result<Output>, Error>;
72
+ readonly output?: Output;
73
+ readonly options?: Options;
74
+ };
package/dist/tool.js ADDED
@@ -0,0 +1,22 @@
1
+ export * as Tool from "./tool.js";
2
+ import { Effect, JsonSchema, Schema } from "effect";
3
+ export const CallID = Schema.String.pipe(Schema.brand("Tool.CallID"));
4
+ export class Error extends Schema.TaggedErrorClass()("Tool.Error", {
5
+ message: Schema.String,
6
+ error: Schema.optional(Schema.Defect()),
7
+ metadata: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),
8
+ }) {
9
+ }
10
+ export const TextContent = Schema.Struct({
11
+ type: Schema.Literal("text"),
12
+ text: Schema.String,
13
+ }).annotate({ identifier: "Tool.TextContent" });
14
+ export const FileContent = Schema.Struct({
15
+ type: Schema.Literal("file"),
16
+ uri: Schema.String,
17
+ mime: Schema.String,
18
+ name: Schema.optional(Schema.String),
19
+ }).annotate({ identifier: "Tool.FileContent" });
20
+ export const Content = Schema.Union([TextContent, FileContent])
21
+ .pipe(Schema.toTaggedUnion("type"))
22
+ .annotate({ identifier: "Tool.Content" });
@@ -0,0 +1,307 @@
1
+ export * as TuiEvent from "./tui-event.js";
2
+ import { Schema } from "effect";
3
+ export declare const PromptAppend: Schema.Struct<{
4
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
5
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
6
+ };
7
+ readonly created: Schema.Finite;
8
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
9
+ readonly type: Schema.Literal<"tui.prompt.append">;
10
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
11
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
12
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
13
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
14
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
15
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
16
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
17
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
18
+ }>, never, never>;
19
+ }>>>, Schema.optionalKey<Schema.Struct<{
20
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
21
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
22
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
23
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
24
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
25
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
26
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
27
+ }>, never, never>;
28
+ }>>, never, never>;
29
+ readonly data: Schema.Struct<{
30
+ readonly text: Schema.String;
31
+ }>;
32
+ }> & {
33
+ type: "tui.prompt.append";
34
+ durability: "ephemeral";
35
+ durable: undefined;
36
+ data: Schema.Struct<{
37
+ readonly text: Schema.String;
38
+ }>;
39
+ };
40
+ export declare const CommandExecute: Schema.Struct<{
41
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
42
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
43
+ };
44
+ readonly created: Schema.Finite;
45
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
46
+ readonly type: Schema.Literal<"tui.command.execute">;
47
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
48
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
49
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
50
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
51
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
52
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
53
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
54
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
55
+ }>, never, never>;
56
+ }>>>, Schema.optionalKey<Schema.Struct<{
57
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
58
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
59
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
60
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
61
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
62
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
63
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
64
+ }>, never, never>;
65
+ }>>, never, never>;
66
+ readonly data: Schema.Struct<{
67
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
68
+ }>;
69
+ }> & {
70
+ type: "tui.command.execute";
71
+ durability: "ephemeral";
72
+ durable: undefined;
73
+ data: Schema.Struct<{
74
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
75
+ }>;
76
+ };
77
+ export declare const ToastShow: Schema.Struct<{
78
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
79
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
80
+ };
81
+ readonly created: Schema.Finite;
82
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
83
+ readonly type: Schema.Literal<"tui.toast.show">;
84
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
85
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
86
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
87
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
88
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
89
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
90
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
91
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
92
+ }>, never, never>;
93
+ }>>>, Schema.optionalKey<Schema.Struct<{
94
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
95
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
96
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
97
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
98
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
99
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
100
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
101
+ }>, never, never>;
102
+ }>>, never, never>;
103
+ readonly data: Schema.Struct<{
104
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
105
+ readonly message: Schema.String;
106
+ readonly variant: Schema.Literals<readonly ["info", "success", "warning", "error"]>;
107
+ readonly duration: Schema.withDecodingDefault<Schema.Int, never>;
108
+ }>;
109
+ }> & {
110
+ type: "tui.toast.show";
111
+ durability: "ephemeral";
112
+ durable: undefined;
113
+ data: Schema.Struct<{
114
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
115
+ readonly message: Schema.String;
116
+ readonly variant: Schema.Literals<readonly ["info", "success", "warning", "error"]>;
117
+ readonly duration: Schema.withDecodingDefault<Schema.Int, never>;
118
+ }>;
119
+ };
120
+ export declare const SessionSelect: Schema.Struct<{
121
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
122
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
123
+ };
124
+ readonly created: Schema.Finite;
125
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
126
+ readonly type: Schema.Literal<"tui.session.select">;
127
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
128
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
129
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
130
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
131
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
132
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
133
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
134
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
135
+ }>, never, never>;
136
+ }>>>, Schema.optionalKey<Schema.Struct<{
137
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
138
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
139
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
140
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
141
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
142
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
143
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
144
+ }>, never, never>;
145
+ }>>, never, never>;
146
+ readonly data: Schema.Struct<{
147
+ readonly sessionID: Schema.brand<Schema.String, "SessionID">;
148
+ }>;
149
+ }> & {
150
+ type: "tui.session.select";
151
+ durability: "ephemeral";
152
+ durable: undefined;
153
+ data: Schema.Struct<{
154
+ readonly sessionID: Schema.brand<Schema.String, "SessionID">;
155
+ }>;
156
+ };
157
+ export declare const Definitions: readonly [Schema.Struct<{
158
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
159
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
160
+ };
161
+ readonly created: Schema.Finite;
162
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
163
+ readonly type: Schema.Literal<"tui.prompt.append">;
164
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
165
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
166
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
167
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
168
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
169
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
170
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
171
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
172
+ }>, never, never>;
173
+ }>>>, Schema.optionalKey<Schema.Struct<{
174
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
175
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
176
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
177
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
178
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
179
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
180
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
181
+ }>, never, never>;
182
+ }>>, never, never>;
183
+ readonly data: Schema.Struct<{
184
+ readonly text: Schema.String;
185
+ }>;
186
+ }> & {
187
+ type: "tui.prompt.append";
188
+ durability: "ephemeral";
189
+ durable: undefined;
190
+ data: Schema.Struct<{
191
+ readonly text: Schema.String;
192
+ }>;
193
+ }, Schema.Struct<{
194
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
195
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
196
+ };
197
+ readonly created: Schema.Finite;
198
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
199
+ readonly type: Schema.Literal<"tui.command.execute">;
200
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
201
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
202
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
203
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
204
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
205
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
206
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
207
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
208
+ }>, never, never>;
209
+ }>>>, Schema.optionalKey<Schema.Struct<{
210
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
211
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
212
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
213
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
214
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
215
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
216
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
217
+ }>, never, never>;
218
+ }>>, never, never>;
219
+ readonly data: Schema.Struct<{
220
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
221
+ }>;
222
+ }> & {
223
+ type: "tui.command.execute";
224
+ durability: "ephemeral";
225
+ durable: undefined;
226
+ data: Schema.Struct<{
227
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["session.list", "session.new", "session.share", "session.interrupt", "session.background", "session.compact", "session.page.up", "session.page.down", "session.line.up", "session.line.down", "session.half.page.up", "session.half.page.down", "session.first", "session.last", "prompt.clear", "prompt.submit", "agent.cycle"]>, Schema.String]>;
228
+ }>;
229
+ }, Schema.Struct<{
230
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
231
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
232
+ };
233
+ readonly created: Schema.Finite;
234
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
235
+ readonly type: Schema.Literal<"tui.toast.show">;
236
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
237
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
238
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
239
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
240
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
241
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
242
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
243
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
244
+ }>, never, never>;
245
+ }>>>, Schema.optionalKey<Schema.Struct<{
246
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
247
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
248
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
249
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
250
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
251
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
252
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
253
+ }>, never, never>;
254
+ }>>, never, never>;
255
+ readonly data: Schema.Struct<{
256
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
257
+ readonly message: Schema.String;
258
+ readonly variant: Schema.Literals<readonly ["info", "success", "warning", "error"]>;
259
+ readonly duration: Schema.withDecodingDefault<Schema.Int, never>;
260
+ }>;
261
+ }> & {
262
+ type: "tui.toast.show";
263
+ durability: "ephemeral";
264
+ durable: undefined;
265
+ data: Schema.Struct<{
266
+ readonly title: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
267
+ readonly message: Schema.String;
268
+ readonly variant: Schema.Literals<readonly ["info", "success", "warning", "error"]>;
269
+ readonly duration: Schema.withDecodingDefault<Schema.Int, never>;
270
+ }>;
271
+ }, Schema.Struct<{
272
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
273
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
274
+ };
275
+ readonly created: Schema.Finite;
276
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
277
+ readonly type: Schema.Literal<"tui.session.select">;
278
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
279
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
280
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
281
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
282
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
283
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
284
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
285
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
286
+ }>, never, never>;
287
+ }>>>, Schema.optionalKey<Schema.Struct<{
288
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
289
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
290
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
291
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
292
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
293
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
294
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
295
+ }>, never, never>;
296
+ }>>, never, never>;
297
+ readonly data: Schema.Struct<{
298
+ readonly sessionID: Schema.brand<Schema.String, "SessionID">;
299
+ }>;
300
+ }> & {
301
+ type: "tui.session.select";
302
+ durability: "ephemeral";
303
+ durable: undefined;
304
+ data: Schema.Struct<{
305
+ readonly sessionID: Schema.brand<Schema.String, "SessionID">;
306
+ }>;
307
+ }];
@@ -0,0 +1,53 @@
1
+ export * as TuiEvent from "./tui-event.js";
2
+ import { Effect, Schema } from "effect";
3
+ import { optional } from "./schema.js";
4
+ import { Event } from "./event.js";
5
+ import { PositiveInt } from "./schema.js";
6
+ import { SessionID } from "./session-id.js";
7
+ const DEFAULT_TOAST_DURATION = 5000;
8
+ export const PromptAppend = Event.ephemeral({ type: "tui.prompt.append", schema: { text: Schema.String } });
9
+ export const CommandExecute = Event.ephemeral({
10
+ type: "tui.command.execute",
11
+ schema: {
12
+ command: Schema.Union([
13
+ Schema.Literals([
14
+ "session.list",
15
+ "session.new",
16
+ "session.share",
17
+ "session.interrupt",
18
+ "session.background",
19
+ "session.compact",
20
+ "session.page.up",
21
+ "session.page.down",
22
+ "session.line.up",
23
+ "session.line.down",
24
+ "session.half.page.up",
25
+ "session.half.page.down",
26
+ "session.first",
27
+ "session.last",
28
+ "prompt.clear",
29
+ "prompt.submit",
30
+ "agent.cycle",
31
+ ]),
32
+ Schema.String,
33
+ ]),
34
+ },
35
+ });
36
+ export const ToastShow = Event.ephemeral({
37
+ type: "tui.toast.show",
38
+ schema: {
39
+ title: optional(Schema.String),
40
+ message: Schema.String,
41
+ variant: Schema.Literals(["info", "success", "warning", "error"]),
42
+ duration: PositiveInt.pipe(Schema.withDecodingDefault(Effect.succeed(DEFAULT_TOAST_DURATION))).annotate({
43
+ description: "Duration in milliseconds",
44
+ }),
45
+ },
46
+ });
47
+ export const SessionSelect = Event.ephemeral({
48
+ type: "tui.session.select",
49
+ schema: {
50
+ sessionID: SessionID.annotate({ description: "Session ID to navigate to" }),
51
+ },
52
+ });
53
+ export const Definitions = Event.inventory(PromptAppend, CommandExecute, ToastShow, SessionSelect);
@@ -0,0 +1,78 @@
1
+ export * as FileSystemV1 from "./filesystem.js";
2
+ import { Schema } from "effect";
3
+ export declare const Event: {
4
+ Edited: Schema.Struct<{
5
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
6
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
7
+ };
8
+ readonly created: Schema.Finite;
9
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
10
+ readonly type: Schema.Literal<"file.edited">;
11
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
12
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
13
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
14
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
15
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
16
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
17
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
18
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
19
+ }>, never, never>;
20
+ }>>>, Schema.optionalKey<Schema.Struct<{
21
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
22
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
23
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
24
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
25
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
26
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
27
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
28
+ }>, never, never>;
29
+ }>>, never, never>;
30
+ readonly data: Schema.Struct<{
31
+ readonly file: Schema.String;
32
+ }>;
33
+ }> & {
34
+ type: "file.edited";
35
+ durability: "ephemeral";
36
+ durable: undefined;
37
+ data: Schema.Struct<{
38
+ readonly file: Schema.String;
39
+ }>;
40
+ };
41
+ Definitions: readonly [Schema.Struct<{
42
+ readonly id: Schema.brand<Schema.String, "Event.ID"> & {
43
+ create: () => string & import("effect/Brand").Brand<"Event.ID">;
44
+ };
45
+ readonly created: Schema.Finite;
46
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
47
+ readonly type: Schema.Literal<"file.edited">;
48
+ readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
49
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
50
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
51
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
52
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
53
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
54
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
55
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
56
+ }>, never, never>;
57
+ }>>>, Schema.optionalKey<Schema.Struct<{
58
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
59
+ readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
60
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
61
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
62
+ }>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
63
+ ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
64
+ create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
65
+ }>, never, never>;
66
+ }>>, never, never>;
67
+ readonly data: Schema.Struct<{
68
+ readonly file: Schema.String;
69
+ }>;
70
+ }> & {
71
+ type: "file.edited";
72
+ durability: "ephemeral";
73
+ durable: undefined;
74
+ data: Schema.Struct<{
75
+ readonly file: Schema.String;
76
+ }>;
77
+ }];
78
+ };
@@ -0,0 +1,8 @@
1
+ export * as FileSystemV1 from "./filesystem.js";
2
+ import { Schema } from "effect";
3
+ import { ephemeral, inventory } from "../event.js";
4
+ const Edited = ephemeral({
5
+ type: "file.edited",
6
+ schema: { file: Schema.String },
7
+ });
8
+ export const Event = { Edited, Definitions: inventory(Edited) };