@bpmnkit/docspack 0.0.1 → 0.0.3

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.
Files changed (168) hide show
  1. package/.llms/chunks/cli.casen.aikit-skills.md +2 -2
  2. package/.llms/chunks/cli.casen.bpmn-generation-pipeline.md +2 -2
  3. package/.llms/chunks/cli.casen.connection-profiles.md +1 -1
  4. package/.llms/chunks/cli.casen.generate-bpmn-files.md +3 -3
  5. package/.llms/chunks/cli.casen.mcp-server-mode.md +31 -0
  6. package/.llms/chunks/cli.casen.md +1 -1
  7. package/.llms/chunks/cli.casen.plugins.md +2 -2
  8. package/.llms/chunks/cli.casen.worker-commands.md +20 -23
  9. package/.llms/chunks/cli.connector.all-flags.md +1 -1
  10. package/.llms/chunks/cli.connector.browse-the-bundled-ootb-catalog.md +2 -2
  11. package/.llms/chunks/cli.connector.built-in-catalog.md +1 -1
  12. package/.llms/chunks/cli.connector.common-workflows.md +1 -1
  13. package/.llms/chunks/cli.connector.generate-from-the-openapi-catalog.md +1 -1
  14. package/.llms/chunks/cli.connector.md +1 -1
  15. package/.llms/chunks/cli.connector.programmatic-usage.md +2 -2
  16. package/.llms/chunks/cli.connector.what-gets-generated.md +1 -1
  17. package/.llms/chunks/cli.generate.definition-mode-ai-scripting-path.md +1 -1
  18. package/.llms/chunks/cli.generate.md +1 -1
  19. package/.llms/chunks/cli.generate.modify-existing-mode-input.md +1 -1
  20. package/.llms/chunks/cli.generate.typical-ai-workflow.md +1 -1
  21. package/.llms/chunks/cli.plugin-authoring.md +1 -1
  22. package/.llms/chunks/cli.plugin-authoring.plugin-naming-conventions.md +1 -1
  23. package/.llms/chunks/cli.plugin-authoring.test-locally.md +1 -1
  24. package/.llms/chunks/cli.plugin-authoring.the-bpmnkit-cli-sdk-sdk.md +1 -1
  25. package/.llms/chunks/cli.plugin-authoring.what-gets-generated.md +1 -1
  26. package/.llms/chunks/cli.plugin-authoring.writing-commands.md +1 -1
  27. package/.llms/chunks/cli.plugins.bpmnkit-casen-report.md +1 -1
  28. package/.llms/chunks/cli.plugins.bpmnkit-casen-worker-http.md +2 -2
  29. package/.llms/chunks/cli.plugins.md +3 -4
  30. package/.llms/chunks/cli.skills.deploy.md +1 -1
  31. package/.llms/chunks/cli.skills.implement.md +2 -2
  32. package/.llms/chunks/cli.skills.md +2 -2
  33. package/.llms/chunks/cli.skills.no-mcp-server-required.md +1 -1
  34. package/.llms/chunks/cli.skills.review.md +1 -1
  35. package/.llms/chunks/cli.skills.test.md +1 -1
  36. package/.llms/chunks/cli.view.folder-support.md +1 -1
  37. package/.llms/chunks/cli.view.md +1 -1
  38. package/.llms/chunks/cli.view.tabbed-navigation.md +1 -1
  39. package/.llms/chunks/getting-started.concepts.ai-compact-format.md +13 -2
  40. package/.llms/chunks/getting-started.concepts.auto-layout.md +1 -1
  41. package/.llms/chunks/getting-started.concepts.parsing-and-serializing.md +49 -9
  42. package/.llms/chunks/getting-started.concepts.the-fluent-builder.md +1 -1
  43. package/.llms/chunks/getting-started.concepts.zeebe-extensions.md +1 -1
  44. package/.llms/chunks/getting-started.installation.md +1 -1
  45. package/.llms/chunks/getting-started.installation.runtime-requirements.md +1 -1
  46. package/.llms/chunks/getting-started.installation.svg-canvas-viewer.md +2 -2
  47. package/.llms/chunks/getting-started.installation.worker-client.md +1 -1
  48. package/.llms/chunks/getting-started.quick-start.md +1 -1
  49. package/.llms/chunks/getting-started.quick-start.step-2-simulate-locally.md +1 -1
  50. package/.llms/chunks/getting-started.quick-start.step-3-deploy-to-camunda-8.md +1 -1
  51. package/.llms/chunks/getting-started.quick-start.what-s-next.md +8 -9
  52. package/.llms/chunks/guides.ai-agents.deploy-grade-validation.md +1 -1
  53. package/.llms/chunks/guides.ai-agents.how-it-s-modeled.md +1 -1
  54. package/.llms/chunks/guides.ai-agents.md +1 -1
  55. package/.llms/chunks/guides.ai-agents.see-also.md +3 -3
  56. package/.llms/chunks/guides.ai-agents.testing-without-a-real-llm-call.md +1 -1
  57. package/.llms/chunks/guides.ai-agents.the-aiagent-plan-step.md +1 -1
  58. package/.llms/chunks/guides.ai-implement.deploying.md +2 -2
  59. package/.llms/chunks/guides.ai-implement.extending-an-existing-process.md +1 -1
  60. package/.llms/chunks/guides.ai-implement.lightweight-alternative-casen-skills-install.md +2 -2
  61. package/.llms/chunks/guides.ai-implement.md +2 -2
  62. package/.llms/chunks/guides.ai-implement.the-claude-code-plugin.md +2 -2
  63. package/.llms/chunks/guides.ai.claude-api-example.md +1 -1
  64. package/.llms/chunks/guides.ai.mcp-server.md +1 -1
  65. package/.llms/chunks/guides.ai.md +25 -2
  66. package/.llms/chunks/guides.ai.minimal-empty-diagram.md +1 -1
  67. package/.llms/chunks/guides.ai.openai-function-calling.md +1 -1
  68. package/.llms/chunks/guides.building-processes.boundary-events.md +1 -1
  69. package/.llms/chunks/guides.building-processes.call-activities.md +1 -1
  70. package/.llms/chunks/guides.building-processes.events.md +1 -1
  71. package/.llms/chunks/guides.building-processes.multi-instance.md +1 -1
  72. package/.llms/chunks/guides.building-processes.service-tasks.md +1 -1
  73. package/.llms/chunks/guides.building-processes.sub-processes.md +1 -1
  74. package/.llms/chunks/guides.building-processes.task-defaults.md +1 -1
  75. package/.llms/chunks/guides.claude-code-plugin.ambient-hooks.md +1 -1
  76. package/.llms/chunks/guides.claude-code-plugin.configuration.md +3 -3
  77. package/.llms/chunks/guides.claude-code-plugin.md +1 -1
  78. package/.llms/chunks/guides.claude-code-plugin.reference-docs.md +1 -1
  79. package/.llms/chunks/guides.deployment.ci-cd-deploy-on-push.md +1 -1
  80. package/.llms/chunks/guides.deployment.deploying-a-process.md +1 -1
  81. package/.llms/chunks/guides.deployment.handling-jobs.md +1 -1
  82. package/.llms/chunks/guides.deployment.managing-incidents.md +1 -1
  83. package/.llms/chunks/guides.deployment.md +1 -1
  84. package/.llms/chunks/guides.gateways.branching-inside-sub-processes.md +1 -1
  85. package/.llms/chunks/guides.gateways.exclusive-gateway-xor.md +1 -1
  86. package/.llms/chunks/guides.gateways.inclusive-gateway-or.md +1 -1
  87. package/.llms/chunks/guides.gateways.nested-branching.md +1 -1
  88. package/.llms/chunks/guides.gateways.parallel-gateway-and.md +1 -1
  89. package/.llms/chunks/guides.patterns.how-matching-works.md +1 -1
  90. package/.llms/chunks/guides.patterns.md +1 -1
  91. package/.llms/chunks/guides.patterns.pattern-schema.md +1 -1
  92. package/.llms/chunks/guides.patterns.see-also.md +2 -2
  93. package/.llms/chunks/guides.patterns.using-patterns-from-the-cli.md +1 -1
  94. package/.llms/chunks/guides.patterns.what-a-pattern-contains.md +1 -1
  95. package/.llms/chunks/guides.simulation.dmn-decision-evaluation.md +1 -1
  96. package/.llms/chunks/guides.simulation.instance-state.md +1 -1
  97. package/.llms/chunks/guides.simulation.md +1 -1
  98. package/.llms/chunks/guides.simulation.message-correlation.md +1 -1
  99. package/.llms/chunks/guides.simulation.multiple-deployments.md +1 -1
  100. package/.llms/chunks/guides.workers-standalone.anatomy-of-a-worker.md +1 -1
  101. package/.llms/chunks/guides.workers-standalone.camunda-saas.md +1 -1
  102. package/.llms/chunks/guides.workers-standalone.environment-variables.md +1 -1
  103. package/.llms/chunks/guides.workers-standalone.md +1 -1
  104. package/.llms/chunks/guides.workers-standalone.running-workers.md +1 -1
  105. package/.llms/chunks/guides.workers-standalone.see-also.md +3 -3
  106. package/.llms/chunks/packages.api.incident-resolution.md +1 -1
  107. package/.llms/chunks/packages.api.observability-events.md +1 -1
  108. package/.llms/chunks/packages.api.overview.md +1 -1
  109. package/.llms/chunks/packages.api.process-operations.md +1 -1
  110. package/.llms/chunks/packages.api.resource-namespaces.md +1 -1
  111. package/.llms/chunks/packages.canvas.events.md +1 -1
  112. package/.llms/chunks/packages.canvas.options.md +1 -1
  113. package/.llms/chunks/packages.canvas.overview.md +1 -1
  114. package/.llms/chunks/packages.connector-gen.body-expansion.md +1 -1
  115. package/.llms/chunks/packages.connector-gen.catalog-reference.md +1 -1
  116. package/.llms/chunks/packages.connector-gen.catalogentry-type.md +2 -2
  117. package/.llms/chunks/packages.connector-gen.generating-from-the-catalog.md +1 -1
  118. package/.llms/chunks/packages.connector-gen.installation.md +1 -1
  119. package/.llms/chunks/packages.connector-gen.lower-level-api.md +1 -1
  120. package/.llms/chunks/packages.connector-gen.overview.md +1 -1
  121. package/.llms/chunks/packages.connector-gen.writeoptions.md +1 -1
  122. package/.llms/chunks/packages.core.dmn-support.md +1 -1
  123. package/.llms/chunks/packages.core.installation-applybpmnoperations-definitions-operations-options.md +23 -0
  124. package/.llms/chunks/packages.core.installation-bpmn.continueprocess-definitions-processid.md +45 -0
  125. package/.llms/chunks/packages.core.installation-bpmn.creatediagram-id.md +1 -1
  126. package/.llms/chunks/packages.core.installation-bpmn.createprocess-id-name.md +1 -1
  127. package/.llms/chunks/packages.core.installation-bpmn.export-definitions.md +1 -1
  128. package/.llms/chunks/packages.core.installation-bpmn.makeempty-processid-processname.md +1 -1
  129. package/.llms/chunks/packages.core.installation-bpmn.parse-xml.md +1 -1
  130. package/.llms/chunks/packages.core.installation-bpmn.sample_xml.md +1 -1
  131. package/.llms/chunks/packages.core.installation-compactify-definitions.md +6 -3
  132. package/.llms/chunks/packages.core.installation-diagrambuilder-collaborations.md +35 -0
  133. package/.llms/chunks/packages.core.installation-diffsemantics-before-after.md +15 -0
  134. package/.llms/chunks/packages.core.installation-ensurezeebeextension-owner-extension.md +32 -0
  135. package/.llms/chunks/packages.core.installation-expand-compact.md +4 -2
  136. package/.llms/chunks/packages.core.installation-joins-inferred-by-default-or-declared.md +28 -0
  137. package/.llms/chunks/packages.core.installation-layoutprocess-process.md +1 -1
  138. package/.llms/chunks/packages.core.installation-processbuilder-methods.md +2 -2
  139. package/.llms/chunks/packages.core.installation-projectsemantics-definitions.md +7 -0
  140. package/.llms/chunks/packages.core.installation-reconcilecompact-definitions-compact-options.md +12 -0
  141. package/.llms/chunks/packages.core.installation-semantichash-definitions.md +23 -0
  142. package/.llms/chunks/packages.core.installation.md +1 -1
  143. package/.llms/chunks/packages.core.overview.md +2 -2
  144. package/.llms/chunks/packages.core.writing-files-bpmnkit-core-node.md +43 -0
  145. package/.llms/chunks/packages.docspack.installation.md +2 -2
  146. package/.llms/chunks/packages.docspack.overview.md +1 -1
  147. package/.llms/chunks/packages.docspack.reading-it-yourself.md +1 -1
  148. package/.llms/chunks/packages.docspack.trust.md +1 -1
  149. package/.llms/chunks/packages.docspack.using-the-index-directly.md +2 -2
  150. package/.llms/chunks/packages.editor.basic-setup.md +1 -1
  151. package/.llms/chunks/packages.editor.full-editor-with-all-plugins.md +1 -1
  152. package/.llms/chunks/packages.editor.hud-options.md +1 -1
  153. package/.llms/chunks/packages.editor.overview.md +1 -1
  154. package/.llms/chunks/packages.engine.installation.md +1 -1
  155. package/.llms/chunks/packages.engine.overview.md +1 -1
  156. package/.llms/chunks/packages.engine.processinstance.md +1 -1
  157. package/.llms/chunks/packages.engine.variable-scoping.md +1 -1
  158. package/.llms/chunks/packages.worker-client.client.poll-jobtype-options.md +1 -1
  159. package/.llms/chunks/packages.worker-client.createworkerclient-options.md +1 -1
  160. package/.llms/chunks/packages.worker-client.job.complete-variables.md +1 -1
  161. package/.llms/chunks/packages.worker-client.md +1 -1
  162. package/.llms/chunks/packages.worker-client.oauth2-camunda-saas.md +1 -1
  163. package/.llms/chunks/packages.worker-client.see-also.md +3 -3
  164. package/.llms/manifest.json +270 -59
  165. package/README.md +1 -1
  166. package/dist/chunk.js +1 -1
  167. package/llms.txt +64 -53
  168. package/package.json +3 -3
@@ -0,0 +1,23 @@
1
+ # @bpmnkit/core — Installation — `applyBpmnOperations(definitions, operations, options?)`
2
+
3
+ Applies edit operations to the full model. The operation vocabulary is the same one an LLM
4
+ produces; applying it here rather than to a `CompactDiagram` means an edit touches only what it
5
+ names and leaves the document's pools, lanes, data wiring and Zeebe detail alone.
6
+
7
+ ```typescript
8
+ import { applyBpmnOperations } from "@bpmnkit/core";
9
+
10
+ const { definitions, applied } = applyBpmnOperations(parsed, [
11
+ { op: "rename", id: "Task_1", name: "Approve invoice" },
12
+ { op: "update", id: "Task_1", patch: { jobType: "approve" } },
13
+ ]);
14
+ ```
15
+
16
+ **Strict by default.** An operation naming an element that does not exist throws an
17
+ `OperationError` and nothing is applied — the previous implementation skipped such operations
18
+ silently, so a patch with a misspelled id reported success and changed nothing. Pass
19
+ `{ strict: false }` to get `{ definitions, applied, problems }` instead and decide for
20
+ yourself. The input is never mutated either way.
21
+
22
+ ---
23
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,45 @@
1
+ # @bpmnkit/core — Installation — `Bpmn.continueProcess(definitions, processId)`
2
+
3
+ Continue an existing model instead of generating a replacement for it. `build()` returns *that
4
+ document* with the named process's contents replaced, so other processes, the collaboration,
5
+ lanes, diagram interchange, root elements and unmodelled content all survive. The input is not
6
+ mutated.
7
+
8
+ ```typescript
9
+ const updated = Bpmn.continueProcess(Bpmn.parse(xml), "order-process")
10
+ .insertAfter("validate")
11
+ .serviceTask("notify", { name: "Notify", taskType: "notify" })
12
+ .build();
13
+ ```
14
+
15
+ Also available as `ProcessBuilder.from(definitions, processId)`.
16
+
17
+ **`.at(nodeId)`** continues from a node whose path is open — no outgoing sequence flow, or a
18
+ gateway, where several outgoing flows are the point. It refuses a node that is not directly in
19
+ that process (a node inside a sub-process means building that sub-process), an end event, and a
20
+ node that would gain a second outgoing flow — that is an uncontrolled split, and almost always
21
+ means you wanted to insert.
22
+
23
+ **`.insertAfter(nodeId)`** splices what you build next into the path leaving an existing node:
24
+ `validate → end` becomes `validate → notify → end`. The existing flow keeps its **id and its
25
+ target** and only changes where it starts, so an edge nobody asked to move keeps its identity
26
+ in the diagram and in a diff. It refuses a node with no outgoing flow, and one with several,
27
+ where "after" is ambiguous.
28
+
29
+ Which of the two you mean is not guessable, so it is not guessed.
30
+
31
+ **Continuing never infers gateways.** `ProcessBuilder` normally inserts join gateways for
32
+ branches you build; on a parsed model that reads the whole topology and retargets edges you
33
+ never touched, so continue mode does not do it. A branch that needs a join here says so with
34
+ `.connectTo(joinId)`. `build()` refuses outright if anything would rewire a sequence flow the
35
+ document already had.
36
+
37
+ **Diagram interchange is not regenerated.** Existing shapes keep their positions, and elements
38
+ you add have none until `.withAutoLayout()` or a later `applyAutoLayout()` gives them one.
39
+
40
+ `isExecutable` and the process name are left as they were unless you call `.executable()` or
41
+ `.name()`. BPMN reads an absent `isExecutable` as false, so writing the builder's default onto
42
+ a process that never carried it would make a non-executable process executable.
43
+
44
+ ---
45
+ Source: https://bpmnkit.com/docs/packages/core
@@ -15,4 +15,4 @@ const defs = Bpmn.createDiagram("OrderSystem")
15
15
  ```
16
16
 
17
17
  ---
18
- Source: https://docs.bpmnkit.com/packages/core/
18
+ Source: https://bpmnkit.com/docs/packages/core
@@ -7,4 +7,4 @@ const builder = Bpmn.createProcess("my-process", "My Process");
7
7
  ```
8
8
 
9
9
  ---
10
- Source: https://docs.bpmnkit.com/packages/core/
10
+ Source: https://bpmnkit.com/docs/packages/core
@@ -7,4 +7,4 @@ const xml = Bpmn.export(definitions);
7
7
  ```
8
8
 
9
9
  ---
10
- Source: https://docs.bpmnkit.com/packages/core/
10
+ Source: https://bpmnkit.com/docs/packages/core
@@ -8,4 +8,4 @@ const xml = Bpmn.makeEmpty("my-process", "My Process");
8
8
  ```
9
9
 
10
10
  ---
11
- Source: https://docs.bpmnkit.com/packages/core/
11
+ Source: https://bpmnkit.com/docs/packages/core
@@ -7,4 +7,4 @@ const definitions = Bpmn.parse(xmlString);
7
7
  ```
8
8
 
9
9
  ---
10
- Source: https://docs.bpmnkit.com/packages/core/
10
+ Source: https://bpmnkit.com/docs/packages/core
@@ -4,4 +4,4 @@ A constant containing a simple 3-node sample diagram (start → task → end).
4
4
  Useful for demos and tests.
5
5
 
6
6
  ---
7
- Source: https://docs.bpmnkit.com/packages/core/
7
+ Source: https://bpmnkit.com/docs/packages/core
@@ -1,7 +1,10 @@
1
1
  # @bpmnkit/core — Installation — `compactify(definitions)`
2
2
 
3
- Converts a `BpmnDefinitions` object to a `CompactDiagram` — a small JSON object
4
- suitable for LLM prompts.
3
+ Projects a `BpmnDefinitions` object onto a `CompactDiagram` — a small JSON object suitable
4
+ for LLM prompts. **Lossy:** it keeps topology, names and the common Zeebe bindings, and drops
5
+ collaborations, participants, message flows, lanes, data stores, artifacts, root-level
6
+ messages and errors, multi-instance loop characteristics, full `zeebe:ioMapping` entries and
7
+ diagram interchange.
5
8
 
6
9
  ```typescript
7
10
  import { compactify } from "@bpmnkit/core";
@@ -10,4 +13,4 @@ const compact = compactify(Bpmn.parse(xml));
10
13
  ```
11
14
 
12
15
  ---
13
- Source: https://docs.bpmnkit.com/packages/core/
16
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,35 @@
1
+ # @bpmnkit/core — Installation — DiagramBuilder — collaborations
2
+
3
+ `.participant()`, `.message()` and `.messageFlow()` build a pooled diagram. Ids are used
4
+ verbatim, so a generated diagram can be referred to by the ids you chose.
5
+
6
+ ```typescript
7
+ const defs = Bpmn.createDiagram("Order")
8
+ .process("order", (p) => p.startEvent("o_start").serviceTask("o_send", { taskType: "send" }).endEvent("o_end"))
9
+ .process("supply", (p) => p.startEvent("s_start").serviceTask("s_recv", { taskType: "recv" }).endEvent("s_end"))
10
+ .participant("P_Buyer", { name: "Buyer", processId: "order" })
11
+ .participant("P_Seller", { name: "Seller", processId: "supply" })
12
+ .participant("P_Bank", { name: "Bank" }) // black box — no process
13
+ .message("Msg_Order", { name: "order placed", correlationKey: "= orderId" })
14
+ .messageFlow("MF_1", { source: "o_send", target: "s_recv", messageRef: "Msg_Order" })
15
+ .build();
16
+ ```
17
+
18
+ A message flow's `source` and `target` name either participants or flow nodes inside them —
19
+ both are valid BPMN, and `applyAutoLayout` reads either.
20
+
21
+ A diagram with no participants gets **no** collaboration element. An empty
22
+ `<bpmn:collaboration/>` is not a neutral addition: a modeler reads it as "this document is
23
+ pooled" and renders every process pool-less.
24
+
25
+ `.collaborationId(id)` renames the collaboration, which defaults to `"Collaboration_1"`.
26
+
27
+ `build()` refuses a collaboration a modeler would not open, reporting every problem at once:
28
+ a participant naming a process the diagram does not contain, two participants claiming the
29
+ same process, a duplicate id, a message flow whose endpoint does not exist or which names an
30
+ undeclared message, and — the one that is easy to write by accident — a message flow that
31
+ starts and ends in the same pool. A message flow is what crosses a pool boundary; one that
32
+ stays inside a pool should be a sequence flow.
33
+
34
+ ---
35
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,15 @@
1
+ # @bpmnkit/core — Installation — `diffSemantics(before, after)`
2
+
3
+ What changed between two models, as `{ added, removed, changed }` keyed by element id. Changes
4
+ are attributed to the element that actually changed rather than to all of its ancestors, and
5
+ running auto-layout produces an empty diff.
6
+
7
+ ```typescript
8
+ import { diffSemantics } from "@bpmnkit/core";
9
+
10
+ const { added, removed, changed } = diffSemantics(before, after);
11
+ // changed: [{ id: "Task_1", before: {...}, after: {...} }]
12
+ ```
13
+
14
+ ---
15
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,32 @@
1
+ # @bpmnkit/core — Installation — `ensureZeebeExtension(owner, extension)`
2
+
3
+ Finds a Zeebe extension element on a flow element, creating it if absent, and refuses a
4
+ placement the Zeebe schema does not allow. Use it instead of pushing onto `extensionElements`
5
+ directly: the push cannot fail, so `zeebe:calledDecision` on a service task becomes a deploy
6
+ error in Camunda rather than a throw where it was written.
7
+
8
+ ```typescript
9
+ import { ensureZeebeExtension, ZeebePlacementError } from "@bpmnkit/core";
10
+
11
+ ensureZeebeExtension(serviceTask, "zeebe:taskDefinition").attributes.type = "worker";
12
+ ensureZeebeExtension(serviceTask, "zeebe:calledDecision"); // throws ZeebePlacementError
13
+ ```
14
+
15
+ `ZeebePlacementError` carries `ownerElement`, `extension` and `allowedOn`, so the message
16
+ names the elements that *would* have been valid.
17
+
18
+ `isZeebePlacementAllowed(ownerElement, extension)` answers the same question without throwing,
19
+ and `ZEEBE_PLACEMENT` is the table itself — extension name to the element names that may own it.
20
+
21
+ The table is generated from `zeebe.json`'s `meta.allowedIn` (`zeebe-bpmn-moddle`, MIT),
22
+ resolved against the BPMN type graph, so it states the schema's rules rather than ours. **An
23
+ extension the schema says nothing about is allowed**: the descriptor declares no owner for
24
+ `zeebe:subscription` or `zeebe:properties`, and inventing a rule there would reject valid
25
+ documents. Non-`zeebe:` extensions are not checked at all.
26
+
27
+ `applyBpmnOperations` runs the same check, and reports a misplaced extension as an ordinary
28
+ operation problem — checked before anything is written, so the element is left untouched and
29
+ the rest of the batch still applies.
30
+
31
+ ---
32
+ Source: https://bpmnkit.com/docs/packages/core
@@ -1,6 +1,8 @@
1
1
  # @bpmnkit/core — Installation — `expand(compact)`
2
2
 
3
- Converts a `CompactDiagram` back to a `BpmnDefinitions` object.
3
+ Builds a `BpmnDefinitions` object from a `CompactDiagram`. It restores only what the compact
4
+ form carries, so `expand(compactify(definitions))` is not `definitions` — use this to build a
5
+ model from a compact definition, not as a round trip for a file you need to keep.
4
6
 
5
7
  ```typescript
6
8
  import { expand } from "@bpmnkit/core";
@@ -10,4 +12,4 @@ const xml = Bpmn.export(definitions);
10
12
  ```
11
13
 
12
14
  ---
13
- Source: https://docs.bpmnkit.com/packages/core/
15
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,28 @@
1
+ # @bpmnkit/core — Installation — Joins: inferred by default, or declared
2
+
3
+ Where several branches of one gateway reach the same element, `build()` inserts a matching
4
+ join gateway for you. That is a help when you are reading the chain you just wrote, and a trap
5
+ for generated code, which cannot see the element it did not emit.
6
+
7
+ ```typescript
8
+ const defs = builder.build({ explicitJoins: true });
9
+ // Error: Inferred join gateways: gw_join. Declare them with .connectTo(joinId),
10
+ // or drop { explicitJoins: true } to keep the inference.
11
+ ```
12
+
13
+ The error names the gateway it would have added, which is the id you pass to `.connectTo()`.
14
+
15
+ A join you declare only counts if it **matches the split**: an exclusive split converging on a
16
+ parallel gateway is not the gateway inference would have added, so it is still inferred — and
17
+ with `explicitJoins` that refusal is the only thing that tells you.
18
+
19
+ `Bpmn.continueProcess()` never infers joins at all, whatever this option says. Inference reads
20
+ the whole topology, and on a document you were handed that means rewriting edges you never
21
+ touched.
22
+
23
+ `{ strict: true }` is the former name for this option and still works. It was renamed because
24
+ "strict" says nothing about what it is strict *about*, and because `applyBpmnOperations` takes
25
+ a `strict` that means something else entirely.
26
+
27
+ ---
28
+ Source: https://bpmnkit.com/docs/packages/core
@@ -12,4 +12,4 @@ const result = layoutProcess(process);
12
12
  ```
13
13
 
14
14
  ---
15
- Source: https://docs.bpmnkit.com/packages/core/
15
+ Source: https://bpmnkit.com/docs/packages/core
@@ -23,7 +23,7 @@ All builder methods return `this` for chaining.
23
23
  | `.defaults(options)` | Set process-wide defaults (e.g. `{ serviceTask: { retries: "5" } }`) applied to all subsequent tasks |
24
24
  | `.disconnectedStartEvent(id?, options?)` | Add a start event with no auto-connection to the current cursor — alias for `addStartEvent` |
25
25
  | `.withAutoLayout()` | Apply Sugiyama layout before building |
26
- | `.build(options?)` | Return the completed `BpmnDefinitions`. Pass `{ strict: true }` to throw if auto-join gateways are inserted (encourages explicit topology) |
26
+ | `.build(options?)` | Return the completed `BpmnDefinitions`. Pass `{ explicitJoins: true }` to refuse inferred join gateways see below |
27
27
 
28
28
  ---
29
- Source: https://docs.bpmnkit.com/packages/core/
29
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,7 @@
1
+ # @bpmnkit/core — Installation — `projectSemantics(definitions)`
2
+
3
+ The canonical, presentation-free projection `semanticHash` covers. Returns `{ value, elements }`
4
+ — the whole model as canonical JSON, plus a shallow projection per element id.
5
+
6
+ ---
7
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,12 @@
1
+ # @bpmnkit/core — Installation — `reconcileCompact(definitions, compact, options?)`
2
+
3
+ Applies a `CompactDiagram` to an existing model as a set of changes. Elements that already
4
+ exist are patched in place and keep their extensions, new ones are inserted, and ones the input
5
+ no longer mentions are removed — where `expand(compact)` would rebuild the whole document and
6
+ discard everything the compact form cannot describe.
7
+
8
+ Processes are only added, never removed: sending one process of a multi-process document means
9
+ "this is how that process should look", not "delete the others".
10
+
11
+ ---
12
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,23 @@
1
+ # @bpmnkit/core — Installation — `semanticHash(definitions)`
2
+
3
+ SHA-256 of the model's meaning, with the diagram excluded. Two documents that say the same
4
+ thing hash the same however they are laid out, ordered or formatted — so a changed hash means
5
+ the model changed, not that the picture moved.
6
+
7
+ ```typescript
8
+ import { Bpmn, applyAutoLayout, semanticHash } from "@bpmnkit/core";
9
+
10
+ const definitions = Bpmn.parse(xml);
11
+ semanticHash(applyAutoLayout(definitions)) === semanticHash(definitions); // true
12
+ ```
13
+
14
+ Excluded from the hash: diagram interchange and its `bioc`/`color` extensions,
15
+ `zeebe:modelerTemplateIcon`, and `exporter`/`exporterVersion`. Element order, attribute order
16
+ and whitespace do not affect it. `modeler:executionPlatform` **is** included — it names the
17
+ engine the model targets, so changing it is a real change.
18
+
19
+ Synchronous and dependency-free, so it works in the browser and does not force callers to
20
+ become async.
21
+
22
+ ---
23
+ Source: https://bpmnkit.com/docs/packages/core
@@ -8,4 +8,4 @@ pnpm add @bpmnkit/core
8
8
  ## API Reference
9
9
 
10
10
  ---
11
- Source: https://docs.bpmnkit.com/packages/core/
11
+ Source: https://bpmnkit.com/docs/packages/core
@@ -4,7 +4,7 @@
4
4
  BPMN 2.0 programmatically:
5
5
 
6
6
  - **Fluent builder** — chain method calls to construct any process shape
7
- - **Parser/serializer** — round-trip any BPMN 2.0 XML with full fidelity
7
+ - **Parser/serializer** — round-trip BPMN 2.0 XML, keeping unmodelled content verbatim
8
8
  - **Auto-layout** — Sugiyama algorithm assigns coordinates automatically
9
9
  - **Compact format** — token-efficient AI-friendly intermediate representation
10
10
  - **DMN support** — parse, build, and export DMN 1.3 decision tables
@@ -12,4 +12,4 @@ BPMN 2.0 programmatically:
12
12
  Zero runtime dependencies. ESM-only. Runs in browsers, Node.js, Deno, Bun, and edge runtimes.
13
13
 
14
14
  ---
15
- Source: https://docs.bpmnkit.com/packages/core/
15
+ Source: https://bpmnkit.com/docs/packages/core
@@ -0,0 +1,43 @@
1
+ # @bpmnkit/core — Writing files — `@bpmnkit/core/node`
2
+
3
+ Anything that touches the filesystem lives behind the `@bpmnkit/core/node` subpath, so
4
+ importing `@bpmnkit/core` itself never pulls `node:` builtins into a browser bundle.
5
+
6
+ ### `writeBpmn(definitions, options)`
7
+
8
+ The only supported way to write a BPMN file, and the only one that checks what it wrote.
9
+ Before anything reaches disk it serialises the model, **parses the result back**, and compares
10
+ the semantic hashes. If they differ the write is refused and nothing is written.
11
+
12
+ ```typescript
13
+ import { writeBpmn } from "@bpmnkit/core/node";
14
+ import { WriteError, WriteVerificationError } from "@bpmnkit/core";
15
+
16
+ const result = await writeBpmn(definitions, {
17
+ output: "flow.bpmn",
18
+ force: false, // default — refuses rather than replace an existing file
19
+ layout: "preserve", // default — "auto" regenerates the diagram first
20
+ });
21
+
22
+ result.destination; // absolute path written
23
+ result.semanticHash; // the model's hash, verified after reading it back
24
+ result.outputSha256; // digest of the exact bytes on disk
25
+ result.changes; // what this write changed about the file it replaced
26
+ ```
27
+
28
+ The file appears complete or not at all: contents go to a temporary file in the destination's
29
+ own directory and are then linked or renamed into place, so an interrupted write cannot leave
30
+ a half-written model behind. Two concurrent writes to the same new path cannot both succeed.
31
+
32
+ `WriteVerificationError` carries a `changes` field naming the elements that diverged.
33
+ `WriteError` means the destination exists and `force` was not given, or the filesystem refused.
34
+
35
+ **What the check does not cover.** It compares the model in memory against the model read back
36
+ from the output, so it catches the serialiser losing something. It cannot catch the *parser*
37
+ having dropped something on the way in — content the parser never saw is absent from both
38
+ sides. That is what the round-trip corpus gate covers, and there is deliberately no option to
39
+ skip verification: turning it off would only ever be used to get past the bug it exists to
40
+ report. If you want unchecked serialisation, `Bpmn.export()` still returns a string.
41
+
42
+ ---
43
+ Source: https://bpmnkit.com/docs/packages/core
@@ -32,7 +32,7 @@ When you're ready for production, deploy to a real Camunda 8 cluster:
32
32
  ...
33
33
 
34
34
  ---
35
- Source: https://docs.bpmnkit.com/getting-started/quick-start/
35
+ Source: /docs/getting-started/quick-start
36
36
 
37
37
  ---
38
38
  cost: 1,204 tokens, capped at 3,000
@@ -42,4 +42,4 @@ Every answer names the package, the version and the chunk it came from, and clos
42
42
  what it cost. An agent can quote the chunk id back when a passage turns out to be wrong.
43
43
 
44
44
  ---
45
- Source: https://docs.bpmnkit.com/packages/docspack/
45
+ Source: https://bpmnkit.com/docs/packages/docspack
@@ -20,4 +20,4 @@ does the same job with no extra tooling.
20
20
  - Zero runtime dependencies
21
21
 
22
22
  ---
23
- Source: https://docs.bpmnkit.com/packages/docspack/
23
+ Source: https://bpmnkit.com/docs/packages/docspack
@@ -31,4 +31,4 @@ with the versions installed.
31
31
  Options: `--limit <n>`, `--max-tokens <n>`, `--pack <name>`, `--cwd <dir>`.
32
32
 
33
33
  ---
34
- Source: https://docs.bpmnkit.com/packages/docspack/
34
+ Source: https://bpmnkit.com/docs/packages/docspack
@@ -10,4 +10,4 @@ security boundary rather than as configuration:
10
10
  - packages under the `@docspack-community` scope are labelled unreviewed in every answer
11
11
 
12
12
  ---
13
- Source: https://docs.bpmnkit.com/packages/docspack/
13
+ Source: https://bpmnkit.com/docs/packages/docspack
@@ -21,7 +21,7 @@ console.log(`${tokens} tokens`);
21
21
 
22
22
  ## How the pack is built
23
23
 
24
- `bpmnkit-docs build` reads the Markdown under `apps/docs/src/content/docs`, splits each
24
+ `bpmnkit-docs build` reads the Markdown under `apps/landing/src/content/docs`, splits each
25
25
  document at its `##` headings, and writes one file per chunk:
26
26
 
27
27
  ```
@@ -49,4 +49,4 @@ You can steer either from the document itself:
49
49
  ```
50
50
 
51
51
  ---
52
- Source: https://docs.bpmnkit.com/packages/docspack/
52
+ Source: https://bpmnkit.com/docs/packages/docspack
@@ -38,4 +38,4 @@ const hud = initEditorHud(editor, {
38
38
  ```
39
39
 
40
40
  ---
41
- Source: https://docs.bpmnkit.com/packages/editor/
41
+ Source: https://bpmnkit.com/docs/packages/editor
@@ -27,4 +27,4 @@ const hud = initEditorHud(editor, { aiButton: dock.aiPane.button });
27
27
  ```
28
28
 
29
29
  ---
30
- Source: https://docs.bpmnkit.com/packages/editor/
30
+ Source: https://bpmnkit.com/docs/packages/editor
@@ -38,4 +38,4 @@ type SideDock = {
38
38
  ```
39
39
 
40
40
  ---
41
- Source: https://docs.bpmnkit.com/packages/editor/
41
+ Source: https://bpmnkit.com/docs/packages/editor
@@ -18,4 +18,4 @@ pnpm add @bpmnkit/editor
18
18
  ```
19
19
 
20
20
  ---
21
- Source: https://docs.bpmnkit.com/packages/editor/
21
+ Source: https://bpmnkit.com/docs/packages/editor
@@ -74,4 +74,4 @@ const processes = engine.getDeployedProcesses();
74
74
  ```
75
75
 
76
76
  ---
77
- Source: https://docs.bpmnkit.com/packages/engine/
77
+ Source: https://bpmnkit.com/docs/packages/engine
@@ -16,4 +16,4 @@ JavaScript runtime — no external services required.
16
16
  Zero runtime dependencies. ESM-only.
17
17
 
18
18
  ---
19
- Source: https://docs.bpmnkit.com/packages/engine/
19
+ Source: https://bpmnkit.com/docs/packages/engine
@@ -14,4 +14,4 @@
14
14
  | `instance.deliverMessage(name, vars?)` | Correlate a message to a waiting event |
15
15
 
16
16
  ---
17
- Source: https://docs.bpmnkit.com/packages/engine/
17
+ Source: https://bpmnkit.com/docs/packages/engine
@@ -24,4 +24,4 @@ Call `parseDurationMs(str)` from `@bpmnkit/engine` to convert duration strings
24
24
  to milliseconds in your own code.
25
25
 
26
26
  ---
27
- Source: https://docs.bpmnkit.com/packages/engine/
27
+ Source: https://bpmnkit.com/docs/packages/engine
@@ -37,4 +37,4 @@ interface ActivatedJob {
37
37
  ```
38
38
 
39
39
  ---
40
- Source: https://docs.bpmnkit.com/packages/worker-client/
40
+ Source: https://bpmnkit.com/docs/packages/worker-client
@@ -29,4 +29,4 @@ const client = createWorkerClient({
29
29
  A `WorkerClient` object with a single `poll()` method.
30
30
 
31
31
  ---
32
- Source: https://docs.bpmnkit.com/packages/worker-client/
32
+ Source: https://bpmnkit.com/docs/packages/worker-client
@@ -26,4 +26,4 @@ await job.throwError("PAYMENT_DECLINED", "Card declined by issuer", { code: "05"
26
26
  ```
27
27
 
28
28
  ---
29
- Source: https://docs.bpmnkit.com/packages/worker-client/
29
+ Source: https://bpmnkit.com/docs/packages/worker-client
@@ -30,4 +30,4 @@ for await (const job of client.poll("com.example:send-email:1")) {
30
30
  ```
31
31
 
32
32
  ---
33
- Source: https://docs.bpmnkit.com/packages/worker-client/
33
+ Source: https://bpmnkit.com/docs/packages/worker-client
@@ -23,4 +23,4 @@ node dist/index.js
23
23
  | `ZEEBE_TOKEN_AUDIENCE` | OAuth2 audience |
24
24
 
25
25
  ---
26
- Source: https://docs.bpmnkit.com/packages/worker-client/
26
+ Source: https://bpmnkit.com/docs/packages/worker-client
@@ -1,7 +1,7 @@
1
1
  # @bpmnkit/worker-client — See also
2
2
 
3
- - [Standalone Workers](/guides/workers-standalone/) — scaffolding, running, and deploying workers
4
- - [AI-Driven Implementation](/guides/ai-implement/) — generate workers automatically with `/implement`
3
+ - [Standalone Workers](/docs/guides/workers-standalone) — scaffolding, running, and deploying workers
4
+ - [AI-Driven Implementation](/docs/guides/ai-implement) — generate workers automatically with `/implement`
5
5
 
6
6
  ---
7
- Source: https://docs.bpmnkit.com/packages/worker-client/
7
+ Source: https://bpmnkit.com/docs/packages/worker-client