@imenam/mcp-messenger 1.0.35 → 1.0.36
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.
- package/README.md +8 -2
- package/dist/src/core/access-store.d.ts +5 -0
- package/dist/src/core/access-store.js +17 -0
- package/dist/src/core/store.js +223 -223
- package/dist/src/index.js +21 -21
- package/dist/src/server/app.js +6 -3
- package/dist/src/server/ui/app.js +62 -1
- package/dist/src/server/ui/markdown.js +340 -340
- package/dist/src/server/ui/styles.css +3826 -3820
- package/package.json +64 -61
- package/dist/src/cli/generate-token.d.ts +0 -7
- package/dist/src/cli/generate-token.js +0 -12
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ Une clé se crée dans la console avec un nom, une portée et une durée :
|
|
|
86
86
|
|
|
87
87
|
La clé (`mk_…`) n'est affichée qu'une fois, avec le bloc `.mcp.json` et la commande
|
|
88
88
|
d'installation déjà remplis ; le serveur n'en garde qu'une empreinte. Depuis le détail
|
|
89
|
-
d'une clé : renommer, prolonger, voir les boîtes ouvertes avec elle, la **remplacer** (une
|
|
89
|
+
d'une clé : la renommer, renommer son agent, prolonger, voir les boîtes ouvertes avec elle, la **remplacer** (une
|
|
90
90
|
nouvelle clé aux mêmes réglages ; l'ancienne reste acceptée 24 h) ou la **révoquer**.
|
|
91
91
|
|
|
92
92
|
#### Compte de la console
|
|
@@ -707,7 +707,7 @@ cet agent (403 sinon). Les routes `/admin/*` n'acceptent que la session de la co
|
|
|
707
707
|
| `DELETE` | `/admin/links/:id` | Supprime une liaison |
|
|
708
708
|
| `GET` | `/admin/keys` | Clés API, sans leur secret : début et fin, agent, échéance, dernier usage, état (`active`, `expired`, `revoked`) |
|
|
709
709
|
| `POST` | `/admin/keys` | Crée une clé (`name`, `agent_name` ou `null` pour tous les agents, `agent_description?` pour une clé liée, `lifetime_days` ou `null`) — rend le secret, une seule fois |
|
|
710
|
-
| `GET` `PATCH` | `/admin/keys/:id` | Détail d'une clé et boîtes ouvertes avec elle · renommer (`name`), changer
|
|
710
|
+
| `GET` `PATCH` | `/admin/keys/:id` | Détail d'une clé et boîtes ouvertes avec elle · renommer (`name`), renommer l'agent ou changer sa description (`agent_name`, `agent_description`, reportés sur les boîtes ouvertes avec la clé) |
|
|
711
711
|
| `POST` | `/admin/keys/:id/extend` | Repousse l'échéance de `days` jours, ou la retire (`days: null`) |
|
|
712
712
|
| `POST` | `/admin/keys/:id/rotate` | Nouvelle clé aux mêmes réglages ; l'ancienne reste acceptée 24 h |
|
|
713
713
|
| `POST` | `/admin/keys/:id/revoke` | Révoque la clé, refusée dès l'appel suivant |
|
|
@@ -827,6 +827,12 @@ passe de « NOT armed » à « armed » quand ce veilleur prend son poste.
|
|
|
827
827
|
|
|
828
828
|
---
|
|
829
829
|
|
|
830
|
+
## Publication
|
|
831
|
+
|
|
832
|
+
Chaque push sur `master`, merge de pull request compris, publie une nouvelle version de `@imenam/mcp-messenger` sur npm (`.github/workflows/publish.yml`) : `npm ci`, build et tests, puis `npm version patch`, dont le commit et le tag sont poussés sur `master`, et `npm publish`. La publication passe par le trusted publishing de npm (OIDC, sans token), avec attestation de provenance. Un échec du build ou des tests arrête le workflow avant la montée de version.
|
|
833
|
+
|
|
834
|
+
Sur npmjs.com, le paquet déclare ce workflow comme publieur de confiance (Settings → Trusted publishing → GitHub Actions : `Matthieu-Pesnot-Pin`, `mcp-messenger`, `publish.yml`, avec `npm publish` dans les actions autorisées). Le commit de version est poussé avec `GITHUB_TOKEN` : si `master` est protégée, la règle doit autoriser GitHub Actions à y pousser.
|
|
835
|
+
|
|
830
836
|
## Licence
|
|
831
837
|
|
|
832
838
|
ISC
|
|
@@ -104,6 +104,11 @@ export declare class AccessStore {
|
|
|
104
104
|
getApiKey(id: string): ApiKey | null;
|
|
105
105
|
private requireKey;
|
|
106
106
|
renameApiKey(id: string, name: string): ApiKey;
|
|
107
|
+
/**
|
|
108
|
+
* Renomme l'agent d'une clé liée à un agent, et reporte le nom sur les boîtes déjà
|
|
109
|
+
* ouvertes avec elle : la clé continue de les ouvrir.
|
|
110
|
+
*/
|
|
111
|
+
setApiKeyAgentName(id: string, agentName: string): ApiKey;
|
|
107
112
|
/**
|
|
108
113
|
* Change la description de l'agent portée par une clé liée à un agent, et la reporte sur
|
|
109
114
|
* les boîtes déjà ouvertes avec elle. null l'efface de la clé, pas des boîtes.
|
|
@@ -207,6 +207,23 @@ export class AccessStore {
|
|
|
207
207
|
this.db.prepare("UPDATE api_keys SET name = ? WHERE id = ?").run(name, id);
|
|
208
208
|
return this.getApiKey(id);
|
|
209
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Renomme l'agent d'une clé liée à un agent, et reporte le nom sur les boîtes déjà
|
|
212
|
+
* ouvertes avec elle : la clé continue de les ouvrir.
|
|
213
|
+
*/
|
|
214
|
+
setApiKeyAgentName(id, agentName) {
|
|
215
|
+
const key = this.requireKey(id);
|
|
216
|
+
if (!key.agent_name) {
|
|
217
|
+
throw new MessengerError("a key valid for all agents carries no agent name", 400);
|
|
218
|
+
}
|
|
219
|
+
this.db.transaction(() => {
|
|
220
|
+
this.db.prepare("UPDATE api_keys SET agent_name = ? WHERE id = ?").run(agentName, id);
|
|
221
|
+
this.db
|
|
222
|
+
.prepare("UPDATE agents SET agent_name = ? WHERE id IN (SELECT mailbox FROM mailbox_keys WHERE api_key_id = ?)")
|
|
223
|
+
.run(agentName, id);
|
|
224
|
+
})();
|
|
225
|
+
return this.getApiKey(id);
|
|
226
|
+
}
|
|
210
227
|
/**
|
|
211
228
|
* Change la description de l'agent portée par une clé liée à un agent, et la reporte sur
|
|
212
229
|
* les boîtes déjà ouvertes avec elle. null l'efface de la clé, pas des boîtes.
|