@medicine-wheel/prompt-decomposition 0.2.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.
@@ -0,0 +1,593 @@
1
+ "use strict";
2
+ /**
3
+ * @medicine-wheel/prompt-decomposition — Decomposer
4
+ *
5
+ * Ontology-enriched prompt decomposition engine.
6
+ * Reuses the PDE patterns from ava-langchain-prompt-decomposition
7
+ * but grounds them in @medicine-wheel/ontology-core types.
8
+ *
9
+ * Design:
10
+ * - Keyword-based directional classification (same algorithm as langchainjs)
11
+ * - Intent extraction with hedging language detection (mcp-pde lineage)
12
+ * - Dependency mapping with directional inference
13
+ * - Ontological enrichment with Ojibwe names, seasons, acts, obligations
14
+ * - Ceremony guidance based on directional balance
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MedicineWheelDecomposer = void 0;
18
+ exports.detectEpistemicSource = detectEpistemicSource;
19
+ const ontology_core_1 = require("@medicine-wheel/ontology-core");
20
+ // ── Direction keywords (same as ava-langchain-prompt-decomposition) ─────────
21
+ const DIRECTION_KEYWORDS = {
22
+ east: [
23
+ 'vision', 'goal', 'purpose', 'intention', 'want', 'need', 'desire',
24
+ 'dream', 'imagine', 'envision', 'aspire', 'mission', 'why', 'objective',
25
+ 'outcome', 'result', 'achieve', 'create', 'build', 'design',
26
+ ],
27
+ south: [
28
+ 'learn', 'research', 'investigate', 'understand', 'study', 'analyze',
29
+ 'explore', 'discover', 'examine', 'review', 'compare', 'assess',
30
+ 'dependency', 'require', 'prerequisite', 'context', 'background',
31
+ 'existing', 'current', 'pattern',
32
+ ],
33
+ west: [
34
+ 'test', 'verify', 'validate', 'check', 'ensure', 'confirm',
35
+ 'reflect', 'review', 'audit', 'quality', 'feedback', 'iterate',
36
+ 'ceremony', 'accountable', 'responsible', 'ethical', 'protocol',
37
+ 'appropriate', 'respectful', 'consent',
38
+ ],
39
+ north: [
40
+ 'implement', 'execute', 'deploy', 'run', 'build', 'code', 'script',
41
+ 'install', 'configure', 'setup', 'create', 'write', 'develop',
42
+ 'ship', 'launch', 'deliver', 'produce', 'output', 'generate',
43
+ 'commit', 'push', 'merge',
44
+ ],
45
+ };
46
+ const ACTION_VERBS = {
47
+ create: ['create', 'build', 'make', 'generate', 'write', 'develop', 'design', 'scaffold', 'implement'],
48
+ modify: ['modify', 'update', 'change', 'edit', 'adjust', 'refactor', 'rename'],
49
+ investigate: ['investigate', 'research', 'explore', 'understand', 'learn', 'study', 'analyze', 'examine', 'look', 'check', 'review', 'see'],
50
+ add: ['add', 'install', 'include', 'import', 'integrate', 'connect'],
51
+ remove: ['remove', 'delete', 'clean', 'prune', 'drop'],
52
+ test: ['test', 'verify', 'validate', 'ensure', 'confirm', 'assert'],
53
+ deploy: ['deploy', 'ship', 'publish', 'release', 'push', 'launch'],
54
+ use: ['use', 'leverage', 'utilize', 'employ', 'apply', 'run', 'execute'],
55
+ draft: ['draft', 'outline', 'plan', 'sketch', 'propose', 'document'],
56
+ };
57
+ const URGENCY_KEYWORDS = {
58
+ immediate: ['now', 'immediately', 'urgent', 'asap', 'right away'],
59
+ session: ['today', 'this session', "let's", 'get to work', 'start'],
60
+ sprint: ['this week', 'sprint', 'soon', 'next', 'upcoming'],
61
+ ongoing: ['eventually', 'someday', 'long-term', 'future', 'ongoing'],
62
+ };
63
+ const ALL_DIRECTIONS = ['east', 'south', 'west', 'north'];
64
+ // ── Helper: UUID ─────────────────────────────────────────────────────────────
65
+ function generateId() {
66
+ if (typeof globalThis.crypto?.randomUUID === 'function') {
67
+ return `mw-pde-${globalThis.crypto.randomUUID()}`;
68
+ }
69
+ // Fallback for environments without crypto.randomUUID
70
+ const hex = () => Math.random().toString(16).slice(2, 10);
71
+ return `mw-pde-${hex()}${hex()}-${hex()}-${hex()}`;
72
+ }
73
+ // ── Decomposer ──────────────────────────────────────────────────────────────
74
+ class MedicineWheelDecomposer {
75
+ extractImplicit;
76
+ mapDependencies;
77
+ ceremonyThreshold;
78
+ constructor(options) {
79
+ this.extractImplicit = options?.extractImplicit ?? true;
80
+ this.mapDependencies = options?.mapDependencies ?? true;
81
+ this.ceremonyThreshold = options?.ceremonyThreshold ?? 0.3;
82
+ }
83
+ /**
84
+ * Decompose a prompt into an ontology-enriched result.
85
+ * Flows through Four Directions: EAST → SOUTH → WEST → NORTH
86
+ */
87
+ decompose(prompt) {
88
+ const id = generateId();
89
+ const timestamp = new Date().toISOString();
90
+ // EAST: Extract intents and directional insights
91
+ const directionalInsights = this.classifyByDirection(prompt);
92
+ const intents = this.extractIntents(prompt);
93
+ const context = this.extractContext(prompt);
94
+ // SOUTH: Map dependencies
95
+ const enrichedIntents = this.enrichWithDirections(intents.secondary);
96
+ const dependencies = this.mapDependencies
97
+ ? this.inferDependencies(enrichedIntents)
98
+ : [];
99
+ // Apply dependencies to intents
100
+ for (const dep of dependencies) {
101
+ const intent = enrichedIntents.find(i => i.id === dep.fromId);
102
+ if (intent)
103
+ intent.dependency = dep.toId;
104
+ }
105
+ // Build ontological directions
106
+ const directions = this.buildOntologicalDirections(directionalInsights);
107
+ // WEST: Assess balance and ceremony needs
108
+ const { balance, leadDirection, neglectedDirections } = this.assessBalance(directionalInsights);
109
+ const ceremonyRequired = this.checkCeremonyRequired(directions, balance);
110
+ const ceremonyGuidance = ceremonyRequired ? this.generateCeremonyGuidance(neglectedDirections) : null;
111
+ const wilsonAlignment = this.computeWilsonAlignment(enrichedIntents);
112
+ // Detect ambiguities (mcp-pde lineage)
113
+ const ambiguities = this.detectAmbiguities(prompt, intents.primary, neglectedDirections);
114
+ // Extract expected outputs
115
+ const outputs = this.extractExpectedOutputs(intents.primary, enrichedIntents);
116
+ // NORTH: Build action stack
117
+ const actionStack = this.buildActionStack(enrichedIntents, dependencies);
118
+ // Generate narrative beats from action stack
119
+ const narrativeBeats = this.generateNarrativeBeats(actionStack, id);
120
+ return {
121
+ id,
122
+ timestamp,
123
+ prompt,
124
+ primary: intents.primary,
125
+ secondary: enrichedIntents,
126
+ context,
127
+ outputs,
128
+ directions,
129
+ actionStack,
130
+ ambiguities,
131
+ balance,
132
+ leadDirection,
133
+ neglectedDirections,
134
+ ceremonyGuidance,
135
+ ceremonyRequired,
136
+ wilsonAlignment,
137
+ narrativeBeats,
138
+ };
139
+ }
140
+ // ── EAST: Classification ────────────────────────────────────────────────────
141
+ classifyByDirection(prompt) {
142
+ const segments = prompt.split(/(?<=[.!?])\s+|\n+/).filter(s => s.length > 3);
143
+ const result = {
144
+ east: [], south: [], west: [], north: [],
145
+ };
146
+ for (const segment of segments) {
147
+ const scores = this.scoreSegment(segment);
148
+ const topDir = this.topDirection(scores);
149
+ const isImplicit = scores[topDir] < 0.3;
150
+ result[topDir].push({
151
+ text: segment.trim(),
152
+ confidence: Math.min(scores[topDir] * 2, 1),
153
+ implicit: isImplicit,
154
+ });
155
+ // Cross-direction implicit insights
156
+ for (const dir of ALL_DIRECTIONS) {
157
+ if (dir !== topDir && scores[dir] > 0.2) {
158
+ result[dir].push({
159
+ text: segment.trim(),
160
+ confidence: scores[dir],
161
+ implicit: true,
162
+ });
163
+ }
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ scoreSegment(segment) {
169
+ const lower = segment.toLowerCase();
170
+ const words = lower.split(/\s+/);
171
+ const scores = { east: 0, south: 0, west: 0, north: 0 };
172
+ for (const dir of ALL_DIRECTIONS) {
173
+ for (const keyword of DIRECTION_KEYWORDS[dir]) {
174
+ for (const word of words) {
175
+ if (word.includes(keyword))
176
+ scores[dir] += 1;
177
+ }
178
+ }
179
+ }
180
+ const total = Object.values(scores).reduce((a, b) => a + b, 0) || 1;
181
+ for (const dir of ALL_DIRECTIONS)
182
+ scores[dir] /= total;
183
+ return scores;
184
+ }
185
+ topDirection(scores) {
186
+ let top = 'north';
187
+ let max = -1;
188
+ for (const dir of ALL_DIRECTIONS) {
189
+ if (scores[dir] > max) {
190
+ max = scores[dir];
191
+ top = dir;
192
+ }
193
+ }
194
+ return top;
195
+ }
196
+ // ── EAST: Intent Extraction ─────────────────────────────────────────────────
197
+ extractIntents(prompt) {
198
+ const sentences = prompt.split(/(?<=[.!?])\s+|\n+|,\s+(?=[A-Z])|;\s+/)
199
+ .map(s => s.trim()).filter(s => s.length > 5);
200
+ const rawIntents = [];
201
+ for (const sentence of sentences) {
202
+ const lower = sentence.toLowerCase();
203
+ let bestAction = '';
204
+ let bestCategory = '';
205
+ let found = false;
206
+ for (const [category, verbs] of Object.entries(ACTION_VERBS)) {
207
+ for (const verb of verbs) {
208
+ if (lower.includes(verb)) {
209
+ if (!found || verb.length > bestAction.length) {
210
+ bestAction = verb;
211
+ bestCategory = category;
212
+ found = true;
213
+ }
214
+ }
215
+ }
216
+ }
217
+ if (found) {
218
+ const verbIdx = lower.indexOf(bestAction);
219
+ const afterVerb = sentence.substring(verbIdx + bestAction.length).trim();
220
+ const target = afterVerb.replace(/^(the|a|an|this|that|our|your)\s+/i, '').trim();
221
+ rawIntents.push({
222
+ action: bestCategory,
223
+ target: target || sentence,
224
+ confidence: this.calculateConfidence(sentence, bestAction),
225
+ implicit: false,
226
+ });
227
+ }
228
+ }
229
+ // Extract implicit intents (mcp-pde lineage)
230
+ if (this.extractImplicit) {
231
+ for (const sentence of sentences) {
232
+ const lower = sentence.toLowerCase();
233
+ if (rawIntents.some(i => i.target === sentence))
234
+ continue;
235
+ if (/i assume|which i assume|assuming/.test(lower) ||
236
+ /i expect|expecting|you will need/.test(lower)) {
237
+ rawIntents.push({ action: 'investigate', target: sentence, confidence: 0.5, implicit: true });
238
+ }
239
+ else if (/\bsomehow\b/.test(lower)) {
240
+ rawIntents.push({ action: 'investigate', target: sentence, confidence: 0.4, implicit: true });
241
+ }
242
+ else if (/\bprobably\b|\bshould\b(?!\s+not)/.test(lower)) {
243
+ rawIntents.push({ action: 'investigate', target: sentence, confidence: 0.45, implicit: true });
244
+ }
245
+ else if (/\bwhich\b/.test(lower)) {
246
+ rawIntents.push({ action: 'investigate', target: sentence, confidence: 0.6, implicit: true });
247
+ }
248
+ else if (/^if\b|\bif\b|\bwhen\b/.test(lower)) {
249
+ rawIntents.push({ action: 'test', target: sentence, confidence: 0.5, implicit: true });
250
+ }
251
+ }
252
+ }
253
+ // Primary = highest confidence
254
+ const sorted = [...rawIntents].sort((a, b) => b.confidence - a.confidence);
255
+ const primary = sorted.length > 0
256
+ ? { action: sorted[0].action, target: sorted[0].target.substring(0, 200), urgency: this.detectUrgency(prompt), confidence: sorted[0].confidence }
257
+ : { action: 'investigate', target: prompt.substring(0, 100), urgency: this.detectUrgency(prompt), confidence: 0.5 };
258
+ const secondary = rawIntents.map(raw => ({
259
+ id: generateId(),
260
+ action: raw.action,
261
+ target: raw.target.substring(0, 300),
262
+ implicit: raw.implicit,
263
+ dependency: null,
264
+ confidence: raw.confidence,
265
+ }));
266
+ return { primary, secondary };
267
+ }
268
+ calculateConfidence(sentence, verb) {
269
+ const lower = sentence.toLowerCase();
270
+ let confidence = 0.7;
271
+ if (lower.startsWith(verb))
272
+ confidence += 0.15;
273
+ if (/\/[a-z]/.test(lower) || /@[a-z]/.test(lower))
274
+ confidence += 0.1;
275
+ if (/maybe|perhaps|could|might|possibly/.test(lower))
276
+ confidence -= 0.2;
277
+ return Math.min(1, Math.max(0.1, confidence));
278
+ }
279
+ detectUrgency(prompt) {
280
+ const lower = prompt.toLowerCase();
281
+ for (const [urgency, keywords] of Object.entries(URGENCY_KEYWORDS)) {
282
+ for (const kw of keywords) {
283
+ if (lower.includes(kw))
284
+ return urgency;
285
+ }
286
+ }
287
+ return 'session';
288
+ }
289
+ extractContext(prompt) {
290
+ const filesNeeded = [];
291
+ const toolsRequired = [];
292
+ const assumptions = [];
293
+ const pathMatches = prompt.match(/(?:\/[\w.-]+)+\/?/g);
294
+ if (pathMatches)
295
+ filesNeeded.push(...new Set(pathMatches));
296
+ const atRefs = prompt.match(/@[\w./-]+/g);
297
+ if (atRefs)
298
+ filesNeeded.push(...atRefs.map(r => r.substring(1)));
299
+ // Extract assumptions from hedging language
300
+ const sentences = prompt.split(/(?<=[.!?])\s+|\n+/).filter(s => s.length > 5);
301
+ for (const sentence of sentences) {
302
+ const lower = sentence.toLowerCase();
303
+ if (/i assume|i expect|i know that|assuming that/.test(lower)) {
304
+ assumptions.push(sentence.trim());
305
+ }
306
+ else if (/\bprobably\b|\bsomehow\b|\bshould\b/.test(lower) && lower.length < 200) {
307
+ assumptions.push(sentence.trim());
308
+ }
309
+ }
310
+ return { filesNeeded, toolsRequired, assumptions };
311
+ }
312
+ // ── SOUTH: Enrichment & Dependency Mapping ──────────────────────────────────
313
+ enrichWithDirections(intents) {
314
+ return intents.map(intent => {
315
+ const direction = this.inferDirection(intent.action);
316
+ return {
317
+ ...intent,
318
+ direction,
319
+ obligations: this.inferObligations(direction),
320
+ wilsonAlignment: 0.5, // default, enriched later
321
+ };
322
+ });
323
+ }
324
+ inferDirection(action) {
325
+ if (['investigate', 'research', 'explore', 'study', 'analyze'].includes(action))
326
+ return 'south';
327
+ if (['test', 'verify', 'validate', 'review', 'check'].includes(action))
328
+ return 'west';
329
+ if (['create', 'build', 'implement', 'add', 'deploy', 'install', 'modify', 'use', 'run'].includes(action))
330
+ return 'north';
331
+ if (['draft', 'plan', 'design'].includes(action))
332
+ return 'east';
333
+ return 'north';
334
+ }
335
+ inferObligations(direction) {
336
+ switch (direction) {
337
+ case 'east':
338
+ return [{ category: 'spirit', obligations: ['Clarify vision and intention'] }];
339
+ case 'south':
340
+ return [{ category: 'human', obligations: ['Research with reciprocity'] }];
341
+ case 'west':
342
+ return [{ category: 'human', obligations: ['Reflect and validate with care'] }];
343
+ case 'north':
344
+ return [{ category: 'future', obligations: ['Execute with responsibility to future generations'] }];
345
+ }
346
+ }
347
+ inferDependencies(intents) {
348
+ const deps = [];
349
+ const southIntents = intents.filter(i => i.direction === 'south');
350
+ const northIntents = intents.filter(i => i.direction === 'north');
351
+ const westIntents = intents.filter(i => i.direction === 'west');
352
+ // south (research) → north (action)
353
+ for (const south of southIntents) {
354
+ for (const north of northIntents) {
355
+ if (this.topicsRelated(south.target, north.target)) {
356
+ deps.push({
357
+ fromId: north.id, toId: south.id,
358
+ type: 'depends_on', direction: south.direction, confidence: 0.7,
359
+ });
360
+ }
361
+ }
362
+ }
363
+ // north (action) → west (validation)
364
+ for (const north of northIntents) {
365
+ for (const west of westIntents) {
366
+ if (this.topicsRelated(north.target, west.target)) {
367
+ deps.push({
368
+ fromId: west.id, toId: north.id,
369
+ type: 'validates', direction: north.direction, confidence: 0.7,
370
+ });
371
+ }
372
+ }
373
+ }
374
+ return deps;
375
+ }
376
+ topicsRelated(a, b) {
377
+ const wordsA = new Set(a.toLowerCase().split(/\s+/).filter(w => w.length > 3));
378
+ const wordsB = new Set(b.toLowerCase().split(/\s+/).filter(w => w.length > 3));
379
+ let overlap = 0;
380
+ for (const w of wordsA) {
381
+ if (wordsB.has(w))
382
+ overlap++;
383
+ }
384
+ return overlap >= 1;
385
+ }
386
+ // ── Ontological Direction Building ──────────────────────────────────────────
387
+ buildOntologicalDirections(insights) {
388
+ const result = {};
389
+ for (const dir of ALL_DIRECTIONS) {
390
+ result[dir] = {
391
+ name: dir,
392
+ ojibwe: ontology_core_1.OJIBWE_NAMES[dir],
393
+ season: ontology_core_1.DIRECTION_SEASONS[dir],
394
+ act: ontology_core_1.DIRECTION_ACTS[dir],
395
+ insights: insights[dir],
396
+ obligations: this.inferObligations(dir),
397
+ ceremonyRecommended: insights[dir].length === 0,
398
+ };
399
+ }
400
+ return result;
401
+ }
402
+ // ── WEST: Balance & Ceremony ────────────────────────────────────────────────
403
+ assessBalance(insights) {
404
+ const counts = ALL_DIRECTIONS.map(d => insights[d].length);
405
+ const total = counts.reduce((a, b) => a + b, 0) || 1;
406
+ const proportions = counts.map(c => c / total);
407
+ const deviation = proportions.reduce((sum, p) => sum + Math.abs(p - 0.25), 0) / 4;
408
+ const balance = Math.max(0, Math.min(1, 1 - deviation * 4));
409
+ const maxCount = Math.max(...counts);
410
+ const leadDirection = ALL_DIRECTIONS[counts.indexOf(maxCount)] || 'north';
411
+ const neglectedDirections = ALL_DIRECTIONS.filter(d => insights[d].length / total < 0.1);
412
+ return { balance, leadDirection, neglectedDirections };
413
+ }
414
+ checkCeremonyRequired(directions, balance) {
415
+ const eastPresence = directions.east.insights.length;
416
+ const westPresence = directions.west.insights.length;
417
+ const total = ALL_DIRECTIONS.reduce((sum, d) => sum + directions[d].insights.length, 0) || 1;
418
+ const ceremonialPresence = (eastPresence + westPresence) / total;
419
+ return ceremonialPresence < this.ceremonyThreshold;
420
+ }
421
+ generateCeremonyGuidance(neglectedDirections) {
422
+ const directionGuide = neglectedDirections.map(d => `${ontology_core_1.OJIBWE_NAMES[d]} (${d}): address the ${d === 'east' ? 'vision' : d === 'south' ? 'analysis' : d === 'west' ? 'reflection' : 'action'} dimension`).join('; ');
423
+ return {
424
+ opening_practice: 'Acknowledge the Four Directions before proceeding.',
425
+ intention: `Attend to neglected directions: ${directionGuide || 'all directions need balance'}.`,
426
+ protocol: 'Pause for relational check-in. Consider who this work serves and what obligations it carries.',
427
+ medicines_used: [],
428
+ };
429
+ }
430
+ computeWilsonAlignment(intents) {
431
+ if (intents.length === 0)
432
+ return 0.5;
433
+ return intents.reduce((sum, i) => sum + i.wilsonAlignment, 0) / intents.length;
434
+ }
435
+ // ── Ambiguity Detection (mcp-pde lineage) ─────────────────────────────────
436
+ detectAmbiguities(prompt, primary, neglectedDirections) {
437
+ const ambiguities = [];
438
+ if (primary.confidence < 0.5) {
439
+ ambiguities.push({
440
+ text: `Primary intent has low confidence (${Math.round(primary.confidence * 100)}%)`,
441
+ suggestion: 'Clarify the main goal with a more specific action verb and target.',
442
+ });
443
+ }
444
+ for (const dir of neglectedDirections) {
445
+ const desc = dir === 'east' ? 'vision clarity' : dir === 'south' ? 'research context' : dir === 'west' ? 'validation criteria' : 'actionable steps';
446
+ ambiguities.push({
447
+ text: `Direction ${ontology_core_1.OJIBWE_NAMES[dir]} (${dir}) is neglected`,
448
+ suggestion: `The prompt lacks ${desc}. Consider addressing what is missing from this perspective.`,
449
+ });
450
+ }
451
+ const lower = prompt.toLowerCase();
452
+ if (/\bsomehow\b/.test(lower)) {
453
+ ambiguities.push({
454
+ text: '"somehow" — method left unspecified',
455
+ suggestion: 'Specify the approach or method to use.',
456
+ });
457
+ }
458
+ if (/\bprobably\b|\bmaybe\b|\bperhaps\b/.test(lower)) {
459
+ ambiguities.push({
460
+ text: 'Hedging language detected ("probably", "maybe", "perhaps")',
461
+ suggestion: 'Confirm or deny the hedged assumptions before proceeding.',
462
+ });
463
+ }
464
+ return ambiguities;
465
+ }
466
+ // ── Expected Outputs ──────────────────────────────────────────────────────
467
+ extractExpectedOutputs(primary, intents) {
468
+ const artifacts = [];
469
+ const updates = [];
470
+ const communications = [];
471
+ for (const intent of intents) {
472
+ if (['create', 'add'].includes(intent.action))
473
+ artifacts.push(intent.target);
474
+ else if (['modify', 'use'].includes(intent.action))
475
+ updates.push(intent.target);
476
+ else if (['deploy', 'draft'].includes(intent.action))
477
+ communications.push(intent.target);
478
+ }
479
+ if (['create', 'add'].includes(primary.action))
480
+ artifacts.push(primary.target);
481
+ else if (['modify'].includes(primary.action))
482
+ updates.push(primary.target);
483
+ return { artifacts, updates, communications };
484
+ }
485
+ // ── NORTH: Action Stack ───────────────────────────────────────────────────
486
+ buildActionStack(intents, dependencies) {
487
+ // Topological sort by direction flow (east=0, south=1, west=2, north=3)
488
+ const dirOrder = { east: 0, south: 1, west: 2, north: 3 };
489
+ const sorted = [...intents].sort((a, b) => {
490
+ const dirDiff = dirOrder[a.direction] - dirOrder[b.direction];
491
+ if (dirDiff !== 0)
492
+ return dirDiff;
493
+ return b.confidence - a.confidence;
494
+ });
495
+ return sorted.map(intent => ({
496
+ id: intent.id,
497
+ text: `${intent.action} ${intent.target}`,
498
+ direction: intent.direction,
499
+ dependency: intent.dependency,
500
+ completed: false,
501
+ confidence: intent.confidence,
502
+ implicit: intent.implicit,
503
+ }));
504
+ }
505
+ // ── Narrative Beats ───────────────────────────────────────────────────────
506
+ generateNarrativeBeats(actionStack, decompositionId) {
507
+ return actionStack.map((action, i) => ({
508
+ id: `${decompositionId}-beat-${i}`,
509
+ direction: action.direction,
510
+ title: action.text,
511
+ description: `${action.implicit ? 'Implicit: ' : ''}${action.text}`,
512
+ ceremonies: [],
513
+ learnings: [],
514
+ timestamp: new Date().toISOString(),
515
+ act: ontology_core_1.DIRECTION_ACTS[action.direction],
516
+ relations_honored: [],
517
+ }));
518
+ }
519
+ }
520
+ exports.MedicineWheelDecomposer = MedicineWheelDecomposer;
521
+ // ── Epistemic Source Detection ─────────────────────────────────────────────
522
+ const EPISTEMIC_KEYWORDS = {
523
+ land: [
524
+ 'place', 'territory', 'walking', 'embodied', 'land', 'ground',
525
+ 'earth', 'river', 'mountain', 'forest', 'body', 'physical',
526
+ 'sensation', 'touch', 'landscape', 'soil', 'roots', 'habitat',
527
+ ],
528
+ dream: [
529
+ 'vision', 'dream', 'intuition', 'liminal', 'imagine', 'spirit',
530
+ 'ceremony', 'prayer', 'meditation', 'ancestor', 'sleep', 'unconscious',
531
+ 'symbol', 'omen', 'feeling', 'sense', 'inner', 'calling',
532
+ ],
533
+ code: [
534
+ 'implement', 'function', 'algorithm', 'code', 'program', 'compile',
535
+ 'syntax', 'module', 'class', 'method', 'variable', 'data',
536
+ 'structure', 'logic', 'compute', 'binary', 'interface', 'api',
537
+ ],
538
+ vision: [
539
+ 'intention', 'aspiration', 'future', 'goal', 'purpose', 'mission',
540
+ 'plan', 'strategy', 'direction', 'horizon', 'possibility', 'potential',
541
+ 'transform', 'become', 'evolve', 'next', 'forward', 'beyond',
542
+ ],
543
+ unknown: [],
544
+ };
545
+ /**
546
+ * Heuristic classification of epistemic source from language patterns.
547
+ *
548
+ * Scans text for keywords associated with each of Wilson's four
549
+ * epistemic sources and returns the best match. Returns 'unknown'
550
+ * when no clear signal is present.
551
+ *
552
+ * - **land**: mentions of place, territory, walking, embodied experience
553
+ * - **dream**: mentions of vision, dream, intuition, liminal space
554
+ * - **code**: mentions of implementation, function, algorithm, structure
555
+ * - **vision**: mentions of intention, aspiration, future, purpose
556
+ */
557
+ function detectEpistemicSource(text) {
558
+ const lower = text.toLowerCase();
559
+ const words = lower.split(/\s+/);
560
+ const scores = {
561
+ land: 0,
562
+ dream: 0,
563
+ code: 0,
564
+ vision: 0,
565
+ };
566
+ for (const word of words) {
567
+ for (const [source, keywords] of Object.entries(EPISTEMIC_KEYWORDS)) {
568
+ if (source === 'unknown')
569
+ continue;
570
+ for (const keyword of keywords) {
571
+ if (word.includes(keyword)) {
572
+ scores[source]++;
573
+ }
574
+ }
575
+ }
576
+ }
577
+ const total = Object.values(scores).reduce((a, b) => a + b, 0);
578
+ if (total === 0)
579
+ return 'unknown';
580
+ let bestSource = 'unknown';
581
+ let bestScore = 0;
582
+ for (const [source, score] of Object.entries(scores)) {
583
+ if (score > bestScore) {
584
+ bestScore = score;
585
+ bestSource = source;
586
+ }
587
+ }
588
+ // Require at least 20% signal strength to avoid noisy classification
589
+ if (bestScore / total < 0.2)
590
+ return 'unknown';
591
+ return bestSource;
592
+ }
593
+ //# sourceMappingURL=decomposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer.js","sourceRoot":"","sources":["../src/decomposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @medicine-wheel/prompt-decomposition — Browser Entry
3
+ *
4
+ * Re-exports everything EXCEPT storage (which requires Node.js built-ins).
5
+ * Use this entry when bundling for browser/edge environments.
6
+ */
7
+ export type { Urgency, PrimaryIntent, SecondaryIntent, ExtractionContext, AmbiguityFlag, ExpectedOutputs, DirectionalInsight, OntologicalDirection, RelationalIntent, OntologicalDependency, OntologicalDecomposition, ActionItem, StoredDecomposition, DecomposerOptions, } from './types.js';
8
+ export { MedicineWheelDecomposer } from './decomposer.js';
9
+ export { RelationalEnricher, type RelationalGraph, type EnrichmentResult, type IntentNodeMapping, type AccountabilityGap, } from './relational_enricher.js';
10
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,0BAA0B,CAAC"}