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,62 @@
1
+ # Working across PROCESIO environments
2
+
3
+ PROCESIO runs as separate installations — production, QA, dev, and each client's own
4
+ PROD/QA/STAGING. This tool calls each one an **environment**, named `<Client>-<ENV>`
5
+ (e.g. `Internal-PROD`, `Internal-QA`, `Internal-DEV`, `Delgaz-PROD`, `Delgaz-DEVQA`).
6
+ Each environment has its own host URLs and its own credentials — there is no data path
7
+ between them.
8
+
9
+ ## When the user says "work on PROCESIO Internal-QA" (or DEV, or a client env)
10
+
11
+ That is a **switch the default environment** request. Do:
12
+
13
+ ```
14
+ run-tool procesio set-environment --name Internal-QA
15
+ ```
16
+
17
+ From then on every process/form/instance action runs against that environment and uses
18
+ the credential bound to it — until the user switches again. Confirm what happened by
19
+ reading the result's `default_environment`, `web_base`, and `credentials`. If
20
+ `credentials` is empty, tell the user no account is bound there yet and how to add one
21
+ (below) — do not silently fall back to another environment.
22
+
23
+ For a **one-off** call against a different environment without moving the default, pass
24
+ `--environment <name>` on that single action.
25
+
26
+ ## The built-in environments (zero setup)
27
+
28
+ `Internal-PROD`, `Internal-QA`, `Internal-DEV` always exist for everyone. Production is
29
+ the default until someone switches. Client environments are added at runtime.
30
+
31
+ ## Adding a client environment
32
+
33
+ ```
34
+ run-tool procesio add-environment --name Delgaz-PROD \
35
+ --web-base https://webapi.<host> --app-base https://<host> --forms-base https://forms.<host>
36
+ ```
37
+
38
+ `client`/`env` are derived from the `<Client>-<ENV>` name. Then bind that client's
39
+ account to it:
40
+
41
+ ```
42
+ run-tool procesio add-credential --name delgaz-me --type userpass \
43
+ --username <…> --environment Delgaz-PROD
44
+ ```
45
+
46
+ (Entering the secret itself is the user's action — never take a password on the command
47
+ line for them; the tool prompts without echoing, or the user stores it via the
48
+ dashboard / `set-credential`.)
49
+
50
+ ## What you can rely on
51
+
52
+ - **Nothing to migrate.** An existing credential with no environment binding is treated
53
+ as `Internal-PROD` (production URLs, unchanged). Colleagues keep working with no
54
+ action from them.
55
+ - **Credentials are tied to environments.** Switching environment switches the account
56
+ too, as long as exactly one credential is bound there; otherwise pass `--profile`.
57
+ - **Read before you switch for someone else.** `list-environments` shows every
58
+ environment, the current default, and which credentials are bound where — use it to
59
+ answer "what environments do I have / which am I on".
60
+
61
+ Mechanics, the registry-file location, and resolution precedence are documented tool-side
62
+ in `tools/procesio/PROCESIO-ENVIRONMENTS-NOTES.md`.
@@ -0,0 +1,47 @@
1
+ # PROCESIO Scheduling — run a process unattended
2
+
3
+ A **schedule** runs a process on a recurrence without a caller. Manage them with the
4
+ tool's curated actions (`procesio list-schedules` / `get-schedule` / `create-schedule` /
5
+ `update-schedule` / `delete-schedule` / `set-schedule-status` / the notifications pair /
6
+ `list-project-schedules`) over `/api/Schedules*` — not the untyped `request`.
7
+
8
+ ## Recurrence types
9
+
10
+ `RecurrenceTypes`: `NONE=0, ONCE=1, MINUTES=2, HOURS=3, DAILY=4, WEEKLY=5, MONTHLY=6,
11
+ YEARLY=7, CRON=8`. The recurrence lives in the schedule body's nested `recurrence` block
12
+ (`recurrence` = the type enum, plus the type-specific fields).
13
+
14
+ ## Crontab schedules (the new capability)
15
+
16
+ Type **`CRON = 8`** lets you express the recurrence as a standard **5-field crontab**
17
+ (`minute hour day month weekday`, `L`/`W`/`#` tokens supported) with an IANA
18
+ **time zone**.
19
+
20
+ - **Preview before you commit:** `procesio validate-crontab --cron "0 6 * * *" --timezone
21
+ Europe/Bucharest [--count N]` calls `POST /api/Schedules/validate-crontab` and returns
22
+ a human description + the next occurrences (in UTC). Always preview a cron string this
23
+ way before creating the schedule — it catches an inverted field order or a timezone
24
+ mistake without creating a live schedule.
25
+ - **Set it:** `create-schedule` / `update-schedule` accept `--cron` + `--timezone`, which
26
+ set the recurrence to CRON (type 8) over the JSON `--payload` (name, target process,
27
+ process inputs, notifications). The raw `--payload` remains the authoritative path.
28
+
29
+ ## Gotchas (carried from live runs)
30
+
31
+ - **The write body must mirror the read DTO closely.** A hand-simplified recurrence block
32
+ returns HTTP 400 "missing or incorrect resource parameters". When unsure of a
33
+ non-cron recurrence, `get-schedule` an existing one and adapt its exact shape rather
34
+ than build from scratch.
35
+ - **`status:false` is ignored on create** — a schedule is created active. To land a
36
+ disabled schedule, create then `set-schedule-status --active false` (two steps).
37
+ - **`notification.emailList` is a single comma/semicolon-separated string**, not a list.
38
+ - The exact camelCase field names of the cron recurrence block are confirmed against the
39
+ launched platform — verify a created cron schedule with `get-schedule` before relying
40
+ on it in production.
41
+
42
+ ## Verify
43
+
44
+ `validate-crontab` to confirm the occurrences, then `create-schedule`, then
45
+ `get-schedule` to confirm the stored recurrence, then (optionally) let it fire once or
46
+ trigger the target process directly to confirm it runs. Clean up test schedules
47
+ (`delete-schedule`) — a stray active schedule keeps launching instances.
@@ -0,0 +1,175 @@
1
+ # PROCESIO visual organization & build patterns (agent guidance)
2
+
3
+ How to lay out a process so a human can read it, and the build patterns that recur in
4
+ production. Agent-scoped: these are standards a build should meet, not tool mechanics.
5
+ The DTO shapes behind every claim are in `tools/procesio/PROCESIO-RESOURCE-MODEL-NOTES.md`;
6
+ the deterministic re-layout tool is specced in `todo/procesio-canvas-layout-tool.md`.
7
+ Additive to [PROCESIO-BEST-PRACTICES.md](PROCESIO-BEST-PRACTICES.md) (§2 modularize,
8
+ §10 speed) — it does not replace anything there.
9
+
10
+ ---
11
+
12
+ ## 1. Why layout matters
13
+
14
+ A process is read far more often than it is built — by the next builder, by QA, by the
15
+ person debugging a 2am failure. A tangled canvas hides the logic; a tidy one shows it.
16
+ Layout is not cosmetic, it is part of "document & handover" (best-practices §7). The
17
+ target: someone with no prior context can follow the flow left-to-right and see where it
18
+ branches, loops, and stops.
19
+
20
+ ## 2. Layout rules (what "tidy" means on a PROCESIO canvas)
21
+
22
+ The canvas model: a node's shape is set by its action (inherited, never changed when you
23
+ place it); edges are `Ports` (`Type 0` normal, `Type 1` error); a `Decisional` fans out
24
+ any number of branches that need not re-merge; the only container is the `For Each` loop
25
+ frame, whose children sit *inside* it via `ParentId`. Given that, the rules:
26
+
27
+ 1. **Flow left-to-right.** `Start` on the left, `Stop`(s) on the right. Depth from Start
28
+ sets the column. Time reads as horizontal distance.
29
+ 2. **One column per dependency level.** All actions at the same distance from Start share
30
+ a vertical axis. Never stack unrelated actions in the same column.
31
+ 3. **Center children on their parent.** A node with several successors sits at the
32
+ vertical center of that group (tidy-tree rule). Branches of a Decisional spread
33
+ symmetrically around the diamond.
34
+ 4. **No overlaps, consistent gaps.** Equal horizontal gap between columns; minimum
35
+ vertical gap between siblings. When a deeper level grows, push siblings apart — never
36
+ let boxes collide.
37
+ 5. **Lay out the For Each frame recursively.** Place a `For Each`'s children first, size
38
+ the frame to fit them, then place the frame as one node at its level.
39
+ 6. **Error ports go down-and-out.** `Type 1` (error) edges route to a handler placed
40
+ below the main lane, so the happy path stays a clean horizontal line.
41
+ 7. **Re-converge only where paths should reunite.** A Decisional's branches may end at
42
+ their own `Stop` or merge at a `Join` — don't force a Join where branches are genuinely
43
+ independent. Where they do reunite, make the `Join` visible so the reader sees it.
44
+ 8. **Deterministic order.** Same graph → same layout. Order siblings by descendant-count
45
+ then id, so re-running layout doesn't reshuffle the diagram.
46
+
47
+ This is the Reingold-Tilford "tidy tree with contours" idea applied to a DAG: layer by
48
+ depth, pack each column without overlap using subtree contours, center on the parent.
49
+ The same algorithm, run on the **process→process** graph (`Call Subprocess` /
50
+ `Trigger Subprocess` targets) instead of the in-flow graph, produces the **Resource Map**
51
+ (left = who calls this process, right = what it calls). The layout tool will do both.
52
+
53
+ ## 3. The For Each container
54
+
55
+ The only container the Process Designer supports today is the `For Each` loop frame (an
56
+ `area`). Keep its body small and self-contained — everything inside runs once per item,
57
+ so cost multiplies (best-practices §10). **A `For Each` cannot contain another `For
58
+ Each`.** To nest a loop, put a `Call Subprocess` (or `Trigger Subprocess`) inside the
59
+ `For Each` and place the inner loop in that subprocess — that also keeps each loop body
60
+ flat and independently testable. (Free-form grouping areas are not yet supported by the
61
+ designer; don't rely on them.)
62
+
63
+ ## 4. Build patterns to reach for
64
+
65
+ The actions that carry most real systems, and the shapes they form:
66
+
67
+ - **Modular by subprocess.** Real systems are a thin main process orchestrating small
68
+ reusable subprocesses (auth, paging, upsert, notify), exactly as best-practices §2/§3
69
+ prescribe. Synchronous `Call Subprocess` when you need the result; async
70
+ `Trigger Subprocess` to fire-and-forget.
71
+ - **Branch then (maybe) join.** `Decisional` + `Join` is the standard control shape:
72
+ decide, run the branch-specific work, optionally re-merge. Keep decisionals single where
73
+ you can — five chained decisionals (~2s) collapse to one (<200ms) (best-practices §10).
74
+ - **Model JSON, don't chain extractors.** `Extract Objects/List/Object/Text` exist, but
75
+ the fast path is a typed Data Model read directly (best-practices §10). Reserve the
76
+ extract family for genuinely dynamic shapes.
77
+ - **Script to do more per node.** A `Node` script often replaces a chain of primitives
78
+ (and `Node` returns raw, typed output; `Javascript` wraps `{result}` — see API notes).
79
+ Fewer nodes = faster + more readable.
80
+ - **Throw on purpose.** `Throw` raises a controlled error into the error port — use it to
81
+ fail loudly on a business-rule violation instead of letting bad data flow on.
82
+ - **Centralize SQL through credentials.** `Execute Query`/`Execute Command` bind a
83
+ credential by gid (never inline secrets). Apply the `sql-server-optimizer` skill.
84
+
85
+ ## 5. Forms: design for the user, route approvals cleanly
86
+
87
+ (DTO detail in the resource-model note; here the standards.)
88
+
89
+ - **Calls to processes are the expensive part of a form.** A control's `RUN_PROCESS`
90
+ event should call a process of 1-3 actions, optimized for speed (best-practices §9).
91
+ Prefer `syncRun:false` + a scoped loader for anything that might exceed 1s; fill the
92
+ result back via `outputMap`. Drive option lists from a static `sourceType:JSON` where
93
+ the data is fixed — don't call a process to fetch constants.
94
+ - **Approval = assign + show + capture + branch.** Put an `approval` control with a named
95
+ `approver` (and `approverReplacement` fallbacks) on a task form (`Assignees` set). Show
96
+ approver-only fields with `visibility:{type:"task-assignees"}`. The control captures
97
+ `approved` + `comment` + `responseUser` + `responseDate`; branch the downstream process
98
+ on `approved`. For sequential sign-offs use multi-step `approvalSteps`. Keep the
99
+ approver's screen minimal — they decide, they don't re-enter data.
100
+ - **Compose apps with `chainConfig`.** Several forms tied into one columnar dashboard is
101
+ the "App" pattern — use it for an operator landing page that links to sub-forms, rather
102
+ than one giant form.
103
+ - **Style via theme variables, not hacks.** Set the `--c-*` theme variables; reserve
104
+ `Data.code` (encrypted) for genuine custom CSS/JS, and run form JS against
105
+ `window.parent.document` inside the sandbox iframe.
106
+ - **Dark theme + per-mode palettes.** A form now carries a light AND a dark palette
107
+ (the 16-var `DARK_PALETTE`), swapped at runtime by `themeMode`. Opt in via the form
108
+ config (`themeMode` / `themeDark` overrides); don't fake dark mode with custom CSS.
109
+ - **Element alignment.** Container elements (section, list-item, column, step, tab,
110
+ side-panel) accept three flex vars in their per-control style — `--fd-<scope>`
111
+ (direction), `--jc-<scope>` (main axis), `--ai-<scope>` (cross axis). Use them to lay
112
+ out contents instead of custom CSS.
113
+ - **Trigger a Data Store operation like a process.** Besides `RUN_PROCESS`, a control can
114
+ raise `RUN_DATA_STORE_OPERATION` (READ/ADD/UPDATE/DELETE) straight against a data store,
115
+ with input/output maps and (for every op except ADD) filters. Reach for it when the
116
+ form just needs to read or write a tenant table without authoring a process. See the
117
+ `datastore` topic.
118
+
119
+ ## 6. Shapes in the Process Designer (decorative, execution-irrelevant)
120
+
121
+ Cuore's **Shapes** (rectangle / ellipse / diamond, PRC-4391) are annotation objects on
122
+ the canvas — they group and label a region and never affect execution. They persist
123
+ under the flow's opaque `canvasData.shapes` blob (not a top-level field) and sit in a
124
+ z-order band **below** the connectors. Two rules for the agent: **never reason about a
125
+ shape as a node** (it has no ports, no config, no run behavior), and **never let an edit
126
+ or a re-layout drop `canvasData`** — the tool's `process-edit` carries the live canvas
127
+ through, and the layout engine leaves `canvasData` byte-identical; preserve that when
128
+ touching a flow by hand.
129
+
130
+ ## 6. When you build or re-organize a process
131
+
132
+ - After building programmatically, the node positions the builder emits are functional
133
+ but not tidy. Run the layout tool to make the diagram readable before handover —
134
+ deterministic, so it won't fight a future edit:
135
+ `python scripts/run-tool.py procesio layout-flow --in <export.procesio> --out <tidy.procesio>`
136
+ (changes only positions; re-imports cleanly). `inspect-flow` gives a structural summary
137
+ (counts, families, branches, smells); `read-flow-graph` gives the raw node/edge model.
138
+ - Until then, if you place nodes by hand, follow §2: left-to-right by level, center
139
+ children, error ports below, and a `Join` only where branches truly reunite.
140
+ - Verify the diagram communicates: open it and check a stranger could narrate the flow.
141
+ That check is part of "done" (playbook §C/§E spirit — verified behavior + handover).
142
+
143
+
144
+ ## Layout engine upgrade 2026-07-05 (brief: "fix the tool so it layouts right")
145
+
146
+ Four engine changes in `tools/procesio/layout/engine.py` (all covered by the existing test suite):
147
+ 1. **Error-region detection stops AT error targets**: main-flow reach may point INTO an error-port
148
+ target (e.g. a script-gate's normal case edge into the shared error Join) but never THROUGH it.
149
+ Before, one normal edge into the sink pulled the whole notify subtree into the main graph.
150
+ 2. **ALAP layer pull with branch-head anchoring**: single-successor chains get pulled RIGHT adjacent
151
+ to their join (kills 8-layer join edges), but a branch HEAD (predecessor fans out) keeps its ASAP
152
+ layer so it stays next to its decisional.
153
+ 3. **Error components anchor independently, laid VERTICALLY**: each weakly-connected component of the
154
+ error region becomes a vertical rail below the canvas, anchored at the median x of ITS OWN feeders.
155
+ Vertical rails cannot cross the horizontal main flow.
156
+ 4. **MINIMIZE_CROSSINGS defaults ON** (strictly better in every measurement).
157
+
158
+ FLOW-side pattern that finishes the job: with feeders spread across a wide canvas, a SINGLE shared
159
+ error Join forces ~feeder-span-length edges (geometry, not layout). Split into ONE ERROR RAIL PER
160
+ CANVAS REGION (Networky v2: rails A/left/right - Join+Compose+notice+Stop each, cloned). Result on
161
+ the 78-node v2: crossings 10 -> 0 (proper-intersection; report's endpoint-touch counter: 2),
162
+ max edge 3729 -> ~1500, all four Networky flows re-laid clean.
163
+ LEGACY engine remains the default (ELK is opt-in backup via LAYOUT_ENGINE=elk).
164
+
165
+
166
+ ### Layout round 2 (same day, after the designer re-review)
167
+ 5. **At most ONE folded dead-end chain per branch node** (`_deadend_chains` cap): several chains
168
+ folding onto the same column stacked into overlapping piles (the AI Router 5-way fan). The
169
+ shortest chain folds; the rest lay out normally. Result incl. label-aware collision check:
170
+ v2 = 0 crossings, 0 label collisions; ALL FOUR flows 0/0 by layout-report.
171
+ 6. **Designer code sync for authored Nodes**: when creating a Node via API, the customData Code
172
+ setting must hold the GUID-reference form (variableId[.attributeId]), NOT the runtime `<%N%>`
173
+ form — the designer renders `<%N%>` literally and the variable picker breaks. Convert with
174
+ the param's variable map (flowpatch `_config_value_from_param` pattern). Synced on 9 authored
175
+ Nodes across v2/HCT/SendExport/PEC.
@@ -0,0 +1,97 @@
1
+ # PROCESIO agent - knowledge base (staged)
2
+
3
+ **Status:** runtime built (v0.1.0). Registered agent, JSON in / JSON out, driven
4
+ by `python scripts/run-agent.py procesio <action>`. This folder is both the agent's
5
+ knowledge base (the docs below) and its code. It is the home for everything the
6
+ PROCESIO agent needs to create use cases, edit resources, improve implementations,
7
+ and handle formatting/styling in PROCESIO using the registered tools.
8
+
9
+ ## Actions
10
+
11
+ | Action | What it does |
12
+ |---|---|
13
+ | `status` | Agent + driven-tool readiness. |
14
+ | `guidance` | Serve the playbook / best-practices / boundary docs from one place. `--topic`. |
15
+ | `checklist` | Emit the rigorous self-test checklist as structured steps. `--phase`, `--automatable-only`. |
16
+ | `verify` | The enforcement gate against a live process: validate, designer-vs-runtime parity audit, and (with `--run`) run + read the real instance status. Lists the manual checks it cannot run. `--process-id`, `--profile`, `--workspace-id`. |
17
+ | `audit` | Static best-practice + correctness audit of a process (action count, slow actions, error handling, inline secrets, parity). `--process-id`, `--profile`, `--workspace-id`. |
18
+
19
+ `verify` and `audit` are the executable side of the playbook: they turn the
20
+ prose discipline into a gate. `verify` exits with a `verdict` of pass/warn/fail
21
+ and always returns `manual_checks` (forms in a real browser, webhooks, E2E) so the
22
+ human/LLM steps cannot be silently skipped.
23
+
24
+ **Pass `--workspace-id` for any process outside the profile's default workspace.**
25
+ A session is scoped to one workspace, so without the flag the platform answers
26
+ `User is not authorized for the requested resource` even though the credential is
27
+ valid and the process id is right - it reads like a permission problem, not a
28
+ scoping one. Both actions forward the credential scope (profile + workspace) to
29
+ every inner tool call via `verifylib.scope_args`; any new inner call must splat
30
+ the same list, or it will fail on the second hop while the first one succeeded.
31
+
32
+ ## The boundary - agent notes vs tool notes (read first)
33
+
34
+ Two kinds of knowledge, two homes. Keep them apart on purpose.
35
+
36
+ - **AGENT notes (here, `agents/procesio/`)** - how to BUILD WELL and how to BEHAVE:
37
+ methodology, the build-and-test loop, best practices, which skills to use, the
38
+ quality bar. Audience: the agent doing the work.
39
+ - **TOOL notes (stay in `tools/<tool>/`)** - how the tools work and WHY they work
40
+ that way: API mechanics, DTO shapes, auth, builder internals, platform gotchas.
41
+ Audience: whoever maintains or improves the tools. Keeping these with the tools
42
+ means when we change a tool the reasoning is right there, so we do not repeat a
43
+ mistake we already solved.
44
+
45
+ **Routing rule for any new learning (Hard rule 6, compounding):**
46
+ - About a TOOL, the PLATFORM API, a DTO quirk, or builder behavior -> the tool
47
+ folder (`tools/procesio/*-NOTES.md`, or the relevant tool, e.g. `tools/web/`).
48
+ - About METHODOLOGY or how to build well -> here.
49
+ - A cross-cutting standing preference -> user memory (`memory/MEMORY.md` + a file).
50
+ - Never let a discovery live only in a chat.
51
+
52
+ ## Contents
53
+
54
+ - **PROCESIO-BUILD-AND-TEST-PLAYBOOK.md** - the operating procedure. The loop the
55
+ agent runs on every build/edit: frame -> design -> build -> rigorous self-test ->
56
+ capture learnings -> fix bugs/inefficiency/UX -> re-verify -> document. Includes
57
+ the self-test checklist (validate, run instances, forms render + behavior in a
58
+ real browser, webhooks, end-to-end) and the skills-to-use map.
59
+ - **PROCESIO-BEST-PRACTICES.md** - distilled platform best practices (framing,
60
+ design, integrations, robustness, observability, SQL actions, forms UX, optimize
61
+ for speed). Source: the "Best practices for implementing with PROCESIO" doc.
62
+
63
+ - **IMPLEMENTATION-PATTERNS/** - the house style: how this team actually builds processes, forms,
64
+ integrations and SQL for PROCESIO, distilled (client data stripped) from a full workspace audit.
65
+ Served as `guidance --topic patterns` (index) + `patterns-processes|forms|integrations|database`.
66
+ The index also defines where per-workspace knowledge lives (user data, never here).
67
+
68
+ ## Tool notes this agent relies on (in `tools/procesio/`)
69
+
70
+ - `PHASE4-E2E-NOTES.md` - end-to-end build/test rounds; the verified mechanics for
71
+ validating, running instances, form data-model + trigger behavior, document and
72
+ webhook gotchas. The empirical backbone the playbook checklist points at.
73
+ - `PROCESIO-API-NOTES.md` - API behaviors not obvious from Swagger.
74
+ - `PROCESIO-AUTH-NOTES.md` - auth modes, workspace scoping.
75
+ - `DTO-SUBTOOLS-NOTE.md` - the resource-builder sub-tools contract.
76
+ - `PROCESIO-SEND-EMAIL-NOTES.md` - Send Email action node (attachment + recipient).
77
+
78
+ ## Layout
79
+
80
+ ```
81
+ agent.yaml manifest (actions/args/tools/routing)
82
+ main.py action dispatch (JSON in/out)
83
+ context.py stateless tool-invoker context
84
+ knowledge.py loads the KB docs for `guidance`
85
+ checklist.py the self-test checklist (single source)
86
+ audit.py static auditor (correctness + practice); ci() case helper
87
+ verifylib.py the verify gate logic
88
+ handlers/ one file per action
89
+ tests/ manifest-sync guard + unit tests (31, all faked - no live calls)
90
+ ```
91
+
92
+ ## Next slices
93
+
94
+ - Wire `web` (real-browser form render + behavior) and `google-*` (deliverables)
95
+ into actions, so the manual checklist steps become agent-driven where possible.
96
+ - A `build` / `edit` action surface over the procesio DTO sub-tools, with `verify`
97
+ run automatically after every build.
File without changes
@@ -0,0 +1,73 @@
1
+ name: procesio
2
+ description: >-
3
+ PROCESIO build-and-test agent. Knows how to create use cases, edit resources,
4
+ and improve implementations on the PROCESIO platform, and enforces the
5
+ build-and-test discipline: it serves the operating playbook + best practices,
6
+ emits the rigorous self-test checklist, runs an automatable verify gate against
7
+ a live process (validate, designer-vs-runtime parity, run + read instance
8
+ status), and statically audits a process for inefficiency / UX / robustness
9
+ smells. Methodology lives in this folder; tool mechanics stay in tools/procesio/.
10
+ version: 0.1.0
11
+ runtime: python
12
+ entrypoint: main.py
13
+
14
+ # Tools this agent DRIVES programmatically (registry-resolved, never hardcoded at
15
+ # call sites). Only procesio today - that is what verify/audit/run actually invoke.
16
+ # The agent also KNOWS web (real-browser form testing) and google-* (deliverables)
17
+ # through the served playbook, but they are NOT listed here until an action drives
18
+ # them: the registry derives agent readiness from this list, so naming an unused
19
+ # tool would make `status` report the agent blocked on secrets it never needs.
20
+ tools:
21
+ - procesio
22
+
23
+ routing:
24
+ triggers:
25
+ - build a procesio use case
26
+ - test / verify a procesio process or resource
27
+ - audit a procesio process for best practices
28
+ - how should I build / test in procesio
29
+ - improve a procesio implementation
30
+ primary_action: verify
31
+ example: >-
32
+ procesio verify --process-id <id> (audit: procesio audit --process-id <id>;
33
+ guidance: procesio guidance; checklist: procesio checklist)
34
+
35
+ actions:
36
+ - name: status
37
+ description: Report agent + driven-tool readiness (presence + secrets).
38
+ - name: guidance
39
+ description: >-
40
+ Serve the build-and-test playbook + best practices (the agent's knowledge
41
+ base) from one place. Building a FORM is a separate discipline: start at
42
+ topic=forms (the index) and load the one chapter you need - the form
43
+ chapters are deliberately NOT in topic=all, because the guide is ~100 KB.
44
+ args:
45
+ - {name: topic, type: string, default: all, description: "processes: playbook | best-practices | visual-organization | datastore | scheduling | environments | reliability | boundary | all. forms: forms (index, start here) | forms-anatomy (elements + the field VALUE PATH) | forms-process (RUN_PROCESS event, inputMap/outputMap row shape) | forms-interaction | forms-code | forms-dom | forms-motion | forms-deploy | forms-pitfalls. house style (how we build, from a workspace audit): patterns (index, start here) | patterns-processes | patterns-forms | patterns-integrations | patterns-database"}
46
+ - name: checklist
47
+ description: Emit the rigorous self-test checklist as structured steps.
48
+ args:
49
+ - {name: phase, type: string, description: "filter to one phase: validate | run | forms | webhooks | e2e"}
50
+ - {name: automatable-only, type: boolean, default: false, description: only steps the verify gate can run}
51
+ - name: verify
52
+ description: >-
53
+ Run the automatable self-test gate against a process: validate, config-parity
54
+ audit, and with --run execute it and read the real instance status. Lists the
55
+ manual checks it cannot run.
56
+ args:
57
+ - {name: process-id, type: string, required: true, description: process (project) id to verify}
58
+ - {name: run, type: boolean, default: false, description: actually run the process and read instance status}
59
+ - {name: payload, type: string, description: input variables as a JSON object (with --run)}
60
+ - {name: timeout, type: integer, description: secondsTimeOut for the synchronous run}
61
+ - {name: profile, type: string, description: procesio credential profile to use}
62
+ - {name: workspace-id, type: string, description: "workspace GUID the process lives in (required whenever it is not the profile's default workspace)"}
63
+ - name: audit
64
+ description: >-
65
+ Static best-practice + correctness audit of a process (action count, slow
66
+ actions, error handling, inline secrets, designer-vs-runtime parity).
67
+ args:
68
+ - {name: process-id, type: string, required: true, description: process (project) id to audit}
69
+ - {name: profile, type: string, description: procesio credential profile to use}
70
+ - {name: workspace-id, type: string, description: "workspace GUID the process lives in (required whenever it is not the profile's default workspace)"}
71
+
72
+ # No own secret: readiness comes from the tools it drives (see `procesio` tool).
73
+ secrets: []