memory-journal-mcp 6.1.2 → 6.2.1
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 +44 -28
- package/dist/{chunk-X4SWFATC.js → chunk-BI4ZNSKA.js} +38 -24
- package/dist/{chunk-HCEWINSB.js → chunk-N6EBIDN7.js} +99 -102
- package/dist/cli.js +2 -2
- package/dist/index.js +2 -2
- package/dist/tools-WPRY5MJ6.js +2 -0
- package/package.json +10 -1
- package/skills/github-commander/SKILL.md +151 -0
- package/skills/github-commander/config/project-config.example.md +125 -0
- package/skills/github-commander/workflows/code-quality-audit.md +80 -0
- package/skills/github-commander/workflows/full-audit.md +134 -0
- package/skills/github-commander/workflows/issue-triage.md +239 -0
- package/skills/github-commander/workflows/milestone-sprint.md +81 -0
- package/skills/github-commander/workflows/perf-audit.md +142 -0
- package/skills/github-commander/workflows/pr-review.md +123 -0
- package/skills/github-commander/workflows/security-audit.md +170 -0
- package/skills/github-commander/workflows/update-deps.md +109 -0
- package/.dockerignore +0 -139
- package/.gitattributes +0 -20
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -95
- package/.github/ISSUE_TEMPLATE/config.yml +0 -11
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -110
- package/.github/ISSUE_TEMPLATE/question.md +0 -78
- package/.github/aw/actions-lock.json +0 -14
- package/.github/copilot-instructions.md +0 -122
- package/.github/dependabot.yml +0 -93
- package/.github/pull_request_template.md +0 -135
- package/.github/workflows/README.md +0 -133
- package/.github/workflows/agentics-maintenance.yml +0 -141
- package/.github/workflows/auto-release.yml +0 -68
- package/.github/workflows/ci-health-monitor.lock.yml +0 -1121
- package/.github/workflows/ci-health-monitor.md +0 -87
- package/.github/workflows/codeql.yml +0 -41
- package/.github/workflows/dependabot-auto-merge.yml +0 -42
- package/.github/workflows/dependency-maintenance.lock.yml +0 -1182
- package/.github/workflows/dependency-maintenance.md +0 -147
- package/.github/workflows/docker-publish.yml +0 -254
- package/.github/workflows/docs-drift-detector.lock.yml +0 -1142
- package/.github/workflows/docs-drift-detector.md +0 -115
- package/.github/workflows/lint-and-test.yml +0 -60
- package/.github/workflows/publish-npm.yml +0 -85
- package/.github/workflows/secrets-scanning.yml +0 -32
- package/.github/workflows/security-update.yml +0 -127
- package/.gitleaks.toml +0 -9
- package/.prettierignore +0 -21
- package/.prettierrc +0 -33
- package/.scout-ignore +0 -12
- package/.trivyignore +0 -21
- package/CHANGELOG.md +0 -1814
- package/CODE_OF_CONDUCT.md +0 -133
- package/CONTRIBUTING.md +0 -263
- package/DOCKER_README.md +0 -331
- package/Dockerfile +0 -128
- package/SECURITY.md +0 -227
- package/UNRELEASED.md +0 -1
- package/dist/tools-T4U5A3X4.js +0 -2
- package/docker-compose.yml +0 -71
- package/docs/README.md +0 -18
- package/docs/agentic-journal-synergy.md +0 -175
- package/docs/copilot-setup.md +0 -72
- package/eslint.config.js +0 -110
- package/mcp-config-example.json +0 -21
- package/playwright.config.ts +0 -35
- package/releases/v2.1.0.md +0 -220
- package/releases/v2.2.0.md +0 -168
- package/releases/v3.0.0.md +0 -237
- package/releases/v3.1.0.md +0 -104
- package/releases/v3.1.1.md +0 -42
- package/releases/v3.1.2.md +0 -40
- package/releases/v3.1.3.md +0 -64
- package/releases/v3.1.4.md +0 -32
- package/releases/v3.1.5.md +0 -44
- package/releases/v4.0.0.md +0 -71
- package/releases/v4.1.0.md +0 -88
- package/releases/v4.2.0.md +0 -90
- package/releases/v4.3.0.md +0 -92
- package/releases/v4.3.1.md +0 -69
- package/releases/v4.4.0.md +0 -120
- package/releases/v4.4.1.md +0 -33
- package/releases/v4.4.2.md +0 -31
- package/releases/v4.5.0.md +0 -116
- package/releases/v5.0.0.md +0 -105
- package/releases/v5.0.1.md +0 -25
- package/releases/v5.1.0.md +0 -83
- package/releases/v5.1.1.md +0 -10
- package/releases/v6.0.0.md +0 -48
- package/releases/v6.0.1.md +0 -36
- package/releases/v6.1.0.md +0 -68
- package/releases/v6.1.1.md +0 -30
- package/releases/v6.1.2.md +0 -23
- package/scripts/generate-server-instructions.ts +0 -306
- package/scripts/server-instructions-function-body.ts +0 -107
- package/scripts/server-instructions-gotchas.ts +0 -45
- package/server.json +0 -42
- package/social-preview.png +0 -0
- package/src/auth/auth-context.ts +0 -78
- package/src/auth/authorization-server-discovery.ts +0 -263
- package/src/auth/errors.ts +0 -215
- package/src/auth/index.ts +0 -58
- package/src/auth/middleware.ts +0 -392
- package/src/auth/oauth-resource-server.ts +0 -170
- package/src/auth/scope-map.ts +0 -46
- package/src/auth/scopes.ts +0 -256
- package/src/auth/token-validator.ts +0 -293
- package/src/auth/transport-agnostic.ts +0 -164
- package/src/auth/types.ts +0 -372
- package/src/cli.ts +0 -279
- package/src/codemode/api-constants.ts +0 -263
- package/src/codemode/api.ts +0 -302
- package/src/codemode/auto-return.ts +0 -65
- package/src/codemode/index.ts +0 -47
- package/src/codemode/sandbox-factory.ts +0 -144
- package/src/codemode/sandbox.ts +0 -220
- package/src/codemode/security.ts +0 -155
- package/src/codemode/types.ts +0 -228
- package/src/codemode/worker-sandbox.ts +0 -277
- package/src/codemode/worker-script.ts +0 -239
- package/src/constants/icons.ts +0 -183
- package/src/constants/server-instructions.md +0 -166
- package/src/constants/server-instructions.ts +0 -514
- package/src/database/adapter-factory.ts +0 -16
- package/src/database/core/entry-columns.ts +0 -10
- package/src/database/core/interfaces.ts +0 -188
- package/src/database/core/schema.ts +0 -152
- package/src/database/sqlite-adapter/backup.ts +0 -167
- package/src/database/sqlite-adapter/entries/crud.ts +0 -233
- package/src/database/sqlite-adapter/entries/importance.ts +0 -76
- package/src/database/sqlite-adapter/entries/index.ts +0 -142
- package/src/database/sqlite-adapter/entries/search.ts +0 -294
- package/src/database/sqlite-adapter/entries/shared.ts +0 -102
- package/src/database/sqlite-adapter/entries/statistics.ts +0 -162
- package/src/database/sqlite-adapter/index.ts +0 -265
- package/src/database/sqlite-adapter/native-connection.ts +0 -301
- package/src/database/sqlite-adapter/relationships.ts +0 -70
- package/src/database/sqlite-adapter/tags.ts +0 -182
- package/src/filtering/tool-filter.ts +0 -312
- package/src/github/github-integration/client.ts +0 -114
- package/src/github/github-integration/index.ts +0 -297
- package/src/github/github-integration/insights.ts +0 -155
- package/src/github/github-integration/issues.ts +0 -213
- package/src/github/github-integration/milestones.ts +0 -262
- package/src/github/github-integration/projects.ts +0 -414
- package/src/github/github-integration/pull-requests.ts +0 -235
- package/src/github/github-integration/repository.ts +0 -110
- package/src/github/github-integration/types.ts +0 -43
- package/src/handlers/prompts/github.ts +0 -210
- package/src/handlers/prompts/index.ts +0 -97
- package/src/handlers/prompts/workflow.ts +0 -361
- package/src/handlers/resources/core/briefing/context-section.ts +0 -182
- package/src/handlers/resources/core/briefing/github-section.ts +0 -354
- package/src/handlers/resources/core/briefing/index.ts +0 -106
- package/src/handlers/resources/core/briefing/user-message.ts +0 -114
- package/src/handlers/resources/core/health.ts +0 -75
- package/src/handlers/resources/core/index.ts +0 -31
- package/src/handlers/resources/core/instructions.ts +0 -45
- package/src/handlers/resources/core/utilities.ts +0 -310
- package/src/handlers/resources/github.ts +0 -340
- package/src/handlers/resources/graph.ts +0 -218
- package/src/handlers/resources/help.ts +0 -410
- package/src/handlers/resources/index.ts +0 -143
- package/src/handlers/resources/shared.ts +0 -219
- package/src/handlers/resources/team.ts +0 -134
- package/src/handlers/resources/templates.ts +0 -334
- package/src/handlers/tools/admin.ts +0 -351
- package/src/handlers/tools/analytics.ts +0 -346
- package/src/handlers/tools/backup.ts +0 -272
- package/src/handlers/tools/codemode.ts +0 -188
- package/src/handlers/tools/core.ts +0 -359
- package/src/handlers/tools/error-fields-mixin.ts +0 -10
- package/src/handlers/tools/export.ts +0 -150
- package/src/handlers/tools/github/copilot-tools.ts +0 -72
- package/src/handlers/tools/github/helpers.ts +0 -125
- package/src/handlers/tools/github/insights-tools.ts +0 -112
- package/src/handlers/tools/github/issue-tools.ts +0 -442
- package/src/handlers/tools/github/kanban-tools.ts +0 -153
- package/src/handlers/tools/github/milestone-tools.ts +0 -371
- package/src/handlers/tools/github/mutation-tools.ts +0 -17
- package/src/handlers/tools/github/read-tools.ts +0 -302
- package/src/handlers/tools/github/schemas.ts +0 -435
- package/src/handlers/tools/github.ts +0 -39
- package/src/handlers/tools/index.ts +0 -255
- package/src/handlers/tools/relationships.ts +0 -390
- package/src/handlers/tools/schemas.ts +0 -165
- package/src/handlers/tools/search.ts +0 -448
- package/src/handlers/tools/team/admin-tools.ts +0 -164
- package/src/handlers/tools/team/analytics-tools.ts +0 -233
- package/src/handlers/tools/team/backup-tools.ts +0 -83
- package/src/handlers/tools/team/core-tools.ts +0 -197
- package/src/handlers/tools/team/export-tools.ts +0 -130
- package/src/handlers/tools/team/helpers.ts +0 -66
- package/src/handlers/tools/team/index.ts +0 -45
- package/src/handlers/tools/team/relationship-tools.ts +0 -219
- package/src/handlers/tools/team/schemas.ts +0 -558
- package/src/handlers/tools/team/search-tools.ts +0 -145
- package/src/handlers/tools/team/vector-tools.ts +0 -261
- package/src/index.ts +0 -57
- package/src/server/mcp-server.ts +0 -446
- package/src/server/registration.ts +0 -141
- package/src/server/scheduler.ts +0 -283
- package/src/transports/http/handlers.ts +0 -78
- package/src/transports/http/index.ts +0 -8
- package/src/transports/http/security.ts +0 -147
- package/src/transports/http/server/index.ts +0 -397
- package/src/transports/http/server/legacy-sse.ts +0 -87
- package/src/transports/http/server/stateful.ts +0 -222
- package/src/transports/http/server/stateless.ts +0 -42
- package/src/transports/http/types.ts +0 -132
- package/src/types/entities.ts +0 -145
- package/src/types/error-types.ts +0 -92
- package/src/types/errors.ts +0 -200
- package/src/types/filtering.ts +0 -55
- package/src/types/github.ts +0 -216
- package/src/types/index.ts +0 -348
- package/src/utils/error-helpers.ts +0 -78
- package/src/utils/errors/error-response-fields.ts +0 -29
- package/src/utils/errors/suggestions.ts +0 -94
- package/src/utils/github-helpers.ts +0 -33
- package/src/utils/logger.ts +0 -107
- package/src/utils/mcp-logger.ts +0 -155
- package/src/utils/progress-utils.ts +0 -100
- package/src/utils/query-helpers.ts +0 -78
- package/src/utils/resource-annotations.ts +0 -75
- package/src/utils/security-utils.ts +0 -198
- package/src/utils/vector-index-helpers.ts +0 -24
- package/src/vector/vector-search-manager.ts +0 -409
- package/src/version.ts +0 -15
- package/test-server/README.md +0 -193
- package/test-server/code-map.md +0 -399
- package/test-server/test-agent-experience.md +0 -213
- package/test-server/test-filter-instructions.mjs +0 -295
- package/test-server/test-instruction-levels.mjs +0 -102
- package/test-server/test-preflight.md +0 -55
- package/test-server/test-prompts.mjs +0 -185
- package/test-server/test-scheduler.mjs +0 -174
- package/test-server/test-tool-annotations.mjs +0 -115
- package/test-server/test-tools-codemode.md +0 -632
- package/test-server/test-tools-codemode2.md +0 -1218
- package/test-server/test-tools-team.md +0 -215
- package/test-server/test-tools.md +0 -429
- package/test-server/test-tools2.md +0 -361
- package/test-server/test-tools3.md +0 -396
- package/test-server/tool-reference.md +0 -231
- package/tests/README.md +0 -54
- package/tests/auth/auth-context.test.ts +0 -162
- package/tests/auth/authorization-server-discovery.test.ts +0 -265
- package/tests/auth/errors.test.ts +0 -170
- package/tests/auth/middleware.test.ts +0 -585
- package/tests/auth/oauth-resource-server.test.ts +0 -173
- package/tests/auth/scope-map.test.ts +0 -66
- package/tests/auth/scopes.test.ts +0 -347
- package/tests/auth/token-validator.test.ts +0 -271
- package/tests/codemode/api.test.ts +0 -396
- package/tests/codemode/auto-return.test.ts +0 -167
- package/tests/codemode/codemode-tool-handlers.test.ts +0 -197
- package/tests/codemode/sandbox-factory.test.ts +0 -152
- package/tests/codemode/sandbox.test.ts +0 -190
- package/tests/codemode/security.test.ts +0 -242
- package/tests/codemode/worker-sandbox.test.ts +0 -106
- package/tests/constants/icons.test.ts +0 -101
- package/tests/constants/server-instructions.test.ts +0 -514
- package/tests/database/crud-workflow-branches.test.ts +0 -418
- package/tests/database/database-branches.test.ts +0 -132
- package/tests/database/entries-auth-branches.test.ts +0 -390
- package/tests/database/native-connection.test.ts +0 -249
- package/tests/database/shared-helpers.test.ts +0 -103
- package/tests/database/sqlite-adapter.bench.ts +0 -63
- package/tests/database/sqlite-adapter.test.ts +0 -690
- package/tests/database/tags.test.ts +0 -134
- package/tests/e2e/README.md +0 -39
- package/tests/e2e/auth.spec.ts +0 -106
- package/tests/e2e/codemode-abuse.spec.ts +0 -75
- package/tests/e2e/health.spec.ts +0 -63
- package/tests/e2e/helpers.ts +0 -139
- package/tests/e2e/oauth-discovery.spec.ts +0 -102
- package/tests/e2e/oauth-scopes.spec.ts +0 -222
- package/tests/e2e/payloads-admin.spec.ts +0 -76
- package/tests/e2e/payloads-analytics.spec.ts +0 -37
- package/tests/e2e/payloads-backup-restore.spec.ts +0 -102
- package/tests/e2e/payloads-backup.spec.ts +0 -44
- package/tests/e2e/payloads-codemode-api.spec.ts +0 -131
- package/tests/e2e/payloads-codemode-readonly.spec.ts +0 -116
- package/tests/e2e/payloads-codemode.spec.ts +0 -116
- package/tests/e2e/payloads-core.spec.ts +0 -82
- package/tests/e2e/payloads-error-contracts.spec.ts +0 -159
- package/tests/e2e/payloads-export.spec.ts +0 -46
- package/tests/e2e/payloads-github-degradation.spec.ts +0 -73
- package/tests/e2e/payloads-github.spec.ts +0 -176
- package/tests/e2e/payloads-relationships.spec.ts +0 -56
- package/tests/e2e/payloads-search.spec.ts +0 -64
- package/tests/e2e/payloads-team-happy.spec.ts +0 -231
- package/tests/e2e/payloads-team.spec.ts +0 -174
- package/tests/e2e/prompts-expanded.spec.ts +0 -137
- package/tests/e2e/prompts.spec.ts +0 -62
- package/tests/e2e/protocols.spec.ts +0 -134
- package/tests/e2e/rate-limiting.spec.ts +0 -291
- package/tests/e2e/resources-briefing-env.spec.ts +0 -106
- package/tests/e2e/resources-complete.spec.ts +0 -180
- package/tests/e2e/resources-expanded.spec.ts +0 -83
- package/tests/e2e/resources-instructions-levels.spec.ts +0 -145
- package/tests/e2e/resources-templates.spec.ts +0 -123
- package/tests/e2e/resources.spec.ts +0 -103
- package/tests/e2e/scheduler.spec.ts +0 -79
- package/tests/e2e/security.spec.ts +0 -112
- package/tests/e2e/session-advanced.spec.ts +0 -152
- package/tests/e2e/sessions.spec.ts +0 -95
- package/tests/e2e/stateless.spec.ts +0 -79
- package/tests/e2e/streaming.spec.ts +0 -176
- package/tests/e2e/tool-filtering-presets.spec.ts +0 -192
- package/tests/e2e/tool-filtering.spec.ts +0 -77
- package/tests/e2e/tools.spec.ts +0 -111
- package/tests/filtering/tool-filter.test.ts +0 -314
- package/tests/github/client-issues-errors.test.ts +0 -433
- package/tests/github/github-integration-branches.test.ts +0 -490
- package/tests/github/github-integration.test.ts +0 -1015
- package/tests/github/github-managers-branches.test.ts +0 -907
- package/tests/github/pull-requests.test.ts +0 -334
- package/tests/handlers/analytics-branches.test.ts +0 -222
- package/tests/handlers/backup-branches.test.ts +0 -270
- package/tests/handlers/briefing-context-section.test.ts +0 -388
- package/tests/handlers/briefing-github-section.test.ts +0 -392
- package/tests/handlers/briefing-user-message.test.ts +0 -405
- package/tests/handlers/codemode-tools.test.ts +0 -85
- package/tests/handlers/copilot-tools.test.ts +0 -126
- package/tests/handlers/error-path-coverage.test.ts +0 -324
- package/tests/handlers/export-tools.test.ts +0 -203
- package/tests/handlers/github-resource-handlers.test.ts +0 -929
- package/tests/handlers/github-tool-handlers.test.ts +0 -1452
- package/tests/handlers/handler-error-branches.test.ts +0 -346
- package/tests/handlers/help-resource.test.ts +0 -92
- package/tests/handlers/prompt-handler-coverage.test.ts +0 -108
- package/tests/handlers/prompt-handlers.test.ts +0 -131
- package/tests/handlers/resource-handler-coverage.test.ts +0 -281
- package/tests/handlers/resource-handlers.test.ts +0 -357
- package/tests/handlers/resource-prompt-branches.test.ts +0 -495
- package/tests/handlers/search-tool-handlers.test.ts +0 -379
- package/tests/handlers/targeted-gap-closure.test.ts +0 -387
- package/tests/handlers/team-admin.test.ts +0 -291
- package/tests/handlers/team-analytics.test.ts +0 -220
- package/tests/handlers/team-core.test.ts +0 -148
- package/tests/handlers/team-data.test.ts +0 -198
- package/tests/handlers/team-relationships.test.ts +0 -271
- package/tests/handlers/team-resource-handlers.test.ts +0 -161
- package/tests/handlers/team-search.test.ts +0 -134
- package/tests/handlers/team-tool-handlers.test.ts +0 -301
- package/tests/handlers/team-vector.test.ts +0 -213
- package/tests/handlers/template-github-branches.test.ts +0 -676
- package/tests/handlers/tool-annotations.test.ts +0 -90
- package/tests/handlers/tool-handler-coverage.test.ts +0 -514
- package/tests/handlers/tool-handlers.test.ts +0 -510
- package/tests/handlers/tool-output-schemas.test.ts +0 -116
- package/tests/handlers/vector-tool-handlers.test.ts +0 -238
- package/tests/security/sql-injection.test.ts +0 -284
- package/tests/server/mcp-server.bench.ts +0 -55
- package/tests/server/mcp-server.test.ts +0 -1326
- package/tests/server/scheduler.test.ts +0 -400
- package/tests/transports/http-legacy-sse.test.ts +0 -275
- package/tests/transports/http-security.test.ts +0 -322
- package/tests/transports/http-stateful.test.ts +0 -487
- package/tests/transports/http-transport-server.test.ts +0 -301
- package/tests/transports/http-transport.test.ts +0 -771
- package/tests/utils/github-helpers.test.ts +0 -58
- package/tests/utils/logger.test.ts +0 -180
- package/tests/utils/mcp-logger.test.ts +0 -211
- package/tests/utils/progress-utils.test.ts +0 -156
- package/tests/utils/query-helpers.test.ts +0 -80
- package/tests/utils/security-utils.test.ts +0 -82
- package/tests/vector/vector-search-branches.test.ts +0 -111
- package/tests/vector/vector-search-manager.test.ts +0 -375
- package/tests/vector/vector-search.bench.ts +0 -48
- package/tsconfig.json +0 -42
- package/tsup.config.ts +0 -19
- package/vitest.config.ts +0 -25
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
# Tool Reference
|
|
2
|
-
|
|
3
|
-
Complete reference of all **61 tools** organized by 10 tool groups + codemode. Each group automatically includes Code Mode (`mj_execute_code`) for token-efficient operations.
|
|
4
|
-
|
|
5
|
-
> **3 tool shortcuts** (`starter`, `essential`, `readonly`) provide curated subsets for common use cases.
|
|
6
|
-
>
|
|
7
|
-
> Use [Tool Filtering](#️-tool-filtering) to select the groups you need. See [Code Mode](#-recommended-code-mode-maximum-token-savings) for the `mj.*` API that exposes every tool below through sandboxed JavaScript.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## codemode (1 tool)
|
|
12
|
-
|
|
13
|
-
Sandboxed JavaScript execution that exposes all 10 tool groups through the `mj.*` API.
|
|
14
|
-
|
|
15
|
-
| Tool | Description |
|
|
16
|
-
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
-
| `mj_execute_code` | Execute JavaScript in a sandboxed environment with access to all journal tools via the `mj.*` API. Enables multi-step workflows in a single call, reducing token usage by 70-90%. API groups: `mj.core.*`, `mj.search.*`, `mj.analytics.*`, `mj.relationships.*`, `mj.export.*`, `mj.admin.*`, `mj.github.*`, `mj.backup.*`, `mj.team.*`. Use `mj.help()` for method listing. Returns the last expression value. |
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## core (6 tools + Code Mode)
|
|
22
|
-
|
|
23
|
-
Entry lifecycle — create, retrieve, tags, and test.
|
|
24
|
-
|
|
25
|
-
| Tool | Description |
|
|
26
|
-
| ---------------------- | ---------------------------------------------------------------------------------- |
|
|
27
|
-
| `create_entry` | Create a new journal entry with context and tags (v2.1.0: GitHub Actions support). |
|
|
28
|
-
| `get_entry_by_id` | Get a specific journal entry by ID with full details. |
|
|
29
|
-
| `get_recent_entries` | Get recent journal entries. |
|
|
30
|
-
| `create_entry_minimal` | Minimal entry creation without context or tags. |
|
|
31
|
-
| `test_simple` | Simple test tool that just returns a message. |
|
|
32
|
-
| `list_tags` | List all available tags. |
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## search (4 tools + Code Mode)
|
|
37
|
-
|
|
38
|
-
Full-text, date-range, and semantic/vector search.
|
|
39
|
-
|
|
40
|
-
| Tool | Description |
|
|
41
|
-
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
-
| `search_entries` | Full-text search journal entries using FTS5 (supports phrases `"exact match"`, prefix `auth*`, boolean `NOT`/`OR`/`AND`, ranked by relevance). Optional filters for GitHub Projects, Issues, PRs, and Actions. |
|
|
43
|
-
| `search_by_date_range` | Search journal entries within a date range with optional filters. |
|
|
44
|
-
| `semantic_search` | Perform semantic/vector search on journal entries using AI embeddings. |
|
|
45
|
-
| `get_vector_index_stats` | Get statistics about the semantic search vector index. |
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## analytics (2 tools + Code Mode)
|
|
50
|
-
|
|
51
|
-
Statistics, cross-project insights, and analytics.
|
|
52
|
-
|
|
53
|
-
| Tool | Description |
|
|
54
|
-
| ---------------------------- | --------------------------------------------------------------------------- |
|
|
55
|
-
| `get_statistics` | Get journal statistics and analytics (Phase 2: includes project breakdown). |
|
|
56
|
-
| `get_cross_project_insights` | Analyze patterns across all GitHub Projects tracked in journal entries. |
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## relationships (2 tools + Code Mode)
|
|
61
|
-
|
|
62
|
-
Link entries and visualize knowledge graphs.
|
|
63
|
-
|
|
64
|
-
| Tool | Description |
|
|
65
|
-
| ------------------------- | ---------------------------------------------------------------- |
|
|
66
|
-
| `link_entries` | Create a relationship between two journal entries. |
|
|
67
|
-
| `visualize_relationships` | Generate a Mermaid diagram visualization of entry relationships. |
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## export (1 tool + Code Mode)
|
|
72
|
-
|
|
73
|
-
Export journal data in multiple formats.
|
|
74
|
-
|
|
75
|
-
| Tool | Description |
|
|
76
|
-
| ---------------- | -------------------------------------------------- |
|
|
77
|
-
| `export_entries` | Export journal entries to JSON or Markdown format. |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## admin (5 tools + Code Mode)
|
|
82
|
-
|
|
83
|
-
Entry mutations, vector index management, and tag maintenance.
|
|
84
|
-
|
|
85
|
-
| Tool | Description |
|
|
86
|
-
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
87
|
-
| `update_entry` | Update an existing journal entry. |
|
|
88
|
-
| `delete_entry` | Delete a journal entry (soft delete with timestamp). |
|
|
89
|
-
| `merge_tags` | Merge one tag into another to consolidate similar tags (e.g., merge "phase-2" into "phase2"). The source tag is deleted after merge. |
|
|
90
|
-
| `rebuild_vector_index` | Rebuild the semantic search vector index from all existing entries. |
|
|
91
|
-
| `add_to_vector_index` | Add a specific entry to the semantic search vector index. |
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## github (16 tools + Code Mode)
|
|
96
|
-
|
|
97
|
-
GitHub integration — Issues, PRs, context, Kanban boards, Milestones, Insights, issue lifecycle, and Copilot Reviews.
|
|
98
|
-
|
|
99
|
-
| Tool | Description |
|
|
100
|
-
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
101
|
-
| `get_github_issues` | List issues from a GitHub repository. Leave `owner`/`repo` empty to auto-detect from the current git repository. |
|
|
102
|
-
| `get_github_prs` | List pull requests from a GitHub repository. Leave `owner`/`repo` empty to auto-detect from the current git repository. |
|
|
103
|
-
| `get_github_issue` | Get detailed information about a specific GitHub issue. Leave `owner`/`repo` empty to auto-detect from the current git repository. |
|
|
104
|
-
| `get_github_pr` | Get detailed information about a specific GitHub pull request. Leave `owner`/`repo` empty to auto-detect from the current git repository. |
|
|
105
|
-
| `get_github_context` | Get current repository context including branch, open issues, and open PRs. Only counts OPEN items (closed items excluded). |
|
|
106
|
-
| `get_kanban_board` | View a GitHub Project v2 as a Kanban board with items grouped by Status column. Returns all columns with their items. |
|
|
107
|
-
| `move_kanban_item` | Move a Kanban item to a different status column. Requires the project board to have a Status field. |
|
|
108
|
-
| `create_github_issue_with_entry` | Create a GitHub issue AND automatically create a linked journal entry documenting the issue creation. |
|
|
109
|
-
| `close_github_issue_with_entry` | Close a GitHub issue AND create a journal entry documenting the resolution. |
|
|
110
|
-
| `get_github_milestones` | List GitHub milestones for the repository with completion percentages and due dates. |
|
|
111
|
-
| `get_github_milestone` | Get detailed information about a specific GitHub milestone including progress and linked issue counts. |
|
|
112
|
-
| `create_github_milestone` | Create a new GitHub milestone for tracking progress toward a project goal. |
|
|
113
|
-
| `update_github_milestone` | Update a GitHub milestone (title, description, due date, or state). Use state "closed" to close a completed milestone. |
|
|
114
|
-
| `delete_github_milestone` | Permanently delete a GitHub milestone. Issues assigned to the milestone will be un-assigned but not deleted. |
|
|
115
|
-
| `get_repo_insights` | Get repository insights: stars, forks, traffic (clones/views), referrers, and popular paths. Use "sections" to control token usage. |
|
|
116
|
-
| `get_copilot_reviews` | Get Copilot's code review findings for a pull request. Returns review state and file-level comments with paths and line numbers. |
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## backup (4 tools + Code Mode)
|
|
121
|
-
|
|
122
|
-
Database backup, restore, and retention management.
|
|
123
|
-
|
|
124
|
-
| Tool | Description |
|
|
125
|
-
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
126
|
-
| `backup_journal` | Create a timestamped backup of the journal database. Backups are stored in the `backups/` directory. |
|
|
127
|
-
| `list_backups` | List all available backup files with their sizes and creation dates. |
|
|
128
|
-
| `restore_backup` | Restore the journal database from a backup file. WARNING: This replaces all current data. An automatic backup is created before restore. |
|
|
129
|
-
| `cleanup_backups` | Delete old backup files, keeping only the most recent N backups. Use `list_backups` to preview before cleanup. |
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## team (20 tools + Code Mode)
|
|
134
|
-
|
|
135
|
-
Team collaboration with a separate shared database. Requires `TEAM_DB_PATH`.
|
|
136
|
-
|
|
137
|
-
### Core
|
|
138
|
-
|
|
139
|
-
| Tool | Description |
|
|
140
|
-
| ---------------------- | ----------------------------------------------------------------------------------------------- |
|
|
141
|
-
| `team_create_entry` | Create an entry in the team database for sharing with collaborators. |
|
|
142
|
-
| `team_get_entry_by_id` | Get a specific team entry by ID with full details including relationships and importance score. |
|
|
143
|
-
| `team_get_recent` | Get recent entries from the team database. |
|
|
144
|
-
| `team_list_tags` | List all tags used in the team database with usage counts. |
|
|
145
|
-
|
|
146
|
-
### Search
|
|
147
|
-
|
|
148
|
-
| Tool | Description |
|
|
149
|
-
| --------------------------- | -------------------------------------------------------------------------------------- |
|
|
150
|
-
| `team_search` | Search entries in the team database by text and/or tags. |
|
|
151
|
-
| `team_search_by_date_range` | Search team entries within a date range with optional filters for entry type and tags. |
|
|
152
|
-
|
|
153
|
-
### Admin
|
|
154
|
-
|
|
155
|
-
| Tool | Description |
|
|
156
|
-
| ------------------- | ---------------------------------------------------------- |
|
|
157
|
-
| `team_update_entry` | Update a team entry (content, type, or tags). |
|
|
158
|
-
| `team_delete_entry` | Soft-delete a team entry (marks as deleted, preservable). |
|
|
159
|
-
| `team_merge_tags` | Merge a source tag into a target tag in the team database. |
|
|
160
|
-
|
|
161
|
-
### Analytics
|
|
162
|
-
|
|
163
|
-
| Tool | Description |
|
|
164
|
-
| --------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
165
|
-
| `team_get_statistics` | Get statistics for the team database including entry counts, types, top tags, and contributor breakdown. |
|
|
166
|
-
| `team_get_cross_project_insights` | Analyze patterns across all GitHub Projects tracked in team entries. Requires TEAM_DB_PATH. |
|
|
167
|
-
|
|
168
|
-
### Relationships
|
|
169
|
-
|
|
170
|
-
| Tool | Description |
|
|
171
|
-
| ------------------------------ | ---------------------------------------------------------------------- |
|
|
172
|
-
| `team_link_entries` | Create a relationship between two team entries. |
|
|
173
|
-
| `team_visualize_relationships` | Generate a Mermaid diagram showing relationships between team entries. |
|
|
174
|
-
|
|
175
|
-
### Export
|
|
176
|
-
|
|
177
|
-
| Tool | Description |
|
|
178
|
-
| --------------------- | ----------------------------------------------------------------------------------------------- |
|
|
179
|
-
| `team_export_entries` | Export team entries in JSON or Markdown format with optional date range, type, and tag filters. |
|
|
180
|
-
|
|
181
|
-
### Backup
|
|
182
|
-
|
|
183
|
-
| Tool | Description |
|
|
184
|
-
| ------------------- | ------------------------------------------------------ |
|
|
185
|
-
| `team_backup` | Create a timestamped backup of the team database. |
|
|
186
|
-
| `team_list_backups` | List all available backup files for the team database. |
|
|
187
|
-
|
|
188
|
-
### Vector
|
|
189
|
-
|
|
190
|
-
| Tool | Description |
|
|
191
|
-
| ----------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
192
|
-
| `team_semantic_search` | Perform semantic/vector search on team entries using AI embeddings. Requires TEAM_DB_PATH. |
|
|
193
|
-
| `team_get_vector_index_stats` | Get statistics about the team vector search index (item count, model, dimensions). Requires TEAM_DB_PATH. |
|
|
194
|
-
| `team_rebuild_vector_index` | Rebuild the team semantic search vector index from all existing team entries. Requires TEAM_DB_PATH. |
|
|
195
|
-
| `team_add_to_vector_index` | Add a specific team entry to the semantic search vector index. Requires TEAM_DB_PATH. |
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## ⚙️ Tool Filtering
|
|
200
|
-
|
|
201
|
-
Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `--tool-filter`):
|
|
202
|
-
|
|
203
|
-
| Filter | Tools | Use Case |
|
|
204
|
-
| -------------------- | ----- | ------------------------ |
|
|
205
|
-
| `full` | 61 | All tools (default) |
|
|
206
|
-
| `starter` | ~11 | Core + search + codemode |
|
|
207
|
-
| `essential` | ~7 | Minimal footprint |
|
|
208
|
-
| `readonly` | ~15 | Disable all mutations |
|
|
209
|
-
| `-github` | 45 | Exclude a group |
|
|
210
|
-
| `-github,-analytics` | 43 | Exclude multiple groups |
|
|
211
|
-
|
|
212
|
-
**Filter Syntax:** `shortcut` or `group` or `tool_name` (whitelist mode) · `-group` (disable group) · `-tool` (disable tool) · `+tool` (re-enable after group disable)
|
|
213
|
-
|
|
214
|
-
**Custom Selection:** List individual tool names to create your own whitelist: `--tool-filter "create_entry,search_entries,semantic_search"`
|
|
215
|
-
|
|
216
|
-
**Groups:** `core`, `search`, `analytics`, `relationships`, `export`, `admin`, `github`, `backup`, `team`, `codemode`
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## 🌟 Recommended: Code Mode (Maximum Token Savings)
|
|
221
|
-
|
|
222
|
-
Code Mode (`mj_execute_code`) dramatically reduces token usage (70–90%) and is included by default in all presets.
|
|
223
|
-
|
|
224
|
-
Code executes in a **sandboxed VM context** with:
|
|
225
|
-
|
|
226
|
-
- **Static code validation** — blocked patterns include `require()`, `process`, `eval()`, and filesystem access
|
|
227
|
-
- **Rate limiting** — 60 executions per minute per client
|
|
228
|
-
- **Hard timeouts** — configurable execution limit (default 30s)
|
|
229
|
-
- **Full API access** — all 10 tool groups available via `mj.*`
|
|
230
|
-
|
|
231
|
-
**API Groups:** `mj.core.*`, `mj.search.*`, `mj.analytics.*`, `mj.relationships.*`, `mj.export.*`, `mj.admin.*`, `mj.github.*`, `mj.backup.*`, `mj.team.*`
|
package/tests/README.md
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Memory Journal MCP - Vitest Suite (Unit/Integration)
|
|
2
|
-
|
|
3
|
-
> **⚠️ AI AGENT INSTRUCTIONS:** Read these rules before creating, modifying, or running tests in this directory.
|
|
4
|
-
|
|
5
|
-
## 📌 Framework & Purpose
|
|
6
|
-
|
|
7
|
-
- **Framework:** Vitest (`vitest.config.ts`)
|
|
8
|
-
- **Execution Environment:** Node.js
|
|
9
|
-
- **Purpose:** Fast, isolated unit testing and database/handler integration testing.
|
|
10
|
-
- **Not for:** Core HTTP transport/SSE protocol testing (see `tests/e2e/README.md`).
|
|
11
|
-
|
|
12
|
-
## 🚨 AI Agent Testing Rules
|
|
13
|
-
|
|
14
|
-
### 1. Meaningful Tests ONLY
|
|
15
|
-
|
|
16
|
-
- **DO NOT** write tests just to boost coverage metrics.
|
|
17
|
-
- Focus on testing logic boundaries, error handling, input validation, and expected success paths.
|
|
18
|
-
- We require high-quality, meaningful assertions. Never use `expect(true).toBe(true)` or `continue-on-error` patterns.
|
|
19
|
-
|
|
20
|
-
### 2. Execution Protocol
|
|
21
|
-
|
|
22
|
-
- **Targeted Runs:** NEVER run the entire test suite when working on a specific file. Run targeted tests to save time and token context.
|
|
23
|
-
- ✅ `npx vitest run path/to/file.test.ts`
|
|
24
|
-
- ❌ `npx vitest` (Unless explicitly asked for a full suite run)
|
|
25
|
-
- **Output Limits:** When running tests via standard terminal commands, use `OutputCharacterCount: ≥10000` to ensure you see the summary line.
|
|
26
|
-
- **Assertion:** Never assume a test passed if the output is truncated. You MUST verify the final summary line (`✓ 1 passed`).
|
|
27
|
-
|
|
28
|
-
### 3. File Naming & Structure
|
|
29
|
-
|
|
30
|
-
- Test files must mirror the source directory structure.
|
|
31
|
-
- Naming convention: `<source-filename>.test.ts` (e.g., `src/foo/bar.ts` → `tests/foo/bar.test.ts`).
|
|
32
|
-
- **Never** use PascalCase or camelCase. Use `kebab-case`.
|
|
33
|
-
|
|
34
|
-
### 4. Error Assertions (Structured Errors)
|
|
35
|
-
|
|
36
|
-
- The Memory Journal MCP server uses a strict **Structured Error Pattern**. Tools NEVER throw raw exceptions to the client. They return:
|
|
37
|
-
`{ success: false, error: '...', code: '...', category: '...', suggestion: '...' }`.
|
|
38
|
-
- When testing tool handlers, **assert the structured response**, do not expect the tool to `.toThrow()`.
|
|
39
|
-
|
|
40
|
-
## 📂 Directory Structure Reference
|
|
41
|
-
|
|
42
|
-
| Directory | Tests What |
|
|
43
|
-
| ------------- | --------------------------------------------------------------- |
|
|
44
|
-
| `auth/` | OAuth 2.1 middleware, token validation, scopes |
|
|
45
|
-
| `codemode/` | Sandbox security, API bridge, worker lifecycle |
|
|
46
|
-
| `database/` | SQLite adapter, entry CRUD, search, tags, backup |
|
|
47
|
-
| `handlers/` | Tool handlers, resource handlers, prompt handlers (Integration) |
|
|
48
|
-
| `security/` | Input validation, SQL injection, path traversal |
|
|
49
|
-
| `transports/` | HTTP transport, rate limiting, session behavior |
|
|
50
|
-
| `vector/` | Vector search manager, semantic embedding logic |
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
_For a complete code map and directory breakdown, see `test-server/code-map.md`._
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* memory-journal-mcp — Auth Context Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests for AsyncLocalStorage-based per-request auth context.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { describe, it, expect, vi, afterEach } from 'vitest'
|
|
8
|
-
import {
|
|
9
|
-
getAuthContext,
|
|
10
|
-
setAuthContext,
|
|
11
|
-
withAuthContext,
|
|
12
|
-
isAuthenticated,
|
|
13
|
-
getAuthenticatedScopes,
|
|
14
|
-
} from '../../src/auth/auth-context.js'
|
|
15
|
-
|
|
16
|
-
describe('auth-context', () => {
|
|
17
|
-
afterEach(() => {
|
|
18
|
-
vi.restoreAllMocks()
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
describe('getAuthContext', () => {
|
|
22
|
-
it('should return undefined when no context is set', () => {
|
|
23
|
-
// Outside of any AsyncLocalStorage run, should be undefined
|
|
24
|
-
const ctx = getAuthContext()
|
|
25
|
-
expect(ctx).toBeUndefined()
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
describe('withAuthContext', () => {
|
|
30
|
-
it('should run callback with context', () => {
|
|
31
|
-
const context = {
|
|
32
|
-
authenticated: true as const,
|
|
33
|
-
claims: {
|
|
34
|
-
sub: 'user-1',
|
|
35
|
-
scopes: ['read', 'write'],
|
|
36
|
-
exp: Math.floor(Date.now() / 1000) + 3600,
|
|
37
|
-
iat: Math.floor(Date.now() / 1000),
|
|
38
|
-
},
|
|
39
|
-
token: 'test-token',
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const result = withAuthContext(context, () => {
|
|
43
|
-
const ctx = getAuthContext()
|
|
44
|
-
return ctx?.claims?.sub
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
expect(result).toBe('user-1')
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
it('should isolate context between calls', () => {
|
|
51
|
-
const context1 = {
|
|
52
|
-
authenticated: true as const,
|
|
53
|
-
claims: {
|
|
54
|
-
sub: 'user-1',
|
|
55
|
-
scopes: ['read'],
|
|
56
|
-
exp: 0,
|
|
57
|
-
iat: 0,
|
|
58
|
-
},
|
|
59
|
-
token: 'token-1',
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const context2 = {
|
|
63
|
-
authenticated: true as const,
|
|
64
|
-
claims: {
|
|
65
|
-
sub: 'user-2',
|
|
66
|
-
scopes: ['admin'],
|
|
67
|
-
exp: 0,
|
|
68
|
-
iat: 0,
|
|
69
|
-
},
|
|
70
|
-
token: 'token-2',
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
withAuthContext(context1, () => {
|
|
74
|
-
const ctx1 = getAuthContext()
|
|
75
|
-
expect(ctx1?.claims?.sub).toBe('user-1')
|
|
76
|
-
|
|
77
|
-
// Nested context should override
|
|
78
|
-
withAuthContext(context2, () => {
|
|
79
|
-
const ctx2 = getAuthContext()
|
|
80
|
-
expect(ctx2?.claims?.sub).toBe('user-2')
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
// Back to original context
|
|
84
|
-
const ctxAfter = getAuthContext()
|
|
85
|
-
expect(ctxAfter?.claims?.sub).toBe('user-1')
|
|
86
|
-
})
|
|
87
|
-
})
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
describe('setAuthContext', () => {
|
|
91
|
-
it('should set and return context', () => {
|
|
92
|
-
const context = {
|
|
93
|
-
authenticated: true as const,
|
|
94
|
-
claims: {
|
|
95
|
-
sub: 'user-1',
|
|
96
|
-
scopes: ['read'],
|
|
97
|
-
exp: 0,
|
|
98
|
-
iat: 0,
|
|
99
|
-
},
|
|
100
|
-
token: 'test-token',
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// setAuthContext sets the context for checking later
|
|
104
|
-
// This function uses enterWith which replaces the current store
|
|
105
|
-
setAuthContext(context)
|
|
106
|
-
|
|
107
|
-
const ctx = getAuthContext()
|
|
108
|
-
expect(ctx?.authenticated).toBe(true)
|
|
109
|
-
expect(ctx?.claims?.sub).toBe('user-1')
|
|
110
|
-
})
|
|
111
|
-
})
|
|
112
|
-
|
|
113
|
-
describe('isAuthenticated', () => {
|
|
114
|
-
it('should return false when no context', () => {
|
|
115
|
-
expect(isAuthenticated()).toBe(false)
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
it('should return true when authenticated context is set', () => {
|
|
119
|
-
const context = {
|
|
120
|
-
authenticated: true as const,
|
|
121
|
-
claims: {
|
|
122
|
-
sub: 'user-1',
|
|
123
|
-
scopes: ['read'],
|
|
124
|
-
exp: 0,
|
|
125
|
-
iat: 0,
|
|
126
|
-
},
|
|
127
|
-
token: 'test-token',
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
const result = withAuthContext(context, () => {
|
|
131
|
-
return isAuthenticated()
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
expect(result).toBe(true)
|
|
135
|
-
})
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
describe('getAuthenticatedScopes', () => {
|
|
139
|
-
it('should return empty array when no context', () => {
|
|
140
|
-
expect(getAuthenticatedScopes()).toEqual([])
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
it('should return scopes from authenticated context', () => {
|
|
144
|
-
const context = {
|
|
145
|
-
authenticated: true as const,
|
|
146
|
-
claims: {
|
|
147
|
-
sub: 'user-1',
|
|
148
|
-
scopes: ['read', 'write'],
|
|
149
|
-
exp: 0,
|
|
150
|
-
iat: 0,
|
|
151
|
-
},
|
|
152
|
-
token: 'test-token',
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const result = withAuthContext(context, () => {
|
|
156
|
-
return getAuthenticatedScopes()
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
expect(result).toEqual(['read', 'write'])
|
|
160
|
-
})
|
|
161
|
-
})
|
|
162
|
-
})
|