@hybridaione/hybridclaw 0.9.1 → 0.9.2
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 +73 -27
- package/community-skills/datalion/SKILL.md +165 -18
- package/community-skills/datalion/references/setup-and-capabilities.md +222 -13
- package/community-skills/meme-generation/SKILL.md +164 -0
- package/community-skills/meme-generation/scripts/generate_meme.py +838 -0
- package/community-skills/meme-generation/scripts/templates.json +280 -0
- package/container/dist/extensions.js +12 -0
- package/container/dist/extensions.js.map +1 -1
- package/container/dist/tools/search-tools.js +694 -0
- package/container/dist/tools/search-tools.js.map +1 -0
- package/container/dist/tools.js +14 -138
- package/container/dist/tools.js.map +1 -1
- package/container/package-lock.json +2 -2
- package/container/package.json +1 -1
- package/container/src/extensions.ts +15 -0
- package/container/src/tools/search-tools.ts +869 -0
- package/container/src/tools.ts +14 -149
- package/container/src/types.ts +38 -39
- package/dist/agent/agent.d.ts +1 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/conversation.d.ts +1 -1
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/executor-types.d.ts +4 -1
- package/dist/agent/executor-types.d.ts.map +1 -1
- package/dist/agent/prompt-hooks.d.ts.map +1 -1
- package/dist/agent/prompt-hooks.js +1 -0
- package/dist/agent/prompt-hooks.js.map +1 -1
- package/dist/agent/side-effects.d.ts +2 -1
- package/dist/agent/side-effects.d.ts.map +1 -1
- package/dist/agent/side-effects.js.map +1 -1
- package/dist/agents/agent-registry.d.ts +1 -1
- package/dist/agents/agent-registry.d.ts.map +1 -1
- package/dist/agents/claw-archive.d.ts +1 -0
- package/dist/agents/claw-archive.d.ts.map +1 -1
- package/dist/agents/claw-archive.js +2 -1
- package/dist/agents/claw-archive.js.map +1 -1
- package/dist/audit/audit-events.d.ts +1 -1
- package/dist/audit/audit-events.d.ts.map +1 -1
- package/dist/channels/discord/attachments.d.ts +1 -1
- package/dist/channels/discord/attachments.d.ts.map +1 -1
- package/dist/channels/discord/delivery.d.ts +1 -1
- package/dist/channels/discord/delivery.d.ts.map +1 -1
- package/dist/channels/discord/runtime.d.ts +1 -1
- package/dist/channels/discord/runtime.d.ts.map +1 -1
- package/dist/channels/email/inbound.d.ts +1 -1
- package/dist/channels/email/inbound.d.ts.map +1 -1
- package/dist/channels/email/runtime.d.ts +1 -1
- package/dist/channels/email/runtime.d.ts.map +1 -1
- package/dist/channels/msteams/attachments.d.ts +2 -1
- package/dist/channels/msteams/attachments.d.ts.map +1 -1
- package/dist/channels/msteams/attachments.js.map +1 -1
- package/dist/channels/msteams/runtime.d.ts +1 -1
- package/dist/channels/msteams/runtime.d.ts.map +1 -1
- package/dist/channels/whatsapp/connection.d.ts.map +1 -1
- package/dist/channels/whatsapp/connection.js +37 -10
- package/dist/channels/whatsapp/connection.js.map +1 -1
- package/dist/channels/whatsapp/debounce.d.ts +2 -1
- package/dist/channels/whatsapp/debounce.d.ts.map +1 -1
- package/dist/channels/whatsapp/debounce.js.map +1 -1
- package/dist/channels/whatsapp/delivery.d.ts +7 -2
- package/dist/channels/whatsapp/delivery.d.ts.map +1 -1
- package/dist/channels/whatsapp/delivery.js +9 -0
- package/dist/channels/whatsapp/delivery.js.map +1 -1
- package/dist/channels/whatsapp/inbound.d.ts +1 -1
- package/dist/channels/whatsapp/inbound.d.ts.map +1 -1
- package/dist/channels/whatsapp/inbound.js +13 -1
- package/dist/channels/whatsapp/inbound.js.map +1 -1
- package/dist/channels/whatsapp/runtime.d.ts +1 -1
- package/dist/channels/whatsapp/runtime.d.ts.map +1 -1
- package/dist/channels/whatsapp/runtime.js +52 -3
- package/dist/channels/whatsapp/runtime.js.map +1 -1
- package/dist/cli/agent-command.d.ts.map +1 -1
- package/dist/cli/agent-command.js +10 -0
- package/dist/cli/agent-command.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +3 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/skill-command.d.ts.map +1 -1
- package/dist/cli/skill-command.js +30 -25
- package/dist/cli/skill-command.js.map +1 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +48 -1
- package/dist/command-registry.js.map +1 -1
- package/dist/config/runtime-config.d.ts +1 -1
- package/dist/config/runtime-config.d.ts.map +1 -1
- package/dist/gateway/fullauto.d.ts +2 -1
- package/dist/gateway/fullauto.d.ts.map +1 -1
- package/dist/gateway/gateway-agent-cards.d.ts +1 -1
- package/dist/gateway/gateway-agent-cards.d.ts.map +1 -1
- package/dist/gateway/gateway-agent-cards.js.map +1 -1
- package/dist/gateway/gateway-http-server.d.ts.map +1 -1
- package/dist/gateway/gateway-http-server.js +69 -2
- package/dist/gateway/gateway-http-server.js.map +1 -1
- package/dist/gateway/gateway-service.d.ts +4 -2
- package/dist/gateway/gateway-service.d.ts.map +1 -1
- package/dist/gateway/gateway-service.js +138 -45
- package/dist/gateway/gateway-service.js.map +1 -1
- package/dist/gateway/gateway-types.d.ts +29 -1
- package/dist/gateway/gateway-types.d.ts.map +1 -1
- package/dist/gateway/gateway-types.js.map +1 -1
- package/dist/gateway/gateway-utils.d.ts +1 -1
- package/dist/gateway/gateway-utils.d.ts.map +1 -1
- package/dist/gateway/gateway.js +87 -69
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/show-mode.d.ts +1 -1
- package/dist/gateway/show-mode.d.ts.map +1 -1
- package/dist/gateway/text-channel-commands.d.ts +1 -1
- package/dist/gateway/text-channel-commands.d.ts.map +1 -1
- package/dist/infra/container-runner.d.ts +1 -1
- package/dist/infra/container-runner.d.ts.map +1 -1
- package/dist/infra/container-runner.js +9 -9
- package/dist/infra/container-runner.js.map +1 -1
- package/dist/infra/host-runner.d.ts +1 -1
- package/dist/infra/host-runner.d.ts.map +1 -1
- package/dist/infra/host-runner.js +37 -1
- package/dist/infra/host-runner.js.map +1 -1
- package/dist/infra/ipc.d.ts +1 -1
- package/dist/infra/ipc.d.ts.map +1 -1
- package/dist/infra/ipc.js +1 -1
- package/dist/infra/ipc.js.map +1 -1
- package/dist/infra/worker-signature.d.ts +1 -1
- package/dist/infra/worker-signature.d.ts.map +1 -1
- package/dist/infra/worker-signature.js +1 -1
- package/dist/infra/worker-signature.js.map +1 -1
- package/dist/media/audio-transcription.d.ts +1 -1
- package/dist/media/audio-transcription.d.ts.map +1 -1
- package/dist/media/pdf-context.d.ts +2 -1
- package/dist/media/pdf-context.d.ts.map +1 -1
- package/dist/memory/citation-extractor.d.ts +1 -1
- package/dist/memory/citation-extractor.d.ts.map +1 -1
- package/dist/memory/compaction-archive.d.ts +2 -1
- package/dist/memory/compaction-archive.d.ts.map +1 -1
- package/dist/memory/compaction-archive.js.map +1 -1
- package/dist/memory/compaction.d.ts +2 -1
- package/dist/memory/compaction.d.ts.map +1 -1
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/db.d.ts +10 -2
- package/dist/memory/db.d.ts.map +1 -1
- package/dist/memory/db.js +565 -415
- package/dist/memory/db.js.map +1 -1
- package/dist/memory/memory-service.d.ts +13 -2
- package/dist/memory/memory-service.d.ts.map +1 -1
- package/dist/memory/memory-service.js +24 -4
- package/dist/memory/memory-service.js.map +1 -1
- package/dist/plugins/plugin-manager.d.ts +1 -1
- package/dist/plugins/plugin-manager.d.ts.map +1 -1
- package/dist/plugins/plugin-sdk.d.ts +1 -1
- package/dist/plugins/plugin-sdk.d.ts.map +1 -1
- package/dist/plugins/plugin-types.d.ts +1 -1
- package/dist/plugins/plugin-types.d.ts.map +1 -1
- package/dist/providers/auxiliary.d.ts +1 -1
- package/dist/providers/auxiliary.d.ts.map +1 -1
- package/dist/providers/hybridai-bots.d.ts +1 -1
- package/dist/providers/hybridai-bots.d.ts.map +1 -1
- package/dist/providers/task-routing.d.ts +1 -1
- package/dist/providers/task-routing.d.ts.map +1 -1
- package/dist/providers/task-routing.js +1 -1
- package/dist/providers/task-routing.js.map +1 -1
- package/dist/scheduler/model-usage.d.ts +2 -1
- package/dist/scheduler/model-usage.d.ts.map +1 -1
- package/dist/scheduler/model-usage.js.map +1 -1
- package/dist/scheduler/scheduler.d.ts +1 -1
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/security/mount-config.d.ts +1 -1
- package/dist/security/mount-config.d.ts.map +1 -1
- package/dist/security/mount-security.d.ts +1 -1
- package/dist/security/mount-security.d.ts.map +1 -1
- package/dist/security/mount-security.js.map +1 -1
- package/dist/session/session-export.d.ts +1 -1
- package/dist/session/session-export.d.ts.map +1 -1
- package/dist/session/session-maintenance.d.ts +1 -1
- package/dist/session/session-maintenance.d.ts.map +1 -1
- package/dist/session/session-maintenance.js.map +1 -1
- package/dist/session/token-efficiency.d.ts +1 -1
- package/dist/session/token-efficiency.d.ts.map +1 -1
- package/dist/skills/skill-import-args.d.ts +12 -0
- package/dist/skills/skill-import-args.d.ts.map +1 -0
- package/dist/skills/skill-import-args.js +38 -0
- package/dist/skills/skill-import-args.js.map +1 -0
- package/dist/skills/skill-import-warnings.d.ts +3 -0
- package/dist/skills/skill-import-warnings.d.ts.map +1 -0
- package/dist/skills/skill-import-warnings.js +15 -0
- package/dist/skills/skill-import-warnings.js.map +1 -0
- package/dist/skills/skills-import.d.ts +2 -0
- package/dist/skills/skills-import.d.ts.map +1 -1
- package/dist/skills/skills-import.js +29 -17
- package/dist/skills/skills-import.js.map +1 -1
- package/dist/skills/skills-observation.d.ts +1 -1
- package/dist/skills/skills-observation.d.ts.map +1 -1
- package/dist/skills/skills.d.ts +1 -1
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +7 -2
- package/dist/skills/skills.js.map +1 -1
- package/dist/tui-banner.js +1 -1
- package/dist/tui-banner.js.map +1 -1
- package/dist/tui-slash-command.d.ts.map +1 -1
- package/dist/tui-slash-command.js +1 -0
- package/dist/tui-slash-command.js.map +1 -1
- package/dist/tui-slash-menu.d.ts.map +1 -1
- package/dist/tui-slash-menu.js +5 -8
- package/dist/tui-slash-menu.js.map +1 -1
- package/dist/tui.js +2 -2
- package/dist/tui.js.map +1 -1
- package/dist/types/api.d.ts +33 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +2 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/audit.d.ts +34 -0
- package/dist/types/audit.d.ts.map +1 -0
- package/dist/types/audit.js +2 -0
- package/dist/types/audit.js.map +1 -0
- package/dist/types/container.d.ts +72 -0
- package/dist/types/container.d.ts.map +1 -0
- package/dist/types/container.js +2 -0
- package/dist/types/container.js.map +1 -0
- package/dist/types/execution.d.ts +61 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/execution.js +2 -0
- package/dist/types/execution.js.map +1 -0
- package/dist/types/hybridai.d.ts +7 -0
- package/dist/types/hybridai.d.ts.map +1 -0
- package/dist/types/hybridai.js +2 -0
- package/dist/types/hybridai.js.map +1 -0
- package/dist/types/knowledge.d.ts +58 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/{types.js → types/knowledge.js} +1 -11
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/memory.d.ts +69 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +2 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/models.d.ts +37 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/models.js +10 -0
- package/dist/types/models.js.map +1 -0
- package/dist/types/scheduler.d.ts +25 -0
- package/dist/types/scheduler.d.ts.map +1 -0
- package/dist/types/scheduler.js +2 -0
- package/dist/types/scheduler.js.map +1 -0
- package/dist/types/security.d.ts +15 -0
- package/dist/types/security.d.ts.map +1 -0
- package/dist/types/security.js +2 -0
- package/dist/types/security.js.map +1 -0
- package/dist/types/session.d.ts +82 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +2 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/side-effects.d.ts +25 -0
- package/dist/types/side-effects.d.ts.map +1 -0
- package/dist/types/side-effects.js +2 -0
- package/dist/types/side-effects.js.map +1 -0
- package/dist/types/usage.d.ts +59 -0
- package/dist/types/usage.d.ts.map +1 -0
- package/dist/types/usage.js +2 -0
- package/dist/types/usage.js.map +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/chat.html +807 -60
- package/docs/development/README.md +16 -0
- package/docs/development/extensibility/README.md +3 -3
- package/docs/development/extensibility/agent-packages.md +1 -1
- package/docs/development/extensibility/skills.md +1 -0
- package/docs/development/reference/commands.md +3 -3
- package/docs/index.html +35 -1
- package/docs/static/development-docs.css +379 -222
- package/docs/static/development-docs.js +311 -61
- package/package.json +2 -2
- package/dist/types.d.ts +0 -538
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,43 +2,89 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.2](https://github.com/HybridAIOne/hybridclaw/tree/v0.9.2)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Skill sync and packaged Datalion workflow**: Added `skill sync`, updated
|
|
10
|
+
TUI help/commands, shared import-argument parsing, and the repo-shipped
|
|
11
|
+
Datalion community skill with bundled setup/capabilities docs.
|
|
12
|
+
- **Meme generation community skill**: Added a packaged meme-generation skill
|
|
13
|
+
with reusable scripts, template data, and cached output reuse for community
|
|
14
|
+
image workflows.
|
|
15
|
+
- **Workspace search hardening**: Added stricter workspace `glob` and `grep`
|
|
16
|
+
handling in the container runtime for safer repository searches.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Web chat branching and history flow**: Improved web chat controls,
|
|
21
|
+
branch-aware history routing, paging persistence, and related stdin/history
|
|
22
|
+
handling so browser sessions behave more predictably.
|
|
23
|
+
- **Shared type and search-tool internals**: Split the old shared type barrel
|
|
24
|
+
into focused modules and moved container search logic into a dedicated
|
|
25
|
+
`search-tools` module.
|
|
26
|
+
- **Skill import UX cleanup**: Centralized import warning text, shared the
|
|
27
|
+
skill-import argument parser, removed sync/skip-scan quick entries from
|
|
28
|
+
menus, and simplified optional import-result guard fields.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **WhatsApp restart and ack recovery**: Reduced restart replay failures,
|
|
33
|
+
captured and cleared ack reactions more reliably, dropped timestampless
|
|
34
|
+
append-history writes, and hardened reconnect handling.
|
|
35
|
+
- **TUI history-arrow behavior**: Restored arrow-key prompt history when the
|
|
36
|
+
slash menu has no matches while keeping those keys reserved for history
|
|
37
|
+
navigation.
|
|
38
|
+
- **Agent skill overwrite protection**: `agent install` now requires
|
|
39
|
+
`--force` before overwriting imported skills instead of silently replacing
|
|
40
|
+
existing content.
|
|
41
|
+
- **Static docs publishing and QMD paging stability**: Synced the static docs
|
|
42
|
+
shell with the gateway renderer, added `.nojekyll` for GitHub Pages, and
|
|
43
|
+
persisted branch paging state while quieting QMD timeout noise.
|
|
44
|
+
- **Meme skill runtime hardening**: Tightened meme fetch error handling,
|
|
45
|
+
file-path validation, and cache reuse so the packaged skill is safer and
|
|
46
|
+
cheaper to run repeatedly.
|
|
47
|
+
|
|
5
48
|
## [0.9.1](https://github.com/HybridAIOne/hybridclaw/tree/v0.9.1)
|
|
6
49
|
|
|
7
50
|
### Added
|
|
8
51
|
|
|
9
|
-
- **
|
|
10
|
-
`@
|
|
11
|
-
context
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- **Browsable development docs shell**: Added the built-in `/development` docs
|
|
20
|
-
browser with raw-markdown and copy-as-markdown actions for repo-shipped
|
|
21
|
-
docs.
|
|
52
|
+
- **Inline prompt context references**: Added `@file:`, `@folder:`, `@diff`,
|
|
53
|
+
`@staged`, `@git:<count>`, and `@url:` so prompts can pull repository or web
|
|
54
|
+
context directly.
|
|
55
|
+
- **Current-turn web chat and TUI attachments**: Added upload/paste support
|
|
56
|
+
for files and clipboard media in the built-in chat UI and TUI, including
|
|
57
|
+
uploaded-media summaries for supported content.
|
|
58
|
+
- **Community skill imports and docs browser**: Added `hybridclaw skill import`
|
|
59
|
+
and `skill learn`, packaged and hub-backed skill sources, manifest-declared
|
|
60
|
+
skill imports during `.claw` install, and the built-in `/development` docs
|
|
61
|
+
browser with raw-markdown views.
|
|
22
62
|
|
|
23
63
|
### Changed
|
|
24
64
|
|
|
25
|
-
- **
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
65
|
+
- **Gateway/provider health probing**: Status endpoints now use TTL-cached
|
|
66
|
+
on-demand probes for HybridAI and local backends instead of background
|
|
67
|
+
polling loops, with async status flow and better probe-site error handling.
|
|
68
|
+
- **CLI command structure**: Split the large CLI handlers into focused command
|
|
69
|
+
modules with shared lazy-loader and flag-parsing helpers.
|
|
70
|
+
- **Skill import source coverage**: Community imports expanded from packaged
|
|
71
|
+
sources into hub-backed and GitHub-backed skill sources, with web docs
|
|
72
|
+
navigation updated to expose the new workflows.
|
|
32
73
|
|
|
33
74
|
### Fixed
|
|
34
75
|
|
|
35
|
-
- **HybridAI base-url reachability reporting**:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- **Uploaded media
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
76
|
+
- **HybridAI base-url reachability reporting**: `/api/status` and operator
|
|
77
|
+
hints now honor `HYBRIDAI_BASE_URL` consistently and probe actual backend
|
|
78
|
+
reachability instead of assuming credentials imply connectivity.
|
|
79
|
+
- **Uploaded media hardening**: Tightened cache-dir resolution, path
|
|
80
|
+
validation, MIME filtering, per-auth upload quotas, and filename handling
|
|
81
|
+
for web chat and TUI attachments.
|
|
82
|
+
- **Context-reference safety and command preservation**: Blocked symlink
|
|
83
|
+
escapes, URL redirects, and unbounded URL fetches for attached prompt
|
|
84
|
+
context while preserving skill invocations with injected context.
|
|
85
|
+
- **CLI install output for imported skills**: `agent install` now tolerates
|
|
86
|
+
missing imported skills in the CLI summary instead of failing the output
|
|
87
|
+
path.
|
|
42
88
|
|
|
43
89
|
## [0.9.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.9.0)
|
|
44
90
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: datalion
|
|
3
|
-
description: Use this skill when the user wants DataLion workflows such as creating
|
|
3
|
+
description: Use this skill when the user wants DataLion workflows such as listing, reading, creating, or editing projects, inspecting data sources, importing Excel or CSV data, working with reports and report tabs and codebooks, reading chart tables, or coordinating dashboard and export work through a configured datalion MCP server and related API or UI paths.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
6
|
hybridclaw:
|
|
@@ -17,8 +17,11 @@ metadata:
|
|
|
17
17
|
|
|
18
18
|
# DataLion
|
|
19
19
|
|
|
20
|
-
Use this skill for DataLion project,
|
|
21
|
-
dashboard, and export workflows.
|
|
20
|
+
Use this skill for DataLion project, project-settings, data-import, codebook,
|
|
21
|
+
chart-table, report, report-tab, dashboard, and export workflows.
|
|
22
|
+
|
|
23
|
+
In DataLion, "tab" and "dashboard" are used interchangeably for the report
|
|
24
|
+
subpages managed under a report.
|
|
22
25
|
|
|
23
26
|
## Default Strategy
|
|
24
27
|
|
|
@@ -34,12 +37,17 @@ dashboard, and export workflows.
|
|
|
34
37
|
## Setup
|
|
35
38
|
|
|
36
39
|
- Run HybridClaw in host sandbox mode for this local Node-based MCP server.
|
|
40
|
+
- Install the bridge dependencies before first use:
|
|
41
|
+
`npm --prefix <path-to-your-datalion-repo>/mcp install`
|
|
37
42
|
- Keep `DATALION_API_TOKEN` inside MCP server config `env`, never in tracked
|
|
38
43
|
files or chat.
|
|
39
44
|
- Use the MCP server name `datalion` so tools appear as `datalion__...`.
|
|
45
|
+
- For `hybridclaw gateway mcp add ...`, pass the JSON config as one quoted
|
|
46
|
+
shell argument. In `zsh`, unquoted `{...}` and `[...]` will be expanded
|
|
47
|
+
before HybridClaw sees them.
|
|
40
48
|
- See
|
|
41
49
|
[references/setup-and-capabilities.md](references/setup-and-capabilities.md)
|
|
42
|
-
for
|
|
50
|
+
for ready-to-paste CLI and TUI examples, dependency notes, and ability
|
|
43
51
|
requirements.
|
|
44
52
|
|
|
45
53
|
## Working Rules
|
|
@@ -47,19 +55,47 @@ dashboard, and export workflows.
|
|
|
47
55
|
- Always state whether you are using MCP, REST API, or browser/UI automation.
|
|
48
56
|
- Resolve the exact project, report, dashboard, export, or chart before
|
|
49
57
|
mutating anything.
|
|
50
|
-
- The current bridge directly supports
|
|
51
|
-
|
|
58
|
+
- The current bridge directly supports project listing, project reads, project
|
|
59
|
+
creation, project settings updates, data source listing, CSV upload, full
|
|
60
|
+
Excel/CSV import, report list/create and tab CRUD, chart-table reads, and
|
|
61
|
+
codebook list, download, generation, deletion, and upload.
|
|
62
|
+
- The bridge also exposes 4 browser URL helpers for project/report/dashboard
|
|
63
|
+
opening and widget insertion.
|
|
64
|
+
- The current bridge tool surface has 22 tools total: 18 backend MCP actions
|
|
65
|
+
and 4 browser URL helpers.
|
|
66
|
+
- Prefer `datalion__list_projects` and `datalion__read_project` before writes
|
|
67
|
+
when the exact target project is not already pinned down.
|
|
52
68
|
- Treat `datalion__upload_data` as a data-import tool, not a generic
|
|
53
69
|
project-update tool.
|
|
54
|
-
-
|
|
55
|
-
|
|
70
|
+
- Treat `datalion__edit_project` as a `defsettings` merge tool. It updates only
|
|
71
|
+
the keys you pass and keeps the existing settings for all other keys.
|
|
72
|
+
- Use `datalion__list_data_sources` to inspect what is already loaded into a
|
|
73
|
+
project before uploading or troubleshooting data.
|
|
74
|
+
- Prefer `datalion__import_excel_data` when the source is an `.xlsx` workbook or
|
|
75
|
+
when you want Datalion's full import pipeline, including optional codebook
|
|
76
|
+
generation during import.
|
|
77
|
+
- Use `datalion__list_codebook` when the user needs a question-level inventory;
|
|
78
|
+
use `datalion__download_codebook` for the tree structure.
|
|
79
|
+
- For workbook imports, prefer an absolute `localPath` so the bridge can read
|
|
80
|
+
the file directly.
|
|
56
81
|
- For uploads, confirm filename, header and delimiter assumptions, data source
|
|
57
82
|
name if relevant, and whether existing rows should be truncated.
|
|
83
|
+
- For `import_excel_data`, confirm `projectId`, file path or base64 file
|
|
84
|
+
content, filename if you are not using `localPath`, whether you want the
|
|
85
|
+
default main data source (`useDefaultDataSource=true`) or a named data
|
|
86
|
+
source, and whether `replaceData`, `runCalculations`, `convertComma`,
|
|
87
|
+
`skipLines`, `comment`, and `createCodebook` should be enabled.
|
|
88
|
+
- For project settings edits, confirm the target `projectId` and the exact
|
|
89
|
+
`defsettings` keys and values before calling.
|
|
58
90
|
- For chart-table reads, confirm `projectId`, `chartId`, and any filter string
|
|
59
91
|
before calling.
|
|
60
|
-
- For
|
|
61
|
-
|
|
62
|
-
|
|
92
|
+
- For codebook uploads, confirm `projectId`, CSV filename, import mode, and
|
|
93
|
+
whether any explicit column mapping is needed. The current backend expects
|
|
94
|
+
`columnMapping` as an array aligned to the CSV header order.
|
|
95
|
+
- For reports, prefer direct MCP coverage first.
|
|
96
|
+
- For dashboard and export tasks without direct MCP coverage, inspect the local
|
|
97
|
+
Datalion repo and its OpenAPI or route definitions before choosing a fallback
|
|
98
|
+
path.
|
|
63
99
|
- Keep tokens, auth headers, and exported files out of logs unless the user
|
|
64
100
|
explicitly asks for them.
|
|
65
101
|
|
|
@@ -67,33 +103,123 @@ dashboard, and export workflows.
|
|
|
67
103
|
|
|
68
104
|
The current `datalion` bridge exposes these direct tools:
|
|
69
105
|
|
|
106
|
+
- `datalion__list_projects`
|
|
107
|
+
- `datalion__read_project`
|
|
70
108
|
- `datalion__create_project`
|
|
109
|
+
- `datalion__edit_project`
|
|
110
|
+
- `datalion__list_data_sources`
|
|
71
111
|
- `datalion__upload_data`
|
|
112
|
+
- `datalion__import_excel_data`
|
|
113
|
+
- `datalion__list_reports`
|
|
114
|
+
- `datalion__create_report`
|
|
115
|
+
- `datalion__create_report_tab`
|
|
116
|
+
- `datalion__edit_report_tab`
|
|
117
|
+
- `datalion__delete_report_tab`
|
|
118
|
+
- `datalion__open_project_browser`
|
|
119
|
+
- `datalion__open_report_browser`
|
|
120
|
+
- `datalion__open_dashboard_browser`
|
|
121
|
+
- `datalion__open_add_widget_browser`
|
|
72
122
|
- `datalion__get_chart_table`
|
|
123
|
+
- `datalion__list_codebook`
|
|
124
|
+
- `datalion__download_codebook`
|
|
125
|
+
- `datalion__generate_codebook`
|
|
126
|
+
- `datalion__delete_codebook`
|
|
127
|
+
- `datalion__upload_codebook`
|
|
73
128
|
|
|
74
129
|
That means:
|
|
75
130
|
|
|
131
|
+
- project discovery and project detail reads are supported directly
|
|
76
132
|
- project creation is supported directly
|
|
133
|
+
- project settings updates through `defsettings` merges are supported directly
|
|
134
|
+
- project data sources can be listed directly
|
|
77
135
|
- CSV-style data import into an existing project is supported directly
|
|
136
|
+
- workbook and full-pipeline Excel/CSV import are supported directly
|
|
137
|
+
- the full-pipeline import path uses DataLion's datasource service rather than
|
|
138
|
+
the raw CSV upload path, so it handles type detection, replace/append mode,
|
|
139
|
+
optional codebook generation, and optional calculations
|
|
140
|
+
- report listing and report creation are supported directly
|
|
78
141
|
- chart tables can be read directly
|
|
79
|
-
-
|
|
80
|
-
|
|
142
|
+
- codebooks can be listed, downloaded, generated, deleted, and uploaded
|
|
143
|
+
directly
|
|
144
|
+
- report editing beyond report-tab CRUD, dashboard editing, and export
|
|
145
|
+
generation require fallback API or UI paths until the bridge grows more tools
|
|
81
146
|
|
|
82
147
|
## Common Workflows
|
|
83
148
|
|
|
149
|
+
For explicit TUI testing, prefer `/skill datalion ...`.
|
|
150
|
+
|
|
151
|
+
- `/skill datalion create a project named "MCP Smoke Test"`
|
|
152
|
+
- plain natural-language prompts that mention DataLion also work
|
|
153
|
+
- `/datalion ...` may still be routed as a normal message, but it is not a
|
|
154
|
+
built-in slash-menu command, so do not use slash-menu visibility as the test
|
|
155
|
+
for whether the skill is installed
|
|
156
|
+
|
|
84
157
|
### Create a Project
|
|
85
158
|
|
|
86
|
-
1. Confirm the project name and any optional
|
|
159
|
+
1. Confirm the project name and any optional `identcode` or `defsettings`.
|
|
87
160
|
2. Call `datalion__create_project`.
|
|
88
161
|
3. Return the new project ID and recommend the next step, usually data import
|
|
89
162
|
or report/dashboard setup.
|
|
90
163
|
|
|
164
|
+
### Create a Report
|
|
165
|
+
|
|
166
|
+
1. Confirm the project ID and report name.
|
|
167
|
+
2. Call `datalion__create_report`.
|
|
168
|
+
3. Note that the report is seeded with a first tab and return both the report
|
|
169
|
+
ID and first tab ID.
|
|
170
|
+
|
|
171
|
+
### Manage Report Tabs
|
|
172
|
+
|
|
173
|
+
1. Call `datalion__create_report_tab` to add a tab to an existing report.
|
|
174
|
+
2. Call `datalion__edit_report_tab` to rename or update a tab.
|
|
175
|
+
3. Call `datalion__delete_report_tab` to remove a tab after confirming the
|
|
176
|
+
report and tab IDs.
|
|
177
|
+
4. Keep `projectId` aligned with the report or tab/dashboard you are mutating.
|
|
178
|
+
|
|
179
|
+
### Open In Browser
|
|
180
|
+
|
|
181
|
+
1. Use `datalion__open_project_browser` for the project screen.
|
|
182
|
+
2. Use `datalion__open_report_browser` for the report editor or a specific
|
|
183
|
+
report tab/dashboard.
|
|
184
|
+
3. Use `datalion__open_dashboard_browser` for a specific tab/dashboard view.
|
|
185
|
+
4. Use `datalion__open_add_widget_browser` to get the modal URL used to add a
|
|
186
|
+
question/widget to a tab/dashboard. The actual insertion still happens in
|
|
187
|
+
the browser UI after the modal is opened.
|
|
188
|
+
|
|
189
|
+
### Find or Read a Project
|
|
190
|
+
|
|
191
|
+
1. Call `datalion__list_projects` when the user gives a fuzzy project name or
|
|
192
|
+
identcode.
|
|
193
|
+
2. Call `datalion__read_project` once you know the `projectId`.
|
|
194
|
+
3. Use the returned `defsettings`, `categoriesCount`, and `dataSourcesCount` to
|
|
195
|
+
guide the next step.
|
|
196
|
+
|
|
197
|
+
### Edit Project Settings
|
|
198
|
+
|
|
199
|
+
1. Confirm `projectId` and the exact `defsettings` keys to merge.
|
|
200
|
+
2. Call `datalion__edit_project`.
|
|
201
|
+
3. Return the updated keys and note that untouched settings stay as they were.
|
|
202
|
+
|
|
91
203
|
### Upload Data
|
|
92
204
|
|
|
93
205
|
1. Confirm the target project ID.
|
|
94
|
-
2.
|
|
95
|
-
|
|
96
|
-
|
|
206
|
+
2. Call `datalion__list_data_sources` first if you need to inspect existing
|
|
207
|
+
data sources.
|
|
208
|
+
3. Prefer CSV text input for the current bridge.
|
|
209
|
+
4. Call `datalion__upload_data`.
|
|
210
|
+
5. Return the job ID and the import assumptions you used.
|
|
211
|
+
|
|
212
|
+
### Import Excel or CSV via Datalion Pipeline
|
|
213
|
+
|
|
214
|
+
1. Confirm `projectId` and the source file path or file content.
|
|
215
|
+
2. Prefer `localPath` for `.xlsx` imports when the file exists on disk.
|
|
216
|
+
3. Use `useDefaultDataSource=true` when you want the workbook imported into
|
|
217
|
+
the main project data table and codebook generation to read from that same
|
|
218
|
+
table. Otherwise confirm `dataSourceName`.
|
|
219
|
+
4. Confirm whether `createCodebook` should run during import.
|
|
220
|
+
5. Call `datalion__import_excel_data`.
|
|
221
|
+
6. Return the data source name, imported row count, and whether codebook
|
|
222
|
+
generation was requested.
|
|
97
223
|
|
|
98
224
|
### Read a Chart Table
|
|
99
225
|
|
|
@@ -101,7 +227,28 @@ That means:
|
|
|
101
227
|
2. Call `datalion__get_chart_table`.
|
|
102
228
|
3. Summarize the result and surface obvious caveats.
|
|
103
229
|
|
|
104
|
-
###
|
|
230
|
+
### Codebook Workflows
|
|
231
|
+
|
|
232
|
+
1. For question-level inspection, call `datalion__list_codebook`.
|
|
233
|
+
2. For tree-structured inspection, call `datalion__download_codebook`.
|
|
234
|
+
3. For regenerate-from-data workflows, call `datalion__generate_codebook`.
|
|
235
|
+
4. For destructive cleanup, call `datalion__delete_codebook` and confirm
|
|
236
|
+
whether `includeTextboxes` should be `true`.
|
|
237
|
+
5. For CSV import, call `datalion__upload_codebook` with the filename, file
|
|
238
|
+
content, import mode, and any index-based `columnMapping` array that should
|
|
239
|
+
align with the CSV header order.
|
|
240
|
+
|
|
241
|
+
### Reports
|
|
242
|
+
|
|
243
|
+
1. Call `datalion__list_reports` to inspect existing reports for a project.
|
|
244
|
+
2. Call `datalion__create_report` to create a new report once the target
|
|
245
|
+
project and report name are confirmed. The new report is seeded with a
|
|
246
|
+
first tab and the response includes both IDs.
|
|
247
|
+
3. Use the report-tab tools for tab-level create/edit/delete work.
|
|
248
|
+
4. Treat report edits beyond tab CRUD as fallback work until direct MCP
|
|
249
|
+
coverage exists.
|
|
250
|
+
|
|
251
|
+
### Dashboards and Exports
|
|
105
252
|
|
|
106
253
|
1. Check current `datalion__*` tool coverage first.
|
|
107
254
|
2. If no direct tool exists, inspect `openapi.yaml`, `routes/dashboard.php`, and
|
|
@@ -9,41 +9,231 @@ hybridclaw gateway start --foreground --sandbox=host
|
|
|
9
9
|
hybridclaw tui
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
Add the MCP server from the
|
|
12
|
+
Add the MCP server from the CLI with the JSON quoted as a single shell
|
|
13
|
+
argument:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
hybridclaw gateway mcp add datalion '{"transport":"stdio","command":"node","args":["/Users/bkoehler/src/datalion/mcp/mcp-bridge.js"],"env":{"DATALION_API_URL":"https://datalion.test/api/v1/mcp","DATALION_API_TOKEN":"replace-me","DATALION_IGNORE_SSL":"true"},"enabled":true}'
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
In `zsh`, do not leave the JSON unquoted or the shell will try to expand
|
|
20
|
+
`{...}` and `[...]` before `hybridclaw gateway` receives the config.
|
|
21
|
+
|
|
22
|
+
Add the same MCP server from the TUI with:
|
|
13
23
|
|
|
14
24
|
```text
|
|
15
|
-
/mcp add datalion {"transport":"stdio","command":"node","args":["/
|
|
25
|
+
/mcp add datalion {"transport":"stdio","command":"node","args":["/Users/bkoehler/src/datalion/mcp/mcp-bridge.js"],"env":{"DATALION_API_URL":"https://datalion.test/api/v1/mcp","DATALION_API_TOKEN":"replace-me","DATALION_IGNORE_SSL":"true"},"enabled":true}
|
|
16
26
|
```
|
|
17
27
|
|
|
18
|
-
Replace
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
Replace `replace-me` with a real token.
|
|
29
|
+
|
|
30
|
+
Do not use `~` inside `args`; MCP stdio commands do not run through a shell, so
|
|
31
|
+
tilde expansion will not happen. Use an absolute path like
|
|
32
|
+
`/Users/bkoehler/src/datalion/mcp/mcp-bridge.js`.
|
|
21
33
|
|
|
22
|
-
|
|
34
|
+
Install the bridge dependencies before first use:
|
|
23
35
|
|
|
24
36
|
```bash
|
|
25
|
-
npm --prefix /
|
|
37
|
+
npm --prefix /Users/bkoehler/src/datalion/mcp install
|
|
26
38
|
```
|
|
27
39
|
|
|
28
|
-
Verify with:
|
|
40
|
+
Verify the server registration with either:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
hybridclaw gateway mcp list
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
or:
|
|
29
47
|
|
|
30
48
|
```text
|
|
31
49
|
/mcp list
|
|
32
50
|
```
|
|
33
51
|
|
|
34
|
-
|
|
52
|
+
`mcp list` shows configured MCP servers, not the discovered tool names.
|
|
53
|
+
HybridClaw merges MCP tools into the active session tool list at runtime, so the
|
|
54
|
+
practical verification path is to run a prompt that should use the server and
|
|
55
|
+
then inspect the response or the Datalion bridge log.
|
|
56
|
+
|
|
57
|
+
In Datalion, "tab" and "dashboard" refer to the same report subpage entity.
|
|
58
|
+
|
|
59
|
+
When the server is healthy, the active tool names are typically:
|
|
35
60
|
|
|
61
|
+
- `datalion__list_projects`
|
|
62
|
+
- `datalion__read_project`
|
|
36
63
|
- `datalion__create_project`
|
|
64
|
+
- `datalion__edit_project`
|
|
65
|
+
- `datalion__list_data_sources`
|
|
37
66
|
- `datalion__upload_data`
|
|
67
|
+
- `datalion__import_excel_data`
|
|
68
|
+
- `datalion__list_reports`
|
|
69
|
+
- `datalion__create_report`
|
|
70
|
+
- `datalion__create_report_tab`
|
|
71
|
+
- `datalion__edit_report_tab`
|
|
72
|
+
- `datalion__delete_report_tab`
|
|
73
|
+
- `datalion__open_project_browser`
|
|
74
|
+
- `datalion__open_report_browser`
|
|
75
|
+
- `datalion__open_dashboard_browser`
|
|
76
|
+
- `datalion__open_add_widget_browser`
|
|
38
77
|
- `datalion__get_chart_table`
|
|
78
|
+
- `datalion__list_codebook`
|
|
79
|
+
- `datalion__download_codebook`
|
|
80
|
+
- `datalion__generate_codebook`
|
|
81
|
+
- `datalion__delete_codebook`
|
|
82
|
+
- `datalion__upload_codebook`
|
|
83
|
+
|
|
84
|
+
This is the current 22-tool bridge surface:
|
|
85
|
+
|
|
86
|
+
- `project.list`, `project.read`, `project.create`, `project.edit`
|
|
87
|
+
- `data.sources`, `data.upload`, `data.import.excel`
|
|
88
|
+
- `report.list`, `report.create`, `report.tab.create`, `report.tab.edit`,
|
|
89
|
+
`report.tab.delete`
|
|
90
|
+
- browser URL helpers:
|
|
91
|
+
- `open_project_browser`
|
|
92
|
+
- `open_report_browser`
|
|
93
|
+
- `open_dashboard_browser`
|
|
94
|
+
- `open_add_widget_browser`
|
|
95
|
+
- `chart.table`
|
|
96
|
+
- `codebook.list`, `codebook.download`, `codebook.generate`,
|
|
97
|
+
`codebook.delete`, `codebook.upload`
|
|
98
|
+
|
|
99
|
+
## Testing the Skill
|
|
100
|
+
|
|
101
|
+
For explicit TUI testing, use:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
/skill datalion create a new project named "MCP Smoke Test 2026-03-25"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
That is the safest explicit invocation path in HybridClaw sessions.
|
|
108
|
+
`/datalion ...` is not a built-in slash-menu entry, so it may not appear in
|
|
109
|
+
autocomplete even though the skill itself is installed.
|
|
110
|
+
|
|
111
|
+
## TUI Smoke Tests
|
|
112
|
+
|
|
113
|
+
Use these in the TUI after `/mcp reconnect datalion`:
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
/skill datalion list all projects
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
/skill datalion read project 123 and show its full details and defsettings
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
/skill datalion create a new project named "MCP Smoke Test 2026-03-25" with identcode "mcp-smoke-test-2026-03-25" and defsettings {"language":"en","themeselection":"default"}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
/skill datalion create a report named "MCP Smoke Test Report" for project 123
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
/skill datalion create a new tab in report 456 for project 123 named "Executive Summary"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
/skill datalion edit tab 456 in report 456 for project 123 by setting description to "Executive Summary - Revised" and sortorder to 2
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
/skill datalion delete tab 456 from report 456 for project 123
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
/skill datalion open project 123 in browser
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
/skill datalion open report 456 for project 123 in browser
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
/skill datalion open dashboard 789 for project 123 in browser
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
/skill datalion open the add-widget modal for project 123, div 4, and category 321
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
/skill datalion update project 123 by merging these defsettings: {"disp_precision":2,"omit_na":true,"report_instant_export":true}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
/skill datalion list the data sources for project 123
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```text
|
|
168
|
+
/skill datalion import the workbook at /Users/bkoehler/Downloads/synthclaw_sales.xlsx into project 123 as the main data source using useDefaultDataSource=true and createCodebook=true
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
/skill datalion list the reports for project 123
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
/skill datalion create a report named "MCP Smoke Test Report" for project 123
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
/skill datalion download the codebook for project 123
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
/skill datalion list the question-level codebook categories for project 123
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
```text
|
|
188
|
+
/skill datalion generate the codebook for project 123 from the current project data
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
/skill datalion delete the codebook for project 123 but keep textboxes
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```text
|
|
196
|
+
/skill datalion delete the codebook for project 123 and include textboxes
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
/skill datalion upload this codebook CSV to project 123 as "codebook.csv" using importType 2:
|
|
201
|
+
variable,label,short_label,value
|
|
202
|
+
q1,Overall satisfaction,Satisfaction,1
|
|
203
|
+
q2,Recommend to a friend,Recommendation,1
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
/skill datalion upload this codebook CSV to project 123 as "codebook.csv" using importType 3 and columnMapping ["fieldname","label","category","values"]:
|
|
208
|
+
variable,label,short_label,value
|
|
209
|
+
q1,Overall satisfaction,Satisfaction,1
|
|
210
|
+
q2,Recommend to a friend,Recommendation,1
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Bridge-side confirmation is written to:
|
|
214
|
+
|
|
215
|
+
- `/Users/bkoehler/src/datalion/mcp/mcp-bridge-debug.log`
|
|
216
|
+
|
|
217
|
+
Look for `Received tools/call request` entries such as `list_projects`,
|
|
218
|
+
`read_project`, `create_project`, `edit_project`, `list_data_sources`,
|
|
219
|
+
`import_excel_data`, `list_reports`, `create_report`, `list_codebook`,
|
|
220
|
+
`download_codebook`, `generate_codebook`, `delete_codebook`, and
|
|
221
|
+
`upload_codebook`.
|
|
39
222
|
|
|
40
223
|
## Required Token Abilities
|
|
41
224
|
|
|
42
225
|
The current backend checks these abilities:
|
|
43
226
|
|
|
227
|
+
- `projects.read` for project listing and reads
|
|
44
228
|
- `projects.create` for project creation
|
|
45
|
-
- `
|
|
229
|
+
- `projects.edit` for project settings updates
|
|
230
|
+
- `data.read` for project data source reads
|
|
231
|
+
- `data.upload` for CSV upload and excel import
|
|
232
|
+
- `reports.read` for report listing
|
|
233
|
+
- `reports.write` for report creation
|
|
46
234
|
- `charts.view-api` for chart table reads
|
|
235
|
+
- `codebook.read` for codebook downloads
|
|
236
|
+
- `codebook.write` for codebook generation, deletion, and upload
|
|
47
237
|
|
|
48
238
|
If a call fails with `403`, check the token abilities before retrying.
|
|
49
239
|
|
|
@@ -51,12 +241,31 @@ If a call fails with `403`, check the token abilities before retrying.
|
|
|
51
241
|
|
|
52
242
|
| Task | Best path today | Notes |
|
|
53
243
|
| --- | --- | --- |
|
|
54
|
-
|
|
|
244
|
+
| List projects | `datalion__list_projects` | Direct MCP support exists. Returns `projectId`, `identcode`, `name`, `description`, `status`, and `source` for accessible projects. |
|
|
245
|
+
| Read project | `datalion__read_project` | Direct MCP support exists. Returns full project details including `defsettings`, `categoriesCount`, and `dataSourcesCount`. |
|
|
246
|
+
| Create project | `datalion__create_project` | Direct MCP support exists. The bridge advertises `name` and optional `identcode` and `defsettings`. DataLion uses `name` for project description and dtitle. |
|
|
247
|
+
| Edit project settings | `datalion__edit_project` | Direct MCP support exists. `defsettings` must be an object and is merged into the existing project settings rather than replacing them wholesale. |
|
|
248
|
+
| List data sources | `datalion__list_data_sources` | Direct MCP support exists. Returns each data source with `id`, `name`, `comment`, row count, and timestamps. |
|
|
55
249
|
| Upload CSV data | `datalion__upload_data` | Best current MCP path. Confirm header, delimiter, encoding, truncate behavior, and target project ID. |
|
|
56
|
-
|
|
|
250
|
+
| Import Excel or CSV with full pipeline | `datalion__import_excel_data` | Direct MCP support exists. Accepts `localPath` or base64 `file`, plus `filename` when needed; supports `dataSourceName`, `useDefaultDataSource`, `replaceData`, `runCalculations`, `convertComma`, `skipLines`, `createCodebook`, and `comment`. Use `useDefaultDataSource=true` when you want the workbook imported into the main project data table so codebook generation reads the same data table. |
|
|
251
|
+
| Upload Excel workbook | `datalion__import_excel_data` | Preferred direct MCP path for `.xlsx` workbooks. Use `localPath` for a local file or base64 `file` if you already have the workbook bytes. If you want the main/default data source, set `useDefaultDataSource=true`. If you send base64 directly, also provide `filename`. |
|
|
252
|
+
| List reports | `datalion__list_reports` | Direct MCP support exists. Returns report id, name, publish/archive flags, owner, and tab count. |
|
|
253
|
+
| Create report | `datalion__create_report` | Direct MCP support exists. Requires `projectId` and report `name`. The report is seeded with a first tab and the response returns both IDs. |
|
|
254
|
+
| Create report tab | `datalion__create_report_tab` | Direct MCP support exists. Requires `projectId`, `reportId`, and `description`. Optional tab/dashboard settings can be applied at creation time. |
|
|
255
|
+
| Edit report tab | `datalion__edit_report_tab` | Direct MCP support exists. Requires `projectId` and `tabId`, then merges the supplied tab/dashboard fields. |
|
|
256
|
+
| Delete report tab | `datalion__delete_report_tab` | Direct MCP support exists. Requires `projectId` and `tabId`. |
|
|
257
|
+
| Open project in browser | `datalion__open_project_browser` | Bridge-local helper. Returns the project screen URL. |
|
|
258
|
+
| Open report in browser | `datalion__open_report_browser` | Bridge-local helper. Returns the report editor URL, or the tab/dashboard URL when `tabId` is supplied. |
|
|
259
|
+
| Open dashboard in browser | `datalion__open_dashboard_browser` | Bridge-local helper. Returns the tab/dashboard screen URL. |
|
|
260
|
+
| Open add-widget modal | `datalion__open_add_widget_browser` | Bridge-local helper. Returns the chart-add modal URL for adding a question/widget to a tab/dashboard. |
|
|
57
261
|
| Read chart table | `datalion__get_chart_table` | Requires `projectId` plus `chartId` when the chart ID does not already include the project prefix. Optional filters are passed through. |
|
|
262
|
+
| List codebook categories | `datalion__list_codebook` | Direct MCP support exists. Returns question-level measure/item categories with `categoryImportId`, `label`, and `fieldname`. |
|
|
263
|
+
| Download codebook | `datalion__download_codebook` | Direct MCP support exists. Returns the category tree plus a total count. |
|
|
264
|
+
| Generate codebook | `datalion__generate_codebook` | Direct MCP support exists. Regenerates codebook categories from project data. |
|
|
265
|
+
| Delete codebook | `datalion__delete_codebook` | Direct MCP support exists. Optional `includeTextboxes=true` expands the deletion to textboxes. |
|
|
266
|
+
| Upload codebook CSV | `datalion__upload_codebook` | Direct MCP support exists. The bridge accepts raw CSV `data` or base64 `file`, plus `filename`, optional `importType` (`2` replace, `3` update, `4` append), and optional `columnMapping` as an array aligned to CSV column order. |
|
|
58
267
|
| Create or update dashboard | REST `/api/v1/dashboards` or Datalion UI | Current MCP bridge does not expose dashboard CRUD. See `openapi.yaml` and `routes/dashboard.php`. |
|
|
59
|
-
|
|
|
268
|
+
| Update report after creation | REST `/api/v1/reports` or Datalion UI | Current MCP bridge exposes report list/create and tab CRUD, but not full report CRUD. |
|
|
60
269
|
| Generate exports | Browser/UI or export web routes | Export flows currently live in `routes/export.php` web routes rather than the MCP bridge. |
|
|
61
270
|
|
|
62
271
|
## Fallback Inspection Points
|