@ouro.bot/cli 0.1.0-alpha.733 → 0.1.0-alpha.735
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.json +34 -0
- package/deploy/unraid/Dockerfile +27 -0
- package/deploy/unraid/README.txt +1605 -0
- package/deploy/unraid/audit-container-spec.sh +4 -0
- package/deploy/unraid/container-runtime.json +1 -0
- package/deploy/unraid/sanctuary-acceptance-adapter.sh +37 -0
- package/deploy/unraid/sanctuary-acceptance-contract.json +200 -0
- package/deploy/unraid/sanctuary-acceptance-harness.sh +23 -0
- package/deploy/unraid/sanctuary-deployment-target.mjs +705 -0
- package/deploy/unraid/sanctuary-safe-rename.py +24 -0
- package/deploy/unraid/sanctuary-unit16-host-broker.mjs +1777 -0
- package/deploy/unraid/sanctuary-unit16-run.sh +502 -0
- package/deploy/unraid/sanctuary-unit18-target-audit.sh +27 -0
- package/deploy/unraid/sanctuary.ouro/agent.json +24 -0
- package/deploy/unraid/sanctuary.ouro/arc/README.md +3 -0
- package/deploy/unraid/sanctuary.ouro/bundle-meta.json +5 -0
- package/deploy/unraid/sanctuary.ouro/habits/sanctuary-health.md +8 -0
- package/deploy/unraid/sanctuary.ouro/provider-readiness.json +18 -0
- package/deploy/unraid/sanctuary.ouro/psyche/ASPIRATIONS.md +3 -0
- package/deploy/unraid/sanctuary.ouro/psyche/IDENTITY.md +3 -0
- package/deploy/unraid/sanctuary.ouro/psyche/LORE.md +3 -0
- package/deploy/unraid/sanctuary.ouro/psyche/SOUL.md +5 -0
- package/deploy/unraid/sanctuary.ouro/psyche/TACIT.md +7 -0
- package/deploy/unraid/sanctuary.ouro/tool-profiles.json +21 -0
- package/deploy/unraid/sanctuary.xml +25 -0
- package/dist/heart/approval-files.js +113 -0
- package/dist/heart/approval-store.js +168 -9
- package/dist/heart/auth/auth-flow.js +17 -1
- package/dist/heart/autonomy-budget.js +44 -1
- package/dist/heart/awaiting/await-scheduler.js +6 -2
- package/dist/heart/config.js +8 -0
- package/dist/heart/core.js +117 -132
- package/dist/heart/daemon/cli-exec.js +73 -1
- package/dist/heart/daemon/cli-help.js +5 -0
- package/dist/heart/daemon/cli-parse.js +6 -4
- package/dist/heart/daemon/container-credential-bootstrap.js +208 -0
- package/dist/heart/daemon/container-healthcheck.js +94 -0
- package/dist/heart/daemon/container-runtime.js +84 -0
- package/dist/heart/daemon/container-spec-auditor-main.js +156 -0
- package/dist/heart/daemon/container-spec-auditor.js +156 -0
- package/dist/heart/daemon/daemon-bootstrap-startup.js +41 -0
- package/dist/heart/daemon/daemon-entry.js +116 -28
- package/dist/heart/daemon/daemon-health.js +10 -0
- package/dist/heart/daemon/daemon.js +92 -5
- package/dist/heart/daemon/runtime-logging.js +6 -0
- package/dist/heart/daemon/runtime-mode.js +13 -2
- package/dist/heart/daemon/sanctuary-acceptance-adapter.js +2365 -0
- package/dist/heart/daemon/sanctuary-acceptance-harness.js +1624 -0
- package/dist/heart/daemon/sanctuary-acceptance-marker.js +267 -0
- package/dist/heart/daemon/sanctuary-acceptance-scenarios.js +985 -0
- package/dist/heart/daemon/sanctuary-scheduler-liveness.js +227 -0
- package/dist/heart/daemon/sanctuary-scheduler-origin.js +126 -0
- package/dist/heart/daemon/sense-manager.js +25 -6
- package/dist/heart/daemon/supercronic-supervisor.js +267 -0
- package/dist/heart/habits/habit-scheduler.js +7 -3
- package/dist/heart/identity.js +13 -3
- package/dist/heart/provider-credentials.js +9 -1
- package/dist/heart/provider-models.js +8 -0
- package/dist/heart/provider-ping.js +5 -2
- package/dist/heart/providers/openai-compatible.js +177 -0
- package/dist/heart/runtime-credentials.js +217 -8
- package/dist/heart/sense-truth.js +2 -0
- package/dist/heart/tool-approval.js +1 -0
- package/dist/heart/turn-context.js +8 -0
- package/dist/mind/prompt.js +9 -0
- package/dist/nerves/coverage/source-scanner.js +4 -4
- package/dist/nerves/index.js +75 -9
- package/dist/nerves/runtime.js +12 -0
- package/dist/repertoire/tool-arguments.js +39 -0
- package/dist/repertoire/tools-unraid.js +353 -0
- package/dist/repertoire/tools.js +19 -1
- package/dist/repertoire/unraid-client.js +155 -0
- package/dist/repertoire/unraid-restart.js +130 -0
- package/dist/senses/private-runtime-worker.js +3 -2
- package/dist/senses/sanctuary-grounding.js +118 -0
- package/dist/senses/sanctuary-health-acceptance-probe-entry.js +12 -0
- package/dist/senses/sanctuary-health-acceptance-probe.js +772 -0
- package/dist/senses/sanctuary-health-runner.js +146 -0
- package/dist/senses/sanctuary-health.js +447 -0
- package/dist/senses/sanctuary-interactive-control.js +306 -0
- package/dist/senses/sanctuary-runtime.js +206 -0
- package/dist/senses/shared-turn.js +11 -3
- package/dist/senses/telegram-approval-runtime.js +526 -0
- package/dist/senses/telegram-audit-ledger.js +220 -0
- package/dist/senses/telegram-client.js +1471 -0
- package/dist/senses/telegram-entry.js +80 -0
- package/dist/senses/telegram.js +1232 -0
- package/npm-shrinkwrap.json +6558 -0
- package/package.json +4 -2
package/changelog.json
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.1.0-alpha.735",
|
|
6
|
+
"changes": [
|
|
7
|
+
"Repair Mendelow Cloud Butler for Sanctuary's Unraid legacy adoption with an explicit source-to-target machine identity migration that validates the complete credential envelope before applying only in-memory canonical clones while preserving the original source for recovery and the shipped durable approvals contract.",
|
|
8
|
+
"Split adoption into resumable preparation, hidden-input provider authentication, strict live GLM/Gemini readiness, and a noninteractive final install that revalidates the exact legacy container and image immediately before mutation.",
|
|
9
|
+
"Make legacy evidence capture restart-safe with exact container/image-bound validation, private atomic no-overwrite publication, deterministic partial-snapshot reuse, and fail-closed rejection of conflicting or unsafe evidence.",
|
|
10
|
+
"Supersede 0.1.0-alpha.734 before deployment; it must not be built, imported, or installed on Sanctuary."
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"version": "0.1.0-alpha.734",
|
|
15
|
+
"changes": [
|
|
16
|
+
"Ship Mendelow Cloud Butler for Sanctuary with an authorized durable Telegram inbox, restart-safe durable approvals, scoped Unraid read/restart tools, and transition-based proactive health alerts.",
|
|
17
|
+
"Pin the packaged Sanctuary agent to GLM-5.2 through the locked OpenAI-compatible provider in both outward and inner lanes; MiniMax is not a deployment fallback.",
|
|
18
|
+
"Fence ambiguous Telegram update, approval-prompt, approved-action, and alert-delivery crash windows so protected effects are never blindly replayed.",
|
|
19
|
+
"Route every packaged deterministic Sanctuary health source through one native daemon-owned Supercronic lifecycle with namespace-isolated manifests, exact readiness verification, durable occurrence receipts/cursors, habit-wide overlap rejection, coordinated shutdown, no model turn, and no verified-schedule timer fallback.",
|
|
20
|
+
"Consume each authenticated Sanctuary scheduler slot through a crash-durable no-replace claim before any health effect, keep Unit 16f strictly observer-only across failure and recovery, verify complete scheduler and owner attestations before host finalization, and fsync new receipt directories plus temporary cleanup across crash boundaries.",
|
|
21
|
+
"Package a reproducible non-root Unraid image and canonical Mendelow Cloud Butler bundle/template, pin production dependencies, reject stale or ambiguous server state, and strictly validate then conflict-reconcile one-time container credentials into the canonical vault before attested readback, cache activation, or source deletion; interrupted claims remain recoverable and bootstrap failure exits PID 1 nonzero.",
|
|
22
|
+
"Fail closed before handler dispatch when a provider emits malformed, duplicate, mixed-validity, or unadvertised tool calls; scope the typed Unraid Telegram profile to Sanctuary while preserving generic Telegram agents, and discard secret-bearing transport error objects after redaction.",
|
|
23
|
+
"Audit staged Unraid templates plus actual image and stopped-container inspect records against the exact immutable local Docker image ID, image environment, direct daemon command, non-root user, exact two writable roots, host networking, updater-off policy, and absence of ports, devices, capabilities, or injected container flags before activation; preserve one Telegram poller through bounded-readiness cutover, rollback, restore, and atomic Unraid autostart readback.",
|
|
24
|
+
"Consume approval decision tokens before continuation work and persist token-free terminal tombstones so failed callbacks cannot replay within the same process or after restart.",
|
|
25
|
+
"Give each agent an independently enforced paid habit budget, route health alerts through bounded private turns, and durably resume cached delivery payloads without replaying ambiguous sends.",
|
|
26
|
+
"Close final butler runtime coverage gaps with behavioral contracts and no production coverage suppressions, keep Supercronic single-owned when start races a pending restart, preserve idempotent prompt-binding abandonment records, initialize daemon heartbeat shutdown exactly once, remove duplicate post-schema validation branches in the core tool loop, and guard every update, staging, production, and restore activation boundary with fault-injected failure propagation, immediate temporary cleanup, and verified rollback before autostart changes persist.",
|
|
27
|
+
"Keep Telegram identities, approval bindings, and durable inbox receipts opaque across token rotation and legacy migration; proactively terminalize expired approvals, isolate per-record recovery failures, join active dispatch before shutdown, and retain exactly-once fences without persisting raw Telegram envelopes.",
|
|
28
|
+
"Ship a packaged non-logging Sanctuary acceptance harness for Telegram bootstrap, opaque evidence deltas, callback concurrency and replay, exact-set Unraid key rotation, and reboot-resume proof; make legacy cutover, provider readiness, backup restore, autostart, rollback, and credential retirement fail closed against the exact live Unraid topology before mutation.",
|
|
29
|
+
"Complete the operator-only Sanctuary acceptance gate with a fixed packaged contract, bounded subprocess and Telegram calls, a redacted full-matrix evidence index/verifier, live-shape Unraid key adapters, exact two-credential retirement, authenticated WebGUI autostart updates, cached-vault reuse, and fail-closed legacy-envelope import before provider readiness.",
|
|
30
|
+
"Bind the final Sanctuary proof to exact packaged harness bytes, complete per-operation evidence, sealed continuity coordinates, exact Unraid key identities and capability outcomes, and bounded host-side retirement adapters without exposing credential material or broad host control.",
|
|
31
|
+
"Make Unit16f wait for a real scheduler-origin Sanctuary health sweep, authenticate the exact live Supercronic parent and cron slot with Sanctuary identity material, bind the durable receipt to daemon-issued occurrence and runner identities plus the supervised single-child PID 1 manifest snapshot, and reject missing, duplicate, manual, paid, delivered, forged, or replayed evidence.",
|
|
32
|
+
"Keep approval expiry observation on absolute one-second deadlines independently of per-prompt Telegram edit retries, preserve authenticated expiry tombstones through restart, and compose the real durable prompt, callback, continuation, terminal-edit, and stale-tap lifecycle in tests.",
|
|
33
|
+
"Persist and authenticate the first approval-expiry observation before any side effect or callback acknowledgement, make that durable observation permanently terminal even across wall-clock rollback, roll back transient persistence failures for exact same-process retry, serialize callback, recovery, and tombstone-purge terminalization, MAC-bind tombstone, stale-tap, decision-attempt, late-terminal outcome, and deterministic settlement-receipt state, enforce one lifecycle-aware structural invariant across every callback and cleanup path so partial authority, expiry, tombstone, and delivery-interruption records fail closed, retain decision authority through an unfiltered append-and-rotation fsynced audit barrier for every approval, truthfully distinguish acknowledged, Telegram-rejected, and restart-indeterminate settlement, fail startup rather than orphan-clean an unrecovered decision fence, and prove approve/deny post-TTL recovery through real durable stores.",
|
|
34
|
+
"Pin each Telegram effect to one acceptance-scenario observation before its initial audit barrier, rotate healthy owners only at quiescent boundaries, reject marker changes before any effect can run, and bind delayed socket and timer callbacks to the scenario active when they execute.",
|
|
35
|
+
"Preserve and directly verify every fail-closed Sanctuary approval, restart, audit-lease, socket, filesystem-race, malformed-state, settlement, canonical-path, and quarantine-cleanup invariant at complete cross-platform branch coverage; remove dominated fallbacks only where owning workflows make them unreachable, keep receipts, active-marker facts, and marker lifecycle operations bound to one configured agent root, introduce cohesive production filesystem, loopback-server, process, and CLI boundaries for deterministic fault handling, normalize required health-probe dependencies without discarding optional overrides, and build-smoke the actual packaged process entry with canonical stderr and no logging leakage."
|
|
36
|
+
]
|
|
37
|
+
},
|
|
4
38
|
{
|
|
5
39
|
"version": "0.1.0-alpha.733",
|
|
6
40
|
"changes": [
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
FROM node:22-bookworm-slim
|
|
2
|
+
|
|
3
|
+
ARG SUPERCRONIC_SHA256=5adff01c5a797663948e656d2b61d10932369ee437eb5cb54fa872b2960f222b
|
|
4
|
+
RUN apt-get update \
|
|
5
|
+
&& apt-get install -y --no-install-recommends ca-certificates curl procps python3 make g++ \
|
|
6
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
7
|
+
&& curl -fsSLo /usr/local/bin/supercronic https://github.com/aptible/supercronic/releases/download/v0.2.46/supercronic-linux-amd64 \
|
|
8
|
+
&& echo "${SUPERCRONIC_SHA256} /usr/local/bin/supercronic" | sha256sum -c - \
|
|
9
|
+
&& chmod 0755 /usr/local/bin/supercronic \
|
|
10
|
+
&& groupadd --gid 10001 ouro \
|
|
11
|
+
&& useradd --uid 10001 --gid 10001 --home-dir /home/ouro --create-home --shell /usr/sbin/nologin ouro
|
|
12
|
+
|
|
13
|
+
WORKDIR /opt/ouro
|
|
14
|
+
COPY package.json npm-shrinkwrap.json ./
|
|
15
|
+
RUN npm ci --omit=dev --workspaces=false --no-audit --no-fund
|
|
16
|
+
COPY dist ./dist
|
|
17
|
+
COPY assets ./assets
|
|
18
|
+
COPY skills ./skills
|
|
19
|
+
COPY changelog.json ./changelog.json
|
|
20
|
+
COPY deploy/unraid/container-runtime.json ./container-runtime.json
|
|
21
|
+
COPY deploy/unraid /opt/ouro/deploy/unraid
|
|
22
|
+
RUN chown -R 10001:10001 /opt/ouro /home/ouro
|
|
23
|
+
|
|
24
|
+
USER 10001:10001
|
|
25
|
+
ENV HOME=/home/ouro
|
|
26
|
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 CMD ["node","/opt/ouro/dist/heart/daemon/container-healthcheck.js","--agent","sanctuary"]
|
|
27
|
+
ENTRYPOINT ["node","/opt/ouro/dist/heart/daemon/daemon-entry.js"]
|