@pleri/olam-cli 0.1.158 → 0.1.160

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/agent-stream/agent-sdk-to-chunks.js +3 -0
  2. package/dist/agent-stream/driver-runner.js +9 -4
  3. package/dist/agent-stream/host-driver-launch.js +48 -0
  4. package/dist/commands/doctor.d.ts +21 -10
  5. package/dist/commands/doctor.d.ts.map +1 -1
  6. package/dist/commands/doctor.js +95 -39
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/flywheel/check-persona-skeleton.d.ts +30 -2
  9. package/dist/commands/flywheel/check-persona-skeleton.d.ts.map +1 -1
  10. package/dist/commands/flywheel/check-persona-skeleton.js +143 -6
  11. package/dist/commands/flywheel/check-persona-skeleton.js.map +1 -1
  12. package/dist/commands/flywheel/diversity-check.d.ts +12 -2
  13. package/dist/commands/flywheel/diversity-check.d.ts.map +1 -1
  14. package/dist/commands/flywheel/diversity-check.js +56 -6
  15. package/dist/commands/flywheel/diversity-check.js.map +1 -1
  16. package/dist/commands/flywheel/index.d.ts.map +1 -1
  17. package/dist/commands/flywheel/index.js +2 -0
  18. package/dist/commands/flywheel/index.js.map +1 -1
  19. package/dist/commands/flywheel/install-shims.d.ts +36 -3
  20. package/dist/commands/flywheel/install-shims.d.ts.map +1 -1
  21. package/dist/commands/flywheel/install-shims.js +118 -7
  22. package/dist/commands/flywheel/install-shims.js.map +1 -1
  23. package/dist/commands/flywheel/k10-measure.d.ts +12 -2
  24. package/dist/commands/flywheel/k10-measure.d.ts.map +1 -1
  25. package/dist/commands/flywheel/k10-measure.js +55 -6
  26. package/dist/commands/flywheel/k10-measure.js.map +1 -1
  27. package/dist/commands/flywheel/migrate-overlays.d.ts +115 -0
  28. package/dist/commands/flywheel/migrate-overlays.d.ts.map +1 -0
  29. package/dist/commands/flywheel/migrate-overlays.js +766 -0
  30. package/dist/commands/flywheel/migrate-overlays.js.map +1 -0
  31. package/dist/commands/flywheel/sanitize-persona-output.d.ts +33 -2
  32. package/dist/commands/flywheel/sanitize-persona-output.d.ts.map +1 -1
  33. package/dist/commands/flywheel/sanitize-persona-output.js +94 -6
  34. package/dist/commands/flywheel/sanitize-persona-output.js.map +1 -1
  35. package/dist/commands/memory/index.d.ts.map +1 -1
  36. package/dist/commands/memory/index.js +2 -0
  37. package/dist/commands/memory/index.js.map +1 -1
  38. package/dist/commands/memory/install-hooks.d.ts +22 -0
  39. package/dist/commands/memory/install-hooks.d.ts.map +1 -0
  40. package/dist/commands/memory/install-hooks.js +156 -0
  41. package/dist/commands/memory/install-hooks.js.map +1 -0
  42. package/dist/commands/skills-doctor.js +2 -2
  43. package/dist/commands/skills-doctor.js.map +1 -1
  44. package/dist/commands/skills-source.d.ts.map +1 -1
  45. package/dist/commands/skills-source.js +10 -0
  46. package/dist/commands/skills-source.js.map +1 -1
  47. package/dist/commands/skills.d.ts.map +1 -1
  48. package/dist/commands/skills.js +169 -1
  49. package/dist/commands/skills.js.map +1 -1
  50. package/dist/image-digests.json +7 -7
  51. package/dist/index.js +3592 -905
  52. package/dist/index.js.map +1 -1
  53. package/dist/lib/flywheel-probes.d.ts +58 -0
  54. package/dist/lib/flywheel-probes.d.ts.map +1 -0
  55. package/dist/lib/flywheel-probes.js +163 -0
  56. package/dist/lib/flywheel-probes.js.map +1 -0
  57. package/dist/lib/host-side-proxy.d.ts +67 -0
  58. package/dist/lib/host-side-proxy.d.ts.map +1 -0
  59. package/dist/lib/host-side-proxy.js +177 -0
  60. package/dist/lib/host-side-proxy.js.map +1 -0
  61. package/dist/lib/shim-generator.d.ts +51 -0
  62. package/dist/lib/shim-generator.d.ts.map +1 -0
  63. package/dist/lib/shim-generator.js +88 -0
  64. package/dist/lib/shim-generator.js.map +1 -0
  65. package/dist/lib/skills-apply-overlays.d.ts +35 -0
  66. package/dist/lib/skills-apply-overlays.d.ts.map +1 -0
  67. package/dist/lib/skills-apply-overlays.js +243 -0
  68. package/dist/lib/skills-apply-overlays.js.map +1 -0
  69. package/dist/lib/upgrade-kubernetes.d.ts +13 -12
  70. package/dist/lib/upgrade-kubernetes.d.ts.map +1 -1
  71. package/dist/lib/upgrade-kubernetes.js +87 -134
  72. package/dist/lib/upgrade-kubernetes.js.map +1 -1
  73. package/dist/mcp-server.js +1106 -453
  74. package/hermes-bundle/version.json +1 -1
  75. package/host-cp/k8s/host-side/docker-socket-proxy.compose.yaml +58 -0
  76. package/host-cp/k8s/manifests/50-deployment.yaml +47 -70
  77. package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
  78. package/host-cp/k8s/manifests/docker-socket-proxy/60-service.yaml +37 -0
  79. package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
  80. package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
  81. package/host-cp/k8s/manifests/memory-service/30-configmap.yaml +11 -0
  82. package/host-cp/k8s/manifests/memory-service/35-configmap-iii-config.yaml +76 -0
  83. package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +11 -1
  84. package/host-cp/src/crystallize-planning.mjs +261 -0
  85. package/host-cp/src/plan-chat-service.mjs +84 -2
  86. package/host-cp/src/planning-sessions.mjs +270 -0
  87. package/host-cp/src/server.mjs +9 -0
  88. package/host-cp/src/tasks-route.mjs +191 -0
  89. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  {
2
- "bundledAt": "2026-05-21T02:24:20.567Z",
2
+ "bundledAt": "2026-05-22T05:49:33.599Z",
3
3
  "kgFirstSha": "29a9ccce1b115d049e375c4a90eb5cf7c123e610e2d0590270a4db2cdbc64a28"
4
4
  }
@@ -0,0 +1,58 @@
1
+ # Host-side docker-socket-proxy for the olam kubernetes substrate.
2
+ #
3
+ # Background — round-4 wave-2 R4-W2-F (kuro-bear retest 2026-05-21):
4
+ # on macOS + colima + virtiofs, containerd's OCI runtime spec generator
5
+ # calls stat() on docker.sock hostPath bind mounts; virtiofs returns
6
+ # ENOTSUP for stat/statx on socket files; pod creation fails. The R3-A
7
+ # two-volume hostPath approach is unrecoverable on virtiofs.
8
+ #
9
+ # This compose file provisions the docker-socket-proxy AS A HOST-SIDE
10
+ # CONTAINER (sibling to k3d on the operator's docker daemon), NOT as a
11
+ # pod inside the k3d cluster. The in-cluster Service in
12
+ # packages/host-cp/k8s/manifests/docker-socket-proxy/60-service.yaml is
13
+ # `type: ExternalName` aliasing `host.k3d.internal` — cluster pods reach
14
+ # THIS container via that DNS handle.
15
+ #
16
+ # Architecture mirrors the compose substrate's pattern (see
17
+ # packages/host-cp/compose.yaml:170-210). Same image, same allowlist,
18
+ # same restart policy. The only difference: this proxy publishes to
19
+ # the operator host on 127.0.0.1:2375 so k3d nodes can reach it via
20
+ # host.k3d.internal — the compose-substrate sibling stays internal-only.
21
+ #
22
+ # Operator UX: `olam upgrade -y` Step 0.7 auto-starts this on macOS via
23
+ # `docker compose -f <this-file> up -d`. Linux operators get a no-op
24
+ # (Step 0.7 is platform-gated). See docs/operator/kubernetes-substrate-beta.md.
25
+
26
+ services:
27
+ docker-socket-proxy:
28
+ container_name: olam-host-side-docker-socket-proxy
29
+ # tecnativa/docker-socket-proxy:0.3.0 — matches the compose substrate's
30
+ # pin verbatim. T8 supply-chain: pinning prevents drift. Update via
31
+ # Renovate / dependabot.
32
+ image: tecnativa/docker-socket-proxy:0.3.0
33
+ environment:
34
+ # Whitelist matches packages/host-cp/compose.yaml:181-202 verbatim.
35
+ # Anything outside this list stays at proxy default (deny).
36
+ CONTAINERS: "1"
37
+ EVENTS: "1"
38
+ EXEC: "1"
39
+ # IMAGES=1 needed for GET /images/<ref>/json (version-status.mjs
40
+ # fetchLatestImageSha). Socket is :ro so this is read-only inspect.
41
+ IMAGES: "1"
42
+ # POST=1 required since tecnativa 0.3.0 for exec creation
43
+ # (POST /containers/<id>/exec + POST /exec/<id>/start). See
44
+ # packages/host-cp/compose.yaml:195-199 for the F-2-D dogfood
45
+ # finding that surfaced this.
46
+ POST: "1"
47
+ LOG_LEVEL: "warning"
48
+ ports:
49
+ # Publish to operator host on 127.0.0.1:2375 ONLY. k3d nodes reach
50
+ # this via host.k3d.internal:2375. Binding to 127.0.0.1 (not
51
+ # 0.0.0.0) is T1 mitigation: docker API surface stays loopback-only
52
+ # on a single-tenant operator machine.
53
+ - "127.0.0.1:2375:2375"
54
+ volumes:
55
+ # Read-only mount of the host's docker socket. The proxy is the
56
+ # only consumer of the raw socket on the operator's mac.
57
+ - /var/run/docker.sock:/var/run/docker.sock:ro
58
+ restart: unless-stopped
@@ -18,38 +18,30 @@
18
18
  # before the main container starts, granting UID-1000 write access on the
19
19
  # freshly-provisioned PV. fsGroup alone is insufficient for hostPath volumes.
20
20
  #
21
- # docker-sock (/var/run/docker.sock): two-volume pattern for colima+k3d.
22
- # R3-A fix (v0.1.156+): k3d MUST be created with a parent-directory bind
23
- # (not a socket-file bind) so colima's socket is correctly visible inside
24
- # the k3d node. The operator command is:
21
+ # docker access NO LONGER VIA hostPath (changed in olam-k3d-on-mac-
22
+ # substrate-decision Phase B B2, 2026-05-21). The previous R3-A two-volume
23
+ # hostPath pattern is retracted: round-4 R4-W2-F showed virtiofs returns
24
+ # ENOTSUP on stat/statx of socket files, and that failure is unrecoverable
25
+ # at the containerd OCI runtime layer. host-cp now reaches docker via TCP
26
+ # through the docker-socket-proxy ExternalName Service in the olam
27
+ # namespace (packages/host-cp/k8s/manifests/docker-socket-proxy/60-service.yaml),
28
+ # which kube-dns resolves as a CNAME to host.k3d.internal. The actual
29
+ # proxy container runs on the operator's docker daemon (sibling to k3d),
30
+ # started by `olam upgrade` Step 0.7. See also
31
+ # packages/host-cp/src/lib/docker-request-options.mjs (both substrates now
32
+ # return identical TCP options).
25
33
  #
26
- # k3d cluster create olam-host \
27
- # --volume $HOME/.colima/default/:/host-colima/@server:* \
28
- # --volume ~/.config/gh:/host/.config/gh \
29
- # --wait --timeout 90s
30
- #
31
- # This mounts the entire colima directory into the k3d node at /host-colima/.
32
- # The docker socket appears at /host-colima/docker.sock inside the node.
33
- # The Deployment then uses:
34
- # - host-colima volume (type: Directory) for the init container chmod
35
- # - docker-socket volume (type: Socket, source /host-colima/docker.sock)
36
- # for the main container /var/run/docker.sock mount
37
- #
38
- # An init container (socket-perm) runs `chmod 666 /host-colima/docker.sock`
39
- # as root BEFORE the main container starts. This grants the non-root main
40
- # container (UID 1000) read+write access to the daemon socket.
41
- # Deliberate platform-permission concession — see Decision #15.
42
- # R3-A: init container mounts host-colima (directory) and runs chmod on the
43
- # socket file inside it. No symlink init container needed — empirically
44
- # verified in plan pass-2 on kuro-bear 2026-05-20.
34
+ # The operator's k3d cluster create command is therefore simpler — no
35
+ # `--volume $HOME/.colima/default/:/host-colima/@server:*` flag needed.
36
+ # See docs/operator/kubernetes-substrate-beta.md for the current install
37
+ # command.
45
38
  #
46
39
  # gh-config (/gh-config) and operator-repo (/operator-repo) remain hostPath
47
40
  # volumes that resolve to paths inside the k3d node container.
48
- # OPERATORS MUST pass these volume mounts when creating the k3d cluster (see
49
- # the k3d command above). Without these flags the gh-config and operator-repo
50
- # mounts will be empty. The pod will still start — features that depend on
51
- # GitHub auth or the operator repo will fail gracefully. The Phase D install
52
- # guide surfaces this requirement prominently.
41
+ # OPERATORS MUST pass these volume mounts when creating the k3d cluster.
42
+ # Without these flags the gh-config and operator-repo mounts will be empty.
43
+ # The pod will still start — features that depend on GitHub auth or the
44
+ # operator repo will fail gracefully.
53
45
  apiVersion: apps/v1
54
46
  kind: Deployment
55
47
  metadata:
@@ -108,28 +100,18 @@ spec:
108
100
  volumeMounts:
109
101
  - name: olam-home
110
102
  mountPath: /data
111
- - name: socket-perm
112
- # busybox:1.36 same sha256-pinned image as chown-data above.
113
- # Deliberate platform-permission concession see Decision #15.
114
- # R3-A: runs chmod against /host-colima/docker.sock (the socket path
115
- # inside the k3d node after the parent-directory bind). Mounts the
116
- # host-colima Directory volume (not the docker-socket Socket volume)
117
- # so the entire colima directory is accessible — chmod operates on
118
- # the socket file within that directory. 666 (world-rw) is intentional
119
- # on a single-tenant operator machine.
120
- image: busybox@sha256:73aaf090f3d85aa34ee199857f03fa3a95c8ede2ffd4cc2cdb5b94e566b11662
121
- imagePullPolicy: IfNotPresent
122
- securityContext:
123
- runAsUser: 0
124
- runAsNonRoot: false
125
- allowPrivilegeEscalation: false
126
- command: ["sh", "-c", "chmod 666 /host-colima/docker.sock"]
127
- volumeMounts:
128
- - name: host-colima
129
- mountPath: /host-colima
103
+ # socket-perm init container REMOVED in olam-k3d-on-mac-substrate-decision
104
+ # Phase B B2 (2026-05-21). The R3-A two-volume hostPath approach for
105
+ # docker.sock has been retracted: round-4 R4-W2-F showed virtiofs
106
+ # ENOTSUP on socket-file stat blocks the mount entirely. host-cp now
107
+ # reaches docker via TCP through the docker-socket-proxy ExternalName
108
+ # Service in the olam namespace (see
109
+ # packages/host-cp/k8s/manifests/docker-socket-proxy/60-service.yaml).
110
+ # The proxy itself runs on the operator's docker daemon (sibling to
111
+ # k3d), started by `olam upgrade` Step 0.7 — not inside this Pod.
130
112
  containers:
131
113
  - name: olam-host-cp
132
- image: ghcr.io/pleri/olam-host-cp@sha256:ea586fdbd1856c739bf241b7d8a2099485dad9c0d2469ca3e0e821ed24681976
114
+ image: ghcr.io/pleri/olam-host-cp@sha256:3bf4a89af3544e382bf2d708ff73baa6704cf91a0b509f8b1a153fbe603a4223
133
115
  imagePullPolicy: IfNotPresent
134
116
  securityContext:
135
117
  runAsNonRoot: true
@@ -158,8 +140,13 @@ spec:
158
140
  readOnly: true
159
141
  - name: tmp
160
142
  mountPath: /tmp
161
- - name: docker-socket
162
- mountPath: /var/run/docker.sock
143
+ # docker-socket volumeMount REMOVED in olam-k3d-on-mac-substrate-
144
+ # decision Phase B B2. Docker access now goes via TCP to the
145
+ # docker-socket-proxy ExternalName Service in the olam namespace.
146
+ # host-cp's `getDockerRequestOptions('kubernetes')` returns
147
+ # `{ host: 'docker-socket-proxy', port: 2375 }` (collapsed to the
148
+ # same value as the compose substrate's branch — see
149
+ # packages/host-cp/src/lib/docker-request-options.mjs).
163
150
  readinessProbe:
164
151
  httpGet:
165
152
  path: /health
@@ -197,23 +184,13 @@ spec:
197
184
  type: DirectoryOrCreate
198
185
  - name: tmp
199
186
  emptyDir: {}
200
- - name: host-colima
201
- # R3-A Parent-directory bind for colima+k3d (Decision R3-#1).
202
- # k3d is created with: --volume $HOME/.colima/default/:/host-colima/@server:*
203
- # The entire colima directory (including docker.sock) mounts at /host-colima/.
204
- # Used by the socket-perm init container to chmod the socket file.
205
- # type: Directory because the colima directory (not socket) is the source.
206
- hostPath:
207
- path: /host-colima
208
- type: Directory
209
- - name: docker-socket
210
- # R3-A — Socket file within the colima directory (Decision R3-#1).
211
- # Source is /host-colima/docker.sock — the socket file inside the k3d
212
- # node's /host-colima directory (set by the colima parent-dir bind).
213
- # Mounted at /var/run/docker.sock in the main container so host-cp can
214
- # reach the operator's docker daemon without path changes in app code.
215
- # The socket-perm init container runs chmod 666 on this path before
216
- # the main container starts (Decision #15 — same root-init pattern).
217
- hostPath:
218
- path: /host-colima/docker.sock
219
- type: Socket
187
+ # host-colima + docker-socket volumes REMOVED in olam-k3d-on-mac-
188
+ # substrate-decision Phase B B2 (2026-05-21). R3-A's two-volume
189
+ # hostPath approach is fully retracted: round-4 R4-W2-F demonstrated
190
+ # virtiofs ENOTSUP on socket-file stat is unrecoverable at the
191
+ # containerd OCI runtime layer (kubelet bypass via R4-W2-E was
192
+ # necessary-but-not-sufficient). host-cp now reaches docker via TCP
193
+ # through the docker-socket-proxy ExternalName Service — see
194
+ # packages/host-cp/k8s/manifests/docker-socket-proxy/60-service.yaml.
195
+ # The proxy itself runs on the operator's docker daemon (sibling to
196
+ # k3d), started by `olam upgrade` Step 0.7 on macOS.
@@ -70,7 +70,7 @@ spec:
70
70
  mountPath: /data
71
71
  containers:
72
72
  - name: olam-auth-service
73
- image: ghcr.io/pleri/olam-auth@sha256:690fab7365a8309a8176f207e96ded9eee1af9640297c109be3a43305e727382
73
+ image: ghcr.io/pleri/olam-auth@sha256:a7b1e4c0ddee4fc6bfb2689c4d23d8bc0fcc95bc7b42a28d977b990f1408505b
74
74
  imagePullPolicy: IfNotPresent
75
75
  securityContext:
76
76
  runAsNonRoot: true
@@ -0,0 +1,37 @@
1
+ # ExternalName Service for the host-side docker-socket-proxy.
2
+ #
3
+ # Provides in-cluster DNS for pods to reach the host-side proxy
4
+ # container (defined in packages/host-cp/k8s/host-side/docker-socket-proxy.compose.yaml).
5
+ # The Service has NO backing Pod — `type: ExternalName` is a kube-dns
6
+ # CNAME alias to `host.k3d.internal`, the gateway address that k3d
7
+ # auto-provisions inside every node container.
8
+ #
9
+ # Decision #7 (round-4 plan pass 2): Universal across all k8s substrates
10
+ # (macOS+colima+virtiofs, Linux native k3d, WSL2). One codepath; the
11
+ # per-Pod cost of running an in-cluster proxy elsewhere is invisible
12
+ # against the maintenance tax of OS-conditional Service generation.
13
+ #
14
+ # Why ExternalName and not in-cluster Pod with hostPath:
15
+ # the in-cluster Pod would itself need to bind /var/run/docker.sock
16
+ # from the lima VM, hitting the same virtiofs ENOTSUP class that
17
+ # R4-W2-F is. The proxy must live OUTSIDE the k3d cluster, on the
18
+ # operator's colima docker daemon. ExternalName makes that
19
+ # transparent to consumers: host-cp configures
20
+ # { host: 'docker-socket-proxy', port: 2375 } regardless of where
21
+ # the actual proxy container lives.
22
+ apiVersion: v1
23
+ kind: Service
24
+ metadata:
25
+ name: docker-socket-proxy
26
+ namespace: olam
27
+ labels:
28
+ app: docker-socket-proxy
29
+ olam.io/component: host-stack
30
+ spec:
31
+ type: ExternalName
32
+ externalName: host.k3d.internal
33
+ ports:
34
+ - name: tcp-2375
35
+ port: 2375
36
+ targetPort: 2375
37
+ protocol: TCP
@@ -61,7 +61,7 @@ spec:
61
61
  mountPath: /data
62
62
  containers:
63
63
  - name: olam-kg-service
64
- image: ghcr.io/pleri/olam-kg-service@sha256:72030f3054315e7ebf575f6dcb9b4965e1ddee13ea7bfdeb0bde32253beeb1c7
64
+ image: ghcr.io/pleri/olam-kg-service@sha256:72fdfb96981903cd83d0b6ad997985bad86a7892c0d1ec7c5dcc9b4d9f8f44db
65
65
  imagePullPolicy: IfNotPresent
66
66
  securityContext:
67
67
  runAsNonRoot: true
@@ -68,7 +68,7 @@ spec:
68
68
  mountPath: /data
69
69
  containers:
70
70
  - name: olam-mcp-auth-service
71
- image: ghcr.io/pleri/olam-mcp-auth@sha256:4d4806e2aa7c782de60471a9742d9e85dcf9f5ba0af3c496c26ff7aab9847a43
71
+ image: ghcr.io/pleri/olam-mcp-auth@sha256:d8fb62e437142bf352e0d6f637c2b912baa592f25f4abbac1acc2c8cced976c2
72
72
  imagePullPolicy: IfNotPresent
73
73
  securityContext:
74
74
  runAsNonRoot: true
@@ -22,3 +22,14 @@ data:
22
22
  # AGENTMEMORY_HOST=0.0.0.0 but ConfigMap override is explicit defense against
23
23
  # a future image regression reverting to 127.0.0.1.
24
24
  AGENTMEMORY_HOST: "0.0.0.0"
25
+ # III_REST_PORT is the env var the agentmemory CLI wrapper reads when it
26
+ # polls its iii subprocess for readiness (cli.mjs:155 — `process.env
27
+ # ["III_REST_PORT"] || "3111"`). The iii engine itself binds the port
28
+ # declared in iii-config.yaml's iii-http worker (overridden via the
29
+ # olam-memory-service-iii-config ConfigMap to 3110, so it does not
30
+ # collide with the metrics-proxy on 3111). Without this env var the
31
+ # wrapper polls 3111 forever, prints "iii-engine did not become ready",
32
+ # and exits — entrypoint propagates the exit, container restarts, and
33
+ # the liveness probe returns 502 from the proxy (its backend was never
34
+ # up). Must equal the iii-http port in 35-configmap-iii-config.yaml.
35
+ III_REST_PORT: "3110"
@@ -0,0 +1,76 @@
1
+ # Overrides the iii-config.yaml shipped inside the agentmemory image so the
2
+ # iii engine binds the INTERNAL port (3110) instead of the EXTERNAL port
3
+ # (3111). The shipped yaml hardcodes `port: 3111` and the agentmemory CLI
4
+ # reads its bind from yaml (NOT from the AGENTMEMORY_PORT env var), so
5
+ # entrypoint.sh's `AGENTMEMORY_PORT=3110` override has no effect.
6
+ #
7
+ # Without this override, the engine and the metrics-proxy both try to bind
8
+ # 0.0.0.0:3111. The proxy starts first and wins the port; the engine fails
9
+ # silently. Probes to /agentmemory/livez hit the proxy and get forwarded to
10
+ # 127.0.0.1:3110, where nothing is listening — proxy returns 502, readiness
11
+ # fails, container restarts.
12
+ #
13
+ # Mounted at /usr/local/lib/node_modules/@agentmemory/agentmemory/dist/iii-config.yaml
14
+ # via subPath in 50-deployment.yaml.
15
+ apiVersion: v1
16
+ kind: ConfigMap
17
+ metadata:
18
+ name: olam-memory-service-iii-config
19
+ namespace: olam
20
+ labels:
21
+ app: olam-memory-service
22
+ olam.io/component: peripheral
23
+ data:
24
+ iii-config.yaml: |
25
+ workers:
26
+ - name: iii-http
27
+ config:
28
+ port: 3110
29
+ host: 0.0.0.0
30
+ default_timeout: 180000
31
+ cors:
32
+ allowed_origins: ["http://localhost:3111", "http://localhost:3113", "http://127.0.0.1:3111", "http://127.0.0.1:3113"]
33
+ allowed_methods: [GET, POST, PUT, DELETE, OPTIONS]
34
+ - name: iii-state
35
+ config:
36
+ adapter:
37
+ name: kv
38
+ config:
39
+ store_method: file_based
40
+ file_path: ./data/state_store.db
41
+ - name: iii-queue
42
+ config:
43
+ adapter:
44
+ name: builtin
45
+ - name: iii-pubsub
46
+ config:
47
+ adapter:
48
+ name: local
49
+ - name: iii-cron
50
+ config:
51
+ adapter:
52
+ name: kv
53
+ - name: iii-stream
54
+ config:
55
+ port: 3112
56
+ host: 0.0.0.0
57
+ adapter:
58
+ name: kv
59
+ config:
60
+ store_method: file_based
61
+ file_path: ./data/stream_store
62
+ - name: iii-observability
63
+ config:
64
+ enabled: true
65
+ service_name: agentmemory
66
+ exporter: memory
67
+ sampling_ratio: 1.0
68
+ metrics_enabled: true
69
+ logs_enabled: true
70
+ logs_console_output: true
71
+ - name: iii-exec
72
+ config:
73
+ watch:
74
+ - src/**/*.ts
75
+ exec:
76
+ - node dist/index.mjs
@@ -70,7 +70,7 @@ spec:
70
70
  # bootstrap-placeholder comment + run `npm run refresh:manifest-digests`
71
71
  # once ghcr.io/pleri/olam-memory-service has a real published digest.
72
72
  # bootstrap-placeholder: pre-publish; refresh after first release
73
- image: ghcr.io/pleri/olam-memory-service@sha256:2c31c0f1f93c6b9a3a6d7e94db91dbc9f99cfe17aa8088e594ef4b484b039066
73
+ image: ghcr.io/pleri/olam-memory-service@sha256:bc377f94911baff74f7b91c44ea471580fdfdc1947e757dd6f550675084312d6
74
74
  imagePullPolicy: IfNotPresent
75
75
  securityContext:
76
76
  runAsNonRoot: true
@@ -93,6 +93,13 @@ spec:
93
93
  mountPath: /data
94
94
  - name: tmp
95
95
  mountPath: /tmp
96
+ # Overrides the shipped iii-config.yaml so the engine binds the
97
+ # internal port (3110) instead of colliding with the metrics-proxy
98
+ # on 3111. See 35-configmap-iii-config.yaml for full rationale.
99
+ - name: iii-config-override
100
+ mountPath: /usr/local/lib/node_modules/@agentmemory/agentmemory/dist/iii-config.yaml
101
+ subPath: iii-config.yaml
102
+ readOnly: true
96
103
  readinessProbe:
97
104
  httpGet:
98
105
  # D15 (LOAD-BEARING): memory-service health path is /agentmemory/livez.
@@ -126,3 +133,6 @@ spec:
126
133
  claimName: olam-memory-data
127
134
  - name: tmp
128
135
  emptyDir: {}
136
+ - name: iii-config-override
137
+ configMap:
138
+ name: olam-memory-service-iii-config