@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.
- package/.llms/chunks/cli.casen.aikit-skills.md +2 -2
- package/.llms/chunks/cli.casen.bpmn-generation-pipeline.md +2 -2
- package/.llms/chunks/cli.casen.connection-profiles.md +1 -1
- package/.llms/chunks/cli.casen.generate-bpmn-files.md +3 -3
- package/.llms/chunks/cli.casen.mcp-server-mode.md +31 -0
- package/.llms/chunks/cli.casen.md +1 -1
- package/.llms/chunks/cli.casen.plugins.md +2 -2
- package/.llms/chunks/cli.casen.worker-commands.md +20 -23
- package/.llms/chunks/cli.connector.all-flags.md +1 -1
- package/.llms/chunks/cli.connector.browse-the-bundled-ootb-catalog.md +2 -2
- package/.llms/chunks/cli.connector.built-in-catalog.md +1 -1
- package/.llms/chunks/cli.connector.common-workflows.md +1 -1
- package/.llms/chunks/cli.connector.generate-from-the-openapi-catalog.md +1 -1
- package/.llms/chunks/cli.connector.md +1 -1
- package/.llms/chunks/cli.connector.programmatic-usage.md +2 -2
- package/.llms/chunks/cli.connector.what-gets-generated.md +1 -1
- package/.llms/chunks/cli.generate.definition-mode-ai-scripting-path.md +1 -1
- package/.llms/chunks/cli.generate.md +1 -1
- package/.llms/chunks/cli.generate.modify-existing-mode-input.md +1 -1
- package/.llms/chunks/cli.generate.typical-ai-workflow.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.plugin-naming-conventions.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.test-locally.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.the-bpmnkit-cli-sdk-sdk.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.what-gets-generated.md +1 -1
- package/.llms/chunks/cli.plugin-authoring.writing-commands.md +1 -1
- package/.llms/chunks/cli.plugins.bpmnkit-casen-report.md +1 -1
- package/.llms/chunks/cli.plugins.bpmnkit-casen-worker-http.md +2 -2
- package/.llms/chunks/cli.plugins.md +3 -4
- package/.llms/chunks/cli.skills.deploy.md +1 -1
- package/.llms/chunks/cli.skills.implement.md +2 -2
- package/.llms/chunks/cli.skills.md +2 -2
- package/.llms/chunks/cli.skills.no-mcp-server-required.md +1 -1
- package/.llms/chunks/cli.skills.review.md +1 -1
- package/.llms/chunks/cli.skills.test.md +1 -1
- package/.llms/chunks/cli.view.folder-support.md +1 -1
- package/.llms/chunks/cli.view.md +1 -1
- package/.llms/chunks/cli.view.tabbed-navigation.md +1 -1
- package/.llms/chunks/getting-started.concepts.ai-compact-format.md +13 -2
- package/.llms/chunks/getting-started.concepts.auto-layout.md +1 -1
- package/.llms/chunks/getting-started.concepts.parsing-and-serializing.md +49 -9
- package/.llms/chunks/getting-started.concepts.the-fluent-builder.md +1 -1
- package/.llms/chunks/getting-started.concepts.zeebe-extensions.md +1 -1
- package/.llms/chunks/getting-started.installation.md +1 -1
- package/.llms/chunks/getting-started.installation.runtime-requirements.md +1 -1
- package/.llms/chunks/getting-started.installation.svg-canvas-viewer.md +2 -2
- package/.llms/chunks/getting-started.installation.worker-client.md +1 -1
- package/.llms/chunks/getting-started.quick-start.md +1 -1
- package/.llms/chunks/getting-started.quick-start.step-2-simulate-locally.md +1 -1
- package/.llms/chunks/getting-started.quick-start.step-3-deploy-to-camunda-8.md +1 -1
- package/.llms/chunks/getting-started.quick-start.what-s-next.md +8 -9
- package/.llms/chunks/guides.ai-agents.deploy-grade-validation.md +1 -1
- package/.llms/chunks/guides.ai-agents.how-it-s-modeled.md +1 -1
- package/.llms/chunks/guides.ai-agents.md +1 -1
- package/.llms/chunks/guides.ai-agents.see-also.md +3 -3
- package/.llms/chunks/guides.ai-agents.testing-without-a-real-llm-call.md +1 -1
- package/.llms/chunks/guides.ai-agents.the-aiagent-plan-step.md +1 -1
- package/.llms/chunks/guides.ai-implement.deploying.md +2 -2
- package/.llms/chunks/guides.ai-implement.extending-an-existing-process.md +1 -1
- package/.llms/chunks/guides.ai-implement.lightweight-alternative-casen-skills-install.md +2 -2
- package/.llms/chunks/guides.ai-implement.md +2 -2
- package/.llms/chunks/guides.ai-implement.the-claude-code-plugin.md +2 -2
- package/.llms/chunks/guides.ai.claude-api-example.md +1 -1
- package/.llms/chunks/guides.ai.mcp-server.md +1 -1
- package/.llms/chunks/guides.ai.md +25 -2
- package/.llms/chunks/guides.ai.minimal-empty-diagram.md +1 -1
- package/.llms/chunks/guides.ai.openai-function-calling.md +1 -1
- package/.llms/chunks/guides.building-processes.boundary-events.md +1 -1
- package/.llms/chunks/guides.building-processes.call-activities.md +1 -1
- package/.llms/chunks/guides.building-processes.events.md +1 -1
- package/.llms/chunks/guides.building-processes.multi-instance.md +1 -1
- package/.llms/chunks/guides.building-processes.service-tasks.md +1 -1
- package/.llms/chunks/guides.building-processes.sub-processes.md +1 -1
- package/.llms/chunks/guides.building-processes.task-defaults.md +1 -1
- package/.llms/chunks/guides.claude-code-plugin.ambient-hooks.md +1 -1
- package/.llms/chunks/guides.claude-code-plugin.configuration.md +3 -3
- package/.llms/chunks/guides.claude-code-plugin.md +1 -1
- package/.llms/chunks/guides.claude-code-plugin.reference-docs.md +1 -1
- package/.llms/chunks/guides.deployment.ci-cd-deploy-on-push.md +1 -1
- package/.llms/chunks/guides.deployment.deploying-a-process.md +1 -1
- package/.llms/chunks/guides.deployment.handling-jobs.md +1 -1
- package/.llms/chunks/guides.deployment.managing-incidents.md +1 -1
- package/.llms/chunks/guides.deployment.md +1 -1
- package/.llms/chunks/guides.gateways.branching-inside-sub-processes.md +1 -1
- package/.llms/chunks/guides.gateways.exclusive-gateway-xor.md +1 -1
- package/.llms/chunks/guides.gateways.inclusive-gateway-or.md +1 -1
- package/.llms/chunks/guides.gateways.nested-branching.md +1 -1
- package/.llms/chunks/guides.gateways.parallel-gateway-and.md +1 -1
- package/.llms/chunks/guides.patterns.how-matching-works.md +1 -1
- package/.llms/chunks/guides.patterns.md +1 -1
- package/.llms/chunks/guides.patterns.pattern-schema.md +1 -1
- package/.llms/chunks/guides.patterns.see-also.md +2 -2
- package/.llms/chunks/guides.patterns.using-patterns-from-the-cli.md +1 -1
- package/.llms/chunks/guides.patterns.what-a-pattern-contains.md +1 -1
- package/.llms/chunks/guides.simulation.dmn-decision-evaluation.md +1 -1
- package/.llms/chunks/guides.simulation.instance-state.md +1 -1
- package/.llms/chunks/guides.simulation.md +1 -1
- package/.llms/chunks/guides.simulation.message-correlation.md +1 -1
- package/.llms/chunks/guides.simulation.multiple-deployments.md +1 -1
- package/.llms/chunks/guides.workers-standalone.anatomy-of-a-worker.md +1 -1
- package/.llms/chunks/guides.workers-standalone.camunda-saas.md +1 -1
- package/.llms/chunks/guides.workers-standalone.environment-variables.md +1 -1
- package/.llms/chunks/guides.workers-standalone.md +1 -1
- package/.llms/chunks/guides.workers-standalone.running-workers.md +1 -1
- package/.llms/chunks/guides.workers-standalone.see-also.md +3 -3
- package/.llms/chunks/packages.api.incident-resolution.md +1 -1
- package/.llms/chunks/packages.api.observability-events.md +1 -1
- package/.llms/chunks/packages.api.overview.md +1 -1
- package/.llms/chunks/packages.api.process-operations.md +1 -1
- package/.llms/chunks/packages.api.resource-namespaces.md +1 -1
- package/.llms/chunks/packages.canvas.events.md +1 -1
- package/.llms/chunks/packages.canvas.options.md +1 -1
- package/.llms/chunks/packages.canvas.overview.md +1 -1
- package/.llms/chunks/packages.connector-gen.body-expansion.md +1 -1
- package/.llms/chunks/packages.connector-gen.catalog-reference.md +1 -1
- package/.llms/chunks/packages.connector-gen.catalogentry-type.md +2 -2
- package/.llms/chunks/packages.connector-gen.generating-from-the-catalog.md +1 -1
- package/.llms/chunks/packages.connector-gen.installation.md +1 -1
- package/.llms/chunks/packages.connector-gen.lower-level-api.md +1 -1
- package/.llms/chunks/packages.connector-gen.overview.md +1 -1
- package/.llms/chunks/packages.connector-gen.writeoptions.md +1 -1
- package/.llms/chunks/packages.core.dmn-support.md +1 -1
- package/.llms/chunks/packages.core.installation-applybpmnoperations-definitions-operations-options.md +23 -0
- package/.llms/chunks/packages.core.installation-bpmn.continueprocess-definitions-processid.md +45 -0
- package/.llms/chunks/packages.core.installation-bpmn.creatediagram-id.md +1 -1
- package/.llms/chunks/packages.core.installation-bpmn.createprocess-id-name.md +1 -1
- package/.llms/chunks/packages.core.installation-bpmn.export-definitions.md +1 -1
- package/.llms/chunks/packages.core.installation-bpmn.makeempty-processid-processname.md +1 -1
- package/.llms/chunks/packages.core.installation-bpmn.parse-xml.md +1 -1
- package/.llms/chunks/packages.core.installation-bpmn.sample_xml.md +1 -1
- package/.llms/chunks/packages.core.installation-compactify-definitions.md +6 -3
- package/.llms/chunks/packages.core.installation-diagrambuilder-collaborations.md +35 -0
- package/.llms/chunks/packages.core.installation-diffsemantics-before-after.md +15 -0
- package/.llms/chunks/packages.core.installation-ensurezeebeextension-owner-extension.md +32 -0
- package/.llms/chunks/packages.core.installation-expand-compact.md +4 -2
- package/.llms/chunks/packages.core.installation-joins-inferred-by-default-or-declared.md +28 -0
- package/.llms/chunks/packages.core.installation-layoutprocess-process.md +1 -1
- package/.llms/chunks/packages.core.installation-processbuilder-methods.md +2 -2
- package/.llms/chunks/packages.core.installation-projectsemantics-definitions.md +7 -0
- package/.llms/chunks/packages.core.installation-reconcilecompact-definitions-compact-options.md +12 -0
- package/.llms/chunks/packages.core.installation-semantichash-definitions.md +23 -0
- package/.llms/chunks/packages.core.installation.md +1 -1
- package/.llms/chunks/packages.core.overview.md +2 -2
- package/.llms/chunks/packages.core.writing-files-bpmnkit-core-node.md +43 -0
- package/.llms/chunks/packages.docspack.installation.md +2 -2
- package/.llms/chunks/packages.docspack.overview.md +1 -1
- package/.llms/chunks/packages.docspack.reading-it-yourself.md +1 -1
- package/.llms/chunks/packages.docspack.trust.md +1 -1
- package/.llms/chunks/packages.docspack.using-the-index-directly.md +2 -2
- package/.llms/chunks/packages.editor.basic-setup.md +1 -1
- package/.llms/chunks/packages.editor.full-editor-with-all-plugins.md +1 -1
- package/.llms/chunks/packages.editor.hud-options.md +1 -1
- package/.llms/chunks/packages.editor.overview.md +1 -1
- package/.llms/chunks/packages.engine.installation.md +1 -1
- package/.llms/chunks/packages.engine.overview.md +1 -1
- package/.llms/chunks/packages.engine.processinstance.md +1 -1
- package/.llms/chunks/packages.engine.variable-scoping.md +1 -1
- package/.llms/chunks/packages.worker-client.client.poll-jobtype-options.md +1 -1
- package/.llms/chunks/packages.worker-client.createworkerclient-options.md +1 -1
- package/.llms/chunks/packages.worker-client.job.complete-variables.md +1 -1
- package/.llms/chunks/packages.worker-client.md +1 -1
- package/.llms/chunks/packages.worker-client.oauth2-camunda-saas.md +1 -1
- package/.llms/chunks/packages.worker-client.see-also.md +3 -3
- package/.llms/manifest.json +270 -59
- package/README.md +1 -1
- package/dist/chunk.js +1 -1
- package/llms.txt +64 -53
- 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
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
# @bpmnkit/core — Installation — `compactify(definitions)`
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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://
|
|
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
|
-
|
|
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://
|
|
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
|
|
@@ -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 `{
|
|
26
|
+
| `.build(options?)` | Return the completed `BpmnDefinitions`. Pass `{ explicitJoins: true }` to refuse inferred join gateways — see below |
|
|
27
27
|
|
|
28
28
|
---
|
|
29
|
-
Source: https://
|
|
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
|
package/.llms/chunks/packages.core.installation-reconcilecompact-definitions-compact-options.md
ADDED
|
@@ -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
|
|
@@ -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
|
|
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://
|
|
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:
|
|
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://
|
|
45
|
+
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/
|
|
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://
|
|
52
|
+
Source: https://bpmnkit.com/docs/packages/docspack
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @bpmnkit/worker-client — See also
|
|
2
2
|
|
|
3
|
-
- [Standalone Workers](/guides/workers-standalone
|
|
4
|
-
- [AI-Driven Implementation](/guides/ai-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://
|
|
7
|
+
Source: https://bpmnkit.com/docs/packages/worker-client
|