@medicine-wheel/app 0.20.0 → 0.22.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.
- package/README.md +13 -0
- package/dist/cli/mw.js +78 -3
- package/package.json +30 -28
package/README.md
CHANGED
|
@@ -53,6 +53,8 @@ Recently landed:
|
|
|
53
53
|
├── @medicine-wheel/data-store-postgres ← PostgreSQL / Neon provider scaffold
|
|
54
54
|
├── @medicine-wheel/storage-provider ← Canonical persistence contract (JSONL ⇄ Neon)
|
|
55
55
|
├── @medicine-wheel/infra ← Hosts, tenants, services, port bindings as facets
|
|
56
|
+
├── @medicine-wheel/capabilities ← What the platform can do, who provides it, who said so
|
|
57
|
+
├── @medicine-wheel/developer-repository-mapping ← Owner hubs of repository rows; mw-repomap
|
|
56
58
|
├── @medicine-wheel/honcho ← The wheel's projection into Honcho, memory that reasons
|
|
57
59
|
├── @medicine-wheel/perception-layer ← Witness recordings as typed perceptual events
|
|
58
60
|
├── @medicine-wheel/narrative-cluster ← Events → clusters → beats → Film Edit Brief
|
|
@@ -186,6 +188,16 @@ Typed infrastructure facets — hosts, tenants, services and port bindings — k
|
|
|
186
188
|
|
|
187
189
|
- **Dependencies:** `@medicine-wheel/ontology-core`, `zod`
|
|
188
190
|
|
|
191
|
+
### [@medicine-wheel/capabilities](src/capabilities)
|
|
192
|
+
The platform-features and capabilities layer: a capability rides a `knowledge` node carrying `metadata.kind: "capability"`, says what it does in at most 55 words, and lists the repositories and services that provide it. Every row carries its attribution (who wrote it, when, from what evidence, and whether a person has read it since), and a model's row starts `pending`. `findSharedCapabilities` names a capability more than one provider gives. Pure.
|
|
193
|
+
|
|
194
|
+
- **Dependencies:** `@medicine-wheel/ontology-core`, `@medicine-wheel/infra`, `zod`
|
|
195
|
+
|
|
196
|
+
### [@medicine-wheel/developer-repository-mapping](src/developer-repository-mapping)
|
|
197
|
+
Repository mapping: the JSONL rows an owner hub (`<owner>/<owner>/.miadi/repository-mapping/`) holds, the lifecycle state machine checked against git, a meta hub that reads other hubs without copying them, and the projection into wheel nodes and edges. The `mw-repomap` CLI makes, validates, observes and serves a mapping on one small web page.
|
|
198
|
+
|
|
199
|
+
- **Dependencies:** `@medicine-wheel/ontology-core`, `@medicine-wheel/capabilities`, `zod`
|
|
200
|
+
|
|
189
201
|
### [@medicine-wheel/honcho](src/honcho)
|
|
190
202
|
The wheel's projection into [Honcho](https://honcho.dev), memory that reasons. The wheel stays canonical; Honcho holds what the history has come to mean about each peer. A beat becomes a message from its speaker in the session of its ceremony, a speaker's evolving representation is recalled before they speak again, and a derived conclusion returns as a `knowledge` node carrying `metadata.kind: "memory_projection"` with its status and provenance. Zero dependencies, `/v3` only, configured by `HONCHO_URL`. Nothing is filtered here.
|
|
191
203
|
|
|
@@ -258,6 +270,7 @@ RISE framework specifications are in [`rispecs/`](rispecs/). Start with [`medici
|
|
|
258
270
|
| data-store-postgres | [data-store-postgres.spec.md](rispecs/data-store-postgres.spec.md) |
|
|
259
271
|
| session-reader | [session-reader.spec.md](rispecs/session-reader.spec.md) |
|
|
260
272
|
| infra | [infrastructure-topology-ui.spec.md](rispecs/infrastructure-topology-ui.spec.md) |
|
|
273
|
+
| capabilities · developer-repository-mapping | [developer-suite/repository-mapping/](rispecs/developer-suite/repository-mapping/SPEC.md) |
|
|
261
274
|
| perception-layer | [perception-layer.spec.md](rispecs/perception-layer.spec.md) |
|
|
262
275
|
| narrative-cluster | [narrative-cluster.spec.md](rispecs/narrative-cluster.spec.md) |
|
|
263
276
|
| captures & recordings | [capture-registry.spec.md](rispecs/capture-registry.spec.md) |
|
package/dist/cli/mw.js
CHANGED
|
@@ -280,6 +280,12 @@ ${C.bold}🌿 mw — Medicine Wheel CLI${C.reset}
|
|
|
280
280
|
mw chart create <outcome> <reality> <dir> Create STC
|
|
281
281
|
mw chart list [--direction east] List charts
|
|
282
282
|
mw chart progress <id> Get progress
|
|
283
|
+
mw chart get <id> The chart, whole
|
|
284
|
+
mw chart delay <chart> <step> <resolve_by> <reason> --by <who>
|
|
285
|
+
[--primary <text>] [--wake-on <cue>] Choose to delay a step's resolution
|
|
286
|
+
[--session <id> --cwd <dir> --resume <cmd>] ...with the session to rehydrate
|
|
287
|
+
mw chart delayed [--within <days>] [--all] Delays by resolve_by, owed first
|
|
288
|
+
mw chart end-delay <chart> <step> <rehydrated|released> --by <who> [--note <text>]
|
|
283
289
|
mw mmot <chart_id> <expected> <actual> <analysis> MMOT review
|
|
284
290
|
|
|
285
291
|
RELATIONS
|
|
@@ -666,7 +672,19 @@ function cmdWeb(positional) {
|
|
|
666
672
|
mcpCall('get_relational_web', { node_id: nodeId, depth });
|
|
667
673
|
}
|
|
668
674
|
// ── Chart / STC ───────────────────────────────────────────────────
|
|
669
|
-
function
|
|
675
|
+
function chartUsage(line) {
|
|
676
|
+
console.error(`${C.south}Usage: ${line}${C.reset}`);
|
|
677
|
+
process.exitCode = EXIT_USAGE;
|
|
678
|
+
}
|
|
679
|
+
function flagText(flags, ...keys) {
|
|
680
|
+
for (const key of keys) {
|
|
681
|
+
const v = flags[key];
|
|
682
|
+
if (typeof v === 'string' && v.trim() !== '')
|
|
683
|
+
return v;
|
|
684
|
+
}
|
|
685
|
+
return undefined;
|
|
686
|
+
}
|
|
687
|
+
function cmdChart(positional, flags = {}) {
|
|
670
688
|
const sub = positional[0] ?? 'list';
|
|
671
689
|
switch (sub) {
|
|
672
690
|
case 'create':
|
|
@@ -682,8 +700,65 @@ function cmdChart(positional) {
|
|
|
682
700
|
case 'progress':
|
|
683
701
|
mcpCall('get_chart_progress', { chart_id: positional[1] ?? '' });
|
|
684
702
|
break;
|
|
703
|
+
case 'get':
|
|
704
|
+
mcpCall('get_chart', { chart_id: positional[1] ?? '' });
|
|
705
|
+
break;
|
|
706
|
+
case 'delay': {
|
|
707
|
+
const [, chartId, stepId, resolveBy, reason] = positional;
|
|
708
|
+
const by = flagText(flags, 'by');
|
|
709
|
+
if (!chartId || !stepId || !resolveBy || !reason || !by) {
|
|
710
|
+
chartUsage('mw chart delay <chart_id> <step_id> <resolve_by> <reason> --by <who> [--primary <text>] [--wake-on <cue>] [--session <id>] [--cwd <dir>] [--resume <command>]');
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
const sessionId = flagText(flags, 'session');
|
|
714
|
+
const wakeOn = flagText(flags, 'wake-on');
|
|
715
|
+
mcpCall('delay_resolution', {
|
|
716
|
+
chart_id: chartId,
|
|
717
|
+
step_id: stepId,
|
|
718
|
+
resolve_by: resolveBy,
|
|
719
|
+
reason,
|
|
720
|
+
chosen_by: by,
|
|
721
|
+
...(flagText(flags, 'primary') ? { primary_choice: flagText(flags, 'primary') } : {}),
|
|
722
|
+
...(wakeOn ? { wake_on: [wakeOn] } : {}),
|
|
723
|
+
...(sessionId
|
|
724
|
+
? {
|
|
725
|
+
session: {
|
|
726
|
+
session_id: sessionId,
|
|
727
|
+
...(flagText(flags, 'cwd') ? { cwd: flagText(flags, 'cwd') } : {}),
|
|
728
|
+
...(flagText(flags, 'resume') ? { resume_command: flagText(flags, 'resume') } : {}),
|
|
729
|
+
...(flagText(flags, 'host') ? { host: flagText(flags, 'host') } : {}),
|
|
730
|
+
},
|
|
731
|
+
}
|
|
732
|
+
: {}),
|
|
733
|
+
});
|
|
734
|
+
break;
|
|
735
|
+
}
|
|
736
|
+
case 'delayed': {
|
|
737
|
+
const within = flagText(flags, 'within');
|
|
738
|
+
mcpCall('list_delayed_resolutions', {
|
|
739
|
+
...(within !== undefined ? { due_within_days: Number(within) } : {}),
|
|
740
|
+
...(flags['all'] === true ? { include_ended: true } : {}),
|
|
741
|
+
});
|
|
742
|
+
break;
|
|
743
|
+
}
|
|
744
|
+
case 'end-delay': {
|
|
745
|
+
const [, chartId, stepId, outcome] = positional;
|
|
746
|
+
const by = flagText(flags, 'by');
|
|
747
|
+
if (!chartId || !stepId || (outcome !== 'rehydrated' && outcome !== 'released') || !by) {
|
|
748
|
+
chartUsage('mw chart end-delay <chart_id> <step_id> <rehydrated|released> --by <who> [--note <text>]');
|
|
749
|
+
return;
|
|
750
|
+
}
|
|
751
|
+
mcpCall('end_delayed_resolution', {
|
|
752
|
+
chart_id: chartId,
|
|
753
|
+
step_id: stepId,
|
|
754
|
+
outcome,
|
|
755
|
+
ended_by: by,
|
|
756
|
+
...(flagText(flags, 'note') ? { end_note: flagText(flags, 'note') } : {}),
|
|
757
|
+
});
|
|
758
|
+
break;
|
|
759
|
+
}
|
|
685
760
|
default:
|
|
686
|
-
unknownSub('chart', sub, ['create', 'list', 'progress']);
|
|
761
|
+
unknownSub('chart', sub, ['create', 'list', 'progress', 'get', 'delay', 'delayed', 'end-delay']);
|
|
687
762
|
}
|
|
688
763
|
}
|
|
689
764
|
// ── MMOT ──────────────────────────────────────────────────────────
|
|
@@ -911,7 +986,7 @@ async function main() {
|
|
|
911
986
|
break;
|
|
912
987
|
case 'chart':
|
|
913
988
|
case 'stc':
|
|
914
|
-
cmdChart(rest);
|
|
989
|
+
cmdChart(rest, flags);
|
|
915
990
|
break;
|
|
916
991
|
case 'mmot':
|
|
917
992
|
cmdMmot(rest);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medicine-wheel/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Medicine Wheel — Interactive visual layer for Indigenous relational research with Four Directions, ceremonies, and narrative arcs",
|
|
5
5
|
"bin": {
|
|
6
6
|
"mw": "dist/cli/mw.js",
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
"workspaces": [
|
|
29
29
|
"src/ontology-core",
|
|
30
30
|
"src/infra",
|
|
31
|
+
"src/capabilities",
|
|
32
|
+
"src/developer-repository-mapping",
|
|
31
33
|
"src/events",
|
|
32
34
|
"src/creative-orientation",
|
|
33
35
|
"src/session-reader",
|
|
@@ -92,33 +94,33 @@
|
|
|
92
94
|
"release:major": "npm run version:major && npm run publish:all && npm run release:commit"
|
|
93
95
|
},
|
|
94
96
|
"dependencies": {
|
|
95
|
-
"@medicine-wheel/ceremonial-diary": "^0.
|
|
96
|
-
"@medicine-wheel/ceremony-protocol": "^0.
|
|
97
|
-
"@medicine-wheel/community-identity": "^0.
|
|
98
|
-
"@medicine-wheel/community-review": "^0.
|
|
99
|
-
"@medicine-wheel/consent-lifecycle": "^0.
|
|
100
|
-
"@medicine-wheel/creative-orientation": "^0.
|
|
101
|
-
"@medicine-wheel/data-store": "^0.
|
|
102
|
-
"@medicine-wheel/data-store-postgres": "^0.
|
|
103
|
-
"@medicine-wheel/events": "^0.
|
|
104
|
-
"@medicine-wheel/fire-keeper": "^0.
|
|
105
|
-
"@medicine-wheel/github-ceremony": "^0.
|
|
106
|
-
"@medicine-wheel/graph-viz": "^0.
|
|
107
|
-
"@medicine-wheel/honcho": "^0.
|
|
108
|
-
"@medicine-wheel/importance-unit": "^0.
|
|
109
|
-
"@medicine-wheel/mcp": "^4.
|
|
110
|
-
"@medicine-wheel/memory": "^0.
|
|
111
|
-
"@medicine-wheel/narrative-cluster": "^0.
|
|
112
|
-
"@medicine-wheel/narrative-engine": "^0.
|
|
113
|
-
"@medicine-wheel/ontology-core": "^0.
|
|
114
|
-
"@medicine-wheel/perception-layer": "^0.
|
|
115
|
-
"@medicine-wheel/prompt-decomposition": "^0.
|
|
116
|
-
"@medicine-wheel/relational-index": "^0.
|
|
117
|
-
"@medicine-wheel/relational-query": "^0.
|
|
118
|
-
"@medicine-wheel/session-reader": "^0.
|
|
119
|
-
"@medicine-wheel/storage-provider": "^0.
|
|
120
|
-
"@medicine-wheel/transformation-tracker": "^0.
|
|
121
|
-
"@medicine-wheel/ui-components": "^0.
|
|
97
|
+
"@medicine-wheel/ceremonial-diary": "^0.22.0",
|
|
98
|
+
"@medicine-wheel/ceremony-protocol": "^0.22.0",
|
|
99
|
+
"@medicine-wheel/community-identity": "^0.22.0",
|
|
100
|
+
"@medicine-wheel/community-review": "^0.22.0",
|
|
101
|
+
"@medicine-wheel/consent-lifecycle": "^0.22.0",
|
|
102
|
+
"@medicine-wheel/creative-orientation": "^0.22.0",
|
|
103
|
+
"@medicine-wheel/data-store": "^0.22.0",
|
|
104
|
+
"@medicine-wheel/data-store-postgres": "^0.22.0",
|
|
105
|
+
"@medicine-wheel/events": "^0.22.0",
|
|
106
|
+
"@medicine-wheel/fire-keeper": "^0.22.0",
|
|
107
|
+
"@medicine-wheel/github-ceremony": "^0.22.0",
|
|
108
|
+
"@medicine-wheel/graph-viz": "^0.22.0",
|
|
109
|
+
"@medicine-wheel/honcho": "^0.22.0",
|
|
110
|
+
"@medicine-wheel/importance-unit": "^0.22.0",
|
|
111
|
+
"@medicine-wheel/mcp": "^4.22.0",
|
|
112
|
+
"@medicine-wheel/memory": "^0.22.0",
|
|
113
|
+
"@medicine-wheel/narrative-cluster": "^0.22.0",
|
|
114
|
+
"@medicine-wheel/narrative-engine": "^0.22.0",
|
|
115
|
+
"@medicine-wheel/ontology-core": "^0.22.0",
|
|
116
|
+
"@medicine-wheel/perception-layer": "^0.22.0",
|
|
117
|
+
"@medicine-wheel/prompt-decomposition": "^0.22.0",
|
|
118
|
+
"@medicine-wheel/relational-index": "^0.22.0",
|
|
119
|
+
"@medicine-wheel/relational-query": "^0.22.0",
|
|
120
|
+
"@medicine-wheel/session-reader": "^0.22.0",
|
|
121
|
+
"@medicine-wheel/storage-provider": "^0.22.0",
|
|
122
|
+
"@medicine-wheel/transformation-tracker": "^0.22.0",
|
|
123
|
+
"@medicine-wheel/ui-components": "^0.22.0",
|
|
122
124
|
"@miadi/episode-vessel": "^0.2.1",
|
|
123
125
|
"@neondatabase/serverless": "^0.10.0",
|
|
124
126
|
"@xyflow/react": "^12.3.0",
|