@mercury-fw/channel-google-chat 0.4.0 → 0.5.0

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 (3) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/index.ts +1 -1
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @mercury-fw/channel-google-chat
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a7f2f13: A user directory decides who people are and what they may make Mercury do.
8
+
9
+ - An app can declare a `directory` in `mercury.config.ts`. Given whoever a channel says is talking, it returns the person with their roles. The person's key is `<directory name>:<id>`, so one person reached from several channels keeps one private area, one memory and one set of confirmations.
10
+ - With a directory the instance is closed. Someone it doesn't know gets a refusal and nothing runs, unless `access.unknown` is `"allow"`; `access.unknownMessage` sets what they're told. A directory that can't be reached, or fails to load, refuses everyone but the terminal. Answers are cached for five minutes, so a revoked role stops counting within that time.
11
+ - `mercury.act-as-self` (every plugin) or `mercury.act-as-self.<plugin>` (one) lets a person make Mercury act with its own identity.
12
+ - A plugin acting as Mercury, such as atlassian-admin, is offered only to those people, and on the terminal.
13
+ - A plugin acting as the person also gives them each tool a second time, as `<tool>AsMercury`.
14
+ - Every call made as Mercury for someone is logged with who asked.
15
+ - `access.plugins` restricts a plugin to some roles. Prompts, skills and the manifest follow what each person is offered.
16
+ - New package `@mercury-fw/directory-static`: people, their identities on each channel and their roles, listed in `DIRECTORY_STATIC_PEOPLE`.
17
+ - The channel contract is at version 5:
18
+ - `ChannelRuntimeContext.admit` says whether the core talks to a caller;
19
+ - the reads are per person and async, the manifest included;
20
+ - `DirectoryPlugin` is the directory contract;
21
+ - `Principal` no longer carries `roles`.
22
+ - `channel-http` answers `403` to a caller the directory doesn't know and `503` when it can't be reached, on every route.
23
+ - `auth-static` refuses `roles` in `AUTH_STATIC_TOKENS`: roles come from the directory.
24
+
3
25
  ## 0.4.0
4
26
 
5
27
  ### Minor Changes
package/index.ts CHANGED
@@ -22,7 +22,7 @@ function require(env: ChannelRuntimeContext["env"], name: string): string {
22
22
  export const googleChatChannel: ChannelPlugin = {
23
23
  // The contract this channel is written for, as a literal: importing
24
24
  // CHANNEL_API_VERSION would report whichever contract is installed.
25
- apiVersion: 4,
25
+ apiVersion: 5,
26
26
  name: "google-chat",
27
27
  build: (ctx) => {
28
28
  // No subscription configured ⇒ this instance simply doesn't run Google Chat.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercury-fw/channel-google-chat",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,7 +34,7 @@
34
34
  "@mercury-fw/channel-types": ">=0.36.0 <1.0.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@mercury-fw/channel-types": "0.40.0",
37
+ "@mercury-fw/channel-types": "0.42.0",
38
38
  "@mercury-fw/typescript-config": "*",
39
39
  "@types/bun": "^1.4.2",
40
40
  "typescript": "^6.0.3"