@sharpee/chord 3.0.0 → 3.3.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/analyzer.d.ts +11 -3
- package/analyzer.d.ts.map +1 -1
- package/analyzer.js +1217 -33
- package/analyzer.js.map +1 -1
- package/ast.d.ts +458 -9
- package/ast.d.ts.map +1 -1
- package/catalog.d.ts +57 -1
- package/catalog.d.ts.map +1 -1
- package/catalog.js +95 -3
- package/catalog.js.map +1 -1
- package/diagnostics.d.ts +1 -1
- package/diagnostics.d.ts.map +1 -1
- package/index.d.ts +31 -13
- package/index.d.ts.map +1 -1
- package/index.js +110 -30
- package/index.js.map +1 -1
- package/ir.d.ts +316 -7
- package/ir.d.ts.map +1 -1
- package/lexer.d.ts +11 -3
- package/lexer.d.ts.map +1 -1
- package/lexer.js +36 -8
- package/lexer.js.map +1 -1
- package/manifests/combat.d.ts +16 -0
- package/manifests/combat.d.ts.map +1 -0
- package/manifests/combat.js +38 -0
- package/manifests/combat.js.map +1 -0
- package/manifests/index.d.ts +21 -0
- package/manifests/index.d.ts.map +1 -0
- package/manifests/index.js +46 -0
- package/manifests/index.js.map +1 -0
- package/manifests/npc.d.ts +19 -0
- package/manifests/npc.d.ts.map +1 -0
- package/manifests/npc.js +38 -0
- package/manifests/npc.js.map +1 -0
- package/manifests/state-machines.d.ts +17 -0
- package/manifests/state-machines.d.ts.map +1 -0
- package/manifests/state-machines.js +8 -0
- package/manifests/state-machines.js.map +1 -0
- package/manifests/types.d.ts +41 -0
- package/manifests/types.d.ts.map +1 -0
- package/manifests/types.js +18 -0
- package/manifests/types.js.map +1 -0
- package/message-alias-catalog.d.ts +22 -0
- package/message-alias-catalog.d.ts.map +1 -0
- package/message-alias-catalog.js +830 -0
- package/message-alias-catalog.js.map +1 -0
- package/package.json +1 -1
- package/parser.d.ts +2 -2
- package/parser.d.ts.map +1 -1
- package/parser.js +1566 -148
- package/parser.js.map +1 -1
- package/phrasebooks.d.ts +28 -0
- package/phrasebooks.d.ts.map +1 -0
- package/phrasebooks.js +6 -0
- package/phrasebooks.js.map +1 -0
package/ir.d.ts
CHANGED
|
@@ -13,21 +13,47 @@
|
|
|
13
13
|
* Contract 1, owner-confirmed 2026-07-10); @sharpee/ide-protocol re-exports
|
|
14
14
|
* it. Invariant: pure data — JSON.parse(JSON.stringify(ir)) is identity.
|
|
15
15
|
*/
|
|
16
|
-
import type { Span } from './span';
|
|
16
|
+
import type { Span } from './span.js';
|
|
17
17
|
/** Format stamp of this IR schema. Consumers refuse unknown formats. */
|
|
18
18
|
export declare const IR_FORMAT = "story language 1";
|
|
19
19
|
/** Root of a compiled story. */
|
|
20
20
|
export interface StoryIR {
|
|
21
21
|
format: typeof IR_FORMAT;
|
|
22
22
|
meta: IRMeta;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The story object's declared phases (ownership package D2) and its
|
|
25
|
+
* owned `on every turn` clauses (ADR-236 D7, ratchet R4) — daemons with
|
|
26
|
+
* NO presence gate; `it` is unbound (compile-gated), narration
|
|
27
|
+
* broadcasts.
|
|
28
|
+
*/
|
|
24
29
|
story: {
|
|
25
30
|
states: string[];
|
|
26
31
|
reversible: boolean;
|
|
32
|
+
onClauses: IROnClause[];
|
|
27
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* `use <extension>` names (ADR-215), validated against the manifest
|
|
36
|
+
* registry — the loader registers each against its trusted runtime
|
|
37
|
+
* registry at load (unknown names there are load errors).
|
|
38
|
+
*/
|
|
39
|
+
uses: string[];
|
|
28
40
|
entities: IREntity[];
|
|
29
41
|
conditions: IRNamedCondition[];
|
|
30
42
|
phrases: IRPhrases;
|
|
43
|
+
/**
|
|
44
|
+
* ADR-255 standard-action message overrides, keyed by ACL alias per locale
|
|
45
|
+
* (never a dotted platform id — the loader resolves the alias to `if.action.*`
|
|
46
|
+
* via Interface Contract 3). Each entry is a full IRPhrase body, so cycling /
|
|
47
|
+
* variants ride the same phrasebook resolution seam a platform message uses.
|
|
48
|
+
*/
|
|
49
|
+
messageOverrides: IRMessageOverrides;
|
|
50
|
+
/**
|
|
51
|
+
* Phrasebooks in arbitration order — file-appearance order of
|
|
52
|
+
* `use phrasebook` (header) and `define phrasebook`/import-spliced
|
|
53
|
+
* blocks (body). First predicate-match in this order, per key, wins;
|
|
54
|
+
* a `condition: null` book is the default (always) book (ADR-250 D3).
|
|
55
|
+
*/
|
|
56
|
+
phrasebooks: IRPhrasebook[];
|
|
31
57
|
verbs: IRVerbDef[];
|
|
32
58
|
hatches: IRHatch[];
|
|
33
59
|
traits: IRTraitDef[];
|
|
@@ -35,6 +61,17 @@ export interface StoryIR {
|
|
|
35
61
|
/** Owner-attached score identities (D12) — names are owner-qualified (`pygmy-goats.fed`). */
|
|
36
62
|
scores: IRScoreDef[];
|
|
37
63
|
sequences: IRSequenceDef[];
|
|
64
|
+
/** `define machine` blocks (ADR-215 `use state-machines` depth). */
|
|
65
|
+
machines: IRMachineDef[];
|
|
66
|
+
/** `define channel` data projections (ADR-216) — pure IR; renderers are platform/extension territory. */
|
|
67
|
+
channels: IRChannelDef[];
|
|
68
|
+
/**
|
|
69
|
+
* `define pronouns` named sets (ADR-242 D7) — declared case forms as
|
|
70
|
+
* DATA. The loader registers each into the language provider through
|
|
71
|
+
* the `extendLanguage` seam; the forms are locale text and render only
|
|
72
|
+
* in lang-{locale}, never here.
|
|
73
|
+
*/
|
|
74
|
+
pronounSets: IRPronounSetDef[];
|
|
38
75
|
/** True when any hatch is declared — the pure-IR profile refuses these (AC-4). */
|
|
39
76
|
hasHatches: boolean;
|
|
40
77
|
}
|
|
@@ -52,17 +89,46 @@ export interface IREntity {
|
|
|
52
89
|
/** Leading article as written (`the`), or null. */
|
|
53
90
|
article: string | null;
|
|
54
91
|
aka: string[];
|
|
92
|
+
/**
|
|
93
|
+
* `pronouns <word>` (ADR-242 D5) — a standard set (`he`/`she`/`it`/
|
|
94
|
+
* `they`) or a `define pronouns` set name. Present only when declared:
|
|
95
|
+
* no default is injected (ruled Q-2) — absent means the platform's
|
|
96
|
+
* by-number fallback.
|
|
97
|
+
*/
|
|
98
|
+
pronouns?: string;
|
|
55
99
|
/** True for the story's player entity (`create the player`). */
|
|
56
100
|
isPlayer: boolean;
|
|
57
101
|
/** Kind-noun compositions (`a room`), in declaration order. */
|
|
58
102
|
kinds: IRComposition[];
|
|
59
103
|
/** Trait-adjective compositions (`scenery`, `dark while …`). */
|
|
60
104
|
traits: IRComposition[];
|
|
105
|
+
/**
|
|
106
|
+
* `starts <state>` initializers (ADR-231 D5a), in declaration order —
|
|
107
|
+
* accepted state words (`locked`, `open`, `on`, …) whose pairing with a
|
|
108
|
+
* composed trait the analyzer has already enforced. The loader maps each
|
|
109
|
+
* to the paired trait's initial-value field (`isLocked`, `isOpen`,
|
|
110
|
+
* `isOn`); the state adjective itself is never stored story state.
|
|
111
|
+
*/
|
|
112
|
+
startsStates: string[];
|
|
61
113
|
placement: IRPlacement | null;
|
|
62
114
|
/** Entity IDs this entity wears at start (player wears the cloak). */
|
|
63
115
|
wears: string[];
|
|
116
|
+
/** Entity IDs carried at start, not worn (player carries the knife — ADR-230 Phase 6). */
|
|
117
|
+
carries: string[];
|
|
118
|
+
/**
|
|
119
|
+
* Region membership (`containing <list>`, ADR-236 D2/D3) — resolved member
|
|
120
|
+
* entity IDs in declaration order, additive across lines. Members are
|
|
121
|
+
* rooms (loader: `assignRoom`) or nested regions (member's
|
|
122
|
+
* `parentRegionId` = this region). Non-empty only on region-kind entities
|
|
123
|
+
* (analyzer-gated).
|
|
124
|
+
*/
|
|
125
|
+
containing: IRContainedMember[];
|
|
64
126
|
exits: IRExit[];
|
|
65
127
|
blockedExits: IRBlockedExit[];
|
|
128
|
+
/** `<direction> is deadly: <phrase>` lines (ADR-227). */
|
|
129
|
+
deadlyExits: IRDeadlyExit[];
|
|
130
|
+
/** `deadly: <phrase>` no-escape room marker (ADR-227); null = not deadly. */
|
|
131
|
+
deadly: IRDeadlyRoom | null;
|
|
66
132
|
/**
|
|
67
133
|
* Ordered state names — the entity's own `states:` line first, then every
|
|
68
134
|
* composed trait's declared set in composition order (D8 merge; one
|
|
@@ -83,6 +149,31 @@ export interface IREntity {
|
|
|
83
149
|
*/
|
|
84
150
|
initialDescriptionKey: string | null;
|
|
85
151
|
onClauses: IROnClause[];
|
|
152
|
+
/**
|
|
153
|
+
* The entity's declared ask/tell topic table (`define topics for …`,
|
|
154
|
+
* ADR-239 D3/D4) — rows in declaration order; empty when no block is
|
|
155
|
+
* declared. Runtime matching is normalized whole-topic lookup, never
|
|
156
|
+
* fuzzy; a miss falls to the owner's `on asking it` catch-all (D5).
|
|
157
|
+
*/
|
|
158
|
+
topics: IRTopicRow[];
|
|
159
|
+
span: Span;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* One resolved topic-table row (ADR-239). Entity tier carries the resolved
|
|
163
|
+
* entity id (matched against the platform's `topicEntityId`); free-text
|
|
164
|
+
* tier carries the primary spelling plus declared aliases (matched against
|
|
165
|
+
* the normalized asked text). The body executes with `it` = the owner.
|
|
166
|
+
*/
|
|
167
|
+
export interface IRTopicRow {
|
|
168
|
+
filter: {
|
|
169
|
+
kind: 'entity';
|
|
170
|
+
id: string;
|
|
171
|
+
} | {
|
|
172
|
+
kind: 'text';
|
|
173
|
+
primary: string;
|
|
174
|
+
aliases: string[];
|
|
175
|
+
};
|
|
176
|
+
body: IRStatement[];
|
|
86
177
|
span: Span;
|
|
87
178
|
}
|
|
88
179
|
export interface IRComposition {
|
|
@@ -96,8 +187,20 @@ export interface IRConfigSetting {
|
|
|
96
187
|
/** Setting key words joined with a space (`max items`). */
|
|
97
188
|
key: string;
|
|
98
189
|
value: string;
|
|
99
|
-
/**
|
|
100
|
-
|
|
190
|
+
/**
|
|
191
|
+
* 'name' = multi-word entity-name value (`with food the handful of
|
|
192
|
+
* feed`, Phase B); 'list' = bracketed name list (`with route [Hall,
|
|
193
|
+
* Study]`, ADR-215) — resolved entity IDs in `values`, `value` empty.
|
|
194
|
+
*/
|
|
195
|
+
valueKind: 'number' | 'string' | 'word' | 'name' | 'list';
|
|
196
|
+
/** Resolved entity IDs when valueKind is 'list'. */
|
|
197
|
+
values?: string[];
|
|
198
|
+
}
|
|
199
|
+
/** One resolved `containing` member (ADR-236 D2) — a room or nested region. */
|
|
200
|
+
export interface IRContainedMember {
|
|
201
|
+
/** Entity ID of the member. */
|
|
202
|
+
id: string;
|
|
203
|
+
span: Span;
|
|
101
204
|
}
|
|
102
205
|
export interface IRPlacement {
|
|
103
206
|
relation: 'in' | 'on' | 'starts-in';
|
|
@@ -109,6 +212,12 @@ export interface IRExit {
|
|
|
109
212
|
direction: string;
|
|
110
213
|
/** Entity ID of the destination room. */
|
|
111
214
|
to: string;
|
|
215
|
+
/**
|
|
216
|
+
* Entity ID of the door this exit passes through (`through the <door>`,
|
|
217
|
+
* ADR-234 D1) — null on plain exits. The loader stamps it as `via` on
|
|
218
|
+
* both directions and places the door in the declaring room.
|
|
219
|
+
*/
|
|
220
|
+
via: string | null;
|
|
112
221
|
span: Span;
|
|
113
222
|
}
|
|
114
223
|
export interface IRBlockedExit {
|
|
@@ -118,6 +227,21 @@ export interface IRBlockedExit {
|
|
|
118
227
|
condition: IRCondition | null;
|
|
119
228
|
span: Span;
|
|
120
229
|
}
|
|
230
|
+
/** `<direction> is deadly: <phrase>` (ADR-227) — a lethal exit. */
|
|
231
|
+
export interface IRDeadlyExit {
|
|
232
|
+
direction: string;
|
|
233
|
+
/** Phrase key carrying the death text (also the derived cause). */
|
|
234
|
+
phraseKey: string;
|
|
235
|
+
/** `is deadly while <cond>` — parsed but not yet wired (post-scope). */
|
|
236
|
+
condition: IRCondition | null;
|
|
237
|
+
span: Span;
|
|
238
|
+
}
|
|
239
|
+
/** `deadly: <phrase>` (ADR-227) — the no-escape room marker. */
|
|
240
|
+
export interface IRDeadlyRoom {
|
|
241
|
+
/** Phrase key carrying the death text (also the derived cause). */
|
|
242
|
+
phraseKey: string;
|
|
243
|
+
span: Span;
|
|
244
|
+
}
|
|
121
245
|
export interface IROnClause {
|
|
122
246
|
/** `on` = intercept (may refuse; primary text), `after` = react (appends; ratchet D3). */
|
|
123
247
|
clauseKind: 'on' | 'after';
|
|
@@ -165,6 +289,17 @@ export interface IRPhrases {
|
|
|
165
289
|
/** locale → phrase key → phrase. */
|
|
166
290
|
locales: Record<string, Record<string, IRPhrase>>;
|
|
167
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* ADR-255 message overrides. Same shape as {@link IRPhrases} but keyed by ACL
|
|
294
|
+
* alias (`taking-fixed-in-place`), not a story phrase key; the loader resolves
|
|
295
|
+
* each alias to its `if.action.*` id and registers the phrase body on the
|
|
296
|
+
* phrasebook resolution seam so strategy/cycling works for a platform message.
|
|
297
|
+
*/
|
|
298
|
+
export interface IRMessageOverrides {
|
|
299
|
+
defaultLocale: string;
|
|
300
|
+
/** locale → override alias → phrase body. */
|
|
301
|
+
locales: Record<string, Record<string, IRPhrase>>;
|
|
302
|
+
}
|
|
168
303
|
export interface IRPhrase {
|
|
169
304
|
/** Choice strategy for multi-variant phrases, or null for a single text (Z5 adverbs, ADR-211 Decision 4). */
|
|
170
305
|
strategy: 'randomly' | 'cycling' | 'stopping' | 'sticky' | 'first-time' | null;
|
|
@@ -192,6 +327,23 @@ export interface IRPhraseVariant {
|
|
|
192
327
|
*/
|
|
193
328
|
markers: string[];
|
|
194
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* One phrasebook (ADR-245/ADR-250 D3): a named, predicated collection of
|
|
332
|
+
* story-key phrase entries. `define`d (and import-spliced) books carry
|
|
333
|
+
* their entries; `use`d books carry none — the loader resolves them from
|
|
334
|
+
* the packaged-book data registry at load (manifest keys ≡ data keys,
|
|
335
|
+
* conformance-checked).
|
|
336
|
+
*/
|
|
337
|
+
export interface IRPhrasebook {
|
|
338
|
+
/** Single kebab-case book name. */
|
|
339
|
+
name: string;
|
|
340
|
+
source: 'define' | 'use';
|
|
341
|
+
/** Activity predicate, evaluated at render time; null = always (the default book). */
|
|
342
|
+
condition: IRCondition | null;
|
|
343
|
+
/** Present for 'define'; absent for 'use'. Keys are story keys (never dotted platform IDs). */
|
|
344
|
+
entries?: Record<string, IRPhrase>;
|
|
345
|
+
span: Span;
|
|
346
|
+
}
|
|
195
347
|
export interface IRNamedCondition {
|
|
196
348
|
name: string;
|
|
197
349
|
/**
|
|
@@ -218,8 +370,13 @@ export type IRPatternPart = {
|
|
|
218
370
|
export interface IRHatch {
|
|
219
371
|
name: string;
|
|
220
372
|
modulePath: string;
|
|
221
|
-
/**
|
|
222
|
-
|
|
373
|
+
/**
|
|
374
|
+
* Target interface: dynamic-text producer, Action, or event `chain`
|
|
375
|
+
* (ADR-094 — a chain hatch replaces a stdlib chain like `opened-revealed`).
|
|
376
|
+
* (`behavior` was removed by ADR-235 D2 — the hatch had no binding key and
|
|
377
|
+
* could never fire.)
|
|
378
|
+
*/
|
|
379
|
+
hatchKind: 'text' | 'action' | 'chain';
|
|
223
380
|
span: Span;
|
|
224
381
|
}
|
|
225
382
|
/** `define trait` — data fields, trait-declared states, behavior clauses. */
|
|
@@ -313,6 +470,117 @@ export interface IRSequenceStep {
|
|
|
313
470
|
body: IRStatement[];
|
|
314
471
|
span: Span;
|
|
315
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* `define machine` (ADR-215 `use state-machines` depth; spelling A,
|
|
475
|
+
* 2026-07-18). The loader lowers onto the ADR-119 plugin: platform machine
|
|
476
|
+
* id `chord.machine.<slug>`, role bindings as `$<role>` refs, Chord
|
|
477
|
+
* conditions as custom guards, Chord bodies as custom effects.
|
|
478
|
+
*/
|
|
479
|
+
export interface IRMachineDef {
|
|
480
|
+
/** Name words joined with a space (`drawbridge works`). */
|
|
481
|
+
name: string;
|
|
482
|
+
/** Role name → resolved entity id (the machine's bindings). */
|
|
483
|
+
roles: Array<{
|
|
484
|
+
name: string;
|
|
485
|
+
entity: string;
|
|
486
|
+
}>;
|
|
487
|
+
initialState: string;
|
|
488
|
+
states: IRMachineState[];
|
|
489
|
+
span: Span;
|
|
490
|
+
}
|
|
491
|
+
export interface IRMachineState {
|
|
492
|
+
name: string;
|
|
493
|
+
terminal: boolean;
|
|
494
|
+
transitions: IRMachineTransition[];
|
|
495
|
+
onEnter: IRStatement[];
|
|
496
|
+
onExit: IRStatement[];
|
|
497
|
+
span: Span;
|
|
498
|
+
}
|
|
499
|
+
export interface IRMachineTransition {
|
|
500
|
+
/** Resolved trigger: action targets are `$<role>` refs or entity ids. */
|
|
501
|
+
trigger: {
|
|
502
|
+
kind: 'action';
|
|
503
|
+
action: string;
|
|
504
|
+
target: string | null;
|
|
505
|
+
} | {
|
|
506
|
+
kind: 'event';
|
|
507
|
+
event: string;
|
|
508
|
+
} | {
|
|
509
|
+
kind: 'condition';
|
|
510
|
+
condition: IRCondition;
|
|
511
|
+
};
|
|
512
|
+
/** Optional `while` guard riding the trigger. */
|
|
513
|
+
condition: IRCondition | null;
|
|
514
|
+
/** Target state name. */
|
|
515
|
+
target: string;
|
|
516
|
+
span: Span;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* The construct a channel `return`s (ADR-253 D1). The loader evaluates it
|
|
520
|
+
* against the turn's last matching event to produce the channel's value:
|
|
521
|
+
* - `field` — the raw event field value;
|
|
522
|
+
* - `text` — a text template whose `(slot)` names project event fields
|
|
523
|
+
* (the phrase slot spelling), yielding finished text;
|
|
524
|
+
* - `phrase` — the named phrase's rendered text.
|
|
525
|
+
*/
|
|
526
|
+
export type IRChannelReturn = {
|
|
527
|
+
kind: 'field';
|
|
528
|
+
field: string;
|
|
529
|
+
} | {
|
|
530
|
+
kind: 'text';
|
|
531
|
+
text: string;
|
|
532
|
+
} | {
|
|
533
|
+
kind: 'phrase';
|
|
534
|
+
phrase: string;
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* `define channel` (ADR-216; spelling A, 2026-07-18; ADR-253 replaced
|
|
538
|
+
* `take`/`from event` with `return … from <event>`): a declarative data
|
|
539
|
+
* projection — the loader lowers it to a real IOChannel whose produce
|
|
540
|
+
* evaluates `returns` against the turn's last event of `fromEvent`.
|
|
541
|
+
* `gatedBy` carries the PLATFORM camelCase capability key. The `family`
|
|
542
|
+
* discriminator is ADR-241's additive extension: every data projection
|
|
543
|
+
* reads as `family: 'data'`.
|
|
544
|
+
*/
|
|
545
|
+
export interface IRDataChannelDef {
|
|
546
|
+
name: string;
|
|
547
|
+
family: 'data';
|
|
548
|
+
mode: 'replace' | 'append' | 'event';
|
|
549
|
+
gatedBy: string | null;
|
|
550
|
+
fromEvent: string;
|
|
551
|
+
returns: IRChannelReturn;
|
|
552
|
+
span: Span;
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* A named family channel (ADR-241 D2): `define ambient <word>` /
|
|
556
|
+
* `define layer <word>`, or the implied `main` bed when used. `name` is
|
|
557
|
+
* the author's word (`wind`); the registered id (`ambient:wind`,
|
|
558
|
+
* `image:wind`) and the channel's mode/gate/produce are the loader's
|
|
559
|
+
* business via stdlib's family builders — never carried here.
|
|
560
|
+
*/
|
|
561
|
+
export interface IRFamilyChannelDef {
|
|
562
|
+
name: string;
|
|
563
|
+
family: 'ambient' | 'layer';
|
|
564
|
+
span: Span;
|
|
565
|
+
}
|
|
566
|
+
/** Any story-declared dynamic channel (ADR-163 §7 / ADR-241 D1). */
|
|
567
|
+
export type IRChannelDef = IRDataChannelDef | IRFamilyChannelDef;
|
|
568
|
+
/**
|
|
569
|
+
* One `define pronouns <name>` set (ADR-242 D7) — the five case forms the
|
|
570
|
+
* lang-{locale} assembler's pronoun table keys. Forms are carried as data;
|
|
571
|
+
* they become rendered text only inside the language provider's registry.
|
|
572
|
+
*/
|
|
573
|
+
export interface IRPronounSetDef {
|
|
574
|
+
name: string;
|
|
575
|
+
forms: {
|
|
576
|
+
subject: string;
|
|
577
|
+
object: string;
|
|
578
|
+
possessive: string;
|
|
579
|
+
possessivePronoun: string;
|
|
580
|
+
reflexive: string;
|
|
581
|
+
};
|
|
582
|
+
span: Span;
|
|
583
|
+
}
|
|
316
584
|
export type IRStatement = {
|
|
317
585
|
kind: 'refuse';
|
|
318
586
|
phraseKey: string;
|
|
@@ -324,9 +592,12 @@ export type IRStatement = {
|
|
|
324
592
|
params: IRParam[];
|
|
325
593
|
stmtWhen?: IRCondition | null;
|
|
326
594
|
span: Span;
|
|
327
|
-
}
|
|
595
|
+
}
|
|
596
|
+
/** Payload present only when authored (`with …`, ADR-216) — additive field. */
|
|
597
|
+
| {
|
|
328
598
|
kind: 'emit';
|
|
329
599
|
event: string;
|
|
600
|
+
payload?: IREmitField[];
|
|
330
601
|
stmtWhen?: IRCondition | null;
|
|
331
602
|
span: Span;
|
|
332
603
|
} | {
|
|
@@ -369,6 +640,11 @@ export type IRStatement = {
|
|
|
369
640
|
phraseKey: string | null;
|
|
370
641
|
stmtWhen?: IRCondition | null;
|
|
371
642
|
span: Span;
|
|
643
|
+
} | {
|
|
644
|
+
kind: 'kill';
|
|
645
|
+
phraseKey: string | null;
|
|
646
|
+
stmtWhen?: IRCondition | null;
|
|
647
|
+
span: Span;
|
|
372
648
|
}
|
|
373
649
|
/** `must` requirement as a body statement (ratchet D6). */
|
|
374
650
|
| {
|
|
@@ -421,6 +697,30 @@ export interface IRParam {
|
|
|
421
697
|
value: IRValue;
|
|
422
698
|
span: Span;
|
|
423
699
|
}
|
|
700
|
+
/** One resolved emit-payload field (ADR-216): key words joined with a space, passed VERBATIM to the event data. */
|
|
701
|
+
export interface IREmitField {
|
|
702
|
+
key: string;
|
|
703
|
+
value: IREmitValue;
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* One resolved emit-payload value (ADR-216): a literal, a resolved value
|
|
707
|
+
* expression (evaluated live at emit time — `true`/`false` symbols become
|
|
708
|
+
* booleans), an array, or a nested object.
|
|
709
|
+
*/
|
|
710
|
+
export type IREmitValue = {
|
|
711
|
+
kind: 'literal';
|
|
712
|
+
value: string;
|
|
713
|
+
valueType: 'number' | 'string';
|
|
714
|
+
} | {
|
|
715
|
+
kind: 'value';
|
|
716
|
+
value: IRValue;
|
|
717
|
+
} | {
|
|
718
|
+
kind: 'array';
|
|
719
|
+
items: IREmitValue[];
|
|
720
|
+
} | {
|
|
721
|
+
kind: 'object';
|
|
722
|
+
fields: IREmitField[];
|
|
723
|
+
};
|
|
424
724
|
export type IRValue = {
|
|
425
725
|
kind: 'literal';
|
|
426
726
|
value: string;
|
|
@@ -500,6 +800,15 @@ export type IRCondition = {
|
|
|
500
800
|
kind: 'satisfies';
|
|
501
801
|
subject: IRValue;
|
|
502
802
|
condition: string;
|
|
803
|
+
}
|
|
804
|
+
/**
|
|
805
|
+
* `client has <capability>` (ADR-216): the live negotiated client
|
|
806
|
+
* capability flag, by its PLATFORM camelCase key. Text-only when no
|
|
807
|
+
* client negotiated.
|
|
808
|
+
*/
|
|
809
|
+
| {
|
|
810
|
+
kind: 'client-has';
|
|
811
|
+
capability: string;
|
|
503
812
|
} | {
|
|
504
813
|
kind: 'predicate';
|
|
505
814
|
/** 'can-see'/'can-reach' land with Phase B (design.md §2.7). */
|
package/ir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/ir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/ir.ts"],"names":[],"mappings":"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"}
|
package/lexer.d.ts
CHANGED
|
@@ -12,14 +12,16 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Invariants:
|
|
14
14
|
* - Every non-blank source line yields exactly one Line, in source order.
|
|
15
|
+
* Comment lines (ADR-249) are flagged, never dropped — the parser is
|
|
16
|
+
* the enforcement point for where a comment may legally appear.
|
|
15
17
|
* - `Line.raw` is the untrimmed source text — prose reconstruction never
|
|
16
18
|
* loses characters the tokenizer didn't understand.
|
|
17
19
|
* - Indentation is spaces only; a tab in leading whitespace is an error
|
|
18
20
|
* (reported once per line) and is measured as one column.
|
|
19
21
|
*/
|
|
20
|
-
import { DiagnosticBag } from './diagnostics';
|
|
21
|
-
import { Span } from './span';
|
|
22
|
-
export type TokenKind = 'word' | 'number' | 'string' | 'colon' | 'comma' | 'lparen' | 'rparen' | 'punct';
|
|
22
|
+
import { DiagnosticBag } from './diagnostics.js';
|
|
23
|
+
import { Span } from './span.js';
|
|
24
|
+
export type TokenKind = 'word' | 'number' | 'string' | 'colon' | 'comma' | 'lparen' | 'rparen' | 'lbracket' | 'rbracket' | 'lbrace' | 'rbrace' | 'punct';
|
|
23
25
|
export interface Token {
|
|
24
26
|
kind: TokenKind;
|
|
25
27
|
/** Exact source text (for strings, WITHOUT the surrounding quotes). */
|
|
@@ -38,6 +40,12 @@ export interface Line {
|
|
|
38
40
|
tokens: Token[];
|
|
39
41
|
/** True when a blank line (or start of file) immediately precedes this line. */
|
|
40
42
|
afterBlank: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* True for an indent-0 `##` comment line (ADR-249). Comment lines are
|
|
45
|
+
* flagged, never dropped: the parser skips them at top-level dispatch
|
|
46
|
+
* only and diagnoses them everywhere else.
|
|
47
|
+
*/
|
|
48
|
+
comment: boolean;
|
|
41
49
|
}
|
|
42
50
|
/**
|
|
43
51
|
* Tokenize source into logical lines.
|
package/lexer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/lexer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAU,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,4CAA4C;AAC5C,MAAM,WAAW,IAAI;IACnB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,EAAE,CAwCtE"}
|
package/lexer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.lex = lex;
|
|
4
|
-
const
|
|
4
|
+
const span_js_1 = require("./span.js");
|
|
5
5
|
const WORD_RE = /^[A-Za-zÀ-ɏ][A-Za-z0-9À-ɏ'_-]*/;
|
|
6
6
|
const NUMBER_RE = /^[0-9]+(?:\.[0-9]+)*/;
|
|
7
7
|
/**
|
|
@@ -25,7 +25,7 @@ function lex(source, diagnostics) {
|
|
|
25
25
|
let col = 0;
|
|
26
26
|
while (col < raw.length && (raw[col] === ' ' || raw[col] === '\t')) {
|
|
27
27
|
if (raw[col] === '\t') {
|
|
28
|
-
diagnostics.error('lex.tab-indent', 'Tabs are not allowed in indentation — use spaces.', (0,
|
|
28
|
+
diagnostics.error('lex.tab-indent', 'Tabs are not allowed in indentation — use spaces.', (0, span_js_1.spanOf)(lineNo, col + 1));
|
|
29
29
|
}
|
|
30
30
|
indent++;
|
|
31
31
|
col++;
|
|
@@ -36,11 +36,39 @@ function lex(source, diagnostics) {
|
|
|
36
36
|
raw,
|
|
37
37
|
tokens: tokenizeLine(raw, lineNo, col, diagnostics),
|
|
38
38
|
afterBlank,
|
|
39
|
+
comment: indent === 0 && raw.startsWith('##'),
|
|
39
40
|
});
|
|
40
41
|
afterBlank = false;
|
|
41
42
|
}
|
|
43
|
+
checkCommentDelimitation(lines, diagnostics);
|
|
42
44
|
return lines;
|
|
43
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* ADR-249 hard rule: a comment run (maximal consecutive indent-0 `##`
|
|
48
|
+
* lines) must be preceded AND followed by blank lines. Start and end of
|
|
49
|
+
* file count as blank — `##` as the very first line is the file-header
|
|
50
|
+
* comment. One diagnostic per violating run.
|
|
51
|
+
*/
|
|
52
|
+
function checkCommentDelimitation(lines, diagnostics) {
|
|
53
|
+
let i = 0;
|
|
54
|
+
while (i < lines.length) {
|
|
55
|
+
if (!lines[i].comment) {
|
|
56
|
+
i++;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const start = i;
|
|
60
|
+
while (i + 1 < lines.length && lines[i + 1].comment && !lines[i + 1].afterBlank)
|
|
61
|
+
i++;
|
|
62
|
+
const blankBefore = lines[start].afterBlank; // start of file counts as blank
|
|
63
|
+
const next = lines[i + 1];
|
|
64
|
+
const blankAfter = !next || next.afterBlank; // end of file counts as blank
|
|
65
|
+
if (!blankBefore || !blankAfter) {
|
|
66
|
+
const at = blankBefore ? lines[i] : lines[start];
|
|
67
|
+
diagnostics.error('lex.comment-blank-lines', 'A `##` comment must have a blank line before and after it.', (0, span_js_1.spanOf)(at.lineNo, 1, at.raw.length));
|
|
68
|
+
}
|
|
69
|
+
i++;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
44
72
|
function tokenizeLine(raw, lineNo, start, diagnostics) {
|
|
45
73
|
const tokens = [];
|
|
46
74
|
let pos = start;
|
|
@@ -57,11 +85,11 @@ function tokenizeLine(raw, lineNo, start, diagnostics) {
|
|
|
57
85
|
// A lone quote is prose punctuation (multi-line dialogue in prose
|
|
58
86
|
// blocks, e.g. design.md §3.3 PA announcements). Positions that
|
|
59
87
|
// REQUIRE a string (header, hatch paths) diagnose at parse time.
|
|
60
|
-
tokens.push({ kind: 'punct', text: ch, span: (0,
|
|
88
|
+
tokens.push({ kind: 'punct', text: ch, span: (0, span_js_1.spanOf)(lineNo, column) });
|
|
61
89
|
pos++;
|
|
62
90
|
}
|
|
63
91
|
else {
|
|
64
|
-
tokens.push({ kind: 'string', text: raw.slice(pos + 1, close), span: (0,
|
|
92
|
+
tokens.push({ kind: 'string', text: raw.slice(pos + 1, close), span: (0, span_js_1.spanOf)(lineNo, column, close - pos + 1) });
|
|
65
93
|
pos = close + 1;
|
|
66
94
|
}
|
|
67
95
|
continue;
|
|
@@ -69,18 +97,18 @@ function tokenizeLine(raw, lineNo, start, diagnostics) {
|
|
|
69
97
|
const rest = raw.slice(pos);
|
|
70
98
|
const word = WORD_RE.exec(rest);
|
|
71
99
|
if (word) {
|
|
72
|
-
tokens.push({ kind: 'word', text: word[0], span: (0,
|
|
100
|
+
tokens.push({ kind: 'word', text: word[0], span: (0, span_js_1.spanOf)(lineNo, column, word[0].length) });
|
|
73
101
|
pos += word[0].length;
|
|
74
102
|
continue;
|
|
75
103
|
}
|
|
76
104
|
const num = NUMBER_RE.exec(rest);
|
|
77
105
|
if (num) {
|
|
78
|
-
tokens.push({ kind: 'number', text: num[0], span: (0,
|
|
106
|
+
tokens.push({ kind: 'number', text: num[0], span: (0, span_js_1.spanOf)(lineNo, column, num[0].length) });
|
|
79
107
|
pos += num[0].length;
|
|
80
108
|
continue;
|
|
81
109
|
}
|
|
82
|
-
const single = { ':': 'colon', ',': 'comma', '(': 'lparen', ')': 'rparen' };
|
|
83
|
-
tokens.push({ kind: single[ch] ?? 'punct', text: ch, span: (0,
|
|
110
|
+
const single = { ':': 'colon', ',': 'comma', '(': 'lparen', ')': 'rparen', '[': 'lbracket', ']': 'rbracket', '{': 'lbrace', '}': 'rbrace' };
|
|
111
|
+
tokens.push({ kind: single[ch] ?? 'punct', text: ch, span: (0, span_js_1.spanOf)(lineNo, column) });
|
|
84
112
|
pos++;
|
|
85
113
|
}
|
|
86
114
|
return tokens;
|
package/lexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/lexer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../../repos/sharpee_v2/packages/chord/src/lexer.ts"],"names":[],"mappings":"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"}
|