metaproc 0.2.0__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.
- metaproc-0.2.0/.env.example +147 -0
- metaproc-0.2.0/.flowmarkignore +7 -0
- metaproc-0.2.0/.gitignore +189 -0
- metaproc-0.2.0/.node-version +1 -0
- metaproc-0.2.0/.npmrc +20 -0
- metaproc-0.2.0/.nvmrc +1 -0
- metaproc-0.2.0/CHANGELOG.md +61 -0
- metaproc-0.2.0/LICENSE +661 -0
- metaproc-0.2.0/Makefile +84 -0
- metaproc-0.2.0/NOTICE.md +32 -0
- metaproc-0.2.0/PKG-INFO +288 -0
- metaproc-0.2.0/README.md +229 -0
- metaproc-0.2.0/SECURITY.md +49 -0
- metaproc-0.2.0/SUPPLY-CHAIN-SECURITY.md +87 -0
- metaproc-0.2.0/TODO.md +39 -0
- metaproc-0.2.0/biome.json +66 -0
- metaproc-0.2.0/conftest.py +17 -0
- metaproc-0.2.0/devtools/check_distribution.py +211 -0
- metaproc-0.2.0/devtools/check_links.py +80 -0
- metaproc-0.2.0/devtools/check_plc0415_justifications.py +115 -0
- metaproc-0.2.0/devtools/check_supply_chain.py +144 -0
- metaproc-0.2.0/devtools/lint.py +72 -0
- metaproc-0.2.0/devtools/public_hygiene.py +354 -0
- metaproc-0.2.0/devtools/synthesize_fixtures.py +219 -0
- metaproc-0.2.0/docs/arch/arch-authentication.md +1405 -0
- metaproc-0.2.0/docs/arch/arch-claude-code-harness.md +402 -0
- metaproc-0.2.0/docs/arch/arch-cloud-execution.md +773 -0
- metaproc-0.2.0/docs/arch/arch-file-io-utilities.md +116 -0
- metaproc-0.2.0/docs/arch/arch-metaproc-core.md +2732 -0
- metaproc-0.2.0/docs/arch/arch-runpool.md +475 -0
- metaproc-0.2.0/docs/arch/arch-testing.md +241 -0
- metaproc-0.2.0/docs/artifact-catalog.md +139 -0
- metaproc-0.2.0/docs/conventions.md +563 -0
- metaproc-0.2.0/docs/development.md +201 -0
- metaproc-0.2.0/docs/installation.md +84 -0
- metaproc-0.2.0/docs/metaproc-design-rev3-proposals.md +262 -0
- metaproc-0.2.0/docs/performance-notes.md +424 -0
- metaproc-0.2.0/docs/project/provenance/extraction.md +73 -0
- metaproc-0.2.0/docs/project/specs/active/plan-2026-07-26-standalone-extraction.md +84 -0
- metaproc-0.2.0/docs/publishing.md +79 -0
- metaproc-0.2.0/docs/releases/v0.2.0.md +47 -0
- metaproc-0.2.0/docs/runbooks/adapter-compatibility.runbook.md +256 -0
- metaproc-0.2.0/docs/runbooks/adding-a-new-llm-provider.runbook.md +190 -0
- metaproc-0.2.0/docs/runbooks/browser-streaming-smoke.runbook.md +184 -0
- metaproc-0.2.0/docs/runbooks/claude-code-cli-remote-vm.runbook.md +215 -0
- metaproc-0.2.0/docs/runbooks/cloud-dispatch.runbook.md +175 -0
- metaproc-0.2.0/docs/runbooks/credential-setup.runbook.md +448 -0
- metaproc-0.2.0/docs/runbooks/environment-bootstrap.runbook.md +131 -0
- metaproc-0.2.0/docs/runbooks/softschema-validation.runbook.md +40 -0
- metaproc-0.2.0/examples/offline-smoke/offline-smoke.process.md +57 -0
- metaproc-0.2.0/examples/offline-smoke/offline_smoke_handlers.py +31 -0
- metaproc-0.2.0/examples/offline-smoke/step1-runbook.md +7 -0
- metaproc-0.2.0/examples/offline-smoke/step2-runbook.md +7 -0
- metaproc-0.2.0/examples/offline-smoke/step3-runbook.md +7 -0
- metaproc-0.2.0/lefthook.yml +40 -0
- metaproc-0.2.0/package-lock.json +379 -0
- metaproc-0.2.0/package.json +21 -0
- metaproc-0.2.0/process/self-test/smoke-adapter-claude.process.md +88 -0
- metaproc-0.2.0/process/self-test/smoke-adapter-codex.process.md +81 -0
- metaproc-0.2.0/process/self-test/smoke-adapter-gemini.process.md +158 -0
- metaproc-0.2.0/process/self-test/smoke-adapter-pi-gemini.process.md +120 -0
- metaproc-0.2.0/process/self-test/smoke-adapter-pi.process.md +67 -0
- metaproc-0.2.0/process/self-test/smoke-adapters-all.process.md +138 -0
- metaproc-0.2.0/process/self-test/smoke-adapters-negative-control.process.md +118 -0
- metaproc-0.2.0/process/self-test/smoke-core.process.md +67 -0
- metaproc-0.2.0/process/self-test/smoke-execution-profiles.process.md +169 -0
- metaproc-0.2.0/process/self-test/smoke-gemini-matrix.process.md +161 -0
- metaproc-0.2.0/process/self-test/test-cloud.process.md +43 -0
- metaproc-0.2.0/process/self-test/test-local.process.md +45 -0
- metaproc-0.2.0/pyproject.toml +233 -0
- metaproc-0.2.0/src/metaproc/__init__.py +1 -0
- metaproc-0.2.0/src/metaproc/__main__.py +6 -0
- metaproc-0.2.0/src/metaproc/adapters/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/adapters/base.py +472 -0
- metaproc-0.2.0/src/metaproc/adapters/claude_code.py +1487 -0
- metaproc-0.2.0/src/metaproc/adapters/cli_version.py +133 -0
- metaproc-0.2.0/src/metaproc/adapters/codex.py +850 -0
- metaproc-0.2.0/src/metaproc/adapters/gemini.py +281 -0
- metaproc-0.2.0/src/metaproc/adapters/pi_cli.py +415 -0
- metaproc-0.2.0/src/metaproc/adapters/registry.py +102 -0
- metaproc-0.2.0/src/metaproc/agent_errors.py +126 -0
- metaproc-0.2.0/src/metaproc/cli.py +142 -0
- metaproc-0.2.0/src/metaproc/cloud/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/batch_backend.py +722 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/billing.py +92 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/container_bootstrap.py +546 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/dispatch_artifacts.py +222 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/gcp_credentials.py +184 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/gcp_run_dispatch.py +159 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/gcp_run_entrypoint.py +97 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/gcp_run_logs.py +223 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/orchestrator_dispatch.py +389 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/orchestrator_entrypoint.py +224 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/resolve_token.py +38 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/worker_dispatch.py +901 -0
- metaproc-0.2.0/src/metaproc/cloud/gcp/worker_entrypoint.py +255 -0
- metaproc-0.2.0/src/metaproc/commands/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/commands/auth.py +2205 -0
- metaproc-0.2.0/src/metaproc/commands/auth_check.py +896 -0
- metaproc-0.2.0/src/metaproc/commands/check_handlers.py +112 -0
- metaproc-0.2.0/src/metaproc/commands/check_headers.py +127 -0
- metaproc-0.2.0/src/metaproc/commands/claude_auth.py +357 -0
- metaproc-0.2.0/src/metaproc/commands/codex_auth.py +440 -0
- metaproc-0.2.0/src/metaproc/commands/compact_logs.py +118 -0
- metaproc-0.2.0/src/metaproc/commands/compare.py +124 -0
- metaproc-0.2.0/src/metaproc/commands/compare_matrix.py +124 -0
- metaproc-0.2.0/src/metaproc/commands/compare_trace.py +211 -0
- metaproc-0.2.0/src/metaproc/commands/deps.py +171 -0
- metaproc-0.2.0/src/metaproc/commands/env.py +175 -0
- metaproc-0.2.0/src/metaproc/commands/gcp.py +2637 -0
- metaproc-0.2.0/src/metaproc/commands/gcp_run.py +351 -0
- metaproc-0.2.0/src/metaproc/commands/gzip_text.py +640 -0
- metaproc-0.2.0/src/metaproc/commands/help.py +67 -0
- metaproc-0.2.0/src/metaproc/commands/helpers.py +260 -0
- metaproc-0.2.0/src/metaproc/commands/kill.py +246 -0
- metaproc-0.2.0/src/metaproc/commands/liveness_watch.py +293 -0
- metaproc-0.2.0/src/metaproc/commands/override.py +118 -0
- metaproc-0.2.0/src/metaproc/commands/plan.py +129 -0
- metaproc-0.2.0/src/metaproc/commands/pool.py +1723 -0
- metaproc-0.2.0/src/metaproc/commands/probe_tool_use.py +293 -0
- metaproc-0.2.0/src/metaproc/commands/pulse.py +286 -0
- metaproc-0.2.0/src/metaproc/commands/resource_report.py +212 -0
- metaproc-0.2.0/src/metaproc/commands/resources.py +40 -0
- metaproc-0.2.0/src/metaproc/commands/resume_daemon.py +264 -0
- metaproc-0.2.0/src/metaproc/commands/run_manifest.py +44 -0
- metaproc-0.2.0/src/metaproc/commands/run_parallel.py +2161 -0
- metaproc-0.2.0/src/metaproc/commands/run_process.py +3176 -0
- metaproc-0.2.0/src/metaproc/commands/run_step.py +598 -0
- metaproc-0.2.0/src/metaproc/commands/searches.py +122 -0
- metaproc-0.2.0/src/metaproc/commands/skill.py +103 -0
- metaproc-0.2.0/src/metaproc/commands/softschema.py +206 -0
- metaproc-0.2.0/src/metaproc/commands/ssh_utils.py +115 -0
- metaproc-0.2.0/src/metaproc/commands/stats.py +83 -0
- metaproc-0.2.0/src/metaproc/commands/status.py +619 -0
- metaproc-0.2.0/src/metaproc/commands/tail.py +121 -0
- metaproc-0.2.0/src/metaproc/commands/tools.py +153 -0
- metaproc-0.2.0/src/metaproc/commands/trace.py +375 -0
- metaproc-0.2.0/src/metaproc/commands/validate.py +224 -0
- metaproc-0.2.0/src/metaproc/commands/variants.py +144 -0
- metaproc-0.2.0/src/metaproc/commands/wait.py +65 -0
- metaproc-0.2.0/src/metaproc/commands/write_usage.py +102 -0
- metaproc-0.2.0/src/metaproc/config/__init__.py +5 -0
- metaproc-0.2.0/src/metaproc/config/env_enum.py +243 -0
- metaproc-0.2.0/src/metaproc/config/env_vars.py +415 -0
- metaproc-0.2.0/src/metaproc/config/providers.py +198 -0
- metaproc-0.2.0/src/metaproc/console.py +48 -0
- metaproc-0.2.0/src/metaproc/data/execution-profiles.default.yaml +259 -0
- metaproc-0.2.0/src/metaproc/data/pi-models.default.json +63 -0
- metaproc-0.2.0/src/metaproc/data/pricing.md +690 -0
- metaproc-0.2.0/src/metaproc/dispatch/__init__.py +8 -0
- metaproc-0.2.0/src/metaproc/dispatch/auth_pool_flags.py +212 -0
- metaproc-0.2.0/src/metaproc/dispatch/auth_usage.py +745 -0
- metaproc-0.2.0/src/metaproc/dispatch/auth_usage_render.py +271 -0
- metaproc-0.2.0/src/metaproc/dispatch/credential_pool.py +1759 -0
- metaproc-0.2.0/src/metaproc/dispatch/known_bugs.py +226 -0
- metaproc-0.2.0/src/metaproc/dispatch/orchestrator_payload.py +151 -0
- metaproc-0.2.0/src/metaproc/dispatch/pool_dispatch.py +742 -0
- metaproc-0.2.0/src/metaproc/dispatch/pool_status.py +349 -0
- metaproc-0.2.0/src/metaproc/dispatch/preflight.py +534 -0
- metaproc-0.2.0/src/metaproc/dispatch/repo_sync_payload.py +123 -0
- metaproc-0.2.0/src/metaproc/dispatch/retry_later.py +206 -0
- metaproc-0.2.0/src/metaproc/dispatch/secret_refs.py +145 -0
- metaproc-0.2.0/src/metaproc/dispatch/slot_coordinator.py +720 -0
- metaproc-0.2.0/src/metaproc/dispatch/worker_payload.py +131 -0
- metaproc-0.2.0/src/metaproc/docs/__init__.py +40 -0
- metaproc-0.2.0/src/metaproc/docs/metaproc-concepts-and-principles.md +988 -0
- metaproc-0.2.0/src/metaproc/docs/metaproc-developer-guide.md +150 -0
- metaproc-0.2.0/src/metaproc/docs/metaproc-operator-reference.md +670 -0
- metaproc-0.2.0/src/metaproc/engine/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/engine/build_plan.py +944 -0
- metaproc-0.2.0/src/metaproc/engine/code_handler.py +154 -0
- metaproc-0.2.0/src/metaproc/engine/condition.py +54 -0
- metaproc-0.2.0/src/metaproc/engine/dep_state.py +360 -0
- metaproc-0.2.0/src/metaproc/engine/discovery.py +181 -0
- metaproc-0.2.0/src/metaproc/engine/graph.py +163 -0
- metaproc-0.2.0/src/metaproc/engine/input_validation.py +197 -0
- metaproc-0.2.0/src/metaproc/engine/lane_expand.py +191 -0
- metaproc-0.2.0/src/metaproc/engine/parse_dispatch.py +125 -0
- metaproc-0.2.0/src/metaproc/engine/pathing.py +193 -0
- metaproc-0.2.0/src/metaproc/engine/placeholders.py +290 -0
- metaproc-0.2.0/src/metaproc/engine/preflight.py +404 -0
- metaproc-0.2.0/src/metaproc/engine/process_scope.py +100 -0
- metaproc-0.2.0/src/metaproc/engine/resource_hierarchy.py +226 -0
- metaproc-0.2.0/src/metaproc/engine/resource_rollup.py +815 -0
- metaproc-0.2.0/src/metaproc/engine/retry.py +323 -0
- metaproc-0.2.0/src/metaproc/engine/run_id.py +51 -0
- metaproc-0.2.0/src/metaproc/engine/run_status.py +761 -0
- metaproc-0.2.0/src/metaproc/engine/runtime.py +317 -0
- metaproc-0.2.0/src/metaproc/engine/validation.py +328 -0
- metaproc-0.2.0/src/metaproc/engine/write_boundary.py +423 -0
- metaproc-0.2.0/src/metaproc/engine/yaml_repair.py +195 -0
- metaproc-0.2.0/src/metaproc/errors.py +29 -0
- metaproc-0.2.0/src/metaproc/io/__init__.py +71 -0
- metaproc-0.2.0/src/metaproc/io/claimed_items.py +141 -0
- metaproc-0.2.0/src/metaproc/io/digests.py +36 -0
- metaproc-0.2.0/src/metaproc/io/dispatch_manifest.py +100 -0
- metaproc-0.2.0/src/metaproc/io/frontmatter.py +186 -0
- metaproc-0.2.0/src/metaproc/io/gz_io.py +228 -0
- metaproc-0.2.0/src/metaproc/io/mkdir_lock.py +224 -0
- metaproc-0.2.0/src/metaproc/io/orchestrator_lease.py +408 -0
- metaproc-0.2.0/src/metaproc/io/overrides.py +188 -0
- metaproc-0.2.0/src/metaproc/io/safe_archive.py +97 -0
- metaproc-0.2.0/src/metaproc/io/schema_token.py +175 -0
- metaproc-0.2.0/src/metaproc/io/state_io.py +294 -0
- metaproc-0.2.0/src/metaproc/io/templating.py +122 -0
- metaproc-0.2.0/src/metaproc/logutil/__init__.py +1 -0
- metaproc-0.2.0/src/metaproc/logutil/compaction.py +630 -0
- metaproc-0.2.0/src/metaproc/logutil/log_path_owner.py +174 -0
- metaproc-0.2.0/src/metaproc/logutil/parsing.py +1819 -0
- metaproc-0.2.0/src/metaproc/logutil/resource_event_extract.py +397 -0
- metaproc-0.2.0/src/metaproc/logutil/resource_events.py +89 -0
- metaproc-0.2.0/src/metaproc/logutil/throttling.py +175 -0
- metaproc-0.2.0/src/metaproc/logutil/tool_failures.py +90 -0
- metaproc-0.2.0/src/metaproc/logutil/tool_spans.py +270 -0
- metaproc-0.2.0/src/metaproc/logutil/usage.py +644 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/README.md +125 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/__init__.py +31 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/charts.py +150 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/log_adapters.py +106 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/domain_views.css +413 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/domain_views.js +1680 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/elk.bundled.js +6540 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/elkjs-license.txt +264 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/index.js +363 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/manifest.toml +199 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/styles.css +37 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/viz.css +1032 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/plugin/viz.js +2218 -0
- metaproc-0.2.0/src/metaproc/metabrowser_plugin/sidekick.py +376 -0
- metaproc-0.2.0/src/metaproc/models/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/models/authored.py +541 -0
- metaproc-0.2.0/src/metaproc/models/execution_profile.py +337 -0
- metaproc-0.2.0/src/metaproc/models/invocation.py +48 -0
- metaproc-0.2.0/src/metaproc/models/lane.py +217 -0
- metaproc-0.2.0/src/metaproc/models/node_ids.py +52 -0
- metaproc-0.2.0/src/metaproc/models/plan.py +123 -0
- metaproc-0.2.0/src/metaproc/models/plan_bundle.py +36 -0
- metaproc-0.2.0/src/metaproc/models/pricing.py +58 -0
- metaproc-0.2.0/src/metaproc/models/qa.py +120 -0
- metaproc-0.2.0/src/metaproc/models/resources.py +322 -0
- metaproc-0.2.0/src/metaproc/models/run_manifest.py +137 -0
- metaproc-0.2.0/src/metaproc/models/runtime.py +136 -0
- metaproc-0.2.0/src/metaproc/models/usage.py +265 -0
- metaproc-0.2.0/src/metaproc/models/viz.py +342 -0
- metaproc-0.2.0/src/metaproc/osutils/__init__.py +1 -0
- metaproc-0.2.0/src/metaproc/osutils/file_extensions.py +172 -0
- metaproc-0.2.0/src/metaproc/osutils/ignore_filter.py +145 -0
- metaproc-0.2.0/src/metaproc/osutils/memory_pressure.py +382 -0
- metaproc-0.2.0/src/metaproc/osutils/psutil_sampler.py +183 -0
- metaproc-0.2.0/src/metaproc/osutils/resource_context.py +392 -0
- metaproc-0.2.0/src/metaproc/output.py +109 -0
- metaproc-0.2.0/src/metaproc/paths.py +446 -0
- metaproc-0.2.0/src/metaproc/plugins/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/plugins/discovery.py +68 -0
- metaproc-0.2.0/src/metaproc/plugins/protocol.py +115 -0
- metaproc-0.2.0/src/metaproc/plugins/registry.py +118 -0
- metaproc-0.2.0/src/metaproc/py.typed +0 -0
- metaproc-0.2.0/src/metaproc/resource_docs.py +46 -0
- metaproc-0.2.0/src/metaproc/runpool/README.md +32 -0
- metaproc-0.2.0/src/metaproc/runpool/__init__.py +58 -0
- metaproc-0.2.0/src/metaproc/runpool/backend.py +399 -0
- metaproc-0.2.0/src/metaproc/runpool/concurrency.py +165 -0
- metaproc-0.2.0/src/metaproc/runpool/event_models.py +215 -0
- metaproc-0.2.0/src/metaproc/runpool/event_reader.py +54 -0
- metaproc-0.2.0/src/metaproc/runpool/events.py +406 -0
- metaproc-0.2.0/src/metaproc/runpool/host_admission.py +449 -0
- metaproc-0.2.0/src/metaproc/runpool/kill.py +323 -0
- metaproc-0.2.0/src/metaproc/runpool/mock_backend.py +108 -0
- metaproc-0.2.0/src/metaproc/runpool/monitor.py +30 -0
- metaproc-0.2.0/src/metaproc/runpool/pool.py +1975 -0
- metaproc-0.2.0/src/metaproc/runpool/process_event_models.py +163 -0
- metaproc-0.2.0/src/metaproc/runpool/process_events.py +395 -0
- metaproc-0.2.0/src/metaproc/runpool/registry.py +88 -0
- metaproc-0.2.0/src/metaproc/runpool/semaphore.py +87 -0
- metaproc-0.2.0/src/metaproc/runpool/status.py +271 -0
- metaproc-0.2.0/src/metaproc/runtime/__init__.py +8 -0
- metaproc-0.2.0/src/metaproc/runtime/code_handler.py +33 -0
- metaproc-0.2.0/src/metaproc/runtime_paths.py +50 -0
- metaproc-0.2.0/src/metaproc/settings.py +284 -0
- metaproc-0.2.0/src/metaproc/skill/__init__.py +7 -0
- metaproc-0.2.0/src/metaproc/skill/baselines/__init__.py +1 -0
- metaproc-0.2.0/src/metaproc/skill/baselines/metaproc.md +70 -0
- metaproc-0.2.0/src/metaproc/skill/builtin.py +62 -0
- metaproc-0.2.0/src/metaproc/skill/compose.py +59 -0
- metaproc-0.2.0/src/metaproc/skill/registry.py +52 -0
- metaproc-0.2.0/src/metaproc/skill/spec.py +40 -0
- metaproc-0.2.0/src/metaproc/stats/__init__.py +1 -0
- metaproc-0.2.0/src/metaproc/stats/analysis.py +210 -0
- metaproc-0.2.0/src/metaproc/stats/engine.py +765 -0
- metaproc-0.2.0/src/metaproc/stats/formatters.py +319 -0
- metaproc-0.2.0/src/metaproc/stats/models.py +168 -0
- metaproc-0.2.0/src/metaproc/stats/path_tally.py +89 -0
- metaproc-0.2.0/src/metaproc/structure_report.py +324 -0
- metaproc-0.2.0/src/metaproc/trace/__init__.py +36 -0
- metaproc-0.2.0/src/metaproc/trace/aggregation.py +163 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/__init__.py +89 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/claude_agent.py +520 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/codex_agent.py +560 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/common.py +378 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/gemini_agent.py +520 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/metaproc_engine.py +347 -0
- metaproc-0.2.0/src/metaproc/trace/extractors/pi_agent.py +475 -0
- metaproc-0.2.0/src/metaproc/trace/ids.py +37 -0
- metaproc-0.2.0/src/metaproc/trace/linker.py +179 -0
- metaproc-0.2.0/src/metaproc/trace/named_views.py +243 -0
- metaproc-0.2.0/src/metaproc/trace/quality.py +170 -0
- metaproc-0.2.0/src/metaproc/trace/runner.py +30 -0
- metaproc-0.2.0/src/metaproc/trace/schema.py +205 -0
- metaproc-0.2.0/src/metaproc/trace/store.py +41 -0
- metaproc-0.2.0/src/metaproc/trace/views.py +237 -0
- metaproc-0.2.0/src/metaproc/utils/__init__.py +0 -0
- metaproc-0.2.0/src/metaproc/utils/mtime_cache.py +142 -0
- metaproc-0.2.0/src/metaproc/viz/__init__.py +21 -0
- metaproc-0.2.0/src/metaproc/viz/decorators.py +76 -0
- metaproc-0.2.0/src/metaproc/viz/layout.py +157 -0
- metaproc-0.2.0/src/metaproc/viz/project.py +529 -0
- metaproc-0.2.0/src/metaproc/viz/render_html.py +70 -0
- metaproc-0.2.0/src/metaproc/viz/render_svg.py +212 -0
- metaproc-0.2.0/src/metaproc/viz_loader.py +132 -0
- metaproc-0.2.0/tests/__init__.py +0 -0
- metaproc-0.2.0/tests/cloud/gcp/test_billing.py +73 -0
- metaproc-0.2.0/tests/cloud/gcp/test_dispatch_artifacts.py +349 -0
- metaproc-0.2.0/tests/cloud/gcp/test_gcp_run_dispatch.py +549 -0
- metaproc-0.2.0/tests/cloud/gcp/test_gcp_run_entrypoint.py +417 -0
- metaproc-0.2.0/tests/cloud/gcp/test_gcp_run_logs.py +234 -0
- metaproc-0.2.0/tests/commands/__init__.py +0 -0
- metaproc-0.2.0/tests/commands/test_help_command.py +51 -0
- metaproc-0.2.0/tests/commands/test_override.py +223 -0
- metaproc-0.2.0/tests/commands/test_pulse.py +228 -0
- metaproc-0.2.0/tests/commands/test_skill.py +173 -0
- metaproc-0.2.0/tests/conftest.py +138 -0
- metaproc-0.2.0/tests/dom/load_metabrowser_plugins.js +291 -0
- metaproc-0.2.0/tests/dom/plugin_test_utils.js +10 -0
- metaproc-0.2.0/tests/dom/render_metabrowser_view.js +164 -0
- metaproc-0.2.0/tests/dom/test_metaproc_plugin_lifecycle.js +231 -0
- metaproc-0.2.0/tests/fixtures/README.md +17 -0
- metaproc-0.2.0/tests/fixtures/auth_env/mixed.process.md +25 -0
- metaproc-0.2.0/tests/fixtures/auth_env/pi-only.process.md +17 -0
- metaproc-0.2.0/tests/fixtures/claude_api_signals/api_200_success.jsonl +3 -0
- metaproc-0.2.0/tests/fixtures/claude_api_signals/api_401_authentication_error.jsonl +3 -0
- metaproc-0.2.0/tests/fixtures/claude_api_signals/api_429_rate_limit.jsonl +2 -0
- metaproc-0.2.0/tests/fixtures/claude_api_signals/keyword_in_tool_output_no_auth_failure.jsonl +4 -0
- metaproc-0.2.0/tests/fixtures/claude_api_signals/oauth_refresh_400.log +8 -0
- metaproc-0.2.0/tests/fixtures/fingerprint_smoke/fingerprint-smoke.process.md +56 -0
- metaproc-0.2.0/tests/fixtures/fingerprint_smoke/fingerprint_smoke_handlers.py +31 -0
- metaproc-0.2.0/tests/fixtures/fingerprint_smoke/step1-runbook.md +3 -0
- metaproc-0.2.0/tests/fixtures/fingerprint_smoke/step2-runbook.md +3 -0
- metaproc-0.2.0/tests/fixtures/fingerprint_smoke/step3-runbook.md +3 -0
- metaproc-0.2.0/tests/fixtures/layout_smoke/layout-smoke.process.md +73 -0
- metaproc-0.2.0/tests/fixtures/layout_smoke/layout_smoke_handlers.py +71 -0
- metaproc-0.2.0/tests/fixtures/log_compaction/claude_sample.jsonl +20 -0
- metaproc-0.2.0/tests/fixtures/log_compaction/gemini_sample.jsonl +20 -0
- metaproc-0.2.0/tests/fixtures/log_compaction/pi_sample.jsonl +80 -0
- metaproc-0.2.0/tests/fixtures/pro_cap_exhaustion/README.md +30 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/README.md +36 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/baseline-synthetic-five-adapter.json +78 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/claude-sample.jsonl +19 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/claude-sample.jsonl.invocation.json +47 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/codex-sample.jsonl +11 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/codex-sample.jsonl.invocation.json +32 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/gemini-sample.jsonl +19 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/gemini-sample.jsonl.invocation.json +31 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/manifest.json +25 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/pi-sample.jsonl +19 -0
- metaproc-0.2.0/tests/fixtures/trace_agents/pi-sample.jsonl.invocation.json +35 -0
- metaproc-0.2.0/tests/golden/runpool/15_item_mock_cloud.yaml +507 -0
- metaproc-0.2.0/tests/golden/runpool/15_item_success.yaml +507 -0
- metaproc-0.2.0/tests/golden/runpool/preemption_simulation.yaml +507 -0
- metaproc-0.2.0/tests/golden/runpool/retry_with_failures.yaml +507 -0
- metaproc-0.2.0/tests/integration/__init__.py +0 -0
- metaproc-0.2.0/tests/integration/test_gcp_run_smoke.py +121 -0
- metaproc-0.2.0/tests/integration/test_two_label_smoke.py +266 -0
- metaproc-0.2.0/tests/integration/test_two_label_smoke_vehicle_a.py +194 -0
- metaproc-0.2.0/tests/io/__init__.py +0 -0
- metaproc-0.2.0/tests/io/test_overrides.py +246 -0
- metaproc-0.2.0/tests/io/test_safe_archive.py +85 -0
- metaproc-0.2.0/tests/io/test_templating.py +154 -0
- metaproc-0.2.0/tests/plugin_manifest_contract.py +97 -0
- metaproc-0.2.0/tests/test_adapter_config_validation.py +205 -0
- metaproc-0.2.0/tests/test_adapters.py +965 -0
- metaproc-0.2.0/tests/test_adapters_codex.py +702 -0
- metaproc-0.2.0/tests/test_adapters_ported.py +610 -0
- metaproc-0.2.0/tests/test_agent_errors.py +110 -0
- metaproc-0.2.0/tests/test_auth_check.py +868 -0
- metaproc-0.2.0/tests/test_auth_command.py +777 -0
- metaproc-0.2.0/tests/test_auth_command_vehicle_a.py +532 -0
- metaproc-0.2.0/tests/test_auth_env_command.py +157 -0
- metaproc-0.2.0/tests/test_auth_pool_flags.py +321 -0
- metaproc-0.2.0/tests/test_auth_preflight.py +267 -0
- metaproc-0.2.0/tests/test_auth_setup_command.py +535 -0
- metaproc-0.2.0/tests/test_auth_usage.py +559 -0
- metaproc-0.2.0/tests/test_auth_usage_command.py +227 -0
- metaproc-0.2.0/tests/test_auth_usage_render.py +231 -0
- metaproc-0.2.0/tests/test_backend_cli_flag.py +77 -0
- metaproc-0.2.0/tests/test_build_plan_lanes.py +139 -0
- metaproc-0.2.0/tests/test_build_plan_needs.py +48 -0
- metaproc-0.2.0/tests/test_characterization.py +358 -0
- metaproc-0.2.0/tests/test_check_handlers.py +131 -0
- metaproc-0.2.0/tests/test_check_links.py +55 -0
- metaproc-0.2.0/tests/test_claimed_items.py +84 -0
- metaproc-0.2.0/tests/test_classifier_quota_group_walk.py +461 -0
- metaproc-0.2.0/tests/test_claude_api_signals_fixtures.py +128 -0
- metaproc-0.2.0/tests/test_claude_auth.py +339 -0
- metaproc-0.2.0/tests/test_claude_live_quota.py +278 -0
- metaproc-0.2.0/tests/test_cli.py +212 -0
- metaproc-0.2.0/tests/test_cli_dotenv.py +78 -0
- metaproc-0.2.0/tests/test_codex_auth.py +232 -0
- metaproc-0.2.0/tests/test_commands.py +405 -0
- metaproc-0.2.0/tests/test_commands_compare_trace.py +232 -0
- metaproc-0.2.0/tests/test_commands_searches.py +214 -0
- metaproc-0.2.0/tests/test_commands_tools.py +208 -0
- metaproc-0.2.0/tests/test_compute_resource.py +110 -0
- metaproc-0.2.0/tests/test_console.py +45 -0
- metaproc-0.2.0/tests/test_container_bootstrap.py +551 -0
- metaproc-0.2.0/tests/test_credential_pool.py +1398 -0
- metaproc-0.2.0/tests/test_credential_pool_schema_v2.py +393 -0
- metaproc-0.2.0/tests/test_css_tokens_resolve.py +70 -0
- metaproc-0.2.0/tests/test_dep_state.py +632 -0
- metaproc-0.2.0/tests/test_dispatch_auth_env.py +224 -0
- metaproc-0.2.0/tests/test_dispatch_manifest.py +351 -0
- metaproc-0.2.0/tests/test_domain_boundaries.py +66 -0
- metaproc-0.2.0/tests/test_engine.py +1122 -0
- metaproc-0.2.0/tests/test_engine_condition.py +44 -0
- metaproc-0.2.0/tests/test_engine_ported.py +525 -0
- metaproc-0.2.0/tests/test_entrypoint.py +69 -0
- metaproc-0.2.0/tests/test_env_command.py +79 -0
- metaproc-0.2.0/tests/test_env_enum.py +198 -0
- metaproc-0.2.0/tests/test_env_template.py +63 -0
- metaproc-0.2.0/tests/test_env_vars_coverage.py +200 -0
- metaproc-0.2.0/tests/test_env_vars_registry.py +60 -0
- metaproc-0.2.0/tests/test_errors.py +34 -0
- metaproc-0.2.0/tests/test_execution_profiles.py +485 -0
- metaproc-0.2.0/tests/test_failure_taxonomy.py +476 -0
- metaproc-0.2.0/tests/test_for_each_key.py +91 -0
- metaproc-0.2.0/tests/test_gcp_commands.py +1888 -0
- metaproc-0.2.0/tests/test_gcp_credentials.py +251 -0
- metaproc-0.2.0/tests/test_graph.py +403 -0
- metaproc-0.2.0/tests/test_gz_io.py +199 -0
- metaproc-0.2.0/tests/test_gzip_text_command.py +34 -0
- metaproc-0.2.0/tests/test_helpers.py +68 -0
- metaproc-0.2.0/tests/test_inline_retry.py +454 -0
- metaproc-0.2.0/tests/test_inline_retry_e2e.py +211 -0
- metaproc-0.2.0/tests/test_input_validation.py +153 -0
- metaproc-0.2.0/tests/test_invocation_sidecar_adapter_metadata.py +83 -0
- metaproc-0.2.0/tests/test_io.py +260 -0
- metaproc-0.2.0/tests/test_io_init.py +132 -0
- metaproc-0.2.0/tests/test_kill_integration.py +180 -0
- metaproc-0.2.0/tests/test_label_propagation.py +636 -0
- metaproc-0.2.0/tests/test_lane_expand.py +218 -0
- metaproc-0.2.0/tests/test_lane_models.py +158 -0
- metaproc-0.2.0/tests/test_layout_golden.py +283 -0
- metaproc-0.2.0/tests/test_liveness_watch.py +122 -0
- metaproc-0.2.0/tests/test_local_backend.py +248 -0
- metaproc-0.2.0/tests/test_locking_policy.py +61 -0
- metaproc-0.2.0/tests/test_log_compaction.py +555 -0
- metaproc-0.2.0/tests/test_log_filter.py +166 -0
- metaproc-0.2.0/tests/test_log_parsing.py +1116 -0
- metaproc-0.2.0/tests/test_metabrowser_api_file_plugin_views.py +115 -0
- metaproc-0.2.0/tests/test_metabrowser_api_resources.py +261 -0
- metaproc-0.2.0/tests/test_metabrowser_api_resources_phase2.py +156 -0
- metaproc-0.2.0/tests/test_metabrowser_cache_boundary.py +38 -0
- metaproc-0.2.0/tests/test_metabrowser_charts.py +235 -0
- metaproc-0.2.0/tests/test_metabrowser_file_kinds.py +229 -0
- metaproc-0.2.0/tests/test_metabrowser_gzip_transparency.py +176 -0
- metaproc-0.2.0/tests/test_metabrowser_index_plugin_assets.py +41 -0
- metaproc-0.2.0/tests/test_metabrowser_log_adapters.py +126 -0
- metaproc-0.2.0/tests/test_metabrowser_markdown_integration.py +13 -0
- metaproc-0.2.0/tests/test_metabrowser_phase2_views.py +59 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_e2e.py +210 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_integration.py +71 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_lifecycle.py +65 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_package_contract.py +81 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_render.py +218 -0
- metaproc-0.2.0/tests/test_metabrowser_plugin_wheel.py +55 -0
- metaproc-0.2.0/tests/test_metabrowser_runpool_charts_endpoint.py +108 -0
- metaproc-0.2.0/tests/test_metabrowser_viz_wiring.py +191 -0
- metaproc-0.2.0/tests/test_metaproc_domain_neutral.py +69 -0
- metaproc-0.2.0/tests/test_mkdir_lock.py +62 -0
- metaproc-0.2.0/tests/test_mock_backend.py +239 -0
- metaproc-0.2.0/tests/test_mock_integration.py +250 -0
- metaproc-0.2.0/tests/test_model_separation_ported.py +100 -0
- metaproc-0.2.0/tests/test_models.py +495 -0
- metaproc-0.2.0/tests/test_offline_smoke_example.py +39 -0
- metaproc-0.2.0/tests/test_orchestrator_entrypoint.py +152 -0
- metaproc-0.2.0/tests/test_orchestrator_lease.py +278 -0
- metaproc-0.2.0/tests/test_orchestrator_payload.py +155 -0
- metaproc-0.2.0/tests/test_output.py +76 -0
- metaproc-0.2.0/tests/test_parse_dispatch.py +152 -0
- metaproc-0.2.0/tests/test_path_tally.py +122 -0
- metaproc-0.2.0/tests/test_paths.py +289 -0
- metaproc-0.2.0/tests/test_pi_models_json.py +223 -0
- metaproc-0.2.0/tests/test_pi_valid_models_catalog.py +28 -0
- metaproc-0.2.0/tests/test_plan_ported.py +747 -0
- metaproc-0.2.0/tests/test_plugins.py +220 -0
- metaproc-0.2.0/tests/test_pool_composite.py +341 -0
- metaproc-0.2.0/tests/test_pool_composite_integration.py +158 -0
- metaproc-0.2.0/tests/test_pool_concurrency_timeline.py +131 -0
- metaproc-0.2.0/tests/test_pool_dispatch.py +1742 -0
- metaproc-0.2.0/tests/test_pool_events_cli.py +404 -0
- metaproc-0.2.0/tests/test_pool_events_summary.py +249 -0
- metaproc-0.2.0/tests/test_pool_integration.py +550 -0
- metaproc-0.2.0/tests/test_pool_rollup.py +255 -0
- metaproc-0.2.0/tests/test_pool_status.py +463 -0
- metaproc-0.2.0/tests/test_preflight.py +505 -0
- metaproc-0.2.0/tests/test_preflight_gate.py +268 -0
- metaproc-0.2.0/tests/test_preflight_ratio_path.py +257 -0
- metaproc-0.2.0/tests/test_pressure.py +197 -0
- metaproc-0.2.0/tests/test_probe_tool_use.py +246 -0
- metaproc-0.2.0/tests/test_process_event_models.py +178 -0
- metaproc-0.2.0/tests/test_process_events.py +79 -0
- metaproc-0.2.0/tests/test_psutil_sampler.py +86 -0
- metaproc-0.2.0/tests/test_public_hygiene.py +198 -0
- metaproc-0.2.0/tests/test_repo_sync_payload.py +129 -0
- metaproc-0.2.0/tests/test_resource_billing_events.py +113 -0
- metaproc-0.2.0/tests/test_resource_context.py +67 -0
- metaproc-0.2.0/tests/test_resource_docs.py +92 -0
- metaproc-0.2.0/tests/test_resource_event_extract.py +395 -0
- metaproc-0.2.0/tests/test_resource_event_models.py +240 -0
- metaproc-0.2.0/tests/test_resource_events_writer.py +123 -0
- metaproc-0.2.0/tests/test_resource_hierarchy.py +157 -0
- metaproc-0.2.0/tests/test_resource_report_cli.py +165 -0
- metaproc-0.2.0/tests/test_resource_rollup.py +286 -0
- metaproc-0.2.0/tests/test_resources_document.py +192 -0
- metaproc-0.2.0/tests/test_resume.py +397 -0
- metaproc-0.2.0/tests/test_resume_daemon.py +291 -0
- metaproc-0.2.0/tests/test_retry.py +487 -0
- metaproc-0.2.0/tests/test_run_agent_pool_preflight.py +170 -0
- metaproc-0.2.0/tests/test_run_config.py +482 -0
- metaproc-0.2.0/tests/test_run_id.py +70 -0
- metaproc-0.2.0/tests/test_run_manifest.py +150 -0
- metaproc-0.2.0/tests/test_run_parallel_characterization.py +663 -0
- metaproc-0.2.0/tests/test_run_parallel_cross_quota.py +86 -0
- metaproc-0.2.0/tests/test_run_parallel_variant_override.py +80 -0
- metaproc-0.2.0/tests/test_run_process.py +2525 -0
- metaproc-0.2.0/tests/test_run_process_fan_out_events.py +71 -0
- metaproc-0.2.0/tests/test_run_process_multilane_guard.py +136 -0
- metaproc-0.2.0/tests/test_run_process_overrides.py +185 -0
- metaproc-0.2.0/tests/test_run_status.py +729 -0
- metaproc-0.2.0/tests/test_run_step_cli.py +578 -0
- metaproc-0.2.0/tests/test_runpool_backend.py +218 -0
- metaproc-0.2.0/tests/test_runpool_concurrency_plan.py +309 -0
- metaproc-0.2.0/tests/test_runpool_event_models.py +177 -0
- metaproc-0.2.0/tests/test_runpool_events.py +134 -0
- metaproc-0.2.0/tests/test_runpool_golden.py +406 -0
- metaproc-0.2.0/tests/test_runpool_host_admission.py +155 -0
- metaproc-0.2.0/tests/test_runpool_integration.py +135 -0
- metaproc-0.2.0/tests/test_runpool_kill.py +338 -0
- metaproc-0.2.0/tests/test_runpool_lanes.py +252 -0
- metaproc-0.2.0/tests/test_runpool_monitor.py +33 -0
- metaproc-0.2.0/tests/test_runpool_pool.py +1539 -0
- metaproc-0.2.0/tests/test_runpool_registry.py +72 -0
- metaproc-0.2.0/tests/test_runpool_semaphore.py +315 -0
- metaproc-0.2.0/tests/test_runpool_status.py +233 -0
- metaproc-0.2.0/tests/test_runtime_ported.py +951 -0
- metaproc-0.2.0/tests/test_schema_token.py +158 -0
- metaproc-0.2.0/tests/test_secret_refs.py +87 -0
- metaproc-0.2.0/tests/test_slot_coordinator.py +830 -0
- metaproc-0.2.0/tests/test_slot_coordinator_vehicle_a.py +432 -0
- metaproc-0.2.0/tests/test_slot_coordinator_vehicle_b_safe_mode.py +394 -0
- metaproc-0.2.0/tests/test_softschema.py +325 -0
- metaproc-0.2.0/tests/test_stats.py +688 -0
- metaproc-0.2.0/tests/test_status_remote.py +178 -0
- metaproc-0.2.0/tests/test_status_steps_golden.py +244 -0
- metaproc-0.2.0/tests/test_step_fingerprint_smoke.py +312 -0
- metaproc-0.2.0/tests/test_structure_report_compat.py +41 -0
- metaproc-0.2.0/tests/test_synthetic_fixtures.py +40 -0
- metaproc-0.2.0/tests/test_throttling_join.py +117 -0
- metaproc-0.2.0/tests/test_token_refresh.py +55 -0
- metaproc-0.2.0/tests/test_tool_failures.py +68 -0
- metaproc-0.2.0/tests/test_tool_span_pairing.py +193 -0
- metaproc-0.2.0/tests/test_trace_aggregation.py +134 -0
- metaproc-0.2.0/tests/test_trace_aggregation_generic_metrics.py +187 -0
- metaproc-0.2.0/tests/test_trace_attempt_cost_attrs.py +401 -0
- metaproc-0.2.0/tests/test_trace_claude_agent.py +463 -0
- metaproc-0.2.0/tests/test_trace_cli_extract.py +284 -0
- metaproc-0.2.0/tests/test_trace_codex_agent.py +216 -0
- metaproc-0.2.0/tests/test_trace_codex_new_agent.py +337 -0
- metaproc-0.2.0/tests/test_trace_extractor_common.py +146 -0
- metaproc-0.2.0/tests/test_trace_gemini_agent.py +742 -0
- metaproc-0.2.0/tests/test_trace_lane_recovery.py +288 -0
- metaproc-0.2.0/tests/test_trace_metaproc_engine.py +248 -0
- metaproc-0.2.0/tests/test_trace_multi_adapter_fixtures.py +187 -0
- metaproc-0.2.0/tests/test_trace_named_views.py +303 -0
- metaproc-0.2.0/tests/test_trace_pi_agent.py +610 -0
- metaproc-0.2.0/tests/test_trace_quality.py +224 -0
- metaproc-0.2.0/tests/test_trace_schema.py +239 -0
- metaproc-0.2.0/tests/test_trace_smoke_live_run.py +62 -0
- metaproc-0.2.0/tests/test_trace_views.py +122 -0
- metaproc-0.2.0/tests/test_typed_artifacts.py +260 -0
- metaproc-0.2.0/tests/test_usage.py +1332 -0
- metaproc-0.2.0/tests/test_usage_attribution.py +140 -0
- metaproc-0.2.0/tests/test_visual_overlay_scope.py +255 -0
- metaproc-0.2.0/tests/test_viz_css_no_literal_colors.py +43 -0
- metaproc-0.2.0/tests/test_viz_decorators.py +114 -0
- metaproc-0.2.0/tests/test_viz_dep_containment.py +66 -0
- metaproc-0.2.0/tests/test_viz_js_build_elk_input.py +500 -0
- metaproc-0.2.0/tests/test_viz_models.py +193 -0
- metaproc-0.2.0/tests/test_viz_project.py +463 -0
- metaproc-0.2.0/tests/test_viz_render.py +183 -0
- metaproc-0.2.0/tests/test_worker_dispatch.py +621 -0
- metaproc-0.2.0/tests/test_worker_entrypoint.py +284 -0
- metaproc-0.2.0/tests/test_worker_payload.py +153 -0
- metaproc-0.2.0/tests/test_write_boundary.py +177 -0
- metaproc-0.2.0/tests/test_yaml_repair.py +143 -0
- metaproc-0.2.0/tsconfig.json +28 -0
- metaproc-0.2.0/types/metabrowser-plugin-host.d.ts +105 -0
- metaproc-0.2.0/uv.lock +2052 -0
- metaproc-0.2.0/uv.toml +9 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────
|
|
2
|
+
# .env.example — generated from the MetaprocEnv registry.
|
|
3
|
+
#
|
|
4
|
+
# DO NOT EDIT BY HAND. To regenerate after a registry change:
|
|
5
|
+
# uv --config-file uv.toml run --frozen metaproc env --template > .env.example
|
|
6
|
+
# CI gates this file via tests/test_env_template.py.
|
|
7
|
+
#
|
|
8
|
+
# Copy to .env (gitignored) and replace placeholder values.
|
|
9
|
+
# metaproc auto-loads .env on CLI bootstrap, so every variable here is
|
|
10
|
+
# picked up by every `metaproc` command.
|
|
11
|
+
#
|
|
12
|
+
# Legend:
|
|
13
|
+
# REAL — real default for this project, copy as-is
|
|
14
|
+
# SECRET — illustration only, MUST be replaced with a real secret
|
|
15
|
+
# TUNABLE — sensible default, change only if your situation requires it
|
|
16
|
+
# OPTIONAL — commented out by default; uncomment and set if needed
|
|
17
|
+
# ─────────────────────────────────────────────────────────────
|
|
18
|
+
|
|
19
|
+
# TUNABLE — GCP project ID for Batch / Compute operations.
|
|
20
|
+
export METAPROC_GCP_PROJECT=<your-gcp-project-id>
|
|
21
|
+
|
|
22
|
+
# TUNABLE — Custom service account for Batch VMs. Required in practice — the
|
|
23
|
+
# default compute SA lacks Secret Manager access, so Batch jobs fail silently
|
|
24
|
+
# without it.
|
|
25
|
+
export METAPROC_GCP_SERVICE_ACCOUNT=<worker-sa>@<your-gcp-project-id>.iam.gserviceaccount.com
|
|
26
|
+
|
|
27
|
+
# TUNABLE — Docker image URI for the GCP Batch agent.
|
|
28
|
+
export METAPROC_GCP_CONTAINER_IMAGE=<region>-docker.pkg.dev/<your-gcp-project-id>/<your-repo>/agent:latest
|
|
29
|
+
|
|
30
|
+
# TUNABLE — GCP region for Batch jobs.
|
|
31
|
+
export METAPROC_GCP_REGION=us-central1
|
|
32
|
+
|
|
33
|
+
# TUNABLE — Filestore NFS server IP for shared run artifact storage.
|
|
34
|
+
export METAPROC_GCP_FILESTORE_SERVER=10.0.0.10
|
|
35
|
+
|
|
36
|
+
# TUNABLE — NFS share name on the Filestore instance.
|
|
37
|
+
export METAPROC_GCP_FILESTORE_SHARE=/<your-share-name>
|
|
38
|
+
|
|
39
|
+
# TUNABLE — Local mount point for the Filestore share on worker VMs.
|
|
40
|
+
export METAPROC_GCP_FILESTORE_MOUNT_PATH=/mnt/filestore
|
|
41
|
+
|
|
42
|
+
# TUNABLE — Runs directory on the Filestore mount, used by remote monitoring
|
|
43
|
+
# commands.
|
|
44
|
+
export METAPROC_GCP_FILESTORE_REMOTE_RUNS_DIR=/mnt/filestore/runs
|
|
45
|
+
|
|
46
|
+
# TUNABLE — Boot disk size (GB) for worker VMs.
|
|
47
|
+
export METAPROC_GCP_BOOT_DISK_GB=50
|
|
48
|
+
|
|
49
|
+
# TUNABLE — Max run duration (seconds) per Batch task.
|
|
50
|
+
export METAPROC_GCP_MAX_RUN_DURATION_S=28800
|
|
51
|
+
|
|
52
|
+
# TUNABLE — GCS bucket for run artifact sync and wheel / workspace uploads.
|
|
53
|
+
export METAPROC_GCS_BUCKET=<your-gcs-bucket>
|
|
54
|
+
|
|
55
|
+
# TUNABLE — Git repo URL that worker containers clone to obtain project code.
|
|
56
|
+
export METAPROC_REPO_URL=https://github.com/<your-org>/<your-repo>.git
|
|
57
|
+
|
|
58
|
+
# TUNABLE — Git branch workers check out. Typically your current branch or
|
|
59
|
+
# `main`.
|
|
60
|
+
export METAPROC_RUN_BRANCH=main
|
|
61
|
+
|
|
62
|
+
# TUNABLE — Repo-relative path containing Metaproc's pyproject.toml for editable
|
|
63
|
+
# remote installs.
|
|
64
|
+
export METAPROC_REPO_PACKAGE_PATH=.
|
|
65
|
+
|
|
66
|
+
# OPTIONAL — GCS path to a prebuilt metaproc wheel. When set, workers install
|
|
67
|
+
# from the wheel instead of cloning.
|
|
68
|
+
# export METAPROC_WHEEL_GCS=gs://<your-gcs-bucket>/wheels/metaproc-0.2.0-py3-none-any.whl
|
|
69
|
+
|
|
70
|
+
# OPTIONAL — GCS path to a workspace tarball for the active workflow plugin.
|
|
71
|
+
# When set, workers extract and install the plugin from the tarball instead of
|
|
72
|
+
# cloning.
|
|
73
|
+
# export METAPROC_WORKSPACE_GCS=gs://<your-gcs-bucket>/workspaces/<your-plugin>.tar.gz
|
|
74
|
+
|
|
75
|
+
# OPTIONAL — GCE machine type for orchestrator-launched worker VMs.
|
|
76
|
+
# export METAPROC_MACHINE_TYPE=e2-standard-4
|
|
77
|
+
|
|
78
|
+
# OPTIONAL — GCE machine type override for `run-process --backend gcp-worker`
|
|
79
|
+
# fan-out workers. Distinct from METAPROC_MACHINE_TYPE, which scopes the
|
|
80
|
+
# orchestrator-launched worker VMs.
|
|
81
|
+
# export METAPROC_GCP_MACHINE_TYPE=e2-highmem-8
|
|
82
|
+
|
|
83
|
+
# OPTIONAL — SSH gateway host for `metaproc gcp remote` commands.
|
|
84
|
+
# export METAPROC_GATEWAY_HOST=<your-gateway-host>
|
|
85
|
+
|
|
86
|
+
# SECRET — Base64-encoded service-account JSON for GCP auth. Alternative to ADC.
|
|
87
|
+
export GCP_CREDENTIALS_BASE64=REPLACE_WITH_BASE64_ENCODED_SERVICE_ACCOUNT_JSON
|
|
88
|
+
|
|
89
|
+
# SECRET — GitHub personal access token for gh-backed workflows.
|
|
90
|
+
export GH_TOKEN=REPLACE_WITH_GITHUB_TOKEN
|
|
91
|
+
|
|
92
|
+
# REAL — When truthy, the `gh` CLI skips interactive prompts.
|
|
93
|
+
export GH_PROMPT_DISABLED=1
|
|
94
|
+
|
|
95
|
+
# SECRET — Perplexity API key used by the web search provider.
|
|
96
|
+
export PERPLEXITY_API_KEY=your_api_key_here
|
|
97
|
+
|
|
98
|
+
# SECRET — Anthropic API key for direct Claude adapter use.
|
|
99
|
+
export ANTHROPIC_API_KEY=REPLACE_WITH_ANTHROPIC_API_KEY
|
|
100
|
+
|
|
101
|
+
# SECRET — OpenAI API key used by the PI CLI adapter and the codex-cli adapter
|
|
102
|
+
# (Vehicle A, API-key mode).
|
|
103
|
+
export OPENAI_API_KEY=REPLACE_WITH_OPENAI_API_KEY
|
|
104
|
+
|
|
105
|
+
# SECRET — DeepSeek API key for the pi-cli `deepseek` provider (DeepSeek V4
|
|
106
|
+
# family, direct API).
|
|
107
|
+
export DEEPSEEK_API_KEY=REPLACE_WITH_DEEPSEEK_API_KEY
|
|
108
|
+
|
|
109
|
+
# SECRET — Moonshot API key for the pi-cli `moonshot` provider (Kimi K2.6,
|
|
110
|
+
# direct API).
|
|
111
|
+
export MOONSHOT_API_KEY=REPLACE_WITH_MOONSHOT_API_KEY
|
|
112
|
+
|
|
113
|
+
# SECRET — Gemini API key for direct (non-Vertex) Gemini adapter use.
|
|
114
|
+
export GEMINI_API_KEY=REPLACE_WITH_GEMINI_API_KEY
|
|
115
|
+
|
|
116
|
+
# SECRET — Google API key for direct Gemini adapter fallback.
|
|
117
|
+
export GOOGLE_API_KEY=REPLACE_WITH_GOOGLE_API_KEY
|
|
118
|
+
|
|
119
|
+
# OPTIONAL — GCP Secret Manager ref that provides GH_TOKEN to Batch workers.
|
|
120
|
+
# export METAPROC_GCP_SECRET_GH_TOKEN=projects/<your-gcp-project-id>/secrets/<secret-name>/versions/latest
|
|
121
|
+
|
|
122
|
+
# SECRET — Claude Code OAuth credential blob injected into Batch workers from
|
|
123
|
+
# Secret Manager.
|
|
124
|
+
export CLAUDE_CODE_CREDS_JSON=REPLACE_WITH_CLAUDE_CODE_CREDS_JSON
|
|
125
|
+
|
|
126
|
+
# SECRET — Codex CLI ChatGPT-OAuth credential blob (contents of
|
|
127
|
+
# ~/.codex/auth.json) injected into Batch workers from Secret Manager. Vehicle B
|
|
128
|
+
# only — API-key mode arrives via OPENAI_API_KEY instead.
|
|
129
|
+
export CODEX_CREDS_JSON=REPLACE_WITH_CODEX_CREDS_JSON
|
|
130
|
+
|
|
131
|
+
# TUNABLE — Default per-step max concurrency. Edit here when Vertex MaaS DSQ
|
|
132
|
+
# quota changes.
|
|
133
|
+
export METAPROC_DEFAULT_MAX_CONCURRENCY=25
|
|
134
|
+
|
|
135
|
+
# TUNABLE — Default number of workers per step when not specified per-step.
|
|
136
|
+
export METAPROC_DEFAULT_NUM_WORKERS=1
|
|
137
|
+
|
|
138
|
+
# OPTIONAL — Runtime run-artifact parent directory passed to Metaproc. Required
|
|
139
|
+
# at workflow launch time; set explicitly or derive from workflow run settings.
|
|
140
|
+
# export RUNS_DIR=/absolute/path/to/runs
|
|
141
|
+
|
|
142
|
+
# OPTIONAL — metabrowser plugin parents to scan, os.pathsep-separated. Each
|
|
143
|
+
# subdirectory containing manifest.toml is loaded. Built-ins and Python entry-
|
|
144
|
+
# point plugins (e.g. metaproc's metabrowser_plugin subpackage) load
|
|
145
|
+
# automatically; this is the opt-in surface for ad-hoc / workspace-local
|
|
146
|
+
# plugins. Auto-discovery from the served root is intentionally NOT a source.
|
|
147
|
+
# export METABROWSER_PLUGINS_DIRS=/path/to/my-plugins:/path/to/team-plugins
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Additions to standard GitHub .gitignore:
|
|
2
|
+
*.bak
|
|
3
|
+
*.orig
|
|
4
|
+
node_modules/
|
|
5
|
+
tmp/
|
|
6
|
+
trash/
|
|
7
|
+
attic/
|
|
8
|
+
.kash/
|
|
9
|
+
.runs/
|
|
10
|
+
**/.logs/
|
|
11
|
+
**/.state/
|
|
12
|
+
|
|
13
|
+
# Python tool caches
|
|
14
|
+
.ruff_cache/
|
|
15
|
+
|
|
16
|
+
# GitHub's standard Python .gitignore:
|
|
17
|
+
|
|
18
|
+
# Byte-compiled / optimized / DLL files
|
|
19
|
+
__pycache__/
|
|
20
|
+
*.py[cod]
|
|
21
|
+
*$py.class
|
|
22
|
+
|
|
23
|
+
# C extensions
|
|
24
|
+
*.so
|
|
25
|
+
|
|
26
|
+
# Distribution / packaging
|
|
27
|
+
.Python
|
|
28
|
+
build/
|
|
29
|
+
develop-eggs/
|
|
30
|
+
dist/
|
|
31
|
+
downloads/
|
|
32
|
+
eggs/
|
|
33
|
+
.eggs/
|
|
34
|
+
lib/
|
|
35
|
+
lib64/
|
|
36
|
+
parts/
|
|
37
|
+
sdist/
|
|
38
|
+
var/
|
|
39
|
+
wheels/
|
|
40
|
+
share/python-wheels/
|
|
41
|
+
*.egg-info/
|
|
42
|
+
.installed.cfg
|
|
43
|
+
*.egg
|
|
44
|
+
MANIFEST
|
|
45
|
+
|
|
46
|
+
# PyInstaller
|
|
47
|
+
# Usually these files are written by a python script from a template
|
|
48
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
49
|
+
*.manifest
|
|
50
|
+
*.spec
|
|
51
|
+
|
|
52
|
+
# Installer logs
|
|
53
|
+
pip-log.txt
|
|
54
|
+
pip-delete-this-directory.txt
|
|
55
|
+
|
|
56
|
+
# Unit test / coverage reports
|
|
57
|
+
htmlcov/
|
|
58
|
+
.tox/
|
|
59
|
+
.nox/
|
|
60
|
+
.coverage
|
|
61
|
+
.coverage.*
|
|
62
|
+
.cache
|
|
63
|
+
nosetests.xml
|
|
64
|
+
coverage.xml
|
|
65
|
+
*.cover
|
|
66
|
+
*.py,cover
|
|
67
|
+
.hypothesis/
|
|
68
|
+
.pytest_cache/
|
|
69
|
+
cover/
|
|
70
|
+
|
|
71
|
+
# Translations
|
|
72
|
+
*.mo
|
|
73
|
+
*.pot
|
|
74
|
+
|
|
75
|
+
# Django stuff:
|
|
76
|
+
*.log
|
|
77
|
+
!tests/fixtures/claude_api_signals/oauth_refresh_400.log
|
|
78
|
+
local_settings.py
|
|
79
|
+
db.sqlite3
|
|
80
|
+
db.sqlite3-journal
|
|
81
|
+
|
|
82
|
+
# Flask stuff:
|
|
83
|
+
instance/
|
|
84
|
+
.webassets-cache
|
|
85
|
+
|
|
86
|
+
# Scrapy stuff:
|
|
87
|
+
.scrapy
|
|
88
|
+
|
|
89
|
+
# Sphinx documentation
|
|
90
|
+
docs/_build/
|
|
91
|
+
|
|
92
|
+
# PyBuilder
|
|
93
|
+
.pybuilder/
|
|
94
|
+
target/
|
|
95
|
+
|
|
96
|
+
# Jupyter Notebook
|
|
97
|
+
.ipynb_checkpoints
|
|
98
|
+
|
|
99
|
+
# IPython
|
|
100
|
+
profile_default/
|
|
101
|
+
ipython_config.py
|
|
102
|
+
|
|
103
|
+
# pyenv
|
|
104
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
105
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
106
|
+
# .python-version
|
|
107
|
+
|
|
108
|
+
# pipenv
|
|
109
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
110
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
111
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
112
|
+
# install all needed dependencies.
|
|
113
|
+
#Pipfile.lock
|
|
114
|
+
|
|
115
|
+
# UV
|
|
116
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
117
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
118
|
+
# commonly ignored for libraries.
|
|
119
|
+
#uv.lock
|
|
120
|
+
|
|
121
|
+
# poetry
|
|
122
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
123
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
124
|
+
# commonly ignored for libraries.
|
|
125
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
126
|
+
#poetry.lock
|
|
127
|
+
|
|
128
|
+
# pdm
|
|
129
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
130
|
+
#pdm.lock
|
|
131
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
132
|
+
# in version control.
|
|
133
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
134
|
+
.pdm.toml
|
|
135
|
+
.pdm-python
|
|
136
|
+
.pdm-build/
|
|
137
|
+
|
|
138
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
139
|
+
__pypackages__/
|
|
140
|
+
|
|
141
|
+
# Celery stuff
|
|
142
|
+
celerybeat-schedule
|
|
143
|
+
celerybeat.pid
|
|
144
|
+
|
|
145
|
+
# SageMath parsed files
|
|
146
|
+
*.sage.py
|
|
147
|
+
|
|
148
|
+
# Environments
|
|
149
|
+
.env
|
|
150
|
+
.venv
|
|
151
|
+
env/
|
|
152
|
+
venv/
|
|
153
|
+
ENV/
|
|
154
|
+
env.bak/
|
|
155
|
+
venv.bak/
|
|
156
|
+
|
|
157
|
+
# Spyder project settings
|
|
158
|
+
.spyderproject
|
|
159
|
+
.spyproject
|
|
160
|
+
|
|
161
|
+
# Rope project settings
|
|
162
|
+
.ropeproject
|
|
163
|
+
|
|
164
|
+
# mkdocs documentation
|
|
165
|
+
/site
|
|
166
|
+
|
|
167
|
+
# mypy
|
|
168
|
+
.mypy_cache/
|
|
169
|
+
.dmypy.json
|
|
170
|
+
dmypy.json
|
|
171
|
+
|
|
172
|
+
# Pyre type checker
|
|
173
|
+
.pyre/
|
|
174
|
+
|
|
175
|
+
# pytype static type analyzer
|
|
176
|
+
.pytype/
|
|
177
|
+
|
|
178
|
+
# Cython debug symbols
|
|
179
|
+
cython_debug/
|
|
180
|
+
|
|
181
|
+
# PyCharm
|
|
182
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
183
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
184
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
185
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
186
|
+
#.idea/
|
|
187
|
+
|
|
188
|
+
# PyPI configuration file
|
|
189
|
+
.pypirc
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
24.18.0
|
metaproc-0.2.0/.npmrc
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Supply-chain safety. See SUPPLY-CHAIN-SECURITY.md.
|
|
2
|
+
|
|
3
|
+
# Block install/lifecycle scripts by default (the primary exfiltration vector).
|
|
4
|
+
# The repo's git hooks are installed explicitly via `npm run prepare` (an explicit
|
|
5
|
+
# `npm run` still executes under ignore-scripts; install-time scripts do not).
|
|
6
|
+
ignore-scripts=true
|
|
7
|
+
engine-strict=true
|
|
8
|
+
|
|
9
|
+
# Pin exact versions on `npm install <pkg>` and always maintain the lockfile.
|
|
10
|
+
save-exact=true
|
|
11
|
+
package-lock=true
|
|
12
|
+
|
|
13
|
+
# 14-day cool-off floor: npm only resolves versions published >=14 days ago.
|
|
14
|
+
# NOTE: `min-release-age` (days) is the npm key, honored on npm 11.10+. The
|
|
15
|
+
# minutes-based `minimum-release-age` key is pnpm-only and silently ignored by
|
|
16
|
+
# npm. On older npm, the cool-off is enforced via NPM_CONFIG_BEFORE in the shell
|
|
17
|
+
# env plus the committed lockfile + frozen `npm ci` installs. Repository
|
|
18
|
+
# workflows pin a compatible Node/npm pair and remove conflicting ambient
|
|
19
|
+
# package-manager variables before invoking npm.
|
|
20
|
+
min-release-age=14
|
metaproc-0.2.0/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
24.18.0
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable user-facing changes are recorded here.
|
|
4
|
+
|
|
5
|
+
This project uses [Semantic Versioning](https://semver.org/) while it is in the 0.x
|
|
6
|
+
development series.
|
|
7
|
+
|
|
8
|
+
## [Unreleased][unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.2.0][] - 2026-07-31
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Dependency-aware execution of Markdown process specs.
|
|
15
|
+
- Local, agent-CLI, and optional GCP Batch execution backends.
|
|
16
|
+
- Resumable run state, validation, tracing, resource reports, and RunPool controls.
|
|
17
|
+
- Credential-pool operations and adapter integrations.
|
|
18
|
+
- A packaged Metabrowser plugin and portable Agent Skill.
|
|
19
|
+
- Reproducible uv-based development, verification, build, and publishing workflows.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Require `softschema>=0.4.0,<0.5` and `frontmatter-format>=0.4.0,<0.5` (previously
|
|
24
|
+
`softschema>=0.1.4,<0.2` and `frontmatter-format>=0.3.0`). See the
|
|
25
|
+
[softschema 0.2.0](https://github.com/jlevy/softschema/releases/tag/v0.2.0) and
|
|
26
|
+
[softschema 0.3.0](https://github.com/jlevy/softschema/releases/tag/v0.3.0),
|
|
27
|
+
[softschema 0.4.0](https://github.com/jlevy/softschema/releases/tag/v0.4.0), and
|
|
28
|
+
[frontmatter-format 0.4.0](https://github.com/jlevy/frontmatter-format/releases/tag/v0.4.0)
|
|
29
|
+
release notes for the complete upstream migration surface.
|
|
30
|
+
- `metaproc softschema validate` now includes softschema’s `outcome` discriminator
|
|
31
|
+
(`valid`, `invalid`, or `input_error`) alongside the existing `ok` field.
|
|
32
|
+
- Mapping-based YAML and frontmatter writes are deterministic and alias-free: repeated
|
|
33
|
+
lists and mappings are expanded instead of emitting anchors.
|
|
34
|
+
Cyclic values raise `YamlSerializationError` without replacing an existing target.
|
|
35
|
+
|
|
36
|
+
### Breaking
|
|
37
|
+
|
|
38
|
+
- `metaproc softschema compile` now requires `--contract CONTRACT_ID`. softschema 0.3
|
|
39
|
+
makes the contract id a required input to `compile_model`, so the sidecar always
|
|
40
|
+
records the contract it was compiled for.
|
|
41
|
+
- Softschema 0.2 enforces the contract-id grammar `[namespace:]Name[/version]`. This
|
|
42
|
+
applies to plugin `Contract` registrations, process-spec `schema` fields, artifact
|
|
43
|
+
`softschema.contract` metadata, and the `--schema` and `--contract` CLI options.
|
|
44
|
+
All externally authored IDs must use the new form.
|
|
45
|
+
Metaproc’s structure-report ID is now `metaproc:StructureReport/v1`, renamed from
|
|
46
|
+
`metaproc.structure_report.v1`; the other built-in IDs were already valid.
|
|
47
|
+
- Structure reports written by earlier versions no longer validate.
|
|
48
|
+
Regenerate them with `metaproc structure-report`, or update both `softschema.contract`
|
|
49
|
+
and `structure_report.schema` to `metaproc:StructureReport/v1`.
|
|
50
|
+
- Softschema 0.3 and 0.4 restrict YAML inputs to bounded, JSON-compatible values.
|
|
51
|
+
Aliases and anchors, merge keys, explicit tags, duplicate or non-string keys, unsafe
|
|
52
|
+
integers, negative zero, non-finite numbers, excessive depth, and oversized inputs are
|
|
53
|
+
rejected. Bare and quoted date- or timestamp-shaped scalars are accepted as strings in
|
|
54
|
+
0.4; callers that need temporal objects must construct them explicitly after
|
|
55
|
+
validation.
|
|
56
|
+
- Compiled schemas are validated offline and remote `$ref` targets are never fetched
|
|
57
|
+
implicitly. Schemas consumed through Metaproc must be self-contained: use local `$defs`
|
|
58
|
+
references or a registered Pydantic model instead of network-resolved references.
|
|
59
|
+
|
|
60
|
+
[unreleased]: https://github.com/jlevy/metaproc/compare/v0.2.0...HEAD
|
|
61
|
+
[0.2.0]: https://github.com/jlevy/metaproc/releases/tag/v0.2.0
|