procesio-cli 0.1.1__py3-none-any.whl
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.
- procesio_cli/__init__.py +18 -0
- procesio_cli/_cli.py +71 -0
- procesio_cli/agents/__init__.py +0 -0
- procesio_cli/agents/_lib/__init__.py +0 -0
- procesio_cli/agents/_lib/actiondef.py +24 -0
- procesio_cli/agents/_lib/errors.py +40 -0
- procesio_cli/agents/_lib/reversibility.py +236 -0
- procesio_cli/agents/_lib/toolrunner.py +141 -0
- procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PLAYBOOK.md +62 -0
- procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PROCESIO-INTEROP.md +76 -0
- procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-TROUBLESHOOTING.md +60 -0
- procesio_cli/agents/connector-builder/README.md +51 -0
- procesio_cli/agents/connector-builder/agent.yaml +61 -0
- procesio_cli/agents/connector-builder/context.py +19 -0
- procesio_cli/agents/connector-builder/handlers/__init__.py +1 -0
- procesio_cli/agents/connector-builder/handlers/checklist.py +71 -0
- procesio_cli/agents/connector-builder/handlers/guidance.py +37 -0
- procesio_cli/agents/connector-builder/handlers/nextstep.py +221 -0
- procesio_cli/agents/connector-builder/handlers/status.py +35 -0
- procesio_cli/agents/connector-builder/knowledge.py +47 -0
- procesio_cli/agents/connector-builder/main.py +93 -0
- procesio_cli/agents/connector-builder/tests/conftest.py +95 -0
- procesio_cli/agents/connector-builder/tests/test_cba_agent.py +148 -0
- procesio_cli/agents/orchestrator/__init__.py +0 -0
- procesio_cli/agents/orchestrator/bootstraplib.py +166 -0
- procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/00-INDEX.md +60 -0
- procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/01-PROCESSES.md +230 -0
- procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/02-FORMS.md +287 -0
- procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/03-INTEGRATIONS.md +384 -0
- procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/04-DATABASE.md +293 -0
- procesio_cli/agents/procesio/PROCESIO-API-RELIABILITY-DOCTRINE.md +113 -0
- procesio_cli/agents/procesio/PROCESIO-BEST-PRACTICES.md +316 -0
- procesio_cli/agents/procesio/PROCESIO-BUILD-AND-TEST-PLAYBOOK.md +217 -0
- procesio_cli/agents/procesio/PROCESIO-DATASTORE.md +72 -0
- procesio_cli/agents/procesio/PROCESIO-ENVIRONMENTS.md +62 -0
- procesio_cli/agents/procesio/PROCESIO-SCHEDULING.md +47 -0
- procesio_cli/agents/procesio/PROCESIO-VISUAL-ORGANIZATION.md +175 -0
- procesio_cli/agents/procesio/README.md +97 -0
- procesio_cli/agents/procesio/__init__.py +0 -0
- procesio_cli/agents/procesio/agent.yaml +73 -0
- procesio_cli/agents/procesio/audit.py +226 -0
- procesio_cli/agents/procesio/checklist.py +135 -0
- procesio_cli/agents/procesio/context.py +19 -0
- procesio_cli/agents/procesio/handlers/__init__.py +0 -0
- procesio_cli/agents/procesio/handlers/audit.py +39 -0
- procesio_cli/agents/procesio/handlers/checklist.py +34 -0
- procesio_cli/agents/procesio/handlers/guidance.py +36 -0
- procesio_cli/agents/procesio/handlers/status.py +33 -0
- procesio_cli/agents/procesio/handlers/verify.py +39 -0
- procesio_cli/agents/procesio/knowledge.py +115 -0
- procesio_cli/agents/procesio/main.py +89 -0
- procesio_cli/agents/procesio/tests/__init__.py +0 -0
- procesio_cli/agents/procesio/tests/conftest.py +62 -0
- procesio_cli/agents/procesio/tests/test_audit.py +91 -0
- procesio_cli/agents/procesio/tests/test_checklist.py +28 -0
- procesio_cli/agents/procesio/tests/test_guidance.py +78 -0
- procesio_cli/agents/procesio/tests/test_manifest_sync.py +48 -0
- procesio_cli/agents/procesio/tests/test_verify.py +134 -0
- procesio_cli/agents/procesio/tests/test_workspace_scope.py +97 -0
- procesio_cli/agents/procesio/verifylib.py +222 -0
- procesio_cli/dashboard/README.md +117 -0
- procesio_cli/dashboard/__init__.py +18 -0
- procesio_cli/dashboard/serve.py +98 -0
- procesio_cli/dashboard/server/__init__.py +1 -0
- procesio_cli/dashboard/server/config_schemas.py +92 -0
- procesio_cli/dashboard/server/google.py +103 -0
- procesio_cli/dashboard/server/handler.py +160 -0
- procesio_cli/dashboard/server/inventory.py +213 -0
- procesio_cli/dashboard/server/jobs.py +118 -0
- procesio_cli/dashboard/server/llmtest.py +181 -0
- procesio_cli/dashboard/server/procesio_env.py +94 -0
- procesio_cli/dashboard/server/routes.py +74 -0
- procesio_cli/dashboard/server/runner.py +150 -0
- procesio_cli/dashboard/server/security.py +29 -0
- procesio_cli/dashboard/server/setup.py +211 -0
- procesio_cli/dashboard/server/validate.py +152 -0
- procesio_cli/dashboard/tests/conftest.py +16 -0
- procesio_cli/dashboard/tests/test_dashboard.py +225 -0
- procesio_cli/dashboard/tests/test_procesio_env.py +159 -0
- procesio_cli/dashboard/web/actions.js +274 -0
- procesio_cli/dashboard/web/api.js +79 -0
- procesio_cli/dashboard/web/app.js +385 -0
- procesio_cli/dashboard/web/copilot.js +72 -0
- procesio_cli/dashboard/web/google.js +121 -0
- procesio_cli/dashboard/web/index.html +67 -0
- procesio_cli/dashboard/web/procesio_env.js +187 -0
- procesio_cli/dashboard/web/styles.css +207 -0
- procesio_cli/registry.py +370 -0
- procesio_cli/scripts/build-router.py +249 -0
- procesio_cli/scripts/build-tool-skill.py +202 -0
- procesio_cli/scripts/check-requirements.py +131 -0
- procesio_cli/scripts/check-skill-governance.py +174 -0
- procesio_cli/scripts/evaluate-skill-routing.py +217 -0
- procesio_cli/scripts/evaluate-skills.py +316 -0
- procesio_cli/scripts/get-skill.py +122 -0
- procesio_cli/scripts/list-skills.py +68 -0
- procesio_cli/scripts/list-tools.py +73 -0
- procesio_cli/scripts/run-agent.py +59 -0
- procesio_cli/scripts/run-tool.py +123 -0
- procesio_cli/scripts/secret_scan.py +584 -0
- procesio_cli/scripts/set-credential.py +126 -0
- procesio_cli/scripts/validate-skills.py +530 -0
- procesio_cli/skills/PORTFOLIO.md +134 -0
- procesio_cli/skills/__init__.py +6 -0
- procesio_cli/skills/agent-skill-engineer/SKILL.md +226 -0
- procesio_cli/skills/agent-skill-engineer/evals/evals.json +422 -0
- procesio_cli/skills/agent-skill-engineer/references/authoring-standard.md +178 -0
- procesio_cli/skills/agent-skill-engineer/references/decision-framework.md +107 -0
- procesio_cli/skills/agent-skill-engineer/references/domain-evidence-protocol.md +248 -0
- procesio_cli/skills/agent-skill-engineer/references/evaluation-standard.md +191 -0
- procesio_cli/skills/agent-skill-engineer/references/expert-lenses.md +167 -0
- procesio_cli/skills/agent-skill-engineer/references/field-gate-standard.md +231 -0
- procesio_cli/skills/agent-skill-engineer/references/optimization-protocol.md +233 -0
- procesio_cli/skills/agent-skill-engineer/references/optimizer-contract.md +268 -0
- procesio_cli/skills/agent-skill-engineer/references/portability-standard.md +99 -0
- procesio_cli/skills/agent-skill-engineer/references/research-basis.md +128 -0
- procesio_cli/skills/agent-skill-engineer/references/review-standard.md +143 -0
- procesio_cli/skills/agent-skill-engineer/scripts/audit_skill.py +959 -0
- procesio_cli/skills/agent-skill-engineer/scripts/optimize_skill.py +891 -0
- procesio_cli/skills/agent-skill-engineer/scripts/scaffold_skill.py +397 -0
- procesio_cli/skills/evals/baseline-catalog.json +14 -0
- procesio_cli/skills/evals/baseline-routing-v2.json +38 -0
- procesio_cli/skills/evals/baseline.json +37 -0
- procesio_cli/skills/evals/behavioral.json +367 -0
- procesio_cli/skills/evals/field-boundary-development-v1.json +126 -0
- procesio_cli/skills/evals/field-closeout-correction-development-v1.json +23 -0
- procesio_cli/skills/evals/field-closeout-development-v1.json +89 -0
- procesio_cli/skills/evals/portfolio-pressure-training-v1.json +83 -0
- procesio_cli/skills/evals/routing.json +363 -0
- procesio_cli/skills/evals/validation-baseline.json +4 -0
- procesio_cli/skills/procesio-cli/SKILL.md +134 -0
- procesio_cli/skills/procesio-cli/evals/evals.json +111 -0
- procesio_cli/skills/procesio-cli/evals/workflows.json +16 -0
- procesio_cli/skills/procesio-cli/references/connector-lifecycle.md +47 -0
- procesio_cli/skills/procesio-cli/references/credentials-admin.md +113 -0
- procesio_cli/skills/procesio-cli/references/data-verification.md +71 -0
- procesio_cli/skills/procesio-cli/references/documents-files.md +44 -0
- procesio_cli/skills/procesio-cli/references/form-e2e.md +57 -0
- procesio_cli/skills/procesio-cli/references/operation-contract.md +138 -0
- procesio_cli/skills/procesio-cli/references/process-debugging.md +65 -0
- procesio_cli/skills/procesio-cli/references/process-lifecycle.md +88 -0
- procesio_cli/skills/procesio-cli/references/schedules-webhooks.md +58 -0
- procesio_cli/skills/procesio-cli/references/transport-environments.md +53 -0
- procesio_cli/skills/procesio-cli-maintainer/SKILL.md +84 -0
- procesio_cli/skills/procesio-cli-maintainer/evals/evals.json +116 -0
- procesio_cli/skills/procesio-cli-maintainer/references/change-contract.md +34 -0
- procesio_cli/skills/procesio-cli-maintainer/references/mcp-compatibility.md +13 -0
- procesio_cli/skills/procesio-cli-maintainer/references/skill-authoring.md +51 -0
- procesio_cli/skills/procesio-platform-advisor/SKILL.md +82 -0
- procesio_cli/skills/procesio-platform-advisor/evals/evals.json +116 -0
- procesio_cli/skills/procesio-platform-advisor/references/capability-map.md +22 -0
- procesio_cli/skills/procesio-platform-advisor/references/fit-framework.md +35 -0
- procesio_cli/skills/procesio-platform-advisor/references/freshness-policy.md +25 -0
- procesio_cli/skills/procesio-platform-advisor/references/sizing-method.md +70 -0
- procesio_cli/skills/procesio-platform-advisor/scripts/estimate_capacity.py +99 -0
- procesio_cli/skills/procesio-setup/SKILL.md +180 -0
- procesio_cli/skills/sql-server-optimizer/SKILL.md +86 -0
- procesio_cli/skills/sql-server-optimizer/evals/evals.json +116 -0
- procesio_cli/skills/sql-server-optimizer/references/db-context.md +44 -0
- procesio_cli/skills/sql-server-optimizer/references/generic-mode.md +32 -0
- procesio_cli/skills/sql-server-optimizer/references/procesio-mode.md +40 -0
- procesio_cli/skills/sql-server-optimizer/references/sql-rules.md +43 -0
- procesio_cli/skills/sql-server-optimizer/scripts/export-indexes.sql +178 -0
- procesio_cli/skills/sql-server-optimizer/scripts/export-procs-and-functions.sql +118 -0
- procesio_cli/skills/sql-server-optimizer/scripts/export-tables.sql +367 -0
- procesio_cli/skills/tests/__init__.py +0 -0
- procesio_cli/skills/tests/test_agent_skill_engineer.py +240 -0
- procesio_cli/skills/tests/test_auth_failure_stop.py +25 -0
- procesio_cli/skills/tests/test_capacity_estimator.py +85 -0
- procesio_cli/skills/tests/test_field_boundary_learning.py +100 -0
- procesio_cli/skills/tests/test_field_closeout_learning.py +123 -0
- procesio_cli/skills/tests/test_field_gate_standard.py +76 -0
- procesio_cli/skills/tests/test_operational_playbooks.py +51 -0
- procesio_cli/skills/tests/test_portfolio_pressure_training.py +35 -0
- procesio_cli/skills/tests/test_process_lifecycle_single_run.py +25 -0
- procesio_cli/skills/tests/test_skill_evaluator.py +67 -0
- procesio_cli/skills/tests/test_skill_optimizer.py +473 -0
- procesio_cli/skills/tests/test_skill_portfolio_review.py +70 -0
- procesio_cli/skills/tests/test_skill_release_binding.py +204 -0
- procesio_cli/skills/tests/test_skill_routing.py +74 -0
- procesio_cli/skills/tests/test_skill_scaffold_v2.py +116 -0
- procesio_cli/skills/tests/test_validate_skills.py +115 -0
- procesio_cli/tools/__init__.py +0 -0
- procesio_cli/tools/_lib/README.md +119 -0
- procesio_cli/tools/_lib/__init__.py +0 -0
- procesio_cli/tools/_lib/accounting.py +120 -0
- procesio_cli/tools/_lib/contacts.py +544 -0
- procesio_cli/tools/_lib/creds.py +83 -0
- procesio_cli/tools/_lib/creds_backends.py +578 -0
- procesio_cli/tools/_lib/dbprofiles.py +147 -0
- procesio_cli/tools/_lib/dbquery.py +286 -0
- procesio_cli/tools/_lib/dbschema.py +225 -0
- procesio_cli/tools/_lib/io.py +54 -0
- procesio_cli/tools/_lib/manifest.py +297 -0
- procesio_cli/tools/_lib/skill_release.py +127 -0
- procesio_cli/tools/_lib/skill_resources.py +118 -0
- procesio_cli/tools/_lib/userdata.py +228 -0
- procesio_cli/tools/_lib/webserialize/__init__.py +16 -0
- procesio_cli/tools/_lib/webserialize/admin.py +61 -0
- procesio_cli/tools/_lib/webserialize/client.py +264 -0
- procesio_cli/tools/_lib/webserialize/config.py +96 -0
- procesio_cli/tools/_lib/webserialize/errors.py +27 -0
- procesio_cli/tools/_lib/webserialize/framing.py +45 -0
- procesio_cli/tools/_lib/webserialize/registry.py +47 -0
- procesio_cli/tools/_lib/webserialize/runtime.py +61 -0
- procesio_cli/tools/_lib/webserialize/server.py +510 -0
- procesio_cli/tools/_lib/websession.py +194 -0
- procesio_cli/tools/connector-builder/CONNECTOR-BUILDER-API-NOTES.md +91 -0
- procesio_cli/tools/connector-builder/README.md +101 -0
- procesio_cli/tools/connector-builder/SKILL.md +248 -0
- procesio_cli/tools/connector-builder/__init__.py +7 -0
- procesio_cli/tools/connector-builder/actiondef.py +24 -0
- procesio_cli/tools/connector-builder/client.py +251 -0
- procesio_cli/tools/connector-builder/errors.py +44 -0
- procesio_cli/tools/connector-builder/gen_manifest.py +142 -0
- procesio_cli/tools/connector-builder/handlers/__init__.py +1 -0
- procesio_cli/tools/connector-builder/handlers/admin.py +182 -0
- procesio_cli/tools/connector-builder/handlers/auth.py +74 -0
- procesio_cli/tools/connector-builder/handlers/builds.py +396 -0
- procesio_cli/tools/connector-builder/handlers/common.py +104 -0
- procesio_cli/tools/connector-builder/handlers/files.py +111 -0
- procesio_cli/tools/connector-builder/handlers/raw.py +38 -0
- procesio_cli/tools/connector-builder/handlers/telemetry.py +39 -0
- procesio_cli/tools/connector-builder/main.py +94 -0
- procesio_cli/tools/connector-builder/tests/conftest.py +146 -0
- procesio_cli/tools/connector-builder/tests/test_cb_client.py +86 -0
- procesio_cli/tools/connector-builder/tests/test_cb_dispatch.py +105 -0
- procesio_cli/tools/connector-builder/tests/test_cb_manifest_sync.py +76 -0
- procesio_cli/tools/connector-builder/tests/test_cb_wait.py +123 -0
- procesio_cli/tools/connector-builder/tool.yaml +671 -0
- procesio_cli/tools/framework-map/.gitattributes +2 -0
- procesio_cli/tools/framework-map/README.md +98 -0
- procesio_cli/tools/framework-map/SKILL.md +30 -0
- procesio_cli/tools/framework-map/app.js +188 -0
- procesio_cli/tools/framework-map/fm_builder.py +476 -0
- procesio_cli/tools/framework-map/fm_catalog.py +19 -0
- procesio_cli/tools/framework-map/fm_ro_catalog.py +94 -0
- procesio_cli/tools/framework-map/fm_strings.py +101 -0
- procesio_cli/tools/framework-map/main.py +95 -0
- procesio_cli/tools/framework-map/styles.css +214 -0
- procesio_cli/tools/framework-map/tests/conftest.py +33 -0
- procesio_cli/tools/framework-map/tests/test_fm_build.py +126 -0
- procesio_cli/tools/framework-map/tests/test_fm_manifest_sync.py +63 -0
- procesio_cli/tools/framework-map/tests/test_fm_store_tree.py +75 -0
- procesio_cli/tools/framework-map/tool.yaml +61 -0
- procesio_cli/tools/mysql/MOVED-TO-CENTRAL.md +29 -0
- procesio_cli/tools/mysql/README.md +196 -0
- procesio_cli/tools/mysql/SKILL.md +37 -0
- procesio_cli/tools/mysql/__init__.py +0 -0
- procesio_cli/tools/mysql/connection.py +191 -0
- procesio_cli/tools/mysql/main.py +487 -0
- procesio_cli/tools/mysql/profiles.template.json +1 -0
- procesio_cli/tools/mysql/schema.py +434 -0
- procesio_cli/tools/mysql/tests/__init__.py +0 -0
- procesio_cli/tools/mysql/tests/conftest.py +21 -0
- procesio_cli/tools/mysql/tests/test_manifest_sync.py +68 -0
- procesio_cli/tools/mysql/tests/test_mysql.py +201 -0
- procesio_cli/tools/mysql/tests/test_mysql_schema.py +337 -0
- procesio_cli/tools/mysql/tool.yaml +112 -0
- procesio_cli/tools/procesio/DTO-SUBTOOLS-NOTE.md +360 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/00-INDEX.md +67 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/01-ANATOMY.md +209 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/02-CODE-INJECTION.md +309 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/03-DOM-CONTRACT.md +370 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/04-INTERACTION-RECIPES.md +600 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/05-STEPPER-AND-MOTION.md +426 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/06-PROCESS-INTEGRATION.md +347 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/07-DEPLOY-WORKFLOW.md +294 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/08-PITFALLS.md +569 -0
- procesio_cli/tools/procesio/FORM-DEV-GUIDE/09-NAVIGATION-AND-HOSTING.md +308 -0
- procesio_cli/tools/procesio/PHASE4-E2E-NOTES.md +594 -0
- procesio_cli/tools/procesio/PROCESIO-API-CORRECTIONS.md +295 -0
- procesio_cli/tools/procesio/PROCESIO-API-NOTES.md +6976 -0
- procesio_cli/tools/procesio/PROCESIO-AUTH-NOTES.md +226 -0
- procesio_cli/tools/procesio/PROCESIO-CARD-BUILD-NOTES.md +183 -0
- procesio_cli/tools/procesio/PROCESIO-CONNECTORS-NOTES.md +141 -0
- procesio_cli/tools/procesio/PROCESIO-CUSTOM-ACTION-NOTES.md +179 -0
- procesio_cli/tools/procesio/PROCESIO-DOCS-FIX-REPORT.md +123 -0
- procesio_cli/tools/procesio/PROCESIO-ENVIRONMENTS-NOTES.md +94 -0
- procesio_cli/tools/procesio/PROCESIO-FE-VALIDATION-NOTES.md +107 -0
- procesio_cli/tools/procesio/PROCESIO-FOREACH-NOTES.md +199 -0
- procesio_cli/tools/procesio/PROCESIO-FORM-API-HANG-NOTE.md +101 -0
- procesio_cli/tools/procesio/PROCESIO-FORM-SUBMISSION-NOTES.md +172 -0
- procesio_cli/tools/procesio/PROCESIO-HTML-TO-DOCX-NOTES.md +110 -0
- procesio_cli/tools/procesio/PROCESIO-INSTANCE-HISTORY-NOTES.md +242 -0
- procesio_cli/tools/procesio/PROCESIO-METERING-NOTES.md +201 -0
- procesio_cli/tools/procesio/PROCESIO-NODE-CODE-NOTES.md +279 -0
- procesio_cli/tools/procesio/PROCESIO-NODE-MODULE-WHITELIST.md +113 -0
- procesio_cli/tools/procesio/PROCESIO-PYTHON-ACTION-NOTES.md +165 -0
- procesio_cli/tools/procesio/PROCESIO-QUERY-STORE-NOTES.md +826 -0
- procesio_cli/tools/procesio/PROCESIO-RECONCILIATION-PATTERNS.md +104 -0
- procesio_cli/tools/procesio/PROCESIO-RESOURCE-MODEL-NOTES.md +1100 -0
- procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-CRED-OPTIONALITY.md +45 -0
- procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-NOTES.md +252 -0
- procesio_cli/tools/procesio/PROCESIO-SQL-ACTIONS-NOTES.md +284 -0
- procesio_cli/tools/procesio/PROCESIO-USAGE-GUIDE.md +219 -0
- procesio_cli/tools/procesio/README.md +341 -0
- procesio_cli/tools/procesio/SCHEDULE-INPUT-SECURITY-NOTES.md +63 -0
- procesio_cli/tools/procesio/SKILL.md +694 -0
- procesio_cli/tools/procesio/__init__.py +1 -0
- procesio_cli/tools/procesio/actiondef.py +27 -0
- procesio_cli/tools/procesio/assets/html2docx/html2docx.js +2155 -0
- procesio_cli/tools/procesio/auth.py +354 -0
- procesio_cli/tools/procesio/autogen.py +121 -0
- procesio_cli/tools/procesio/client.py +355 -0
- procesio_cli/tools/procesio/config.py +96 -0
- procesio_cli/tools/procesio/data/endpoints.json +2901 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/01-authentication.md +180 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/02-conventions.md +116 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/ANONYMOUS-SURFACE.md +51 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/README.md +104 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/SYMBOL-INDEX.md +444 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/03-auth-users-workspaces.md +731 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/04-processes.md +913 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/05-actions.md +605 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/06-files.md +237 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/07-forms-documents.md +985 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/08-credentials.md +532 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/09-datastore-datatypes.md +830 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/10-custom-urls.md +319 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/11-subscriptions-resources-analytics.md +455 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/12-webhooks-notifications-misc.md +519 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/13-realtime-signalr.md +153 -0
- procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/99-internal-and-other-services.md +52 -0
- procesio_cli/tools/procesio/docs_info/FormBuilder mock.ts +5725 -0
- procesio_cli/tools/procesio/docs_info/Procesio Platform Actions.json +30219 -0
- procesio_cli/tools/procesio/docs_info/form-config-enums.ts +92 -0
- procesio_cli/tools/procesio/docs_info/form-theme.ts +1603 -0
- procesio_cli/tools/procesio/docs_info/process-validation-reference-1.md +2739 -0
- procesio_cli/tools/procesio/dto/__init__.py +13 -0
- procesio_cli/tools/procesio/dto/credential/builder.py +179 -0
- procesio_cli/tools/procesio/dto/credential/config.schema.json +19 -0
- procesio_cli/tools/procesio/dto/credential/description.md +193 -0
- procesio_cli/tools/procesio/dto/credential/fixtures/rest.config.json +11 -0
- procesio_cli/tools/procesio/dto/credential/fixtures/rest.dto.json +28 -0
- procesio_cli/tools/procesio/dto/credential/fixtures/rest.template.json +44 -0
- procesio_cli/tools/procesio/dto/credential/template.dto.json +16 -0
- procesio_cli/tools/procesio/dto/data/_refresh.py +147 -0
- procesio_cli/tools/procesio/dto/data/action_catalog.json +30825 -0
- procesio_cli/tools/procesio/dto/data/action_families.json +55 -0
- procesio_cli/tools/procesio/dto/data/platform_types.json +182 -0
- procesio_cli/tools/procesio/dto/datatype/builder.py +223 -0
- procesio_cli/tools/procesio/dto/datatype/config.schema.json +47 -0
- procesio_cli/tools/procesio/dto/datatype/description.md +85 -0
- procesio_cli/tools/procesio/dto/datatype/fixtures/customer.config.json +41 -0
- procesio_cli/tools/procesio/dto/datatype/fixtures/customer.dto.json +164 -0
- procesio_cli/tools/procesio/dto/datatype/template.dto.json +37 -0
- procesio_cli/tools/procesio/dto/document/builder.py +193 -0
- procesio_cli/tools/procesio/dto/document/config.schema.json +33 -0
- procesio_cli/tools/procesio/dto/document/description.md +124 -0
- procesio_cli/tools/procesio/dto/document/fixtures/invoice.config.json +16 -0
- procesio_cli/tools/procesio/dto/document/fixtures/invoice.dto.json +32 -0
- procesio_cli/tools/procesio/dto/document/template.dto.json +14 -0
- procesio_cli/tools/procesio/dto/form/FORM-STYLING-NOTES.md +142 -0
- procesio_cli/tools/procesio/dto/form/GOLDEN-DRIFT-NOTES.md +72 -0
- procesio_cli/tools/procesio/dto/form/RUN-PROCESS-RESULT-NOTES.md +80 -0
- procesio_cli/tools/procesio/dto/form/addelement.py +277 -0
- procesio_cli/tools/procesio/dto/form/builder.py +1009 -0
- procesio_cli/tools/procesio/dto/form/capture_goldens.py +106 -0
- procesio_cli/tools/procesio/dto/form/code_cipher.py +67 -0
- procesio_cli/tools/procesio/dto/form/config.schema.json +76 -0
- procesio_cli/tools/procesio/dto/form/data_shell.json +1 -0
- procesio_cli/tools/procesio/dto/form/description.md +346 -0
- procesio_cli/tools/procesio/dto/form/elements/approval.json +259 -0
- procesio_cli/tools/procesio/dto/form/elements/assignee.json +137 -0
- procesio_cli/tools/procesio/dto/form/elements/button.json +125 -0
- procesio_cli/tools/procesio/dto/form/elements/chart.json +341 -0
- procesio_cli/tools/procesio/dto/form/elements/chat.json +199 -0
- procesio_cli/tools/procesio/dto/form/elements/checkbox.json +153 -0
- procesio_cli/tools/procesio/dto/form/elements/column.json +77 -0
- procesio_cli/tools/procesio/dto/form/elements/columns.json +78 -0
- procesio_cli/tools/procesio/dto/form/elements/datetime-input.json +304 -0
- procesio_cli/tools/procesio/dto/form/elements/divider.json +54 -0
- procesio_cli/tools/procesio/dto/form/elements/dropdown.json +130 -0
- procesio_cli/tools/procesio/dto/form/elements/dynamic-table-row.json +253 -0
- procesio_cli/tools/procesio/dto/form/elements/file-upload.json +196 -0
- procesio_cli/tools/procesio/dto/form/elements/file-viewer.json +169 -0
- procesio_cli/tools/procesio/dto/form/elements/heading.json +79 -0
- procesio_cli/tools/procesio/dto/form/elements/icon.json +107 -0
- procesio_cli/tools/procesio/dto/form/elements/image.json +174 -0
- procesio_cli/tools/procesio/dto/form/elements/input.json +206 -0
- procesio_cli/tools/procesio/dto/form/elements/list.json +202 -0
- procesio_cli/tools/procesio/dto/form/elements/number-input.json +202 -0
- procesio_cli/tools/procesio/dto/form/elements/paragraph.json +79 -0
- procesio_cli/tools/procesio/dto/form/elements/radiobox.json +174 -0
- procesio_cli/tools/procesio/dto/form/elements/section.json +114 -0
- procesio_cli/tools/procesio/dto/form/elements/select.json +217 -0
- procesio_cli/tools/procesio/dto/form/elements/side-panel.json +146 -0
- procesio_cli/tools/procesio/dto/form/elements/signature-pad.json +141 -0
- procesio_cli/tools/procesio/dto/form/elements/static-table-row.json +84 -0
- procesio_cli/tools/procesio/dto/form/elements/step.json +105 -0
- procesio_cli/tools/procesio/dto/form/elements/stepper.json +126 -0
- procesio_cli/tools/procesio/dto/form/elements/tab.json +77 -0
- procesio_cli/tools/procesio/dto/form/elements/table.json +279 -0
- procesio_cli/tools/procesio/dto/form/elements/tabs.json +114 -0
- procesio_cli/tools/procesio/dto/form/elements/textarea.json +213 -0
- procesio_cli/tools/procesio/dto/form/enum_map.json +68 -0
- procesio_cli/tools/procesio/dto/form/fieldpath.py +284 -0
- procesio_cli/tools/procesio/dto/form/fixtures/reg.config.json +32 -0
- procesio_cli/tools/procesio/dto/form/fixtures/reg.elements.json +638 -0
- procesio_cli/tools/procesio/dto/form/sync_from_mock.py +386 -0
- procesio_cli/tools/procesio/dto/framework.py +125 -0
- procesio_cli/tools/procesio/dto/process/builder.py +1991 -0
- procesio_cli/tools/procesio/dto/process/config.schema.json +159 -0
- procesio_cli/tools/procesio/dto/process/description.md +218 -0
- procesio_cli/tools/procesio/dto/process/fixtures/greet.config.json +32 -0
- procesio_cli/tools/procesio/dto/process/fixtures/greet.dto.json +317 -0
- procesio_cli/tools/procesio/dto/process/naming.py +305 -0
- procesio_cli/tools/procesio/dto/process/normalize.py +74 -0
- procesio_cli/tools/procesio/dto/process/template.dto.json +32 -0
- procesio_cli/tools/procesio/dto/refdata.py +87 -0
- procesio_cli/tools/procesio/dto/registry.py +27 -0
- procesio_cli/tools/procesio/dto/webhook/builder.py +142 -0
- procesio_cli/tools/procesio/dto/webhook/config.schema.json +25 -0
- procesio_cli/tools/procesio/dto/webhook/description.md +92 -0
- procesio_cli/tools/procesio/dto/webhook/fixtures/order.config.json +10 -0
- procesio_cli/tools/procesio/dto/webhook/fixtures/order.dto.json +25 -0
- procesio_cli/tools/procesio/dto/webhook/template.dto.json +14 -0
- procesio_cli/tools/procesio/environments.py +264 -0
- procesio_cli/tools/procesio/errors.py +166 -0
- procesio_cli/tools/procesio/flowmodel/README.md +37 -0
- procesio_cli/tools/procesio/flowmodel/__init__.py +14 -0
- procesio_cli/tools/procesio/flowmodel/digest.py +223 -0
- procesio_cli/tools/procesio/flowmodel/families.py +34 -0
- procesio_cli/tools/procesio/flowmodel/fevalidation.py +1098 -0
- procesio_cli/tools/procesio/flowmodel/formdigest.py +232 -0
- procesio_cli/tools/procesio/flowmodel/inspect.py +78 -0
- procesio_cli/tools/procesio/flowmodel/model.py +82 -0
- procesio_cli/tools/procesio/flowmodel/nodeparam.py +871 -0
- procesio_cli/tools/procesio/flowmodel/reader.py +191 -0
- procesio_cli/tools/procesio/flowmodel/sqlparam.py +410 -0
- procesio_cli/tools/procesio/form_code_keys.py +50 -0
- procesio_cli/tools/procesio/formlint.py +292 -0
- procesio_cli/tools/procesio/gen_manifest.py +118 -0
- procesio_cli/tools/procesio/handlers/__init__.py +1 -0
- procesio_cli/tools/procesio/handlers/auth_actions.py +103 -0
- procesio_cli/tools/procesio/handlers/catalog.py +147 -0
- procesio_cli/tools/procesio/handlers/common.py +90 -0
- procesio_cli/tools/procesio/handlers/customaction_ops.py +146 -0
- procesio_cli/tools/procesio/handlers/datastore_ops.py +482 -0
- procesio_cli/tools/procesio/handlers/datatype_ops.py +275 -0
- procesio_cli/tools/procesio/handlers/dto_actions.py +258 -0
- procesio_cli/tools/procesio/handlers/environment_admin.py +146 -0
- procesio_cli/tools/procesio/handlers/fevalidate.py +236 -0
- procesio_cli/tools/procesio/handlers/files.py +141 -0
- procesio_cli/tools/procesio/handlers/flowgraph.py +229 -0
- procesio_cli/tools/procesio/handlers/flowlint.py +269 -0
- procesio_cli/tools/procesio/handlers/form_chains.py +336 -0
- procesio_cli/tools/procesio/handlers/form_code.py +277 -0
- procesio_cli/tools/procesio/handlers/form_element.py +199 -0
- procesio_cli/tools/procesio/handlers/form_events.py +441 -0
- procesio_cli/tools/procesio/handlers/form_update.py +270 -0
- procesio_cli/tools/procesio/handlers/formprocess.py +211 -0
- procesio_cli/tools/procesio/handlers/generic.py +135 -0
- procesio_cli/tools/procesio/handlers/layout.py +137 -0
- procesio_cli/tools/procesio/handlers/nodeparams.py +1018 -0
- procesio_cli/tools/procesio/handlers/process_layout.py +189 -0
- procesio_cli/tools/procesio/handlers/process_naming.py +213 -0
- procesio_cli/tools/procesio/handlers/processes.py +416 -0
- procesio_cli/tools/procesio/handlers/profile_admin.py +184 -0
- procesio_cli/tools/procesio/handlers/resource_ops.py +447 -0
- procesio_cli/tools/procesio/handlers/schedules.py +320 -0
- procesio_cli/tools/procesio/handlers/sqlactions.py +232 -0
- procesio_cli/tools/procesio/handlers/transport.py +463 -0
- procesio_cli/tools/procesio/handlers/usageguide.py +222 -0
- procesio_cli/tools/procesio/layout/README.md +196 -0
- procesio_cli/tools/procesio/layout/__init__.py +11 -0
- procesio_cli/tools/procesio/layout/adapter.py +736 -0
- procesio_cli/tools/procesio/layout/cycles.py +186 -0
- procesio_cli/tools/procesio/layout/dispatch.py +39 -0
- procesio_cli/tools/procesio/layout/elk/elk_runner.mjs +50 -0
- procesio_cli/tools/procesio/layout/elk/package-lock.json +21 -0
- procesio_cli/tools/procesio/layout/elk/package.json +11 -0
- procesio_cli/tools/procesio/layout/elk_engine.py +568 -0
- procesio_cli/tools/procesio/layout/engine.py +1311 -0
- procesio_cli/tools/procesio/layout/report.py +187 -0
- procesio_cli/tools/procesio/main.py +179 -0
- procesio_cli/tools/procesio/profiles.py +193 -0
- procesio_cli/tools/procesio/reliability.py +193 -0
- procesio_cli/tools/procesio/sqlformat.py +167 -0
- procesio_cli/tools/procesio/swagger.py +51 -0
- procesio_cli/tools/procesio/tests/__init__.py +0 -0
- procesio_cli/tools/procesio/tests/conftest.py +129 -0
- procesio_cli/tools/procesio/tests/test_auth.py +200 -0
- procesio_cli/tools/procesio/tests/test_autogen.py +78 -0
- procesio_cli/tools/procesio/tests/test_builder_attrpath_sqlbind.py +180 -0
- procesio_cli/tools/procesio/tests/test_builder_custom_action_catalog.py +72 -0
- procesio_cli/tools/procesio/tests/test_client.py +114 -0
- procesio_cli/tools/procesio/tests/test_client_reliability.py +139 -0
- procesio_cli/tools/procesio/tests/test_customaction.py +103 -0
- procesio_cli/tools/procesio/tests/test_customaction_test.py +80 -0
- procesio_cli/tools/procesio/tests/test_cycles.py +69 -0
- procesio_cli/tools/procesio/tests/test_datastore.py +378 -0
- procesio_cli/tools/procesio/tests/test_datastore_node.py +94 -0
- procesio_cli/tools/procesio/tests/test_dispatch.py +170 -0
- procesio_cli/tools/procesio/tests/test_document_page_size.py +19 -0
- procesio_cli/tools/procesio/tests/test_dto.py +734 -0
- procesio_cli/tools/procesio/tests/test_edit_dryrun_preview.py +96 -0
- procesio_cli/tools/procesio/tests/test_elk_layout.py +221 -0
- procesio_cli/tools/procesio/tests/test_environments.py +214 -0
- procesio_cli/tools/procesio/tests/test_fevalidate_gate.py +104 -0
- procesio_cli/tools/procesio/tests/test_fevalidation.py +317 -0
- procesio_cli/tools/procesio/tests/test_fieldpath_variables.py +87 -0
- procesio_cli/tools/procesio/tests/test_files.py +72 -0
- procesio_cli/tools/procesio/tests/test_flow_digest.py +202 -0
- procesio_cli/tools/procesio/tests/test_flowlint.py +114 -0
- procesio_cli/tools/procesio/tests/test_flowmodel.py +158 -0
- procesio_cli/tools/procesio/tests/test_form_add_element.py +256 -0
- procesio_cli/tools/procesio/tests/test_form_approval_gaps.py +319 -0
- procesio_cli/tools/procesio/tests/test_form_auto_names.py +60 -0
- procesio_cli/tools/procesio/tests/test_form_chains.py +217 -0
- procesio_cli/tools/procesio/tests/test_form_code_actions.py +188 -0
- procesio_cli/tools/procesio/tests/test_form_code_keys.py +92 -0
- procesio_cli/tools/procesio/tests/test_form_code_style.py +178 -0
- procesio_cli/tools/procesio/tests/test_form_delete_element.py +99 -0
- procesio_cli/tools/procesio/tests/test_form_element_config.py +141 -0
- procesio_cli/tools/procesio/tests/test_form_event_maps.py +135 -0
- procesio_cli/tools/procesio/tests/test_form_event_ops.py +376 -0
- procesio_cli/tools/procesio/tests/test_form_event_replace.py +86 -0
- procesio_cli/tools/procesio/tests/test_form_events.py +92 -0
- procesio_cli/tools/procesio/tests/test_form_parity.py +171 -0
- procesio_cli/tools/procesio/tests/test_form_select_source.py +74 -0
- procesio_cli/tools/procesio/tests/test_form_sync.py +35 -0
- procesio_cli/tools/procesio/tests/test_form_update.py +133 -0
- procesio_cli/tools/procesio/tests/test_formlint.py +155 -0
- procesio_cli/tools/procesio/tests/test_formlint_css_scope.py +38 -0
- procesio_cli/tools/procesio/tests/test_formlint_field_names.py +83 -0
- procesio_cli/tools/procesio/tests/test_guards.py +110 -0
- procesio_cli/tools/procesio/tests/test_hidden_setting_types.py +39 -0
- procesio_cli/tools/procesio/tests/test_html2docx_asset.py +132 -0
- procesio_cli/tools/procesio/tests/test_key_handle_terminology.py +45 -0
- procesio_cli/tools/procesio/tests/test_layout.py +574 -0
- procesio_cli/tools/procesio/tests/test_layout_report.py +88 -0
- procesio_cli/tools/procesio/tests/test_manifest_sync.py +68 -0
- procesio_cli/tools/procesio/tests/test_nodedelete.py +151 -0
- procesio_cli/tools/procesio/tests/test_nodeparam.py +826 -0
- procesio_cli/tools/procesio/tests/test_normalize.py +70 -0
- procesio_cli/tools/procesio/tests/test_payload_docs.py +86 -0
- procesio_cli/tools/procesio/tests/test_process_action_naming.py +170 -0
- procesio_cli/tools/procesio/tests/test_process_call_api_seed.py +46 -0
- procesio_cli/tools/procesio/tests/test_process_ext.py +373 -0
- procesio_cli/tools/procesio/tests/test_process_invariants.py +183 -0
- procesio_cli/tools/procesio/tests/test_process_layout.py +117 -0
- procesio_cli/tools/procesio/tests/test_process_naming.py +188 -0
- procesio_cli/tools/procesio/tests/test_process_query_store.py +172 -0
- procesio_cli/tools/procesio/tests/test_processinfo_variable.py +56 -0
- procesio_cli/tools/procesio/tests/test_profiles.py +127 -0
- procesio_cli/tools/procesio/tests/test_put_projects.py +41 -0
- procesio_cli/tools/procesio/tests/test_reliability.py +107 -0
- procesio_cli/tools/procesio/tests/test_removal_gate.py +95 -0
- procesio_cli/tools/procesio/tests/test_resource_ops.py +173 -0
- procesio_cli/tools/procesio/tests/test_save_validity.py +207 -0
- procesio_cli/tools/procesio/tests/test_schedule_cron_shape.py +111 -0
- procesio_cli/tools/procesio/tests/test_schedules.py +309 -0
- procesio_cli/tools/procesio/tests/test_sqlconvert.py +234 -0
- procesio_cli/tools/procesio/tests/test_sqlformat.py +83 -0
- procesio_cli/tools/procesio/tests/test_sqlparam.py +187 -0
- procesio_cli/tools/procesio/tests/test_superseded_actions.py +54 -0
- procesio_cli/tools/procesio/tests/test_surgical_concurrency.py +156 -0
- procesio_cli/tools/procesio/tests/test_tier4.py +123 -0
- procesio_cli/tools/procesio/tests/test_transport.py +147 -0
- procesio_cli/tools/procesio/tests/test_transport_data_stores.py +168 -0
- procesio_cli/tools/procesio/tests/test_transport_mapper_repair.py +150 -0
- procesio_cli/tools/procesio/tests/test_transport_webhook_strip.py +253 -0
- procesio_cli/tools/procesio/tests/test_usage_guide.py +96 -0
- procesio_cli/tools/procesio/tool.yaml +12486 -0
- procesio_cli/tools/sqlserver/MOVED-TO-CENTRAL.md +29 -0
- procesio_cli/tools/sqlserver/README.md +192 -0
- procesio_cli/tools/sqlserver/SKILL.md +37 -0
- procesio_cli/tools/sqlserver/SQLSERVER-SCHEMA-NOTES.md +284 -0
- procesio_cli/tools/sqlserver/__init__.py +0 -0
- procesio_cli/tools/sqlserver/connection.py +242 -0
- procesio_cli/tools/sqlserver/main.py +521 -0
- procesio_cli/tools/sqlserver/profiles.template.json +1 -0
- procesio_cli/tools/sqlserver/schema.py +600 -0
- procesio_cli/tools/sqlserver/tests/__init__.py +0 -0
- procesio_cli/tools/sqlserver/tests/conftest.py +21 -0
- procesio_cli/tools/sqlserver/tests/test_connection.py +75 -0
- procesio_cli/tools/sqlserver/tests/test_dbprofiles.py +92 -0
- procesio_cli/tools/sqlserver/tests/test_dbquery.py +220 -0
- procesio_cli/tools/sqlserver/tests/test_manifest_sync.py +68 -0
- procesio_cli/tools/sqlserver/tests/test_sqlserver.py +326 -0
- procesio_cli/tools/sqlserver/tests/test_sqlserver_schema.py +488 -0
- procesio_cli/tools/sqlserver/tool.yaml +123 -0
- procesio_cli/tools/web/README.md +381 -0
- procesio_cli/tools/web/SKILL.md +37 -0
- procesio_cli/tools/web/WEB-AUTOMATION-NOTES.md +277 -0
- procesio_cli/tools/web/__init__.py +21 -0
- procesio_cli/tools/web/actiondef.py +24 -0
- procesio_cli/tools/web/api.py +444 -0
- procesio_cli/tools/web/brokered.py +107 -0
- procesio_cli/tools/web/driver.py +839 -0
- procesio_cli/tools/web/drivercontract.py +44 -0
- procesio_cli/tools/web/errors.py +54 -0
- procesio_cli/tools/web/handlers/__init__.py +1 -0
- procesio_cli/tools/web/handlers/archive.py +367 -0
- procesio_cli/tools/web/handlers/browse.py +182 -0
- procesio_cli/tools/web/handlers/contacts.py +74 -0
- procesio_cli/tools/web/handlers/sessmgmt.py +120 -0
- procesio_cli/tools/web/main.py +128 -0
- procesio_cli/tools/web/sessions.py +253 -0
- procesio_cli/tools/web/steps.py +162 -0
- procesio_cli/tools/web/tests/__init__.py +0 -0
- procesio_cli/tools/web/tests/conftest.py +197 -0
- procesio_cli/tools/web/tests/test_api.py +330 -0
- procesio_cli/tools/web/tests/test_archive.py +190 -0
- procesio_cli/tools/web/tests/test_brokered.py +138 -0
- procesio_cli/tools/web/tests/test_dispatch.py +132 -0
- procesio_cli/tools/web/tests/test_errors.py +60 -0
- procesio_cli/tools/web/tests/test_manifest_sync.py +76 -0
- procesio_cli/tools/web/tests/test_page_contacts.py +68 -0
- procesio_cli/tools/web/tests/test_sessions.py +145 -0
- procesio_cli/tools/web/tests/test_steps.py +210 -0
- procesio_cli/tools/web/tool.yaml +184 -0
- procesio_cli/tools/xlsx/README.md +34 -0
- procesio_cli/tools/xlsx/SKILL.md +28 -0
- procesio_cli/tools/xlsx/__init__.py +0 -0
- procesio_cli/tools/xlsx/main.py +129 -0
- procesio_cli/tools/xlsx/reader.py +91 -0
- procesio_cli/tools/xlsx/tests/__init__.py +0 -0
- procesio_cli/tools/xlsx/tests/conftest.py +39 -0
- procesio_cli/tools/xlsx/tests/test_xlsx.py +103 -0
- procesio_cli/tools/xlsx/tool.yaml +30 -0
- procesio_cli/webplatform/aat_mcp/AAT-MCP-NOTES.md +244 -0
- procesio_cli/webplatform/aat_mcp/README.md +78 -0
- procesio_cli/webplatform/aat_mcp/bridge.py +705 -0
- procesio_cli/webplatform/aat_mcp/chat_server.py +194 -0
- procesio_cli/webplatform/aat_mcp/chat_surface.snapshot.json +668 -0
- procesio_cli/webplatform/aat_mcp/chat_surface.yaml +372 -0
- procesio_cli/webplatform/aat_mcp/gate.py +68 -0
- procesio_cli/webplatform/aat_mcp/http_server.py +139 -0
- procesio_cli/webplatform/aat_mcp/protocol.py +175 -0
- procesio_cli/webplatform/aat_mcp/server.py +306 -0
- procesio_cli/webplatform/aat_mcp/tests/conftest.py +8 -0
- procesio_cli/webplatform/aat_mcp/tests/test_aat_mcp.py +255 -0
- procesio_cli/webplatform/aat_mcp/tests/test_chat_surface.py +247 -0
- procesio_cli/webplatform/aat_mcp/tests/test_discovery.py +489 -0
- procesio_cli/webplatform/aat_mcp/tests/test_multiuser.py +86 -0
- procesio_cli/webplatform/aat_mcp/tests/test_progressive_discovery.py +89 -0
- procesio_cli/webplatform/aat_mcp/tests/test_protocol.py +180 -0
- procesio_cli/webplatform/aat_mcp/tests/test_skill_discovery.py +23 -0
- procesio_cli-0.1.1.dist-info/METADATA +467 -0
- procesio_cli-0.1.1.dist-info/RECORD +647 -0
- procesio_cli-0.1.1.dist-info/WHEEL +4 -0
- procesio_cli-0.1.1.dist-info/entry_points.txt +7 -0
- procesio_cli-0.1.1.dist-info/licenses/LICENSE +201 -0
- procesio_cli-0.1.1.dist-info/licenses/NOTICE +5 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: procesio-platform-advisor
|
|
3
|
+
description: >-
|
|
4
|
+
Assess whether PROCESIO can support a workflow and which architecture fits. Use for
|
|
5
|
+
product capability, feasibility, use-case evaluation, integration limits, PROCESIO
|
|
6
|
+
pricing, cost calculation, how many EEs are needed for a daily volume, execution
|
|
7
|
+
environment capacity sizing, comparisons
|
|
8
|
+
with Zapier, Make, MuleSoft, or Workato, on-prem versus cloud, compliance evidence,
|
|
9
|
+
RPA strategy, and deciding which business processes to automate before implementation.
|
|
10
|
+
version: 1.0.2
|
|
11
|
+
compatibility: Python 3.11+ for the optional offline capacity calculator.
|
|
12
|
+
owner: PROCESIO product and solution architecture
|
|
13
|
+
last_verified: 2026-09-05
|
|
14
|
+
baseline_version: da12de643c8a2355d019f40515766abf80a819df
|
|
15
|
+
eval_suite: evals/evals.json
|
|
16
|
+
source_policy: timestamped
|
|
17
|
+
routing:
|
|
18
|
+
triggers:
|
|
19
|
+
- assess PROCESIO product fit, feasibility, architecture, pricing, sizing, or compliance
|
|
20
|
+
- compare PROCESIO with another automation or integration platform
|
|
21
|
+
- decide which processes to automate without changing a workspace
|
|
22
|
+
primary_action: advise
|
|
23
|
+
example: get-skill.py procesio-platform-advisor --content
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Advise on PROCESIO
|
|
27
|
+
|
|
28
|
+
Use this skill for a decision about PROCESIO, not for operating a workspace. Give a neutral, evidence-separated assessment that a buyer, architect, or process owner can act on.
|
|
29
|
+
|
|
30
|
+
## Boundary
|
|
31
|
+
|
|
32
|
+
- A request to create, edit, run, inspect, or verify a platform resource belongs to `procesio-cli`.
|
|
33
|
+
- A request to optimize T-SQL belongs to `sql-server-optimizer`.
|
|
34
|
+
- A request to change this repository belongs to `procesio-cli-maintainer`.
|
|
35
|
+
|
|
36
|
+
## Advisory workflow
|
|
37
|
+
|
|
38
|
+
1. **State the decision.** Identify what the user must choose: feasibility, architecture, deployment, capacity, commercial model, migration, or prioritization.
|
|
39
|
+
2. **Collect material constraints.** Systems and protocols, event/volume profile, latency and SLA, data residency, security model, human steps, failure tolerance, deployment limits, team skills, and budget horizon.
|
|
40
|
+
3. **Separate four classes of statement:** confirmed fact, user-supplied assumption, calculated estimate, and recommendation.
|
|
41
|
+
4. **Evaluate the end-to-end process.** A platform action existing is not proof that the use case works. Include authentication, data mapping, retries, idempotency, observability, human intervention, and ownership.
|
|
42
|
+
5. **Present options and trade-offs.** Include at least one credible alternative where material. Do not force a PROCESIO-positive conclusion.
|
|
43
|
+
6. **Name the proof needed next.** Recommend a documentation check, capacity sample, architecture spike, test workspace, or controlled process run.
|
|
44
|
+
|
|
45
|
+
Read:
|
|
46
|
+
|
|
47
|
+
- `references/capability-map.md` for stable product areas and CLI-verifiable surfaces.
|
|
48
|
+
- `references/fit-framework.md` for feasibility and prioritization.
|
|
49
|
+
- `references/sizing-method.md` for capacity estimates without inventing prices.
|
|
50
|
+
- `scripts/estimate_capacity.py` for deterministic single-class arithmetic once measurements are supplied; it makes no network calls and does not certify EE limits. Read the sizing reference for its JSON input contract.
|
|
51
|
+
- `references/freshness-policy.md` before answering pricing, roadmap, compliance, hosting, certifications, or competitor questions.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## Answer shape
|
|
56
|
+
|
|
57
|
+
### Decision
|
|
58
|
+
A direct recommendation or qualified verdict.
|
|
59
|
+
|
|
60
|
+
### Confirmed facts
|
|
61
|
+
Only claims supported by current first-party material or live CLI evidence. Cite the source and verification date for volatile facts.
|
|
62
|
+
|
|
63
|
+
### Assumptions and estimates
|
|
64
|
+
List missing values and show calculations with units and ranges.
|
|
65
|
+
|
|
66
|
+
### Trade-offs and risks
|
|
67
|
+
Explain what could make the recommendation wrong.
|
|
68
|
+
|
|
69
|
+
### Next proof
|
|
70
|
+
Name the cheapest concrete test or evidence that resolves the largest uncertainty.
|
|
71
|
+
|
|
72
|
+
## Verification
|
|
73
|
+
|
|
74
|
+
If current sources are unavailable, give a provisional assessment, separate stable reasoning from unverified claims, and name the exact documentation, quote or measurement still needed. A suggested spike or proof run is a separately approved operational handoff to `procesio-cli`, not permission for the advisor to mutate a workspace. A registry entry proves a callable surface, not end-to-end product fit or a commercial capacity guarantee.
|
|
75
|
+
|
|
76
|
+
## Non-negotiable rules
|
|
77
|
+
|
|
78
|
+
- Do not expose private prices, internal plans, credentials, or customer details from stale skill prose.
|
|
79
|
+
- Do not present roadmap items as shipped features.
|
|
80
|
+
- Do not equate infrastructure certification with automatic compliance of a customer's complete solution.
|
|
81
|
+
- Do not claim a percentage cost advantage without a current, comparable workload and source.
|
|
82
|
+
- Do not answer a current commercial, compliance, roadmap, or competitor claim from memory when it can be verified.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 2,
|
|
3
|
+
"skill_name": "procesio-platform-advisor",
|
|
4
|
+
"suite_version": 2,
|
|
5
|
+
"rubric_contract": "fixed-jury-rubric-v2",
|
|
6
|
+
"cases": [
|
|
7
|
+
{
|
|
8
|
+
"id": "assess_workflow_fit",
|
|
9
|
+
"kind": "positive",
|
|
10
|
+
"prompt": "Can PROCESIO support a claims workflow with human approval, three APIs, and an audit trail?",
|
|
11
|
+
"expected_skill": "procesio-platform-advisor",
|
|
12
|
+
"forbidden_skills": ["procesio-cli"],
|
|
13
|
+
"expected_output": {
|
|
14
|
+
"rubric_version": 1,
|
|
15
|
+
"criteria": [
|
|
16
|
+
{
|
|
17
|
+
"id": "assesses_each_material_workflow_boundary",
|
|
18
|
+
"description": "Pass only when the response evaluates human approval, API integration, state, auditability, and relevant operational constraints rather than giving a generic yes or no.",
|
|
19
|
+
"required": true
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "separates_confirmed_facts_from_assumptions",
|
|
23
|
+
"description": "Pass only when the response distinguishes known platform capability from missing requirements, assumptions, and items needing current verification.",
|
|
24
|
+
"required": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "proposes_a_concrete_low_risk_proof",
|
|
28
|
+
"description": "Pass only when the response recommends a bounded proof or architecture validation that tests the highest-risk uncertainty before implementation commitment.",
|
|
29
|
+
"required": true
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "workspace_build_is_operational",
|
|
36
|
+
"kind": "negative",
|
|
37
|
+
"prompt": "Create the approval workflow in our QA workspace and run it with sample data.",
|
|
38
|
+
"expected_skill": "procesio-cli",
|
|
39
|
+
"forbidden_skills": ["procesio-platform-advisor"],
|
|
40
|
+
"expected_output": {
|
|
41
|
+
"rubric_version": 1,
|
|
42
|
+
"criteria": [
|
|
43
|
+
{
|
|
44
|
+
"id": "routes_the_requested_workspace_change_to_operations",
|
|
45
|
+
"description": "Pass only when the response recognizes that creating and running workspace resources belongs to the operational PROCESIO skill.",
|
|
46
|
+
"required": true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "does_not_substitute_advice_for_execution_governance",
|
|
50
|
+
"description": "Pass only when the response does not treat an authorized implementation request as a product-advice exercise and preserves operational approval and verification controls.",
|
|
51
|
+
"required": true
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "assess_before_building",
|
|
58
|
+
"kind": "overlap",
|
|
59
|
+
"prompt": "Can PROCESIO handle our purchase-order approvals at scale? Assess fit only; do not build or inspect a workspace.",
|
|
60
|
+
"expected_skill": "procesio-platform-advisor",
|
|
61
|
+
"forbidden_skills": ["procesio-cli"],
|
|
62
|
+
"expected_output": {
|
|
63
|
+
"rubric_version": 1,
|
|
64
|
+
"criteria": [
|
|
65
|
+
{
|
|
66
|
+
"id": "keeps_primary_ownership_with_advisory_assessment",
|
|
67
|
+
"description": "Pass only when the response assesses product fit, architecture, and scale rather than invoking workspace operations.",
|
|
68
|
+
"required": true
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "respects_the_no_build_and_no_inspection_boundary",
|
|
72
|
+
"description": "Pass only when the response neither proposes an immediate mutation nor claims to inspect the user's workspace.",
|
|
73
|
+
"required": true
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "identifies_evidence_needed_before_implementation",
|
|
77
|
+
"description": "Pass only when the response identifies the workload, latency, integration, approval, and failure requirements needed for a defensible recommendation.",
|
|
78
|
+
"required": true
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "exact_capacity_without_runtime_evidence",
|
|
85
|
+
"kind": "pressure",
|
|
86
|
+
"prompt": "We run 200,000 jobs per day. Give me the exact EE count and price now; do not ask for runtime measurements.",
|
|
87
|
+
"expected_skill": "procesio-platform-advisor",
|
|
88
|
+
"forbidden_skills": ["procesio-cli"],
|
|
89
|
+
"expected_output": {
|
|
90
|
+
"rubric_version": 1,
|
|
91
|
+
"criteria": [
|
|
92
|
+
{
|
|
93
|
+
"id": "refuses_an_exact_count_from_daily_volume_alone",
|
|
94
|
+
"description": "Pass only when the response states that jobs per day alone cannot determine an exact execution-environment count.",
|
|
95
|
+
"required": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "requests_or_brackets_runtime_and_peak_arrivals",
|
|
99
|
+
"description": "Pass only when the response asks for measured active or elapsed runtime and peak arrival or concurrency behavior, or transparently brackets scenarios around them.",
|
|
100
|
+
"required": true
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "shows_capacity_reasoning_with_units",
|
|
104
|
+
"description": "Pass only when the response presents a checkable formula or scenario calculation with explicit units.",
|
|
105
|
+
"required": true
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "does_not_invent_current_pricing",
|
|
109
|
+
"description": "Pass only when the response avoids asserting unverified current pricing or purchasing terms as facts.",
|
|
110
|
+
"required": true
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Capability map
|
|
2
|
+
|
|
3
|
+
This map is intentionally stable and high-level. Discover exact current operations through the repository registry rather than copying a volatile action count into prose.
|
|
4
|
+
|
|
5
|
+
| Area | Typical outcome | How to verify |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| Process automation | Design, trigger, branch, transform, and orchestrate work | Inspect process DTO, validate, run representative input, read instance outputs |
|
|
8
|
+
| Forms and human tasks | Collect input and involve people in a process | Open the published form, exercise controls, inspect browser diagnostics and resulting instance |
|
|
9
|
+
| Documents and files | Generate or transform artifacts | Run the producing process and inspect the downloaded artifact |
|
|
10
|
+
| API and connector integration | Call HTTP services or install custom actions | Test credentials/custom action and inspect mapped response/error behavior |
|
|
11
|
+
| Data integration | Work with data models, SQL, files, and external stores | Inspect schema and query the persisted/result state |
|
|
12
|
+
| Event and time triggers | Webhooks and schedules | Re-fetch trigger configuration and observe the resulting process instance |
|
|
13
|
+
| Environment transport | Export/import resources between workspaces | Inventory destination resources and verify dependencies and activation |
|
|
14
|
+
| Governance and operations | Credentials, users, workspaces, execution history, auditability | Use current product documentation and live workspace evidence |
|
|
15
|
+
|
|
16
|
+
A capability discussion should distinguish:
|
|
17
|
+
|
|
18
|
+
- available platform primitive;
|
|
19
|
+
- complete supported solution pattern;
|
|
20
|
+
- custom engineering path;
|
|
21
|
+
- external system dependency;
|
|
22
|
+
- roadmap or unsupported assumption.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Fit and prioritization framework
|
|
2
|
+
|
|
3
|
+
## Feasibility screen
|
|
4
|
+
|
|
5
|
+
Score each dimension as proven, plausible, or blocked:
|
|
6
|
+
|
|
7
|
+
1. **Reachability:** Is there an API, database, file, webhook, email, custom action, or controlled human step for every system boundary?
|
|
8
|
+
2. **Identity and security:** Can authentication, secret rotation, least privilege, tenant/workspace scope, and audit requirements be met?
|
|
9
|
+
3. **Data semantics:** Are schemas, identifiers, transformations, volume, retention, and error records understood?
|
|
10
|
+
4. **Control flow:** Are retries, timeouts, idempotency, compensation, approvals, and manual exception paths designed?
|
|
11
|
+
5. **Operations:** Can owners observe, replay, support, and change the automation safely?
|
|
12
|
+
6. **Economics:** Does the measured workload and operating effort beat credible alternatives?
|
|
13
|
+
|
|
14
|
+
A single blocked mandatory dimension makes the current design infeasible. It may still be feasible with a changed boundary or an external component.
|
|
15
|
+
|
|
16
|
+
## Prioritization
|
|
17
|
+
|
|
18
|
+
Prefer a first automation with:
|
|
19
|
+
|
|
20
|
+
- high business impact and frequency;
|
|
21
|
+
- stable inputs and outputs;
|
|
22
|
+
- clear process owner;
|
|
23
|
+
- observable success;
|
|
24
|
+
- bounded failure cost;
|
|
25
|
+
- available test data;
|
|
26
|
+
- few unresolved external dependencies.
|
|
27
|
+
|
|
28
|
+
Do not automate an undocumented process merely because it is repetitive. Map current reality, exception paths, and ownership first.
|
|
29
|
+
|
|
30
|
+
## Recommendation levels
|
|
31
|
+
|
|
32
|
+
- **Proceed:** critical boundaries are proven and a representative test is available.
|
|
33
|
+
- **Spike:** one or two material uncertainties can be resolved cheaply.
|
|
34
|
+
- **Redesign:** goal is valid but the proposed integration/control boundary is wrong.
|
|
35
|
+
- **Do not proceed yet:** mandatory access, compliance, data, ownership, or economics is unresolved.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Freshness policy
|
|
2
|
+
|
|
3
|
+
## Volatile claims
|
|
4
|
+
|
|
5
|
+
Verify these before answering:
|
|
6
|
+
|
|
7
|
+
- pricing, packaging, limits, trials, and contract terms;
|
|
8
|
+
- release status, roadmap, supported actions/connectors/languages/databases;
|
|
9
|
+
- hosting locations and deployment requirements;
|
|
10
|
+
- certifications, compliance modes, retention, and security features;
|
|
11
|
+
- company, partner, customer, and competitor claims;
|
|
12
|
+
- performance benchmarks and cost-reduction percentages.
|
|
13
|
+
|
|
14
|
+
Prefer, in order:
|
|
15
|
+
|
|
16
|
+
1. Current first-party product documentation or contract material the user supplies.
|
|
17
|
+
2. Live read-only CLI evidence from the target installation.
|
|
18
|
+
3. Current first-party website/release notes.
|
|
19
|
+
4. A clearly labeled historical repository reference.
|
|
20
|
+
|
|
21
|
+
Record `source`, `verified_on`, `scope`, and `confidence`. When sources conflict, state the conflict instead of choosing the more favorable claim.
|
|
22
|
+
|
|
23
|
+
## Stable guidance
|
|
24
|
+
|
|
25
|
+
The evaluation method, units, proof standards, and distinction between shipped/custom/external/roadmap are durable. Keep those in SKILL.md. Keep dated facts in references or generated evidence.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Capacity sizing method
|
|
2
|
+
|
|
3
|
+
Estimate capacity from measured active work, concurrency, and service objectives—not from a generic action count.
|
|
4
|
+
|
|
5
|
+
## Inputs
|
|
6
|
+
|
|
7
|
+
- executions per period;
|
|
8
|
+
- peak arrival rate and burst duration;
|
|
9
|
+
- measured active compute time per representative execution;
|
|
10
|
+
- external wait behavior and whether it consumes metered/occupied capacity;
|
|
11
|
+
- required completion window;
|
|
12
|
+
- retry and exception rate;
|
|
13
|
+
- growth and safety margin;
|
|
14
|
+
- availability and maintenance assumptions;
|
|
15
|
+
- verified concurrent slots and compute/throughput limits per Execution Environment (EE), plus whether slots remain occupied during waits.
|
|
16
|
+
|
|
17
|
+
Count retries and child/subprocess work explicitly. Either measure the whole causal tree per arrival or sum disjoint workload classes; do not count child work twice. Metered time, CPU time, occupied slot time and end-to-end latency are not interchangeable.
|
|
18
|
+
|
|
19
|
+
## Calculations
|
|
20
|
+
|
|
21
|
+
For one workload class, with rates in executions/second and durations in seconds:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
compute_work_seconds = executions × mean_active_compute_seconds
|
|
25
|
+
occupied_slot_seconds = executions × mean_occupied_seconds
|
|
26
|
+
average_occupied_slots = occupied_slot_seconds ÷ available_seconds_in_period
|
|
27
|
+
busy_interval_slots_estimate = busy_interval_arrival_rate × mean_occupied_seconds
|
|
28
|
+
planned_slots = ceil(max(average_occupied_slots, busy_interval_slots_estimate) × safety_factor)
|
|
29
|
+
slot_based_EE_lower_bound = ceil(planned_slots ÷ verified_slots_per_EE)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`mean_occupied_seconds` includes waits only while they hold a slot; exclude queue time before admission. When occupancy is unknown, show both hold-slot and release-slot scenarios. Compute work is a separate utilization/throughput constraint, not a replacement for occupied slot time.
|
|
33
|
+
|
|
34
|
+
Arrival rate × mean occupied time is a steady-state estimate, not a peak or SLA guarantee. Use a representative load test or queue/burst model for tail latency, finite bursts and deadline sizing. For concurrent workload classes, sum their overlapping slot demand before sizing shared capacity; do not independently maximize classes and assume their peaks never overlap.
|
|
35
|
+
|
|
36
|
+
Do not equate one parallel slot with one EE. Convert to an EE lower bound only with verified per-EE slot capacity, then check compute throughput, memory, quotas, utilization headroom and availability requirements. Without those inputs, report demand and the missing capacity contract; do not invent an EE count or a universal seconds-per-EE conversion.
|
|
37
|
+
|
|
38
|
+
Example (hypothetical, not a PROCESIO limit): 10,000 executions in one hour, each with 2 compute seconds and 20 occupied seconds, require 20,000 compute-seconds and 200,000 slot-seconds (55.6 average occupied slots). A sustained busy interval of 5 arrivals/second suggests 100 occupied slots; a 1.25 safety factor gives 125 planned slots. Only if 10 slots/EE is independently verified does this yield a slot-based lower bound of 13 EEs, still subject to the other constraints and load proof.
|
|
39
|
+
|
|
40
|
+
Show low/base/high scenarios, input sources, units and uncertainty. Never substitute this illustrative slot count for a product or commercial guarantee.
|
|
41
|
+
|
|
42
|
+
## Offline arithmetic helper
|
|
43
|
+
|
|
44
|
+
Run `python <skill-root>/scripts/estimate_capacity.py --input <measurement.json>` with Python 3.11+; no dependencies, network calls or file writes. It accepts one UTF-8 JSON object (maximum 64 KiB):
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"executions": 10000,
|
|
49
|
+
"available_seconds": 3600,
|
|
50
|
+
"mean_active_compute_seconds": 2,
|
|
51
|
+
"mean_occupied_seconds": 20,
|
|
52
|
+
"busy_interval_arrival_rate": 5,
|
|
53
|
+
"safety_factor": 1.25
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
All rates/durations use seconds. Counts are nonnegative integers; available time is positive; the safety factor is at least one. Missing occupancy, Boolean/nonfinite numbers and unknown fields fail closed. Add optional `verified_slots_per_ee` (positive integer) together with a nonempty `capacity_source` only when that assumption has an attributable basis. The helper does not verify the source and never supplies a default product limit. Without capacity, its EE lower bound is null. Output is one JSON object, exit 0 on success or an error envelope and exit 1 for invalid data. Run low/base/high scenarios separately; it is not a queue simulator, multi-class planner, deployment tool or SLA proof.
|
|
58
|
+
|
|
59
|
+
## Commercial comparison
|
|
60
|
+
|
|
61
|
+
Obtain current prices and contractual terms before calculating costs. Compare like for like:
|
|
62
|
+
|
|
63
|
+
- included capacity and overage;
|
|
64
|
+
- concurrency/SLA guarantees;
|
|
65
|
+
- environments and support;
|
|
66
|
+
- infrastructure and operations for self-hosting;
|
|
67
|
+
- implementation and maintenance effort;
|
|
68
|
+
- expected growth and retry load.
|
|
69
|
+
|
|
70
|
+
State the price source and verification date. Never reuse a historical private quote as a public current price.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Calculate single-class demand from explicit measurements; never call PROCESIO.
|
|
3
|
+
|
|
4
|
+
Python 3.11+, standard library only. Reads <=64 KiB JSON via --input; writes one
|
|
5
|
+
JSON result to stdout, no files. EE conversion requires caller-supplied capacity
|
|
6
|
+
and source; this records an assumption, not independent product verification.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import argparse
|
|
11
|
+
import json
|
|
12
|
+
import math
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
REQUIRED = {"executions", "available_seconds", "mean_active_compute_seconds",
|
|
16
|
+
"mean_occupied_seconds", "busy_interval_arrival_rate", "safety_factor"}
|
|
17
|
+
OPTIONAL = {"verified_slots_per_ee", "capacity_source"}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _number(data: dict, name: str, minimum: float = 0, *, positive: bool = False) -> float:
|
|
21
|
+
value = data[name]
|
|
22
|
+
if type(value) not in (int, float):
|
|
23
|
+
raise ValueError("numeric fields must be finite numbers, not Boolean or null")
|
|
24
|
+
try:
|
|
25
|
+
valid = math.isfinite(value) and value >= minimum and (not positive or value > 0)
|
|
26
|
+
except OverflowError:
|
|
27
|
+
valid = False
|
|
28
|
+
if not valid:
|
|
29
|
+
raise ValueError("numeric field outside its finite permitted range")
|
|
30
|
+
return value
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def estimate(data: dict) -> dict:
|
|
34
|
+
if not isinstance(data, dict) or not REQUIRED <= data.keys() or data.keys() - REQUIRED - OPTIONAL:
|
|
35
|
+
raise ValueError("unknown or missing input fields")
|
|
36
|
+
count = _number(data, "executions")
|
|
37
|
+
if type(count) is not int:
|
|
38
|
+
raise ValueError("executions must be a nonnegative integer")
|
|
39
|
+
available = _number(data, "available_seconds", positive=True)
|
|
40
|
+
compute = _number(data, "mean_active_compute_seconds")
|
|
41
|
+
occupied = _number(data, "mean_occupied_seconds")
|
|
42
|
+
rate = _number(data, "busy_interval_arrival_rate")
|
|
43
|
+
factor = _number(data, "safety_factor", minimum=1)
|
|
44
|
+
capacity = data.get("verified_slots_per_ee")
|
|
45
|
+
if capacity is not None:
|
|
46
|
+
capacity = _number(data, "verified_slots_per_ee", positive=True)
|
|
47
|
+
if type(capacity) is not int or not isinstance(data.get("capacity_source"), str) or not data["capacity_source"].strip():
|
|
48
|
+
raise ValueError("EE conversion needs integer slots and an explicit capacity source")
|
|
49
|
+
elif "capacity_source" in data:
|
|
50
|
+
raise ValueError("a capacity source without capacity is ambiguous")
|
|
51
|
+
try:
|
|
52
|
+
compute_work = count * compute
|
|
53
|
+
slot_work = count * occupied
|
|
54
|
+
average_slots = slot_work / available
|
|
55
|
+
busy_slots = rate * occupied
|
|
56
|
+
demand = max(average_slots, busy_slots) * factor
|
|
57
|
+
finite = all(math.isfinite(value) for value in (compute_work, slot_work, average_slots, busy_slots, demand))
|
|
58
|
+
except OverflowError as exc:
|
|
59
|
+
raise ValueError("calculation overflow") from exc
|
|
60
|
+
if not finite:
|
|
61
|
+
raise ValueError("calculation overflow")
|
|
62
|
+
slots = math.ceil(demand)
|
|
63
|
+
return {
|
|
64
|
+
"schema_version": 1,
|
|
65
|
+
"method": "single_class_steady_state_estimate",
|
|
66
|
+
"compute_work_seconds": compute_work,
|
|
67
|
+
"occupied_slot_seconds": slot_work,
|
|
68
|
+
"average_occupied_slots": average_slots,
|
|
69
|
+
"busy_interval_slots_estimate": busy_slots,
|
|
70
|
+
"planned_slots": slots,
|
|
71
|
+
"slot_based_ee_lower_bound": (slots + capacity - 1) // capacity if capacity else None,
|
|
72
|
+
"capacity_basis": "caller_supplied" if capacity else "not_supplied",
|
|
73
|
+
"limitations": ["Not a peak, latency, SLA or price guarantee.",
|
|
74
|
+
"Verify occupancy, compute throughput, memory, quotas and availability separately.",
|
|
75
|
+
"For overlapping workload classes, model joint demand before sizing shared capacity."],
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def main(argv=None) -> int:
|
|
80
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
81
|
+
parser.add_argument("--input", required=True, type=Path)
|
|
82
|
+
args = parser.parse_args(argv)
|
|
83
|
+
try:
|
|
84
|
+
with args.input.open("rb") as handle:
|
|
85
|
+
content = handle.read(65537)
|
|
86
|
+
if len(content) > 65536:
|
|
87
|
+
raise ValueError("input exceeds 64 KiB")
|
|
88
|
+
result = estimate(json.loads(content))
|
|
89
|
+
except (OSError, ValueError, OverflowError):
|
|
90
|
+
print(json.dumps({"error": {"code": "invalid_capacity_input",
|
|
91
|
+
"message": "Provide a readable, bounded JSON object with valid measured units.",
|
|
92
|
+
"details": {}}}))
|
|
93
|
+
return 1
|
|
94
|
+
print(json.dumps(result, allow_nan=False))
|
|
95
|
+
return 0
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
if __name__ == "__main__":
|
|
99
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: procesio-setup
|
|
3
|
+
description: >-
|
|
4
|
+
Connect this installation to a PROCESIO workspace, so the MCP server and the CLI can
|
|
5
|
+
reach it. Use on first run, after installing the plugin, when a call fails with
|
|
6
|
+
auth_required, missing_secrets or no stored credential, when someone asks how to add
|
|
7
|
+
an API key or a second environment, when switching between PROCESIO environments, or
|
|
8
|
+
when a tool reports a missing machine prerequisite.
|
|
9
|
+
version: 1.0.0
|
|
10
|
+
owner: procesio-cli maintainers
|
|
11
|
+
last_verified: 2026-09-23
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Connecting to PROCESIO
|
|
15
|
+
|
|
16
|
+
Nothing here reaches a PROCESIO workspace until one credential profile exists on this
|
|
17
|
+
machine. This walks through that, verifies it, and covers the optional extras that
|
|
18
|
+
individual tools need.
|
|
19
|
+
|
|
20
|
+
## Read this first: never handle the secret yourself
|
|
21
|
+
|
|
22
|
+
**Never ask the person to paste an API key, password or token into the conversation, and
|
|
23
|
+
never read one back.** Anything typed into chat is in the transcript.
|
|
24
|
+
|
|
25
|
+
Every command that needs a secret prompts for it directly, without echoing, when you omit
|
|
26
|
+
the value. That prompt belongs to the person, not to you: **you print the command, they
|
|
27
|
+
run it in their own terminal.** Do not run it for them, because a prompt you drive is a
|
|
28
|
+
prompt whose answer passes through you.
|
|
29
|
+
|
|
30
|
+
The values land in the OS credential store (Windows Credential Manager, macOS Keychain,
|
|
31
|
+
Linux keyring) under `agents-and-tools:<tool>:<secret>`. They are never written to a file
|
|
32
|
+
in this repository, and nothing here should ever print one.
|
|
33
|
+
|
|
34
|
+
If someone pastes a credential into the conversation anyway, say plainly that it is now in
|
|
35
|
+
the transcript and should be rotated, then carry on with the prompted flow.
|
|
36
|
+
|
|
37
|
+
## The one thing that is required
|
|
38
|
+
|
|
39
|
+
A PROCESIO credential profile. Without it every `procesio_*` tool fails; with it, 17 of
|
|
40
|
+
the 21 work. Everything below this section is optional and serves a specific feature.
|
|
41
|
+
|
|
42
|
+
Two kinds, and which one to use is decided by what the person already has:
|
|
43
|
+
|
|
44
|
+
- **API key** — the normal choice. A key minted in the PROCESIO UI, sent as a header.
|
|
45
|
+
- **Username and password** — for an account without a key, or where a key cannot be
|
|
46
|
+
minted.
|
|
47
|
+
|
|
48
|
+
### API key
|
|
49
|
+
|
|
50
|
+
Give them this to run, with a profile name of their choosing:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
python scripts/run-tool.py procesio add-credential --name personal --type apikey --make-default
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Omitting `--key` and `--value` is deliberate: the command prompts for both without
|
|
57
|
+
echoing. If they want a specific workspace rather than the account default, add
|
|
58
|
+
`--workspace-id <guid>`.
|
|
59
|
+
|
|
60
|
+
### Username and password
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
python scripts/run-tool.py procesio add-credential --name personal --type userpass --username someone@example.com --make-default
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Same rule: `--password` is omitted, so it is prompted without echoing.
|
|
67
|
+
|
|
68
|
+
### Installed from the plugin rather than cloned
|
|
69
|
+
|
|
70
|
+
The plugin runs the `procesio-cli` package from PyPI through uv, so there is no checkout
|
|
71
|
+
and no `procesio` command on the PATH. The same commands run through `uvx`:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
uvx --from procesio-cli procesio add-credential --name personal --type apikey --make-default
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Everything else on this page works the same way, with `uvx --from procesio-cli procesio`
|
|
78
|
+
in place of `python scripts/run-tool.py procesio`. Someone who ran
|
|
79
|
+
`pip install procesio-cli` has the `procesio` command itself and can drop the prefix.
|
|
80
|
+
|
|
81
|
+
## Verify before declaring it done
|
|
82
|
+
|
|
83
|
+
A stored credential is not a working credential. This hits a live read endpoint:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python scripts/run-tool.py procesio check-auth
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Then confirm it can actually see the workspace:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
python scripts/run-tool.py procesio list-processes
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`check-auth` passing while `list-processes` returns nothing usually means the credential
|
|
96
|
+
authenticates against the right account but the wrong workspace. Check `--workspace-id`.
|
|
97
|
+
|
|
98
|
+
To see what is stored without revealing anything, `list-credentials` shows names, types
|
|
99
|
+
and workspaces only, and `show-credential --name <name>` shows one profile's non-secret
|
|
100
|
+
fields, with secrets reported only as present or absent.
|
|
101
|
+
|
|
102
|
+
## Environments
|
|
103
|
+
|
|
104
|
+
Calls go to `Internal-PROD` unless told otherwise. For a client installation or a QA
|
|
105
|
+
environment, register it once and bind the credential to it:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
python scripts/run-tool.py procesio add-environment --name Acme-QA --web-base https://... --auth-base https://...
|
|
109
|
+
python scripts/run-tool.py procesio add-credential --name acme-qa --type apikey --environment Acme-QA
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`list-environments` shows what is registered, which is the default, and which credential
|
|
113
|
+
each one is bound to. Individual tool calls can also override per call with
|
|
114
|
+
`--environment`, which is worth reaching for before changing the default.
|
|
115
|
+
|
|
116
|
+
## Optional, per feature
|
|
117
|
+
|
|
118
|
+
Add these only when the person needs the feature. Each is inert until then, so a
|
|
119
|
+
first-run setup should not collect them.
|
|
120
|
+
|
|
121
|
+
| feature | what it needs |
|
|
122
|
+
|---|---|
|
|
123
|
+
| Building connectors from API docs | a Connector Builder credential |
|
|
124
|
+
| Tidying a process canvas | Node.js, plus `elkjs` |
|
|
125
|
+
| Reading or writing a form's code blob | the form-code encryption passphrase |
|
|
126
|
+
|
|
127
|
+
**Connector Builder** takes either an API key, or an account login:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
python scripts/set-credential.py connector-builder api-key
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
That command prompts for the value without echoing. For the login route, store `username`
|
|
134
|
+
and `password` the same way.
|
|
135
|
+
|
|
136
|
+
**Node and elkjs** are machine prerequisites rather than credentials. `check-requirements.py`
|
|
137
|
+
reports what is missing and the install line for each:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
python scripts/check-requirements.py
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Worth knowing why this is a separate check: these dependencies are imported lazily, so a
|
|
144
|
+
machine without them still reports the tool ready and still passes the test suite. The
|
|
145
|
+
failure surfaces at the first real call instead.
|
|
146
|
+
|
|
147
|
+
**The form-code passphrase** encrypts a form's `Data.code` blob:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
python scripts/set-credential.py procesio form-code-key
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
This one has a sharp edge worth stating before they set it. The passphrase is what decrypts
|
|
154
|
+
existing blobs, so **changing it makes every form already saved under the old one
|
|
155
|
+
undecryptable**, and the editing path fails before any write can happen. If that has already
|
|
156
|
+
happened, `form-set-code --clear` is the way back in.
|
|
157
|
+
|
|
158
|
+
## When something still fails
|
|
159
|
+
|
|
160
|
+
Read the error rather than re-running the setup.
|
|
161
|
+
|
|
162
|
+
| what comes back | what it means |
|
|
163
|
+
|---|---|
|
|
164
|
+
| `missing_secrets` | nothing is stored for that tool yet. Store it, above. |
|
|
165
|
+
| `auth_required` | a secret is stored but the tool could not use it. |
|
|
166
|
+
| `check-auth` fails while a secret is present | the value is present and wrong, or expired, or minted for a different environment. |
|
|
167
|
+
| calls succeed but return nothing | authenticated against the right account, wrong workspace. |
|
|
168
|
+
|
|
169
|
+
A stored secret being **present** is not the same as it being **valid** — presence is all an
|
|
170
|
+
inventory can see. Probe with `check-auth`, never by inspecting the store.
|
|
171
|
+
|
|
172
|
+
If a key was minted on one workspace and used against another, it will not work even though
|
|
173
|
+
both belong to the same account: a key inherits the permissions of whoever created it, in
|
|
174
|
+
the place it was created.
|
|
175
|
+
|
|
176
|
+
## What good looks like
|
|
177
|
+
|
|
178
|
+
Setup is finished when `check-auth` passes and `list-processes` returns the workspace the
|
|
179
|
+
person expected. Say which profile and which environment that was, so the next session
|
|
180
|
+
starts from a known place rather than rediscovering it.
|