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.
Files changed (647) hide show
  1. procesio_cli/__init__.py +18 -0
  2. procesio_cli/_cli.py +71 -0
  3. procesio_cli/agents/__init__.py +0 -0
  4. procesio_cli/agents/_lib/__init__.py +0 -0
  5. procesio_cli/agents/_lib/actiondef.py +24 -0
  6. procesio_cli/agents/_lib/errors.py +40 -0
  7. procesio_cli/agents/_lib/reversibility.py +236 -0
  8. procesio_cli/agents/_lib/toolrunner.py +141 -0
  9. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PLAYBOOK.md +62 -0
  10. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-PROCESIO-INTEROP.md +76 -0
  11. procesio_cli/agents/connector-builder/CONNECTOR-BUILDER-TROUBLESHOOTING.md +60 -0
  12. procesio_cli/agents/connector-builder/README.md +51 -0
  13. procesio_cli/agents/connector-builder/agent.yaml +61 -0
  14. procesio_cli/agents/connector-builder/context.py +19 -0
  15. procesio_cli/agents/connector-builder/handlers/__init__.py +1 -0
  16. procesio_cli/agents/connector-builder/handlers/checklist.py +71 -0
  17. procesio_cli/agents/connector-builder/handlers/guidance.py +37 -0
  18. procesio_cli/agents/connector-builder/handlers/nextstep.py +221 -0
  19. procesio_cli/agents/connector-builder/handlers/status.py +35 -0
  20. procesio_cli/agents/connector-builder/knowledge.py +47 -0
  21. procesio_cli/agents/connector-builder/main.py +93 -0
  22. procesio_cli/agents/connector-builder/tests/conftest.py +95 -0
  23. procesio_cli/agents/connector-builder/tests/test_cba_agent.py +148 -0
  24. procesio_cli/agents/orchestrator/__init__.py +0 -0
  25. procesio_cli/agents/orchestrator/bootstraplib.py +166 -0
  26. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/00-INDEX.md +60 -0
  27. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/01-PROCESSES.md +230 -0
  28. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/02-FORMS.md +287 -0
  29. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/03-INTEGRATIONS.md +384 -0
  30. procesio_cli/agents/procesio/IMPLEMENTATION-PATTERNS/04-DATABASE.md +293 -0
  31. procesio_cli/agents/procesio/PROCESIO-API-RELIABILITY-DOCTRINE.md +113 -0
  32. procesio_cli/agents/procesio/PROCESIO-BEST-PRACTICES.md +316 -0
  33. procesio_cli/agents/procesio/PROCESIO-BUILD-AND-TEST-PLAYBOOK.md +217 -0
  34. procesio_cli/agents/procesio/PROCESIO-DATASTORE.md +72 -0
  35. procesio_cli/agents/procesio/PROCESIO-ENVIRONMENTS.md +62 -0
  36. procesio_cli/agents/procesio/PROCESIO-SCHEDULING.md +47 -0
  37. procesio_cli/agents/procesio/PROCESIO-VISUAL-ORGANIZATION.md +175 -0
  38. procesio_cli/agents/procesio/README.md +97 -0
  39. procesio_cli/agents/procesio/__init__.py +0 -0
  40. procesio_cli/agents/procesio/agent.yaml +73 -0
  41. procesio_cli/agents/procesio/audit.py +226 -0
  42. procesio_cli/agents/procesio/checklist.py +135 -0
  43. procesio_cli/agents/procesio/context.py +19 -0
  44. procesio_cli/agents/procesio/handlers/__init__.py +0 -0
  45. procesio_cli/agents/procesio/handlers/audit.py +39 -0
  46. procesio_cli/agents/procesio/handlers/checklist.py +34 -0
  47. procesio_cli/agents/procesio/handlers/guidance.py +36 -0
  48. procesio_cli/agents/procesio/handlers/status.py +33 -0
  49. procesio_cli/agents/procesio/handlers/verify.py +39 -0
  50. procesio_cli/agents/procesio/knowledge.py +115 -0
  51. procesio_cli/agents/procesio/main.py +89 -0
  52. procesio_cli/agents/procesio/tests/__init__.py +0 -0
  53. procesio_cli/agents/procesio/tests/conftest.py +62 -0
  54. procesio_cli/agents/procesio/tests/test_audit.py +91 -0
  55. procesio_cli/agents/procesio/tests/test_checklist.py +28 -0
  56. procesio_cli/agents/procesio/tests/test_guidance.py +78 -0
  57. procesio_cli/agents/procesio/tests/test_manifest_sync.py +48 -0
  58. procesio_cli/agents/procesio/tests/test_verify.py +134 -0
  59. procesio_cli/agents/procesio/tests/test_workspace_scope.py +97 -0
  60. procesio_cli/agents/procesio/verifylib.py +222 -0
  61. procesio_cli/dashboard/README.md +117 -0
  62. procesio_cli/dashboard/__init__.py +18 -0
  63. procesio_cli/dashboard/serve.py +98 -0
  64. procesio_cli/dashboard/server/__init__.py +1 -0
  65. procesio_cli/dashboard/server/config_schemas.py +92 -0
  66. procesio_cli/dashboard/server/google.py +103 -0
  67. procesio_cli/dashboard/server/handler.py +160 -0
  68. procesio_cli/dashboard/server/inventory.py +213 -0
  69. procesio_cli/dashboard/server/jobs.py +118 -0
  70. procesio_cli/dashboard/server/llmtest.py +181 -0
  71. procesio_cli/dashboard/server/procesio_env.py +94 -0
  72. procesio_cli/dashboard/server/routes.py +74 -0
  73. procesio_cli/dashboard/server/runner.py +150 -0
  74. procesio_cli/dashboard/server/security.py +29 -0
  75. procesio_cli/dashboard/server/setup.py +211 -0
  76. procesio_cli/dashboard/server/validate.py +152 -0
  77. procesio_cli/dashboard/tests/conftest.py +16 -0
  78. procesio_cli/dashboard/tests/test_dashboard.py +225 -0
  79. procesio_cli/dashboard/tests/test_procesio_env.py +159 -0
  80. procesio_cli/dashboard/web/actions.js +274 -0
  81. procesio_cli/dashboard/web/api.js +79 -0
  82. procesio_cli/dashboard/web/app.js +385 -0
  83. procesio_cli/dashboard/web/copilot.js +72 -0
  84. procesio_cli/dashboard/web/google.js +121 -0
  85. procesio_cli/dashboard/web/index.html +67 -0
  86. procesio_cli/dashboard/web/procesio_env.js +187 -0
  87. procesio_cli/dashboard/web/styles.css +207 -0
  88. procesio_cli/registry.py +370 -0
  89. procesio_cli/scripts/build-router.py +249 -0
  90. procesio_cli/scripts/build-tool-skill.py +202 -0
  91. procesio_cli/scripts/check-requirements.py +131 -0
  92. procesio_cli/scripts/check-skill-governance.py +174 -0
  93. procesio_cli/scripts/evaluate-skill-routing.py +217 -0
  94. procesio_cli/scripts/evaluate-skills.py +316 -0
  95. procesio_cli/scripts/get-skill.py +122 -0
  96. procesio_cli/scripts/list-skills.py +68 -0
  97. procesio_cli/scripts/list-tools.py +73 -0
  98. procesio_cli/scripts/run-agent.py +59 -0
  99. procesio_cli/scripts/run-tool.py +123 -0
  100. procesio_cli/scripts/secret_scan.py +584 -0
  101. procesio_cli/scripts/set-credential.py +126 -0
  102. procesio_cli/scripts/validate-skills.py +530 -0
  103. procesio_cli/skills/PORTFOLIO.md +134 -0
  104. procesio_cli/skills/__init__.py +6 -0
  105. procesio_cli/skills/agent-skill-engineer/SKILL.md +226 -0
  106. procesio_cli/skills/agent-skill-engineer/evals/evals.json +422 -0
  107. procesio_cli/skills/agent-skill-engineer/references/authoring-standard.md +178 -0
  108. procesio_cli/skills/agent-skill-engineer/references/decision-framework.md +107 -0
  109. procesio_cli/skills/agent-skill-engineer/references/domain-evidence-protocol.md +248 -0
  110. procesio_cli/skills/agent-skill-engineer/references/evaluation-standard.md +191 -0
  111. procesio_cli/skills/agent-skill-engineer/references/expert-lenses.md +167 -0
  112. procesio_cli/skills/agent-skill-engineer/references/field-gate-standard.md +231 -0
  113. procesio_cli/skills/agent-skill-engineer/references/optimization-protocol.md +233 -0
  114. procesio_cli/skills/agent-skill-engineer/references/optimizer-contract.md +268 -0
  115. procesio_cli/skills/agent-skill-engineer/references/portability-standard.md +99 -0
  116. procesio_cli/skills/agent-skill-engineer/references/research-basis.md +128 -0
  117. procesio_cli/skills/agent-skill-engineer/references/review-standard.md +143 -0
  118. procesio_cli/skills/agent-skill-engineer/scripts/audit_skill.py +959 -0
  119. procesio_cli/skills/agent-skill-engineer/scripts/optimize_skill.py +891 -0
  120. procesio_cli/skills/agent-skill-engineer/scripts/scaffold_skill.py +397 -0
  121. procesio_cli/skills/evals/baseline-catalog.json +14 -0
  122. procesio_cli/skills/evals/baseline-routing-v2.json +38 -0
  123. procesio_cli/skills/evals/baseline.json +37 -0
  124. procesio_cli/skills/evals/behavioral.json +367 -0
  125. procesio_cli/skills/evals/field-boundary-development-v1.json +126 -0
  126. procesio_cli/skills/evals/field-closeout-correction-development-v1.json +23 -0
  127. procesio_cli/skills/evals/field-closeout-development-v1.json +89 -0
  128. procesio_cli/skills/evals/portfolio-pressure-training-v1.json +83 -0
  129. procesio_cli/skills/evals/routing.json +363 -0
  130. procesio_cli/skills/evals/validation-baseline.json +4 -0
  131. procesio_cli/skills/procesio-cli/SKILL.md +134 -0
  132. procesio_cli/skills/procesio-cli/evals/evals.json +111 -0
  133. procesio_cli/skills/procesio-cli/evals/workflows.json +16 -0
  134. procesio_cli/skills/procesio-cli/references/connector-lifecycle.md +47 -0
  135. procesio_cli/skills/procesio-cli/references/credentials-admin.md +113 -0
  136. procesio_cli/skills/procesio-cli/references/data-verification.md +71 -0
  137. procesio_cli/skills/procesio-cli/references/documents-files.md +44 -0
  138. procesio_cli/skills/procesio-cli/references/form-e2e.md +57 -0
  139. procesio_cli/skills/procesio-cli/references/operation-contract.md +138 -0
  140. procesio_cli/skills/procesio-cli/references/process-debugging.md +65 -0
  141. procesio_cli/skills/procesio-cli/references/process-lifecycle.md +88 -0
  142. procesio_cli/skills/procesio-cli/references/schedules-webhooks.md +58 -0
  143. procesio_cli/skills/procesio-cli/references/transport-environments.md +53 -0
  144. procesio_cli/skills/procesio-cli-maintainer/SKILL.md +84 -0
  145. procesio_cli/skills/procesio-cli-maintainer/evals/evals.json +116 -0
  146. procesio_cli/skills/procesio-cli-maintainer/references/change-contract.md +34 -0
  147. procesio_cli/skills/procesio-cli-maintainer/references/mcp-compatibility.md +13 -0
  148. procesio_cli/skills/procesio-cli-maintainer/references/skill-authoring.md +51 -0
  149. procesio_cli/skills/procesio-platform-advisor/SKILL.md +82 -0
  150. procesio_cli/skills/procesio-platform-advisor/evals/evals.json +116 -0
  151. procesio_cli/skills/procesio-platform-advisor/references/capability-map.md +22 -0
  152. procesio_cli/skills/procesio-platform-advisor/references/fit-framework.md +35 -0
  153. procesio_cli/skills/procesio-platform-advisor/references/freshness-policy.md +25 -0
  154. procesio_cli/skills/procesio-platform-advisor/references/sizing-method.md +70 -0
  155. procesio_cli/skills/procesio-platform-advisor/scripts/estimate_capacity.py +99 -0
  156. procesio_cli/skills/procesio-setup/SKILL.md +180 -0
  157. procesio_cli/skills/sql-server-optimizer/SKILL.md +86 -0
  158. procesio_cli/skills/sql-server-optimizer/evals/evals.json +116 -0
  159. procesio_cli/skills/sql-server-optimizer/references/db-context.md +44 -0
  160. procesio_cli/skills/sql-server-optimizer/references/generic-mode.md +32 -0
  161. procesio_cli/skills/sql-server-optimizer/references/procesio-mode.md +40 -0
  162. procesio_cli/skills/sql-server-optimizer/references/sql-rules.md +43 -0
  163. procesio_cli/skills/sql-server-optimizer/scripts/export-indexes.sql +178 -0
  164. procesio_cli/skills/sql-server-optimizer/scripts/export-procs-and-functions.sql +118 -0
  165. procesio_cli/skills/sql-server-optimizer/scripts/export-tables.sql +367 -0
  166. procesio_cli/skills/tests/__init__.py +0 -0
  167. procesio_cli/skills/tests/test_agent_skill_engineer.py +240 -0
  168. procesio_cli/skills/tests/test_auth_failure_stop.py +25 -0
  169. procesio_cli/skills/tests/test_capacity_estimator.py +85 -0
  170. procesio_cli/skills/tests/test_field_boundary_learning.py +100 -0
  171. procesio_cli/skills/tests/test_field_closeout_learning.py +123 -0
  172. procesio_cli/skills/tests/test_field_gate_standard.py +76 -0
  173. procesio_cli/skills/tests/test_operational_playbooks.py +51 -0
  174. procesio_cli/skills/tests/test_portfolio_pressure_training.py +35 -0
  175. procesio_cli/skills/tests/test_process_lifecycle_single_run.py +25 -0
  176. procesio_cli/skills/tests/test_skill_evaluator.py +67 -0
  177. procesio_cli/skills/tests/test_skill_optimizer.py +473 -0
  178. procesio_cli/skills/tests/test_skill_portfolio_review.py +70 -0
  179. procesio_cli/skills/tests/test_skill_release_binding.py +204 -0
  180. procesio_cli/skills/tests/test_skill_routing.py +74 -0
  181. procesio_cli/skills/tests/test_skill_scaffold_v2.py +116 -0
  182. procesio_cli/skills/tests/test_validate_skills.py +115 -0
  183. procesio_cli/tools/__init__.py +0 -0
  184. procesio_cli/tools/_lib/README.md +119 -0
  185. procesio_cli/tools/_lib/__init__.py +0 -0
  186. procesio_cli/tools/_lib/accounting.py +120 -0
  187. procesio_cli/tools/_lib/contacts.py +544 -0
  188. procesio_cli/tools/_lib/creds.py +83 -0
  189. procesio_cli/tools/_lib/creds_backends.py +578 -0
  190. procesio_cli/tools/_lib/dbprofiles.py +147 -0
  191. procesio_cli/tools/_lib/dbquery.py +286 -0
  192. procesio_cli/tools/_lib/dbschema.py +225 -0
  193. procesio_cli/tools/_lib/io.py +54 -0
  194. procesio_cli/tools/_lib/manifest.py +297 -0
  195. procesio_cli/tools/_lib/skill_release.py +127 -0
  196. procesio_cli/tools/_lib/skill_resources.py +118 -0
  197. procesio_cli/tools/_lib/userdata.py +228 -0
  198. procesio_cli/tools/_lib/webserialize/__init__.py +16 -0
  199. procesio_cli/tools/_lib/webserialize/admin.py +61 -0
  200. procesio_cli/tools/_lib/webserialize/client.py +264 -0
  201. procesio_cli/tools/_lib/webserialize/config.py +96 -0
  202. procesio_cli/tools/_lib/webserialize/errors.py +27 -0
  203. procesio_cli/tools/_lib/webserialize/framing.py +45 -0
  204. procesio_cli/tools/_lib/webserialize/registry.py +47 -0
  205. procesio_cli/tools/_lib/webserialize/runtime.py +61 -0
  206. procesio_cli/tools/_lib/webserialize/server.py +510 -0
  207. procesio_cli/tools/_lib/websession.py +194 -0
  208. procesio_cli/tools/connector-builder/CONNECTOR-BUILDER-API-NOTES.md +91 -0
  209. procesio_cli/tools/connector-builder/README.md +101 -0
  210. procesio_cli/tools/connector-builder/SKILL.md +248 -0
  211. procesio_cli/tools/connector-builder/__init__.py +7 -0
  212. procesio_cli/tools/connector-builder/actiondef.py +24 -0
  213. procesio_cli/tools/connector-builder/client.py +251 -0
  214. procesio_cli/tools/connector-builder/errors.py +44 -0
  215. procesio_cli/tools/connector-builder/gen_manifest.py +142 -0
  216. procesio_cli/tools/connector-builder/handlers/__init__.py +1 -0
  217. procesio_cli/tools/connector-builder/handlers/admin.py +182 -0
  218. procesio_cli/tools/connector-builder/handlers/auth.py +74 -0
  219. procesio_cli/tools/connector-builder/handlers/builds.py +396 -0
  220. procesio_cli/tools/connector-builder/handlers/common.py +104 -0
  221. procesio_cli/tools/connector-builder/handlers/files.py +111 -0
  222. procesio_cli/tools/connector-builder/handlers/raw.py +38 -0
  223. procesio_cli/tools/connector-builder/handlers/telemetry.py +39 -0
  224. procesio_cli/tools/connector-builder/main.py +94 -0
  225. procesio_cli/tools/connector-builder/tests/conftest.py +146 -0
  226. procesio_cli/tools/connector-builder/tests/test_cb_client.py +86 -0
  227. procesio_cli/tools/connector-builder/tests/test_cb_dispatch.py +105 -0
  228. procesio_cli/tools/connector-builder/tests/test_cb_manifest_sync.py +76 -0
  229. procesio_cli/tools/connector-builder/tests/test_cb_wait.py +123 -0
  230. procesio_cli/tools/connector-builder/tool.yaml +671 -0
  231. procesio_cli/tools/framework-map/.gitattributes +2 -0
  232. procesio_cli/tools/framework-map/README.md +98 -0
  233. procesio_cli/tools/framework-map/SKILL.md +30 -0
  234. procesio_cli/tools/framework-map/app.js +188 -0
  235. procesio_cli/tools/framework-map/fm_builder.py +476 -0
  236. procesio_cli/tools/framework-map/fm_catalog.py +19 -0
  237. procesio_cli/tools/framework-map/fm_ro_catalog.py +94 -0
  238. procesio_cli/tools/framework-map/fm_strings.py +101 -0
  239. procesio_cli/tools/framework-map/main.py +95 -0
  240. procesio_cli/tools/framework-map/styles.css +214 -0
  241. procesio_cli/tools/framework-map/tests/conftest.py +33 -0
  242. procesio_cli/tools/framework-map/tests/test_fm_build.py +126 -0
  243. procesio_cli/tools/framework-map/tests/test_fm_manifest_sync.py +63 -0
  244. procesio_cli/tools/framework-map/tests/test_fm_store_tree.py +75 -0
  245. procesio_cli/tools/framework-map/tool.yaml +61 -0
  246. procesio_cli/tools/mysql/MOVED-TO-CENTRAL.md +29 -0
  247. procesio_cli/tools/mysql/README.md +196 -0
  248. procesio_cli/tools/mysql/SKILL.md +37 -0
  249. procesio_cli/tools/mysql/__init__.py +0 -0
  250. procesio_cli/tools/mysql/connection.py +191 -0
  251. procesio_cli/tools/mysql/main.py +487 -0
  252. procesio_cli/tools/mysql/profiles.template.json +1 -0
  253. procesio_cli/tools/mysql/schema.py +434 -0
  254. procesio_cli/tools/mysql/tests/__init__.py +0 -0
  255. procesio_cli/tools/mysql/tests/conftest.py +21 -0
  256. procesio_cli/tools/mysql/tests/test_manifest_sync.py +68 -0
  257. procesio_cli/tools/mysql/tests/test_mysql.py +201 -0
  258. procesio_cli/tools/mysql/tests/test_mysql_schema.py +337 -0
  259. procesio_cli/tools/mysql/tool.yaml +112 -0
  260. procesio_cli/tools/procesio/DTO-SUBTOOLS-NOTE.md +360 -0
  261. procesio_cli/tools/procesio/FORM-DEV-GUIDE/00-INDEX.md +67 -0
  262. procesio_cli/tools/procesio/FORM-DEV-GUIDE/01-ANATOMY.md +209 -0
  263. procesio_cli/tools/procesio/FORM-DEV-GUIDE/02-CODE-INJECTION.md +309 -0
  264. procesio_cli/tools/procesio/FORM-DEV-GUIDE/03-DOM-CONTRACT.md +370 -0
  265. procesio_cli/tools/procesio/FORM-DEV-GUIDE/04-INTERACTION-RECIPES.md +600 -0
  266. procesio_cli/tools/procesio/FORM-DEV-GUIDE/05-STEPPER-AND-MOTION.md +426 -0
  267. procesio_cli/tools/procesio/FORM-DEV-GUIDE/06-PROCESS-INTEGRATION.md +347 -0
  268. procesio_cli/tools/procesio/FORM-DEV-GUIDE/07-DEPLOY-WORKFLOW.md +294 -0
  269. procesio_cli/tools/procesio/FORM-DEV-GUIDE/08-PITFALLS.md +569 -0
  270. procesio_cli/tools/procesio/FORM-DEV-GUIDE/09-NAVIGATION-AND-HOSTING.md +308 -0
  271. procesio_cli/tools/procesio/PHASE4-E2E-NOTES.md +594 -0
  272. procesio_cli/tools/procesio/PROCESIO-API-CORRECTIONS.md +295 -0
  273. procesio_cli/tools/procesio/PROCESIO-API-NOTES.md +6976 -0
  274. procesio_cli/tools/procesio/PROCESIO-AUTH-NOTES.md +226 -0
  275. procesio_cli/tools/procesio/PROCESIO-CARD-BUILD-NOTES.md +183 -0
  276. procesio_cli/tools/procesio/PROCESIO-CONNECTORS-NOTES.md +141 -0
  277. procesio_cli/tools/procesio/PROCESIO-CUSTOM-ACTION-NOTES.md +179 -0
  278. procesio_cli/tools/procesio/PROCESIO-DOCS-FIX-REPORT.md +123 -0
  279. procesio_cli/tools/procesio/PROCESIO-ENVIRONMENTS-NOTES.md +94 -0
  280. procesio_cli/tools/procesio/PROCESIO-FE-VALIDATION-NOTES.md +107 -0
  281. procesio_cli/tools/procesio/PROCESIO-FOREACH-NOTES.md +199 -0
  282. procesio_cli/tools/procesio/PROCESIO-FORM-API-HANG-NOTE.md +101 -0
  283. procesio_cli/tools/procesio/PROCESIO-FORM-SUBMISSION-NOTES.md +172 -0
  284. procesio_cli/tools/procesio/PROCESIO-HTML-TO-DOCX-NOTES.md +110 -0
  285. procesio_cli/tools/procesio/PROCESIO-INSTANCE-HISTORY-NOTES.md +242 -0
  286. procesio_cli/tools/procesio/PROCESIO-METERING-NOTES.md +201 -0
  287. procesio_cli/tools/procesio/PROCESIO-NODE-CODE-NOTES.md +279 -0
  288. procesio_cli/tools/procesio/PROCESIO-NODE-MODULE-WHITELIST.md +113 -0
  289. procesio_cli/tools/procesio/PROCESIO-PYTHON-ACTION-NOTES.md +165 -0
  290. procesio_cli/tools/procesio/PROCESIO-QUERY-STORE-NOTES.md +826 -0
  291. procesio_cli/tools/procesio/PROCESIO-RECONCILIATION-PATTERNS.md +104 -0
  292. procesio_cli/tools/procesio/PROCESIO-RESOURCE-MODEL-NOTES.md +1100 -0
  293. procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-CRED-OPTIONALITY.md +45 -0
  294. procesio_cli/tools/procesio/PROCESIO-SEND-EMAIL-NOTES.md +252 -0
  295. procesio_cli/tools/procesio/PROCESIO-SQL-ACTIONS-NOTES.md +284 -0
  296. procesio_cli/tools/procesio/PROCESIO-USAGE-GUIDE.md +219 -0
  297. procesio_cli/tools/procesio/README.md +341 -0
  298. procesio_cli/tools/procesio/SCHEDULE-INPUT-SECURITY-NOTES.md +63 -0
  299. procesio_cli/tools/procesio/SKILL.md +694 -0
  300. procesio_cli/tools/procesio/__init__.py +1 -0
  301. procesio_cli/tools/procesio/actiondef.py +27 -0
  302. procesio_cli/tools/procesio/assets/html2docx/html2docx.js +2155 -0
  303. procesio_cli/tools/procesio/auth.py +354 -0
  304. procesio_cli/tools/procesio/autogen.py +121 -0
  305. procesio_cli/tools/procesio/client.py +355 -0
  306. procesio_cli/tools/procesio/config.py +96 -0
  307. procesio_cli/tools/procesio/data/endpoints.json +2901 -0
  308. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/01-authentication.md +180 -0
  309. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/02-conventions.md +116 -0
  310. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/ANONYMOUS-SURFACE.md +51 -0
  311. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/README.md +104 -0
  312. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/SYMBOL-INDEX.md +444 -0
  313. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/03-auth-users-workspaces.md +731 -0
  314. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/04-processes.md +913 -0
  315. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/05-actions.md +605 -0
  316. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/06-files.md +237 -0
  317. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/07-forms-documents.md +985 -0
  318. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/08-credentials.md +532 -0
  319. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/09-datastore-datatypes.md +830 -0
  320. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/10-custom-urls.md +319 -0
  321. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/11-subscriptions-resources-analytics.md +455 -0
  322. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/12-webhooks-notifications-misc.md +519 -0
  323. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/13-realtime-signalr.md +153 -0
  324. procesio_cli/tools/procesio/docs_info/API-DOCUMENTATION/endpoints/99-internal-and-other-services.md +52 -0
  325. procesio_cli/tools/procesio/docs_info/FormBuilder mock.ts +5725 -0
  326. procesio_cli/tools/procesio/docs_info/Procesio Platform Actions.json +30219 -0
  327. procesio_cli/tools/procesio/docs_info/form-config-enums.ts +92 -0
  328. procesio_cli/tools/procesio/docs_info/form-theme.ts +1603 -0
  329. procesio_cli/tools/procesio/docs_info/process-validation-reference-1.md +2739 -0
  330. procesio_cli/tools/procesio/dto/__init__.py +13 -0
  331. procesio_cli/tools/procesio/dto/credential/builder.py +179 -0
  332. procesio_cli/tools/procesio/dto/credential/config.schema.json +19 -0
  333. procesio_cli/tools/procesio/dto/credential/description.md +193 -0
  334. procesio_cli/tools/procesio/dto/credential/fixtures/rest.config.json +11 -0
  335. procesio_cli/tools/procesio/dto/credential/fixtures/rest.dto.json +28 -0
  336. procesio_cli/tools/procesio/dto/credential/fixtures/rest.template.json +44 -0
  337. procesio_cli/tools/procesio/dto/credential/template.dto.json +16 -0
  338. procesio_cli/tools/procesio/dto/data/_refresh.py +147 -0
  339. procesio_cli/tools/procesio/dto/data/action_catalog.json +30825 -0
  340. procesio_cli/tools/procesio/dto/data/action_families.json +55 -0
  341. procesio_cli/tools/procesio/dto/data/platform_types.json +182 -0
  342. procesio_cli/tools/procesio/dto/datatype/builder.py +223 -0
  343. procesio_cli/tools/procesio/dto/datatype/config.schema.json +47 -0
  344. procesio_cli/tools/procesio/dto/datatype/description.md +85 -0
  345. procesio_cli/tools/procesio/dto/datatype/fixtures/customer.config.json +41 -0
  346. procesio_cli/tools/procesio/dto/datatype/fixtures/customer.dto.json +164 -0
  347. procesio_cli/tools/procesio/dto/datatype/template.dto.json +37 -0
  348. procesio_cli/tools/procesio/dto/document/builder.py +193 -0
  349. procesio_cli/tools/procesio/dto/document/config.schema.json +33 -0
  350. procesio_cli/tools/procesio/dto/document/description.md +124 -0
  351. procesio_cli/tools/procesio/dto/document/fixtures/invoice.config.json +16 -0
  352. procesio_cli/tools/procesio/dto/document/fixtures/invoice.dto.json +32 -0
  353. procesio_cli/tools/procesio/dto/document/template.dto.json +14 -0
  354. procesio_cli/tools/procesio/dto/form/FORM-STYLING-NOTES.md +142 -0
  355. procesio_cli/tools/procesio/dto/form/GOLDEN-DRIFT-NOTES.md +72 -0
  356. procesio_cli/tools/procesio/dto/form/RUN-PROCESS-RESULT-NOTES.md +80 -0
  357. procesio_cli/tools/procesio/dto/form/addelement.py +277 -0
  358. procesio_cli/tools/procesio/dto/form/builder.py +1009 -0
  359. procesio_cli/tools/procesio/dto/form/capture_goldens.py +106 -0
  360. procesio_cli/tools/procesio/dto/form/code_cipher.py +67 -0
  361. procesio_cli/tools/procesio/dto/form/config.schema.json +76 -0
  362. procesio_cli/tools/procesio/dto/form/data_shell.json +1 -0
  363. procesio_cli/tools/procesio/dto/form/description.md +346 -0
  364. procesio_cli/tools/procesio/dto/form/elements/approval.json +259 -0
  365. procesio_cli/tools/procesio/dto/form/elements/assignee.json +137 -0
  366. procesio_cli/tools/procesio/dto/form/elements/button.json +125 -0
  367. procesio_cli/tools/procesio/dto/form/elements/chart.json +341 -0
  368. procesio_cli/tools/procesio/dto/form/elements/chat.json +199 -0
  369. procesio_cli/tools/procesio/dto/form/elements/checkbox.json +153 -0
  370. procesio_cli/tools/procesio/dto/form/elements/column.json +77 -0
  371. procesio_cli/tools/procesio/dto/form/elements/columns.json +78 -0
  372. procesio_cli/tools/procesio/dto/form/elements/datetime-input.json +304 -0
  373. procesio_cli/tools/procesio/dto/form/elements/divider.json +54 -0
  374. procesio_cli/tools/procesio/dto/form/elements/dropdown.json +130 -0
  375. procesio_cli/tools/procesio/dto/form/elements/dynamic-table-row.json +253 -0
  376. procesio_cli/tools/procesio/dto/form/elements/file-upload.json +196 -0
  377. procesio_cli/tools/procesio/dto/form/elements/file-viewer.json +169 -0
  378. procesio_cli/tools/procesio/dto/form/elements/heading.json +79 -0
  379. procesio_cli/tools/procesio/dto/form/elements/icon.json +107 -0
  380. procesio_cli/tools/procesio/dto/form/elements/image.json +174 -0
  381. procesio_cli/tools/procesio/dto/form/elements/input.json +206 -0
  382. procesio_cli/tools/procesio/dto/form/elements/list.json +202 -0
  383. procesio_cli/tools/procesio/dto/form/elements/number-input.json +202 -0
  384. procesio_cli/tools/procesio/dto/form/elements/paragraph.json +79 -0
  385. procesio_cli/tools/procesio/dto/form/elements/radiobox.json +174 -0
  386. procesio_cli/tools/procesio/dto/form/elements/section.json +114 -0
  387. procesio_cli/tools/procesio/dto/form/elements/select.json +217 -0
  388. procesio_cli/tools/procesio/dto/form/elements/side-panel.json +146 -0
  389. procesio_cli/tools/procesio/dto/form/elements/signature-pad.json +141 -0
  390. procesio_cli/tools/procesio/dto/form/elements/static-table-row.json +84 -0
  391. procesio_cli/tools/procesio/dto/form/elements/step.json +105 -0
  392. procesio_cli/tools/procesio/dto/form/elements/stepper.json +126 -0
  393. procesio_cli/tools/procesio/dto/form/elements/tab.json +77 -0
  394. procesio_cli/tools/procesio/dto/form/elements/table.json +279 -0
  395. procesio_cli/tools/procesio/dto/form/elements/tabs.json +114 -0
  396. procesio_cli/tools/procesio/dto/form/elements/textarea.json +213 -0
  397. procesio_cli/tools/procesio/dto/form/enum_map.json +68 -0
  398. procesio_cli/tools/procesio/dto/form/fieldpath.py +284 -0
  399. procesio_cli/tools/procesio/dto/form/fixtures/reg.config.json +32 -0
  400. procesio_cli/tools/procesio/dto/form/fixtures/reg.elements.json +638 -0
  401. procesio_cli/tools/procesio/dto/form/sync_from_mock.py +386 -0
  402. procesio_cli/tools/procesio/dto/framework.py +125 -0
  403. procesio_cli/tools/procesio/dto/process/builder.py +1991 -0
  404. procesio_cli/tools/procesio/dto/process/config.schema.json +159 -0
  405. procesio_cli/tools/procesio/dto/process/description.md +218 -0
  406. procesio_cli/tools/procesio/dto/process/fixtures/greet.config.json +32 -0
  407. procesio_cli/tools/procesio/dto/process/fixtures/greet.dto.json +317 -0
  408. procesio_cli/tools/procesio/dto/process/naming.py +305 -0
  409. procesio_cli/tools/procesio/dto/process/normalize.py +74 -0
  410. procesio_cli/tools/procesio/dto/process/template.dto.json +32 -0
  411. procesio_cli/tools/procesio/dto/refdata.py +87 -0
  412. procesio_cli/tools/procesio/dto/registry.py +27 -0
  413. procesio_cli/tools/procesio/dto/webhook/builder.py +142 -0
  414. procesio_cli/tools/procesio/dto/webhook/config.schema.json +25 -0
  415. procesio_cli/tools/procesio/dto/webhook/description.md +92 -0
  416. procesio_cli/tools/procesio/dto/webhook/fixtures/order.config.json +10 -0
  417. procesio_cli/tools/procesio/dto/webhook/fixtures/order.dto.json +25 -0
  418. procesio_cli/tools/procesio/dto/webhook/template.dto.json +14 -0
  419. procesio_cli/tools/procesio/environments.py +264 -0
  420. procesio_cli/tools/procesio/errors.py +166 -0
  421. procesio_cli/tools/procesio/flowmodel/README.md +37 -0
  422. procesio_cli/tools/procesio/flowmodel/__init__.py +14 -0
  423. procesio_cli/tools/procesio/flowmodel/digest.py +223 -0
  424. procesio_cli/tools/procesio/flowmodel/families.py +34 -0
  425. procesio_cli/tools/procesio/flowmodel/fevalidation.py +1098 -0
  426. procesio_cli/tools/procesio/flowmodel/formdigest.py +232 -0
  427. procesio_cli/tools/procesio/flowmodel/inspect.py +78 -0
  428. procesio_cli/tools/procesio/flowmodel/model.py +82 -0
  429. procesio_cli/tools/procesio/flowmodel/nodeparam.py +871 -0
  430. procesio_cli/tools/procesio/flowmodel/reader.py +191 -0
  431. procesio_cli/tools/procesio/flowmodel/sqlparam.py +410 -0
  432. procesio_cli/tools/procesio/form_code_keys.py +50 -0
  433. procesio_cli/tools/procesio/formlint.py +292 -0
  434. procesio_cli/tools/procesio/gen_manifest.py +118 -0
  435. procesio_cli/tools/procesio/handlers/__init__.py +1 -0
  436. procesio_cli/tools/procesio/handlers/auth_actions.py +103 -0
  437. procesio_cli/tools/procesio/handlers/catalog.py +147 -0
  438. procesio_cli/tools/procesio/handlers/common.py +90 -0
  439. procesio_cli/tools/procesio/handlers/customaction_ops.py +146 -0
  440. procesio_cli/tools/procesio/handlers/datastore_ops.py +482 -0
  441. procesio_cli/tools/procesio/handlers/datatype_ops.py +275 -0
  442. procesio_cli/tools/procesio/handlers/dto_actions.py +258 -0
  443. procesio_cli/tools/procesio/handlers/environment_admin.py +146 -0
  444. procesio_cli/tools/procesio/handlers/fevalidate.py +236 -0
  445. procesio_cli/tools/procesio/handlers/files.py +141 -0
  446. procesio_cli/tools/procesio/handlers/flowgraph.py +229 -0
  447. procesio_cli/tools/procesio/handlers/flowlint.py +269 -0
  448. procesio_cli/tools/procesio/handlers/form_chains.py +336 -0
  449. procesio_cli/tools/procesio/handlers/form_code.py +277 -0
  450. procesio_cli/tools/procesio/handlers/form_element.py +199 -0
  451. procesio_cli/tools/procesio/handlers/form_events.py +441 -0
  452. procesio_cli/tools/procesio/handlers/form_update.py +270 -0
  453. procesio_cli/tools/procesio/handlers/formprocess.py +211 -0
  454. procesio_cli/tools/procesio/handlers/generic.py +135 -0
  455. procesio_cli/tools/procesio/handlers/layout.py +137 -0
  456. procesio_cli/tools/procesio/handlers/nodeparams.py +1018 -0
  457. procesio_cli/tools/procesio/handlers/process_layout.py +189 -0
  458. procesio_cli/tools/procesio/handlers/process_naming.py +213 -0
  459. procesio_cli/tools/procesio/handlers/processes.py +416 -0
  460. procesio_cli/tools/procesio/handlers/profile_admin.py +184 -0
  461. procesio_cli/tools/procesio/handlers/resource_ops.py +447 -0
  462. procesio_cli/tools/procesio/handlers/schedules.py +320 -0
  463. procesio_cli/tools/procesio/handlers/sqlactions.py +232 -0
  464. procesio_cli/tools/procesio/handlers/transport.py +463 -0
  465. procesio_cli/tools/procesio/handlers/usageguide.py +222 -0
  466. procesio_cli/tools/procesio/layout/README.md +196 -0
  467. procesio_cli/tools/procesio/layout/__init__.py +11 -0
  468. procesio_cli/tools/procesio/layout/adapter.py +736 -0
  469. procesio_cli/tools/procesio/layout/cycles.py +186 -0
  470. procesio_cli/tools/procesio/layout/dispatch.py +39 -0
  471. procesio_cli/tools/procesio/layout/elk/elk_runner.mjs +50 -0
  472. procesio_cli/tools/procesio/layout/elk/package-lock.json +21 -0
  473. procesio_cli/tools/procesio/layout/elk/package.json +11 -0
  474. procesio_cli/tools/procesio/layout/elk_engine.py +568 -0
  475. procesio_cli/tools/procesio/layout/engine.py +1311 -0
  476. procesio_cli/tools/procesio/layout/report.py +187 -0
  477. procesio_cli/tools/procesio/main.py +179 -0
  478. procesio_cli/tools/procesio/profiles.py +193 -0
  479. procesio_cli/tools/procesio/reliability.py +193 -0
  480. procesio_cli/tools/procesio/sqlformat.py +167 -0
  481. procesio_cli/tools/procesio/swagger.py +51 -0
  482. procesio_cli/tools/procesio/tests/__init__.py +0 -0
  483. procesio_cli/tools/procesio/tests/conftest.py +129 -0
  484. procesio_cli/tools/procesio/tests/test_auth.py +200 -0
  485. procesio_cli/tools/procesio/tests/test_autogen.py +78 -0
  486. procesio_cli/tools/procesio/tests/test_builder_attrpath_sqlbind.py +180 -0
  487. procesio_cli/tools/procesio/tests/test_builder_custom_action_catalog.py +72 -0
  488. procesio_cli/tools/procesio/tests/test_client.py +114 -0
  489. procesio_cli/tools/procesio/tests/test_client_reliability.py +139 -0
  490. procesio_cli/tools/procesio/tests/test_customaction.py +103 -0
  491. procesio_cli/tools/procesio/tests/test_customaction_test.py +80 -0
  492. procesio_cli/tools/procesio/tests/test_cycles.py +69 -0
  493. procesio_cli/tools/procesio/tests/test_datastore.py +378 -0
  494. procesio_cli/tools/procesio/tests/test_datastore_node.py +94 -0
  495. procesio_cli/tools/procesio/tests/test_dispatch.py +170 -0
  496. procesio_cli/tools/procesio/tests/test_document_page_size.py +19 -0
  497. procesio_cli/tools/procesio/tests/test_dto.py +734 -0
  498. procesio_cli/tools/procesio/tests/test_edit_dryrun_preview.py +96 -0
  499. procesio_cli/tools/procesio/tests/test_elk_layout.py +221 -0
  500. procesio_cli/tools/procesio/tests/test_environments.py +214 -0
  501. procesio_cli/tools/procesio/tests/test_fevalidate_gate.py +104 -0
  502. procesio_cli/tools/procesio/tests/test_fevalidation.py +317 -0
  503. procesio_cli/tools/procesio/tests/test_fieldpath_variables.py +87 -0
  504. procesio_cli/tools/procesio/tests/test_files.py +72 -0
  505. procesio_cli/tools/procesio/tests/test_flow_digest.py +202 -0
  506. procesio_cli/tools/procesio/tests/test_flowlint.py +114 -0
  507. procesio_cli/tools/procesio/tests/test_flowmodel.py +158 -0
  508. procesio_cli/tools/procesio/tests/test_form_add_element.py +256 -0
  509. procesio_cli/tools/procesio/tests/test_form_approval_gaps.py +319 -0
  510. procesio_cli/tools/procesio/tests/test_form_auto_names.py +60 -0
  511. procesio_cli/tools/procesio/tests/test_form_chains.py +217 -0
  512. procesio_cli/tools/procesio/tests/test_form_code_actions.py +188 -0
  513. procesio_cli/tools/procesio/tests/test_form_code_keys.py +92 -0
  514. procesio_cli/tools/procesio/tests/test_form_code_style.py +178 -0
  515. procesio_cli/tools/procesio/tests/test_form_delete_element.py +99 -0
  516. procesio_cli/tools/procesio/tests/test_form_element_config.py +141 -0
  517. procesio_cli/tools/procesio/tests/test_form_event_maps.py +135 -0
  518. procesio_cli/tools/procesio/tests/test_form_event_ops.py +376 -0
  519. procesio_cli/tools/procesio/tests/test_form_event_replace.py +86 -0
  520. procesio_cli/tools/procesio/tests/test_form_events.py +92 -0
  521. procesio_cli/tools/procesio/tests/test_form_parity.py +171 -0
  522. procesio_cli/tools/procesio/tests/test_form_select_source.py +74 -0
  523. procesio_cli/tools/procesio/tests/test_form_sync.py +35 -0
  524. procesio_cli/tools/procesio/tests/test_form_update.py +133 -0
  525. procesio_cli/tools/procesio/tests/test_formlint.py +155 -0
  526. procesio_cli/tools/procesio/tests/test_formlint_css_scope.py +38 -0
  527. procesio_cli/tools/procesio/tests/test_formlint_field_names.py +83 -0
  528. procesio_cli/tools/procesio/tests/test_guards.py +110 -0
  529. procesio_cli/tools/procesio/tests/test_hidden_setting_types.py +39 -0
  530. procesio_cli/tools/procesio/tests/test_html2docx_asset.py +132 -0
  531. procesio_cli/tools/procesio/tests/test_key_handle_terminology.py +45 -0
  532. procesio_cli/tools/procesio/tests/test_layout.py +574 -0
  533. procesio_cli/tools/procesio/tests/test_layout_report.py +88 -0
  534. procesio_cli/tools/procesio/tests/test_manifest_sync.py +68 -0
  535. procesio_cli/tools/procesio/tests/test_nodedelete.py +151 -0
  536. procesio_cli/tools/procesio/tests/test_nodeparam.py +826 -0
  537. procesio_cli/tools/procesio/tests/test_normalize.py +70 -0
  538. procesio_cli/tools/procesio/tests/test_payload_docs.py +86 -0
  539. procesio_cli/tools/procesio/tests/test_process_action_naming.py +170 -0
  540. procesio_cli/tools/procesio/tests/test_process_call_api_seed.py +46 -0
  541. procesio_cli/tools/procesio/tests/test_process_ext.py +373 -0
  542. procesio_cli/tools/procesio/tests/test_process_invariants.py +183 -0
  543. procesio_cli/tools/procesio/tests/test_process_layout.py +117 -0
  544. procesio_cli/tools/procesio/tests/test_process_naming.py +188 -0
  545. procesio_cli/tools/procesio/tests/test_process_query_store.py +172 -0
  546. procesio_cli/tools/procesio/tests/test_processinfo_variable.py +56 -0
  547. procesio_cli/tools/procesio/tests/test_profiles.py +127 -0
  548. procesio_cli/tools/procesio/tests/test_put_projects.py +41 -0
  549. procesio_cli/tools/procesio/tests/test_reliability.py +107 -0
  550. procesio_cli/tools/procesio/tests/test_removal_gate.py +95 -0
  551. procesio_cli/tools/procesio/tests/test_resource_ops.py +173 -0
  552. procesio_cli/tools/procesio/tests/test_save_validity.py +207 -0
  553. procesio_cli/tools/procesio/tests/test_schedule_cron_shape.py +111 -0
  554. procesio_cli/tools/procesio/tests/test_schedules.py +309 -0
  555. procesio_cli/tools/procesio/tests/test_sqlconvert.py +234 -0
  556. procesio_cli/tools/procesio/tests/test_sqlformat.py +83 -0
  557. procesio_cli/tools/procesio/tests/test_sqlparam.py +187 -0
  558. procesio_cli/tools/procesio/tests/test_superseded_actions.py +54 -0
  559. procesio_cli/tools/procesio/tests/test_surgical_concurrency.py +156 -0
  560. procesio_cli/tools/procesio/tests/test_tier4.py +123 -0
  561. procesio_cli/tools/procesio/tests/test_transport.py +147 -0
  562. procesio_cli/tools/procesio/tests/test_transport_data_stores.py +168 -0
  563. procesio_cli/tools/procesio/tests/test_transport_mapper_repair.py +150 -0
  564. procesio_cli/tools/procesio/tests/test_transport_webhook_strip.py +253 -0
  565. procesio_cli/tools/procesio/tests/test_usage_guide.py +96 -0
  566. procesio_cli/tools/procesio/tool.yaml +12486 -0
  567. procesio_cli/tools/sqlserver/MOVED-TO-CENTRAL.md +29 -0
  568. procesio_cli/tools/sqlserver/README.md +192 -0
  569. procesio_cli/tools/sqlserver/SKILL.md +37 -0
  570. procesio_cli/tools/sqlserver/SQLSERVER-SCHEMA-NOTES.md +284 -0
  571. procesio_cli/tools/sqlserver/__init__.py +0 -0
  572. procesio_cli/tools/sqlserver/connection.py +242 -0
  573. procesio_cli/tools/sqlserver/main.py +521 -0
  574. procesio_cli/tools/sqlserver/profiles.template.json +1 -0
  575. procesio_cli/tools/sqlserver/schema.py +600 -0
  576. procesio_cli/tools/sqlserver/tests/__init__.py +0 -0
  577. procesio_cli/tools/sqlserver/tests/conftest.py +21 -0
  578. procesio_cli/tools/sqlserver/tests/test_connection.py +75 -0
  579. procesio_cli/tools/sqlserver/tests/test_dbprofiles.py +92 -0
  580. procesio_cli/tools/sqlserver/tests/test_dbquery.py +220 -0
  581. procesio_cli/tools/sqlserver/tests/test_manifest_sync.py +68 -0
  582. procesio_cli/tools/sqlserver/tests/test_sqlserver.py +326 -0
  583. procesio_cli/tools/sqlserver/tests/test_sqlserver_schema.py +488 -0
  584. procesio_cli/tools/sqlserver/tool.yaml +123 -0
  585. procesio_cli/tools/web/README.md +381 -0
  586. procesio_cli/tools/web/SKILL.md +37 -0
  587. procesio_cli/tools/web/WEB-AUTOMATION-NOTES.md +277 -0
  588. procesio_cli/tools/web/__init__.py +21 -0
  589. procesio_cli/tools/web/actiondef.py +24 -0
  590. procesio_cli/tools/web/api.py +444 -0
  591. procesio_cli/tools/web/brokered.py +107 -0
  592. procesio_cli/tools/web/driver.py +839 -0
  593. procesio_cli/tools/web/drivercontract.py +44 -0
  594. procesio_cli/tools/web/errors.py +54 -0
  595. procesio_cli/tools/web/handlers/__init__.py +1 -0
  596. procesio_cli/tools/web/handlers/archive.py +367 -0
  597. procesio_cli/tools/web/handlers/browse.py +182 -0
  598. procesio_cli/tools/web/handlers/contacts.py +74 -0
  599. procesio_cli/tools/web/handlers/sessmgmt.py +120 -0
  600. procesio_cli/tools/web/main.py +128 -0
  601. procesio_cli/tools/web/sessions.py +253 -0
  602. procesio_cli/tools/web/steps.py +162 -0
  603. procesio_cli/tools/web/tests/__init__.py +0 -0
  604. procesio_cli/tools/web/tests/conftest.py +197 -0
  605. procesio_cli/tools/web/tests/test_api.py +330 -0
  606. procesio_cli/tools/web/tests/test_archive.py +190 -0
  607. procesio_cli/tools/web/tests/test_brokered.py +138 -0
  608. procesio_cli/tools/web/tests/test_dispatch.py +132 -0
  609. procesio_cli/tools/web/tests/test_errors.py +60 -0
  610. procesio_cli/tools/web/tests/test_manifest_sync.py +76 -0
  611. procesio_cli/tools/web/tests/test_page_contacts.py +68 -0
  612. procesio_cli/tools/web/tests/test_sessions.py +145 -0
  613. procesio_cli/tools/web/tests/test_steps.py +210 -0
  614. procesio_cli/tools/web/tool.yaml +184 -0
  615. procesio_cli/tools/xlsx/README.md +34 -0
  616. procesio_cli/tools/xlsx/SKILL.md +28 -0
  617. procesio_cli/tools/xlsx/__init__.py +0 -0
  618. procesio_cli/tools/xlsx/main.py +129 -0
  619. procesio_cli/tools/xlsx/reader.py +91 -0
  620. procesio_cli/tools/xlsx/tests/__init__.py +0 -0
  621. procesio_cli/tools/xlsx/tests/conftest.py +39 -0
  622. procesio_cli/tools/xlsx/tests/test_xlsx.py +103 -0
  623. procesio_cli/tools/xlsx/tool.yaml +30 -0
  624. procesio_cli/webplatform/aat_mcp/AAT-MCP-NOTES.md +244 -0
  625. procesio_cli/webplatform/aat_mcp/README.md +78 -0
  626. procesio_cli/webplatform/aat_mcp/bridge.py +705 -0
  627. procesio_cli/webplatform/aat_mcp/chat_server.py +194 -0
  628. procesio_cli/webplatform/aat_mcp/chat_surface.snapshot.json +668 -0
  629. procesio_cli/webplatform/aat_mcp/chat_surface.yaml +372 -0
  630. procesio_cli/webplatform/aat_mcp/gate.py +68 -0
  631. procesio_cli/webplatform/aat_mcp/http_server.py +139 -0
  632. procesio_cli/webplatform/aat_mcp/protocol.py +175 -0
  633. procesio_cli/webplatform/aat_mcp/server.py +306 -0
  634. procesio_cli/webplatform/aat_mcp/tests/conftest.py +8 -0
  635. procesio_cli/webplatform/aat_mcp/tests/test_aat_mcp.py +255 -0
  636. procesio_cli/webplatform/aat_mcp/tests/test_chat_surface.py +247 -0
  637. procesio_cli/webplatform/aat_mcp/tests/test_discovery.py +489 -0
  638. procesio_cli/webplatform/aat_mcp/tests/test_multiuser.py +86 -0
  639. procesio_cli/webplatform/aat_mcp/tests/test_progressive_discovery.py +89 -0
  640. procesio_cli/webplatform/aat_mcp/tests/test_protocol.py +180 -0
  641. procesio_cli/webplatform/aat_mcp/tests/test_skill_discovery.py +23 -0
  642. procesio_cli-0.1.1.dist-info/METADATA +467 -0
  643. procesio_cli-0.1.1.dist-info/RECORD +647 -0
  644. procesio_cli-0.1.1.dist-info/WHEEL +4 -0
  645. procesio_cli-0.1.1.dist-info/entry_points.txt +7 -0
  646. procesio_cli-0.1.1.dist-info/licenses/LICENSE +201 -0
  647. 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.