roboz 0.1.2a1__tar.gz
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.
- roboz-0.1.2a1/.gitignore +54 -0
- roboz-0.1.2a1/CHANGELOG.md +261 -0
- roboz-0.1.2a1/LICENSE +201 -0
- roboz-0.1.2a1/PKG-INFO +358 -0
- roboz-0.1.2a1/README.md +329 -0
- roboz-0.1.2a1/docs/catalogues.md +171 -0
- roboz-0.1.2a1/pyproject.toml +79 -0
- roboz-0.1.2a1/src/roboz/__init__.py +48 -0
- roboz-0.1.2a1/src/roboz/__init__.pyi +20 -0
- roboz-0.1.2a1/src/roboz/_naming.py +19 -0
- roboz-0.1.2a1/src/roboz/agent/__init__.py +28 -0
- roboz-0.1.2a1/src/roboz/agent/_execution_context.py +53 -0
- roboz-0.1.2a1/src/roboz/agent/_identifiers.py +15 -0
- roboz-0.1.2a1/src/roboz/agent/_notifications.py +25 -0
- roboz-0.1.2a1/src/roboz/agent/_prompts.py +173 -0
- roboz-0.1.2a1/src/roboz/agent/_tool_observer.py +159 -0
- roboz-0.1.2a1/src/roboz/agent/background_agent.py +167 -0
- roboz-0.1.2a1/src/roboz/agent/core.py +838 -0
- roboz-0.1.2a1/src/roboz/agent/prompt_agent_tool.py +57 -0
- roboz-0.1.2a1/src/roboz/agent/subagent.py +24 -0
- roboz-0.1.2a1/src/roboz/dependencies.py +122 -0
- roboz-0.1.2a1/src/roboz/deployment.py +408 -0
- roboz-0.1.2a1/src/roboz/endpoints/README.md +140 -0
- roboz-0.1.2a1/src/roboz/endpoints/__init__.py +5 -0
- roboz-0.1.2a1/src/roboz/endpoints/__main__.py +7 -0
- roboz-0.1.2a1/src/roboz/endpoints/_inventory_codec.py +260 -0
- roboz-0.1.2a1/src/roboz/endpoints/_inventory_codegen.py +126 -0
- roboz-0.1.2a1/src/roboz/endpoints/adapters/__init__.py +1 -0
- roboz-0.1.2a1/src/roboz/endpoints/adapters/openai_compatible.py +256 -0
- roboz-0.1.2a1/src/roboz/endpoints/catalog.py +89 -0
- roboz-0.1.2a1/src/roboz/endpoints/catalog.pyi +35 -0
- roboz-0.1.2a1/src/roboz/endpoints/cli.py +265 -0
- roboz-0.1.2a1/src/roboz/endpoints/env.py +134 -0
- roboz-0.1.2a1/src/roboz/endpoints/inventory.py +63 -0
- roboz-0.1.2a1/src/roboz/endpoints/inventory.pyi +37 -0
- roboz-0.1.2a1/src/roboz/endpoints/specs.py +40 -0
- roboz-0.1.2a1/src/roboz/examples/__init__.py +1 -0
- roboz-0.1.2a1/src/roboz/examples/complex.py +72 -0
- roboz-0.1.2a1/src/roboz/examples/simple.py +36 -0
- roboz-0.1.2a1/src/roboz/examples/simpsons_quotes.py +44 -0
- roboz-0.1.2a1/src/roboz/exceptions.py +120 -0
- roboz-0.1.2a1/src/roboz/llm/__init__.py +58 -0
- roboz-0.1.2a1/src/roboz/llm/_diagnostics.py +521 -0
- roboz-0.1.2a1/src/roboz/llm/_retry.py +118 -0
- roboz-0.1.2a1/src/roboz/llm/_truncation.py +125 -0
- roboz-0.1.2a1/src/roboz/llm/binding.py +86 -0
- roboz-0.1.2a1/src/roboz/llm/calls.py +766 -0
- roboz-0.1.2a1/src/roboz/llm/completion.py +325 -0
- roboz-0.1.2a1/src/roboz/llm/endpoints.py +444 -0
- roboz-0.1.2a1/src/roboz/llm/openai_compatible.py +144 -0
- roboz-0.1.2a1/src/roboz/llm/openrouter.py +92 -0
- roboz-0.1.2a1/src/roboz/llm/prompts.py +79 -0
- roboz-0.1.2a1/src/roboz/models/__init__.py +65 -0
- roboz-0.1.2a1/src/roboz/models/_schema.py +82 -0
- roboz-0.1.2a1/src/roboz/models/_serialization.py +60 -0
- roboz-0.1.2a1/src/roboz/models/_telemetry.py +26 -0
- roboz-0.1.2a1/src/roboz/models/core.py +179 -0
- roboz-0.1.2a1/src/roboz/models/messages.py +53 -0
- roboz-0.1.2a1/src/roboz/models/truncation.py +68 -0
- roboz-0.1.2a1/src/roboz/py.typed +1 -0
- roboz-0.1.2a1/src/roboz/runtime/__init__.py +82 -0
- roboz-0.1.2a1/src/roboz/runtime/_environment.py +19 -0
- roboz-0.1.2a1/src/roboz/runtime/_external.py +340 -0
- roboz-0.1.2a1/src/roboz/runtime/_logging.py +87 -0
- roboz-0.1.2a1/src/roboz/runtime/_paths.py +60 -0
- roboz-0.1.2a1/src/roboz/runtime/events.py +84 -0
- roboz-0.1.2a1/src/roboz/runtime/io.py +118 -0
- roboz-0.1.2a1/src/roboz/runtime/observability.py +108 -0
- roboz-0.1.2a1/src/roboz/runtime/persistence/__init__.py +39 -0
- roboz-0.1.2a1/src/roboz/runtime/persistence/activity.py +106 -0
- roboz-0.1.2a1/src/roboz/runtime/persistence/schema.py +155 -0
- roboz-0.1.2a1/src/roboz/runtime/pipe.py +384 -0
- roboz-0.1.2a1/src/roboz/runtime/sinks.py +277 -0
- roboz-0.1.2a1/src/roboz/shed/__init__.py +1 -0
- roboz-0.1.2a1/src/roboz/shed/agents/__init__.py +6 -0
- roboz-0.1.2a1/src/roboz/shed/agents/librarian.py +50 -0
- roboz-0.1.2a1/src/roboz/shed/agents/orchestrator.py +49 -0
- roboz-0.1.2a1/src/roboz/shed/capabilities.py +354 -0
- roboz-0.1.2a1/src/roboz/shed/dependency_health.py +328 -0
- roboz-0.1.2a1/src/roboz/shed/deployments/__init__.py +5 -0
- roboz-0.1.2a1/src/roboz/shed/deployments/robosprawl.py +75 -0
- roboz-0.1.2a1/src/roboz/shed/identifiers.py +30 -0
- roboz-0.1.2a1/src/roboz/shed/models.py +242 -0
- roboz-0.1.2a1/src/roboz/shed/sandbox.py +226 -0
- roboz-0.1.2a1/src/roboz/shed/skills/__init__.py +8 -0
- roboz-0.1.2a1/src/roboz/shed/skills/cli_tools/__init__.py +10 -0
- roboz-0.1.2a1/src/roboz/shed/skills/cli_tools/prompts.py +195 -0
- roboz-0.1.2a1/src/roboz/shed/skills/email_tools/__init__.py +10 -0
- roboz-0.1.2a1/src/roboz/shed/skills/email_tools/prompts.py +125 -0
- roboz-0.1.2a1/src/roboz/shed/skills/file_editing/__init__.py +27 -0
- roboz-0.1.2a1/src/roboz/shed/skills/file_editing/prompts.py +149 -0
- roboz-0.1.2a1/src/roboz/shed/skills/robosprawl.py +143 -0
- roboz-0.1.2a1/src/roboz/shed/tools/__init__.py +52 -0
- roboz-0.1.2a1/src/roboz/shed/tools/_snapshot_metadata.py +90 -0
- roboz-0.1.2a1/src/roboz/shed/tools/apply_patch.py +194 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/__init__.py +23 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/run_file_command/__init__.py +12 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/run_file_command/command.py +162 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/run_file_command/resolve.py +388 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/run_file_command/specs.py +131 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/utilities/__init__.py +80 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/utilities/cmd_spec.py +48 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/utilities/constants.py +36 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/utilities/formatting.py +252 -0
- roboz-0.1.2a1/src/roboz/shed/tools/cli_commands/utilities/path_extractors.py +179 -0
- roboz-0.1.2a1/src/roboz/shed/tools/compactification/__init__.py +35 -0
- roboz-0.1.2a1/src/roboz/shed/tools/compactification/compactify_messages.py +260 -0
- roboz-0.1.2a1/src/roboz/shed/tools/compactification/prompts.py +107 -0
- roboz-0.1.2a1/src/roboz/shed/tools/compactification/summarize.py +279 -0
- roboz-0.1.2a1/src/roboz/shed/tools/compactification/summary_prompts.py +61 -0
- roboz-0.1.2a1/src/roboz/shed/tools/consolidate_memory.py +287 -0
- roboz-0.1.2a1/src/roboz/shed/tools/consolidate_memory_example.py +110 -0
- roboz-0.1.2a1/src/roboz/shed/tools/consolidate_memory_prompts.py +110 -0
- roboz-0.1.2a1/src/roboz/shed/tools/contexts.py +170 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/__init__.py +54 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/contracts.py +244 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/drafts.py +414 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/factory.py +266 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/inputs.py +66 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/messages.py +248 -0
- roboz-0.1.2a1/src/roboz/shed/tools/email/runtime.py +31 -0
- roboz-0.1.2a1/src/roboz/shed/tools/guard.py +161 -0
- roboz-0.1.2a1/src/roboz/shed/tools/guard_formatting.py +58 -0
- roboz-0.1.2a1/src/roboz/shed/tools/librarian_errors.py +8 -0
- roboz-0.1.2a1/src/roboz/shed/tools/memory_files.py +117 -0
- roboz-0.1.2a1/src/roboz/shed/tools/purge_files.py +98 -0
- roboz-0.1.2a1/src/roboz/shed/tools/runner.py +251 -0
- roboz-0.1.2a1/src/roboz/shed/tools/sleep_between_runs.py +63 -0
- roboz-0.1.2a1/src/roboz/shed/tools/snapshot_conversation_example.py +38 -0
- roboz-0.1.2a1/src/roboz/shed/tools/snapshot_conversation_prompts.py +89 -0
- roboz-0.1.2a1/src/roboz/shed/tools/snapshot_conversations.py +320 -0
- roboz-0.1.2a1/src/roboz/shed/tools/snapshot_normalize.py +61 -0
- roboz-0.1.2a1/src/roboz/shed/tools/stop_when_watched_agents_inactive.py +50 -0
- roboz-0.1.2a1/src/roboz/shed/tools/truncation.py +20 -0
- roboz-0.1.2a1/src/roboz/shed/tools/types.py +30 -0
- roboz-0.1.2a1/src/roboz/shed/tools/utils.py +252 -0
- roboz-0.1.2a1/src/roboz/skill/__init__.py +5 -0
- roboz-0.1.2a1/src/roboz/skill/_prompts.py +50 -0
- roboz-0.1.2a1/src/roboz/skill/core.py +140 -0
- roboz-0.1.2a1/src/roboz/tooling/__init__.py +14 -0
- roboz-0.1.2a1/src/roboz/tooling/_prompts.py +124 -0
- roboz-0.1.2a1/src/roboz/tooling/_protocols.py +68 -0
- roboz-0.1.2a1/src/roboz/tooling/_typing.py +20 -0
- roboz-0.1.2a1/src/roboz/tooling/context.py +39 -0
- roboz-0.1.2a1/src/roboz/tooling/core.py +304 -0
- roboz-0.1.2a1/src/roboz/tooling/decorators.py +243 -0
- roboz-0.1.2a1/src/roboz/tools/__init__.py +20 -0
- roboz-0.1.2a1/src/roboz/tools/_identifiers.py +8 -0
- roboz-0.1.2a1/src/roboz/tools/control.py +54 -0
- roboz-0.1.2a1/src/roboz/tools/interaction.py +60 -0
roboz-0.1.2a1/.gitignore
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Python bytecode
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Virtual environments and local configuration
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
.env
|
|
10
|
+
.env.*
|
|
11
|
+
!.env.example
|
|
12
|
+
|
|
13
|
+
# Tests, coverage, and static analysis
|
|
14
|
+
.coverage
|
|
15
|
+
.coverage.*
|
|
16
|
+
htmlcov/
|
|
17
|
+
coverage.xml
|
|
18
|
+
junit.xml
|
|
19
|
+
.pytest_cache/
|
|
20
|
+
.ruff_cache/
|
|
21
|
+
.mypy_cache/
|
|
22
|
+
.pyright/
|
|
23
|
+
.hypothesis/
|
|
24
|
+
.tox/
|
|
25
|
+
.nox/
|
|
26
|
+
|
|
27
|
+
# Packaging and generated documentation
|
|
28
|
+
build/
|
|
29
|
+
dist/
|
|
30
|
+
wheels/
|
|
31
|
+
*.egg-info/
|
|
32
|
+
.eggs/
|
|
33
|
+
site/
|
|
34
|
+
|
|
35
|
+
# Local font sources used to generate outlined branding
|
|
36
|
+
/*.otf
|
|
37
|
+
/*.ttf
|
|
38
|
+
|
|
39
|
+
# Editors and operating systems
|
|
40
|
+
.idea/
|
|
41
|
+
.vscode/
|
|
42
|
+
.VSCodeCounter/
|
|
43
|
+
*.swp
|
|
44
|
+
*.swo
|
|
45
|
+
*~
|
|
46
|
+
.DS_Store
|
|
47
|
+
Thumbs.db
|
|
48
|
+
|
|
49
|
+
# Robozium local runtime output
|
|
50
|
+
rbz_data/
|
|
51
|
+
worktrees/
|
|
52
|
+
|
|
53
|
+
# CI diagnostics
|
|
54
|
+
reports/
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.1.2a1 - 2026-09-23
|
|
6
|
+
|
|
7
|
+
- Add password-encrypted `.env.encrypt` output beside an untouched `.env`,
|
|
8
|
+
with a hidden-password CLI command, explicit loading, and deferred endpoint
|
|
9
|
+
loading. Plaintext dotenv files remain supported.
|
|
10
|
+
|
|
11
|
+
- Breaking: replace the endpoint inventory `export`, `import`, and `reset`
|
|
12
|
+
commands with `init` and `generate`. Project JSON remains the editable source;
|
|
13
|
+
generated Python refreshes without `--force` while unrelated files remain
|
|
14
|
+
protected. Bundled and generated catalogues retain typed model autocomplete.
|
|
15
|
+
|
|
16
|
+
## 0.1.2.dev12 - 2026-09-21
|
|
17
|
+
|
|
18
|
+
- Breaking: consolidate core, Shed, and Endpoints into the `roboz`
|
|
19
|
+
distribution. Replace `roboshed` imports with `roboz.shed` and
|
|
20
|
+
`roboz_endpoints` imports with `roboz.endpoints`; no compatibility packages
|
|
21
|
+
or forwarding namespaces are provided.
|
|
22
|
+
- Install the OpenAI SDK as a required dependency while retaining deferred
|
|
23
|
+
endpoint client construction and credential-free imports. Remove package
|
|
24
|
+
extras and the `roboz-endpoints` executable; manage catalogues with
|
|
25
|
+
`python -m roboz.endpoints inventory`.
|
|
26
|
+
- Exclude Proton Bridge from the consolidated distribution. Its pre-migration
|
|
27
|
+
implementation and development setup remain preserved on the
|
|
28
|
+
`wip/proton-bridge` branch.
|
|
29
|
+
- Consolidate package documentation into the main README and move the detailed
|
|
30
|
+
project catalogue guide to `docs/catalogues.md`.
|
|
31
|
+
|
|
32
|
+
## 0.1.2.dev11 - 2026-09-21
|
|
33
|
+
|
|
34
|
+
- Ship the simple and complex examples in `roboz.examples`, so installed users
|
|
35
|
+
can run the credential-free agent demo with `python -m roboz.examples.simple`
|
|
36
|
+
without cloning the repository.
|
|
37
|
+
|
|
38
|
+
## 0.1.2.dev10 - 2026-09-21
|
|
39
|
+
|
|
40
|
+
- Define default tools as scheduler-owned chain roots: downstream tools can now
|
|
41
|
+
reference a default-only parent with `chained_to`, while defaults that are
|
|
42
|
+
themselves chained downstream are rejected during agent construction.
|
|
43
|
+
|
|
44
|
+
## 0.1.2.dev9 - 2026-09-20
|
|
45
|
+
|
|
46
|
+
- Remove the leftover `proton-bridge-beta` installation extra. Install
|
|
47
|
+
`roboz-proton-bridge` directly, consistently with the other independently
|
|
48
|
+
published companion distributions.
|
|
49
|
+
|
|
50
|
+
- Make images and links in the published package description resolve outside
|
|
51
|
+
the GitHub repository.
|
|
52
|
+
|
|
53
|
+
## 0.1.2.dev8 - 2026-09-20
|
|
54
|
+
|
|
55
|
+
- Breaking: remove the legacy agent master tool. Model-driven agents run
|
|
56
|
+
their configured default tools followed by the built-in `prompt_agent` tool;
|
|
57
|
+
deterministic agents require and run only their configured default tools.
|
|
58
|
+
Use `default_tools` to configure deterministic steps instead of relying on
|
|
59
|
+
the removed `master_tool` attribute.
|
|
60
|
+
|
|
61
|
+
- Show every displayed tool's external dependency IDs and kinds in
|
|
62
|
+
`Agent.show_agent_info()`.
|
|
63
|
+
|
|
64
|
+
## 0.1.2.dev7 - 2026-09-20
|
|
65
|
+
|
|
66
|
+
- Breaking: replace the `is_agentic` boolean with the string-valued
|
|
67
|
+
`AgentMode.DETERMINISTIC`, `.STEERABLE`, or `.AUTONOMOUS` enum (the default
|
|
68
|
+
remains steerable). Autonomous agents use model-driven scheduling without a
|
|
69
|
+
user-input tool or direct user-interaction sidecar; their tools communicate
|
|
70
|
+
through the event pipe. Remove `interaction_mode` arguments and
|
|
71
|
+
`set_interaction_mode` calls: invocation uses a bound host channel, defaulting
|
|
72
|
+
to CLI, and restores the previous binding automatically. Registering a
|
|
73
|
+
`UserIO` adapter selects `Output.API` for the binding's lifetime.
|
|
74
|
+
`AgentMode` now lives in `roboz.models`; the existing `roboz.agent` export
|
|
75
|
+
remains available for compatibility.
|
|
76
|
+
|
|
77
|
+
- Run each configured default tool exactly once per cycle for deterministic agents.
|
|
78
|
+
Model-driven agents retain their master-tool step.
|
|
79
|
+
|
|
80
|
+
- Filter conversation history with `roboz.models.filter_messages` by role,
|
|
81
|
+
requested action, or result caller while retaining message order and metadata.
|
|
82
|
+
|
|
83
|
+
- Call `get_completion(endpoint=..., messages=...)` directly without an API
|
|
84
|
+
callback. `MockLLMEndpoint` now accepts literal text responses as well as JSON
|
|
85
|
+
objects and exceptions.
|
|
86
|
+
- Breaking: completions without an output model or tool list now return raw text
|
|
87
|
+
verbatim instead of attempting action validation. Supply `LlmOutputModel=...`
|
|
88
|
+
or `active_tools=...` to retain structured dictionary results and repair retries.
|
|
89
|
+
Endpoint and callback arguments are mutually exclusive. See the
|
|
90
|
+
[completion guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/tool-authoring.md#standalone-llm-backed-tools).
|
|
91
|
+
|
|
92
|
+
## 0.1.2.dev6 - 2026-09-15
|
|
93
|
+
|
|
94
|
+
- Breaking: make the `roboz` root a lazy authoring facade. It now exports only
|
|
95
|
+
`Agent`, `Skill`, `Tool`, `Factory`, `tool`, and `factory` alongside discoverable
|
|
96
|
+
domain namespaces. Import models from `roboz.models`, agent helpers from
|
|
97
|
+
`roboz.agent`, built-in tools from `roboz.tools`, and context protocols from
|
|
98
|
+
`roboz.tooling`. See [the import migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/imports.md).
|
|
99
|
+
|
|
100
|
+
## 0.1.2.dev5 - 2026-09-13
|
|
101
|
+
|
|
102
|
+
- Add `LLMEndpointRoute`, a typed live-selection layer above concrete chat
|
|
103
|
+
endpoints. Routes retain a caller-owned endpoint getter, report the current
|
|
104
|
+
selected resource without initializing clients, and resolve once per model
|
|
105
|
+
operation so in-flight calls retain their endpoint. Request and OpenRouter
|
|
106
|
+
policies support routes while keeping fixed endpoint use unchanged.
|
|
107
|
+
|
|
108
|
+
- Inspect a configured deployment with `DeployableAgent.external_dependencies()`.
|
|
109
|
+
It builds fresh, unstarted agents without event sinks and delegates to their
|
|
110
|
+
existing tool inspection, including child agents and skill resources. Capability
|
|
111
|
+
construction still runs normally; no additional dependency declaration is required.
|
|
112
|
+
|
|
113
|
+
- Initialize factory contexts lazily on invocation through the optional
|
|
114
|
+
`Materializable.materialize() -> Self` protocol. Binding, copying, and inspection
|
|
115
|
+
stay side-effect free. Endpoints support explicit early `materialize()` calls
|
|
116
|
+
while preserving their identity; prompt contexts delegate initialization.
|
|
117
|
+
Breaking: OpenAI-compatible client protocols now require `close() -> None` for
|
|
118
|
+
typed cleanup. See [the lifecycle contract](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md).
|
|
119
|
+
|
|
120
|
+
- Make resource-inspection declarations explicit: aggregate contexts and agents
|
|
121
|
+
implement the `HasExternalDependencies` protocol, renamed from `Context` with
|
|
122
|
+
no compatibility alias. Authors can inherit it to require
|
|
123
|
+
`external_dependencies()`; missing implementations fail type checking and
|
|
124
|
+
instantiation. Plain contexts remain unrestricted, and direct resources inherit
|
|
125
|
+
inspection from `ExternalDependency`.
|
|
126
|
+
|
|
127
|
+
- Breaking: migrate core interaction and agent factories to concrete contexts.
|
|
128
|
+
Bind interaction factories to strings, `run_subagent` to the child `Agent`,
|
|
129
|
+
and background/prompt factories to `BackgroundAgentContext`/`PromptAgentContext`
|
|
130
|
+
from `roboz.agent`. Background constructors own fresh state; rebinding and copies
|
|
131
|
+
share supplied state. Agent inspection uses live tool methods, and deployment
|
|
132
|
+
builders use the same bindings. Restore top-level agent, skill, and built-in
|
|
133
|
+
tool exports; removed dependency and `Ctx` APIs stay removed. See
|
|
134
|
+
[the primitive migration](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md).
|
|
135
|
+
|
|
136
|
+
- Breaking: core endpoints require synchronous OpenAI-compatible clients instead
|
|
137
|
+
of an untyped client. Client methods and request controls are checked statically;
|
|
138
|
+
the real `openai.OpenAI` client satisfies the protocols without a wrapper or an
|
|
139
|
+
SDK dependency in core. Replace placeholder or incompatible clients with a
|
|
140
|
+
conforming chat/transcription client. See [the client contract](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md).
|
|
141
|
+
|
|
142
|
+
- Breaking: external resource implementations must provide `check() -> bool` for
|
|
143
|
+
explicit availability checks. Executables check PATH; core endpoints use model
|
|
144
|
+
discovery without generating output. Results are uncached, absent resources
|
|
145
|
+
return `False`, and check errors propagate. Binding, copying, and inspection
|
|
146
|
+
never invoke checks. Plain contexts need no check method. See
|
|
147
|
+
[resource inspection and availability](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md).
|
|
148
|
+
|
|
149
|
+
- Accept any concretely typed factory context, including plain objects and lists.
|
|
150
|
+
Contexts without resource inspection are passed through unchanged and their
|
|
151
|
+
tools report no dependencies. Wrong context types remain static binding errors.
|
|
152
|
+
|
|
153
|
+
- Bind core chat and transcription endpoints directly as typed factory contexts,
|
|
154
|
+
retaining their identity and client for execution and inspection. Endpoint
|
|
155
|
+
request helpers and the selector now use concrete endpoints; lazy construction
|
|
156
|
+
and companion migrations remain deferred. Scripted endpoints report no external
|
|
157
|
+
resources. See [typed contexts and resource inspection](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md).
|
|
158
|
+
- Fix `@factory()` input inference so parenthesized factories retain the same
|
|
159
|
+
concrete input, output, and context types as bare `@factory` declarations.
|
|
160
|
+
|
|
161
|
+
- Breaking checkpoint: bind factories directly to concrete typed resources or
|
|
162
|
+
contexts with optional `external_dependencies()`, preserving the supplied object and
|
|
163
|
+
inspecting it live. Replace `Ctx` and tool dependency properties with concrete
|
|
164
|
+
contexts and `tool.external_dependencies()`. Dependency extension primitives
|
|
165
|
+
stay in `roboz.dependencies`; the top-level API now exposes only data and
|
|
166
|
+
tool/factory/context primitives. Remove legacy dependency bases, lazy/reference
|
|
167
|
+
helpers, and checker registration. Agent, built-in tool, and companion consumers
|
|
168
|
+
remain unmigrated; this checkpoint is not release-ready. See [typed contexts and resource inspection](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/dependency-primitives.md)
|
|
169
|
+
for the contract, removed APIs, and migration boundary.
|
|
170
|
+
|
|
171
|
+
## 0.1.2.dev4 - 2026-09-12
|
|
172
|
+
|
|
173
|
+
- Breaking: make `DeployableAgent` an explicitly configured class. Constructor
|
|
174
|
+
capabilities are protected defaults; append capabilities and child agents with
|
|
175
|
+
the add methods, configure endpoints and runtime values separately, and unpack
|
|
176
|
+
`(agent, background_agents)` from `build()`. `build_graph()` is removed.
|
|
177
|
+
- Breaking: capability builders now declare concrete `required_attributes` and
|
|
178
|
+
receive `build(agent, pipe)`. Builds validate the complete graph before
|
|
179
|
+
constructing sinks, pipes, or tools and aggregate missing, `None`, and
|
|
180
|
+
incorrectly typed owner attributes.
|
|
181
|
+
|
|
182
|
+
## 0.1.2.dev3 - 2026-09-11
|
|
183
|
+
|
|
184
|
+
- Breaking: remove the redundant `roboz[shed]` installation extra. Install
|
|
185
|
+
`roboshed` directly; it installs its compatible core Roboz dependency.
|
|
186
|
+
|
|
187
|
+
- Add `DeployableAgent.build_graph()` to return the root agent and all background
|
|
188
|
+
handles for host lifecycle control. `build()` still returns the root alone.
|
|
189
|
+
|
|
190
|
+
- Breaking: replace `AgentDefinition` and `SubAgentSpec` with recursive
|
|
191
|
+
`DeployableAgent` definitions. Put child definitions directly in `subagents`
|
|
192
|
+
or `background_agents`; delegation tools use the child's name and description,
|
|
193
|
+
and background agents start through default tools. Construct generic
|
|
194
|
+
definitions directly with `DeployableAgent(...)`.
|
|
195
|
+
Sandbox-aware `Deployment` lives in `roboshed.deployments`, not core.
|
|
196
|
+
See [the archived agent migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/agent-factories.md) for migration.
|
|
197
|
+
|
|
198
|
+
## 0.1.2.dev2 - 2026-09-09
|
|
199
|
+
|
|
200
|
+
- Breaking: remove the `roboz[openai]` extra. Install
|
|
201
|
+
`roboz-endpoints[openai]` directly for the endpoint catalogue and SDK adapter;
|
|
202
|
+
it installs core automatically.
|
|
203
|
+
|
|
204
|
+
- Breaking: move dependency primitives from `roboz.tooling.dependencies` and
|
|
205
|
+
`roboz.tooling` to `roboz.dependencies`. Update those imports; the existing
|
|
206
|
+
top-level `roboz` authoring API remains available. See [the archived context migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/context-migration.md).
|
|
207
|
+
|
|
208
|
+
- Add `DependencyRoute` for live caller-owned selections. Materialization and discovery delegate to the current target without introducing a separate identity or caching the selection.
|
|
209
|
+
|
|
210
|
+
- Breaking: capability builders receive `build(pipe, *, default_endpoint)`.
|
|
211
|
+
Capabilities own their tool-specific endpoint choices and receive the agent
|
|
212
|
+
endpoint as a fallback, independently of runtime controls. Lazy/live
|
|
213
|
+
references retain identity and deferred resolution. See
|
|
214
|
+
[the archived agent migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/agent-factories.md) for builder migration.
|
|
215
|
+
|
|
216
|
+
- Breaking: move the Librarian and its memory/summarization tools out of core into `roboshed.agents` and `roboshed.tools`. Use `librarian(sandbox, agent_names, agent_endpoint=...)` instead of `LibrarianConstructor` and its path record; see [the archived agent migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/agent-factories.md). Core retains control, interaction, and generic construction primitives.
|
|
217
|
+
|
|
218
|
+
- Add generic `AgentDefinition`, `AgentCapability`, `Capability`, and `SubAgentSpec` in `roboz.deployment`. Configure all tools and skills through capabilities, with fresh agent pipes and explicit sink configuration; definitions select no project, memory, or persistence conventions. See [the archived agent migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/agent-factories.md).
|
|
219
|
+
|
|
220
|
+
- Breaking: `roboz[shed]` now installs `roboshed` instead of `roboz-shed`. Update direct requirements to `roboshed` and imports from `roboz_shed` to `roboshed`; no compatibility package is provided.
|
|
221
|
+
|
|
222
|
+
### Added
|
|
223
|
+
|
|
224
|
+
- Select lazy model endpoints with `ModelSelector` from `roboz.llm` or
|
|
225
|
+
`roboz.llm.endpoints`, without requiring Shed or constructing clients.
|
|
226
|
+
|
|
227
|
+
- Bind exact dependency registrations with `roboz.dependencies`, independently
|
|
228
|
+
of Shed. Registration types, checker callbacks, and contract errors now live
|
|
229
|
+
alongside dependency discovery and resolution primitives.
|
|
230
|
+
|
|
231
|
+
- Add `ExternalDependencyReference` for replaceable resources. Endpoint helpers
|
|
232
|
+
preserve live selection and discovery through contexts, tools, and agents,
|
|
233
|
+
while lazy resources retain their identity validation and cached clients.
|
|
234
|
+
|
|
235
|
+
- Inspect resources before binding tools with `Ctx.external_dependencies()`.
|
|
236
|
+
Contexts implement `ExternalDependencySource`, preserving resource identity
|
|
237
|
+
and reflecting live nested contexts, agents, and catalogs without resolving
|
|
238
|
+
lazy resources. `external_dependencies` is now a reserved context field name;
|
|
239
|
+
see [the archived context migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/context-migration.md).
|
|
240
|
+
|
|
241
|
+
### Fixed
|
|
242
|
+
|
|
243
|
+
- Refresh lifecycle endpoint metadata when invoking an agent again after a live
|
|
244
|
+
reference switches models, while retaining each lazy dependency's client cache.
|
|
245
|
+
|
|
246
|
+
### Changed
|
|
247
|
+
|
|
248
|
+
- **Breaking:** Construct tool contexts with `Ctx(**values)` and pass resources
|
|
249
|
+
directly. Remove `FactoryCtx`, specialized context classes, `ToolDependency`,
|
|
250
|
+
and endpoint binding wrappers; `Tool.dependencies` now returns resources.
|
|
251
|
+
See [the archived context migration guide](https://github.com/Tachion-Oy/roboz/blob/roboz-v0.1.2.dev7/docs/context-migration.md) for replacements and state ownership.
|
|
252
|
+
|
|
253
|
+
- Define and enforce Google-style source docstrings, and normalize tool
|
|
254
|
+
docstrings before including them in agent prompts.
|
|
255
|
+
|
|
256
|
+
## 0.1.1
|
|
257
|
+
|
|
258
|
+
- Preserve concrete nested model types across in-memory tool handoffs while
|
|
259
|
+
keeping field projection, excluded fields, validation, and detached inputs.
|
|
260
|
+
- Add optional companion extras and independent package release workflows.
|
|
261
|
+
- Keep the core's runtime dependency set unchanged.
|
roboz-0.1.2a1/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|