@zyraxon-ai/protocol 19.0.4

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 (89) hide show
  1. package/dist/api.d.ts +17525 -0
  2. package/dist/api.d.ts.map +1 -0
  3. package/dist/api.js +51 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/errors.d.ts +80 -0
  6. package/dist/errors.d.ts.map +1 -0
  7. package/dist/errors.js +60 -0
  8. package/dist/errors.js.map +1 -0
  9. package/dist/groups/agent.d.ts +92 -0
  10. package/dist/groups/agent.d.ts.map +1 -0
  11. package/dist/groups/agent.js +16 -0
  12. package/dist/groups/agent.js.map +1 -0
  13. package/dist/groups/command.d.ts +52 -0
  14. package/dist/groups/command.d.ts.map +1 -0
  15. package/dist/groups/command.js +21 -0
  16. package/dist/groups/command.js.map +1 -0
  17. package/dist/groups/credential.d.ts +24 -0
  18. package/dist/groups/credential.d.ts.map +1 -0
  19. package/dist/groups/credential.js +29 -0
  20. package/dist/groups/credential.js.map +1 -0
  21. package/dist/groups/event.d.ts +14987 -0
  22. package/dist/groups/event.d.ts.map +1 -0
  23. package/dist/groups/event.js +43 -0
  24. package/dist/groups/event.js.map +1 -0
  25. package/dist/groups/fs.d.ts +36 -0
  26. package/dist/groups/fs.d.ts.map +1 -0
  27. package/dist/groups/fs.js +52 -0
  28. package/dist/groups/fs.js.map +1 -0
  29. package/dist/groups/health.d.ts +6 -0
  30. package/dist/groups/health.d.ts.map +1 -0
  31. package/dist/groups/health.js +10 -0
  32. package/dist/groups/health.js.map +1 -0
  33. package/dist/groups/integration.d.ts +106 -0
  34. package/dist/groups/integration.d.ts.map +1 -0
  35. package/dist/groups/integration.js +99 -0
  36. package/dist/groups/integration.js.map +1 -0
  37. package/dist/groups/location.d.ts +17 -0
  38. package/dist/groups/location.d.ts.map +1 -0
  39. package/dist/groups/location.js +33 -0
  40. package/dist/groups/location.js.map +1 -0
  41. package/dist/groups/message.d.ts +398 -0
  42. package/dist/groups/message.d.ts.map +1 -0
  43. package/dist/groups/message.js +38 -0
  44. package/dist/groups/message.js.map +1 -0
  45. package/dist/groups/model.d.ts +152 -0
  46. package/dist/groups/model.d.ts.map +1 -0
  47. package/dist/groups/model.js +23 -0
  48. package/dist/groups/model.js.map +1 -0
  49. package/dist/groups/permission.d.ts +154 -0
  50. package/dist/groups/permission.d.ts.map +1 -0
  51. package/dist/groups/permission.js +100 -0
  52. package/dist/groups/permission.js.map +1 -0
  53. package/dist/groups/project-copy.d.ts +50 -0
  54. package/dist/groups/project-copy.d.ts.map +1 -0
  55. package/dist/groups/project-copy.js +45 -0
  56. package/dist/groups/project-copy.js.map +1 -0
  57. package/dist/groups/provider.d.ts +157 -0
  58. package/dist/groups/provider.d.ts.map +1 -0
  59. package/dist/groups/provider.js +35 -0
  60. package/dist/groups/provider.js.map +1 -0
  61. package/dist/groups/pty.d.ts +146 -0
  62. package/dist/groups/pty.d.ts.map +1 -0
  63. package/dist/groups/pty.js +113 -0
  64. package/dist/groups/pty.js.map +1 -0
  65. package/dist/groups/question.d.ts +93 -0
  66. package/dist/groups/question.d.ts.map +1 -0
  67. package/dist/groups/question.js +57 -0
  68. package/dist/groups/question.js.map +1 -0
  69. package/dist/groups/reference.d.ts +14 -0
  70. package/dist/groups/reference.d.ts.map +1 -0
  71. package/dist/groups/reference.js +21 -0
  72. package/dist/groups/reference.js.map +1 -0
  73. package/dist/groups/session.d.ts +7394 -0
  74. package/dist/groups/session.d.ts.map +1 -0
  75. package/dist/groups/session.js +281 -0
  76. package/dist/groups/session.js.map +1 -0
  77. package/dist/groups/skill.d.ts +19 -0
  78. package/dist/groups/skill.d.ts.map +1 -0
  79. package/dist/groups/skill.js +21 -0
  80. package/dist/groups/skill.js.map +1 -0
  81. package/dist/middleware/authorization.d.ts +14 -0
  82. package/dist/middleware/authorization.d.ts.map +1 -0
  83. package/dist/middleware/authorization.js +7 -0
  84. package/dist/middleware/authorization.js.map +1 -0
  85. package/dist/middleware/schema-error.d.ts +14 -0
  86. package/dist/middleware/schema-error.d.ts.map +1 -0
  87. package/dist/middleware/schema-error.js +5 -0
  88. package/dist/middleware/schema-error.js.map +1 -0
  89. package/package.json +45 -0
@@ -0,0 +1,23 @@
1
+ import { Model } from "@zyraxon-ai/schema/model";
2
+ import { Location } from "@zyraxon-ai/schema/location";
3
+ import { Schema } from "effect";
4
+ import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
5
+ import { ServiceUnavailableError } from "../errors";
6
+ import { LocationQuery, locationQueryOpenApi } from "./location";
7
+ export const ModelGroup = HttpApiGroup.make("server.model")
8
+ .add(HttpApiEndpoint.get("model.list", "/api/model", {
9
+ query: LocationQuery,
10
+ success: Location.response(Schema.Array(Model.Info)),
11
+ error: ServiceUnavailableError,
12
+ })
13
+ .annotateMerge(locationQueryOpenApi)
14
+ .annotateMerge(OpenApi.annotations({
15
+ identifier: "v2.model.list",
16
+ summary: "List models",
17
+ description: "Retrieve available models ordered by release date.",
18
+ })))
19
+ .annotateMerge(OpenApi.annotations({
20
+ title: "models",
21
+ description: "Experimental model routes.",
22
+ }));
23
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/groups/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;KACxD,GAAG,CACF,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE;IAC9C,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,EAAE,uBAAuB;CAC/B,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CACZ,OAAO,CAAC,WAAW,CAAC;IAClB,UAAU,EAAE,eAAe;IAC3B,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,oDAAoD;CAClE,CAAC,CACH,CACJ;KACA,aAAa,CACZ,OAAO,CAAC,WAAW,CAAC;IAClB,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,4BAA4B;CAC1C,CAAC,CACH,CAAA"}
@@ -0,0 +1,154 @@
1
+ import { Location } from "@zyraxon-ai/schema/location";
2
+ import { Context, Schema } from "effect";
3
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi";
4
+ import { PermissionNotFoundError, SessionNotFoundError } from "../errors";
5
+ export declare const makePermissionGroup: <LocationId extends HttpApiMiddleware.AnyId, LocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService>(locationMiddleware: Context.Key<LocationId, LocationService>, sessionLocationMiddleware: Context.Key<SessionLocationId, SessionLocationService>) => HttpApiGroup.HttpApiGroup<"server.permission", HttpApiEndpoint.HttpApiEndpoint<"permission.request.list", "GET", "/api/permission/request", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<Schema.Struct<{
6
+ readonly location: Schema.optional<Schema.Struct<{
7
+ readonly directory: Schema.optional<Schema.String>;
8
+ readonly workspace: Schema.optional<Schema.String>;
9
+ }>>;
10
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
11
+ readonly location: typeof Location.Info;
12
+ readonly data: Schema.$Array<Schema.Struct<{
13
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
14
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
15
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
16
+ };
17
+ readonly action: Schema.String;
18
+ readonly resources: Schema.$Array<Schema.String>;
19
+ readonly save: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
20
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
21
+ readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
22
+ readonly type: Schema.Literal<"tool">;
23
+ readonly messageID: Schema.String;
24
+ readonly callID: Schema.String;
25
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
26
+ readonly type: Schema.Literal<"tool">;
27
+ readonly messageID: Schema.String;
28
+ readonly callID: Schema.String;
29
+ }>]>>, never, never>;
30
+ readonly id: Schema.brand<Schema.String, "PermissionV2.ID"> & {
31
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
32
+ };
33
+ }>>;
34
+ }>>, HttpApiEndpoint.Json<never>, LocationId, HttpApiMiddleware.Requires<LocationId>> | HttpApiEndpoint.HttpApiEndpoint<"permission.saved.list", "GET", "/api/permission/saved", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<Schema.Struct<{
35
+ readonly projectID: Schema.optional<Schema.brand<Schema.String, "Project.ID"> & {
36
+ global: string & import("effect/Brand").Brand<"Project.ID">;
37
+ }>;
38
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
39
+ readonly data: Schema.$Array<Schema.Struct<{
40
+ readonly id: Schema.brand<Schema.String, "PermissionSaved.ID"> & {
41
+ create: () => string & import("effect/Brand").Brand<"PermissionSaved.ID">;
42
+ };
43
+ readonly projectID: Schema.brand<Schema.String, "Project.ID"> & {
44
+ global: string & import("effect/Brand").Brand<"Project.ID">;
45
+ };
46
+ readonly action: Schema.String;
47
+ readonly resource: Schema.String;
48
+ }>>;
49
+ }>>, HttpApiEndpoint.Json<never>, LocationId, HttpApiMiddleware.Requires<LocationId>> | HttpApiEndpoint.HttpApiEndpoint<"permission.saved.remove", "DELETE", "/api/permission/saved/:id", HttpApiEndpoint.StringTree<Schema.Struct<{
50
+ id: Schema.brand<Schema.String, "PermissionSaved.ID"> & {
51
+ create: () => string & import("effect/Brand").Brand<"PermissionSaved.ID">;
52
+ };
53
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<never>, LocationId, HttpApiMiddleware.Requires<LocationId>> | HttpApiEndpoint.HttpApiEndpoint<"session.permission.create", "POST", "/api/session/:sessionID/permission", HttpApiEndpoint.StringTree<Schema.Struct<{
54
+ sessionID: Schema.brand<Schema.String, "SessionID"> & {
55
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
56
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
57
+ };
58
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
59
+ readonly id: Schema.optional<Schema.brand<Schema.String, "PermissionV2.ID"> & {
60
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
61
+ }>;
62
+ readonly action: Schema.String;
63
+ readonly resources: Schema.$Array<Schema.String>;
64
+ readonly save: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
65
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
66
+ readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
67
+ readonly type: Schema.Literal<"tool">;
68
+ readonly messageID: Schema.String;
69
+ readonly callID: Schema.String;
70
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
71
+ readonly type: Schema.Literal<"tool">;
72
+ readonly messageID: Schema.String;
73
+ readonly callID: Schema.String;
74
+ }>]>>, never, never>;
75
+ readonly agent: Schema.optional<Schema.brand<Schema.String, "AgentV2.ID">>;
76
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
77
+ readonly data: Schema.Struct<{
78
+ readonly id: Schema.brand<Schema.String, "PermissionV2.ID"> & {
79
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
80
+ };
81
+ readonly effect: Schema.Literals<readonly ["allow", "deny", "ask"]>;
82
+ }>;
83
+ }>>, HttpApiEndpoint.Json<typeof SessionNotFoundError>, SessionLocationId, HttpApiMiddleware.Requires<SessionLocationId>> | HttpApiEndpoint.HttpApiEndpoint<"session.permission.list", "GET", "/api/session/:sessionID/permission", HttpApiEndpoint.StringTree<Schema.Struct<{
84
+ 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
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
89
+ readonly data: Schema.$Array<Schema.Struct<{
90
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
91
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
92
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
93
+ };
94
+ readonly action: Schema.String;
95
+ readonly resources: Schema.$Array<Schema.String>;
96
+ readonly save: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
97
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
98
+ readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
99
+ readonly type: Schema.Literal<"tool">;
100
+ readonly messageID: Schema.String;
101
+ readonly callID: Schema.String;
102
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
103
+ readonly type: Schema.Literal<"tool">;
104
+ readonly messageID: Schema.String;
105
+ readonly callID: Schema.String;
106
+ }>]>>, never, never>;
107
+ readonly id: Schema.brand<Schema.String, "PermissionV2.ID"> & {
108
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
109
+ };
110
+ }>>;
111
+ }>>, HttpApiEndpoint.Json<typeof SessionNotFoundError>, SessionLocationId, HttpApiMiddleware.Requires<SessionLocationId>> | HttpApiEndpoint.HttpApiEndpoint<"session.permission.get", "GET", "/api/session/:sessionID/permission/:requestID", HttpApiEndpoint.StringTree<Schema.Struct<{
112
+ sessionID: Schema.brand<Schema.String, "SessionID"> & {
113
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
114
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
115
+ };
116
+ requestID: Schema.brand<Schema.String, "PermissionV2.ID"> & {
117
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
118
+ };
119
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
120
+ readonly data: Schema.Struct<{
121
+ readonly sessionID: Schema.brand<Schema.String, "SessionID"> & {
122
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
123
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
124
+ };
125
+ readonly action: Schema.String;
126
+ readonly resources: Schema.$Array<Schema.String>;
127
+ readonly save: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Array<Schema.String>>>, Schema.optionalKey<Schema.$Array<Schema.String>>, never, never>;
128
+ readonly metadata: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
129
+ readonly source: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Union<readonly [Schema.Struct<{
130
+ readonly type: Schema.Literal<"tool">;
131
+ readonly messageID: Schema.String;
132
+ readonly callID: Schema.String;
133
+ }>]>>>, Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
134
+ readonly type: Schema.Literal<"tool">;
135
+ readonly messageID: Schema.String;
136
+ readonly callID: Schema.String;
137
+ }>]>>, never, never>;
138
+ readonly id: Schema.brand<Schema.String, "PermissionV2.ID"> & {
139
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
140
+ };
141
+ }>;
142
+ }>>, HttpApiEndpoint.Json<typeof SessionNotFoundError | typeof PermissionNotFoundError>, SessionLocationId, HttpApiMiddleware.Requires<SessionLocationId>> | HttpApiEndpoint.HttpApiEndpoint<"session.permission.reply", "POST", "/api/session/:sessionID/permission/:requestID/reply", HttpApiEndpoint.StringTree<Schema.Struct<{
143
+ sessionID: Schema.brand<Schema.String, "SessionID"> & {
144
+ create: () => string & import("effect/Brand").Brand<"SessionID">;
145
+ descending: (id?: string) => string & import("effect/Brand").Brand<"SessionID">;
146
+ };
147
+ requestID: Schema.brand<Schema.String, "PermissionV2.ID"> & {
148
+ create: (id?: string) => string & import("effect/Brand").Brand<"PermissionV2.ID">;
149
+ };
150
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
151
+ readonly reply: Schema.Literals<readonly ["once", "always", "reject"]>;
152
+ readonly message: Schema.optional<Schema.String>;
153
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<typeof SessionNotFoundError | typeof PermissionNotFoundError>, SessionLocationId, HttpApiMiddleware.Requires<SessionLocationId>>, false>;
154
+ //# sourceMappingURL=permission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/groups/permission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { Agent } from "@zyraxon-ai/schema/agent";
2
+ import { Location } from "@zyraxon-ai/schema/location";
3
+ import { Permission } from "@zyraxon-ai/schema/permission";
4
+ import { PermissionSaved } from "@zyraxon-ai/schema/permission-saved";
5
+ import { Project } from "@zyraxon-ai/schema/project";
6
+ import { Session } from "@zyraxon-ai/schema/session";
7
+ import { Schema } from "effect";
8
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
9
+ import { PermissionNotFoundError, SessionNotFoundError } from "../errors";
10
+ import { LocationQuery, locationQueryOpenApi } from "./location";
11
+ export const makePermissionGroup = (locationMiddleware, sessionLocationMiddleware) => HttpApiGroup.make("server.permission")
12
+ .add(HttpApiEndpoint.get("permission.request.list", "/api/permission/request", {
13
+ query: LocationQuery,
14
+ success: Location.response(Schema.Array(Permission.Request)),
15
+ })
16
+ .annotateMerge(locationQueryOpenApi)
17
+ .annotateMerge(OpenApi.annotations({
18
+ identifier: "v2.permission.request.list",
19
+ summary: "List pending permission requests",
20
+ description: "Retrieve pending permission requests for a location.",
21
+ })))
22
+ .add(HttpApiEndpoint.get("permission.saved.list", "/api/permission/saved", {
23
+ query: Schema.Struct({ projectID: Project.ID.pipe(Schema.optional) }),
24
+ success: Schema.Struct({ data: Schema.Array(PermissionSaved.Info) }),
25
+ }).annotateMerge(OpenApi.annotations({
26
+ identifier: "v2.permission.saved.list",
27
+ summary: "List saved permissions",
28
+ description: "Retrieve saved permissions, optionally filtered by project.",
29
+ })))
30
+ .add(HttpApiEndpoint.delete("permission.saved.remove", "/api/permission/saved/:id", {
31
+ params: { id: PermissionSaved.ID },
32
+ success: HttpApiSchema.NoContent,
33
+ }).annotateMerge(OpenApi.annotations({
34
+ identifier: "v2.permission.saved.remove",
35
+ summary: "Remove saved permission",
36
+ description: "Remove a saved permission by ID.",
37
+ })))
38
+ // Effect applies group middleware only to endpoints already added; session endpoints use session placement below.
39
+ .middleware(locationMiddleware)
40
+ .add(HttpApiEndpoint.post("session.permission.create", "/api/session/:sessionID/permission", {
41
+ params: { sessionID: Session.ID },
42
+ payload: Schema.Struct({
43
+ id: Permission.ID.pipe(Schema.optional),
44
+ action: Permission.Request.fields.action,
45
+ resources: Permission.Request.fields.resources,
46
+ save: Permission.Request.fields.save,
47
+ metadata: Permission.Request.fields.metadata,
48
+ source: Permission.Request.fields.source,
49
+ agent: Agent.ID.pipe(Schema.optional),
50
+ }),
51
+ success: Schema.Struct({
52
+ data: Schema.Struct({ id: Permission.ID, effect: Permission.Effect }),
53
+ }),
54
+ error: SessionNotFoundError,
55
+ })
56
+ .middleware(sessionLocationMiddleware)
57
+ .annotateMerge(OpenApi.annotations({
58
+ identifier: "v2.session.permission.create",
59
+ summary: "Create permission request",
60
+ description: "Evaluate and, when approval is required, create a permission request for a session.",
61
+ })))
62
+ .add(HttpApiEndpoint.get("session.permission.list", "/api/session/:sessionID/permission", {
63
+ params: { sessionID: Session.ID },
64
+ success: Schema.Struct({ data: Schema.Array(Permission.Request) }),
65
+ error: SessionNotFoundError,
66
+ })
67
+ .middleware(sessionLocationMiddleware)
68
+ .annotateMerge(OpenApi.annotations({
69
+ identifier: "v2.session.permission.list",
70
+ summary: "List session permission requests",
71
+ description: "Retrieve pending permission requests owned by a session.",
72
+ })))
73
+ .add(HttpApiEndpoint.get("session.permission.get", "/api/session/:sessionID/permission/:requestID", {
74
+ params: { sessionID: Session.ID, requestID: Permission.ID },
75
+ success: Schema.Struct({ data: Permission.Request }),
76
+ error: [SessionNotFoundError, PermissionNotFoundError],
77
+ })
78
+ .middleware(sessionLocationMiddleware)
79
+ .annotateMerge(OpenApi.annotations({
80
+ identifier: "v2.session.permission.get",
81
+ summary: "Get permission request",
82
+ description: "Retrieve a pending permission request owned by a session.",
83
+ })))
84
+ .add(HttpApiEndpoint.post("session.permission.reply", "/api/session/:sessionID/permission/:requestID/reply", {
85
+ params: { sessionID: Session.ID, requestID: Permission.ID },
86
+ payload: Schema.Struct({
87
+ reply: Permission.Reply,
88
+ message: Schema.String.pipe(Schema.optional),
89
+ }),
90
+ success: HttpApiSchema.NoContent,
91
+ error: [SessionNotFoundError, PermissionNotFoundError],
92
+ })
93
+ .middleware(sessionLocationMiddleware)
94
+ .annotateMerge(OpenApi.annotations({
95
+ identifier: "v2.session.permission.reply",
96
+ summary: "Reply to pending permission request",
97
+ description: "Respond to a pending permission request owned by a session.",
98
+ })))
99
+ .annotateMerge(OpenApi.annotations({ title: "permissions", description: "Experimental permission routes." }));
100
+ //# sourceMappingURL=permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/groups/permission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { Schema } from "effect";
2
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
3
+ declare const ProjectCopyError_base: Schema.Class<ProjectCopyError, Schema.Struct<{
4
+ readonly name: Schema.Literal<"ProjectCopyError">;
5
+ readonly data: Schema.Struct<{
6
+ readonly message: Schema.String;
7
+ readonly forceRequired: Schema.optional<Schema.Boolean>;
8
+ }>;
9
+ }>, import("effect/Cause").YieldableError>;
10
+ export declare class ProjectCopyError extends ProjectCopyError_base {
11
+ }
12
+ export declare const ProjectCopyGroup: HttpApiGroup.HttpApiGroup<"server.projectCopy", HttpApiEndpoint.HttpApiEndpoint<"projectCopy.create", "POST", "/experimental/project/:projectID/copy", HttpApiEndpoint.StringTree<Schema.Struct<{
13
+ projectID: Schema.brand<Schema.String, "Project.ID"> & {
14
+ global: string & import("effect/Brand").Brand<"Project.ID">;
15
+ };
16
+ }>>, HttpApiEndpoint.StringTree<Schema.Struct<{
17
+ readonly location: Schema.optional<Schema.Struct<{
18
+ readonly directory: Schema.optional<Schema.String>;
19
+ readonly workspace: Schema.optional<Schema.String>;
20
+ }>>;
21
+ }>>, HttpApiEndpoint.Json<Schema.Struct<{
22
+ readonly name: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
23
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
24
+ readonly strategy: Schema.brand<Schema.Trim, "ProjectCopy.StrategyID">;
25
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
26
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
27
+ }>>, HttpApiEndpoint.Json<typeof ProjectCopyError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"projectCopy.remove", "DELETE", "/experimental/project/:projectID/copy", HttpApiEndpoint.StringTree<Schema.Struct<{
28
+ projectID: Schema.brand<Schema.String, "Project.ID"> & {
29
+ global: string & import("effect/Brand").Brand<"Project.ID">;
30
+ };
31
+ }>>, HttpApiEndpoint.StringTree<Schema.Struct<{
32
+ readonly location: Schema.optional<Schema.Struct<{
33
+ readonly directory: Schema.optional<Schema.String>;
34
+ readonly workspace: Schema.optional<Schema.String>;
35
+ }>>;
36
+ }>>, HttpApiEndpoint.Json<Schema.Struct<{
37
+ readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
38
+ readonly force: Schema.Boolean;
39
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<typeof ProjectCopyError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"projectCopy.refresh", "POST", "/experimental/project/:projectID/copy/refresh", HttpApiEndpoint.StringTree<Schema.Struct<{
40
+ projectID: Schema.brand<Schema.String, "Project.ID"> & {
41
+ global: string & import("effect/Brand").Brand<"Project.ID">;
42
+ };
43
+ }>>, HttpApiEndpoint.StringTree<Schema.Struct<{
44
+ readonly location: Schema.optional<Schema.Struct<{
45
+ readonly directory: Schema.optional<Schema.String>;
46
+ readonly workspace: Schema.optional<Schema.String>;
47
+ }>>;
48
+ }>>, HttpApiEndpoint.Json<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<HttpApiSchema.NoContent>, HttpApiEndpoint.Json<typeof ProjectCopyError>, never, never>, false>;
49
+ export {};
50
+ //# sourceMappingURL=project-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-copy.d.ts","sourceRoot":"","sources":["../../src/groups/project-copy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAW,MAAM,yBAAyB,CAAA;;;;;;;;AAK/F,qBAAa,gBAAiB,SAAQ,qBASrC;CAAG;AAKJ,eAAO,MAAM,gBAAgB;;gCAnBd,cAAc;;;;;;;;mBAanB,OAAS,QACnB,CAAE,OAEA,QAAQ,CAAC,OAAO,MAAM,CAAC,OAAO,MAAM,IAAG,OAAQ,WAAW,CAAC,OAAO,MAAM;wBAN7D,OAAQ,KAAK,CAAC,OAAO,MAAM;uBALsB,OAAQ,KAAK,CAAC,OAAO,IAAI;;wBAwBpB,OAAQ,KAAK,CAAC,OAE/E,MAAI;;;gCA/BS,cAAc;;;;;;;;wBAuBtB,OAAQ,KAAK,CAAC,OACf,MAAA;oBACS,OAAO,OAAO;;;gCAzBd,cAAc;;;;;;;wLAoDkF,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { ProjectCopy } from "@zyraxon-ai/schema/project-copy";
2
+ import { Project } from "@zyraxon-ai/schema/project";
3
+ import { Schema, Struct } from "effect";
4
+ import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
5
+ import { LocationQuery, locationQueryOpenApi } from "./location";
6
+ const root = "/experimental/project/:projectID/copy";
7
+ export class ProjectCopyError extends Schema.ErrorClass("ProjectCopyError")({
8
+ name: Schema.Literal("ProjectCopyError"),
9
+ data: Schema.Struct({
10
+ message: Schema.String,
11
+ forceRequired: Schema.optional(Schema.Boolean),
12
+ }),
13
+ }, { httpApiStatus: 400 }) {
14
+ }
15
+ const CreatePayload = Schema.Struct(Struct.omit(ProjectCopy.CreateInput.fields, ["projectID", "sourceDirectory"]));
16
+ const RemovePayload = Schema.Struct(Struct.omit(ProjectCopy.RemoveInput.fields, ["projectID"]));
17
+ export const ProjectCopyGroup = HttpApiGroup.make("server.projectCopy")
18
+ .add(HttpApiEndpoint.post("projectCopy.create", root, {
19
+ params: { projectID: Project.ID },
20
+ query: LocationQuery,
21
+ payload: CreatePayload,
22
+ success: ProjectCopy.Copy,
23
+ error: ProjectCopyError,
24
+ })
25
+ .annotateMerge(locationQueryOpenApi)
26
+ .annotateMerge(OpenApi.annotations({ identifier: "v2.projectCopy.create" })))
27
+ .add(HttpApiEndpoint.delete("projectCopy.remove", root, {
28
+ params: { projectID: Project.ID },
29
+ query: LocationQuery,
30
+ payload: RemovePayload,
31
+ success: HttpApiSchema.NoContent,
32
+ error: ProjectCopyError,
33
+ })
34
+ .annotateMerge(locationQueryOpenApi)
35
+ .annotateMerge(OpenApi.annotations({ identifier: "v2.projectCopy.remove" })))
36
+ .add(HttpApiEndpoint.post("projectCopy.refresh", `${root}/refresh`, {
37
+ params: { projectID: Project.ID },
38
+ query: LocationQuery,
39
+ success: HttpApiSchema.NoContent,
40
+ error: ProjectCopyError,
41
+ })
42
+ .annotateMerge(locationQueryOpenApi)
43
+ .annotateMerge(OpenApi.annotations({ identifier: "v2.projectCopy.refresh" })))
44
+ .annotateMerge(OpenApi.annotations({ title: "projectCopy", description: "Project copy management routes." }));
45
+ //# sourceMappingURL=project-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-copy.js","sourceRoot":"","sources":["../../src/groups/project-copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,IAAI,GAAG,uCAAuC,CAAA;AAEpD,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,UAAU,CAAmB,kBAAkB,CAAC,CAC3F;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;KAC/C,CAAC;CACH,EACD,EAAE,aAAa,EAAE,GAAG,EAAE,CACvB;CAAG;AAEJ,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAClH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;KACpE,GAAG,CACF,eAAe,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE;IAC/C,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;IACjC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,WAAW,CAAC,IAAI;IACzB,KAAK,EAAE,gBAAgB;CACxB,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAC/E;KACA,GAAG,CACF,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE;IACjD,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;IACjC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa,CAAC,SAAS;IAChC,KAAK,EAAE,gBAAgB;CACxB,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAC/E;KACA,GAAG,CACF,eAAe,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,UAAU,EAAE;IAC7D,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;IACjC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,aAAa,CAAC,SAAS;IAChC,KAAK,EAAE,gBAAgB;CACxB,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAChF;KACA,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAA"}
@@ -0,0 +1,157 @@
1
+ import { Provider } from "@zyraxon-ai/schema/provider";
2
+ import { Location } from "@zyraxon-ai/schema/location";
3
+ import { Schema } from "effect";
4
+ import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
5
+ import { ProviderNotFoundError, ServiceUnavailableError } from "../errors";
6
+ export declare const ProviderGroup: HttpApiGroup.HttpApiGroup<"server.provider", HttpApiEndpoint.HttpApiEndpoint<"provider.list", "GET", "/api/provider", HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<Schema.Struct<{
7
+ readonly location: Schema.optional<Schema.Struct<{
8
+ readonly directory: Schema.optional<Schema.String>;
9
+ readonly workspace: Schema.optional<Schema.String>;
10
+ }>>;
11
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
12
+ readonly location: typeof Location.Info;
13
+ readonly data: Schema.$Array<Schema.Struct<{
14
+ readonly id: Schema.brand<Schema.String, "ProviderV2.ID"> & {
15
+ opencode: string & import("effect/Brand").Brand<"ProviderV2.ID">;
16
+ anthropic: string & import("effect/Brand").Brand<"ProviderV2.ID">;
17
+ openai: string & import("effect/Brand").Brand<"ProviderV2.ID">;
18
+ google: string & import("effect/Brand").Brand<"ProviderV2.ID">;
19
+ googleVertex: string & import("effect/Brand").Brand<"ProviderV2.ID">;
20
+ githubCopilot: string & import("effect/Brand").Brand<"ProviderV2.ID">;
21
+ amazonBedrock: string & import("effect/Brand").Brand<"ProviderV2.ID">;
22
+ azure: string & import("effect/Brand").Brand<"ProviderV2.ID">;
23
+ openrouter: string & import("effect/Brand").Brand<"ProviderV2.ID">;
24
+ mistral: string & import("effect/Brand").Brand<"ProviderV2.ID">;
25
+ gitlab: string & import("effect/Brand").Brand<"ProviderV2.ID">;
26
+ };
27
+ readonly integrationID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Integration.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Integration.ID">>, never, never>;
28
+ readonly name: Schema.String;
29
+ readonly disabled: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
30
+ readonly api: Schema.Union<readonly [Schema.Struct<{
31
+ readonly type: Schema.Literal<"aisdk">;
32
+ readonly package: Schema.String;
33
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
34
+ readonly settings: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
35
+ }>, Schema.Struct<{
36
+ readonly type: Schema.Literal<"native">;
37
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
38
+ readonly settings: Schema.$Record<Schema.String, Schema.Unknown>;
39
+ }>]>;
40
+ readonly request: Schema.Struct<{
41
+ readonly headers: Schema.$Record<Schema.String, Schema.String>;
42
+ readonly body: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
43
+ }>;
44
+ }> & {
45
+ empty: (id: Provider.ID) => {
46
+ readonly id: string & import("effect/Brand").Brand<"ProviderV2.ID">;
47
+ readonly name: string;
48
+ readonly api: {
49
+ readonly type: "aisdk";
50
+ readonly package: string;
51
+ readonly url?: string;
52
+ readonly settings?: {
53
+ readonly [x: string]: unknown;
54
+ };
55
+ } | {
56
+ readonly type: "native";
57
+ readonly settings: {
58
+ readonly [x: string]: unknown;
59
+ };
60
+ readonly url?: string;
61
+ };
62
+ readonly request: {
63
+ readonly headers: {
64
+ readonly [x: string]: string;
65
+ };
66
+ readonly body: {
67
+ readonly [x: string]: Schema.Json;
68
+ };
69
+ };
70
+ readonly integrationID?: string & import("effect/Brand").Brand<"Integration.ID">;
71
+ readonly disabled?: boolean;
72
+ };
73
+ }>;
74
+ }>>, HttpApiEndpoint.Json<typeof ServiceUnavailableError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"provider.get", "GET", "/api/provider/:providerID", HttpApiEndpoint.StringTree<Schema.Struct<{
75
+ providerID: Schema.brand<Schema.String, "ProviderV2.ID"> & {
76
+ opencode: string & import("effect/Brand").Brand<"ProviderV2.ID">;
77
+ anthropic: string & import("effect/Brand").Brand<"ProviderV2.ID">;
78
+ openai: string & import("effect/Brand").Brand<"ProviderV2.ID">;
79
+ google: string & import("effect/Brand").Brand<"ProviderV2.ID">;
80
+ googleVertex: string & import("effect/Brand").Brand<"ProviderV2.ID">;
81
+ githubCopilot: string & import("effect/Brand").Brand<"ProviderV2.ID">;
82
+ amazonBedrock: string & import("effect/Brand").Brand<"ProviderV2.ID">;
83
+ azure: string & import("effect/Brand").Brand<"ProviderV2.ID">;
84
+ openrouter: string & import("effect/Brand").Brand<"ProviderV2.ID">;
85
+ mistral: string & import("effect/Brand").Brand<"ProviderV2.ID">;
86
+ gitlab: string & import("effect/Brand").Brand<"ProviderV2.ID">;
87
+ };
88
+ }>>, HttpApiEndpoint.StringTree<Schema.Struct<{
89
+ readonly location: Schema.optional<Schema.Struct<{
90
+ readonly directory: Schema.optional<Schema.String>;
91
+ readonly workspace: Schema.optional<Schema.String>;
92
+ }>>;
93
+ }>>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.StringTree<never>, HttpApiEndpoint.Json<Schema.Struct<{
94
+ readonly location: typeof Location.Info;
95
+ readonly data: Schema.Struct<{
96
+ readonly id: Schema.brand<Schema.String, "ProviderV2.ID"> & {
97
+ opencode: string & import("effect/Brand").Brand<"ProviderV2.ID">;
98
+ anthropic: string & import("effect/Brand").Brand<"ProviderV2.ID">;
99
+ openai: string & import("effect/Brand").Brand<"ProviderV2.ID">;
100
+ google: string & import("effect/Brand").Brand<"ProviderV2.ID">;
101
+ googleVertex: string & import("effect/Brand").Brand<"ProviderV2.ID">;
102
+ githubCopilot: string & import("effect/Brand").Brand<"ProviderV2.ID">;
103
+ amazonBedrock: string & import("effect/Brand").Brand<"ProviderV2.ID">;
104
+ azure: string & import("effect/Brand").Brand<"ProviderV2.ID">;
105
+ openrouter: string & import("effect/Brand").Brand<"ProviderV2.ID">;
106
+ mistral: string & import("effect/Brand").Brand<"ProviderV2.ID">;
107
+ gitlab: string & import("effect/Brand").Brand<"ProviderV2.ID">;
108
+ };
109
+ readonly integrationID: Schema.decodeTo<Schema.optional<Schema.toType<Schema.brand<Schema.String, "Integration.ID">>>, Schema.optionalKey<Schema.brand<Schema.String, "Integration.ID">>, never, never>;
110
+ readonly name: Schema.String;
111
+ readonly disabled: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Boolean>>, Schema.optionalKey<Schema.Boolean>, never, never>;
112
+ readonly api: Schema.Union<readonly [Schema.Struct<{
113
+ readonly type: Schema.Literal<"aisdk">;
114
+ readonly package: Schema.String;
115
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
116
+ readonly settings: Schema.decodeTo<Schema.optional<Schema.toType<Schema.$Record<Schema.String, Schema.Unknown>>>, Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>, never, never>;
117
+ }>, Schema.Struct<{
118
+ readonly type: Schema.Literal<"native">;
119
+ readonly url: Schema.decodeTo<Schema.optional<Schema.toType<Schema.String>>, Schema.optionalKey<Schema.String>, never, never>;
120
+ readonly settings: Schema.$Record<Schema.String, Schema.Unknown>;
121
+ }>]>;
122
+ readonly request: Schema.Struct<{
123
+ readonly headers: Schema.$Record<Schema.String, Schema.String>;
124
+ readonly body: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
125
+ }>;
126
+ }> & {
127
+ empty: (id: Provider.ID) => {
128
+ readonly id: string & import("effect/Brand").Brand<"ProviderV2.ID">;
129
+ readonly name: string;
130
+ readonly api: {
131
+ readonly type: "aisdk";
132
+ readonly package: string;
133
+ readonly url?: string;
134
+ readonly settings?: {
135
+ readonly [x: string]: unknown;
136
+ };
137
+ } | {
138
+ readonly type: "native";
139
+ readonly settings: {
140
+ readonly [x: string]: unknown;
141
+ };
142
+ readonly url?: string;
143
+ };
144
+ readonly request: {
145
+ readonly headers: {
146
+ readonly [x: string]: string;
147
+ };
148
+ readonly body: {
149
+ readonly [x: string]: Schema.Json;
150
+ };
151
+ };
152
+ readonly integrationID?: string & import("effect/Brand").Brand<"Integration.ID">;
153
+ readonly disabled?: boolean;
154
+ };
155
+ };
156
+ }>>, HttpApiEndpoint.Json<typeof ServiceUnavailableError | typeof ProviderNotFoundError>, never, never>, false>;
157
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/groups/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Provider } from "@zyraxon-ai/schema/provider";
2
+ import { Location } from "@zyraxon-ai/schema/location";
3
+ import { Schema } from "effect";
4
+ import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
5
+ import { ProviderNotFoundError, ServiceUnavailableError } from "../errors";
6
+ import { LocationQuery, locationQueryOpenApi } from "./location";
7
+ export const ProviderGroup = HttpApiGroup.make("server.provider")
8
+ .add(HttpApiEndpoint.get("provider.list", "/api/provider", {
9
+ query: LocationQuery,
10
+ success: Location.response(Schema.Array(Provider.Info)),
11
+ error: ServiceUnavailableError,
12
+ })
13
+ .annotateMerge(locationQueryOpenApi)
14
+ .annotateMerge(OpenApi.annotations({
15
+ identifier: "v2.provider.list",
16
+ summary: "List providers",
17
+ description: "Retrieve active AI providers so clients can show provider availability and configuration.",
18
+ })))
19
+ .add(HttpApiEndpoint.get("provider.get", "/api/provider/:providerID", {
20
+ params: { providerID: Provider.ID },
21
+ query: LocationQuery,
22
+ success: Location.response(Provider.Info),
23
+ error: [ProviderNotFoundError, ServiceUnavailableError],
24
+ })
25
+ .annotateMerge(locationQueryOpenApi)
26
+ .annotateMerge(OpenApi.annotations({
27
+ identifier: "v2.provider.get",
28
+ summary: "Get provider",
29
+ description: "Retrieve a single AI provider so clients can inspect its availability and endpoint settings.",
30
+ })))
31
+ .annotateMerge(OpenApi.annotations({
32
+ title: "providers",
33
+ description: "Experimental provider routes.",
34
+ }));
35
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/groups/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;KAC9D,GAAG,CACF,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE;IACpD,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,KAAK,EAAE,uBAAuB;CAC/B,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CACZ,OAAO,CAAC,WAAW,CAAC;IAClB,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,2FAA2F;CACzG,CAAC,CACH,CACJ;KACA,GAAG,CACF,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,2BAA2B,EAAE;IAC/D,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE;IACnC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzC,KAAK,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;CACxD,CAAC;KACC,aAAa,CAAC,oBAAoB,CAAC;KACnC,aAAa,CACZ,OAAO,CAAC,WAAW,CAAC;IAClB,UAAU,EAAE,iBAAiB;IAC7B,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,8FAA8F;CAC5G,CAAC,CACH,CACJ;KACA,aAAa,CACZ,OAAO,CAAC,WAAW,CAAC;IAClB,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,+BAA+B;CAC7C,CAAC,CACH,CAAA"}