@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.
- package/dist/agent.d.ts +164 -0
- package/dist/agent.js +46 -0
- package/dist/ai.d.ts +4 -0
- package/dist/ai.js +5 -0
- package/dist/catalog.d.ts +69 -0
- package/dist/catalog.js +4 -0
- package/dist/command.d.ts +124 -0
- package/dist/command.js +19 -0
- package/dist/config/agent.d.ts +42 -0
- package/dist/config/agent.js +20 -0
- package/dist/config/command.d.ts +27 -0
- package/dist/config/command.js +12 -0
- package/dist/config/compaction.d.ts +14 -0
- package/dist/config/compaction.js +13 -0
- package/dist/config/experimental.d.ts +17 -0
- package/dist/config/experimental.js +16 -0
- package/dist/config/formatter.d.ts +11 -0
- package/dist/config/formatter.js +11 -0
- package/dist/config/lsp.d.ts +20 -0
- package/dist/config/lsp.js +16 -0
- package/dist/config/mcp.d.ts +18 -0
- package/dist/config/mcp.js +14 -0
- package/dist/config/media.d.ts +15 -0
- package/dist/config/media.js +14 -0
- package/dist/config/model.d.ts +18 -0
- package/dist/config/model.js +28 -0
- package/dist/config/plugin.d.ts +11 -0
- package/dist/config/plugin.js +10 -0
- package/dist/config/policy.d.ts +10 -0
- package/dist/config/policy.js +8 -0
- package/dist/config/provider.d.ts +106 -0
- package/dist/config/provider.js +62 -0
- package/dist/config/reference.d.ts +21 -0
- package/dist/config/reference.js +18 -0
- package/dist/config/tool-output.d.ts +8 -0
- package/dist/config/tool-output.js +8 -0
- package/dist/config/warming.d.ts +10 -0
- package/dist/config/warming.js +16 -0
- package/dist/config/watcher.d.ts +7 -0
- package/dist/config/watcher.js +7 -0
- package/dist/config/websearch.d.ts +9 -0
- package/dist/config/websearch.js +8 -0
- package/dist/config.d.ts +175 -0
- package/dist/config.js +136 -0
- package/dist/connection.d.ts +28 -0
- package/dist/connection.js +15 -0
- package/dist/credential.d.ts +38 -0
- package/dist/credential.js +25 -0
- package/dist/durable-event-manifest.d.ts +3 -0
- package/dist/durable-event-manifest.js +5 -0
- package/dist/event-log.d.ts +14 -0
- package/dist/event-log.js +17 -0
- package/dist/event-manifest.d.ts +11372 -0
- package/dist/event-manifest.js +45 -0
- package/dist/event.d.ts +142 -0
- package/dist/event.js +110 -0
- package/dist/file-diff.d.ts +21 -0
- package/dist/file-diff.js +18 -0
- package/dist/filesystem-v1.d.ts +1 -0
- package/dist/filesystem-v1.js +1 -0
- package/dist/filesystem.d.ts +118 -0
- package/dist/filesystem.js +35 -0
- package/dist/form.d.ts +1259 -0
- package/dist/form.js +120 -0
- package/dist/ide-event.d.ts +76 -0
- package/dist/ide-event.js +10 -0
- package/dist/identifier.d.ts +3 -0
- package/dist/identifier.js +24 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +39 -0
- package/dist/installation-event.d.ts +149 -0
- package/dist/installation-event.js +16 -0
- package/dist/instruction-entry.d.ts +23 -0
- package/dist/instruction-entry.js +22 -0
- package/dist/instruction.d.ts +13 -0
- package/dist/instruction.js +8 -0
- package/dist/integration-id.d.ts +5 -0
- package/dist/integration-id.js +3 -0
- package/dist/integration.d.ts +1675 -0
- package/dist/integration.js +87 -0
- package/dist/legacy-event.d.ts +1 -0
- package/dist/legacy-event.js +1 -0
- package/dist/llm.d.ts +4 -0
- package/dist/llm.js +3 -0
- package/dist/location.d.ts +37 -0
- package/dist/location.js +22 -0
- package/dist/lsp-event.d.ts +67 -0
- package/dist/lsp-event.js +4 -0
- package/dist/mcp-event.d.ts +222 -0
- package/dist/mcp-event.js +24 -0
- package/dist/mcp.d.ts +138 -0
- package/dist/mcp.js +111 -0
- package/dist/model.d.ts +186 -0
- package/dist/model.js +104 -0
- package/dist/models-dev.d.ts +69 -0
- package/dist/models-dev.js +7 -0
- package/dist/money.d.ts +10 -0
- package/dist/money.js +5 -0
- package/dist/permission-saved.d.ts +18 -0
- package/dist/permission-saved.js +12 -0
- package/dist/permission-v1.d.ts +1 -0
- package/dist/permission-v1.js +1 -0
- package/dist/permission.d.ts +306 -0
- package/dist/permission.js +45 -0
- package/dist/plugin.d.ts +150 -0
- package/dist/plugin.js +16 -0
- package/dist/project-id.d.ts +5 -0
- package/dist/project-id.js +3 -0
- package/dist/project.d.ts +241 -0
- package/dist/project.js +37 -0
- package/dist/prompt-input.d.ts +143 -0
- package/dist/prompt-input.js +25 -0
- package/dist/prompt.d.ts +297 -0
- package/dist/prompt.js +61 -0
- package/dist/provider.d.ts +60 -0
- package/dist/provider.js +42 -0
- package/dist/pty-ticket.d.ts +8 -0
- package/dist/pty-ticket.js +7 -0
- package/dist/pty.d.ts +462 -0
- package/dist/pty.js +43 -0
- package/dist/question-v1.d.ts +1 -0
- package/dist/question-v1.js +1 -0
- package/dist/question.d.ts +15 -0
- package/dist/question.js +15 -0
- package/dist/reference.d.ts +120 -0
- package/dist/reference.js +30 -0
- package/dist/schema.d.ts +10 -0
- package/dist/schema.js +14 -0
- package/dist/server-event.d.ts +132 -0
- package/dist/server-event.js +5 -0
- package/dist/session-compaction-event.d.ts +87 -0
- package/dist/session-compaction-event.js +10 -0
- package/dist/session-error.d.ts +9 -0
- package/dist/session-error.js +8 -0
- package/dist/session-event.d.ts +17994 -0
- package/dist/session-event.js +499 -0
- package/dist/session-fork.d.ts +26 -0
- package/dist/session-fork.js +11 -0
- package/dist/session-id.d.ts +6 -0
- package/dist/session-id.js +10 -0
- package/dist/session-inbox.d.ts +748 -0
- package/dist/session-inbox.js +47 -0
- package/dist/session-message.d.ts +1512 -0
- package/dist/session-message.js +209 -0
- package/dist/session-revert.d.ts +480 -0
- package/dist/session-revert.js +63 -0
- package/dist/session-status-event.d.ts +299 -0
- package/dist/session-status-event.js +43 -0
- package/dist/session-transfer.d.ts +744 -0
- package/dist/session-transfer.js +8 -0
- package/dist/session-v1.d.ts +1 -0
- package/dist/session-v1.js +1 -0
- package/dist/session.d.ts +218 -0
- package/dist/session.js +45 -0
- package/dist/shell.d.ts +381 -0
- package/dist/shell.js +58 -0
- package/dist/skill.d.ts +133 -0
- package/dist/skill.js +48 -0
- package/dist/snapshot.d.ts +4 -0
- package/dist/snapshot.js +3 -0
- package/dist/token-usage.d.ts +13 -0
- package/dist/token-usage.js +11 -0
- package/dist/tool.d.ts +74 -0
- package/dist/tool.js +22 -0
- package/dist/tui-event.d.ts +307 -0
- package/dist/tui-event.js +53 -0
- package/dist/v1/filesystem.d.ts +78 -0
- package/dist/v1/filesystem.js +8 -0
- package/dist/v1/legacy-event.d.ts +108 -0
- package/dist/v1/legacy-event.js +15 -0
- package/dist/v1/permission.d.ts +316 -0
- package/dist/v1/permission.js +41 -0
- package/dist/v1/question.d.ts +444 -0
- package/dist/v1/question.js +57 -0
- package/dist/v1/session.d.ts +7657 -0
- package/dist/v1/session.js +535 -0
- package/dist/vcs-event.d.ts +76 -0
- package/dist/vcs-event.js +11 -0
- package/dist/vcs.d.ts +26 -0
- package/dist/vcs.js +17 -0
- package/dist/websearch.d.ts +108 -0
- package/dist/websearch.js +31 -0
- package/dist/workspace-event.d.ts +247 -0
- package/dist/workspace-event.js +25 -0
- package/dist/workspace-id.d.ts +6 -0
- package/dist/workspace-id.js +16 -0
- package/dist/workspace.d.ts +9 -0
- package/dist/workspace.js +5 -0
- package/dist/worktree-event.d.ts +153 -0
- package/dist/worktree-event.js +18 -0
- package/dist/worktree.d.ts +255 -0
- package/dist/worktree.js +61 -0
- package/package.json +42 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
export * as LegacyEventV1 from "./legacy-event.js";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
export declare const CommandExecuted: 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<"command.executed">;
|
|
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 name: Schema.String;
|
|
31
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
32
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
33
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
34
|
+
};
|
|
35
|
+
readonly arguments: Schema.String;
|
|
36
|
+
readonly messageID: Schema.brand<Schema.String, "SessionV1.MessageID"> & {
|
|
37
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"SessionV1.MessageID">;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
40
|
+
}> & {
|
|
41
|
+
type: "command.executed";
|
|
42
|
+
durability: "ephemeral";
|
|
43
|
+
durable: undefined;
|
|
44
|
+
data: Schema.Struct<{
|
|
45
|
+
readonly name: Schema.String;
|
|
46
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
47
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
48
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
49
|
+
};
|
|
50
|
+
readonly arguments: Schema.String;
|
|
51
|
+
readonly messageID: Schema.brand<Schema.String, "SessionV1.MessageID"> & {
|
|
52
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"SessionV1.MessageID">;
|
|
53
|
+
};
|
|
54
|
+
}>;
|
|
55
|
+
};
|
|
56
|
+
export declare const Definitions: readonly [Schema.Struct<{
|
|
57
|
+
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
58
|
+
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
59
|
+
};
|
|
60
|
+
readonly created: Schema.Finite;
|
|
61
|
+
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
62
|
+
readonly type: Schema.Literal<"command.executed">;
|
|
63
|
+
readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
64
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
65
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
66
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
67
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
68
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
69
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
70
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
71
|
+
}>, never, never>;
|
|
72
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
73
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
74
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
75
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
76
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
77
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
78
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
79
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
80
|
+
}>, never, never>;
|
|
81
|
+
}>>, never, never>;
|
|
82
|
+
readonly data: Schema.Struct<{
|
|
83
|
+
readonly name: Schema.String;
|
|
84
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
85
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
86
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
87
|
+
};
|
|
88
|
+
readonly arguments: Schema.String;
|
|
89
|
+
readonly messageID: Schema.brand<Schema.String, "SessionV1.MessageID"> & {
|
|
90
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"SessionV1.MessageID">;
|
|
91
|
+
};
|
|
92
|
+
}>;
|
|
93
|
+
}> & {
|
|
94
|
+
type: "command.executed";
|
|
95
|
+
durability: "ephemeral";
|
|
96
|
+
durable: undefined;
|
|
97
|
+
data: Schema.Struct<{
|
|
98
|
+
readonly name: Schema.String;
|
|
99
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
100
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
101
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
102
|
+
};
|
|
103
|
+
readonly arguments: Schema.String;
|
|
104
|
+
readonly messageID: Schema.brand<Schema.String, "SessionV1.MessageID"> & {
|
|
105
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"SessionV1.MessageID">;
|
|
106
|
+
};
|
|
107
|
+
}>;
|
|
108
|
+
}];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * as LegacyEventV1 from "./legacy-event.js";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
import { ephemeral, inventory } from "../event.js";
|
|
4
|
+
import { SessionID } from "../session-id.js";
|
|
5
|
+
import { SessionV1 } from "./session.js";
|
|
6
|
+
export const CommandExecuted = ephemeral({
|
|
7
|
+
type: "command.executed",
|
|
8
|
+
schema: {
|
|
9
|
+
name: Schema.String,
|
|
10
|
+
sessionID: SessionID,
|
|
11
|
+
arguments: Schema.String,
|
|
12
|
+
messageID: SessionV1.MessageID,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
export const Definitions = inventory(CommandExecuted);
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
export * as PermissionV1 from "./permission.js";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
export declare const ID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
4
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
5
|
+
};
|
|
6
|
+
export type ID = typeof ID.Type;
|
|
7
|
+
export declare const Action: Schema.Literals<readonly ["allow", "deny", "ask"]>;
|
|
8
|
+
export type Action = typeof Action.Type;
|
|
9
|
+
export declare const Rule: Schema.Struct<{
|
|
10
|
+
readonly permission: Schema.String;
|
|
11
|
+
readonly pattern: Schema.String;
|
|
12
|
+
readonly action: Schema.Literals<readonly ["allow", "deny", "ask"]>;
|
|
13
|
+
}>;
|
|
14
|
+
export type Rule = typeof Rule.Type;
|
|
15
|
+
export declare const Ruleset: Schema.$Array<Schema.Struct<{
|
|
16
|
+
readonly permission: Schema.String;
|
|
17
|
+
readonly pattern: Schema.String;
|
|
18
|
+
readonly action: Schema.Literals<readonly ["allow", "deny", "ask"]>;
|
|
19
|
+
}>>;
|
|
20
|
+
export type Ruleset = typeof Ruleset.Type;
|
|
21
|
+
export declare const Request: Schema.Struct<{
|
|
22
|
+
readonly id: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
23
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
24
|
+
};
|
|
25
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
26
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
27
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
28
|
+
};
|
|
29
|
+
readonly permission: Schema.String;
|
|
30
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
31
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
32
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
33
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
34
|
+
readonly messageID: Schema.String;
|
|
35
|
+
readonly callID: Schema.String;
|
|
36
|
+
}>>;
|
|
37
|
+
}>;
|
|
38
|
+
export type Request = typeof Request.Type;
|
|
39
|
+
export declare const Reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
40
|
+
export type Reply = typeof Reply.Type;
|
|
41
|
+
export declare const ReplyBody: Schema.Struct<{
|
|
42
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
43
|
+
readonly message: Schema.optional<Schema.String>;
|
|
44
|
+
}>;
|
|
45
|
+
export type ReplyBody = typeof ReplyBody.Type;
|
|
46
|
+
export declare const Approval: Schema.Struct<{
|
|
47
|
+
readonly projectID: Schema.brand<Schema.String, "Project.ID"> & {
|
|
48
|
+
global: string & import("effect/Brand").Brand<"Project.ID">;
|
|
49
|
+
};
|
|
50
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
51
|
+
}>;
|
|
52
|
+
export type Approval = typeof Approval.Type;
|
|
53
|
+
export declare const AskInput: Schema.Struct<{
|
|
54
|
+
readonly id: Schema.optional<Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
55
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
56
|
+
}>;
|
|
57
|
+
readonly ruleset: Schema.$Array<Schema.Struct<{
|
|
58
|
+
readonly permission: Schema.String;
|
|
59
|
+
readonly pattern: Schema.String;
|
|
60
|
+
readonly action: Schema.Literals<readonly ["allow", "deny", "ask"]>;
|
|
61
|
+
}>>;
|
|
62
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
63
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
64
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
65
|
+
};
|
|
66
|
+
readonly permission: Schema.String;
|
|
67
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
68
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
69
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
70
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
71
|
+
readonly messageID: Schema.String;
|
|
72
|
+
readonly callID: Schema.String;
|
|
73
|
+
}>>;
|
|
74
|
+
}>;
|
|
75
|
+
export type AskInput = typeof AskInput.Type;
|
|
76
|
+
export declare const ReplyInput: Schema.Struct<{
|
|
77
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
78
|
+
readonly message: Schema.optional<Schema.String>;
|
|
79
|
+
readonly requestID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
80
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
81
|
+
};
|
|
82
|
+
}>;
|
|
83
|
+
export type ReplyInput = typeof ReplyInput.Type;
|
|
84
|
+
export declare const Event: {
|
|
85
|
+
Asked: Schema.Struct<{
|
|
86
|
+
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
87
|
+
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
88
|
+
};
|
|
89
|
+
readonly created: Schema.Finite;
|
|
90
|
+
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
91
|
+
readonly type: Schema.Literal<"permission.asked">;
|
|
92
|
+
readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
93
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
94
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
95
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
96
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
97
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
98
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
99
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
100
|
+
}>, never, never>;
|
|
101
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
102
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
103
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
104
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
105
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
106
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
107
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
108
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
109
|
+
}>, never, never>;
|
|
110
|
+
}>>, never, never>;
|
|
111
|
+
readonly data: Schema.Struct<{
|
|
112
|
+
readonly id: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
113
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
114
|
+
};
|
|
115
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
116
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
117
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
118
|
+
};
|
|
119
|
+
readonly permission: Schema.String;
|
|
120
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
121
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
122
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
123
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
124
|
+
readonly messageID: Schema.String;
|
|
125
|
+
readonly callID: Schema.String;
|
|
126
|
+
}>>;
|
|
127
|
+
}>;
|
|
128
|
+
}> & {
|
|
129
|
+
type: "permission.asked";
|
|
130
|
+
durability: "ephemeral";
|
|
131
|
+
durable: undefined;
|
|
132
|
+
data: Schema.Struct<{
|
|
133
|
+
readonly id: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
134
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
135
|
+
};
|
|
136
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
137
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
138
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
139
|
+
};
|
|
140
|
+
readonly permission: Schema.String;
|
|
141
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
142
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
143
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
144
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
145
|
+
readonly messageID: Schema.String;
|
|
146
|
+
readonly callID: Schema.String;
|
|
147
|
+
}>>;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
150
|
+
Replied: Schema.Struct<{
|
|
151
|
+
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
152
|
+
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
153
|
+
};
|
|
154
|
+
readonly created: Schema.Finite;
|
|
155
|
+
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
156
|
+
readonly type: Schema.Literal<"permission.replied">;
|
|
157
|
+
readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
158
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
159
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
160
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
161
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
162
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
163
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
164
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
165
|
+
}>, never, never>;
|
|
166
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
167
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
168
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
169
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
170
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
171
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
172
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
173
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
174
|
+
}>, never, never>;
|
|
175
|
+
}>>, never, never>;
|
|
176
|
+
readonly data: Schema.Struct<{
|
|
177
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
178
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
179
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
180
|
+
};
|
|
181
|
+
readonly requestID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
182
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
183
|
+
};
|
|
184
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
185
|
+
}>;
|
|
186
|
+
}> & {
|
|
187
|
+
type: "permission.replied";
|
|
188
|
+
durability: "ephemeral";
|
|
189
|
+
durable: undefined;
|
|
190
|
+
data: Schema.Struct<{
|
|
191
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
192
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
193
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
194
|
+
};
|
|
195
|
+
readonly requestID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
196
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
197
|
+
};
|
|
198
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
199
|
+
}>;
|
|
200
|
+
};
|
|
201
|
+
Definitions: readonly [Schema.Struct<{
|
|
202
|
+
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
203
|
+
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
204
|
+
};
|
|
205
|
+
readonly created: Schema.Finite;
|
|
206
|
+
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
207
|
+
readonly type: Schema.Literal<"permission.asked">;
|
|
208
|
+
readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
209
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
210
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
211
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
212
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
213
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
214
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
215
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
216
|
+
}>, never, never>;
|
|
217
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
218
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
219
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
220
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
221
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
222
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
223
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
224
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
225
|
+
}>, never, never>;
|
|
226
|
+
}>>, never, never>;
|
|
227
|
+
readonly data: Schema.Struct<{
|
|
228
|
+
readonly id: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
229
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
230
|
+
};
|
|
231
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
232
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
233
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
234
|
+
};
|
|
235
|
+
readonly permission: Schema.String;
|
|
236
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
237
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
238
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
239
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
240
|
+
readonly messageID: Schema.String;
|
|
241
|
+
readonly callID: Schema.String;
|
|
242
|
+
}>>;
|
|
243
|
+
}>;
|
|
244
|
+
}> & {
|
|
245
|
+
type: "permission.asked";
|
|
246
|
+
durability: "ephemeral";
|
|
247
|
+
durable: undefined;
|
|
248
|
+
data: Schema.Struct<{
|
|
249
|
+
readonly id: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
250
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
251
|
+
};
|
|
252
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
253
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
254
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
255
|
+
};
|
|
256
|
+
readonly permission: Schema.String;
|
|
257
|
+
readonly patterns: Schema.$Array<Schema.String>;
|
|
258
|
+
readonly metadata: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
259
|
+
readonly always: Schema.$Array<Schema.String>;
|
|
260
|
+
readonly tool: Schema.optional<Schema.Struct<{
|
|
261
|
+
readonly messageID: Schema.String;
|
|
262
|
+
readonly callID: Schema.String;
|
|
263
|
+
}>>;
|
|
264
|
+
}>;
|
|
265
|
+
}, Schema.Struct<{
|
|
266
|
+
readonly id: Schema.brand<Schema.String, "Event.ID"> & {
|
|
267
|
+
create: () => string & import("effect/Brand").Brand<"Event.ID">;
|
|
268
|
+
};
|
|
269
|
+
readonly created: Schema.Finite;
|
|
270
|
+
readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
|
|
271
|
+
readonly type: Schema.Literal<"permission.replied">;
|
|
272
|
+
readonly location: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Struct<{
|
|
273
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
274
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
275
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
276
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
277
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
278
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
279
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
280
|
+
}>, never, never>;
|
|
281
|
+
}>>>, Schema.optionalKey<Schema.Struct<{
|
|
282
|
+
readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
|
|
283
|
+
readonly workspaceID: Schema.decodeTo<Schema.optional<Schema.toType<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
|
+
}>>, Schema.optionalKey<Schema.brand<Schema.String, "Workspace.ID"> & {
|
|
287
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
288
|
+
create: () => string & import("effect/Brand").Brand<"Workspace.ID">;
|
|
289
|
+
}>, never, never>;
|
|
290
|
+
}>>, never, never>;
|
|
291
|
+
readonly data: Schema.Struct<{
|
|
292
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
293
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
294
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
295
|
+
};
|
|
296
|
+
readonly requestID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
297
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
298
|
+
};
|
|
299
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
300
|
+
}>;
|
|
301
|
+
}> & {
|
|
302
|
+
type: "permission.replied";
|
|
303
|
+
durability: "ephemeral";
|
|
304
|
+
durable: undefined;
|
|
305
|
+
data: Schema.Struct<{
|
|
306
|
+
readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
|
|
307
|
+
create: () => string & import("effect/Brand").Brand<"SessionID">;
|
|
308
|
+
descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
|
|
309
|
+
};
|
|
310
|
+
readonly requestID: Schema.brand<Schema.String, "PermissionV1.ID"> & {
|
|
311
|
+
ascending: (id?: string) => string & import("effect/Brand").Brand<"PermissionV1.ID">;
|
|
312
|
+
};
|
|
313
|
+
readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
|
|
314
|
+
}>;
|
|
315
|
+
}];
|
|
316
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export * as PermissionV1 from "./permission.js";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
import { ephemeral, inventory } from "../event.js";
|
|
4
|
+
import { ascending } from "../identifier.js";
|
|
5
|
+
import { Project } from "../project.js";
|
|
6
|
+
import { statics } from "../schema.js";
|
|
7
|
+
import { SessionID } from "../session-id.js";
|
|
8
|
+
export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("PermissionV1.ID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "per_" + ascending()) })));
|
|
9
|
+
export const Action = Schema.Literals(["allow", "deny", "ask"]).annotate({ identifier: "PermissionV1.Action" });
|
|
10
|
+
export const Rule = Schema.Struct({ permission: Schema.String, pattern: Schema.String, action: Action }).annotate({
|
|
11
|
+
identifier: "PermissionV1.Rule",
|
|
12
|
+
});
|
|
13
|
+
export const Ruleset = Schema.Array(Rule).annotate({ identifier: "PermissionV1.Ruleset" });
|
|
14
|
+
export const Request = Schema.Struct({
|
|
15
|
+
id: ID,
|
|
16
|
+
sessionID: SessionID,
|
|
17
|
+
permission: Schema.String,
|
|
18
|
+
patterns: Schema.Array(Schema.String),
|
|
19
|
+
metadata: Schema.Record(Schema.String, Schema.Unknown),
|
|
20
|
+
always: Schema.Array(Schema.String),
|
|
21
|
+
tool: Schema.optional(Schema.Struct({ messageID: Schema.String, callID: Schema.String })),
|
|
22
|
+
}).annotate({ identifier: "PermissionV1.Request" });
|
|
23
|
+
export const Reply = Schema.Literals(["once", "always", "reject"]);
|
|
24
|
+
export const ReplyBody = Schema.Struct({ reply: Reply, message: Schema.optional(Schema.String) }).annotate({
|
|
25
|
+
identifier: "PermissionV1.ReplyBody",
|
|
26
|
+
});
|
|
27
|
+
export const Approval = Schema.Struct({ projectID: Project.ID, patterns: Schema.Array(Schema.String) }).annotate({
|
|
28
|
+
identifier: "PermissionV1.Approval",
|
|
29
|
+
});
|
|
30
|
+
export const AskInput = Schema.Struct({ ...Request.fields, id: Schema.optional(ID), ruleset: Ruleset }).annotate({
|
|
31
|
+
identifier: "PermissionV1.AskInput",
|
|
32
|
+
});
|
|
33
|
+
export const ReplyInput = Schema.Struct({ requestID: ID, ...ReplyBody.fields }).annotate({
|
|
34
|
+
identifier: "PermissionV1.ReplyInput",
|
|
35
|
+
});
|
|
36
|
+
const Asked = ephemeral({ type: "permission.asked", schema: Request.fields });
|
|
37
|
+
const Replied = ephemeral({
|
|
38
|
+
type: "permission.replied",
|
|
39
|
+
schema: { sessionID: SessionID, requestID: ID, reply: Reply },
|
|
40
|
+
});
|
|
41
|
+
export const Event = { Asked, Replied, Definitions: inventory(Asked, Replied) };
|