@bluelibs/runner-dev 6.1.0 → 6.3.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/README.md +143 -14
- package/dist/cli/generators/initUtils.js +1 -1
- package/dist/cli/generators/initUtils.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/README.md.js +21 -5
- package/dist/cli/generators/scaffold/templates/README.md.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/index.d.ts +2 -3
- package/dist/cli/generators/scaffold/templates/index.js +5 -7
- package/dist/cli/generators/scaffold/templates/index.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/package.json.d.ts +11 -8
- package/dist/cli/generators/scaffold/templates/package.json.js +11 -8
- package/dist/cli/generators/scaffold/templates/package.json.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js +29 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js +15 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/main.test.ts.js +3 -1
- package/dist/cli/generators/scaffold/templates/src/main.test.ts.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/src/main.ts.js +3 -10
- package/dist/cli/generators/scaffold/templates/src/main.ts.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/tsconfig.json.d.ts +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js.map +1 -1
- package/dist/cli/generators/scaffold.js +2 -3
- package/dist/cli/generators/scaffold.js.map +1 -1
- package/dist/cli/init.js +1 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/docs/packageDocs.d.ts +16 -0
- package/dist/docs/packageDocs.js +107 -0
- package/dist/docs/packageDocs.js.map +1 -0
- package/dist/exportDocs.d.ts +10 -0
- package/dist/exportDocs.js +98 -0
- package/dist/exportDocs.js.map +1 -0
- package/dist/generated/resolvers-types.d.ts +127 -42
- package/dist/index.d.ts +5 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/env.d.ts +5 -0
- package/dist/mcp/env.js +30 -1
- package/dist/mcp/env.js.map +1 -1
- package/dist/mcp/help.d.ts +8 -1
- package/dist/mcp/help.js +30 -4
- package/dist/mcp/help.js.map +1 -1
- package/dist/mcp/http.js +10 -0
- package/dist/mcp/http.js.map +1 -1
- package/dist/mcp/projectOverview.js +13 -4
- package/dist/mcp/projectOverview.js.map +1 -1
- package/dist/mcp/snapshot.d.ts +22 -0
- package/dist/mcp/snapshot.js +347 -0
- package/dist/mcp/snapshot.js.map +1 -0
- package/dist/mcp/tools/graphql.mutation.js +4 -1
- package/dist/mcp/tools/graphql.mutation.js.map +1 -1
- package/dist/mcp/tools/graphql.ping.js +1 -1
- package/dist/mcp/tools/graphql.ping.js.map +1 -1
- package/dist/mcp/tools/graphql.query.js +1 -1
- package/dist/mcp/tools/graphql.query.js.map +1 -1
- package/dist/mcp/tools/help.read.js +7 -5
- package/dist/mcp/tools/help.read.js.map +1 -1
- package/dist/mcp/tools/help.runner.js +3 -1
- package/dist/mcp/tools/help.runner.js.map +1 -1
- package/dist/mcp/tools/help.runnerDev.js +4 -4
- package/dist/mcp/tools/help.runnerDev.js.map +1 -1
- package/dist/mcp.js +4 -9
- package/dist/mcp.js.map +1 -1
- package/dist/resources/cli.config.resource.js +1 -1
- package/dist/resources/cli.config.resource.js.map +1 -1
- package/dist/resources/coverage.resource.js +1 -1
- package/dist/resources/coverage.resource.js.map +1 -1
- package/dist/resources/dev.resource.d.ts +1 -1
- package/dist/resources/dev.resource.js +1 -1
- package/dist/resources/dev.resource.js.map +1 -1
- package/dist/resources/docs.generator.resource.js +1 -1
- package/dist/resources/docs.generator.resource.js.map +1 -1
- package/dist/resources/docsPayload.d.ts +33 -0
- package/dist/resources/docsPayload.js +171 -0
- package/dist/resources/docsPayload.js.map +1 -0
- package/dist/resources/docsUiAssets.d.ts +27 -0
- package/dist/resources/docsUiAssets.js +150 -0
- package/dist/resources/docsUiAssets.js.map +1 -0
- package/dist/resources/graphql-accumulator.resource.d.ts +1 -0
- package/dist/resources/graphql-accumulator.resource.js +31 -27
- package/dist/resources/graphql-accumulator.resource.js.map +1 -1
- package/dist/resources/graphql.cli.resource.js +1 -1
- package/dist/resources/graphql.cli.resource.js.map +1 -1
- package/dist/resources/graphql.query.cli.task.d.ts +2 -4
- package/dist/resources/graphql.query.cli.task.js +1 -1
- package/dist/resources/graphql.query.cli.task.js.map +1 -1
- package/dist/resources/graphql.query.task.d.ts +2 -4
- package/dist/resources/graphql.query.task.js +1 -1
- package/dist/resources/graphql.query.task.js.map +1 -1
- package/dist/resources/http.tag.js +1 -1
- package/dist/resources/http.tag.js.map +1 -1
- package/dist/resources/introspector.cli.resource.js +1 -1
- package/dist/resources/introspector.cli.resource.js.map +1 -1
- package/dist/resources/introspector.resource.js +1 -1
- package/dist/resources/introspector.resource.js.map +1 -1
- package/dist/resources/live.resource.js +4 -4
- package/dist/resources/live.resource.js.map +1 -1
- package/dist/resources/models/Introspector.d.ts +16 -4
- package/dist/resources/models/Introspector.js +68 -39
- package/dist/resources/models/Introspector.js.map +1 -1
- package/dist/resources/models/durable.tools.js +3 -1
- package/dist/resources/models/durable.tools.js.map +1 -1
- package/dist/resources/models/initializeFromStore.js +5 -5
- package/dist/resources/models/initializeFromStore.js.map +1 -1
- package/dist/resources/models/initializeFromStore.utils.d.ts +2 -2
- package/dist/resources/models/initializeFromStore.utils.js +424 -78
- package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
- package/dist/resources/models/introspector.tools.js +103 -19
- package/dist/resources/models/introspector.tools.js.map +1 -1
- package/dist/resources/routeHandlers/createDocsServeHandler.js +13 -37
- package/dist/resources/routeHandlers/createDocsServeHandler.js.map +1 -1
- package/dist/resources/routeHandlers/getDocsData.d.ts +1 -6
- package/dist/resources/routeHandlers/getDocsData.js +10 -168
- package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
- package/dist/resources/server.resource.js +1 -2
- package/dist/resources/server.resource.js.map +1 -1
- package/dist/resources/swap.cli.resource.js +1 -1
- package/dist/resources/swap.cli.resource.js.map +1 -1
- package/dist/resources/swap.resource.js +1 -1
- package/dist/resources/swap.resource.js.map +1 -1
- package/dist/resources/telemetry.resource.js +27 -6
- package/dist/resources/telemetry.resource.js.map +1 -1
- package/dist/resources/ui.static.js +4 -9
- package/dist/resources/ui.static.js.map +1 -1
- package/dist/runtime/symbolMetadata.d.ts +1 -0
- package/dist/{architect/core/interfaces.js → runtime/symbolMetadata.js} +1 -1
- package/dist/runtime/symbolMetadata.js.map +1 -0
- package/dist/schema/model.d.ts +18 -0
- package/dist/schema/model.js +14 -0
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/query.js +6 -4
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/types/AllType.js +2 -21
- package/dist/schema/types/AllType.js.map +1 -1
- package/dist/schema/types/AsyncContextType.js +21 -17
- package/dist/schema/types/AsyncContextType.js.map +1 -1
- package/dist/schema/types/ErrorType.js +1 -3
- package/dist/schema/types/ErrorType.js.map +1 -1
- package/dist/schema/types/EventType.js +6 -19
- package/dist/schema/types/EventType.js.map +1 -1
- package/dist/schema/types/HookType.js +4 -16
- package/dist/schema/types/HookType.js.map +1 -1
- package/dist/schema/types/ResourceType.js +50 -23
- package/dist/schema/types/ResourceType.js.map +1 -1
- package/dist/schema/types/TaskLikeCommon.js +2 -2
- package/dist/schema/types/TaskLikeCommon.js.map +1 -1
- package/dist/schema/types/TaskType.js +6 -19
- package/dist/schema/types/TaskType.js.map +1 -1
- package/dist/schema/types/middleware/UsageTypes.d.ts +1 -0
- package/dist/schema/types/middleware/UsageTypes.js +16 -5
- package/dist/schema/types/middleware/UsageTypes.js.map +1 -1
- package/dist/schema/types/middleware/common.js +2 -2
- package/dist/schema/types/middleware/common.js.map +1 -1
- package/dist/ui/.vite/manifest.json +2 -2
- package/dist/ui/assets/docs-Beb_xRuE.js +304 -0
- package/dist/ui/assets/docs-Beb_xRuE.js.map +1 -0
- package/dist/ui/assets/docs-lid1amCk.css +1 -0
- package/dist/ui/docs/favicon.ico +0 -0
- package/dist/utils/lane-resources.d.ts +69 -0
- package/dist/utils/lane-resources.js +154 -1
- package/dist/utils/lane-resources.js.map +1 -1
- package/dist/utils/runner-namespace.d.ts +1 -0
- package/dist/utils/runner-namespace.js +9 -0
- package/dist/utils/runner-namespace.js.map +1 -0
- package/dist/utils/schemaFormat.d.ts +6 -0
- package/dist/utils/schemaFormat.js +244 -0
- package/dist/utils/schemaFormat.js.map +1 -0
- package/dist/utils/system-namespace.d.ts +1 -0
- package/dist/utils/system-namespace.js +9 -0
- package/dist/utils/system-namespace.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +29 -11
- package/readmes/API_REFERENCE.md +364 -0
- package/readmes/COMPACT_GUIDE.md +254 -0
- package/skills/core/SKILL.md +27 -0
- package/skills/core/references/readmes/API_REFERENCE.md +364 -0
- package/skills/core/references/readmes/COMPACT_GUIDE.md +254 -0
- package/AI.md +0 -622
- package/dist/app/tasks/create-user.task.d.ts +0 -5
- package/dist/app/tasks/create-user.task.js +0 -20
- package/dist/app/tasks/create-user.task.js.map +0 -1
- package/dist/app/tasks/index.d.ts +0 -1
- package/dist/app/tasks/index.js +0 -18
- package/dist/app/tasks/index.js.map +0 -1
- package/dist/architect/core/errors.d.ts +0 -39
- package/dist/architect/core/errors.js +0 -143
- package/dist/architect/core/errors.js.map +0 -1
- package/dist/architect/core/index.d.ts +0 -3
- package/dist/architect/core/index.js +0 -21
- package/dist/architect/core/index.js.map +0 -1
- package/dist/architect/core/interfaces.d.ts +0 -158
- package/dist/architect/core/interfaces.js.map +0 -1
- package/dist/architect/core/types.d.ts +0 -544
- package/dist/architect/core/types.js +0 -49
- package/dist/architect/core/types.js.map +0 -1
- package/dist/architect/execution/executor.d.ts +0 -23
- package/dist/architect/execution/executor.js +0 -476
- package/dist/architect/execution/executor.js.map +0 -1
- package/dist/architect/execution/index.d.ts +0 -1
- package/dist/architect/execution/index.js +0 -19
- package/dist/architect/execution/index.js.map +0 -1
- package/dist/architect/executor.d.ts +0 -7
- package/dist/architect/executor.js +0 -150
- package/dist/architect/executor.js.map +0 -1
- package/dist/architect/index.d.ts +0 -45
- package/dist/architect/index.js +0 -76
- package/dist/architect/index.js.map +0 -1
- package/dist/architect/llmClient.d.ts +0 -10
- package/dist/architect/llmClient.js +0 -33
- package/dist/architect/llmClient.js.map +0 -1
- package/dist/architect/models/base.d.ts +0 -16
- package/dist/architect/models/base.js +0 -68
- package/dist/architect/models/base.js.map +0 -1
- package/dist/architect/models/factory.d.ts +0 -16
- package/dist/architect/models/factory.js +0 -73
- package/dist/architect/models/factory.js.map +0 -1
- package/dist/architect/models/index.d.ts +0 -3
- package/dist/architect/models/index.js +0 -21
- package/dist/architect/models/index.js.map +0 -1
- package/dist/architect/models/openai.d.ts +0 -7
- package/dist/architect/models/openai.js +0 -71
- package/dist/architect/models/openai.js.map +0 -1
- package/dist/architect/planner.d.ts +0 -9
- package/dist/architect/planner.js +0 -42
- package/dist/architect/planner.js.map +0 -1
- package/dist/architect/planning/index.d.ts +0 -4
- package/dist/architect/planning/index.js +0 -22
- package/dist/architect/planning/index.js.map +0 -1
- package/dist/architect/planning/optimizer.d.ts +0 -14
- package/dist/architect/planning/optimizer.js +0 -275
- package/dist/architect/planning/optimizer.js.map +0 -1
- package/dist/architect/planning/planner.d.ts +0 -15
- package/dist/architect/planning/planner.js +0 -124
- package/dist/architect/planning/planner.js.map +0 -1
- package/dist/architect/planning/prompts.d.ts +0 -6
- package/dist/architect/planning/prompts.js +0 -111
- package/dist/architect/planning/prompts.js.map +0 -1
- package/dist/architect/planning/validator.d.ts +0 -16
- package/dist/architect/planning/validator.js +0 -331
- package/dist/architect/planning/validator.js.map +0 -1
- package/dist/architect/prompt.d.ts +0 -1
- package/dist/architect/prompt.js +0 -13
- package/dist/architect/prompt.js.map +0 -1
- package/dist/architect/types.d.ts +0 -4
- package/dist/architect/types.js +0 -24
- package/dist/architect/types.js.map +0 -1
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.d.ts +0 -1
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.js +0 -24
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.js.map +0 -1
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.d.ts +0 -11
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js +0 -17
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js.map +0 -1
- package/dist/client/documentation.d.ts +0 -8
- package/dist/client/documentation.js +0 -144
- package/dist/client/documentation.js.map +0 -1
- package/dist/components/Documentation/Documentation.d.ts +0 -8
- package/dist/components/Documentation/Documentation.js +0 -283
- package/dist/components/Documentation/Documentation.js.map +0 -1
- package/dist/components/Documentation/components/DiagnosticsPanel.d.ts +0 -7
- package/dist/components/Documentation/components/DiagnosticsPanel.js +0 -189
- package/dist/components/Documentation/components/DiagnosticsPanel.js.map +0 -1
- package/dist/components/Documentation/components/EventCard.d.ts +0 -8
- package/dist/components/Documentation/components/EventCard.js +0 -290
- package/dist/components/Documentation/components/EventCard.js.map +0 -1
- package/dist/components/Documentation/components/HookCard.d.ts +0 -8
- package/dist/components/Documentation/components/HookCard.js +0 -282
- package/dist/components/Documentation/components/HookCard.js.map +0 -1
- package/dist/components/Documentation/components/MiddlewareCard.d.ts +0 -8
- package/dist/components/Documentation/components/MiddlewareCard.js +0 -314
- package/dist/components/Documentation/components/MiddlewareCard.js.map +0 -1
- package/dist/components/Documentation/components/ResourceCard.d.ts +0 -8
- package/dist/components/Documentation/components/ResourceCard.js +0 -228
- package/dist/components/Documentation/components/ResourceCard.js.map +0 -1
- package/dist/components/Documentation/components/Sidebar.d.ts +0 -13
- package/dist/components/Documentation/components/Sidebar.js +0 -165
- package/dist/components/Documentation/components/Sidebar.js.map +0 -1
- package/dist/components/Documentation/components/TagCard.d.ts +0 -7
- package/dist/components/Documentation/components/TagCard.js +0 -75
- package/dist/components/Documentation/components/TagCard.js.map +0 -1
- package/dist/components/Documentation/components/TaskCard.d.ts +0 -8
- package/dist/components/Documentation/components/TaskCard.js +0 -196
- package/dist/components/Documentation/components/TaskCard.js.map +0 -1
- package/dist/components/Documentation/index.d.ts +0 -2
- package/dist/components/Documentation/index.js +0 -6
- package/dist/components/Documentation/index.js.map +0 -1
- package/dist/components/Documentation/utils/formatting.d.ts +0 -8
- package/dist/components/Documentation/utils/formatting.js +0 -84
- package/dist/components/Documentation/utils/formatting.js.map +0 -1
- package/dist/components/ExampleComponent.d.ts +0 -10
- package/dist/components/ExampleComponent.js +0 -89
- package/dist/components/ExampleComponent.js.map +0 -1
- package/dist/mcp/z3.d.ts +0 -1
- package/dist/mcp/z3.js +0 -9
- package/dist/mcp/z3.js.map +0 -1
- package/dist/project-writer/AIModel.d.ts +0 -29
- package/dist/project-writer/AIModel.js +0 -48
- package/dist/project-writer/AIModel.js.map +0 -1
- package/dist/resources/docs.route.d.ts +0 -23
- package/dist/resources/docs.route.js +0 -73
- package/dist/resources/docs.route.js.map +0 -1
- package/dist/resources/durable.workflow.tag.d.ts +0 -2
- package/dist/resources/durable.workflow.tag.js +0 -28
- package/dist/resources/durable.workflow.tag.js.map +0 -1
- package/dist/resources/getFileContents.task.d.ts +0 -17
- package/dist/resources/getFileContents.task.js +0 -44
- package/dist/resources/getFileContents.task.js.map +0 -1
- package/dist/resources/introspector.tools.d.ts +0 -47
- package/dist/resources/introspector.tools.js +0 -505
- package/dist/resources/introspector.tools.js.map +0 -1
- package/dist/resources/models/extractTunnelInfo.d.ts +0 -8
- package/dist/resources/models/extractTunnelInfo.js +0 -85
- package/dist/resources/models/extractTunnelInfo.js.map +0 -1
- package/dist/resources/models/tunnel.tools.d.ts +0 -3
- package/dist/resources/models/tunnel.tools.js +0 -35
- package/dist/resources/models/tunnel.tools.js.map +0 -1
- package/dist/runner-compat.d.ts +0 -85
- package/dist/runner-compat.js +0 -178
- package/dist/runner-compat.js.map +0 -1
- package/dist/runner-node-compat.d.ts +0 -2
- package/dist/runner-node-compat.js +0 -28
- package/dist/runner-node-compat.js.map +0 -1
- package/dist/schema/types/TunnelInfoType.d.ts +0 -5
- package/dist/schema/types/TunnelInfoType.js +0 -86
- package/dist/schema/types/TunnelInfoType.js.map +0 -1
- package/dist/tasks/create-user.d.ts +0 -5
- package/dist/tasks/create-user.js +0 -20
- package/dist/tasks/create-user.js.map +0 -1
- package/dist/tasks/index.d.ts +0 -1
- package/dist/tasks/index.js +0 -18
- package/dist/tasks/index.js.map +0 -1
- package/dist/ui/assets/docs-CHvYnckk.js +0 -302
- package/dist/ui/assets/docs-CHvYnckk.js.map +0 -1
- package/dist/ui/assets/docs-CipvKUxZ.css +0 -1
- package/dist/ui-test/index.html +0 -1
- package/readmes/runner-AI.md +0 -740
- package/readmes/runner-durable-workflows.md +0 -2247
- package/readmes/runner-full-guide.md +0 -5869
- package/readmes/runner-remote-lanes.md +0 -909
package/AI.md
DELETED
|
@@ -1,622 +0,0 @@
|
|
|
1
|
-
# Runner-Dev AI Assistant Guide
|
|
2
|
-
|
|
3
|
-
This document provides AI assistants with comprehensive guidance on using Runner-Dev's introspection and development tools.
|
|
4
|
-
|
|
5
|
-
## What is Runner-Dev?
|
|
6
|
-
|
|
7
|
-
Runner-Dev is a powerful development toolkit for applications built with the **@bluelibs/runner** framework. It provides:
|
|
8
|
-
|
|
9
|
-
- **Live Introspection**: Query your running application's architecture
|
|
10
|
-
- **Hot-Swapping**: Modify tasks at runtime with TypeScript/JavaScript
|
|
11
|
-
- **Real-time Telemetry**: Monitor logs, events, errors, and performance
|
|
12
|
-
- **GraphQL API**: Comprehensive query interface for all system data
|
|
13
|
-
- **MCP Integration**: AI-native development environment
|
|
14
|
-
- **Tags (first-class)**: Discover Tag objects and reverse usage via GraphQL (`tags`, `tag(id)`).
|
|
15
|
-
- **Documentation UI Overviews**: Sortable and searchable overview tables with a `Used By` counter column for faster cross-element inspection.
|
|
16
|
-
- **Visibility Awareness**: Every element exposes `isPrivate` (based on Runner `isolate()` boundaries), and resources expose `isolation`.
|
|
17
|
-
- **Subtree Governance Awareness**: Resources expose normalized `subtree` policy summaries (middleware and validator counts per branch).
|
|
18
|
-
- **Lifecycle Awareness**: Resources expose `cooldown` support and run options expose `lifecycleMode`, `disposeBudgetMs`, `disposeDrainBudgetMs`.
|
|
19
|
-
- **Lane Awareness**: Events expose optional `eventLane` summaries (`globals.tags.eventLane`) and both tasks and events expose optional `rpcLane` summaries (`globals.tags.rpcLane`).
|
|
20
|
-
- **Isolation Wildcard Explorer**: Wildcard isolation rules can be clicked to inspect all matching resources in a searchable modal list.
|
|
21
|
-
- **Tag Handlers**: Tag views separate direct tag usages from handler elements that depend on the tag id.
|
|
22
|
-
- **Task Interceptor Introspection**: Tasks expose `interceptorCount` and `hasInterceptors` for runtime `task.intercept(...)` registrations.
|
|
23
|
-
- **Schema Export Compatibility**: Schema fields prefer `toJSONSchema()` exporters (including matcher-normalized schemas), with `zod` conversion as compatibility fallback.
|
|
24
|
-
|
|
25
|
-
## Runner 6.0 Migration Notes
|
|
26
|
-
|
|
27
|
-
| Before | After (hard switch) |
|
|
28
|
-
| --------------------- | --------------------------------------------------------- |
|
|
29
|
-
| `Resource.exports` | `Resource.isolation { deny, only, exports, exportsMode }` |
|
|
30
|
-
| `Middleware.global` | `Middleware.autoApply { enabled, scope, hasPredicate }` |
|
|
31
|
-
| `Tag.middlewares` | `Tag.taskMiddlewares` + `Tag.resourceMiddlewares` |
|
|
32
|
-
| N/A | `Tag.errors`, `Tag.targets` |
|
|
33
|
-
| `RunOptions.initMode` | `RunOptions.lifecycleMode` (+ disposal budgets) |
|
|
34
|
-
| `Resource.tunnelInfo` | Removed (hard switch to Event Lane + RPC Lane surfaces) |
|
|
35
|
-
|
|
36
|
-
## Runner 6.1 Migration Notes
|
|
37
|
-
|
|
38
|
-
- Temporal middleware now supports per-key partitioning through `keyBuilder(taskId, input)` on `rateLimit`, `debounce`, and `throttle`.
|
|
39
|
-
- User resources are no longer transparent:
|
|
40
|
-
- root resources can register tasks/resources/middleware directly and be passed to `run(...)`
|
|
41
|
-
- canonical runtime ids retain each user resource segment
|
|
42
|
-
- `runtime-framework-root` is reserved for internal Runner use
|
|
43
|
-
- `resource.subtree(...)` may now receive a policy array; runner-dev merges those policies into one summarized subtree view.
|
|
44
|
-
- `gateway: true` has been removed from user resources, so any references that skipped a user resource segment need to be updated.
|
|
45
|
-
- Advanced Node integrations should now use `runner.node.rpcLanes` for the internal RPC lanes resource id.
|
|
46
|
-
|
|
47
|
-
## Available GraphQL Queries
|
|
48
|
-
|
|
49
|
-
### System Architecture Queries
|
|
50
|
-
|
|
51
|
-
```graphql
|
|
52
|
-
# Get all elements (tasks, resources, events, middleware, hooks)
|
|
53
|
-
query SystemOverview {
|
|
54
|
-
all {
|
|
55
|
-
id
|
|
56
|
-
isPrivate
|
|
57
|
-
meta {
|
|
58
|
-
title
|
|
59
|
-
description
|
|
60
|
-
}
|
|
61
|
-
filePath
|
|
62
|
-
}
|
|
63
|
-
runOptions {
|
|
64
|
-
mode
|
|
65
|
-
debug
|
|
66
|
-
debugMode
|
|
67
|
-
logsEnabled
|
|
68
|
-
logsPrintThreshold
|
|
69
|
-
logsPrintStrategy
|
|
70
|
-
logsBuffer
|
|
71
|
-
errorBoundary
|
|
72
|
-
shutdownHooks
|
|
73
|
-
dryRun
|
|
74
|
-
lazy
|
|
75
|
-
lifecycleMode
|
|
76
|
-
runtimeEventCycleDetection
|
|
77
|
-
hasOnUnhandledError
|
|
78
|
-
rootId
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
# Get specific element types
|
|
83
|
-
query Architecture {
|
|
84
|
-
tasks {
|
|
85
|
-
id
|
|
86
|
-
isPrivate
|
|
87
|
-
interceptorCount
|
|
88
|
-
hasInterceptors
|
|
89
|
-
meta {
|
|
90
|
-
title
|
|
91
|
-
description
|
|
92
|
-
}
|
|
93
|
-
tags {
|
|
94
|
-
id
|
|
95
|
-
}
|
|
96
|
-
dependsOn
|
|
97
|
-
emits
|
|
98
|
-
}
|
|
99
|
-
resources {
|
|
100
|
-
id
|
|
101
|
-
isPrivate
|
|
102
|
-
isolation {
|
|
103
|
-
deny
|
|
104
|
-
only
|
|
105
|
-
exports
|
|
106
|
-
exportsMode
|
|
107
|
-
}
|
|
108
|
-
meta {
|
|
109
|
-
title
|
|
110
|
-
description
|
|
111
|
-
}
|
|
112
|
-
tags {
|
|
113
|
-
id
|
|
114
|
-
}
|
|
115
|
-
dependsOn
|
|
116
|
-
registers
|
|
117
|
-
overrides
|
|
118
|
-
usedBy
|
|
119
|
-
}
|
|
120
|
-
events {
|
|
121
|
-
id
|
|
122
|
-
tags {
|
|
123
|
-
id
|
|
124
|
-
}
|
|
125
|
-
emittedBy
|
|
126
|
-
listenedToBy
|
|
127
|
-
}
|
|
128
|
-
middlewares {
|
|
129
|
-
id
|
|
130
|
-
meta {
|
|
131
|
-
title
|
|
132
|
-
description
|
|
133
|
-
}
|
|
134
|
-
tags {
|
|
135
|
-
id
|
|
136
|
-
}
|
|
137
|
-
usedByTasks
|
|
138
|
-
}
|
|
139
|
-
hooks {
|
|
140
|
-
id
|
|
141
|
-
meta {
|
|
142
|
-
title
|
|
143
|
-
description
|
|
144
|
-
}
|
|
145
|
-
tags {
|
|
146
|
-
id
|
|
147
|
-
}
|
|
148
|
-
event
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Live Telemetry Queries
|
|
154
|
-
|
|
155
|
-
```graphql
|
|
156
|
-
# Real-time system monitoring
|
|
157
|
-
query LiveTelemetry {
|
|
158
|
-
live {
|
|
159
|
-
memory {
|
|
160
|
-
heapUsed
|
|
161
|
-
heapTotal
|
|
162
|
-
rss
|
|
163
|
-
}
|
|
164
|
-
cpu {
|
|
165
|
-
usage
|
|
166
|
-
loadAverage
|
|
167
|
-
}
|
|
168
|
-
eventLoop {
|
|
169
|
-
lag
|
|
170
|
-
}
|
|
171
|
-
gc {
|
|
172
|
-
collections
|
|
173
|
-
duration
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
# Recent activity (use 'last' parameter to limit)
|
|
177
|
-
logs(last: 10) {
|
|
178
|
-
timestampMs
|
|
179
|
-
level
|
|
180
|
-
message
|
|
181
|
-
correlationId
|
|
182
|
-
}
|
|
183
|
-
emissions(last: 10) {
|
|
184
|
-
timestampMs
|
|
185
|
-
eventId
|
|
186
|
-
emitterId
|
|
187
|
-
correlationId
|
|
188
|
-
}
|
|
189
|
-
errors(last: 10) {
|
|
190
|
-
timestampMs
|
|
191
|
-
sourceKind
|
|
192
|
-
message
|
|
193
|
-
correlationId
|
|
194
|
-
}
|
|
195
|
-
runs(last: 10) {
|
|
196
|
-
timestampMs
|
|
197
|
-
nodeId
|
|
198
|
-
nodeKind
|
|
199
|
-
durationMs
|
|
200
|
-
ok
|
|
201
|
-
correlationId
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### SSE Live Streaming
|
|
208
|
-
|
|
209
|
-
Server-Sent Events endpoint at `GET /live/stream` for near-instant push instead of polling:
|
|
210
|
-
|
|
211
|
-
- **`telemetry`** event: `{ logs, emissions, errors, runs }` pushed ~100ms after each record (debounced)
|
|
212
|
-
- **`health`** event: `{ memory, cpu, eventLoop, gc }` every 2s
|
|
213
|
-
- Heartbeat comment every 15s to keep proxies alive
|
|
214
|
-
- `Live.onRecord(callback)` fires synchronously on each `record*` call; returns an unsubscribe function
|
|
215
|
-
- The built-in Live Panel auto-uses SSE and falls back to configurable-interval polling (500ms–10s)
|
|
216
|
-
|
|
217
|
-
### Correlation ID Trace View
|
|
218
|
-
|
|
219
|
-
The Live Panel includes a built-in **Trace View** — a unified timeline showing every log, event emission, error, and task run sharing a single `correlationId`, ordered chronologically. Click any correlationId badge (shown on logs, events, errors, and runs) to open the trace modal. This provides an in-process "distributed tracing" experience (like Jaeger).
|
|
220
|
-
|
|
221
|
-
### Unified Modal System
|
|
222
|
-
|
|
223
|
-
All UI modals (CodeModal, ExecuteModal, TraceView, RecentLogs, OverviewStatsPanel) are built on a shared `BaseModal` primitive (`src/ui/src/components/Documentation/components/modals/`). It provides:
|
|
224
|
-
|
|
225
|
-
- **Stacking**: A `ModalStackContext` tracks open modals and assigns ascending z-indexes (base 10 000 + 10 per layer). Global Escape closes the topmost modal first.
|
|
226
|
-
- **Consistent UX**: Portal to `document.body`, backdrop blur, scroll lock, focus trap, slide-up animation, ARIA `role="dialog"`.
|
|
227
|
-
- **Sizes**: `sm | md | lg | xl | fullscreen` with responsive fallback to fullscreen on small viewports.
|
|
228
|
-
|
|
229
|
-
### Diagnostics & Health
|
|
230
|
-
|
|
231
|
-
```graphql
|
|
232
|
-
# System diagnostics and issues
|
|
233
|
-
query SystemHealth {
|
|
234
|
-
diagnostics {
|
|
235
|
-
severity
|
|
236
|
-
code
|
|
237
|
-
message
|
|
238
|
-
nodeId
|
|
239
|
-
nodeKind
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## Available GraphQL Mutations
|
|
245
|
-
|
|
246
|
-
### Hot-Swapping Tasks
|
|
247
|
-
|
|
248
|
-
```graphql
|
|
249
|
-
# Swap a task's implementation at runtime
|
|
250
|
-
mutation SwapTask($taskId: ID!, $runCode: String!) {
|
|
251
|
-
swapTask(taskId: $taskId, runCode: $runCode) {
|
|
252
|
-
success
|
|
253
|
-
error
|
|
254
|
-
taskId
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
# Restore original implementation
|
|
259
|
-
mutation UnswapTask($taskId: ID!) {
|
|
260
|
-
unswapTask(taskId: $taskId) {
|
|
261
|
-
success
|
|
262
|
-
error
|
|
263
|
-
taskId
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
# Restore all tasks
|
|
268
|
-
mutation UnswapAllTasks {
|
|
269
|
-
unswapAllTasks {
|
|
270
|
-
success
|
|
271
|
-
error
|
|
272
|
-
taskId
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
### Task Invocation
|
|
278
|
-
|
|
279
|
-
```graphql
|
|
280
|
-
# Invoke a task remotely
|
|
281
|
-
mutation InvokeTask(
|
|
282
|
-
$taskId: ID!
|
|
283
|
-
$inputJson: String
|
|
284
|
-
$pure: Boolean
|
|
285
|
-
$evalInput: Boolean
|
|
286
|
-
) {
|
|
287
|
-
invokeTask(
|
|
288
|
-
taskId: $taskId
|
|
289
|
-
inputJson: $inputJson
|
|
290
|
-
pure: $pure # bypass middleware
|
|
291
|
-
evalInput: $evalInput # evaluate input as JavaScript
|
|
292
|
-
) {
|
|
293
|
-
success
|
|
294
|
-
error
|
|
295
|
-
result
|
|
296
|
-
executionTimeMs
|
|
297
|
-
invocationId
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### Code Evaluation
|
|
303
|
-
|
|
304
|
-
```graphql
|
|
305
|
-
# Execute arbitrary code on the server (DEV ONLY)
|
|
306
|
-
mutation EvalCode($code: String!, $inputJson: String, $evalInput: Boolean) {
|
|
307
|
-
eval(code: $code, inputJson: $inputJson, evalInput: $evalInput) {
|
|
308
|
-
success
|
|
309
|
-
error
|
|
310
|
-
result
|
|
311
|
-
executionTimeMs
|
|
312
|
-
invocationId
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
## MCP Tools Available
|
|
318
|
-
|
|
319
|
-
- `graphql.query` - Execute read-only GraphQL queries
|
|
320
|
-
- `graphql.mutation` - Execute GraphQL mutations (if ALLOW_MUTATIONS=true)
|
|
321
|
-
- `graphql.introspect` - Get full schema introspection
|
|
322
|
-
- `graphql.ping` - Test connectivity
|
|
323
|
-
- `project.overview` - Generate dynamic project overview aggregated from the API
|
|
324
|
-
|
|
325
|
-
## Direct CLI Usage
|
|
326
|
-
|
|
327
|
-
Beyond MCP, Runner-Dev offers a powerful standalone CLI for direct interaction from your terminal. This is ideal for scripting, quick checks, or when not operating within an MCP-enabled AI assistant.
|
|
328
|
-
|
|
329
|
-
### Prerequisites
|
|
330
|
-
|
|
331
|
-
- Your app must be running with the Dev server enabled (for remote mode).
|
|
332
|
-
- The `@bluelibs/runner-dev` package should be installed.
|
|
333
|
-
|
|
334
|
-
### Create a New Project
|
|
335
|
-
|
|
336
|
-
You can scaffold a new Runner project directly from the CLI.
|
|
337
|
-
|
|
338
|
-
```bash
|
|
339
|
-
# Create a new Runner project
|
|
340
|
-
npx @bluelibs/runner-dev new <project-name>
|
|
341
|
-
|
|
342
|
-
# Example
|
|
343
|
-
npx @bluelibs/runner-dev new my-awesome-app
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
This command creates a new Runner project with a complete TypeScript setup, Jest for testing, and all necessary dependencies.
|
|
347
|
-
|
|
348
|
-
Key flags for `new`:
|
|
349
|
-
|
|
350
|
-
- `--install`: Install dependencies after scaffolding.
|
|
351
|
-
- `--run-tests`: Run the generated test suite after installation.
|
|
352
|
-
- `--run`: Start the dev server after installation.
|
|
353
|
-
|
|
354
|
-
### Common Commands
|
|
355
|
-
|
|
356
|
-
All commands can be prefixed with environment variables like `ENDPOINT` and `HEADERS`.
|
|
357
|
-
|
|
358
|
-
**Ping the server:**
|
|
359
|
-
|
|
360
|
-
```bash
|
|
361
|
-
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev ping
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
**Execute a GraphQL query (Remote Mode):**
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
# Simple query
|
|
368
|
-
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev query 'query { tasks { id } }'
|
|
369
|
-
|
|
370
|
-
# Query with variables and pretty formatting
|
|
371
|
-
ENDPOINT=http://localhost:1337/graphql \
|
|
372
|
-
npx @bluelibs/runner-dev query \
|
|
373
|
-
'query Q($ns: ID){ tasks(idIncludes: $ns) { id } }' \
|
|
374
|
-
--variables '{"ns":"task."}' \
|
|
375
|
-
--format pretty
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
**Execute a GraphQL query (Dry-Run Mode):**
|
|
379
|
-
|
|
380
|
-
Run queries against a TypeScript entry file without needing a running server.
|
|
381
|
-
|
|
382
|
-
```bash
|
|
383
|
-
# Using a TS entry file default export
|
|
384
|
-
npx @bluelibs/runner-dev query 'query { tasks { id } }' \
|
|
385
|
-
--entry-file ./src/main.ts
|
|
386
|
-
|
|
387
|
-
# Using a named export (e.g., exported as `app`)
|
|
388
|
-
npx @bluelibs/runner-dev query 'query { tasks { id } }' \
|
|
389
|
-
--entry-file ./src/main.ts --export app
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
Selection logic:
|
|
393
|
-
|
|
394
|
-
- If `--entry-file` is provided, dry-run mode is used (no server; requires ts-node).
|
|
395
|
-
- Otherwise, the CLI uses a remote endpoint via `--endpoint` or `ENDPOINT/GRAPHQL_ENDPOINT`.
|
|
396
|
-
- If neither is provided, the command errors.
|
|
397
|
-
|
|
398
|
-
**Generate a project overview:**
|
|
399
|
-
|
|
400
|
-
```bash
|
|
401
|
-
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev overview --details 10
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
**Fetch GraphQL schema:**
|
|
405
|
-
|
|
406
|
-
```bash
|
|
407
|
-
# As SDL
|
|
408
|
-
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev schema sdl
|
|
409
|
-
|
|
410
|
-
# As JSON
|
|
411
|
-
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev schema json
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
### Key Flags
|
|
415
|
-
|
|
416
|
-
- `--endpoint <url>`: GraphQL endpoint URL for remote mode.
|
|
417
|
-
- `--headers '<json>'`: JSON for extra headers.
|
|
418
|
-
- `--variables '<json>'`: JSON variables for a query.
|
|
419
|
-
- `--format data|json|pretty`: Output format.
|
|
420
|
-
- `--namespace <str>`: A filter to inject `idIncludes` on top-level fields.
|
|
421
|
-
- `--entry-file <path>`: TypeScript entry file for dry-run mode (no server).
|
|
422
|
-
- `--export <name>`: Named export to use from the entry file (default export is preferred).
|
|
423
|
-
- `--operation <name>`: Operation name for documents with multiple operations.
|
|
424
|
-
- `--raw`: Print the full GraphQL envelope including errors.
|
|
425
|
-
|
|
426
|
-
This direct CLI access provides a powerful way for AI assistants with shell access to script complex interactions, perform detailed introspection, and validate application state without relying on MCP tools.
|
|
427
|
-
|
|
428
|
-
## Common Use Cases
|
|
429
|
-
|
|
430
|
-
### 1. Understanding System Architecture
|
|
431
|
-
|
|
432
|
-
```graphql
|
|
433
|
-
query UnderstandSystem {
|
|
434
|
-
tasks {
|
|
435
|
-
id
|
|
436
|
-
meta {
|
|
437
|
-
title
|
|
438
|
-
description
|
|
439
|
-
}
|
|
440
|
-
dependsOn
|
|
441
|
-
emits
|
|
442
|
-
filePath
|
|
443
|
-
}
|
|
444
|
-
resources {
|
|
445
|
-
id
|
|
446
|
-
meta {
|
|
447
|
-
title
|
|
448
|
-
description
|
|
449
|
-
}
|
|
450
|
-
registers
|
|
451
|
-
filePath
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
### 2. Debugging Issues
|
|
457
|
-
|
|
458
|
-
```graphql
|
|
459
|
-
query DebuggingInfo {
|
|
460
|
-
diagnostics {
|
|
461
|
-
severity
|
|
462
|
-
code
|
|
463
|
-
message
|
|
464
|
-
nodeId
|
|
465
|
-
}
|
|
466
|
-
live {
|
|
467
|
-
errors(last: 20) {
|
|
468
|
-
timestampMs
|
|
469
|
-
sourceKind
|
|
470
|
-
message
|
|
471
|
-
stack
|
|
472
|
-
correlationId
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
### 3. Performance Monitoring
|
|
479
|
-
|
|
480
|
-
```graphql
|
|
481
|
-
query Performance {
|
|
482
|
-
live {
|
|
483
|
-
memory {
|
|
484
|
-
heapUsed
|
|
485
|
-
heapTotal
|
|
486
|
-
rss
|
|
487
|
-
}
|
|
488
|
-
cpu {
|
|
489
|
-
usage
|
|
490
|
-
loadAverage
|
|
491
|
-
}
|
|
492
|
-
eventLoop {
|
|
493
|
-
lag
|
|
494
|
-
}
|
|
495
|
-
runs(last: 50, filter: { ok: false }) {
|
|
496
|
-
nodeId
|
|
497
|
-
durationMs
|
|
498
|
-
error
|
|
499
|
-
timestampMs
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
### 4. Hot Development Workflow
|
|
506
|
-
|
|
507
|
-
```graphql
|
|
508
|
-
# 1. Check current swapped tasks
|
|
509
|
-
query CheckSwapped {
|
|
510
|
-
swappedTasks {
|
|
511
|
-
taskId
|
|
512
|
-
swappedAt
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
# 2. Swap a task
|
|
517
|
-
mutation DevSwap {
|
|
518
|
-
swapTask(
|
|
519
|
-
taskId: "my.task"
|
|
520
|
-
runCode: "async function run(input, deps) { return { message: 'Updated!' }; }"
|
|
521
|
-
) {
|
|
522
|
-
success
|
|
523
|
-
error
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
# 3. Test the task
|
|
528
|
-
mutation TestTask {
|
|
529
|
-
invokeTask(taskId: "my.task", inputJson: "{\"test\": true}", pure: true) {
|
|
530
|
-
success
|
|
531
|
-
result
|
|
532
|
-
executionTimeMs
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
### 5. Durable Workflow Introspection (Node)
|
|
538
|
-
|
|
539
|
-
Durable workflows are regular Runner tasks tagged with `durableWorkflowTag` from `@bluelibs/runner/node`.
|
|
540
|
-
Runner-Dev exposes durable metadata directly on tasks:
|
|
541
|
-
|
|
542
|
-
- `isDurable`
|
|
543
|
-
- `durableResource`
|
|
544
|
-
- `flowShape` (checkpoint structure from `durable.describe(...)`)
|
|
545
|
-
|
|
546
|
-
```graphql
|
|
547
|
-
query DurableTasks {
|
|
548
|
-
tasks {
|
|
549
|
-
id
|
|
550
|
-
isDurable
|
|
551
|
-
durableResource {
|
|
552
|
-
id
|
|
553
|
-
}
|
|
554
|
-
flowShape {
|
|
555
|
-
nodes {
|
|
556
|
-
__typename
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
Minimal workflow setup pattern:
|
|
564
|
-
|
|
565
|
-
```ts
|
|
566
|
-
import { r } from "@bluelibs/runner";
|
|
567
|
-
import {
|
|
568
|
-
durableWorkflowTag,
|
|
569
|
-
memoryDurableResource,
|
|
570
|
-
} from "@bluelibs/runner/node";
|
|
571
|
-
|
|
572
|
-
const durable = memoryDurableResource.fork("app.durable");
|
|
573
|
-
const durableRegistration = durable.with({});
|
|
574
|
-
|
|
575
|
-
const workflow = r
|
|
576
|
-
.task("app.tasks.orderWorkflow")
|
|
577
|
-
.dependencies({ durable })
|
|
578
|
-
.tags([durableWorkflowTag])
|
|
579
|
-
.run(async (input, { durable }) => {
|
|
580
|
-
const ctx = durable.use();
|
|
581
|
-
await ctx.step("validate", async () => ({ ok: true }));
|
|
582
|
-
await ctx.sleep(250, { stepId: "cooldown" });
|
|
583
|
-
return { ok: true };
|
|
584
|
-
})
|
|
585
|
-
.build();
|
|
586
|
-
|
|
587
|
-
const app = r.resource("app").register([durableRegistration, workflow]).build();
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
## Best Practices for AI Assistants
|
|
591
|
-
|
|
592
|
-
### Documentation & Information Gathering
|
|
593
|
-
|
|
594
|
-
1. **Use Array-Based Heading Filters**: Get comprehensive context efficiently with `headingIncludes: ["topic1", "topic2", "topic3"]`
|
|
595
|
-
2. **Start with TOC**: Use `toc: true` to understand document structure before diving deep
|
|
596
|
-
3. **Choose Right Documentation Tool**:
|
|
597
|
-
- `help.runner` for framework concepts
|
|
598
|
-
- `help.runner-dev` for application-specific features
|
|
599
|
-
- `help.read` for custom package docs
|
|
600
|
-
4. **Combine Related Topics**: Instead of multiple calls, use arrays like `["tasks", "resources", "events"]`
|
|
601
|
-
|
|
602
|
-
### System Operations
|
|
603
|
-
|
|
604
|
-
5. **Start with Overview**: Use `project.overview` to understand the system
|
|
605
|
-
6. **Use Correlation IDs**: Track related operations across logs/runs/errors
|
|
606
|
-
7. **Limit Results**: Always use `last` parameter for live queries to avoid overwhelming responses
|
|
607
|
-
8. **Check Diagnostics**: Look for warnings/errors that might indicate issues
|
|
608
|
-
9. **Use Markdown Format**: Request `format: "markdown"` for better readability
|
|
609
|
-
10. **Hot-Swap Safely**: Test swapped code with `pure: true` before production use
|
|
610
|
-
|
|
611
|
-
## Environment Variables
|
|
612
|
-
|
|
613
|
-
- `ENDPOINT` - GraphQL endpoint (default: http://localhost:1337/graphql)
|
|
614
|
-
- `ALLOW_MUTATIONS` - Enable mutations in MCP (default: false)
|
|
615
|
-
- `RUNNER_DEV_EVAL` - Enable eval mutation (default: false, DEV ONLY)
|
|
616
|
-
|
|
617
|
-
## Security Notes
|
|
618
|
-
|
|
619
|
-
- Mutations are disabled by default in production
|
|
620
|
-
- Eval is extremely dangerous and should only be used in development
|
|
621
|
-
- Hot-swapping affects the running system - use with caution
|
|
622
|
-
- All operations are logged with correlation IDs for traceability
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export interface CreateUserInput {
|
|
2
|
-
}
|
|
3
|
-
export interface CreateUserResult {
|
|
4
|
-
}
|
|
5
|
-
export declare const createUser: import("@bluelibs/runner/dist/defs").ITask<CreateUserInput, Promise<CreateUserResult>, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").TaskMiddlewareAttachmentType[]>;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createUser = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Generated by runner-dev new task create-user
|
|
6
|
-
* - Namespace: app
|
|
7
|
-
* - File: src/app/tasks/create-user.task.ts
|
|
8
|
-
*/
|
|
9
|
-
const runner_1 = require("@bluelibs/runner");
|
|
10
|
-
exports.createUser = (0, runner_1.task)({
|
|
11
|
-
id: 'app.tasks.create-user',
|
|
12
|
-
// middleware: [],
|
|
13
|
-
// dependencies: { /* resources */ },
|
|
14
|
-
run: async (_input, _deps) => {
|
|
15
|
-
return {};
|
|
16
|
-
},
|
|
17
|
-
// inputSchema,
|
|
18
|
-
// resultSchema,
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=create-user.task.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-user.task.js","sourceRoot":"","sources":["../../../src/app/tasks/create-user.task.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,6CAAwC;AAU3B,QAAA,UAAU,GAAG,IAAA,aAAI,EAAC;IAC7B,EAAE,EAAE,uBAAuB;IAC3B,kBAAkB;IAClB,qCAAqC;IACrC,GAAG,EAAE,KAAK,EAAE,MAAuB,EAAE,KAAK,EAA6B,EAAE;QACvE,OAAO,EAAsB,CAAC;IAChC,CAAC;IACD,eAAe;IACf,gBAAgB;CACjB,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './create-user.task';
|
package/dist/app/tasks/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./create-user.task"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/tasks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|