@miadi/inquiry-weave 0.1.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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/artefact.d.ts +33 -0
- package/dist/artefact.d.ts.map +1 -0
- package/dist/artefact.js +59 -0
- package/dist/artefact.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +21 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +339 -0
- package/dist/cli.js.map +1 -0
- package/dist/env.d.ts +22 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +26 -0
- package/dist/env.js.map +1 -0
- package/dist/episode.d.ts +38 -0
- package/dist/episode.d.ts.map +1 -0
- package/dist/episode.js +109 -0
- package/dist/episode.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/issue.d.ts +27 -0
- package/dist/issue.d.ts.map +1 -0
- package/dist/issue.js +55 -0
- package/dist/issue.js.map +1 -0
- package/dist/legacy-hch.d.ts +28 -0
- package/dist/legacy-hch.d.ts.map +1 -0
- package/dist/legacy-hch.js +120 -0
- package/dist/legacy-hch.js.map +1 -0
- package/dist/relate.d.ts +31 -0
- package/dist/relate.d.ts.map +1 -0
- package/dist/relate.js +79 -0
- package/dist/relate.js.map +1 -0
- package/dist/status.d.ts +47 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +142 -0
- package/dist/status.js.map +1 -0
- package/dist/sync.d.ts +28 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +80 -0
- package/dist/sync.js.map +1 -0
- package/dist/tree.d.ts +19 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +44 -0
- package/dist/tree.js.map +1 -0
- package/dist/weave.d.ts +83 -0
- package/dist/weave.d.ts.map +1 -0
- package/dist/weave.js +101 -0
- package/dist/weave.js.map +1 -0
- package/package.json +51 -0
- package/rispecs/medicine-wheel-registration.spec.md +72 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Miadi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# @miadi/inquiry-weave
|
|
2
|
+
|
|
3
|
+
Relate and sync three identities of one inquiry — and never write the inquiry itself.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
┌────────────────────────────┐ inquire (vessel + issue) ┌──────────────────────┐
|
|
7
|
+
│ Inquiry artefact │ ◄─────────────────────────── │ Chronicle episode │
|
|
8
|
+
│ $MIADI_INQUIRY_ROOT/<dir> │ │ <chronicle>/<date>- │
|
|
9
|
+
│ (IAIP tree — │ ───────────────────────────► │ episode-NNN-<slug>/ │
|
|
10
|
+
│ system-of-record) │ promote / sync (mirror) │ inquiry/<dir>/ │
|
|
11
|
+
└─────────────┬──────────────┘ └──────────┬───────────┘
|
|
12
|
+
│ │
|
|
13
|
+
│ ┌────────────────────────┐ │
|
|
14
|
+
└──────────► │ GitHub issue │ ◄────────────────┘
|
|
15
|
+
.weave.yaml│ owner/repo#N │ inquiry/weave.yaml
|
|
16
|
+
└────────────────────────┘
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## The three identities (worked example: ep126 / #245)
|
|
20
|
+
|
|
21
|
+
| Identity | Example |
|
|
22
|
+
|---|---|
|
|
23
|
+
| Inquiry artefact | `/src/IAIP/prototypes/artefacts/ep126-mila-ai-event-260715-b08218a8-…` |
|
|
24
|
+
| GitHub issue | `miadisabelle/Etuaptmumk-RSM#245` |
|
|
25
|
+
| Chronicle episode | `…/miadi-chronicle/2026-07-13-episode-126-mila-ai-indigenous-gathering/` |
|
|
26
|
+
|
|
27
|
+
This package generalizes the manual prior art (`<episode>/inquiry/_sync.sh`, a one-way tar
|
|
28
|
+
copy) into a repeatable workflow: `relate`, `promote`, `inquire`, `sync`, `status`.
|
|
29
|
+
|
|
30
|
+
## The mystery boundary
|
|
31
|
+
|
|
32
|
+
**The package never generates inquiry content.** Creating an inquiry's substance — the
|
|
33
|
+
question, the search, the listening — is human work and stays that way. `inquire` creates
|
|
34
|
+
only the *vessel*: a named empty directory, its GitHub issue, and the relation metadata.
|
|
35
|
+
This boundary is enforced by an executable test (the vessel must contain relation
|
|
36
|
+
metadata only).
|
|
37
|
+
|
|
38
|
+
## CLI
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
inquiry-weave relate --artefact <name|path> --episode <num|name|path> [--issue owner/repo#N]
|
|
42
|
+
inquiry-weave promote --artefact <name|path> (--episode <ref> | --new-episode <slug> [--title <t>])
|
|
43
|
+
inquiry-weave inquire --episode <ref> --slug <slug> [--title <t>] [--repo owner/repo] [--no-issue]
|
|
44
|
+
inquiry-weave sync (--artefact <ref> [--episode <ref>] | --episode <ref> [--all])
|
|
45
|
+
inquiry-weave status (--episode <ref> | --artefact <ref>) [--json]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Global flags: `--inquiry-root`, `--chronicle-root`, `--repo`, `--dry-run`, `--json`.
|
|
49
|
+
Exit codes: `0` ok, `1` operational error, `2` usage/resolution error (ambiguous episode
|
|
50
|
+
numbers list their candidates — duplicates exist in the wild).
|
|
51
|
+
|
|
52
|
+
## Environment
|
|
53
|
+
|
|
54
|
+
| Variable | Fallback chain | Default |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `MIADI_INQUIRY_ROOT` | → `INQUIRY_ROOT` | `/src/IAIP/prototypes/artefacts` |
|
|
57
|
+
| `MIADI_CHRONICLE_ROOT` | — | `/srv/miadi/episodes/miadi-chronicle` |
|
|
58
|
+
| `MIADI_INQUIRY_REPO` | — | `miadisabelle/Etuaptmumk-RSM` |
|
|
59
|
+
| `INQUIRY_WEAVE_ISSUE_LIB` | → `/a/src/scripts/fn_github_issue.sh` → `/src/scripts/fn_github_issue.sh` | — |
|
|
60
|
+
|
|
61
|
+
## Metadata contract
|
|
62
|
+
|
|
63
|
+
`weave.yaml` / `.weave.yaml` — written and owned by this package — is the authoritative
|
|
64
|
+
record of the relation. Sync state lives episode-side only, so the artefact-side file can
|
|
65
|
+
be mirrored verbatim without a self-invalidating hash loop.
|
|
66
|
+
|
|
67
|
+
**Episode side, `<episode>/inquiry/weave.yaml`:**
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
weave: 1
|
|
71
|
+
episode:
|
|
72
|
+
number: 126
|
|
73
|
+
slug: mila-ai-indigenous-gathering
|
|
74
|
+
path: 2026-07-13-episode-126-mila-ai-indigenous-gathering
|
|
75
|
+
inquiries:
|
|
76
|
+
- artefact: ep126-mila-ai-event-260715-b08218a8-0441-4596-a16e-47483d3ab57c
|
|
77
|
+
issue: miadisabelle/Etuaptmumk-RSM#245
|
|
78
|
+
issue_url: https://github.com/miadisabelle/Etuaptmumk-RSM/issues/245
|
|
79
|
+
related_at: 2026-07-15T00:00:00.000Z
|
|
80
|
+
last_sync:
|
|
81
|
+
at: 2026-07-15T00:00:00.000Z
|
|
82
|
+
tree_sha256: <sha256 of the sorted relpath:filehash:size manifest>
|
|
83
|
+
file_count: 4
|
|
84
|
+
bytes_total: 341001
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Artefact side, `<artefact>/.weave.yaml`:**
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
weave: 1
|
|
91
|
+
artefact: ep126-mila-ai-event-260715-b08218a8-0441-4596-a16e-47483d3ab57c
|
|
92
|
+
issue: miadisabelle/Etuaptmumk-RSM#245
|
|
93
|
+
issue_url: https://github.com/miadisabelle/Etuaptmumk-RSM/issues/245
|
|
94
|
+
episodes:
|
|
95
|
+
- path: 2026-07-13-episode-126-mila-ai-indigenous-gathering
|
|
96
|
+
number: 126
|
|
97
|
+
related_at: 2026-07-15T00:00:00.000Z
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`relate` also appends the ep090-style back-link into the artefact's `AGENTS.md`
|
|
101
|
+
(episode path + `related issue owner/repo#N`) — append-if-missing, never overwriting.
|
|
102
|
+
|
|
103
|
+
### `.hch/` is legacy input — and an open decision
|
|
104
|
+
|
|
105
|
+
`.hch/` (the issue-harness cache written by `fn_github_issue.sh` and its predecessors) is
|
|
106
|
+
read **best-effort, once**, to seed `.weave.yaml` when relating a pre-existing artefact.
|
|
107
|
+
Tolerated shapes: the correct `issue_<N>.env`, the V2-era bug shape (literal `issue_.env`
|
|
108
|
+
with no `issue_url`), and the newest `issue_add__*.json` as fallback. This package never
|
|
109
|
+
writes `.hch`.
|
|
110
|
+
|
|
111
|
+
**Open decision (deliberately not settled in v0):** does `.hch` get (a) formalized as a
|
|
112
|
+
shared contract across tools, (b) kept as `fn_github_issue.sh`'s private cache and mapped
|
|
113
|
+
into `.weave.yaml` at relate time — v0's de-facto behavior — or (c) retired? v0 is
|
|
114
|
+
compatible with all three outcomes.
|
|
115
|
+
|
|
116
|
+
## IAIP is the external system-of-record
|
|
117
|
+
|
|
118
|
+
The inquiry root lives in the IAIP tree (a checkout of `miadisabelle/Etuaptmumk-RSM`).
|
|
119
|
+
Sync is one-way (artefact → episode): the episode copy is a snapshot, deletions
|
|
120
|
+
propagate, and local edits to the copy are flagged as `episode-copy-diverged` before
|
|
121
|
+
being overwritten.
|
|
122
|
+
|
|
123
|
+
**Vercel API evaluation note:** `https://etuaptmumk.vercel.app/` exposes only
|
|
124
|
+
`/api/articles` and `/api/articles/seed` (which read `prototypes/artefacts` markdown into
|
|
125
|
+
Redis) — there is no inquiry CRUD. It is a documented future interface; v0 has no
|
|
126
|
+
dependency on it.
|
|
127
|
+
|
|
128
|
+
**Deferred decision, explicitly named:** absorbing IAIP into Miadi packages is out of
|
|
129
|
+
scope and not planned here.
|
|
130
|
+
|
|
131
|
+
## GitHub issues via fn_github_issue.sh
|
|
132
|
+
|
|
133
|
+
`inquire` delegates issue creation to the sourced `issue_add` function of
|
|
134
|
+
`fn_github_issue.sh` (a `gh` CLI wrapper), invoked with cwd = the artefact directory and
|
|
135
|
+
an explicit `owner/repo`. The created identity is parsed from stdout (`* owner/repo#N`)
|
|
136
|
+
and recorded straight into `.weave.yaml`. Issue title convention: the artefact's absolute
|
|
137
|
+
path (as with #245). `--no-issue` skips creation.
|
|
138
|
+
|
|
139
|
+
## Medicine-wheel registration & forgewright visibility (spec-only)
|
|
140
|
+
|
|
141
|
+
The future `inquiry-weave register` will project `WeaveRecord` (exported from this
|
|
142
|
+
package as the seam) into medicine-wheel storage so forgewright can render Inquiry
|
|
143
|
+
Weaves in episode views. Nothing is implemented in v0 — see the RISE specs:
|
|
144
|
+
|
|
145
|
+
- `rispecs/medicine-wheel-registration.spec.md` (this package)
|
|
146
|
+
- `medicine-wheel:rispecs/inquiry-weave-registration.spec.md`
|
|
147
|
+
- `forgewright:rispecs/09-inquiry-weave-visibility.spec.md` (branch `4-plan-episode-visibility`)
|
|
148
|
+
|
|
149
|
+
## Kinship with @miadi/passages
|
|
150
|
+
|
|
151
|
+
Episode *creation* as a first-class command (`mkepisode -n 133 -t <slug> -g "<goal>"`)
|
|
152
|
+
likely belongs to `packages/passages` ("Narrative Formulations for the Miadi Chronicle").
|
|
153
|
+
This package keeps its `--new-episode` scaffolding inside one exported function
|
|
154
|
+
(`scaffoldEpisode`) so passages can own creation later, and inquiry-weave consumes any
|
|
155
|
+
pre-existing episode regardless of its creator.
|
|
156
|
+
|
|
157
|
+
## Chronicle repo rule
|
|
158
|
+
|
|
159
|
+
All work in `miadi-chronicle/` is committed directly to `main` (per its `AGENTS.md`) —
|
|
160
|
+
this package writes there only when you run it, and never commits anything itself.
|
|
161
|
+
|
|
162
|
+
## Development
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
pnpm --filter @miadi/inquiry-weave build
|
|
166
|
+
pnpm --filter @miadi/inquiry-weave test
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Tests are fixture-based (`node --test` in temp roots), with no network and no real `gh`
|
|
170
|
+
calls (`INQUIRY_WEAVE_ISSUE_LIB` injects a fake issue lib).
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
🌸: A loom, not a pen — the weave holds artefact, issue, and episode in relation so none
|
|
174
|
+
drifts from the others, while the question itself stays yours to ask.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inquiry artefact identity and the empty vessel.
|
|
3
|
+
*
|
|
4
|
+
* The mystery boundary lives here: scaffoldVessel() creates a named, empty
|
|
5
|
+
* directory and nothing else. The inquiry's substance is written by humans
|
|
6
|
+
* (and their chosen ceremonies), never by this package.
|
|
7
|
+
*/
|
|
8
|
+
export interface ArtefactIdentity {
|
|
9
|
+
name: string;
|
|
10
|
+
dir: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ArtefactResolutionError extends Error {
|
|
13
|
+
}
|
|
14
|
+
export declare function resolveArtefact(inquiryRoot: string, ref: string): ArtefactIdentity;
|
|
15
|
+
export interface ArtefactNameParts {
|
|
16
|
+
episodeNumber: number;
|
|
17
|
+
slug: string;
|
|
18
|
+
date?: Date;
|
|
19
|
+
uuid?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Newest convention observed in the wild: ep<NNN>-<slug>-<YYMMDD>-<uuid>. */
|
|
22
|
+
export declare function buildArtefactName(parts: ArtefactNameParts): string;
|
|
23
|
+
export declare function scaffoldVessel(inquiryRoot: string, name: string): Promise<ArtefactIdentity>;
|
|
24
|
+
export interface BackLinkInput {
|
|
25
|
+
episodeAbsPath: string;
|
|
26
|
+
issue?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Append the ep090-style back-link into the artefact's AGENTS.md — only when
|
|
30
|
+
* the episode path is not already mentioned. Never overwrites existing text.
|
|
31
|
+
*/
|
|
32
|
+
export declare function appendBackLink(artefactDir: string, input: BackLinkInput): Promise<boolean>;
|
|
33
|
+
//# sourceMappingURL=artefact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artefact.d.ts","sourceRoot":"","sources":["../src/artefact.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AAErD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAclF;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAIlE;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
package/dist/artefact.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inquiry artefact identity and the empty vessel.
|
|
3
|
+
*
|
|
4
|
+
* The mystery boundary lives here: scaffoldVessel() creates a named, empty
|
|
5
|
+
* directory and nothing else. The inquiry's substance is written by humans
|
|
6
|
+
* (and their chosen ceremonies), never by this package.
|
|
7
|
+
*/
|
|
8
|
+
import { appendFile, mkdir, readFile } from "node:fs/promises";
|
|
9
|
+
import { existsSync, statSync } from "node:fs";
|
|
10
|
+
import { randomUUID } from "node:crypto";
|
|
11
|
+
import { basename, isAbsolute, join, resolve } from "node:path";
|
|
12
|
+
export class ArtefactResolutionError extends Error {
|
|
13
|
+
}
|
|
14
|
+
export function resolveArtefact(inquiryRoot, ref) {
|
|
15
|
+
const trimmed = ref.trim().replace(/\/+$/, "");
|
|
16
|
+
const candidates = [
|
|
17
|
+
join(inquiryRoot, trimmed),
|
|
18
|
+
isAbsolute(trimmed) ? trimmed : resolve(trimmed),
|
|
19
|
+
];
|
|
20
|
+
for (const candidate of candidates) {
|
|
21
|
+
if (existsSync(candidate) && statSync(candidate).isDirectory()) {
|
|
22
|
+
return { name: basename(candidate), dir: candidate };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
throw new ArtefactResolutionError(`artefact not found: ${ref} (looked under ${inquiryRoot} and as a path)`);
|
|
26
|
+
}
|
|
27
|
+
/** Newest convention observed in the wild: ep<NNN>-<slug>-<YYMMDD>-<uuid>. */
|
|
28
|
+
export function buildArtefactName(parts) {
|
|
29
|
+
const date = parts.date ?? new Date();
|
|
30
|
+
const yymmdd = date.toISOString().slice(2, 10).replace(/-/g, "");
|
|
31
|
+
return `ep${parts.episodeNumber}-${parts.slug}-${yymmdd}-${parts.uuid ?? randomUUID()}`;
|
|
32
|
+
}
|
|
33
|
+
export async function scaffoldVessel(inquiryRoot, name) {
|
|
34
|
+
const dir = join(inquiryRoot, name);
|
|
35
|
+
if (existsSync(dir)) {
|
|
36
|
+
throw new ArtefactResolutionError(`artefact directory already exists: ${dir}`);
|
|
37
|
+
}
|
|
38
|
+
await mkdir(dir, { recursive: true });
|
|
39
|
+
return { name, dir };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Append the ep090-style back-link into the artefact's AGENTS.md — only when
|
|
43
|
+
* the episode path is not already mentioned. Never overwrites existing text.
|
|
44
|
+
*/
|
|
45
|
+
export async function appendBackLink(artefactDir, input) {
|
|
46
|
+
const filePath = join(artefactDir, "AGENTS.md");
|
|
47
|
+
let existing = "";
|
|
48
|
+
if (existsSync(filePath))
|
|
49
|
+
existing = await readFile(filePath, "utf8");
|
|
50
|
+
if (existing.includes(input.episodeAbsPath))
|
|
51
|
+
return false;
|
|
52
|
+
const lines = [`\`${input.episodeAbsPath}\``];
|
|
53
|
+
if (input.issue)
|
|
54
|
+
lines.push(`related issue ${input.issue}`);
|
|
55
|
+
const separator = existing === "" || existing.endsWith("\n") ? "" : "\n";
|
|
56
|
+
await appendFile(filePath, `${separator}${existing === "" ? "" : "\n"}${lines.join("\n")}\n`);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=artefact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artefact.js","sourceRoot":"","sources":["../src/artefact.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inquiry-weave CLI — pure runCli(argv, options), side-effect-free on import.
|
|
3
|
+
*
|
|
4
|
+
* Exit codes: 0 ok, 1 operational error, 2 usage/resolution error.
|
|
5
|
+
*/
|
|
6
|
+
import { parseEpisodeName } from "./episode.js";
|
|
7
|
+
export interface CliStreams {
|
|
8
|
+
stdout: {
|
|
9
|
+
write(chunk: string): unknown;
|
|
10
|
+
};
|
|
11
|
+
stderr: {
|
|
12
|
+
write(chunk: string): unknown;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface RunCliOptions extends Partial<CliStreams> {
|
|
16
|
+
env?: NodeJS.ProcessEnv;
|
|
17
|
+
now?: () => Date;
|
|
18
|
+
}
|
|
19
|
+
export declare function runCli(argv: string[], options?: RunCliOptions): Promise<number>;
|
|
20
|
+
export { parseEpisodeName };
|
|
21
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAGL,gBAAgB,EAIjB,MAAM,cAAc,CAAA;AAOrB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACzC,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1C;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,UAAU,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AA6TD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CzF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|