@mercury-fw/cli 0.61.0 → 0.63.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @mercury-fw/cli
2
2
 
3
+ ## 0.63.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [b26388b]
8
+ - @mercury-fw/core@0.63.0
9
+ - @mercury-fw/utils@0.63.0
10
+
11
+ ## 0.62.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 96eb1a8: - `mfw create` offers the Confluence plugin (`--plugins confluence`), wrapped in the formatter with a starting rule for its search results and one for a page's children, and their empty texts in `locales/en.json`.
16
+
17
+ ### Patch Changes
18
+
19
+ - @mercury-fw/core@0.62.0
20
+ - @mercury-fw/utils@0.62.0
21
+
3
22
  ## 0.61.0
4
23
 
5
24
  ### Patch Changes
package/README.md CHANGED
@@ -63,7 +63,7 @@ Then it runs `bun install` in the app and creates a git repository on `main` wit
63
63
  | `--assistant-name <name>` | The assistant's name (default `Mercury`). |
64
64
  | `--role <text>` | Completes "You are <name>, …" (default `an internal assistant`). |
65
65
  | `--channels <ids>` | Comma-separated: `google-chat`, `http`. |
66
- | `--plugins <ids>` | Comma-separated: `jira`, `bitbucket`, `atlassian-admin`, `zitadel`, `web-search` (with a SearXNG service next to the app: set `SEARXNG_SECRET` in the env file). |
66
+ | `--plugins <ids>` | Comma-separated: `jira`, `bitbucket`, `atlassian-admin`, `zitadel`, `web-search` (with a SearXNG service next to the app: set `SEARXNG_SECRET` in the env file), `confluence`. |
67
67
  | `--auth <id>` | The HTTP channel's auth provider, `oidc` or `static`: required with `http`, refused without it, since the channel doesn't start without one. The wizard asks for it once `http` is chosen. |
68
68
  | `--directory <id>` | The user directory, `static` or `zitadel`: who the people are and their roles. Without one, the person is whoever the channel says, with no roles. |
69
69
  | `--local-packages <folder>` | Installs the packages packed in `<folder>` (`bun pm pack`) instead of the registry's, as [`mfw local-packages`](#mfw-local-packages-folder--mfw-local-packages---off) does on an existing app: their versions come from the tarballs, so a package that isn't published yet works too, and no newer `mfw` is looked up on the registry. For trying unreleased packages in a new app; the test bed makes its apps this way. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercury-fw/cli",
3
- "version": "0.61.0",
3
+ "version": "0.63.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,8 +41,8 @@
41
41
  "comment:shape": "The Mercury CLI (`mfw`). `mfw create <dir>` writes a new Mercury app from the template. The framework packages move in lockstep with it, so a new app gets them at the CLI's own version; plugins and channels at the registry's latest. The plugin and channel packages are devDependencies only for the catalog test. `main(argv)` is exported for create-mercury-agent.",
42
42
  "dependencies": {
43
43
  "@clack/prompts": "^1.8.1",
44
- "@mercury-fw/core": "0.61.0",
45
- "@mercury-fw/utils": "0.61.0",
44
+ "@mercury-fw/core": "0.63.0",
45
+ "@mercury-fw/utils": "0.63.0",
46
46
  "commander": "^15.0.0"
47
47
  },
48
48
  "devDependencies": {
@@ -51,9 +51,10 @@
51
51
  "@mercury-fw/channel-google-chat": "0.11.1",
52
52
  "@mercury-fw/channel-http": "0.13.2",
53
53
  "@mercury-fw/directory-static": "0.1.2",
54
- "@mercury-fw/formatter": "0.61.0",
54
+ "@mercury-fw/formatter": "0.63.0",
55
55
  "@mercury-fw/plugin-atlassian-admin": "0.5.1",
56
56
  "@mercury-fw/plugin-bitbucket": "0.6.1",
57
+ "@mercury-fw/plugin-confluence": "0.1.0",
57
58
  "@mercury-fw/plugin-jira": "0.8.1",
58
59
  "@mercury-fw/plugin-web-search": "0.4.1",
59
60
  "@mercury-fw/plugin-zitadel": "0.5.1",
package/src/catalog.ts CHANGED
@@ -187,6 +187,33 @@ export const CATALOG: CatalogEntry[] = [
187
187
  },
188
188
  files: { "searxng/settings.yml": SEARXNG_SETTINGS },
189
189
  },
190
+ {
191
+ id: "confluence",
192
+ kind: "tool",
193
+ package: "@mercury-fw/plugin-confluence",
194
+ exportName: "confluencePlugin",
195
+ env: [],
196
+ formatter: {
197
+ displaysType: "ConfluenceDisplays",
198
+ helpers: [
199
+ "/** One page in a Confluence search result: its title, its space in parentheses",
200
+ " * when there is one, and its link on its own line. A starting point: change it",
201
+ " * to change how Confluence search results read (each item also has an excerpt). */",
202
+ 'const confluencePageLine = (page: ConfluenceDisplays["page-list"]) =>',
203
+ ' `${page.title}${page.space ? ` (${page.space})` : ""}${page.url ? `\\n${page.url}` : ""}`;',
204
+ "",
205
+ "/** One child of a Confluence page: its title, its type in brackets when it isn't",
206
+ " * a page (a folder, a whiteboard), and its link on its own line when it has one. */",
207
+ 'const confluenceChildLine = (child: ConfluenceDisplays["child-pages"]) =>',
208
+ ' `${child.title}${child.type && child.type !== "page" ? ` [${child.type}]` : ""}${child.url ? `\\n${child.url}` : ""}`;',
209
+ ].join("\n"),
210
+ rules: [
211
+ '"page-list": { item: confluencePageLine, empty: (t) => t("app.confluence.no-pages") },',
212
+ '"child-pages": { item: confluenceChildLine, empty: (t) => t("app.confluence.no-children") },',
213
+ ],
214
+ messages: { "app.confluence.no-pages": "No matching pages.", "app.confluence.no-children": "This page has no child pages." },
215
+ },
216
+ },
190
217
  {
191
218
  id: "static",
192
219
  kind: "directory",