File size: 2,847 Bytes
3b70664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
(defpackage #:nekod
  (:use #:cl)
  (:export
   ;; Container DSL
   #:define-container
   #:container-spec
   #:container-name
   #:container-image
   #:container-ports
   #:container-env
   #:container-volumes
   #:container-healthcheck
   ;; Eval loop
   #:nekod-eval
   #:nekod-repl
   ;; Image persistence
   #:save-nekod-image
   #:restore-nekod-image
   ;; Conditions — base
   #:nekomata-error
   #:container-error
   #:docker-api-error
   ;; Conditions — socket transport
   #:socket-error
   #:socket-connect-error
   #:socket-read-error
   #:socket-write-error
   #:socket-closed-error
   ;; Conditions — HTTP
   #:http-protocol-error
   #:http-body-truncated
   #:http-header-too-large
   ;; Conditions — backpressure
   #:backpressure-error
   #:event-too-large
   ;; Conditions — security
   #:policy-denied))

(defpackage #:nekod.docker
  (:use #:cl #:nekod)
  (:export
   ;; Socket transport
   #:connect-socket
   #:disconnect-socket
   #:socket-open-p
   #:socket-write
   #:socket-read
   #:socket-write-octets
   #:socket-read-octets
   #:socket-read-until
   #:docker-socket
   #:docker-socket-path
   #:docker-socket-connected
   #:ensure-socket-open
   ;; Protocol
   #:build-http-request
   #:read-http-response
   #:parse-http-response
   #:http-response
   #:http-response-status
   #:http-response-headers
   #:http-response-body
   #:docker-request
   #:docker-get
   #:docker-post
   #:docker-delete
   #:header-value
   #:*connection-policy*
   ;; Events
   #:open-event-stream
   #:read-event-frame
   #:consume-event-stream
   #:close-event-stream
   #:event-stream
   ;; Container ops
   #:create-container
   #:start-container
   #:stop-container
   #:kill-container
   #:inspect-container
   #:list-containers
   ;; Network ops
   #:list-networks
   #:inspect-network
   #:create-network
   #:remove-network))

(defpackage #:nekod.moe
  (:use #:cl)
  (:export
   #:make-router
   #:route
   #:router-weights
   #:router-expert-names
   #:router-k
   #:expert-score
   #:top-k-experts
   #:update-weights
   #:softmax-over-selected
   #:all-scores))

(defpackage #:nekod.socket
  (:use #:cl #:nekod)
  (:export
   ;; Backpressure
   #:*backpressure*
   #:backpressure-config
   #:make-backpressure-config
   #:check-event-size
   #:check-header-size
   #:enqueue-event
   #:dequeue-event
   #:should-pause-p
   #:reset-backpressure
   ;; Policy
   #:validate-socket-path
   #:authorize-operation
   #:register-capability
   #:init-default-capabilities
   #:revoke-capability
   #:grant-capability
   ;; Receipt
   #:make-operation-receipt
   #:receipt
   #:receipt-to-alist
   ;; Agent ingress
   #:process-event-to-routing
   #:run-ingress-loop
   #:make-ingress-pipeline))