@hilbras/omninode 2.0.0-alpha.16 → 2.0.0-alpha.17
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/README.md +11 -2
- package/dist/cli/index.js +23 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ existing intelligence; it does not try to become another model.
|
|
|
18
18
|
|
|
19
19
|
## Status
|
|
20
20
|
|
|
21
|
-
**v2.0.0-alpha.
|
|
21
|
+
**v2.0.0-alpha.17 — v2 Phase 17: Testing Expansion**
|
|
22
22
|
(the reliability & interoperability line: architecture → execution →
|
|
23
23
|
protocol → adapters → pipelines → providers → OmniHilbras → memory → reports) (the v2
|
|
24
24
|
roadmap is [docs/ROADMAP_V2.md](docs/ROADMAP_V2.md); the v1 plan is complete:
|
|
@@ -31,6 +31,15 @@ for the plan and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the design).
|
|
|
31
31
|
|
|
32
32
|
### What's new in v2 (so far)
|
|
33
33
|
|
|
34
|
+
- **Phase 17 — Testing Expansion**: an explicit, auditable **failure
|
|
35
|
+
matrix** covering every scenario the roadmap lists — provider
|
|
36
|
+
429/500/401, model unavailable, network loss, malformed gateway
|
|
37
|
+
responses, agent crash/timeout/missing executable, malformed JSONL,
|
|
38
|
+
huge output, corrupted persistence, duplicate execution, partial
|
|
39
|
+
pipeline failure, Remembera/OmniHilbras unavailable — plus duplicate
|
|
40
|
+
configuration names now rejected instead of silently shadowing, and
|
|
41
|
+
protocol diagnostics surfaced on task results. Details:
|
|
42
|
+
[TESTING.md](docs/TESTING.md).
|
|
34
43
|
- **Phase 16 — Configuration v2**: explicit precedence (CLI → env →
|
|
35
44
|
project file → user file → profile overlay → defaults), named
|
|
36
45
|
**profiles** (`development`/`production`/`testing`), `OMNINODE_*`
|
|
@@ -394,7 +403,7 @@ required for the core engine.
|
|
|
394
403
|
- [Architecture](docs/ARCHITECTURE.md) — module map, workflow, local state
|
|
395
404
|
- [Security model](docs/SECURITY.md) — secrets, process execution, env isolation, audit log
|
|
396
405
|
- [API stability policy](docs/API_STABILITY.md) and [public API inventory](docs/API.md)
|
|
397
|
-
- [Configuration](docs/CONFIGURATION.md) · [CLI guide](docs/CLI.md) · [Agent Protocol v2 spec](docs/PROTOCOL.md) · [Providers](docs/PROVIDERS.md) · [Memory](docs/MEMORY.md) · [Reports](docs/REPORTS.md) · [Persistence](docs/PERSISTENCE.md) · [Deprecations](docs/DEPRECATIONS.md) · [Changelog](CHANGELOG.md) · [v2 roadmap](docs/ROADMAP_V2.md)
|
|
406
|
+
- [Configuration](docs/CONFIGURATION.md) · [Testing & failure matrix](docs/TESTING.md) · [CLI guide](docs/CLI.md) · [Agent Protocol v2 spec](docs/PROTOCOL.md) · [Providers](docs/PROVIDERS.md) · [Memory](docs/MEMORY.md) · [Reports](docs/REPORTS.md) · [Persistence](docs/PERSISTENCE.md) · [Deprecations](docs/DEPRECATIONS.md) · [Changelog](CHANGELOG.md) · [v2 roadmap](docs/ROADMAP_V2.md)
|
|
398
407
|
- [Example project](examples/demo/) — a runnable end-to-end demo (`./demo.sh`)
|
|
399
408
|
|
|
400
409
|
Prefer a container? `docker build -t omninode .` then
|
package/dist/cli/index.js
CHANGED
|
@@ -23,7 +23,7 @@ import { realpathSync } from "fs";
|
|
|
23
23
|
import { Command } from "commander";
|
|
24
24
|
|
|
25
25
|
// src/version.ts
|
|
26
|
-
var OMNINODE_VERSION = "2.0.0-alpha.
|
|
26
|
+
var OMNINODE_VERSION = "2.0.0-alpha.17";
|
|
27
27
|
|
|
28
28
|
// src/cli/exit-codes.ts
|
|
29
29
|
var EXIT = {
|
|
@@ -346,6 +346,7 @@ function loadConfigDetailed(options = {}) {
|
|
|
346
346
|
{ details: { issues } }
|
|
347
347
|
);
|
|
348
348
|
}
|
|
349
|
+
assertUniqueNames(parsed.data);
|
|
349
350
|
return {
|
|
350
351
|
config: toAppConfig(parsed.data),
|
|
351
352
|
sources: {
|
|
@@ -357,6 +358,26 @@ function loadConfigDetailed(options = {}) {
|
|
|
357
358
|
}
|
|
358
359
|
};
|
|
359
360
|
}
|
|
361
|
+
function assertUniqueNames(data) {
|
|
362
|
+
const groups = [
|
|
363
|
+
["provider", data.project.providers.map((p) => p.name)],
|
|
364
|
+
["agent", data.project.agents.map((a) => a.name)],
|
|
365
|
+
["role", data.project.roles.map((r) => r.id)],
|
|
366
|
+
["pipeline", data.project.pipelines.map((p) => p.id)]
|
|
367
|
+
];
|
|
368
|
+
for (const [kind, names] of groups) {
|
|
369
|
+
const seen = /* @__PURE__ */ new Set();
|
|
370
|
+
for (const name of names) {
|
|
371
|
+
if (seen.has(name)) {
|
|
372
|
+
throw new ConfigError(
|
|
373
|
+
"CONFIG_INVALID",
|
|
374
|
+
`Duplicate ${kind} name "${name}" \u2014 every ${kind} must have a unique name.`
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
seen.add(name);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
360
381
|
function readConfigDocument(path2, optionsEnv) {
|
|
361
382
|
const raw = readFileSync(path2, "utf8");
|
|
362
383
|
const secretFindings = scanForInlineSecrets(raw);
|
|
@@ -2479,6 +2500,7 @@ var TaskEngine = class {
|
|
|
2479
2500
|
const result = {
|
|
2480
2501
|
...output.summary !== void 0 ? { summary: output.summary } : {},
|
|
2481
2502
|
...output.reports !== void 0 && output.reports.length > 0 ? { reports: output.reports } : {},
|
|
2503
|
+
...output.protocol !== void 0 ? { protocol: output.protocol } : {},
|
|
2482
2504
|
// Keep the verbatim output (bounded) for report extraction and audit.
|
|
2483
2505
|
...output.rawOutput !== void 0 && output.rawOutput.length > 0 ? { rawOutput: output.rawOutput.slice(0, 1e4) } : {},
|
|
2484
2506
|
...output.error !== void 0 ? { error: output.error } : {},
|