arkitekt-next 0.8.48__py3-none-any.whl → 0.8.49__py3-none-any.whl

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.

Potentially problematic release.


This version of arkitekt-next might be problematic. Click here for more details.

arkitekt_next/__blok__.py CHANGED
@@ -4,7 +4,7 @@ from arkitekt_next.bloks.mikro import MikroBlok
4
4
  from arkitekt_next.bloks.fluss import FlussBlok
5
5
  from arkitekt_next.bloks.orkestrator import OrkestratorBlok
6
6
  from arkitekt_next.bloks.redis import RedisBlok
7
- from arkitekt_next.bloks.gateway import GatewayBlok
7
+ from arkitekt_next.bloks.gateway import CaddyBlok
8
8
  from arkitekt_next.bloks.livekit import LocalLiveKitBlok
9
9
  from arkitekt_next.bloks.postgres import PostgresBlok
10
10
  from arkitekt_next.bloks.minio import MinioBlok
@@ -18,6 +18,8 @@ from arkitekt_next.bloks.rekuest import RekuestBlok
18
18
  from arkitekt_next.bloks.tailscale import TailscaleBlok
19
19
  from arkitekt_next.bloks.secret import SecretBlok
20
20
  from arkitekt_next.bloks.namegen import PreformedNamesBlok
21
+ from arkitekt_next.bloks.ollama import OllamaBlok
22
+ from arkitekt_next.bloks.self_signed import SelfSignedBlok
21
23
 
22
24
 
23
25
  def get_bloks():
@@ -27,11 +29,13 @@ def get_bloks():
27
29
  MikroBlok(),
28
30
  FlussBlok(),
29
31
  RedisBlok(),
30
- GatewayBlok(),
32
+ CaddyBlok(),
31
33
  LocalLiveKitBlok(),
32
34
  PostgresBlok(),
33
35
  MinioBlok(),
36
+ OllamaBlok(),
34
37
  LokBlok(),
38
+ SelfSignedBlok(),
35
39
  KabinetBlok(),
36
40
  MountBlok(),
37
41
  ConfigBlok(),
@@ -1,16 +1,19 @@
1
+ from typing import Any, Dict, Optional
2
+
1
3
  from pydantic import BaseModel
2
- from typing import Dict, Any
4
+
5
+ from arkitekt_next.bloks.kraph import KraphBlok
3
6
  from arkitekt_next.bloks.tailscale import TailscaleBlok
4
- from blok import blok, InitContext, Renderer, Panel
5
- from .livekit import LocalLiveKitBlok
6
- from .mikro import MikroBlok
7
- from .kabinet import KabinetBlok
8
- from .rekuest import RekuestBlok
7
+ from blok import InitContext, Panel, Renderer, blok
8
+
9
9
  from .fluss import FlussBlok
10
- from .gateway import GatewayBlok
11
10
  from .internal_docker import InternalDockerBlok
11
+ from .kabinet import KabinetBlok
12
+ from .livekit import LocalLiveKitBlok
13
+ from .mikro import MikroBlok
12
14
  from .orkestrator import OrkestratorBlok
13
- from typing import Optional
15
+ from .rekuest import RekuestBlok
16
+ from .ollama import OllamaBlok
14
17
 
15
18
 
16
19
  class AdminCredentials(BaseModel):
@@ -19,8 +22,20 @@ class AdminCredentials(BaseModel):
19
22
  email: str
20
23
 
21
24
 
22
- @blok("live.arkitekt")
25
+ @blok("live.arkitekt", dependencies=[
26
+ MikroBlok.as_dependency(True, True),
27
+ KabinetBlok.as_dependency(True, True),
28
+ RekuestBlok.as_dependency(True, True),
29
+ FlussBlok.as_dependency(True, True),
30
+ InternalDockerBlok.as_dependency(True, True),
31
+ OrkestratorBlok.as_dependency(True, True),
32
+ KraphBlok.as_dependency(True, False),
33
+ LocalLiveKitBlok.as_dependency(True, False),
34
+ TailscaleBlok.as_dependency(True, False),
35
+ OllamaBlok.as_dependency(True, False),
36
+ ])
23
37
  class ArkitektBlok:
38
+
24
39
  def entry(self, renderer: Renderer):
25
40
  renderer.render(
26
41
  Panel(
@@ -31,19 +46,6 @@ class ArkitektBlok:
31
46
  )
32
47
  )
33
48
 
34
- def preflight(
35
- self,
36
- gateway: GatewayBlok,
37
- livekit: Optional[LocalLiveKitBlok] = None,
38
- mikro: Optional[MikroBlok] = None,
39
- kabinet: Optional[KabinetBlok] = None,
40
- rekuest: Optional[RekuestBlok] = None,
41
- fluss: Optional[FlussBlok] = None,
42
- internal_engine: Optional[InternalDockerBlok] = None,
43
- scale: Optional[TailscaleBlok] = None,
44
- orkestrator: Optional[OrkestratorBlok] = None,
45
- ):
46
- pass
47
49
 
48
50
  def build(self, cwd):
49
51
  pass
@@ -94,7 +94,9 @@ class BaseArkitektService:
94
94
  self.get_blok_meta().service_identifier, self.get_builder()
95
95
  )
96
96
 
97
- dns_result = init.get_service(DnsService).get_dns_result()
97
+ django_secret = secret.retrieve_secret()
98
+
99
+ dns_result = dns.get_dns_result()
98
100
 
99
101
  csrf_trusted_origins = []
100
102
  for hostname in dns_result.hostnames:
@@ -108,7 +110,7 @@ class BaseArkitektService:
108
110
  "admin": asdict(admin_access),
109
111
  "debug": True,
110
112
  "hosts": ["*"],
111
- "secret_key": self.secret_key,
113
+ "secret_key": django_secret,
112
114
  },
113
115
  "redis": asdict(redis_access),
114
116
  "lok": asdict(lok_access),
@@ -1,8 +1,9 @@
1
+ from arkitekt_next.bloks.services.certer import CerterService
1
2
  from arkitekt_next.bloks.services.name import NameService
2
3
  from blok import blok, InitContext, ExecutionContext, Option
3
4
  from blok.tree import YamlFile, Repo
4
5
  from pydantic import BaseModel
5
- from typing import Dict, Any
6
+ from typing import Dict, Any, Optional
6
7
 
7
8
  from blok import blok, InitContext
8
9
  from blok.bloks.services.dns import DnsService
@@ -34,7 +35,7 @@ class ExposedPort(BaseModel):
34
35
  @blok(
35
36
  "live.arkitekt.gateway", description="A gateway for exposing services on the host"
36
37
  )
37
- class GatewayBlok:
38
+ class CaddyBlok:
38
39
  def __init__(self) -> None:
39
40
  self.exposed_hosts = {}
40
41
  self.exposed_to_hosts = {}
@@ -47,6 +48,8 @@ class GatewayBlok:
47
48
  self.https_port = 443
48
49
  self.public_ips = DEFAULT_PUBLIC_URLS
49
50
  self.public_hosts = DEFAULT_PUBLIC_HOSTS
51
+ self.cert_mount = None
52
+ self.depends_on = []
50
53
 
51
54
  def get_internal_host(self):
52
55
  return "caddy"
@@ -60,7 +63,7 @@ class GatewayBlok:
60
63
  def retrieve_gateway_network(self):
61
64
  return self.gateway_network
62
65
 
63
- def preflight(self, init: InitContext, dns: DnsService, name: NameService):
66
+ def preflight(self, init: InitContext, dns: DnsService, name: NameService, certer: Optional[CerterService] = None):
64
67
  for key, value in init.kwargs.items():
65
68
  setattr(self, key, value)
66
69
 
@@ -68,6 +71,11 @@ class GatewayBlok:
68
71
  self.public_hosts = dns.get_dns_result().hostnames
69
72
  self.gateway_network = name.retrieve_name().replace("-", "_")
70
73
 
74
+ if certer is not None:
75
+ self.cert_mount = certer.retrieve_certs_mount()
76
+ self.depends_on = certer.retrieve_depends_on()
77
+
78
+
71
79
  def build(
72
80
  self,
73
81
  context: ExecutionContext,
@@ -153,22 +161,25 @@ class GatewayBlok:
153
161
 
154
162
  context.file_tree.set_nested("configs", "Caddyfile", caddyfile)
155
163
 
156
- caddy_depends_on = []
157
- if self.with_certer:
158
- caddy_depends_on.append("certer")
164
+ caddy_depends_on = self.depends_on
159
165
 
160
166
  exposed_ports_strings = [
161
167
  f"{port.port}:{port.port}" for port in self.exposed_ports.values()
162
168
  ]
163
169
 
170
+
171
+ volumes = ["./configs/Caddyfile:/etc/caddy/Caddyfile"]
172
+ if self.cert_mount:
173
+ volumes.append(f"{self.cert_mount}:/certs")
174
+
164
175
  caddy_container = {
165
176
  "image": "caddy:latest",
166
- "volumes": ["./configs/Caddyfile:/etc/caddy/Caddyfile", "./certs:/certs"],
167
177
  "ports": [
168
178
  f"{self.http_port}:80",
169
179
  f"{self.https_port}:443",
170
180
  ]
171
181
  + exposed_ports_strings,
182
+ "volumes": volumes,
172
183
  "depends_on": caddy_depends_on,
173
184
  "networks": [self.gateway_network, "default"],
174
185
  }
@@ -17,7 +17,7 @@ class InternalDockerBlok:
17
17
  def __init__(self) -> None:
18
18
  self.host = "internal_docker"
19
19
 
20
- self.image = "jhnnsrs/deployer:0.0.8-vanilla"
20
+ self.image = "jhnnsrs/deployer:nightly"
21
21
  self.instance_id = "INTERNAL_DOCKER"
22
22
 
23
23
  def preflight(
@@ -51,10 +51,6 @@ class InternalDockerBlok:
51
51
  if self.skip:
52
52
  return
53
53
  db_service = {
54
- "labels": [
55
- "fakts.service=io.livekit.livekit",
56
- "fakts.builder=livekitio.livekit",
57
- ],
58
54
  "image": self.image,
59
55
  "command": self.command,
60
56
  "volumes": [f"{self._socket}:/var/run/docker.sock"],
@@ -0,0 +1,42 @@
1
+ import click
2
+ from pydantic import BaseModel
3
+ from typing import Dict, Any
4
+ import yaml
5
+ import secrets
6
+ from blok import blok, InitContext
7
+
8
+ from blok import blok, InitContext, ExecutionContext, Option
9
+ from blok.tree import YamlFile, Repo
10
+ from arkitekt_next.bloks.base import BaseArkitektService
11
+
12
+
13
+ class AccessCredentials(BaseModel):
14
+ password: str
15
+ username: str
16
+ host: str
17
+ port: str
18
+ db_name: str
19
+
20
+
21
+ @blok("live.arkitekt.kraph", description="Kraph allows you to interconnect structures in a graph database")
22
+ class KraphBlok(BaseArkitektService):
23
+ def __init__(self) -> None:
24
+ self.dev = False
25
+ self.host = "kraph"
26
+ self.command = "bash run-debug.sh"
27
+ self.repo = "https://github.com/arkitektio/kraph-server"
28
+ self.scopes = {
29
+ "kraph_read": "Read from the graph database",
30
+ "mikro_write": "Write image to the database",
31
+ }
32
+ self.image = "jhnnsrs/kraph:nightly"
33
+ self.mount_repo = False
34
+ self.build_repo = False
35
+ self.buckets = ["media"]
36
+ self.secret_key = secrets.token_hex(16)
37
+
38
+ def get_builder(self):
39
+ return "arkitekt.generic"
40
+
41
+ def build(self, context: ExecutionContext):
42
+ context.docker_compose.set_nested("services", self.host, self.service)
@@ -203,8 +203,8 @@ class LokBlok:
203
203
 
204
204
  db_service = {
205
205
  "labels": [
206
- "fakts_next.service=live.arkitekt.lok",
207
- "fakts_next.builder=arkitekt.lok",
206
+ "fakts.service=live.arkitekt.lok",
207
+ "fakts.builder=arkitekt.lok",
208
208
  ],
209
209
  "depends_on": depends_on,
210
210
  "volumes": [
@@ -0,0 +1,92 @@
1
+ from typing import Dict, Any
2
+ import secrets
3
+
4
+ from arkitekt_next.bloks.services.gateway import GatewayService
5
+ from arkitekt_next.bloks.services.ollama import OllamaService, OllamaCredentials
6
+ from blok import blok, InitContext, ExecutionContext, Option
7
+ from blok.tree import YamlFile, Repo
8
+
9
+
10
+ @blok(OllamaService, description="a self-hosted Ollama LLM server")
11
+ class OllamaBlok:
12
+ def __init__(self) -> None:
13
+ self.host = "ollama"
14
+ self.image = "ollama/ollama:latest"
15
+ self.port = 11434
16
+ self.skip = False
17
+ self.gpu = bool
18
+
19
+ def preflight(self, init: InitContext, gateway: GatewayService):
20
+ for key, value in init.kwargs.items():
21
+ setattr(self, key, value)
22
+
23
+
24
+ if self.skip:
25
+ return
26
+
27
+ gateway.expose_port_to(self.port, self.host, 11434, False)
28
+
29
+ self.initialized = True
30
+
31
+
32
+ def build(self, context: ExecutionContext):
33
+ if self.skip:
34
+ return
35
+ db_service = {
36
+ "labels": [
37
+ "fakts.service=io.ollama.ollama",
38
+ "fakts.builder=ollama.ollama",
39
+ ],
40
+ "image": self.image,
41
+ "environment": {
42
+ "OLLAMA_KEEP_ALIVE": "24h",
43
+ }
44
+ }
45
+
46
+ if self.gpu:
47
+ db_service["deploy"] = {
48
+ "resources": {
49
+ "reservations": {
50
+ "devices": [
51
+ {
52
+ "driver": "nvidia",
53
+ "count": 1,
54
+ "capabilities": ["gpu"],
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ }
60
+
61
+
62
+ context.docker_compose.set_nested("services", self.host, db_service)
63
+
64
+ def get_options(self):
65
+ with_host = Option(
66
+ subcommand="host",
67
+ help="The fakts url for connection",
68
+ default=self.host,
69
+ )
70
+ with_skip = Option(
71
+ subcommand="skip",
72
+ help="The fakts_next url for connection",
73
+ default=False,
74
+ type=bool,
75
+ )
76
+ with_gpu = Option(
77
+ subcommand="gpu",
78
+ help="Whether to use a gpu",
79
+ default=False,
80
+ type=self.gpu,
81
+ )
82
+
83
+ return [
84
+ with_host,
85
+ with_skip,
86
+ with_gpu,
87
+ ]
88
+
89
+ def __str__(self) -> str:
90
+ return (
91
+ f"LiveKitBlok(host={self.host}, command={self.command}, image={self.image})"
92
+ )
@@ -1,7 +1,9 @@
1
1
  from typing import Dict, Any
2
2
  import secrets
3
+ from arkitekt_next.bloks.services.gateway import GatewayService
3
4
  from arkitekt_next.bloks.services.mount import MountService
4
5
  from blok import blok, InitContext, ExecutionContext, Option, Command
6
+ from blok.bloks.services.dns import DnsService
5
7
  from blok.bloks.services.vscode import VsCodeService
6
8
  from blok.tree import Repo, YamlFile
7
9
 
@@ -14,6 +16,8 @@ class OrkestratorBlok:
14
16
  def __init__(self) -> None:
15
17
  self.dev = False
16
18
  self.disable = True
19
+ self.host = "orkestrator"
20
+ self.path_name = "orkestrator"
17
21
  self.repo = "https://github.com/arkitektio/orkestrator-next"
18
22
  self.build_command = ["yarn"]
19
23
  self.up_command = ["yarn", "start"]
@@ -21,36 +25,58 @@ class OrkestratorBlok:
21
25
  def preflight(
22
26
  self,
23
27
  init: InitContext,
28
+ gateway: GatewayService,
24
29
  mount: MountService,
25
30
  vscode: VsCodeService | None = None,
26
31
  ):
27
32
  for key, value in init.kwargs.items():
28
33
  setattr(self, key, value)
29
34
 
30
- if self.disable and not self.dev:
35
+ if self.disable:
31
36
  return
32
- self.mount = mount.register_mount("orkestrator", Repo(self.repo))
37
+
38
+ if not self.dev:
39
+ gateway.expose(self.path_name, 80, self.host)
33
40
 
34
- if vscode is not None:
35
- vscode.register_task(
36
- "Run Orkestrator",
37
- "shell",
38
- "yarn",
39
- ["start"],
40
- {"cwd": f"{self.mount}"},
41
- )
42
- vscode.register_task(
43
- "Build Orkestrator",
44
- "shell",
45
- "yarn",
46
- [],
47
- {"cwd": f"{self.mount}"},
48
- )
49
41
 
50
- self.initialized = True
42
+ self.service = {
43
+ "image": "jhnnsrs/orkestrator_next:nightly",
44
+ "environment": {
45
+ "PATH_NAME": self.path_name,
46
+ },
47
+ }
48
+
49
+ return
50
+
51
+ else:
52
+
53
+ self.mount = mount.register_mount("orkestrator", Repo(self.repo))
54
+
55
+ if vscode is not None:
56
+ vscode.register_task(
57
+ "Run Orkestrator",
58
+ "shell",
59
+ "yarn",
60
+ ["start"],
61
+ {"cwd": f"{self.mount}"},
62
+ )
63
+ vscode.register_task(
64
+ "Build Orkestrator",
65
+ "shell",
66
+ "yarn",
67
+ [],
68
+ {"cwd": f"{self.mount}"},
69
+ )
70
+
71
+ self.initialized = True
51
72
 
52
73
  def build(self, context: ExecutionContext):
53
- if self.disable and not self.dev:
74
+ if self.disable:
75
+ return
76
+
77
+ if self.dev:
78
+ context.docker_compose.set_nested("services", self.host, self.service)
79
+
54
80
  return
55
81
 
56
82
  context.install_commands.set_nested(
@@ -77,9 +103,21 @@ class OrkestratorBlok:
77
103
  help="Should we mount orkestrator as dev?",
78
104
  default=self.dev,
79
105
  )
106
+ with_path_name = Option(
107
+ subcommand="path_name",
108
+ help="The path name for the orkestrator service",
109
+ default=self.path_name,
110
+ )
111
+ with_host = Option(
112
+ subcommand="host",
113
+ help="The host for the orkestrator service",
114
+ default=self.host,
115
+ )
80
116
 
81
117
  return [
82
118
  with_dev,
83
119
  with_repos,
120
+ with_path_name,
84
121
  with_disable,
122
+ with_host,
85
123
  ]
@@ -0,0 +1,98 @@
1
+ from arkitekt_next.bloks.services.certer import CerterService
2
+ from arkitekt_next.bloks.services.name import NameService
3
+ from blok import blok, InitContext, ExecutionContext, Option
4
+ from blok.tree import YamlFile, Repo
5
+ from pydantic import BaseModel
6
+ from typing import Dict, Any, Optional
7
+
8
+ from blok import blok, InitContext
9
+ from blok.bloks.services.dns import DnsService
10
+
11
+ DEFAULT_PUBLIC_URLS = ["127.0.0.1"]
12
+ DEFAULT_PUBLIC_HOSTS = ["localhost"]
13
+
14
+
15
+ class ExposedHost(BaseModel):
16
+ host: str
17
+ port: int
18
+ stip_prefix: bool = True
19
+
20
+
21
+ class ExpostedToHost(BaseModel):
22
+ port: int
23
+ host: str
24
+ to: str
25
+ tls: bool = False
26
+
27
+
28
+ class ExposedPort(BaseModel):
29
+ port: int
30
+ host: str
31
+ tls: bool = False
32
+ to: int
33
+
34
+
35
+ @blok(
36
+ "live.arkitekt.certer", description="A self-signed certificate generator"
37
+ )
38
+ class SelfSignedBlok:
39
+ def __init__(self) -> None:
40
+ self.host = "certer"
41
+ self.certer_image = "jhnnsrs/certer:next"
42
+ self.certs_mount = "./certs"
43
+
44
+ def retrieve_certs_mount(self):
45
+ return self.certs_mount
46
+
47
+
48
+ def retrieve_depends_on(self):
49
+ return ["certer"]
50
+
51
+ def preflight(self, init: InitContext, dns: DnsService):
52
+ for key, value in init.kwargs.items():
53
+ setattr(self, key, value)
54
+
55
+ self.public_ips = dns.get_dns_result().ip_addresses
56
+ self.public_hosts = dns.get_dns_result().hostnames
57
+
58
+
59
+ def build(
60
+ self,
61
+ context: ExecutionContext,
62
+ ):
63
+
64
+ context.file_tree.set_nested("certs", {})
65
+
66
+
67
+ certer_container = {
68
+ "image": self.certer_image,
69
+ "volumes": ["./certs:/certs"],
70
+ "environment": {
71
+ "DOMAIN_NAMES": ",".join(self.public_hosts),
72
+ "IP_ADDRESSED": ",".join(self.public_ips),
73
+ },
74
+ }
75
+
76
+ context.docker_compose.set_nested("services", self.host, certer_container)
77
+
78
+
79
+
80
+ def get_options(self):
81
+ with_public_urls = Option(
82
+ subcommand="public_url",
83
+ help="Which public urls to use",
84
+ type=str,
85
+ multiple=True,
86
+ default=DEFAULT_PUBLIC_URLS,
87
+ show_default=True,
88
+ )
89
+ with_public_services = Option(
90
+ subcommand="public_hosts",
91
+ help="Which public hosts to use",
92
+ type=str,
93
+ multiple=True,
94
+ default=DEFAULT_PUBLIC_HOSTS,
95
+ show_default=True,
96
+ )
97
+
98
+ return [with_public_urls, with_public_services]
@@ -0,0 +1,14 @@
1
+ from blok import blok, InitContext, ExecutionContext, Option
2
+ from blok.tree import YamlFile, Repo
3
+ from dataclasses import dataclass
4
+ from typing import Dict, Any, Protocol
5
+
6
+ from blok import blok, InitContext, service
7
+
8
+
9
+ @service("live.arkitekt.certer", description="Generate HTTPS certificates for services")
10
+ class CerterService(Protocol):
11
+
12
+ def retrieve_certs_mount(self) -> str: ...
13
+
14
+ def retrieve_depends_on(self) -> list[str]: ...
@@ -0,0 +1,16 @@
1
+ from typing import Dict, Any, Protocol
2
+ from blok import blok, InitContext, Option
3
+ from blok import service
4
+ from dataclasses import dataclass
5
+
6
+
7
+ @dataclass
8
+ class OllamaCredentials:
9
+ api_key: str
10
+ api_secret: str
11
+ api_url: str
12
+
13
+
14
+ @service("io.ollama.ollama", description=" A self-hosted ollama LLM server")
15
+ class OllamaService(Protocol):
16
+ pass
@@ -233,8 +233,16 @@ def get_flavours(ctx: Context, select: Optional[str] = None) -> Dict[str, Flavou
233
233
  is_flag=True,
234
234
  default=False,
235
235
  )
236
+ @click.option(
237
+ "--tag",
238
+ "-t",
239
+ help="Tag the build with a specific tag",
240
+ type=str,
241
+ default=None,
242
+ required=False,
243
+ )
236
244
  @click.pass_context
237
- def build(ctx: Context, flavour: str, no_inspect: bool) -> None:
245
+ def build(ctx: Context, flavour: str, no_inspect: bool, tag: str = None) -> None:
238
246
  """Builds the arkitekt_next app to docker"""
239
247
 
240
248
  manifest = get_manifest(ctx)
@@ -262,6 +270,10 @@ def build(ctx: Context, flavour: str, no_inspect: bool) -> None:
262
270
 
263
271
  build_tag = build_flavour(key, flavour)
264
272
 
273
+ if tag:
274
+ subprocess.run(["docker", "tag", build_tag, tag], check=True)
275
+
276
+
265
277
  inspection = None
266
278
  if not no_inspect:
267
279
  inspection = inspect_build(build_tag)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arkitekt-next
3
- Version: 0.8.48
3
+ Version: 0.8.49
4
4
  Summary: client for the arkitekt_next platform
5
5
  License: MIT
6
6
  Author: jhnnsrs
@@ -18,7 +18,7 @@ Provides-Extra: blok
18
18
  Provides-Extra: cli
19
19
  Provides-Extra: extended
20
20
  Provides-Extra: stream
21
- Requires-Dist: blok (>=0.0.19) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "blok")
21
+ Requires-Dist: blok (>=0.0.20) ; (python_version >= "3.9" and python_version < "4.0") and (extra == "blok")
22
22
  Requires-Dist: cryptography (>=40.0.8) ; (python_version >= "3.8" and python_version < "4.0") and (extra == "blok")
23
23
  Requires-Dist: dokker (>=1.0.0)
24
24
  Requires-Dist: fakts-next (>=1.0.3)
@@ -1,4 +1,4 @@
1
- arkitekt_next/__blok__.py,sha256=gQqlPrUPSeB-b3XkvXRwDoRWMfG-vYN-3a2pWHNjz_E,1563
1
+ arkitekt_next/__blok__.py,sha256=kpITDqE6HDxXtQJ7v0Lr1iHCF-DXGNEjY5rS1VDwCBU,1716
2
2
  arkitekt_next/__init__.py,sha256=LKS5HkyEGSg4szUx-u0r1LLVRQ6FRo75OMxYGFX_oE8,1763
3
3
  arkitekt_next/apps/__init__.py,sha256=cx_5Y-RkJFkSQJH-hUEC_L3eW1jU2E426c4e6_csIyM,42
4
4
  arkitekt_next/apps/service/__init__.py,sha256=p4iRwiFBKRq2lfbjDBzUR_GMhPWjkjWTa01ohuKz_L4,157
@@ -11,26 +11,30 @@ arkitekt_next/apps/types.py,sha256=Ri6-Cby8bh9JOvMsOLpDrbeVB9zp3L28D951vM2juT0,1
11
11
  arkitekt_next/base_models.py,sha256=0jPEuvDPGwEgiuQcj5VN-8Ua_Tz3LhHAJq7t85-1inI,4116
12
12
  arkitekt_next/bloks/__init__.py,sha256=_4EeR63d6avQUWLG4mK2n_FvogTPQ_Jx6f2_RvNbWeA,29
13
13
  arkitekt_next/bloks/admin.py,sha256=mRTfjIR1vsfY1ghgjWLjKYFAOh1pGCmQ_IEt2QOR3og,1353
14
- arkitekt_next/bloks/arkitekt.py,sha256=ZyyHocaoPPCBZnbpBCkDzB2woXb1-ZbENr51UFERn2Q,1546
15
- arkitekt_next/bloks/base.py,sha256=6gsDc9sVYDqY4El2hhH32QiYHcYUd6eZQRgvhAuY2a0,6341
14
+ arkitekt_next/bloks/arkitekt.py,sha256=OjsPAGn4Rr5GafR3Cg4bMdgy-J_uMAQUWdyeI85lxQk,1562
15
+ arkitekt_next/bloks/base.py,sha256=Z4JS9Cyk7ba-ZH8UlibptkOTck5WZT7WhBkFW8GmAns,6364
16
16
  arkitekt_next/bloks/config.py,sha256=YMQChT4SCdc_vvvbkAj_qGyA--6JVEHds7MalqUp3lw,1269
17
17
  arkitekt_next/bloks/fluss.py,sha256=8nf5Z2k-tA3CNRQeIqh7-aaFe5my_NN2lAhbyYbwKEs,1074
18
- arkitekt_next/bloks/gateway.py,sha256=n3qhAcLj5LOxq6Tua2z0B7yvYh4hL9rG4sKNUD4F9iU,6757
19
- arkitekt_next/bloks/internal_docker.py,sha256=MLPS6rvcOPjkHF447gFXQu1AJvanp-zfb2F6Ekhf4Hk,2960
18
+ arkitekt_next/bloks/gateway.py,sha256=yIseCS3wfEvHKn4B5ILVxuseCstefiNjaC4hLQZdSRo,7119
19
+ arkitekt_next/bloks/internal_docker.py,sha256=oGAPKRMgdLM54xH7P9NiffMj0T264bjmlQlhwjHFQeA,2812
20
20
  arkitekt_next/bloks/kabinet.py,sha256=NKP6tpr8XcVvvFifX-lxgBPkP0P810kJ4URv25jf2z8,1489
21
+ arkitekt_next/bloks/kraph.py,sha256=ySLOPbny_N2-M_ZaErCAStP0WtpEwM_4hszOsmFz4vw,1281
21
22
  arkitekt_next/bloks/livekit.py,sha256=S7Si7djl1s2hUckxxoawf6zUU93z_V3Mxl13PAy_4KI,2610
22
- arkitekt_next/bloks/lok.py,sha256=HErdQMlQdLwygiuGGVPLOM12XIR0exP43gyawWwN-5A,11575
23
+ arkitekt_next/bloks/lok.py,sha256=QSYM4DejTOL4w6u-w6cLdJzy5KV3d14IOu7iPudKRpg,11565
23
24
  arkitekt_next/bloks/mikro.py,sha256=bnI9lWd6FXyOViog0Xko3_yhKOt7AAdB_PA4N0XkXAU,1291
24
25
  arkitekt_next/bloks/minio.py,sha256=n7DP_O49fBsMw4IWmHIspyNmc52l52q8fujcbAOgN7Q,5593
25
26
  arkitekt_next/bloks/mount.py,sha256=IEod6LDuV5NNKvvRJ3Xgo8l2caVZnNmJYDgGGBUB3Cg,1088
26
27
  arkitekt_next/bloks/namegen.py,sha256=W9xco2d3eJLdL2NYpTFmqw2d4s3vCpBREIFNm38gMYY,1087
27
- arkitekt_next/bloks/orkestrator.py,sha256=TJfMr6VCEU0EP_0TPpNdJsLVydGlmaDfYK1EQp2ArW8,2447
28
+ arkitekt_next/bloks/ollama.py,sha256=F2j_gSyYonZ5QOuiA1UG0Kzi5vKLqiYx-UOj3NMafLQ,2528
29
+ arkitekt_next/bloks/orkestrator.py,sha256=ZvK3dEtDeDsJC0n4QODhZXKItj3ybarVGnaxR107i_c,3556
28
30
  arkitekt_next/bloks/postgres.py,sha256=UbQnbedEUf_VKAfavz1sCGvAa-ZweDwrUeEj76lo_L8,4276
29
31
  arkitekt_next/bloks/redis.py,sha256=A9scMZohACsk-k1LQZo-rTFTB_eq12dqL4zVZkKdKLQ,2274
30
32
  arkitekt_next/bloks/rekuest.py,sha256=mfBjFKNGDMd9t1Wqkxeu2ZxAvYyMpAvHRS30PdchYCQ,1056
31
33
  arkitekt_next/bloks/secret.py,sha256=06J9f6-o1NCE0ReakVOyA0KbmQ-xr2fCYQWKOc_z1QQ,1067
34
+ arkitekt_next/bloks/self_signed.py,sha256=ALkjO4C_S5n5gTEkVTMrshlLCK9LGkaW2-aS41J7oiU,2473
32
35
  arkitekt_next/bloks/services/__init__.py,sha256=i9vGNd1lFBem3O2PblTouRzFVQkdwOYoUmqqU43dIWQ,592
33
36
  arkitekt_next/bloks/services/admin.py,sha256=qeNa9KkFJk0DSNV-Ses-vkLjC3xHtvHnVHJ3w0DPKOA,463
37
+ arkitekt_next/bloks/services/certer.py,sha256=BOeEXNhD1zb3rGB8VW8m9-LxZdFgHGk2PqTnbDVgP7M,446
34
38
  arkitekt_next/bloks/services/config.py,sha256=E0X-AweMxbbVQihqPuUEUzt9Y5J2DKY5sFX2efORtS0,378
35
39
  arkitekt_next/bloks/services/db.py,sha256=Lc8uL8xibz99-16YPxtB_ls6CP3dN_jCaOzJ9uZ8b_0,588
36
40
  arkitekt_next/bloks/services/gateway.py,sha256=X7ghhLXZ9hDQIMXMTkfBMcS9o9oc16y0C-b_3r3uwCo,847
@@ -38,6 +42,7 @@ arkitekt_next/bloks/services/livekit.py,sha256=5Qv1dcL2sQTveYvxZOuZPboNqn2wH0kyP
38
42
  arkitekt_next/bloks/services/lok.py,sha256=fzOGum0VmcVaONUhTv4jHYky4WrFq2ygDAYJjBv2vAI,500
39
43
  arkitekt_next/bloks/services/mount.py,sha256=UAp7IzUNGYtqrh8ACAVgRtc5jYVGvzsKjKdegBdK_i0,273
40
44
  arkitekt_next/bloks/services/name.py,sha256=ysr7b8Hn9yIeuBlqv9Zz-ngWKdQtwl3V1I1TeDvhLlA,254
45
+ arkitekt_next/bloks/services/ollama.py,sha256=9L9DgUFcNxrYDg1p8W7THfzQmqQzBy0J7QTMhh-3WN8,352
41
46
  arkitekt_next/bloks/services/redis.py,sha256=W9CraIZJztFE1vQVCfxCxY4T_gBPRTM84VwFR8Hwtp8,472
42
47
  arkitekt_next/bloks/services/s3.py,sha256=_mk_9NdaeHRVZ__1M9CL1Ec1gSQKkzlOiQXse7MSx94,485
43
48
  arkitekt_next/bloks/services/secret.py,sha256=cnZsH09gN9YRXBbmalZaFD2LcmWLlfm52mDTAnfuYT4,344
@@ -66,7 +71,7 @@ arkitekt_next/cli/commands/inspect/requirements.py,sha256=bLYaWddScW2_qQFCwRtCFU
66
71
  arkitekt_next/cli/commands/inspect/templates.py,sha256=pymiXPTcpgKopt_nt-NC9hv4zxveQJQOMyndoPJ8knk,2286
67
72
  arkitekt_next/cli/commands/inspect/variables.py,sha256=LonDlbS2qH1v-jD6RfEhTv-mxmgeBMKqD3oO2iDJRjE,2698
68
73
  arkitekt_next/cli/commands/kabinet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- arkitekt_next/cli/commands/kabinet/build.py,sha256=S6FF_tpS1Vu-1I2dvyMUa_pV1LWXnRt0wfPEddso0jc,8710
74
+ arkitekt_next/cli/commands/kabinet/build.py,sha256=uQh0nPBGsQNJ8iy-cQwMjpNx1c2ZRrBybbyZYg5doVc,8957
70
75
  arkitekt_next/cli/commands/kabinet/init.py,sha256=YcxXlMick7Xd2XUjmA9vyku0QDGACw1PEWpfJum42E8,3600
71
76
  arkitekt_next/cli/commands/kabinet/main.py,sha256=U5EWekRTsMZZ34abWFfwilhzrd-zZtpZbl8RsLN_bC8,1008
72
77
  arkitekt_next/cli/commands/kabinet/publish.py,sha256=pbQ3QNNwSnyq06EPWfcJc_LoP9VhKo2wGBuUtNPPlV0,3572
@@ -135,8 +140,8 @@ arkitekt_next/qt/utils.py,sha256=MgBPtPmCSBkIuATov3UgREESwxAHh77lWNNxyE7Qs48,773
135
140
  arkitekt_next/service_registry.py,sha256=iGbTflBsL2HzCeulLUn1kRcuk_do9bdlQ881BIiE_HY,6276
136
141
  arkitekt_next/tqdm.py,sha256=lQcJI5Q6Py7Gy88hOCiJujjPEEGd8G2k1mOVJJ6oYe8,1531
137
142
  arkitekt_next/utils.py,sha256=4e4zEQSA7FZou8M01xV8oPBG1JvJJ0ySDP_nm3E3pMA,2390
138
- arkitekt_next-0.8.48.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
139
- arkitekt_next-0.8.48.dist-info/METADATA,sha256=qj2F6gbFuf40PV92H1J6RJ_WxhFYjRbajaj4OmX2Kr4,6237
140
- arkitekt_next-0.8.48.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
141
- arkitekt_next-0.8.48.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
142
- arkitekt_next-0.8.48.dist-info/RECORD,,
143
+ arkitekt_next-0.8.49.dist-info/LICENSE,sha256=YZ2oRjC248t-GpoEyw7J13vwKYNG6zhYMaEAix6EzF0,1089
144
+ arkitekt_next-0.8.49.dist-info/METADATA,sha256=PJtbtjEXp9k6fR5lr0mOM_fhoXolBiqQwn0MaqB4Hjk,6237
145
+ arkitekt_next-0.8.49.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
146
+ arkitekt_next-0.8.49.dist-info/entry_points.txt,sha256=-hxikQx4xZ6TiOnWVDOlTN_kcAISgGFvTHXIchsCHSc,60
147
+ arkitekt_next-0.8.49.dist-info/RECORD,,