@miadi/inquiry-weave 0.7.0 → 0.8.1

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.
Files changed (62) hide show
  1. package/README.md +159 -188
  2. package/dist/artefact.d.ts +8 -0
  3. package/dist/artefact.d.ts.map +1 -1
  4. package/dist/artefact.js +18 -2
  5. package/dist/artefact.js.map +1 -1
  6. package/dist/bin.js +0 -0
  7. package/dist/chronicle-dsl.d.ts +191 -0
  8. package/dist/chronicle-dsl.d.ts.map +1 -0
  9. package/dist/chronicle-dsl.js +327 -0
  10. package/dist/chronicle-dsl.js.map +1 -0
  11. package/dist/chronicle-terminal.d.ts +305 -0
  12. package/dist/chronicle-terminal.d.ts.map +1 -0
  13. package/dist/chronicle-terminal.js +449 -0
  14. package/dist/chronicle-terminal.js.map +1 -0
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +335 -34
  17. package/dist/cli.js.map +1 -1
  18. package/dist/env.d.ts +1 -3
  19. package/dist/env.d.ts.map +1 -1
  20. package/dist/env.js +4 -5
  21. package/dist/env.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/issue-content.d.ts +2 -0
  27. package/dist/issue-content.d.ts.map +1 -0
  28. package/dist/issue-content.js +45 -0
  29. package/dist/issue-content.js.map +1 -0
  30. package/dist/issue-ref.d.ts +10 -0
  31. package/dist/issue-ref.d.ts.map +1 -0
  32. package/dist/issue-ref.js +20 -0
  33. package/dist/issue-ref.js.map +1 -0
  34. package/dist/issue.d.ts +2 -11
  35. package/dist/issue.d.ts.map +1 -1
  36. package/dist/issue.js +6 -34
  37. package/dist/issue.js.map +1 -1
  38. package/dist/mcp-server.js +0 -0
  39. package/dist/register.d.ts +1 -1
  40. package/dist/register.d.ts.map +1 -1
  41. package/dist/relate.d.ts +1 -3
  42. package/dist/relate.d.ts.map +1 -1
  43. package/dist/relate.js +1 -12
  44. package/dist/relate.js.map +1 -1
  45. package/dist/skill.d.ts.map +1 -1
  46. package/dist/skill.js +8 -2
  47. package/dist/skill.js.map +1 -1
  48. package/dist/terminal-install.d.ts +84 -0
  49. package/dist/terminal-install.d.ts.map +1 -0
  50. package/dist/terminal-install.js +306 -0
  51. package/dist/terminal-install.js.map +1 -0
  52. package/dist/weave.d.ts +0 -2
  53. package/dist/weave.d.ts.map +1 -1
  54. package/dist/weave.js +0 -2
  55. package/dist/weave.js.map +1 -1
  56. package/package.json +11 -9
  57. package/rispecs/medicine-wheel-registration.spec.md +1 -4
  58. package/LICENSE +0 -21
  59. package/dist/legacy-hch.d.ts +0 -28
  60. package/dist/legacy-hch.d.ts.map +0 -1
  61. package/dist/legacy-hch.js +0 -120
  62. package/dist/legacy-hch.js.map +0 -1
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Install the terminal handler for `miadi-chronicle:` references.
3
+ *
4
+ * Contract: rispecs/miadi-chronicle-dsl/SPEC-TERMINAL.md §3.
5
+ *
6
+ * Two files, shipped as embedded strings so `dist/` is self-contained — the
7
+ * same shape `installSkill` uses. Hand-writing them into a home directory is
8
+ * how a working setup becomes unreproducible on the next machine.
9
+ *
10
+ * ~/.config/terminator/plugins/miadi_chronicle_url_handler.py
11
+ * ~/bin/miadi-chronicle-open
12
+ *
13
+ * The plugin makes a bare `miadi-chronicle:311` clickable in ANY output — a
14
+ * git log, a grep hit, an agent's raw text — output that knows nothing about
15
+ * miadi and will never wrap itself in an OSC 8 escape. That is why it lives
16
+ * alongside OSC 8 rather than competing with it: Terminator has two click
17
+ * paths, and only the regex one consults url_handler plugins
18
+ * (`terminal.py` — OSC 8 calls `open_url(prepare=False)` and goes straight to
19
+ * xdg-open, bypassing the plugin API entirely).
20
+ */
21
+ import { chmodSync, copyFileSync, lstatSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
22
+ import { homedir } from "node:os";
23
+ import { dirname, join } from "node:path";
24
+ export class TerminalInstallError extends Error {
25
+ constructor(message) {
26
+ super(message);
27
+ this.name = "TerminalInstallError";
28
+ }
29
+ }
30
+ export const PLUGIN_CLASS = "MiadiChronicleURLHandler";
31
+ export const PLUGIN_FILENAME = "miadi_chronicle_url_handler.py";
32
+ export const WRAPPER_FILENAME = "miadi-chronicle-open";
33
+ export const ENV_DROPIN_FILENAME = "50-miadi-chronicle.conf";
34
+ /**
35
+ * The URI regex, in one place.
36
+ *
37
+ * Accepts the rootless canonical form and the legacy `//` form. The character
38
+ * class stops at what ends a URI in running text — RFC 3986 Appendix C's point
39
+ * that a reader cannot tell a sentence's trailing period from part of the
40
+ * address. The callback strips trailing punctuation for the same reason.
41
+ */
42
+ export const URI_MATCH_REGEX = String.raw `\bmiadi-chronicle:(?://)?[A-Za-z0-9._~/\-]+(?:\?[^\s<>"'` + "`" + String.raw `]*)?(?:#[^\s<>"'` + "`" + String.raw `]*)?`;
43
+ /**
44
+ * A systemd user environment drop-in — the OS's own answer to "a GUI app
45
+ * cannot see my shell variables".
46
+ *
47
+ * `~/.config/environment.d/*.conf` is read by
48
+ * /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator
49
+ * at user-session start, so every GUI process launched by that session
50
+ * inherits it — Terminator included. This machine already uses the pattern
51
+ * (999-node.conf), so it is the local convention, not an invention.
52
+ *
53
+ * It takes effect at the next login. The wrapper still carries its own
54
+ * defaults so a click works before then; the drop-in is what makes those
55
+ * defaults stop being the only copy.
56
+ */
57
+ function envDropinSource(env) {
58
+ const lines = [
59
+ `# ${ENV_DROPIN_FILENAME} — miadi chronicle environment for GUI sessions.`,
60
+ `#`,
61
+ `# INSTALLED FILE — source of truth:`,
62
+ `# jgwill/Miadi packages/inquiry-weave/src/terminal-install.ts`,
63
+ `# Reinstall with: inquiry-weave terminal install --force`,
64
+ `#`,
65
+ `# Read by systemd's user-environment generator at session start, so every`,
66
+ `# GUI process inherits these — a terminal emulator does not get them from`,
67
+ `# your shell rc. Takes effect at the NEXT LOGIN.`,
68
+ `MIADI_CHRONICLE_ROOT=${env.chronicleRoot}`,
69
+ ];
70
+ if (env.publicBase)
71
+ lines.push(`MIADI_URL_BASE=${env.publicBase}`);
72
+ if (env.internalBase)
73
+ lines.push(`MIADI_URL_BASE_INTERNAL=${env.internalBase}`);
74
+ lines.push(`MW_API_URL=${env.mwUrl}`);
75
+ return `${lines.join("\n")}\n`;
76
+ }
77
+ function pluginSource() {
78
+ return `"""${PLUGIN_FILENAME} — Terminator URL handler for miadi-chronicle references.
79
+
80
+ INSTALLED FILE — do not edit here. Source of truth:
81
+ jgwill/Miadi packages/inquiry-weave/src/terminal-install.ts
82
+ Reinstall with: inquiry-weave terminal install --force
83
+
84
+ Makes a bare \`miadi-chronicle:311\` in ANY terminal output Ctrl-clickable — a
85
+ git log, a grep hit, an agent's raw text — output that knows nothing about miadi
86
+ and so will never wrap itself in an OSC 8 escape.
87
+
88
+ Terminator has two click paths (terminal.py): an OSC 8 hyperlink calls
89
+ open_url(prepare=False) and goes straight to xdg-open, while a regex match calls
90
+ prepare=True, which is the only path that consults url_handler plugins. The two
91
+ cover different halves of the problem and both land on the same wrapper.
92
+
93
+ Spec: rispecs/miadi-chronicle-dsl/SPEC-TERMINAL.md
94
+ Issue: jgwill/Miadi#595
95
+ """
96
+
97
+ import os
98
+ import subprocess
99
+
100
+ import terminatorlib.plugin as plugin
101
+
102
+ AVAILABLE = ['${PLUGIN_CLASS}']
103
+
104
+ OPEN = os.path.expanduser('~/bin/${WRAPPER_FILENAME}')
105
+
106
+
107
+ class ${PLUGIN_CLASS}(plugin.URLHandler):
108
+ capabilities = ['url_handler']
109
+ handler_name = 'miadi_chronicle_uri'
110
+ # r'''...''' because the pattern contains a double quote.
111
+ match = r'''${URI_MATCH_REGEX}'''
112
+ nameopen = 'Open chronicle episode'
113
+ namecopy = 'Copy miadi-chronicle reference'
114
+
115
+ def callback(self, url):
116
+ """Return something openable, or the URL itself so failure stays visible.
117
+
118
+ Never raises: a handler that throws takes the click with it and the user
119
+ sees nothing at all. Returning the original means the system handler
120
+ reports a plain "no application" error — a failure that can be read.
121
+ """
122
+ url = url.rstrip('.,;:!?)]}\\'"')
123
+ try:
124
+ result = subprocess.run(
125
+ [OPEN, url], capture_output=True, text=True, timeout=20,
126
+ )
127
+ except (OSError, subprocess.TimeoutExpired):
128
+ return url
129
+ if result.returncode != 0:
130
+ return url
131
+ return result.stdout.strip() or url
132
+ `;
133
+ }
134
+ function wrapperSource(env) {
135
+ const { binPath, nodePath, defaultBase, chronicleRoot, publicBase, internalBase, mwUrl } = env;
136
+ return `#!/usr/bin/env bash
137
+ # ${WRAPPER_FILENAME} — resolve a miadi-chronicle reference to something openable.
138
+ #
139
+ # INSTALLED FILE — do not edit here. Source of truth:
140
+ # jgwill/Miadi packages/inquiry-weave/src/terminal-install.ts
141
+ # Reinstall with: inquiry-weave terminal install --force
142
+ #
143
+ # Usage: ${WRAPPER_FILENAME} "miadi-chronicle:311/services-inventory"
144
+ # Stdout: one URL
145
+ # Exit: 0 ok · 64 usage · 65 not a chronicle reference · 66 unresolved
146
+ #
147
+ # Spec: rispecs/miadi-chronicle-dsl/SPEC-TERMINAL.md
148
+ # Issue: jgwill/Miadi#595
149
+
150
+ set -euo pipefail
151
+
152
+ # Baked at install time to the bin that installed it, so the handler does not
153
+ # depend on PATH resolution inside a GUI process — Terminator does not inherit
154
+ # a login shell's PATH, which is how a handler that works in a terminal fails
155
+ # when clicked.
156
+ IW_BIN="\${MIADI_IW_BIN:-${binPath}}"
157
+ NODE_BIN="\${MIADI_NODE_BIN:-${nodePath}}"
158
+
159
+ # Baked at install time for the same reason as the bin paths: a GUI process
160
+ # inherits none of this, so without it every click would silently fall back to
161
+ # the localhost door — a link that works for one reader on one machine.
162
+ export MIADI_CHRONICLE_ROOT="\${MIADI_CHRONICLE_ROOT:-${chronicleRoot}}"
163
+ export MIADI_URL_BASE="\${MIADI_URL_BASE:-${publicBase}}"
164
+ export MIADI_URL_BASE_INTERNAL="\${MIADI_URL_BASE_INTERNAL:-${internalBase}}"
165
+ export MW_API_URL="\${MW_API_URL:-${mwUrl}}"
166
+
167
+ [ $# -ge 1 ] || { echo "usage: \$0 \\"miadi-chronicle:<episode>[/<artifact>]\\"" >&2; exit 64; }
168
+
169
+ case "\$1" in
170
+ miadi-chronicle:*) ;;
171
+ *) echo "not a chronicle reference: \$1" >&2; exit 65 ;;
172
+ esac
173
+
174
+ # Which door a click opens. 'public' by default because a clicked link is often
175
+ # shared onward, and a localhost URL works for exactly one reader on one machine.
176
+ BASE="\${MIADI_CHRONICLE_OPEN_BASE:-${defaultBase}}"
177
+
178
+ url=\$("\$NODE_BIN" "\$IW_BIN" resolve "\$1" --json --base "\$BASE" 2>/dev/null | "\$NODE_BIN" -e '
179
+ let raw = ""
180
+ process.stdin.on("data", (c) => (raw += c))
181
+ process.stdin.on("end", () => {
182
+ try { process.stdout.write(JSON.parse(raw).open || "") } catch { process.stdout.write("") }
183
+ })')
184
+
185
+ [ -n "\$url" ] || { echo "unresolved: \$1" >&2; exit 66; }
186
+ printf '%s\\n' "\$url"
187
+ `;
188
+ }
189
+ function pathState(path) {
190
+ try {
191
+ lstatSync(path);
192
+ return "present";
193
+ }
194
+ catch {
195
+ return "missing";
196
+ }
197
+ }
198
+ /**
199
+ * Install both files, and optionally enable the plugin.
200
+ *
201
+ * Idempotent: an existing file is left alone unless `force` is set, so running
202
+ * this twice is safe and running it after an upgrade is the repair.
203
+ */
204
+ export function installTerminalHandler(options = {}) {
205
+ const home = options.homeDir ?? homedir();
206
+ const binPath = options.binPath ?? process.argv[1];
207
+ const nodePath = options.nodePath ?? process.execPath;
208
+ const defaultBase = options.defaultBase ?? "public";
209
+ const env = options.env ?? process.env;
210
+ const pluginPath = join(home, ".config", "terminator", "plugins", PLUGIN_FILENAME);
211
+ const wrapperPath = join(home, "bin", WRAPPER_FILENAME);
212
+ const bakeable = {
213
+ chronicleRoot: options.chronicleRoot ?? env.MIADI_CHRONICLE_ROOT ?? "/srv/miadi/episodes/miadi-chronicle",
214
+ publicBase: options.publicBase ?? env.MIADI_URL_BASE ?? "",
215
+ internalBase: options.internalBase ?? env.MIADI_URL_BASE_INTERNAL ?? "",
216
+ mwUrl: options.mwUrl ?? env.MW_API_URL ?? "http://127.0.0.1:8040",
217
+ };
218
+ const envDropinPath = join(home, ".config", "environment.d", ENV_DROPIN_FILENAME);
219
+ const targets = [
220
+ { path: pluginPath, content: pluginSource() },
221
+ { path: envDropinPath, content: envDropinSource(bakeable) },
222
+ {
223
+ path: wrapperPath,
224
+ content: wrapperSource({ binPath, nodePath, defaultBase, ...bakeable }),
225
+ mode: 0o755,
226
+ },
227
+ ];
228
+ const files = [];
229
+ for (const target of targets) {
230
+ const exists = pathState(target.path) === "present";
231
+ if (exists && options.force !== true) {
232
+ files.push({ path: target.path, state: "exists" });
233
+ continue;
234
+ }
235
+ if (options.dryRun === true) {
236
+ files.push({ path: target.path, state: "would-write" });
237
+ continue;
238
+ }
239
+ mkdirSync(dirname(target.path), { recursive: true });
240
+ writeFileSync(target.path, target.content, "utf8");
241
+ if (target.mode !== undefined)
242
+ chmodSync(target.path, target.mode);
243
+ files.push({ path: target.path, state: "written" });
244
+ }
245
+ const configPath = join(home, ".config", "terminator", "config");
246
+ const result = {
247
+ files,
248
+ configPath,
249
+ configState: "not-requested",
250
+ binPath,
251
+ };
252
+ if (options.enable !== true)
253
+ return result;
254
+ if (pathState(configPath) === "missing") {
255
+ result.configState = "no-config";
256
+ return result;
257
+ }
258
+ const config = readFileSync(configPath, "utf8");
259
+ if (config.includes(PLUGIN_CLASS)) {
260
+ result.configState = "already-enabled";
261
+ return result;
262
+ }
263
+ const line = /^(\s*enabled_plugins\s*=\s*)(.*)$/m.exec(config);
264
+ if (!line) {
265
+ throw new TerminalInstallError(`no enabled_plugins line in ${configPath} — add "${PLUGIN_CLASS}" by hand`);
266
+ }
267
+ if (options.dryRun === true) {
268
+ result.configState = "would-enable";
269
+ return result;
270
+ }
271
+ // A backup before touching a config the user owns and did not write here.
272
+ const backupPath = `${configPath}.bak-miadi-chronicle`;
273
+ copyFileSync(configPath, backupPath);
274
+ result.backupPath = backupPath;
275
+ const updated = config.replace(line[0], `${line[1]}${line[2].trim()}, ${PLUGIN_CLASS}`);
276
+ writeFileSync(configPath, updated, "utf8");
277
+ result.configState = "enabled";
278
+ return result;
279
+ }
280
+ /** Remove both files and drop the class from `enabled_plugins`. */
281
+ export function uninstallTerminalHandler(options = {}) {
282
+ const home = options.homeDir ?? homedir();
283
+ const removed = [];
284
+ for (const path of [
285
+ join(home, ".config", "terminator", "plugins", PLUGIN_FILENAME),
286
+ join(home, ".config", "environment.d", ENV_DROPIN_FILENAME),
287
+ join(home, "bin", WRAPPER_FILENAME),
288
+ ]) {
289
+ if (pathState(path) === "present") {
290
+ if (options.dryRun !== true)
291
+ rmSync(path);
292
+ removed.push(path);
293
+ }
294
+ }
295
+ const configPath = join(home, ".config", "terminator", "config");
296
+ if (pathState(configPath) === "missing")
297
+ return { removed, configState: "no-config" };
298
+ const config = readFileSync(configPath, "utf8");
299
+ if (!config.includes(PLUGIN_CLASS))
300
+ return { removed, configState: "not-enabled" };
301
+ if (options.dryRun !== true) {
302
+ writeFileSync(configPath, config.replace(new RegExp(`,\\s*${PLUGIN_CLASS}|${PLUGIN_CLASS},\\s*`), ""), "utf8");
303
+ }
304
+ return { removed, configState: "disabled" };
305
+ }
306
+ //# sourceMappingURL=terminal-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-install.js","sourceRoot":"","sources":["../src/terminal-install.ts"],"names":[],"mappings":"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"}
package/dist/weave.d.ts CHANGED
@@ -4,8 +4,6 @@
4
4
  * Episode side: <episode>/inquiry/weave.yaml (sync state lives here only)
5
5
  * Artefact side: <artefact>/.weave.yaml (durable relations only, so a
6
6
  * sync can copy it verbatim without a self-invalidating hash loop)
7
- *
8
- * `.hch/` is best-effort legacy input (see legacy-hch.ts), never written here.
9
7
  */
10
8
  export declare const WEAVE_VERSION = 1;
11
9
  export interface LastSync {
@@ -1 +1 @@
1
- {"version":3,"file":"weave.d.ts","sourceRoot":"","sources":["../src/weave.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weave.d.ts","sourceRoot":"","sources":["../src/weave.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,oBAAoB,CAAA;IAC7B,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAyBD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAI5F;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAI/F;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAUpF;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,mBAAmB,GACxB,mBAAmB,CAQrB;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,GAClB,WAAW,EAAE,CAQf;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,YAAY,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAEnE"}
package/dist/weave.js CHANGED
@@ -4,8 +4,6 @@
4
4
  * Episode side: <episode>/inquiry/weave.yaml (sync state lives here only)
5
5
  * Artefact side: <artefact>/.weave.yaml (durable relations only, so a
6
6
  * sync can copy it verbatim without a self-invalidating hash loop)
7
- *
8
- * `.hch/` is best-effort legacy input (see legacy-hch.ts), never written here.
9
7
  */
10
8
  import { mkdir, readFile, writeFile } from "node:fs/promises";
11
9
  import { existsSync } from "node:fs";
package/dist/weave.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"weave.js","sourceRoot":"","sources":["../src/weave.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weave.js","sourceRoot":"","sources":["../src/weave.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miadi/inquiry-weave",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Relate and sync IAIP inquiry artefacts, their GitHub issues, and miadi-chronicle episodes. Creates vessels and relations only — never inquiry content.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,9 +25,15 @@
25
25
  "README.md",
26
26
  "rispecs"
27
27
  ],
28
+ "scripts": {
29
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
30
+ "build": "npm run clean && ../../node_modules/.bin/tsc -p tsconfig.build.json",
31
+ "test": "npm run build && node --test test/*.test.mjs",
32
+ "prepublishOnly": "npm run build"
33
+ },
28
34
  "dependencies": {
29
- "yaml": "^2.5.0",
30
- "@miadi/episodic-memory-schema": "^0.8.0"
35
+ "@miadi/episodic-memory-schema": "workspace:^",
36
+ "yaml": "^2.5.0"
31
37
  },
32
38
  "devDependencies": {
33
39
  "typescript": "^5.4.0"
@@ -45,9 +51,5 @@
45
51
  "url": "git+https://github.com/jgwill/Miadi.git",
46
52
  "directory": "packages/inquiry-weave"
47
53
  },
48
- "license": "MIT",
49
- "scripts": {
50
- "build": "../../node_modules/.bin/tsc -p tsconfig.build.json",
51
- "test": "npm run build && node --test test/*.test.mjs"
52
- }
53
- }
54
+ "license": "MIT"
55
+ }
@@ -20,8 +20,6 @@ Status: **implemented in v0.2** — `register` targets `POST {MW_API_URL}/api/in
20
20
  interface; nothing registers weaves into it today.
21
21
  - forgewright renders episode data from medicine-wheel but has no notion of an Inquiry
22
22
  Weave.
23
- - Legacy `.hch/` is a per-artefact issue cache with an unsettled fate (formalize / map /
24
- retire — see README). Registration must not depend on it.
25
23
 
26
24
  ## Intent
27
25
 
@@ -59,8 +57,7 @@ registration moves metadata, never inquiry content.
59
57
  ## Exportation (implementation-ready notes)
60
58
 
61
59
  - Implement as `src/register.ts` consuming `toWeaveRecords()`; add a `register`
62
- subcommand in `cli.ts`; keep the transport injectable (test seam like
63
- `INQUIRY_WEAVE_ISSUE_LIB`).
60
+ subcommand in `cli.ts`; keep the transport injectable for tests.
64
61
  - Do not implement until the medicine-wheel spec lands its storage contract; then pin the
65
62
  agreed endpoint/tool name here.
66
63
  - Companion agent sessions (copilot/codex panes in the medicine-wheel and forgewright
package/LICENSE DELETED
@@ -1,21 +0,0 @@
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.
@@ -1,28 +0,0 @@
1
- /**
2
- * Best-effort reader for the legacy `.hch/` issue-harness cache.
3
- *
4
- * `.hch` is NOT a contract of this package: it is read once to seed
5
- * `.weave.yaml` when relating a pre-existing artefact, and never written.
6
- * Its fate (formalize / map / retire) is an open decision — see README.
7
- *
8
- * Tolerated shapes:
9
- * - correct: .hch/issue_<N>.env with issue_id / issue_title / issue_url
10
- * - V2-era bug: literal .hch/issue_.env, no issue_url line
11
- * - fallback: newest .hch/issue_add__<tlid>.json (gh/REST issue payload)
12
- */
13
- export interface IssueRef {
14
- owner: string;
15
- repo: string;
16
- number: number;
17
- }
18
- export interface LegacyIssueSeed {
19
- issue?: string;
20
- issue_url?: string;
21
- diagnostics: string[];
22
- }
23
- export declare function parseIssueRef(ref: string): IssueRef | undefined;
24
- export declare function formatIssueRef(ref: IssueRef): string;
25
- export declare function issueRefFromUrl(url: string): IssueRef | undefined;
26
- export declare function issueUrlFromRef(ref: IssueRef): string;
27
- export declare function readLegacyHch(artefactDir: string, fallbackRepo?: string): Promise<LegacyIssueSeed | undefined>;
28
- //# sourceMappingURL=legacy-hch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-hch.d.ts","sourceRoot":"","sources":["../src/legacy-hch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAI/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAErD;AAmBD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA2EtC"}
@@ -1,120 +0,0 @@
1
- /**
2
- * Best-effort reader for the legacy `.hch/` issue-harness cache.
3
- *
4
- * `.hch` is NOT a contract of this package: it is read once to seed
5
- * `.weave.yaml` when relating a pre-existing artefact, and never written.
6
- * Its fate (formalize / map / retire) is an open decision — see README.
7
- *
8
- * Tolerated shapes:
9
- * - correct: .hch/issue_<N>.env with issue_id / issue_title / issue_url
10
- * - V2-era bug: literal .hch/issue_.env, no issue_url line
11
- * - fallback: newest .hch/issue_add__<tlid>.json (gh/REST issue payload)
12
- */
13
- import { readdir, readFile } from "node:fs/promises";
14
- import { existsSync } from "node:fs";
15
- import { join } from "node:path";
16
- const ISSUE_URL_PATTERN = /github\.com\/([^/\s]+)\/([^/\s]+)\/issues\/(\d+)/;
17
- export function parseIssueRef(ref) {
18
- const match = /^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)#(\d+)$/.exec(ref.trim());
19
- if (!match)
20
- return undefined;
21
- return { owner: match[1], repo: match[2], number: Number(match[3]) };
22
- }
23
- export function formatIssueRef(ref) {
24
- return `${ref.owner}/${ref.repo}#${ref.number}`;
25
- }
26
- export function issueRefFromUrl(url) {
27
- const match = ISSUE_URL_PATTERN.exec(url);
28
- if (!match)
29
- return undefined;
30
- return { owner: match[1], repo: match[2], number: Number(match[3]) };
31
- }
32
- export function issueUrlFromRef(ref) {
33
- return `https://github.com/${ref.owner}/${ref.repo}/issues/${ref.number}`;
34
- }
35
- function parseEnvLines(content) {
36
- const values = {};
37
- for (const line of content.split("\n")) {
38
- const match = /^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/.exec(line.trim());
39
- if (!match)
40
- continue;
41
- let value = match[2].trim();
42
- if ((value.startsWith('"') && value.endsWith('"')) ||
43
- (value.startsWith("'") && value.endsWith("'"))) {
44
- value = value.slice(1, -1);
45
- }
46
- values[match[1]] = value;
47
- }
48
- return values;
49
- }
50
- export async function readLegacyHch(artefactDir, fallbackRepo) {
51
- const hchDir = join(artefactDir, ".hch");
52
- if (!existsSync(hchDir))
53
- return undefined;
54
- const entries = await readdir(hchDir);
55
- const diagnostics = [];
56
- const envFiles = entries.filter((name) => /^issue_\d*\.env$/.test(name)).sort();
57
- let issueId;
58
- for (const name of envFiles) {
59
- const values = parseEnvLines(await readFile(join(hchDir, name), "utf8"));
60
- if (values.issue_url) {
61
- const ref = issueRefFromUrl(values.issue_url);
62
- if (ref) {
63
- return { issue: formatIssueRef(ref), issue_url: values.issue_url, diagnostics };
64
- }
65
- diagnostics.push(`.hch/${name}: unparseable issue_url ${values.issue_url}`);
66
- }
67
- if (values.issue_id && /^\d+$/.test(values.issue_id)) {
68
- issueId = Number(values.issue_id);
69
- if (name === "issue_.env") {
70
- diagnostics.push(".hch/issue_.env found (issue_add_V2-era bug shape, no issue_url recorded)");
71
- }
72
- }
73
- }
74
- const jsonFiles = entries
75
- .filter((name) => /^issue_add__.*\.json$/.test(name))
76
- .sort()
77
- .reverse();
78
- for (const name of jsonFiles) {
79
- let payload;
80
- try {
81
- payload = JSON.parse(await readFile(join(hchDir, name), "utf8"));
82
- }
83
- catch {
84
- diagnostics.push(`.hch/${name}: unreadable JSON, skipped`);
85
- continue;
86
- }
87
- const record = payload;
88
- const url = typeof record.url === "string"
89
- ? record.url
90
- : typeof record.html_url === "string"
91
- ? record.html_url
92
- : undefined;
93
- if (url) {
94
- const ref = issueRefFromUrl(url);
95
- if (ref) {
96
- diagnostics.push(`issue identity recovered from .hch/${name}`);
97
- return { issue: formatIssueRef(ref), issue_url: url, diagnostics };
98
- }
99
- }
100
- if (issueId === undefined && typeof record.number === "number")
101
- issueId = record.number;
102
- }
103
- if (issueId !== undefined && fallbackRepo) {
104
- const ref = parseIssueRef(`${fallbackRepo}#${issueId}`);
105
- if (ref) {
106
- diagnostics.push(`issue_url missing in legacy .hch; repo ${fallbackRepo} assumed from configuration`);
107
- return {
108
- issue: formatIssueRef(ref),
109
- issue_url: issueUrlFromRef(ref),
110
- diagnostics,
111
- };
112
- }
113
- }
114
- if (issueId !== undefined) {
115
- diagnostics.push(`legacy .hch knows issue #${issueId} but no repo could be determined`);
116
- return { diagnostics };
117
- }
118
- return undefined;
119
- }
120
- //# sourceMappingURL=legacy-hch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-hch.js","sourceRoot":"","sources":["../src/legacy-hch.ts"],"names":[],"mappings":"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"}