agentlas 0.9.1 → 0.9.3

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.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.3 — 2026-07-20
4
+
5
+ - Preserve the terminal UI spinner lifecycle through the memory-output guard,
6
+ so completed one-shot Claude/Codex turns exit cleanly instead of throwing
7
+ after the model result has already been printed.
8
+ - Keep Agentlas Terminal focused on independent agent and team execution; this
9
+ release does not add an Agentlas One surface.
10
+
11
+ ## 0.9.2 — 2026-07-20
12
+
13
+ - Require the installed or Desktop-bundled Agentlas Core runtime to include the
14
+ canonical Workforce WorkOrder and Selection schemas before Terminal selects
15
+ it. Incomplete older bundles are skipped so another valid runtime candidate
16
+ can be used instead of failing immediately before execution.
17
+ - Pin cross-platform and npm publication gates to the same Agentlas OS v1.1.50
18
+ commit shipped by Agentlas Desktop 0.8.58.
19
+
3
20
  ## 0.9.1 — 2026-07-16
4
21
 
5
22
  - Record exactly one compact Memory Ticket receipt for every completed,
@@ -9,6 +9,11 @@ const { spawn, spawnSync } = require("node:child_process");
9
9
  const HARNESS_SCHEMA_VERSION = "agentlas.stormbreaker.goal-ultracode-harness.v1";
10
10
  const HARNESS_ID = "agentlas-core/stormbreaker-goal-ultracode";
11
11
  const HARNESS_MODE = "stormbreaker-goal-ultracode";
12
+ const CORE_RUNTIME_MARKERS = [
13
+ ["agentlas_cloud", "__main__.py"],
14
+ ["schemas", "workforce-work-order.schema.json"],
15
+ ["schemas", "workforce-selection.schema.json"],
16
+ ];
12
17
 
13
18
  const PY_BOOTSTRAP =
14
19
  "import os, runpy, sys; " +
@@ -23,11 +28,11 @@ function unique(values) {
23
28
  }
24
29
 
25
30
  function runtimeRoots(explicitRoot) {
31
+ if (explicitRoot) return unique([explicitRoot]);
26
32
  const binRoot = process.env.HEPHAESTUS_BIN
27
33
  ? path.dirname(path.dirname(path.resolve(process.env.HEPHAESTUS_BIN)))
28
34
  : null;
29
35
  const roots = [
30
- explicitRoot,
31
36
  process.env.HEPHAESTUS_RUNTIME_ROOT,
32
37
  binRoot,
33
38
  path.join(os.homedir(), ".agentlas", "runtime", "current"),
@@ -40,7 +45,9 @@ function runtimeRoots(explicitRoot) {
40
45
  function resolveCoreRuntimeRoot(explicitRoot) {
41
46
  for (const root of runtimeRoots(explicitRoot)) {
42
47
  try {
43
- if (fs.existsSync(path.join(root, "agentlas_cloud", "__main__.py"))) return root;
48
+ if (CORE_RUNTIME_MARKERS.every((segments) => fs.existsSync(path.join(root, ...segments)))) {
49
+ return root;
50
+ }
44
51
  } catch {
45
52
  // Continue to the next installed/bundled root.
46
53
  }
@@ -90,6 +90,7 @@ function makeMemoryGuard(ui, heading) {
90
90
  flush();
91
91
  ui.streamEnd();
92
92
  },
93
+ stopSpinner: (...a) => ui.stopSpinner(...a),
93
94
  tool: (...a) => ui.tool(...a),
94
95
  toolResult: (...a) => ui.toolResult(...a),
95
96
  info: (...a) => ui.info(...a),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentlas",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Agentlas agent terminal — chat with your installed AI agents and teams from the terminal, Claude Code style. Standalone: no desktop app required.",
5
5
  "bin": {
6
6
  "agentlas": "bin/agentlas.cjs"