@owlmeans/server-planning 0.1.18-rc.0 → 0.1.18-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/server-planning/SKILL.md +1 -1
- package/build/projection.d.ts +1 -1
- package/build/projection.d.ts.map +1 -1
- package/build/projection.js +1 -1
- package/build/projection.js.map +1 -1
- package/build/queue/index.d.ts +19 -0
- package/build/queue/index.d.ts.map +1 -0
- package/build/queue/index.js +8 -0
- package/build/queue/index.js.map +1 -0
- package/package.json +24 -17
- package/src/projection.ts +2 -2
- package/src/queue/index.ts +25 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ the `@owlmeans/server-planning/store` subpath.
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
12
12
|
```sh
|
|
13
|
-
bun add @owlmeans/server-planning@^0.1.18-rc.
|
|
13
|
+
bun add @owlmeans/server-planning@^0.1.18-rc.2 @owlmeans/planning@^0.1.18-rc.2 ajv
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Concepts
|
|
@@ -141,7 +141,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
141
141
|
your project's skill store (`.agents/skills/`):
|
|
142
142
|
|
|
143
143
|
```sh
|
|
144
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
144
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.30
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/server-planning",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.1.18-rc.2",
|
|
5
|
+
"generatedAt": "2026-09-19T13:42:56.215Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/server-planning
|
|
9
9
|
|
|
10
10
|
**Layer:** Server
|
|
11
|
-
**Install:** `"@owlmeans/server-planning": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/server-planning": "^0.1.18-rc.2"` in `dependencies` (`ajv` is a peer)
|
|
12
12
|
|
|
13
13
|
The general implementation of `@owlmeans/planning`: the planning service (a plugin host), the
|
|
14
14
|
scoped facade, the executor every write goes through, the in-memory reference store, the commit
|
package/build/projection.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BasicConfig, BasicContext } from '@owlmeans/context';
|
|
2
2
|
import type { CommitEvent, PlanningService, PlanningStore } from '@owlmeans/planning';
|
|
3
|
-
import type { ProjectionRequest } from '
|
|
3
|
+
import type { ProjectionRequest } from './queue/index.js';
|
|
4
4
|
import type { JobProcessor, QueueHooks } from '@owlmeans/queue';
|
|
5
5
|
import type { FoldResult } from './store/types.js';
|
|
6
6
|
export interface ProjectionOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG/D,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7D,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,aAAa,CAAA;IACnD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAWD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAC7B,YAAY,CAAC,WAAW,CAAC,SAAS,iBAAiB,KACvD,YAAY,CAAC,iBAAiB,EAAE,UAAU,CAU5C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAS,YAAY,CAAC,WAAW,CAAC,SAAS,iBAAiB,KAAG,UAU5F,CAAA"}
|
package/build/projection.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PLANNING_SERVICE } from '@owlmeans/planning';
|
|
2
|
-
import { PLANNING_PROJECT_JOB, PLANNING_PROJECTION_QUEUE } from '
|
|
2
|
+
import { PLANNING_PROJECT_JOB, PLANNING_PROJECTION_QUEUE } from './queue/index.js';
|
|
3
3
|
import { failPending, foldPending } from './store/fold.js';
|
|
4
4
|
const serviceOf = (ctx, opts) => ctx.service(opts?.service ?? PLANNING_SERVICE);
|
|
5
5
|
const storeOf = (service, opts) => opts?.store?.(service) ?? service.store();
|
package/build/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAa1D,MAAM,SAAS,GAAG,CAAC,GAA8B,EAAE,IAAwB,EAAmB,EAAE,CAC9F,GAAG,CAAC,OAAO,CAAsB,IAAI,EAAE,OAAO,IAAI,gBAAgB,CAAC,CAAA;AAErE,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,IAAwB,EAAiB,EAAE,CACpF,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAA;AAE3C,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,IAAwB,EAAE,EAAE,CACrE,IAAI,EAAE,OAAO,IAAK,KAAK,CAAC,OAA0C,EAAE,OAAO,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,GAA8B,EAAE,IAAwB,EACX,EAAE,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAExC,OAAO,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClE,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;QAC9D,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAA8B,EAAE,IAAwB,EAAc,EAAE,CAAC,CAAC;IAC3G,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,KAAK,KAAK,yBAAyB,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACjF,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAyB,CAAA;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACxC,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACxG,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Config, JobOptions, QueueWorkerOptions } from '@owlmeans/queue';
|
|
2
|
+
/** The server-side queue used to project planning transitions. */
|
|
3
|
+
export declare const PLANNING_PROJECTION_QUEUE = "planning-projection";
|
|
4
|
+
/** The processor name accepted by the planning projection queue. */
|
|
5
|
+
export declare const PLANNING_PROJECT_JOB = "planning:project";
|
|
6
|
+
/** What one projection job folds. */
|
|
7
|
+
export interface ProjectionRequest {
|
|
8
|
+
cardId: string;
|
|
9
|
+
entityId: string;
|
|
10
|
+
/** The transition that requested projection; it is a hint rather than a fold bound. */
|
|
11
|
+
transition?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PlanningQueueOptions {
|
|
14
|
+
worker?: QueueWorkerOptions;
|
|
15
|
+
defaults?: JobOptions;
|
|
16
|
+
}
|
|
17
|
+
/** Declare the shared projection address; each process separately chooses whether to listen. */
|
|
18
|
+
export declare const declarePlanningQueue: <C extends Config>(cfg: C, opts?: PlanningQueueOptions) => C;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAE7E,kEAAkE;AAClE,eAAO,MAAM,yBAAyB,wBAAwB,CAAA;AAE9D,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AAEtD,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAED,gGAAgG;AAChG,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,OAAO,CAAC,SAAS,oBAAoB,KAAG,CACjB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { declareQueue } from '@owlmeans/queue';
|
|
2
|
+
/** The server-side queue used to project planning transitions. */
|
|
3
|
+
export const PLANNING_PROJECTION_QUEUE = 'planning-projection';
|
|
4
|
+
/** The processor name accepted by the planning projection queue. */
|
|
5
|
+
export const PLANNING_PROJECT_JOB = 'planning:project';
|
|
6
|
+
/** Declare the shared projection address; each process separately chooses whether to listen. */
|
|
7
|
+
export const declarePlanningQueue = (cfg, opts) => declareQueue(cfg, PLANNING_PROJECTION_QUEUE, [PLANNING_PROJECT_JOB], opts);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,kEAAkE;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE9D,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAetD,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAmB,GAAM,EAAE,IAA2B,EAAK,EAAE,CAC/F,YAAY,CAAC,GAAG,EAAE,yBAAyB,EAAE,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/server-planning",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The general planning implementation — the planning service and its plugin/middleware registry, the transition executor, the in-memory store, the protocol handlers and the commit feed.",
|
|
6
6
|
"type": "module",
|
|
@@ -27,24 +27,31 @@
|
|
|
27
27
|
"default": "./build/store/index.js",
|
|
28
28
|
"module": "./build/store/index.js",
|
|
29
29
|
"types": "./build/store/index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./queue": {
|
|
32
|
+
"import": "./build/queue/index.js",
|
|
33
|
+
"require": "./build/queue/index.js",
|
|
34
|
+
"default": "./build/queue/index.js",
|
|
35
|
+
"module": "./build/queue/index.js",
|
|
36
|
+
"types": "./build/queue/index.d.ts"
|
|
30
37
|
}
|
|
31
38
|
},
|
|
32
39
|
"dependencies": {
|
|
33
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
34
|
-
"@owlmeans/auth-common": "^0.1.18-rc.
|
|
35
|
-
"@owlmeans/basic-ids": "^0.1.18-rc.
|
|
36
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
37
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
38
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
39
|
-
"@owlmeans/planning": "^0.1.18-rc.
|
|
40
|
-
"@owlmeans/queue": "^0.1.18-rc.
|
|
41
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
42
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
43
|
-
"@owlmeans/server-api": "^0.1.18-rc.
|
|
44
|
-
"@owlmeans/server-context": "^0.1.18-rc.
|
|
45
|
-
"@owlmeans/server-entrypoint": "^0.1.18-rc.
|
|
46
|
-
"@owlmeans/server-socket": "^0.1.18-rc.
|
|
47
|
-
"@owlmeans/socket": "^0.1.18-rc.
|
|
40
|
+
"@owlmeans/auth": "^0.1.18-rc.28",
|
|
41
|
+
"@owlmeans/auth-common": "^0.1.18-rc.30",
|
|
42
|
+
"@owlmeans/basic-ids": "^0.1.18-rc.27",
|
|
43
|
+
"@owlmeans/context": "^0.1.18-rc.26",
|
|
44
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.29",
|
|
45
|
+
"@owlmeans/error": "^0.1.18-rc.28",
|
|
46
|
+
"@owlmeans/planning": "^0.1.18-rc.2",
|
|
47
|
+
"@owlmeans/queue": "^0.1.18-rc.24",
|
|
48
|
+
"@owlmeans/resource": "^0.1.18-rc.28",
|
|
49
|
+
"@owlmeans/route": "^0.1.18-rc.27",
|
|
50
|
+
"@owlmeans/server-api": "^0.1.18-rc.34",
|
|
51
|
+
"@owlmeans/server-context": "^0.1.18-rc.29",
|
|
52
|
+
"@owlmeans/server-entrypoint": "^0.1.18-rc.28",
|
|
53
|
+
"@owlmeans/server-socket": "^0.1.18-rc.36",
|
|
54
|
+
"@owlmeans/socket": "^0.1.18-rc.26"
|
|
48
55
|
},
|
|
49
56
|
"peerDependencies": {
|
|
50
57
|
"ajv": "*",
|
|
@@ -52,7 +59,7 @@
|
|
|
52
59
|
},
|
|
53
60
|
"devDependencies": {
|
|
54
61
|
"@owlmeans/dep-config": "workspace:*",
|
|
55
|
-
"@owlmeans/test": "^0.1.18-rc.
|
|
62
|
+
"@owlmeans/test": "^0.1.18-rc.26",
|
|
56
63
|
"@types/bun": "^1.4.0",
|
|
57
64
|
"@types/node": "^26.1.0",
|
|
58
65
|
"ajv": "^8.17.1",
|
package/src/projection.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { BasicConfig, BasicContext } from '@owlmeans/context'
|
|
2
2
|
import { PLANNING_SERVICE } from '@owlmeans/planning'
|
|
3
3
|
import type { CommitEvent, PlanningService, PlanningStore } from '@owlmeans/planning'
|
|
4
|
-
import { PLANNING_PROJECT_JOB, PLANNING_PROJECTION_QUEUE } from '
|
|
5
|
-
import type { ProjectionRequest } from '
|
|
4
|
+
import { PLANNING_PROJECT_JOB, PLANNING_PROJECTION_QUEUE } from './queue/index.js'
|
|
5
|
+
import type { ProjectionRequest } from './queue/index.js'
|
|
6
6
|
import type { JobProcessor, QueueHooks } from '@owlmeans/queue'
|
|
7
7
|
import { failPending, foldPending } from './store/fold.js'
|
|
8
8
|
import type { PlanningHostService } from './types.js'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { declareQueue } from '@owlmeans/queue'
|
|
2
|
+
import type { Config, JobOptions, QueueWorkerOptions } from '@owlmeans/queue'
|
|
3
|
+
|
|
4
|
+
/** The server-side queue used to project planning transitions. */
|
|
5
|
+
export const PLANNING_PROJECTION_QUEUE = 'planning-projection'
|
|
6
|
+
|
|
7
|
+
/** The processor name accepted by the planning projection queue. */
|
|
8
|
+
export const PLANNING_PROJECT_JOB = 'planning:project'
|
|
9
|
+
|
|
10
|
+
/** What one projection job folds. */
|
|
11
|
+
export interface ProjectionRequest {
|
|
12
|
+
cardId: string
|
|
13
|
+
entityId: string
|
|
14
|
+
/** The transition that requested projection; it is a hint rather than a fold bound. */
|
|
15
|
+
transition?: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface PlanningQueueOptions {
|
|
19
|
+
worker?: QueueWorkerOptions
|
|
20
|
+
defaults?: JobOptions
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Declare the shared projection address; each process separately chooses whether to listen. */
|
|
24
|
+
export const declarePlanningQueue = <C extends Config>(cfg: C, opts?: PlanningQueueOptions): C =>
|
|
25
|
+
declareQueue(cfg, PLANNING_PROJECTION_QUEUE, [PLANNING_PROJECT_JOB], opts)
|