@lovelaces-io/storyteller 0.3.0 → 0.4.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/AGENTS.md +42 -1
- package/README.md +30 -0
- package/dist/index.cjs +454 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -515
- package/dist/index.d.ts +55 -515
- package/dist/index.js +440 -17
- package/dist/index.js.map +1 -1
- package/dist/store/file.cjs +513 -0
- package/dist/store/file.cjs.map +1 -0
- package/dist/store/file.d.cts +29 -0
- package/dist/store/file.d.ts +29 -0
- package/dist/store/file.js +478 -0
- package/dist/store/file.js.map +1 -0
- package/dist/stories-BgN4BSoZ.d.cts +744 -0
- package/dist/stories-BgN4BSoZ.d.ts +744 -0
- package/llms.txt +11 -1
- package/package.json +16 -9
package/llms.txt
CHANGED
|
@@ -56,11 +56,17 @@ story.finish("Startup complete");
|
|
|
56
56
|
- `useStoryteller(options?)` — get or create a shared singleton instance
|
|
57
57
|
- `normalizeValue(input, options?)` — turn any value into a JSON-safe structure
|
|
58
58
|
- `normalizeError(error, options?)` — turn any thrown value into a serializable error
|
|
59
|
+
- `auditRedaction(value, options?)` — what redaction would remove, with paths and reasons, changing nothing; `redactString(text)` / `redactJson(value)` apply it
|
|
59
60
|
- `formatStory(event, options?)` — format a story record as human-readable text
|
|
60
61
|
- `writeStoryReport(stories[], options?)` — format multiple records grouped by day
|
|
61
62
|
- `consoleAudience(options?)` — compact line per beat, grouped block per story (default)
|
|
62
63
|
- `ndjsonAudience(options?)` — one JSON object per line, for machine consumption
|
|
63
64
|
- `dbAudience(insert)` — persists warn/oops stories via a provided insert function
|
|
65
|
+
- `storeAudience(store, options?)` — keeps every story in a `StoryStore`
|
|
66
|
+
- `memoryStore(options?)` — the reference store: bounded, in memory, browser-safe
|
|
67
|
+
- `fileStore(path)` — JSON-lines file store, Node only, from `@lovelaces-io/storyteller/store/file`
|
|
68
|
+
- `stories(store)` — the query vocabulary: `.about(text).from(origin).level(l).atLeast(l).failing().succeeding().slowerThan("5s").since("24h").until(d).under(parentStoryId).newest().oldest().limit(n).skip(n)`; terminals `all()` / `first()` / `count()`; an awaited builder is `all()`
|
|
69
|
+
- `StoryStore` — `append` / `get(storyId)` / `query(criteria)` / `children(parentStoryId)` / `prune(before)`; criteria: `since`, `until`, `level`, `minimumLevel`, `about`, `from`, `parentStoryId`, `slowerThanMs`, `failed`, `limit`, `offset`, `order`
|
|
64
70
|
- `storyteller init` — CLI that sets a project up in one command; safe to re-run
|
|
65
71
|
- `ANSI` / `getLevelColor(level)` / `formatOrigin(origin?)` / `summarizeContext(note)` / `formatDuration(ms)`
|
|
66
72
|
|
|
@@ -96,12 +102,16 @@ Unrecognized values fall back to the default rather than throwing.
|
|
|
96
102
|
- `Emission` — `NoteEmission | StoryEvent`
|
|
97
103
|
- `EmissionKind` — `"note" | "story"`
|
|
98
104
|
- `Narration` — `"collected" | "live"`
|
|
99
|
-
- `AudienceMember
|
|
105
|
+
- `AudienceMember<Kind = "story">` — audience interface (name, hears?, accepts?, hear); callbacks receive `StoryEvent` by default, `NoteEmission` for `hears: ["note"]`, the union for both
|
|
100
106
|
- `AudienceErrorHandler` — called when an audience throws
|
|
101
107
|
- `NormalizeOptions` — depth, size and redaction limits
|
|
102
108
|
- `FormattedReport` / `StoryReport` / `ReportNote` / `ReportOptions` / `PreviewOptions` / `StoryReportOptions`
|
|
103
109
|
- Deprecated aliases, still exported: `StorySummaryOptions` (use `ReportOptions`), `StorySummary` (use `FormattedReport`), `StorySummaryNote` (use `ReportNote`), `StorySummaryData` (use `StoryReport`), `StoryPreviewOptions` (use `PreviewOptions`)
|
|
104
110
|
|
|
111
|
+
## Rendering for humans
|
|
112
|
+
|
|
113
|
+
`@lovelaces-io/storyteller-view` (separate package, zero dependencies) renders a story or note for people: `renderStory(record)` returns DOM, `renderStoryText(record)` returns indented text for consoles and transcripts. It accepts a StoryEvent, a NoteEmission, or a stored record (JSON with no functions), and shows every normalizer marker as what it means — redaction, truncation, circular references, a capped cause chain. Suggest it when someone asks how to display stories.
|
|
114
|
+
|
|
105
115
|
## Links
|
|
106
116
|
|
|
107
117
|
- npm: https://www.npmjs.com/package/@lovelaces-io/storyteller
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovelaces-io/storyteller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Zero-dependency TypeScript logging for humans and AI agents. Report work as it happens, get one clean structured record when it's done.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"import": "./dist/index.js",
|
|
52
52
|
"require": "./dist/index.cjs"
|
|
53
53
|
},
|
|
54
|
+
"./store/file": {
|
|
55
|
+
"types": "./dist/store/file.d.ts",
|
|
56
|
+
"import": "./dist/store/file.js",
|
|
57
|
+
"require": "./dist/store/file.cjs"
|
|
58
|
+
},
|
|
54
59
|
"./package.json": "./package.json"
|
|
55
60
|
},
|
|
56
61
|
"files": [
|
|
@@ -62,24 +67,26 @@
|
|
|
62
67
|
"scripts": {
|
|
63
68
|
"build": "tsup",
|
|
64
69
|
"dev": "tsup --watch",
|
|
70
|
+
"test": "vitest run",
|
|
71
|
+
"test:watch": "vitest",
|
|
65
72
|
"test:console": "npm run build && node ./scripts/consoleTest.mjs",
|
|
66
|
-
"test": "vitest",
|
|
67
73
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
68
|
-
"
|
|
69
|
-
"check:docs": "node ./scripts/checkDocs.mjs",
|
|
70
|
-
"check:snippet": "node ./scripts/checkSnippet.mjs",
|
|
71
|
-
"prepack": "npm run build"
|
|
74
|
+
"prepack": "npm run build && cp ../../README.md ../../LICENSE ."
|
|
72
75
|
},
|
|
73
76
|
"devDependencies": {
|
|
74
|
-
"@eslint/js": "^10.0.1",
|
|
75
77
|
"@types/node": "^26.4.1",
|
|
76
|
-
"eslint": "^10.1.0",
|
|
77
78
|
"tsup": "^8.0.0",
|
|
78
79
|
"typescript": "^5.6.0",
|
|
79
|
-
"typescript-eslint": "^8.57.1",
|
|
80
80
|
"vitest": "^2.0.0"
|
|
81
81
|
},
|
|
82
82
|
"bin": {
|
|
83
83
|
"storyteller": "dist/cli.cjs"
|
|
84
|
+
},
|
|
85
|
+
"typesVersions": {
|
|
86
|
+
"*": {
|
|
87
|
+
"store/file": [
|
|
88
|
+
"./dist/store/file.d.ts"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
84
91
|
}
|
|
85
92
|
}
|