@bpmnkit/docspack 0.0.5 → 1.0.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.
Files changed (60) hide show
  1. package/.llms/chunks/getting-started.stability.deprecation.md +15 -0
  2. package/.llms/chunks/getting-started.stability.support-window.md +49 -0
  3. package/.llms/chunks/getting-started.stability.versions-are-per-package-not-per-repo.md +17 -0
  4. package/.llms/chunks/getting-started.stability.what-counts-as-public-api.md +33 -0
  5. package/.llms/chunks/getting-started.stability.what-is-a-breaking-change.md +70 -0
  6. package/.llms/chunks/getting-started.stability.what-is-not-a-breaking-change.md +25 -0
  7. package/.llms/chunks/getting-started.stability.what-this-page-is-for.md +21 -0
  8. package/.llms/chunks/guides.ai.minimal-empty-diagram.md +1 -0
  9. package/.llms/chunks/guides.ai.previewing-while-the-model-writes.md +57 -0
  10. package/.llms/chunks/guides.using-bpmnkit-with-ai.asking.md +47 -0
  11. package/.llms/chunks/guides.using-bpmnkit-with-ai.from-the-library-instead-of-the-cli-the-other-route-docspack-index.md +56 -0
  12. package/.llms/chunks/guides.using-bpmnkit-with-ai.from-the-library-instead-of-the-cli.md +86 -0
  13. package/.llms/chunks/guides.using-bpmnkit-with-ai.md +17 -0
  14. package/.llms/chunks/guides.using-bpmnkit-with-ai.runnable-examples.md +31 -0
  15. package/.llms/chunks/guides.using-bpmnkit-with-ai.telling-an-agent-they-exist.md +23 -0
  16. package/.llms/chunks/guides.using-bpmnkit-with-ai.the-two-packs-bpmn-kit-ships.md +20 -0
  17. package/.llms/chunks/guides.using-bpmnkit-with-ai.the-whole-loop-five-markdown-files-to-a-bpmn-diagram.md +64 -0
  18. package/.llms/chunks/guides.using-bpmnkit-with-ai.where-to-go-next.md +13 -0
  19. package/.llms/chunks/packages.ascii.from-the-command-line.md +23 -0
  20. package/.llms/chunks/packages.ascii.installation.md +34 -0
  21. package/.llms/chunks/packages.ascii.overview.md +15 -0
  22. package/.llms/chunks/packages.ascii.rendering-a-decision-table.md +29 -0
  23. package/.llms/chunks/packages.ascii.rendering-a-form.md +39 -0
  24. package/.llms/chunks/packages.camunda-docspack.a-note-on-the-pack-s-name.md +15 -0
  25. package/.llms/chunks/packages.camunda-docspack.installation.md +41 -0
  26. package/.llms/chunks/packages.camunda-docspack.overview.md +28 -0
  27. package/.llms/chunks/packages.camunda-docspack.rebuilding-it.md +27 -0
  28. package/.llms/chunks/packages.camunda-docspack.what-makes-this-corpus-different.md +16 -0
  29. package/.llms/chunks/packages.connectors.api-reference.md +22 -0
  30. package/.llms/chunks/packages.connectors.applying-a-template.md +64 -0
  31. package/.llms/chunks/packages.connectors.installation.md +45 -0
  32. package/.llms/chunks/packages.connectors.overview.md +16 -0
  33. package/.llms/chunks/packages.connectors.stability.md +16 -0
  34. package/.llms/chunks/packages.connectors.validating-a-template.md +27 -0
  35. package/.llms/chunks/packages.connectors.workspace-templates.md +20 -0
  36. package/.llms/chunks/packages.core.installation-compactify-definitions.md +8 -0
  37. package/.llms/chunks/packages.core.installation-createcompactstream-options.md +41 -0
  38. package/.llms/chunks/packages.core.installation-joins-inferred-by-default-or-declared.md +3 -3
  39. package/.llms/chunks/{packages.docspack.installation.md → packages.docspack.giving-an-agent-access.md} +5 -10
  40. package/.llms/chunks/packages.docspack.reading-it-yourself.md +6 -0
  41. package/.llms/chunks/packages.docspack.the-other-pack.md +24 -0
  42. package/.llms/chunks/packages.feel.api-reference.md +34 -0
  43. package/.llms/chunks/packages.feel.formatting-and-highlighting.md +24 -0
  44. package/.llms/chunks/packages.feel.installation.md +45 -0
  45. package/.llms/chunks/packages.feel.overview.md +15 -0
  46. package/.llms/chunks/packages.feel.stability.md +7 -0
  47. package/.llms/chunks/packages.feel.unary-tests.md +46 -0
  48. package/.llms/chunks/packages.plugins.installation.md +28 -0
  49. package/.llms/chunks/packages.plugins.overview.md +18 -0
  50. package/.llms/chunks/packages.plugins.styles.md +26 -0
  51. package/.llms/chunks/packages.plugins.what-is-available.md +68 -0
  52. package/.llms/manifest.json +763 -10
  53. package/README.md +11 -4
  54. package/dist/cli.js +11 -1
  55. package/dist/load.d.ts +10 -2
  56. package/dist/load.js +15 -3
  57. package/dist/search.d.ts +5 -1
  58. package/dist/search.js +12 -1
  59. package/llms.txt +52 -6
  60. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ # @bpmnkit/feel — API Reference
2
+
3
+ | Export | Signature | Description |
4
+ |---|---|---|
5
+ | `parseExpression` | `(src: string) => ParseResult` | Parse an expression |
6
+ | `parseUnaryTests` | `(src: string) => ParseResult` | Parse a DMN input entry |
7
+ | `evaluate` | `(node, ctx: EvalContext) => FeelValue` | Evaluate a parsed expression |
8
+ | `evaluateUnaryTests` | `(node, input, ctx) => boolean` | Test an input against unary tests |
9
+ | `evaluateUnaryTest` | `(node, input, ctx) => boolean` | A single unary test |
10
+ | `tokenize` | `(src: string) => FeelToken[]` | Raw token stream |
11
+ | `formatFeel` | `(node, opts?) => string` | Pretty-print a **parsed node** |
12
+ | `annotate` | `(src: string) => AnnotatedToken[]` | Tokens classified for highlighting |
13
+ | `highlightToHtml` | `(src: string) => string` | Tokens wrapped in `<span>` elements |
14
+ | `highlightFeel` | `(src: string) => string` | Alias for `highlightToHtml` |
15
+
16
+ ### `ParseResult`
17
+
18
+ ```typescript
19
+ interface ParseResult {
20
+ ast: FeelNode | null;
21
+ errors: ParseError[]; // { message, start, end }
22
+ }
23
+ ```
24
+
25
+ ### Types and guards
26
+
27
+ `FeelValue` is the union every evaluation produces. The structured members —
28
+ `FeelDate`, `FeelTime`, `FeelDateTime`, `FeelDayTimeDuration`,
29
+ `FeelYearsMonthsDuration`, `FeelRange`, `FeelContext`, `FeelFunction` — each come with a
30
+ type guard (`isFeelDate`, `isFeelRange`, …), plus `getProperty` for path access. Import them
31
+ by name from the package root.
32
+
33
+ ---
34
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,24 @@
1
+ # @bpmnkit/feel — Formatting and highlighting
2
+
3
+ `formatFeel` pretty-prints — note that it takes a **parsed node**, not source text:
4
+
5
+ ```typescript
6
+ import { parseExpression, formatFeel } from "@bpmnkit/feel";
7
+
8
+ formatFeel(parseExpression("if x>10 then 1 else 2").ast!);
9
+ ```
10
+
11
+ `annotate` classifies source into typed tokens, which is what an editor wants:
12
+
13
+ ```typescript
14
+ import { annotate } from "@bpmnkit/feel";
15
+
16
+ annotate("x > 1")[0];
17
+ // { kind: "variable", value: "x", start: 0, end: 1 }
18
+ ```
19
+
20
+ `highlightToHtml` wraps those tokens in `<span class="feel-…">` elements for a ready-made
21
+ highlighter. `highlightFeel` is an alias for it, kept for compatibility.
22
+
23
+ ---
24
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,45 @@
1
+ # @bpmnkit/feel — Installation
2
+
3
+ ```sh
4
+ npm install @bpmnkit/feel
5
+ ```
6
+
7
+
8
+ ## Parsing and evaluating
9
+
10
+ Parsing and evaluation are separate steps, so you can parse once and evaluate many times, and
11
+ so a syntax error is a value rather than an exception.
12
+
13
+ ```typescript
14
+ import { parseExpression, evaluate } from "@bpmnkit/feel";
15
+
16
+ const parsed = parseExpression("amount * 1.2 + fee");
17
+
18
+ if (parsed.errors.length === 0) {
19
+ const result = evaluate(parsed.ast!, { vars: { amount: 100, fee: 5 } });
20
+ console.log(result); // 125
21
+ }
22
+ ```
23
+
24
+ `evaluate` takes an **`EvalContext`**, not a bare object — variables live under `vars`:
25
+
26
+ ```typescript
27
+ interface EvalContext {
28
+ /** The variables the expression may reference. */
29
+ vars: Record<string, FeelValue>;
30
+ /** Enclosing scope, searched when `vars` has no match. */
31
+ parent?: EvalContext;
32
+ /** The value `?` refers to, used by unary tests. */
33
+ input?: FeelValue;
34
+ }
35
+ ```
36
+
37
+ Parse errors carry their position, so an editor can underline them:
38
+
39
+ ```typescript
40
+ parseExpression("1 +").errors;
41
+ // [{ message: "Expected expression after '+'", start: 3, end: 4 }]
42
+ ```
43
+
44
+ ---
45
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,15 @@
1
+ # @bpmnkit/feel — Overview
2
+
3
+ `@bpmnkit/feel` is a complete implementation of FEEL (Friendly Enough Expression Language), the
4
+ expression language DMN decision tables and Camunda 8 condition expressions are written in.
5
+
6
+ It is four things behind one entry point: a **lexer**, a recursive-descent **parser**, an AST
7
+ **evaluator** with 88 built-in functions, and a **formatter** and **syntax highlighter** for
8
+ editors. It has no dependencies and runs unchanged in Node.js and the browser.
9
+
10
+ Everything else in BPMN Kit that has to understand an expression uses it — gateway conditions
11
+ in `@bpmnkit/core`'s optimizer, the simulator in `@bpmnkit/engine`, the FEEL playground plugin,
12
+ and DMN evaluation.
13
+
14
+ ---
15
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,7 @@
1
+ # @bpmnkit/feel — Stability
2
+
3
+ `@bpmnkit/feel` carries the [1.0 stability promise](/docs/getting-started/stability): its
4
+ exports will not change shape without a major version.
5
+
6
+ ---
7
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,46 @@
1
+ # @bpmnkit/feel — Unary tests
2
+
3
+ A DMN input entry is not an expression but a **unary test** — `> 5`, `"gold","silver"`,
4
+ `[1..10]` — evaluated against an input value. They have their own parse and evaluate pair.
5
+
6
+ ```typescript
7
+ import { parseUnaryTests, evaluateUnaryTests } from "@bpmnkit/feel";
8
+
9
+ const test = parseUnaryTests('"gold","silver"');
10
+
11
+ evaluateUnaryTests(test.ast!, "gold", { vars: {} }); // true
12
+ evaluateUnaryTests(test.ast!, "bronze", { vars: {} }); // false
13
+ ```
14
+
15
+
16
+ ## What the language covers
17
+
18
+ ```typescript
19
+ const run = (src: string, vars = {}) =>
20
+ evaluate(parseExpression(src).ast!, { vars });
21
+
22
+ run('upper case("abc")'); // "ABC"
23
+ run('contains("foobar", "oo")'); // true
24
+ run("sum([1, 2, 3])"); // 6
25
+ run("[1, 2, 3, 4][item > 2]"); // [3, 4] — list filter
26
+ run("{ a: 1, b: { c: 2 } }.b.c"); // 2 — context literal and path
27
+ run("[1..10]"); // a range value
28
+ run('string length("héllo")'); // 5 — code points, not bytes
29
+ ```
30
+
31
+ - **Temporal types** — `date`, `time`, `date and time`, `duration` and
32
+ `years and months duration`, as structured values rather than strings:
33
+
34
+ ```typescript
35
+ run('date and time("2026-01-01T10:00:00")');
36
+ // { type: "date-time", date: { type: "date", year: 2026, month: 1, day: 1 },
37
+ // time: { type: "time", hour: 10, minute: 0, second: 0 } }
38
+ ```
39
+
40
+ - **Ranges** — `[1..10]`, `(0..1)`, and the fourteen DMN range functions that compare them
41
+ (`before`, `after`, `meets`, `met by`, `overlaps`, `during`, `includes`, `coincides`, …).
42
+ - **88 built-in functions** across strings, numbers, lists, contexts and temporals.
43
+ - **Context literals and paths**, including nested access and filters.
44
+
45
+ ---
46
+ Source: https://bpmnkit.com/docs/packages/feel
@@ -0,0 +1,28 @@
1
+ # @bpmnkit/plugins — Installation
2
+
3
+ ```sh
4
+ npm install @bpmnkit/plugins @bpmnkit/canvas
5
+ ```
6
+
7
+
8
+ ## Using a plugin
9
+
10
+ Most plugins are a factory you call and hand to the canvas:
11
+
12
+ ```typescript
13
+ import { BpmnCanvas } from "@bpmnkit/canvas";
14
+ import { createMinimapPlugin } from "@bpmnkit/plugins/minimap";
15
+ import { createZoomControlsPlugin } from "@bpmnkit/plugins/zoom-controls";
16
+
17
+ const canvas = new BpmnCanvas({
18
+ container: document.getElementById("app")!,
19
+ xml,
20
+ plugins: [createMinimapPlugin(), createZoomControlsPlugin()],
21
+ });
22
+ ```
23
+
24
+ Plugins compose: they are independent, order-insensitive unless they say otherwise, and each
25
+ one cleans up after itself when the canvas is destroyed.
26
+
27
+ ---
28
+ Source: https://bpmnkit.com/docs/packages/plugins
@@ -0,0 +1,18 @@
1
+ # @bpmnkit/plugins — Overview
2
+
3
+ `@bpmnkit/plugins` is the capability layer above `@bpmnkit/canvas` and `@bpmnkit/editor`. The
4
+ canvas draws a diagram and exposes a `CanvasApi`; a plugin is anything that takes that API and
5
+ adds something — an overlay, a panel, a keyboard mode, a side effect on save.
6
+
7
+ Every plugin ships behind **its own entry point**, so a viewer that wants a minimap and
8
+ nothing else pays for a minimap and nothing else:
9
+
10
+ ```typescript
11
+ import { createMinimapPlugin } from "@bpmnkit/plugins/minimap";
12
+ ```
13
+
14
+ There is deliberately **no root export**. `import … from "@bpmnkit/plugins"` does not resolve,
15
+ because a barrel would pull all thirty-four into every bundle that wanted one.
16
+
17
+ ---
18
+ Source: https://bpmnkit.com/docs/packages/plugins
@@ -0,0 +1,26 @@
1
+ # @bpmnkit/plugins — Styles
2
+
3
+ Plugins that render their own UI export their CSS as a string and an injector — for example
4
+ `FORM_VIEWER_CSS` and `injectFormViewerStyles` from `form-viewer`. The injectors are
5
+ id-guarded, so calling one twice is free, and a host that would rather ship the CSS itself can
6
+ take the string instead.
7
+
8
+ Brand colours come from `@bpmnkit/ui` tokens with hex fallbacks, so a plugin looks right
9
+ standalone and themes correctly inside an app that sets them.
10
+
11
+
12
+ ## Stability
13
+
14
+ `@bpmnkit/plugins` carries the [1.0 stability promise](/docs/getting-started/stability): the
15
+ entry points listed above, and the exports and option types they name, will not change shape
16
+ without a major version.
17
+
18
+ Two clarifications, because a plugin package is where the edges are:
19
+
20
+ - **Adding a plugin is a minor.** A new entry point breaks nobody.
21
+ - **Rendered DOM and class names are not API.** How a panel is laid out, which elements it
22
+ builds, and the class names inside it are presentation. Style through the documented CSS
23
+ custom properties rather than by reaching into the markup.
24
+
25
+ ---
26
+ Source: https://bpmnkit.com/docs/packages/plugins
@@ -0,0 +1,68 @@
1
+ # @bpmnkit/plugins — What is available
2
+
3
+ **Navigation and view**
4
+
5
+ | Entry point | Export | What it adds |
6
+ |---|---|---|
7
+ | `minimap` | `createMinimapPlugin` | Overview panel; click to pan |
8
+ | `zoom-controls` | `createZoomControlsPlugin` | Zoom in/out/fit buttons |
9
+ | `flow-navigation` | `createFlowNavigationPlugin` | Keyboard cursor that walks the sequence flows |
10
+ | `model-navigation` | `createModelNavigationPlugin` | Drill into sub-processes and call activities |
11
+ | `presentation` | `createPresentationPlugin` | Step through a process as slides |
12
+ | `story-view` | `createStoryViewPlugin` | The process as readable prose cards |
13
+ | `ascii-view` | `createAsciiViewPlugin` | The diagram as text, via `@bpmnkit/ascii` |
14
+ | `watermark` | `createWatermarkPlugin` | A mark over the canvas |
15
+
16
+ **Editing**
17
+
18
+ | Entry point | Export | What it adds |
19
+ |---|---|---|
20
+ | `config-panel` | `createConfigPanelPlugin` | Property panel shell |
21
+ | `config-panel-bpmn` | `createConfigPanelBpmnPlugin` | The BPMN property editors themselves |
22
+ | `command-palette` | `createCommandPalettePlugin` | ⌘K palette for a viewer |
23
+ | `command-palette-editor` | `createCommandPaletteEditorPlugin` | The editor's own commands |
24
+ | `main-menu` | `createMainMenuPlugin` | Menu bar |
25
+ | `tabs` | `createTabsPlugin`, `InMemoryFileResolver` | Multi-file tabs |
26
+ | `history` | `saveCheckpoint`, `listCheckpoints`, `createHistoryPanel` | Named checkpoints |
27
+ | `storage` | `createStoragePlugin` | Persistence, with a host-supplied backend |
28
+ | `storage-tabs-bridge` | `createStorageTabsBridge` | Wires those two together |
29
+ | `element-docs` | `createElementDocsPlugin` | Inline BPMN reference for the selected element |
30
+
31
+ **Correctness**
32
+
33
+ | Entry point | Export | What it adds |
34
+ |---|---|---|
35
+ | `lint` | `createLintPlugin` | Findings on the canvas |
36
+ | `optimize` | `createOptimizePlugin` | The `@bpmnkit/core` optimizer, on the diagram |
37
+ | `pattern-advisor` | `createPatternAdvisorPlugin` | Fifteen pattern rules, with fixes |
38
+ | `variable-flow` | `createVariableFlowPlugin` | Producers and consumers per variable |
39
+ | `diff` | `createBpmnDiff` | Visual diff of two models |
40
+
41
+ **Execution**
42
+
43
+ | Entry point | Export | What it adds |
44
+ |---|---|---|
45
+ | `process-runner` | `createProcessRunnerPlugin` | Simulate, step, chaos mode, scenario tests |
46
+ | `token-highlight` | `createTokenHighlightPlugin` | Token positions on the canvas |
47
+ | `live-mode` | `createLiveModePlugin` | Auto-deploy and live instance overlay |
48
+ | `deploy` | `createDeployPlugin` | Deploy to a cluster, guarded by the optimizer |
49
+
50
+ **DMN, forms and FEEL**
51
+
52
+ | Entry point | Export | What it adds |
53
+ |---|---|---|
54
+ | `dmn-viewer` | `DmnViewer`, `injectDmnViewerStyles` | Render a decision table |
55
+ | `dmn-editor` | `DmnEditor` | Edit one |
56
+ | `form-viewer` | `FormViewer`, `injectFormViewerStyles` | Render a Camunda Form |
57
+ | `form-editor` | `FormEditor` | Edit one |
58
+ | `feel-playground` | `createFeelPlaygroundPlugin`, `buildFeelPlaygroundPanel` | Evaluate FEEL against live variables |
59
+
60
+ **Integration**
61
+
62
+ | Entry point | Export | What it adds |
63
+ |---|---|---|
64
+ | `ai-bridge` | `createAiBridgePlugin` | Natural-language edits over the compact model |
65
+ | `connector-catalog` | `createConnectorCatalogPlugin` | Browse and apply `@bpmnkit/connectors` |
66
+
67
+ ---
68
+ Source: https://bpmnkit.com/docs/packages/plugins