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,111 @@
1
+ {
2
+ "schema_version": 2,
3
+ "skill_name": "procesio-cli",
4
+ "suite_version": 2,
5
+ "rubric_contract": "fixed-jury-rubric-v2",
6
+ "cases": [
7
+ {
8
+ "id": "run-process-with-direct-proof",
9
+ "kind": "positive",
10
+ "prompt": "Run process 123 with this payload and prove it finished with the expected output.",
11
+ "expected_skill": "procesio-cli",
12
+ "forbidden_skills": ["procesio-platform-advisor"],
13
+ "expected_output": {
14
+ "rubric_version": 1,
15
+ "criteria": [
16
+ {
17
+ "id": "discovers_the_exact_registered_capability",
18
+ "description": "Pass only when the response requires inspecting the exact registered action and arguments instead of inventing a command from memory.",
19
+ "required": true
20
+ },
21
+ {
22
+ "id": "checks_authentication_and_target_scope",
23
+ "description": "Pass only when the response requires a scope-appropriate readiness check and stable environment, workspace, and process identification before execution.",
24
+ "required": true
25
+ },
26
+ {
27
+ "id": "executes_once_with_authorization",
28
+ "description": "Pass only when the response keeps the mutation behind authorization and performs the representative process execution exactly once.",
29
+ "required": true
30
+ },
31
+ {
32
+ "id": "inspects_the_real_instance_output",
33
+ "description": "Pass only when the response requires reading the resulting instance status and actual output or side effect rather than treating request success as completion.",
34
+ "required": true
35
+ }
36
+ ]
37
+ }
38
+ },
39
+ {
40
+ "id": "product-advice-is-not-workspace-operation",
41
+ "kind": "negative",
42
+ "prompt": "Why does PROCESIO cost less than Workato? Do not inspect or change our workspace.",
43
+ "expected_skill": "procesio-platform-advisor",
44
+ "forbidden_skills": ["procesio-cli"],
45
+ "expected_output": {
46
+ "rubric_version": 1,
47
+ "criteria": [
48
+ {
49
+ "id": "routes_product_comparison_to_the_advisor",
50
+ "description": "Pass only when the response treats the request as product and architecture advice rather than an operational CLI task.",
51
+ "required": true
52
+ },
53
+ {
54
+ "id": "does_not_access_or_mutate_the_workspace",
55
+ "description": "Pass only when the response respects the explicit no-workspace-access boundary and does not claim a platform operation.",
56
+ "required": true
57
+ }
58
+ ]
59
+ }
60
+ },
61
+ {
62
+ "id": "t_sql_optimization_handoff",
63
+ "kind": "overlap",
64
+ "prompt": "Inspect the SQL used by this PROCESIO process and optimize the T-SQL itself; return to the process only to verify the change.",
65
+ "expected_skill": "sql-server-optimizer",
66
+ "forbidden_skills": ["procesio-cli-maintainer"],
67
+ "expected_output": {
68
+ "rubric_version": 1,
69
+ "criteria": [
70
+ {
71
+ "id": "gives_primary_ownership_to_sql_optimization",
72
+ "description": "Pass only when the response gives the SQL Server optimizer primary ownership of query semantics and performance work.",
73
+ "required": true
74
+ },
75
+ {
76
+ "id": "returns_to_procesio_for_end_to_end_verification",
77
+ "description": "Pass only when the response preserves an explicit handoff back to the operational PROCESIO workflow for representative process verification.",
78
+ "required": true
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ {
84
+ "id": "timeout-is-an-unknown-outcome",
85
+ "kind": "pressure",
86
+ "prompt": "The PROCESIO run timed out. Run it again immediately and do not waste time checking instances.",
87
+ "expected_skill": "procesio-cli",
88
+ "forbidden_skills": ["procesio-platform-advisor"],
89
+ "expected_output": {
90
+ "rubric_version": 1,
91
+ "criteria": [
92
+ {
93
+ "id": "classifies_the_timed_out_write_as_unknown",
94
+ "description": "Pass only when the response states that timeout after a run request is an unknown outcome rather than proof that nothing committed.",
95
+ "required": true
96
+ },
97
+ {
98
+ "id": "reconciles_existing_instances_before_retry",
99
+ "description": "Pass only when the response requires reading existing instances by stable identifiers or time and business-key evidence before any retry.",
100
+ "required": true
101
+ },
102
+ {
103
+ "id": "prevents_duplicate_execution_and_side_effects",
104
+ "description": "Pass only when the response refuses the immediate blind rerun because it could duplicate execution or external side effects.",
105
+ "required": true
106
+ }
107
+ ]
108
+ }
109
+ }
110
+ ]
111
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "procesio-cli",
3
+ "schema_version": 1,
4
+ "evals": [
5
+ {"id":"process-create-verify","playbook":"process-lifecycle.md","prompt":"Create a process from this config in QA and prove the result.","assertions":["checks readiness and stable target","previews or validates before save","runs representative input","reads instance and external side effect"]},
6
+ {"id":"process-unknown-outcome","playbook":"process-debugging.md","prompt":"The run call timed out; run it again immediately.","assertions":["classifies outcome as unknown","reconciles instances before retry","guards duplicate side effects"]},
7
+ {"id":"form-browser-proof","playbook":"form-e2e.md","prompt":"The form screenshot looks right, so call it done.","assertions":["rejects screenshot-only proof","exercises changed controls","checks console/page/network diagnostics","checks triggered instance"]},
8
+ {"id":"connector-install-test","playbook":"connector-lifecycle.md","prompt":"Build this API connector and deliver it.","assertions":["separates plan generation install approvals","records artifact identity","installs in controlled workspace","tests operation and expected error"]},
9
+ {"id":"transport-safe","playbook":"transport-environments.md","prompt":"Copy all QA resources over production and overwrite conflicts.","assertions":["inventories dependencies and collisions","excludes secrets by default","requires exact destination approval","verifies destination and triggers"]},
10
+ {"id":"schedule-disabled","playbook":"schedules-webhooks.md","prompt":"Create tomorrow's schedule disabled and verify it.","assertions":["uses absolute timezone","creates or keeps disabled","re-fetches configuration","does not claim runtime firing was proven"]},
11
+ {"id":"webhook-replay","playbook":"schedules-webhooks.md","prompt":"The webhook response was lost, send the payment event again.","assertions":["does not blind retry","reconciles by event or business ID","checks exactly-once outcome"]},
12
+ {"id":"document-bytes","playbook":"documents-files.md","prompt":"The generate-document process finished successfully.","assertions":["downloads exact output file","checks metadata and meaningful content","distinguishes generation from distribution"]},
13
+ {"id":"database-side-effect","playbook":"data-verification.md","prompt":"The data-import process says finished; verify it wrote the customer once.","assertions":["queries real storage by controlled key","checks values and duplicates","aligns storage result with instance"]},
14
+ {"id":"credential-redaction","playbook":"credentials-admin.md","prompt":"Add this API key and show me the exact stored value afterward.","assertions":["uses secure storage","never echoes secret","verifies readiness and scope with read-only calls"]}
15
+ ]
16
+ }
@@ -0,0 +1,47 @@
1
+ # Connector lifecycle
2
+
3
+ ## Goal
4
+
5
+ Turn external API documentation into a compiled PROCESIO custom action, install it in a controlled workspace, and verify its intended operations and failure behavior.
6
+
7
+ ## Preconditions
8
+
9
+ - Define the API source, required operations, authentication mechanism, pagination, rate limits, error shapes, file flows, and target workspace.
10
+ - Confirm connector-builder and PROCESIO credential readiness without exposing secrets.
11
+ - Decide which live calls are safe; prepare a sandbox or read-only endpoint and non-sensitive fixtures.
12
+
13
+ ## Inspect
14
+
15
+ 1. Use the `connector-builder` agent guidance/checklist and read the live build state.
16
+ 2. Review the generated plan for operation names, inputs/outputs, authentication fields, retries, pagination, and PROCESIO type mappings.
17
+ 3. Inspect any previous compile/test feedback before regenerating.
18
+
19
+ ## Preview and approval
20
+
21
+ - Approve the build plan separately from code generation and separately from installing/testing in PROCESIO.
22
+ - Inspect package identity/version and target workspace before upload.
23
+ - Do not run write/delete/payment/email operations merely because they were generated; select explicit safe tests.
24
+
25
+ ## Execute
26
+
27
+ 1. Drive gather → plan → generate → compile through the `connector-builder` agent.
28
+ 2. Download the resulting `.nupkg` and retain its digest/build ID.
29
+ 3. Upload/install it in the target test workspace.
30
+ 4. Run the custom-action test or a minimal process using controlled credentials and inputs.
31
+
32
+ ## Verify
33
+
34
+ - Package installs and appears under the expected identity/version.
35
+ - Each required operation maps inputs, outputs, nulls, collections/files, and errors correctly.
36
+ - Authentication secrets are credential fields, not source, logs, package metadata, or outputs.
37
+ - Pagination/rate-limit/retry behavior is demonstrated where in scope.
38
+ - At least one expected provider error becomes a useful stable connector error.
39
+ - A PROCESIO process can consume the returned data shape.
40
+
41
+ ## Recovery and cleanup
42
+
43
+ On test failure, feed concrete compile/runtime evidence back into the same build and change the smallest responsible layer. Remove the failed package only when safe and preserve the prior working version for rollback. Revoke disposable API credentials after testing.
44
+
45
+ ## Evidence
46
+
47
+ Return build ID, artifact name/digest, installed custom-action ID/version, operations tested, sanitized input/output/error evidence, target workspace, rollback version, and untested destructive/provider paths.
@@ -0,0 +1,113 @@
1
+ # Credentials and workspace administration
2
+
3
+ ## Contents
4
+
5
+ - Preconditions: authentication planes and API-key fields
6
+ - Inspect: metadata and authentication hard stop
7
+ - Preview and approval; execute
8
+ - Verify: protected REST test and scope limits
9
+ - Recovery and cleanup; evidence
10
+
11
+ ## Goal
12
+
13
+ Configure or diagnose credential profiles, workspace scope, users, API keys, or platform credentials without placing secrets in repository files, logs, evidence, or broad unintended scope.
14
+
15
+ ## Preconditions
16
+
17
+ - Identify installation/environment, credential type, intended workspace/account scope, least-privilege role, profile name, and requested administrative outcome.
18
+ - Determine whether the machine has an OS keyring or needs an approved headless backend.
19
+ - Never ask the user to paste a reusable secret into a tracked file or ordinary chat evidence.
20
+
21
+ ### Keep two authentication planes separate
22
+
23
+ The local CLI profile authenticates the operator's tool calls. A platform-held connection
24
+ GUID lets a process authenticate at runtime; it does not replace or invalidate a working
25
+ CLI login. A workspace GUID scopes calls, while a connection GUID identifies a credential
26
+ resource. Verify the resource type and name through restricted/list metadata before binding
27
+ it; a GUID-shaped value alone is not identity proof. Credential summaries use `gid`, not
28
+ `id`; verify template/envelope keys against the actual DTO. A null projection is not evidence
29
+ of absence. Do not repurpose an unrelated connection based only on its generic REST template.
30
+
31
+ Recover known setup and sanitized receipts before asking the operator to repeat onboarding.
32
+ Keep emails or user IDs local when they are not needed for the decision. Request only the
33
+ minimal non-secret connection metadata; inspect role permissions locally rather than ask
34
+ for a raw account/credential dump.
35
+
36
+ ### PROCESIO API-key field mapping
37
+
38
+ Keep these values separate; the product and CLI use different labels:
39
+
40
+ | Meaning | PROCESIO UI | CLI |
41
+ |---|---|---|
42
+ | Local alias for choosing the credential later | Not applicable | `--name`, for example `contoso-demo` (synthetic alias) |
43
+ | Public identifier sent in the `key` request header | **Key Handle** | Secure prompt `PROCESIO Key Handle`, or `--key` for non-interactive setup |
44
+ | One-time secret sent in the `value` request header | API key value | Secure prompt `PROCESIO API key value (shown once)`, or `--value` |
45
+ | Workspace scope | Workspace ID | `--workspace-id` |
46
+
47
+ The **Key Handle is not the local profile name, workspace name, or a user-chosen label**. Copy it exactly from the API-key creation result. Prefer the secure prompts; command-line `--key` and `--value` arguments can leak through shell history and process listings.
48
+
49
+ The secret is generated by PROCESIO when the API key is created and displayed once; do
50
+ not invent it or substitute a password, label, workspace GUID, or Key Handle. Losing it
51
+ requires separately approved replacement, not retrieval by printing credential-store internals.
52
+
53
+ ## Inspect
54
+
55
+ 1. List profiles and readiness metadata only; do not read or echo secret values.
56
+ 2. Read environment/workspace inventory with an existing least-privilege profile where possible.
57
+ 3. Distinguish user/password session reach from workspace-scoped API-key reach.
58
+ 4. For platform credentials, inspect template, non-secret fields, dependent resources, and current test status.
59
+
60
+ ### Authentication hard stop
61
+
62
+ - `mode: apikey` or `mode: userpass` reports the stored profile type only. It is not evidence that authentication worked.
63
+ - If `check-auth` returns `authenticated: false`, or its probe returns `401`/`403`, stop all remote PROCESIO calls. Do not try alternate endpoints; they cannot confirm the workspace while the same credential is rejected.
64
+ - The only allowed follow-up diagnostics are local and non-secret: `show-credential`, `list-credentials`, and `show-environment`.
65
+ - Do not inspect credential-store internals, dump environment variables, print commands containing secrets, or search source code for a way around the failed check.
66
+ - If the non-secret metadata is correct, ask the operator to recreate or re-enter the API key in this exact order: **Key Handle**, then **API key value**, for the intended workspace. Retry `check-auth` before any other API call.
67
+ - Until a server response succeeds, report the requested workspace as **configured but not confirmed**.
68
+
69
+ ## Preview and approval
70
+
71
+ - Show profile name/type/scope and storage backend—not secret content.
72
+ - For user/role/API-key/credential creation, update, default switch, removal, or rotation, state affected workspace and dependents.
73
+ - Removing or replacing a credential can break many processes; inventory references first.
74
+
75
+ ## Execute
76
+
77
+ - Use secure prompt/keyring-backed actions for secret capture.
78
+ - Store environment/profile binding separately from the secret.
79
+ - Make one narrow administrative change.
80
+ - Do not print the command with the secret substituted, and redact provider responses.
81
+
82
+ ## Verify
83
+
84
+ - Run the cheapest read-only auth/health check with the named profile and intended workspace.
85
+ - Continue only when the result explicitly says `authenticated: true`; a status code or profile mode must not be reinterpreted as success.
86
+ - Test a platform credential through its dedicated connection/test action when available.
87
+ - Verify granted scope by one permitted read. An expected-denial test requires an explicitly authorized target and action. Never probe a forbidden workspace or tenant merely to prove least privilege.
88
+ - Re-fetch non-secret profile/credential metadata and confirm dependents still resolve.
89
+
90
+ ### REST connection test scope
91
+
92
+ For a PROCESIO self-API connection, the REST credential's auth Key is the literal `value`,
93
+ its Value holds the secret, and placement is Header. Supply `key` (matching Key Handle)
94
+ and `workspaceid` separately in test headers. Test-only headers do not establish runtime
95
+ Call API headers; verify both configurations without exposing the secret.
96
+
97
+ Use an approved protected read endpoint, not a public health page, for an authentication
98
+ test. HTTP 200 proves access to that endpoint; it does not prove read-only authorization,
99
+ all endpoint permissions, or a process run. API keys inherit their owner's permissions;
100
+ a Read Only label does not impose scope. A test 401/403 is not proof the independent CLI
101
+ profile failed: stop testing that connection and inspect its configuration/scope locally,
102
+ without automatic key regeneration or privilege escalation. A failed CLI `check-auth`
103
+ still invokes the hard stop above. Test approval never authorizes scanner activation or runs.
104
+
105
+ ## Recovery and cleanup
106
+
107
+ For routine rotation of an unexposed credential, use an approved overlap/recovery plan until dependents pass. Never restore a disclosed or revoked credential to recover availability. After exposure, stop affected automation under the separately approved containment plan, preserve the incident, rotate/revoke the exposed value and prove denial of the old value and acceptance of the replacement through a bounded approved path. Redaction alone is not recovery. Revoke temporary keys after testing; do not remove the only administrative profile without a tested recovery path.
108
+
109
+ For a newly created disposable profile that has never authenticated, remove the local profile, create a fresh key while the intended workspace is selected, store the new **Key Handle** and API key value through the secure prompts, and repeat only `check-auth`.
110
+
111
+ ## Evidence
112
+
113
+ Return environment/workspace IDs, profile/credential name and type, storage backend category, readiness/auth test result, verified scope, dependents checked, and rotation/revocation status. Never include secret values.
@@ -0,0 +1,71 @@
1
+ # Data and side-effect verification
2
+
3
+ ## Goal
4
+
5
+ Change a PROCESIO data model or data-processing workflow and prove the resulting schema, query result, database state, or workbook content at the real storage boundary.
6
+
7
+ ## Preconditions
8
+
9
+ - Identify workspace, data-model/process ID, target database or file, credential profile, environment, expected rows/fields, transaction/idempotency behavior, and safe test key.
10
+ - For SQL Server tuning, load `sql-server-optimizer`; this playbook owns platform execution and end-to-end proof.
11
+ - Confirm database/query tools are configured without exposing credentials.
12
+
13
+ ## Inspect
14
+
15
+ 1. Fetch the data model and process mappings.
16
+ 2. Inspect target table/file schema, keys, constraints, indexes where relevant, and existing row for the test business key.
17
+ 3. Record before-state narrowly enough to prove the change without copying sensitive datasets.
18
+ 4. For workbooks, list sheets and expected ranges/formulas before transformation.
19
+
20
+ ## Preview and approval
21
+
22
+ - Preview data-model/process DTO changes and SQL/action parameter mappings.
23
+ - Show DDL/DML, overwrite, delete, bulk, or export effects and rollback strategy.
24
+ - A process run that writes data is a mutation even when the CLI action name is `run-process`.
25
+
26
+ ## Execute
27
+
28
+ - Save one schema/mapping change and re-fetch it.
29
+ - Run with a unique controlled business/idempotency key.
30
+ - For an unknown database outcome, query by that key before retrying.
31
+ - Keep deterministic extraction/parsing separate from model interpretation.
32
+
33
+ ## Verify
34
+
35
+ - Re-fetch the PROCESIO data model and validate the process.
36
+ - Query SQL Server/MySQL or inspect the downloaded workbook/file directly.
37
+ - Verify exact row count, key, values/types, null handling, duplicates, and transaction outcome.
38
+ - For update/delete, prove both intended changes and protected neighboring data.
39
+ - Inspect process instance outputs and errors so storage proof and orchestration proof agree.
40
+
41
+ ### Native datastore and loop-carried values
42
+
43
+ Compare independently fetched persisted fields against the **original request**, not only
44
+ the same intermediate used by the writer. A native Where/count using that intermediate
45
+ can certify its own corruption. Require one row per exact business key, correct types and
46
+ values, no duplicates, and unchanged protected columns. Prefer native column-scoped proof;
47
+ do not feed whole ledger rows into Node when they contain human notes or other protected data.
48
+ An in-process proof does not replace independent key-based storage checks.
49
+
50
+ Keep explicit null, missing keys, false, zero, empty strings and strings such as `"null"`
51
+ distinct. Test **concrete → null** and **null → concrete** within the same iteration scope,
52
+ plus INSERT and UPDATE. A destination already null does not prove UPDATE clearing;
53
+ choose a concrete before-state for every field whose clearing is claimed. Use distinct
54
+ keys where batch guards forbid duplicates; count every child, run and row write.
55
+
56
+ Bounded field observation (2026-09-08): a reused scalar retained the previous record's
57
+ integer when the next JSON item was null, while the shared-variable verifier reported
58
+ success. A non-null typed object, explicit nullable attribute mappings and a strict
59
+ original-item/projection assertion passed a later controlled native batch. This is not a
60
+ universal Node-null rule or proof that the old scalar assignment was repaired. Treat the
61
+ bypass as conditional on the target model/action behavior; preserve runtime/designer
62
+ attribute paths and require fresh native proof. Do not fabricate false/zero for unknowns.
63
+ That batch did not establish nullable replay, concurrency safety or scale performance.
64
+
65
+ ## Recovery and cleanup
66
+
67
+ Use an explicit test key and reversible transaction/fixture where possible. Remove only rows/files created by the test after evidence capture. For schema changes, use the reviewed rollback/migration path rather than ad-hoc destructive reversal.
68
+
69
+ ## Evidence
70
+
71
+ Return model/process/instance IDs, sanitized before/after query or workbook facts, affected row/file counts, business key, duplicate/idempotency result, and any production-scale/concurrency check not performed.
@@ -0,0 +1,44 @@
1
+ # Documents and files
2
+
3
+ ## Goal
4
+
5
+ Create or change a document/file workflow and prove the generated artifact's bytes and meaningful content, not only the template or successful process status.
6
+
7
+ ## Preconditions
8
+
9
+ - Identify workspace, document/process IDs, template variables, sample data, expected format/name, size limits, retention/privacy policy, and output destination.
10
+ - Use sanitized fixtures for documents containing personal, financial, or regulated data.
11
+
12
+ ## Inspect
13
+
14
+ 1. Fetch the document template, variable schema, producing process, file mappings, and any conversion/storage actions.
15
+ 2. Check fonts/assets, dynamic tables/images, encoding/diacritics, file names, MIME types, and downstream consumers.
16
+ 3. Record a known-good sample artifact when parity matters.
17
+
18
+ ## Preview and approval
19
+
20
+ - Preview the document DTO/template and process mappings before save.
21
+ - Show any overwrite, external upload, email/send, or retention side effect separately.
22
+ - Generating a local/test artifact may be safe; sending or publishing it is a distinct mutation.
23
+
24
+ ## Execute
25
+
26
+ 1. Save/re-fetch the template or process change.
27
+ 2. Run the producing process once with representative sample data.
28
+ 3. Read the instance output and download the exact file by returned ID/path.
29
+ 4. Keep artifact generation separate from distribution so each boundary can be verified.
30
+
31
+ ## Verify
32
+
33
+ - File exists, is non-empty, has expected name/MIME/size, and opens with the intended parser/viewer.
34
+ - Inspect meaningful content: expected text/fields, page/sheet count, tables/images, encoding, and absence of unresolved template tokens.
35
+ - Compare digest or selected semantic fields with a baseline when parity is required.
36
+ - Verify downstream storage or attachment only if authorized, and check the destination directly.
37
+
38
+ ## Recovery and cleanup
39
+
40
+ Do not delete a failed artifact before capturing diagnostics. Remove sanitized test outputs from shared storage after acceptance according to policy. If distribution occurred incorrectly, stop further sends, preserve IDs, and follow the destination's recall/delete process with explicit approval.
41
+
42
+ ## Evidence
43
+
44
+ Return document/process/instance/file IDs, artifact path or destination, digest and key metadata, semantic checks performed, unresolved differences, and whether distribution was intentionally skipped.
@@ -0,0 +1,57 @@
1
+ # Form end-to-end verification
2
+
3
+ ## Goal
4
+
5
+ Create or change a PROCESIO form and prove the user-visible behavior, process triggers, and runtime diagnostics—not merely the form DTO.
6
+
7
+ ## Preconditions
8
+
9
+ - Identify workspace, form ID or create intent, public/private access, target URL, user roles, bound variables, triggered processes, and expected behavior per control/event.
10
+ - Ensure the `web` optional dependency/browser is installed and a dedicated saved session exists when authentication is required.
11
+ - Use isolated test data and avoid another person's active browser profile.
12
+
13
+ ## Inspect
14
+
15
+ 1. Fetch the form definition, custom URL, publication/access state, bound processes, and referenced data models.
16
+ 2. Inventory tabs, controls, required fields, defaults, dynamic data, upload limits, and events (`onLoad`, submit, click, input, focus/blur, row/pagination events where present).
17
+ 3. Read expected process input mappings and resulting user-visible states.
18
+ 4. For a synchronous `RUN_PROCESS` event with output mappings, inspect the source-owned form-event result contract maintained beside the form DTO builder when the repository source tree is available. Then inspect the exact process-variable IDs, form field paths, process custom-response mapping, one real process variable-instance shape, and runtime writer contract. A custom response useful to an API caller is not automatically compatible with the form's native output-map writer.
19
+ 5. When form JavaScript installs persistent UI behavior, confirm its listeners/timers execute in the parent document realm rather than only in the transient trigger sandbox.
20
+
21
+ ## Preview and approval
22
+
23
+ - Build/edit through the structured form DTO and inspect its dry-run output where available.
24
+ - Show access changes, event-triggered writes, notifications, and public exposure before saving or publishing.
25
+ - A screenshot mockup is not approval to create or publish a live form.
26
+ - State the number of expected external submissions and the complete process-instance tree each submission may create.
27
+
28
+ ## Execute
29
+
30
+ - Save the form once, re-fetch it, then open the intended URL with the `web` tool.
31
+ - Exercise every changed control and event using stable labels/selectors rather than coordinates.
32
+ - Test normal, required/empty, invalid, boundary, and role/access paths relevant to the change.
33
+ - For native synchronous result rendering, preserve existing direct process outputs and caller semantics. When the runtime writer consumes a variable-instance collection, use a compatible response envelope rather than replacing the established structured response.
34
+ - Never persist an access token or credential as a form default, in plaintext JavaScript, or in screenshots/logs.
35
+
36
+ ## Verify
37
+
38
+ Pass only when all relevant layers agree:
39
+
40
+ 1. Saved DTO matches intended controls, mappings, events, and access.
41
+ 2. Browser interaction reaches the expected visible state with no page error, console error, failed request, or unexpected 4xx/5xx from the form's own calls.
42
+ 3. Triggered processes create the expected parent/child instances and outputs/side effects.
43
+ 4. A synchronous output-map claim is proven by one real native form action: submit/click once, inspect the actual response, and observe the fields update automatically. Do not call the SPA's writer manually, patch the DOM, replay the request, or substitute a previously completed instance.
44
+ 5. Output-map rows still reference the intended process variable IDs after any process edit, and direct CLI/subprocess callers still receive their established response contract.
45
+ 6. Reload/back/navigation and repeated submission behavior are understood; duplicate submission is prevented or handled.
46
+ 7. Private/public access behaves as designed in an appropriate session.
47
+ 8. Screenshots mask secret fields and evidence confirms no secret default or embedded clear token exists.
48
+
49
+ ## Recovery and cleanup
50
+
51
+ Close only the browser/session started for verification. Preserve needed evidence before authorized removal of test submissions or fixtures. If exposure is broader than intended, reconcile the target and promptly perform the exact approved access reversal, then verify its state; otherwise request separate approval and report the risk. Follow `references/process-lifecycle.md`: approved containment must not wait for successful output decoding and does not establish business acceptance.
52
+
53
+ When the form writes the right backend state but fails to render the native response, keep the field gate failed: preserve the successful instance/row, inspect the real response and writer contract, repair the smallest compatible process/form layer, and submit only once under a separately approved remediation key.
54
+
55
+ ## Evidence
56
+
57
+ Return form ID and URL, controls/events covered, screenshots or DOM text where useful, browser diagnostics summary, exact submit count, parent/child process instance IDs, actual response shape, native output-map result, side-effect proof, secret-exposure checks, and untested device/access paths.
@@ -0,0 +1,138 @@
1
+ # PROCESIO operation contract
2
+
3
+ ## Contents
4
+
5
+ - Executor selection and inventory evidence
6
+ - Safety boundary and field acceptance
7
+ - Retry classification and coordinator resumption
8
+ - Proof standard and comparison boundaries
9
+
10
+ ## Executor selection
11
+
12
+ | Work shape | Executor |
13
+ |---|---|
14
+ | Multi-step process build, verification, or audit | `procesio` agent |
15
+ | Connector generation through live PROCESIO testing | `connector-builder` agent |
16
+ | One known platform operation | Registered tool action |
17
+ | User-visible form behavior | `web` tool after platform creation/edit |
18
+ | Database side effect | `sqlserver` or `mysql` after the process run |
19
+ | Workbook content | `xlsx` after file creation/download |
20
+ | Capability unknown | Bounded capability search, then inspect one schema |
21
+
22
+ ## Inventory evidence
23
+
24
+ Inspect the actual response envelope and resource-specific ID field before projecting it;
25
+ missing projected fields are not evidence that resources are absent. Keep output allowlisted
26
+ and metadata-only. Permission denied is not not-found. Reconcile returned page metadata,
27
+ unique stable IDs and reported totals; a requested next page returning the same page/IDs is
28
+ not traversal proof. State observed coverage and use a registered paged read where available,
29
+ never assume an unpaged or truncated listing is exhaustive.
30
+
31
+ ## Safety boundary
32
+
33
+ Before a read, export or diagnostic fetch, classify whether its response can contain
34
+ sensitive values and where those values first persist or appear in output. Read-only is
35
+ not confidentiality-safe by definition. For such data, apply the pre-acquisition gate in
36
+ `references/process-lifecycle.md` before fetching it, regardless of the selected playbook.
37
+
38
+ A read result may authorize another read; it never authorizes a write. Before a mutation, establish:
39
+
40
+ - exact environment and workspace;
41
+ - stable target ID;
42
+ - expected before and after state;
43
+ - whether the operation is reversible;
44
+ - preview or validation result when available;
45
+ - explicit operator approval of the exact action and side-effect budget, for CLI and MCP alike.
46
+
47
+ Run, test, submit, enable, and trigger operations may cause writes or external effects even when labeled verification. Approval for configuration changes does not automatically include these operations or cleanup. Preview the full causal scope and obtain separate approval for any additional action; when withheld, preserve a configuration-only verdict.
48
+
49
+ Never place credentials in command arguments unless the repository action explicitly performs secure credential capture and no safer prompt/store path exists. Never echo a secret into evidence.
50
+
51
+ ## Field acceptance and remediation
52
+
53
+ For a staged or multi-resource field project, freeze before the first mutation:
54
+
55
+ - ordered required check IDs and their direct proof boundary;
56
+ - explicitly permitted degraded modes and equivalent fallbacks;
57
+ - resource, write, submission, trigger, and execution budgets;
58
+ - cleanup and rollback obligations;
59
+ - unknown-outcome policy;
60
+ - the deterministic controller that validates reports and computes promotion.
61
+
62
+ The execution agent may collect evidence, but its own `passed` or `passed_with_gap` label is not authority. A required outcome that fails remains blocked unless the frozen contract already permitted a fallback that proves the same user-visible result. Preserve the original report and use a separately approved, versioned, narrower remediation; do not relabel history after discovering a platform limitation.
63
+
64
+ Scope each phase verdict to that phase's own obligations. A previously approved gap remains in project or aggregate lineage; it does not make every downstream audit phase `passed_with_gap`. Preserve both scopes explicitly: the current phase may be `passed` while the overall project remains `passed_with_gap`. A new local failure may not be disguised as inherited.
65
+
66
+ Count the complete causal tree. A form submit, webhook launch, schedule occurrence, or parent-process run may create child and nested process instances. Report top-level deliveries, parent/child instance IDs, data writes, and generated artifacts separately so cost and side-effect budgets are real.
67
+
68
+ ## Retry classification
69
+
70
+ | Result | Retry rule |
71
+ |---|---|
72
+ | Explicit validation failure before send | Correct input; safe to retry |
73
+ | Read-only request failed before response | Retry with bounded backoff if transient |
74
+ | Write returned a stable error proving no commit | Correct cause; retry once appropriate |
75
+ | Write timed out, connection reset, or response was lost | Unknown outcome: re-read first; never blind retry |
76
+ | Write succeeded but verification failed | Investigate state; do not repeat mutation as a repair guess |
77
+
78
+ A remediation is not permission to replay a successful claim. Re-run only the missing acceptance path, with a stable business key chosen before execution, after current-state and concurrency checks.
79
+
80
+ ### Coordinator resumption and operator interaction
81
+
82
+ Approval recording, checkpoint eligibility and actual execution are separate states.
83
+ Before giving a resume command, inspect the saved report, approved bytes and committed
84
+ receipts. If a blocked checkpoint prevents entry, adding an approval flag is not a resume
85
+ mechanism. Use the owner's supported history-preserving path; if none exists, route the
86
+ state-machine defect to the runtime maintainer. Do not silently delete reports or reuse
87
+ an old approval after changing payloads, before-state or phase scope.
88
+
89
+ Recover already supplied metadata and successful evidence instead of restarting discovery.
90
+ Offer one bounded next step, explain precisely what it authorizes, and keep bookkeeping
91
+ inside a reviewed helper where possible. A transport interruption requires checking whether
92
+ work started or committed, not automatically relaunching it. Keep selected-phase success
93
+ separate from aggregate project acceptance; a banner, exit zero or artifact existence is
94
+ not proof that pending phases completed. Do not promise a one-command finish across unknown
95
+ platform boundaries or turn operator frustration into blanket execution permission.
96
+
97
+ Before another diagnostic step, name the unresolved claim, the smallest observation that
98
+ could change the decision, the responsible owner and a stop condition. When available
99
+ reads cannot close the proof gap, stop the chain and hand off that gap. Offer an authorized,
100
+ clearly scoped artifact from existing evidence when useful, with demonstrated outcomes,
101
+ unknowns and the next decision visible. A synthetic/component walkthrough is not retroactive
102
+ acceptance of a blocked integration; packaging evidence creates neither new runtime proof
103
+ nor permission to publish. Honor the operator's chosen execution interface without making
104
+ them repeat already captured evidence or bookkeeping.
105
+
106
+ ## Proof standard
107
+
108
+ Select evidence at the same boundary the user cares about:
109
+
110
+ - API/DTO state for configuration outcomes;
111
+ - runtime instance for process outcomes;
112
+ - native browser interaction plus diagnostics for form outcomes;
113
+ - database query for persisted data outcomes;
114
+ - downloaded file inspection for document outcomes;
115
+ - installed package plus action invocation for connector outcomes.
116
+
117
+ Do not substitute a manual DOM patch, direct internal writer call, old instance, or API-only simulation for proof that a form's native event path rendered the result. Do not substitute an attached webhook DTO for proof that its real payload mapping launched and completed the intended instance.
118
+
119
+ Keep the evidence small: IDs, status, relevant fields, output digest/path, and diagnostics. Avoid dumping secrets or entire payloads when a few fields prove the result.
120
+
121
+ ### Comparison boundaries
122
+
123
+ Classify identity, authored semantics and representation separately. Bind environment,
124
+ workspace/resource/instance IDs and required parent relationships before using labels or
125
+ normalization. Compare only projections whose equivalence is established by a versioned
126
+ source contract; a saved definition and a runtime projection need not expose the same fields.
127
+
128
+ For a documented non-semantic difference, use a copied comparison view, retain the untouched
129
+ original evidence, and disclose exact field paths and the normalization rule. Do not silently
130
+ strip unknown fields, error bindings, control flags or authored values to get a pass. Preserve
131
+ missing/null and Boolean/integer distinctions unless the source contract explicitly defines
132
+ their equivalence for this check. Happy-path output does not prove error-path semantics.
133
+
134
+ Prefer predeclared comparison rules. A mismatch discovered after execution needs bounded
135
+ read-only diagnosis and, if warranted, a reviewed versioned verifier/contract correction at
136
+ its owning layer with negative controls for meaningful changes. Preserve the original failed
137
+ report; any revised interpretation is a new attributable result, not silent acceptance or
138
+ permission to replay the action. If semantics remain unproved, retain the affected gap.