From 61cec6f4303d99bc0bfabc19b250282d30987924 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Mon, 16 Mar 2026 15:00:23 +0100 Subject: [PATCH] Sync ia_dev: token resolution via .secrets//ia_token, doc updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivations:** - Align master with current codebase (token from projects//.secrets//ia_token) - Id resolution by mail To or by API token; no slug **Root causes:** - Token moved from conf.json to .secrets//ia_token; env from directory name **Correctifs:** - Server and scripts resolve project+env by scanning all projects and envs **Evolutions:** - tickets-fetch-inbox routes by To address; notary-ai agents and API doc updated **Pages affectées:** - ai_working_help/server.js, docs, project_config.py, lib/project_config.sh - projects/README.md, lecoffreio/docs/API.md, gitea-issues/tickets-fetch-inbox.py --- .cursor/agents/agent-loop.md | 83 + .../branch-align-by-script-from-test.md | 59 + .cursor/agents/change-to-all-branches.md | 31 + .cursor/agents/code.md | 103 + .cursor/agents/deploy-by-script.md | 54 + .cursor/agents/deploy-pprod-or-prod.md | 43 + .cursor/agents/docupdate.md | 83 + .cursor/agents/evol.md | 29 + .cursor/agents/fix-lint.md | 124 + .cursor/agents/fix-search.md | 61 + .cursor/agents/fix.md | 39 + .cursor/agents/gitea-issues-process.md | 80 + .cursor/agents/notary-ai-loop.md | 66 + .cursor/agents/notary-ai-process.md | 59 + .cursor/agents/push-by-script.md | 72 + .cursor/hooks.json | 10 + .cursor/hooks/remonter-mails.sh | 47 + .cursor/rules/cloture-evolution.mdc | 95 + .cursor/rules/rules.mdc | 72 + .editorconfig | 40 + .gitattributes | 41 + .gitignore | 72 + .gitmessage | 47 + .hintrc | 5 + .markdownlint.json | 6 + .markdownlintignore | 6 + .prettierignore | 56 + CLAUDE.md | 227 ++ README.md | 43 + ai_working_help/docs/notary-ai-api.md | 60 + ai_working_help/notary-ai/lib.sh | 33 + .../notary-ai/list-pending-notary-ai.sh | 19 + .../notary-ai/write-response-notary-ai.sh | 81 + ai_working_help/package.json | 13 + ai_working_help/server.js | 163 ++ deploy/_lib/colors.sh | 17 + deploy/_lib/env-map.sh | 66 + deploy/_lib/git-flow.sh | 293 ++ deploy/_lib/ssh.sh | 95 + deploy/branch-align.sh | 108 + deploy/bump-version.sh | 91 + deploy/change-to-all-branches.sh | 32 + deploy/deploy-by-script-to.sh | 58 + deploy/pousse.sh | 186 ++ gitea-issues/agent-loop-chat-iterations.sh | 82 + gitea-issues/agent-loop-lock-acquire.sh | 39 + gitea-issues/agent-loop-lock-release.sh | 35 + gitea-issues/agent-loop-retrieval-once.sh | 45 + gitea-issues/agent-loop-stop-requested.sh | 27 + gitea-issues/agent-loop-stop.sh | 28 + gitea-issues/agent-loop-treatment.sh | 52 + gitea-issues/agent-loop.env.example | 19 + gitea-issues/agent-loop.sh | 91 + gitea-issues/comment-issue.sh | 50 + gitea-issues/create-branch-for-issue.sh | 45 + gitea-issues/get-issue.sh | 39 + gitea-issues/imap-bridge.env.example | 43 + gitea-issues/lib.sh | 122 + gitea-issues/list-open-issues.sh | 35 + gitea-issues/list-pending-spooler.sh | 23 + gitea-issues/mail-create-issue-from-email.py | 110 + gitea-issues/mail-create-issue-from-email.sh | 8 + gitea-issues/mail-get-thread.py | 208 ++ gitea-issues/mail-get-thread.sh | 12 + gitea-issues/mail-list-unread.py | 118 + gitea-issues/mail-list-unread.sh | 8 + gitea-issues/mail-mark-read.py | 41 + gitea-issues/mail-mark-read.sh | 8 + gitea-issues/mail-send-reply.py | 108 + gitea-issues/mail-send-reply.sh | 8 + gitea-issues/mail-thread-log.py | 333 +++ gitea-issues/mail-thread-log.sh | 13 + gitea-issues/mail-to-issue.py | 116 + gitea-issues/mail-to-issue.sh | 12 + gitea-issues/mail_common.py | 144 + gitea-issues/print-issue-prompt.sh | 35 + gitea-issues/project_config.py | 174 ++ gitea-issues/tickets-fetch-inbox.py | 321 +++ gitea-issues/tickets-fetch-inbox.sh | 17 + gitea-issues/wiki-api-test.sh | 88 + gitea-issues/wiki-get-page.sh | 34 + gitea-issues/wiki-migrate-docs.sh | 100 + gitea-issues/wiki-put-page.sh | 46 + gitea-issues/write-response-spooler.py | 66 + gitea-issues/write-response-spooler.sh | 8 + lib/README.md | 13 + lib/project_config.sh | 68 + projects/README.md | 53 + projects/algo/conf.json | 37 + projects/enso/conf.json | 37 + projects/ia_dev/conf.json | 27 + .../docs/GITEA_ISSUES_SCRIPTS_AGENTS.md | 159 ++ projects/ia_dev/docs/README.md | 13 + projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md | 135 + .../ia_dev/docs/WORKFLOWS_AND_COMPONENTS.md | 419 +++ projects/ia_dev/docs/agents-scripts-split.md | 171 ++ projects/lecoffreio/conf.json | 40 + ...y_-_nicolas.cantu_pm.me_-___0xAFF1ECF4.asc | 14 + ...34128.af28dfa2.nicolas.cantu_pm.me.pending | 36 + projects/lecoffreio/docs/ANCRAGE_COMPLETE.md | 841 ++++++ projects/lecoffreio/docs/API.md | 1568 +++++++++++ projects/lecoffreio/docs/ARCHITECTURE.md | 1789 +++++++++++++ projects/lecoffreio/docs/CODE_STANDARDS.md | 527 ++++ projects/lecoffreio/docs/DATABASE_COMPLETE.md | 1709 ++++++++++++ projects/lecoffreio/docs/DEPLOYMENT.md | 2361 +++++++++++++++++ projects/lecoffreio/docs/FRONTEND.md | 1376 ++++++++++ .../lecoffreio/docs/IMPORT_V1_DEPENDENCIES.md | 201 ++ .../lecoffreio/docs/MAILCHIMP_TEMPLATES.md | 40 + projects/lecoffreio/docs/MIGRATION.md | 881 ++++++ projects/lecoffreio/docs/OPERATIONS.md | 1354 ++++++++++ projects/lecoffreio/docs/README.md | 34 + projects/lecoffreio/docs/SCRIPTS.md | 554 ++++ .../docs/SYNC_V1_TO_V2_AT_LOGIN_PLAN.md | 157 ++ .../docs/WORKFLOWS_AND_COMPONENTS.md | 420 +++ .../lecoffreio/docs/agents-scripts-split.md | 171 ++ .../import-v1-schema-and-scripts-analysis.md | 61 + ... entit├®s dans le notariat - API Annuaire.pdf | Bin 0 -> 497367 bytes ...re - Migration de l'APIv1 vers l'APIv2.pdf | Bin 0 -> 349017 bytes ... Pr├®sentation et guide d'int├®gration.pdf | Bin 0 -> 321408 bytes ...uaire - V2 - Documentation Utilisateur.pdf | Bin 0 -> 630115 bytes .../sources/Documentation API 1.21 (1).pdf | Bin 0 -> 392049 bytes ... Document d'int├®gration OpenIDConnect.pdf | Bin 0 -> 537640 bytes ... Pr├®sentation et guide d'int├®gration.pdf | Bin 0 -> 401939 bytes ...es raccordements - Guide de d├®marrage.pdf | Bin 0 -> 314132 bytes projects/lecoffreio/docs/v1-schema.sql | 1836 +++++++++++++ 125 files changed, 23081 insertions(+) create mode 100644 .cursor/agents/agent-loop.md create mode 100644 .cursor/agents/branch-align-by-script-from-test.md create mode 100644 .cursor/agents/change-to-all-branches.md create mode 100644 .cursor/agents/code.md create mode 100644 .cursor/agents/deploy-by-script.md create mode 100644 .cursor/agents/deploy-pprod-or-prod.md create mode 100644 .cursor/agents/docupdate.md create mode 100644 .cursor/agents/evol.md create mode 100644 .cursor/agents/fix-lint.md create mode 100644 .cursor/agents/fix-search.md create mode 100644 .cursor/agents/fix.md create mode 100644 .cursor/agents/gitea-issues-process.md create mode 100644 .cursor/agents/notary-ai-loop.md create mode 100644 .cursor/agents/notary-ai-process.md create mode 100644 .cursor/agents/push-by-script.md create mode 100644 .cursor/hooks.json create mode 100755 .cursor/hooks/remonter-mails.sh create mode 100644 .cursor/rules/cloture-evolution.mdc create mode 100644 .cursor/rules/rules.mdc create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .gitmessage create mode 100644 .hintrc create mode 100644 .markdownlint.json create mode 100644 .markdownlintignore create mode 100644 .prettierignore create mode 100644 CLAUDE.md create mode 100644 README.md create mode 100644 ai_working_help/docs/notary-ai-api.md create mode 100644 ai_working_help/notary-ai/lib.sh create mode 100755 ai_working_help/notary-ai/list-pending-notary-ai.sh create mode 100755 ai_working_help/notary-ai/write-response-notary-ai.sh create mode 100644 ai_working_help/package.json create mode 100644 ai_working_help/server.js create mode 100644 deploy/_lib/colors.sh create mode 100644 deploy/_lib/env-map.sh create mode 100644 deploy/_lib/git-flow.sh create mode 100644 deploy/_lib/ssh.sh create mode 100755 deploy/branch-align.sh create mode 100644 deploy/bump-version.sh create mode 100755 deploy/change-to-all-branches.sh create mode 100755 deploy/deploy-by-script-to.sh create mode 100755 deploy/pousse.sh create mode 100755 gitea-issues/agent-loop-chat-iterations.sh create mode 100755 gitea-issues/agent-loop-lock-acquire.sh create mode 100755 gitea-issues/agent-loop-lock-release.sh create mode 100755 gitea-issues/agent-loop-retrieval-once.sh create mode 100755 gitea-issues/agent-loop-stop-requested.sh create mode 100755 gitea-issues/agent-loop-stop.sh create mode 100755 gitea-issues/agent-loop-treatment.sh create mode 100644 gitea-issues/agent-loop.env.example create mode 100755 gitea-issues/agent-loop.sh create mode 100755 gitea-issues/comment-issue.sh create mode 100755 gitea-issues/create-branch-for-issue.sh create mode 100755 gitea-issues/get-issue.sh create mode 100644 gitea-issues/imap-bridge.env.example create mode 100755 gitea-issues/lib.sh create mode 100755 gitea-issues/list-open-issues.sh create mode 100755 gitea-issues/list-pending-spooler.sh create mode 100755 gitea-issues/mail-create-issue-from-email.py create mode 100755 gitea-issues/mail-create-issue-from-email.sh create mode 100644 gitea-issues/mail-get-thread.py create mode 100755 gitea-issues/mail-get-thread.sh create mode 100755 gitea-issues/mail-list-unread.py create mode 100755 gitea-issues/mail-list-unread.sh create mode 100755 gitea-issues/mail-mark-read.py create mode 100755 gitea-issues/mail-mark-read.sh create mode 100755 gitea-issues/mail-send-reply.py create mode 100755 gitea-issues/mail-send-reply.sh create mode 100644 gitea-issues/mail-thread-log.py create mode 100755 gitea-issues/mail-thread-log.sh create mode 100755 gitea-issues/mail-to-issue.py create mode 100755 gitea-issues/mail-to-issue.sh create mode 100644 gitea-issues/mail_common.py create mode 100755 gitea-issues/print-issue-prompt.sh create mode 100644 gitea-issues/project_config.py create mode 100644 gitea-issues/tickets-fetch-inbox.py create mode 100755 gitea-issues/tickets-fetch-inbox.sh create mode 100755 gitea-issues/wiki-api-test.sh create mode 100755 gitea-issues/wiki-get-page.sh create mode 100755 gitea-issues/wiki-migrate-docs.sh create mode 100755 gitea-issues/wiki-put-page.sh create mode 100644 gitea-issues/write-response-spooler.py create mode 100755 gitea-issues/write-response-spooler.sh create mode 100644 lib/README.md create mode 100644 lib/project_config.sh create mode 100644 projects/README.md create mode 100644 projects/algo/conf.json create mode 100644 projects/enso/conf.json create mode 100644 projects/ia_dev/conf.json create mode 100644 projects/ia_dev/docs/GITEA_ISSUES_SCRIPTS_AGENTS.md create mode 100644 projects/ia_dev/docs/README.md create mode 100644 projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md create mode 100644 projects/ia_dev/docs/WORKFLOWS_AND_COMPONENTS.md create mode 100644 projects/ia_dev/docs/agents-scripts-split.md create mode 100644 projects/lecoffreio/conf.json create mode 100644 projects/lecoffreio/data/issues/2026-03-14T134128.af28dfa2.nicolas.cantu_pm.me.d/0_publickey_-_nicolas.cantu_pm.me_-___0xAFF1ECF4.asc create mode 100644 projects/lecoffreio/data/issues/2026-03-14T134128.af28dfa2.nicolas.cantu_pm.me.pending create mode 100644 projects/lecoffreio/docs/ANCRAGE_COMPLETE.md create mode 100644 projects/lecoffreio/docs/API.md create mode 100644 projects/lecoffreio/docs/ARCHITECTURE.md create mode 100644 projects/lecoffreio/docs/CODE_STANDARDS.md create mode 100644 projects/lecoffreio/docs/DATABASE_COMPLETE.md create mode 100644 projects/lecoffreio/docs/DEPLOYMENT.md create mode 100644 projects/lecoffreio/docs/FRONTEND.md create mode 100644 projects/lecoffreio/docs/IMPORT_V1_DEPENDENCIES.md create mode 100644 projects/lecoffreio/docs/MAILCHIMP_TEMPLATES.md create mode 100644 projects/lecoffreio/docs/MIGRATION.md create mode 100644 projects/lecoffreio/docs/OPERATIONS.md create mode 100644 projects/lecoffreio/docs/README.md create mode 100644 projects/lecoffreio/docs/SCRIPTS.md create mode 100644 projects/lecoffreio/docs/SYNC_V1_TO_V2_AT_LOGIN_PLAN.md create mode 100644 projects/lecoffreio/docs/WORKFLOWS_AND_COMPONENTS.md create mode 100644 projects/lecoffreio/docs/agents-scripts-split.md create mode 100644 projects/lecoffreio/docs/import-v1-schema-and-scripts-analysis.md create mode 100644 projects/lecoffreio/docs/sources/API Annuaire - Hi├®rarchies des entit├®s dans le notariat - API Annuaire.pdf create mode 100644 projects/lecoffreio/docs/sources/API Annuaire - Migration de l'APIv1 vers l'APIv2.pdf create mode 100644 projects/lecoffreio/docs/sources/API Annuaire - Pr├®sentation et guide d'int├®gration.pdf create mode 100644 projects/lecoffreio/docs/sources/API Annuaire - V2 - Documentation Utilisateur.pdf create mode 100644 projects/lecoffreio/docs/sources/Documentation API 1.21 (1).pdf create mode 100644 projects/lecoffreio/docs/sources/ID.NOT - Document d'int├®gration OpenIDConnect.pdf create mode 100644 projects/lecoffreio/docs/sources/ID.NOT - Pr├®sentation et guide d'int├®gration.pdf create mode 100644 projects/lecoffreio/docs/sources/Portail des raccordements - Guide de d├®marrage.pdf create mode 100644 projects/lecoffreio/docs/v1-schema.sql diff --git a/.cursor/agents/agent-loop.md b/.cursor/agents/agent-loop.md new file mode 100644 index 0000000..073a922 --- /dev/null +++ b/.cursor/agents/agent-loop.md @@ -0,0 +1,83 @@ +--- +name: agent-loop +description: Orchestre la boucle de récupération des mails et le traitement par gitea-issues-process. Gère les boucles par exécutions délimitées uniquement (N itérations ou x cycles) ; ne jamais lancer de processus en arrière-plan (nohup / &). +model: inherit +is_background: true +--- + +# Agent agent-loop + +**Contexte projet :** La configuration et la documentation du projet sont dans `projects//` ; `` = contenu du fichier `../ai_project_id` (à la racine du dépôt projet, parent de ia_dev). Racine du dépôt projet = `/home/desk/code/lecoffre_ng_test` (ou `..` depuis le workspace ia_dev). Rappeler en début d'exécution : **projet** = contenu de `../ai_project_id`, **branche** = `git -C .. branch --show-current`, **répertoire de travail** = répertoire du dépôt dans `../`. + +**Documentation** : La doc des projets gérés est dans **`projects//docs`** ; la doc ia_dev est dans **`projects/ia_dev/docs`**. + +**Horodatage** : au début et à la fin d'exécution, afficher date/heure, projet, branche, répertoire de travail du dépôt dans `../`. + +Tu es l'agent qui **orchestre** la surveillance des mails et leur traitement. Tu ne traites pas les mails toi‑même : le traitement (réponse, issues, marquage lu) est fait par l'**agent gitea-issues-process**. Tu lances les scripts et/ou les sous-agents selon la demande. + +**Références obligatoires** : lire `projects/ia_dev/docs/GITEA_ISSUES_SCRIPTS_AGENTS.md` (contexte d'exécution). Tous les scripts sont invoqués depuis la **racine du dépôt projet** : `cd && ./ia_dev/gitea-issues/