Skip to content

feat(workflow-kit): adapter/world injectables — fix tracing Nitro/Docker (.output) - #115

Merged
Killian-Aidalinfo merged 9 commits into
devfrom
feat/workflow-kit-injectable-adapter
Jun 2, 2026
Merged

feat(workflow-kit): adapter/world injectables — fix tracing Nitro/Docker (.output)#115
Killian-Aidalinfo merged 9 commits into
devfrom
feat/workflow-kit-injectable-adapter

Conversation

@Killian-Aidalinfo

Copy link
Copy Markdown
Collaborator

Pourquoi

En build bundlé (Nitro node-server, déploiement qui ne copie que .output), les import() à argument variable de la chaîne world ne sont pas tracés par nft → @ai_kit/workflow-world et @workflow/world-postgres manquent dans .output (le worker tombe en fallback world-local / module introuvable). Le contournement traceInclude est fragile (attend des chemins, pas des noms de package).

Quoi

Rendre la chaîne injectable pour que les imports soient des littéraux dans le code tracé de l'app :

  • @ai_kit/workflow-world : WorldConfig.module? — loader du world fourni par l'hôte (() => import('@workflow/world-postgres')). Hint d'erreur conditionnel.
  • @ai_kit/core : WorkflowKitOptions.adapter? — un WorldEngineAdapter pré-construit ; court-circuite l'import dynamique de @ai_kit/workflow-world. La config world est ignorée quand un adapter est fourni (validation type gated).

Usage hôte :

import { WorkflowKit } from '@ai_kit/core'
import { createWorldAdapter } from '@ai_kit/workflow-world'
new WorkflowKit({ engine: 'world', adapter: createWorldAdapter({
  type: 'postgres', url, module: () => import('@workflow/world-postgres'),
}) })

Rétrocompatible : sans adapter/module, les chemins dynamiques sont inchangés.

Versions

  • @ai_kit/core 1.5.0 → 1.6.0
  • @ai_kit/workflow-world 0.1.1 → 0.2.0

Tests

  • workflow-world : 17 passed / 2 skipped · core (kit) : 14 passed · builds tsc clean.
  • Revue : spec ✅ + qualité ✅ par tâche (1 Important corrigé) + revue holistique finale ✅.

Spec : docs/superpowers/specs/2026-06-02-workflow-kit-injectable-adapter-design.md
Plan : docs/superpowers/plans/2026-06-02-workflow-kit-injectable-adapter.md

🤖 Generated with Claude Code

Killian-Aidalinfo and others added 9 commits June 2, 2026 22:24
… Nitro

Conçoit l'injection d'un WorldEngineAdapter pré-construit dans WorkflowKit
+ un loader 'module' sur createWorldAdapter, pour que les imports de la
chaîne world (@ai_kit/workflow-world, @workflow/world-postgres) vivent en
littéraux dans le code tracé de l'app hôte → inclus dans .output sans
traceInclude. Rétrocompatible, dépendances optionnelles préservées.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (tracing-friendly)

Permet à l'app hôte de fournir () => import('@workflow/world-postgres'),
littéral tracé par le bundler, à la place de l'import dynamique interne.
Rétrocompatible : sans 'module', comportement inchangé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… injecté

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…EngineAdapter

Quand fourni, court-circuite l'import dynamique de @ai_kit/workflow-world :
l'app hôte importe createWorldAdapter statiquement → traçable par le bundler.
Rétrocompatible : sans 'adapter', le chemin d'import dynamique est inchangé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…alidation type gated)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…jecté

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: adapter/world injectables (fix tracing Nitro/Docker)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…_MODULE_NOT_FOUND

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Killian-Aidalinfo
Killian-Aidalinfo merged commit c7b5977 into dev Jun 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant