@inventarch/cli 0.0.0-stage → 1.0.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.
Files changed (110) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +4 -0
  3. package/README.md +19 -2
  4. package/SPEC.md +30 -0
  5. package/assets/base/71f0665cb1ffc3f3964fc7710528451f635d664bdf4b8c95005ee97c21db5928.ia.tgz +0 -0
  6. package/assets/base.json +6 -0
  7. package/assets/host/43a1f8c471141b1f2f46cef4411a9a61c00da1c1aa19d277189ae2423282bfd6.tgz +0 -0
  8. package/assets/host.json +6 -0
  9. package/assets/vocabulary.json +3268 -0
  10. package/dist/args.d.ts +62 -0
  11. package/dist/args.d.ts.map +1 -0
  12. package/dist/args.js +117 -0
  13. package/dist/args.js.map +1 -0
  14. package/dist/briefing.d.ts +76 -0
  15. package/dist/briefing.d.ts.map +1 -0
  16. package/dist/briefing.js +105 -0
  17. package/dist/briefing.js.map +1 -0
  18. package/dist/channel.d.ts +22 -0
  19. package/dist/channel.d.ts.map +1 -0
  20. package/dist/channel.js +74 -0
  21. package/dist/channel.js.map +1 -0
  22. package/dist/claude-cli.d.ts +35 -0
  23. package/dist/claude-cli.d.ts.map +1 -0
  24. package/dist/claude-cli.js +101 -0
  25. package/dist/claude-cli.js.map +1 -0
  26. package/dist/commands.d.ts +39 -0
  27. package/dist/commands.d.ts.map +1 -0
  28. package/dist/commands.js +436 -0
  29. package/dist/commands.js.map +1 -0
  30. package/dist/compile.d.ts +39 -0
  31. package/dist/compile.d.ts.map +1 -0
  32. package/dist/compile.js +136 -0
  33. package/dist/compile.js.map +1 -0
  34. package/dist/consumer.d.ts +137 -0
  35. package/dist/consumer.d.ts.map +1 -0
  36. package/dist/consumer.js +366 -0
  37. package/dist/consumer.js.map +1 -0
  38. package/dist/decline.d.ts +7 -0
  39. package/dist/decline.d.ts.map +1 -0
  40. package/dist/decline.js +78 -0
  41. package/dist/decline.js.map +1 -0
  42. package/dist/distribute.d.ts +163 -0
  43. package/dist/distribute.d.ts.map +1 -0
  44. package/dist/distribute.js +664 -0
  45. package/dist/distribute.js.map +1 -0
  46. package/dist/doctor-user.d.ts +45 -0
  47. package/dist/doctor-user.d.ts.map +1 -0
  48. package/dist/doctor-user.js +193 -0
  49. package/dist/doctor-user.js.map +1 -0
  50. package/dist/doctor.d.ts +57 -0
  51. package/dist/doctor.d.ts.map +1 -0
  52. package/dist/doctor.js +754 -0
  53. package/dist/doctor.js.map +1 -0
  54. package/dist/format.d.ts +25 -0
  55. package/dist/format.d.ts.map +1 -0
  56. package/dist/format.js +168 -0
  57. package/dist/format.js.map +1 -0
  58. package/dist/home-remedy.d.ts +10 -0
  59. package/dist/home-remedy.d.ts.map +1 -0
  60. package/dist/home-remedy.js +26 -0
  61. package/dist/home-remedy.js.map +1 -0
  62. package/dist/host-projection.d.ts +11 -0
  63. package/dist/host-projection.d.ts.map +1 -0
  64. package/dist/host-projection.js +73 -0
  65. package/dist/host-projection.js.map +1 -0
  66. package/dist/host.d.ts +162 -0
  67. package/dist/host.d.ts.map +1 -0
  68. package/dist/host.js +599 -0
  69. package/dist/host.js.map +1 -0
  70. package/dist/init.d.ts +217 -0
  71. package/dist/init.d.ts.map +1 -0
  72. package/dist/init.js +840 -0
  73. package/dist/init.js.map +1 -0
  74. package/dist/inspect.d.ts +32 -0
  75. package/dist/inspect.d.ts.map +1 -0
  76. package/dist/inspect.js +226 -0
  77. package/dist/inspect.js.map +1 -0
  78. package/dist/main.d.ts +24 -0
  79. package/dist/main.d.ts.map +1 -0
  80. package/dist/main.js +215 -0
  81. package/dist/main.js.map +1 -0
  82. package/dist/operation-help.d.ts +14 -0
  83. package/dist/operation-help.d.ts.map +1 -0
  84. package/dist/operation-help.js +75 -0
  85. package/dist/operation-help.js.map +1 -0
  86. package/dist/pack.d.ts +17 -0
  87. package/dist/pack.d.ts.map +1 -0
  88. package/dist/pack.js +121 -0
  89. package/dist/pack.js.map +1 -0
  90. package/dist/render.d.ts +165 -0
  91. package/dist/render.d.ts.map +1 -0
  92. package/dist/render.js +277 -0
  93. package/dist/render.js.map +1 -0
  94. package/dist/session.d.ts +13 -0
  95. package/dist/session.d.ts.map +1 -0
  96. package/dist/session.js +25 -0
  97. package/dist/session.js.map +1 -0
  98. package/dist/user-host.d.ts +59 -0
  99. package/dist/user-host.d.ts.map +1 -0
  100. package/dist/user-host.js +228 -0
  101. package/dist/user-host.js.map +1 -0
  102. package/dist/validate.d.ts +53 -0
  103. package/dist/validate.d.ts.map +1 -0
  104. package/dist/validate.js +220 -0
  105. package/dist/validate.js.map +1 -0
  106. package/dist/vocabulary.d.ts +55 -0
  107. package/dist/vocabulary.d.ts.map +1 -0
  108. package/dist/vocabulary.js +179 -0
  109. package/dist/vocabulary.js.map +1 -0
  110. package/package.json +153 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Context, Result } from './consumer.js';
2
+ import type { Capabilities } from './render.js';
3
+ export type FormatStatus = 'unchanged' | 'differs' | 'rewritten' | 'refused' | 'unsupported';
4
+ export interface FormatFile {
5
+ readonly path: string;
6
+ readonly status: FormatStatus;
7
+ /** The formatter's own diagnostics: its findings on a draft, its refusal diagnostics on a refused document. */
8
+ readonly findings: readonly unknown[];
9
+ }
10
+ export interface FormatView {
11
+ readonly root: string;
12
+ readonly mode: 'check' | 'write';
13
+ readonly baseRevision: string;
14
+ readonly files: readonly FormatFile[];
15
+ readonly changed: number;
16
+ }
17
+ /** §2.3: the default selection is `.ia/src`; a positional is a file or a directory relative to the root. */
18
+ export declare function selectSources(root: string, filters: readonly string[]): readonly string[];
19
+ export declare function collectFormat(root: string, filters: readonly string[], write: boolean): FormatView;
20
+ /** §2.3: 1 when a file differs under --check or the formatter refused a document; --write rewrote them, so 0. */
21
+ export declare const formatExit: (view: FormatView) => 0 | 1;
22
+ export declare function formatEnvelope(view: FormatView): unknown;
23
+ export declare function renderFormat(view: FormatView, caps: Capabilities): string;
24
+ export declare function runFormat(context: Context): Result;
25
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAC7F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+GAA+G;IAC/G,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AACD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAgCD,4GAA4G;AAC5G,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAMzF;AAQD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CA4ClG;AAGD,iHAAiH;AACjH,eAAO,MAAM,UAAU,GAAI,MAAM,UAAU,KAAG,CAAC,GAAG,CAC+B,CAAC;AAElF,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CASxD;AAcD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAoEzE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAOlD"}
package/dist/format.js ADDED
@@ -0,0 +1,168 @@
1
+ /**
2
+ * `ia format`: docs/specs/consumer-cli-contract/README.md §2.3.
3
+ *
4
+ * `--check` is the default and writes nothing; `--write` is the new in-place mode `decisions.md:65` requires be
5
+ * specified rather than inherited, and it is never implied. Every rewrite goes through the replace-by-rename
6
+ * primitive, so a file is whole or untouched; there is no cross-file atomicity and none is claimed. The two
7
+ * phases below are what keeps a refusal from leaving a mixture: nothing is written until every selected file has
8
+ * a verified draft, and the formatter's own staleness recheck runs inside each of those drafts.
9
+ */
10
+ import { readdirSync } from 'node:fs';
11
+ import { isAbsolute, resolve } from 'node:path';
12
+ import { formatSource, readWorkspaceFile, replace } from '@inventarch/distribution/services';
13
+ import { Refusal, requireRoot } from './consumer.js';
14
+ import { codeOf, openSession } from './session.js';
15
+ import { atom, document, entry, headerLine, sectionLabel, truncateDigest, words } from './render.js';
16
+ /** §2.3 names IA-DIST-PATH-UNSAFE for a path resolving outside --root; a directory never reaches a service. */
17
+ const contain = (supplied) => {
18
+ const path = supplied.replaceAll('\\', '/').replace(/^\.\//, '').replace(/\/+$/, '');
19
+ if (path === '' || isAbsolute(supplied) || path.split('/').includes('..'))
20
+ throw new Refusal('IA-DIST-PATH-UNSAFE', `Unsafe relative path: ${supplied}`, 3, { path: supplied }, 'Name a path inside the workspace root, relative to it.');
21
+ return path;
22
+ };
23
+ /** Directories are walked for `*.ia` files only; a link is never followed, matching the reader's own rule. */
24
+ function walk(root, path) {
25
+ try {
26
+ return readdirSync(resolve(root, path), { withFileTypes: true })
27
+ .filter((dirent) => !dirent.isSymbolicLink())
28
+ .flatMap((dirent) => dirent.isDirectory()
29
+ ? walk(root, `${path}/${dirent.name}`)
30
+ : dirent.name.endsWith('.ia')
31
+ ? [`${path}/${dirent.name}`]
32
+ : [])
33
+ .sort();
34
+ }
35
+ catch {
36
+ return [];
37
+ }
38
+ }
39
+ /** §2.3: the default selection is `.ia/src`; a positional is a file or a directory relative to the root. */
40
+ export function selectSources(root, filters) {
41
+ const selected = (filters.length === 0 ? ['.ia/src'] : filters).flatMap((supplied) => {
42
+ const path = contain(supplied);
43
+ return path.endsWith('.ia') ? [path] : walk(root, path);
44
+ });
45
+ return [...new Set(selected)].sort();
46
+ }
47
+ const text = (root, path) => readWorkspaceFile({ root, path }).toString('utf8');
48
+ export function collectFormat(root, filters, write) {
49
+ const paths = selectSources(root, filters);
50
+ let session;
51
+ try {
52
+ session = openSession(root);
53
+ const files = [], drafts = [];
54
+ const baseRevision = session.reader.revision;
55
+ for (const path of paths) {
56
+ const current = text(root, path);
57
+ // The formatter's domain is narrower than `*.ia`: it declines a system declaration, a schema and anything
58
+ // outside an admitted authored system, all with IA-DIST-PATH-UNSAFE. Traversal was already refused by
59
+ // contain() and the read above, so that code here means "outside the formatter's domain" and is reported
60
+ // per file rather than ending the run — a whole-tree check must not stop at the packaged floor.
61
+ let outcome;
62
+ try {
63
+ outcome = formatSource({ session, path, text: current, reread: () => text(root, path) });
64
+ }
65
+ catch (error) {
66
+ if (codeOf(error, '') !== 'IA-DIST-PATH-UNSAFE')
67
+ throw error;
68
+ files.push({
69
+ path,
70
+ status: 'unsupported',
71
+ findings: [{ code: 'IA-DIST-PATH-UNSAFE', message: error instanceof Error ? error.message : String(error) }],
72
+ });
73
+ continue;
74
+ }
75
+ if (outcome.status === 'refused') {
76
+ files.push({ path, status: 'refused', findings: outcome.diagnostics });
77
+ continue;
78
+ }
79
+ if (outcome.text === current) {
80
+ files.push({ path, status: 'unchanged', findings: outcome.findings });
81
+ continue;
82
+ }
83
+ files.push({ path, status: write ? 'rewritten' : 'differs', findings: outcome.findings });
84
+ drafts.push({ path, text: outcome.text });
85
+ }
86
+ // Phase two. Every draft was produced and rechecked before the first byte is written, so a refusal in the
87
+ // middle of the selection cannot leave half the files rewritten and half stale.
88
+ if (write)
89
+ for (const draft of drafts)
90
+ replace(root, draft.path, Buffer.from(draft.text, 'utf8'));
91
+ return { root, mode: write ? 'write' : 'check', baseRevision, files, changed: drafts.length };
92
+ }
93
+ finally {
94
+ session?.close();
95
+ }
96
+ }
97
+ const refused = (view) => view.files.filter((file) => file.status === 'refused');
98
+ /** §2.3: 1 when a file differs under --check or the formatter refused a document; --write rewrote them, so 0. */
99
+ export const formatExit = (view) => refused(view).length > 0 || (view.mode === 'check' && view.changed > 0) ? 1 : 0;
100
+ export function formatEnvelope(view) {
101
+ return {
102
+ version: 1,
103
+ root: view.root,
104
+ mode: view.mode,
105
+ baseRevision: view.baseRevision,
106
+ files: view.files.map((file) => ({ path: file.path, status: file.status, findings: file.findings })),
107
+ changed: view.changed,
108
+ };
109
+ }
110
+ const diagnostic = (value) => {
111
+ if (value === null || typeof value !== 'object')
112
+ return String(value);
113
+ const row = value;
114
+ const where = typeof row.path === 'string' && row.path !== ''
115
+ ? `${row.path}${typeof row.line === 'number' ? `:${row.line}` : ''} `
116
+ : '';
117
+ return typeof row.message === 'string'
118
+ ? `${where}${typeof row.code === 'string' ? `${row.code} ` : ''}${row.message}`
119
+ : JSON.stringify(value);
120
+ };
121
+ export function renderFormat(view, caps) {
122
+ const blocks = [headerLine('Format', view.mode, [{ text: view.root, column: 50 }], caps)];
123
+ const outside = view.files.filter((file) => file.status === 'unsupported').length, total = view.files.length - outside, bad = refused(view);
124
+ const summary = total === 0
125
+ ? 'No formattable .ia files were selected.'
126
+ : view.mode === 'write'
127
+ ? `Rewrote ${view.changed} of ${total} ${total === 1 ? 'file' : 'files'}.`
128
+ : view.changed === 0
129
+ ? `${total} ${total === 1 ? 'file matches' : 'files match'} the formatter.`
130
+ : `${view.changed} of ${total} files differ from the formatter.`;
131
+ const skipped = outside === 0
132
+ ? ''
133
+ : ` ${outside} ${outside === 1 ? 'file is' : 'files are'} outside the formatter's domain: system declarations, schemas and the packaged floor.`;
134
+ blocks.push(entry([words(`${summary} Revision ${truncateDigest(view.baseRevision, caps.ascii)}.${skipped}`)], {
135
+ depth: 1,
136
+ symbol: bad.length > 0 ? 'error' : view.mode === 'check' && view.changed > 0 ? 'warning' : 'success',
137
+ }, caps));
138
+ const listed = view.files.filter((file) => file.status === 'differs' || file.status === 'rewritten');
139
+ if (listed.length > 0)
140
+ blocks.push([
141
+ sectionLabel(view.mode === 'write' ? 'Rewritten' : 'Differs', caps),
142
+ ...listed.flatMap((file) => entry([[atom(file.path, 'cyan', 0)]], { depth: 1, symbol: view.mode === 'write' ? 'success' : 'warning' }, caps)),
143
+ ]);
144
+ if (bad.length > 0)
145
+ blocks.push([
146
+ sectionLabel('Refused', caps),
147
+ ...bad.flatMap((file) => entry([[atom(file.path, 'cyan', 0)], ...file.findings.map((value) => words(diagnostic(value)))], { depth: 1, symbol: 'error' }, caps)),
148
+ ]);
149
+ blocks.push(entry([
150
+ words(bad.length > 0
151
+ ? 'Correct the refused documents above, then run "ia format" again.'
152
+ : view.mode === 'write'
153
+ ? 'Review the rewritten files before committing them.'
154
+ : view.changed > 0
155
+ ? 'Run "ia format --write" to rewrite the differing files in place.'
156
+ : 'Every selected file is already formatted at this revision.'),
157
+ ], { depth: 0, symbol: 'step' }, caps));
158
+ return document(blocks, { leadingBlank: true });
159
+ }
160
+ export function runFormat(context) {
161
+ const { args, caps, json } = context;
162
+ const view = collectFormat(requireRoot(context), args.positionals, args.flag('write'));
163
+ const exitCode = formatExit(view);
164
+ return json
165
+ ? { exitCode, stdout: JSON.stringify(formatEnvelope(view)) + '\n', stderr: '' }
166
+ : { exitCode, stdout: renderFormat(view, caps), stderr: '' };
167
+ }
168
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** A service refusal kept verbatim (§4.1) and given the location and next action the CLI can supply. */
2
+ export declare function located<T>(where: string | null, next: string, run: () => T): T;
3
+ /** §3. A relative IA_HOME is the service's refusal; the remedy is the CLI's. */
4
+ export declare const hostHome: (env: Readonly<Record<string, string | undefined>>) => string;
5
+ /**
6
+ * §3: the remedy for an IA home that itself looks like a workspace. Callers run `assertIaHomeUsable` explicitly (not
7
+ * by pattern-matching a refusal's message), so this wording is never guessed at, and every verb words it the same.
8
+ */
9
+ export declare const homeSrcRemedy: (home: string) => string;
10
+ //# sourceMappingURL=home-remedy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-remedy.d.ts","sourceRoot":"","sources":["../src/home-remedy.ts"],"names":[],"mappings":"AASA,wGAAwG;AACxG,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAa9E;AACD,gFAAgF;AAChF,eAAO,MAAM,QAAQ,GAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KAAG,MAK1E,CAAC;AACJ;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MACkD,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The IA home as `ia host`, `ia host --user` and `ia init --decline` resolve and check it: host plugin distribution
3
+ * spec §3. A service refusal keeps its code and message (contract §4.1); the CLI adds the location and next action.
4
+ */
5
+ import { homedir } from 'node:os';
6
+ import { join } from 'node:path';
7
+ import { resolveIaHome } from '@inventarch/distribution/ia-home';
8
+ import { Refusal, refusalOf } from './consumer.js';
9
+ /** A service refusal kept verbatim (§4.1) and given the location and next action the CLI can supply. */
10
+ export function located(where, next, run) {
11
+ try {
12
+ return run();
13
+ }
14
+ catch (error) {
15
+ const refusal = refusalOf(error);
16
+ throw new Refusal(refusal.code, refusal.message, refusal.exit, where === null ? refusal.where : { path: where }, next);
17
+ }
18
+ }
19
+ /** §3. A relative IA_HOME is the service's refusal; the remedy is the CLI's. */
20
+ export const hostHome = (env) => located(null, 'Set IA_HOME to an absolute directory, or unset it to use ~/.ia.', () => resolveIaHome(env, homedir()).home);
21
+ /**
22
+ * §3: the remedy for an IA home that itself looks like a workspace. Callers run `assertIaHomeUsable` explicitly (not
23
+ * by pattern-matching a refusal's message), so this wording is never guessed at, and every verb words it the same.
24
+ */
25
+ export const homeSrcRemedy = (home) => `Move ${join(home, 'src')} out of the IA home, or set IA_HOME to another absolute directory.`;
26
+ //# sourceMappingURL=home-remedy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-remedy.js","sourceRoot":"","sources":["../src/home-remedy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEnD,wGAAwG;AACxG,MAAM,UAAU,OAAO,CAAI,KAAoB,EAAE,IAAY,EAAE,GAAY;IACzE,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,OAAO,CACf,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAI,EACZ,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAChD,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AACD,gFAAgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAiD,EAAU,EAAE,CACpF,OAAO,CACL,IAAI,EACJ,iEAAiE,EACjE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CACzC,CAAC;AACJ;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,oEAAoE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { WorkspaceHost } from '@inventarch/distribution/hosts';
2
+ export type HostName = WorkspaceHost;
3
+ export interface Artifact {
4
+ readonly path: string;
5
+ readonly text: string;
6
+ }
7
+ /** §4's admission gate alone, for a removal, which renders nothing. */
8
+ export declare function checkAdmitted(root: string): void;
9
+ /** §6.1. Artifacts carry the `ia host` marker line; `@inventarch/distribution/projection` refuses any that does not. */
10
+ export declare function renderProjectionFor(root: string, host: HostName): readonly Artifact[];
11
+ //# sourceMappingURL=host-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-projection.d.ts","sourceRoot":"","sources":["../src/host-projection.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAMpE,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC;AACrC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAgBD,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOhD;AAmBD,wHAAwH;AACxH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,QAAQ,EAAE,CA2BrF"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Host registration spec §6: a workspace's projection for one host, rendered from its own admitted records.
3
+ *
4
+ * docs/specs/host-registration/README.md §6.1 makes the renderer a pure function in `@inventarch/compliance`;
5
+ * this module is the composition root that feeds it — the admitted records, their revision-bound membership, the
6
+ * launcher modes from `@inventarch/distribution/host-modes`, the installed lock's packages and the nine legacy operations.
7
+ * One function feeds `ia host` and, in later tasks, `ia doctor`'s drift rows and the install/update/remove refresh,
8
+ * so no two of them can disagree about what the projection should contain.
9
+ */
10
+ import { systemMember } from '@inventarch/db';
11
+ import { renderWorkspaceProjection } from '@inventarch/compliance';
12
+ import { HOST_MODES, launcherInvocation } from '@inventarch/distribution/host-modes';
13
+ import { readInstalledState } from '@inventarch/distribution/services';
14
+ import { LEGACY_OPERATIONS } from './commands.js';
15
+ import { Refusal } from './consumer.js';
16
+ import { openSession } from './session.js';
17
+ /**
18
+ * §4: the target must admit — zero error findings — before anything is rendered or registered. The refusal is the
19
+ * CLI's own classification of the target, so it is IA-CLI-CONFLICT and names the command that shows the findings.
20
+ */
21
+ function requireAdmitted(session, root) {
22
+ if (session.admission().status !== 'admitted')
23
+ throw new Refusal('IA-CLI-CONFLICT', 'The workspace does not admit; host registration needs a workspace with zero error findings', 3, { path: root }, 'Run "ia validate" and fix the reported errors.');
24
+ }
25
+ /** §4's admission gate alone, for a removal, which renders nothing. */
26
+ export function checkAdmitted(root) {
27
+ const session = openSession(root);
28
+ try {
29
+ requireAdmitted(session, root);
30
+ }
31
+ finally {
32
+ session.close();
33
+ }
34
+ }
35
+ /**
36
+ * The same membership `tools/projections/generate.ts` builds for this repository: every admitted source path, with
37
+ * the system folder `@inventarch/db` recognizes it under, authored or installed. The renderer refuses a membership that does
38
+ * not cover every record, so nothing here filters.
39
+ */
40
+ function membershipOf(session) {
41
+ const records = session.reader.records(), revision = session.reader.revision;
42
+ return {
43
+ revision,
44
+ members: [...new Set(records.map((record) => record.source.path))].sort().map((path) => {
45
+ const member = systemMember(path);
46
+ return { path, system: member?.name ?? null, root: member?.root ?? null };
47
+ }),
48
+ };
49
+ }
50
+ /** §6.1. Artifacts carry the `ia host` marker line; `@inventarch/distribution/projection` refuses any that does not. */
51
+ export function renderProjectionFor(root, host) {
52
+ const session = openSession(root);
53
+ try {
54
+ requireAdmitted(session, root);
55
+ const records = session.reader.records(), revision = session.reader.revision;
56
+ const lock = readInstalledState({ root }).lock;
57
+ const rendered = renderWorkspaceProjection(records, revision, membershipOf(session), {
58
+ host,
59
+ modes: HOST_MODES.map((row) => ({ invocation: launcherInvocation(row), meaning: row.meaning })),
60
+ distributions: (lock?.packages ?? []).map((pkg) => ({ id: pkg.id, version: pkg.version })),
61
+ operations: [...LEGACY_OPERATIONS],
62
+ });
63
+ // Contract §4.1 lists IA-COMP-* as finding codes. This is a CLI refusal carrying the renderer's finding code
64
+ // unchanged, because the renderer's assessment is the only thing that knows why the projection cannot exist.
65
+ if (rendered.assessment.outcome !== 'pass')
66
+ throw new Refusal('IA-COMP-PROJECTION-INVALID', rendered.assessment.findings.map((finding) => finding.message).join('; '), 3, { path: root }, 'Run "ia validate" and "ia inspect" to check each system\'s steward declaration.');
67
+ return rendered.artifacts;
68
+ }
69
+ finally {
70
+ session.close();
71
+ }
72
+ }
73
+ //# sourceMappingURL=host-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-projection.js","sourceRoot":"","sources":["../src/host-projection.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts ADDED
@@ -0,0 +1,162 @@
1
+ import type { ProjectionAction } from '@inventarch/distribution/projection';
2
+ import type { Context, Result } from './consumer.js';
3
+ import { Refusal } from './consumer.js';
4
+ import type { HostName } from './host-projection.js';
5
+ import type { Capabilities } from './render.js';
6
+ export type ElementId = 'mcp' | 'hooks' | 'context' | 'projection';
7
+ /**
8
+ * §5.4's four capabilities, plus `absent` for a removal row whose element this workspace does not own: claiming
9
+ * `registered` for something that is not there would be a false report.
10
+ */
11
+ export type Capability = 'registered' | 'not selected' | 'unsupported by host' | 'refused' | 'absent';
12
+ export interface Conflict {
13
+ readonly code: string;
14
+ readonly path: string;
15
+ readonly reason: string;
16
+ }
17
+ export interface Element {
18
+ readonly id: ElementId;
19
+ /**
20
+ * §4's plan actions. `none` is an element with nothing to do: the unselected context element, Codex hooks, or a
21
+ * removal of an element this workspace does not own.
22
+ */
23
+ readonly action: 'create' | 'update' | 'unchanged' | 'remove' | 'refused' | 'none';
24
+ readonly paths: readonly string[];
25
+ readonly capability: Capability;
26
+ readonly conflict: Conflict | null;
27
+ /**
28
+ * The projection's per-file actions. `unowned` is a marked steward file this workspace's projection state does
29
+ * not list (§6.3 "stale files"): it is reported and never touched, so it is not a conflict.
30
+ */
31
+ readonly files?: readonly ProjectionAction[];
32
+ }
33
+ export interface HostView {
34
+ readonly root: string;
35
+ readonly host: HostName;
36
+ readonly remove: boolean;
37
+ readonly release: string;
38
+ readonly home: string;
39
+ readonly elements: readonly Element[];
40
+ readonly undo: string;
41
+ /** The exact command that applies this plan, rebuilt from the parsed arguments. */
42
+ readonly invocation: string;
43
+ /** Elements whose ownership state existed when planned; it decides which remedy a modified entry names. */
44
+ readonly owned: ReadonlySet<ElementId>;
45
+ /** Whether `--root` was given: every `ia host` command a next action names then carries it (`rootedNext`). */
46
+ readonly rooted: boolean;
47
+ /**
48
+ * Host plugin distribution spec §7.1: for a host whose adapter row installs a user-level plugin (Claude), whether it
49
+ * is materialized in the IA home, and the command that adds it. This verb only names that command; it never runs it.
50
+ */
51
+ readonly userPlugin: UserPlugin | null;
52
+ }
53
+ export interface UserPlugin {
54
+ readonly installed: boolean;
55
+ readonly command: string;
56
+ }
57
+ /** §7.1: the user-level command a workspace plan names when the plugin is missing. It takes no --root. */
58
+ export declare const USER_PLUGIN_COMMAND = "ia host claude --user --apply";
59
+ export declare const USER_PLUGIN_MISSING = "The user-level plugin is not installed; run \"ia host claude --user --apply\" to add it.";
60
+ /** §5.3's sentence, verbatim, per host. Every element — the projection included — is machine-local. */
61
+ export declare const MACHINE_LOCAL: Readonly<Record<HostName, string>>;
62
+ /** §5.4: the MCP element's one fixed addition, from §2.3's host facts. */
63
+ export declare const MCP_APPROVAL = "Claude Code asks for approval before starting a project MCP server.";
64
+ /** Operator decision 2026-09-23 ("narrow + disclose"): what the registered steward guard refuses, said where it is registered. */
65
+ export declare const GUARD_SCOPE = "The steward guard denies file-tool edits to the files ia host owns and to records under .ia/src/systems/<name>/ unless the edit comes from that system's steward subagent (<name>-steward).";
66
+ /** §5.1's files, exported once so `ia doctor` names the same ones. */
67
+ export declare const MCP_PATH: Readonly<Record<HostName, string>>;
68
+ export declare const SETTINGS = ".claude/settings.local.json";
69
+ export declare const HOSTS_AREA = ".ia/distributions/hosts";
70
+ /** §5.1's state files. Their presence says whether this workspace owns an element; their content is the mechanisms'. */
71
+ export declare const STATE: {
72
+ readonly mcp: (host: HostName) => string;
73
+ readonly hooks: ".ia/distributions/hosts/claude-guard-workspace.json";
74
+ readonly projection: (host: HostName) => string;
75
+ };
76
+ /**
77
+ * The repair for an ownership state file that cannot be read, or null when `path` is not one. The mechanisms refuse
78
+ * every plan until the file goes, and deleting it alone would leave what it owned looking unmanaged, so the repair
79
+ * deletes both. `ia host` and `ia doctor` both print it, so the two cannot word it differently.
80
+ */
81
+ export declare function stateRepair(host: HostName, path: string, rerun: string): string | null;
82
+ /**
83
+ * The repair for an owned entry changed by hand. Apply refuses it and removal refuses it too, so it goes first; then
84
+ * removal clears the ownership state and registration starts over. Each step was exercised against the verb.
85
+ */
86
+ export declare function modifiedRepair(host: HostName, elements: readonly ('mcp' | 'hooks')[]): string;
87
+ /** §8: each pending journal names its own recovery on the distribution binary. `ia doctor` reports the same ones. */
88
+ export declare const JOURNALS: readonly (readonly [string, string])[];
89
+ /** §8: the lock every host sub-transaction holds while it writes (`acquireHostRegistrationLock`). */
90
+ export declare const HOST_LOCK = ".ia/distributions/hosts/lock.json";
91
+ /** A recovery on the distribution binary, rooted and quoted as every printed root is. */
92
+ export declare const recoverCommand: (command: string, root: string) => string;
93
+ /**
94
+ * §8 "or refuses naming a recovery": a held host lock is another run or a killed one, and nothing here can tell
95
+ * which, so the next action names the recovery that decides it — `recoverHost` takes the lock in recovery mode,
96
+ * which clears a dead holder's lock and refuses a live one. It names no `ia host` command, so `--root` needs no rewrite.
97
+ */
98
+ export declare const lockNext: (root: string) => string;
99
+ /**
100
+ * The refusal for a held host lock, located at the lock and naming its recovery, or null for any other error. Every
101
+ * mechanism an `ia host` apply or an install's projection refresh runs raises IA-DIST-INSTALL-BUSY only from that
102
+ * lock, so there the code alone identifies it.
103
+ */
104
+ export declare function lockRefusal(error: unknown, root: string): Refusal | null;
105
+ /** The running installation's payload release, or null with the code that kept it from being read. */
106
+ export type Pinned = {
107
+ readonly release: string;
108
+ } | {
109
+ readonly release: null;
110
+ readonly code: string;
111
+ };
112
+ /**
113
+ * §7: the release `ia doctor` and `ia inspect` observe hosts against. An installation that carries no payload is not
114
+ * an error there: the release comparison is skipped, and doctor says why with the code.
115
+ */
116
+ export declare function pinnedRelease(packageRoot: string): Pinned;
117
+ /**
118
+ * A next action of this verb made runnable from any cwd: every quoted `ia host <host>` command it names gains
119
+ * `--root <root>`. `ia init --host` uses it, because its `<directory>` may not be the cwd a rerun discovers from.
120
+ * Every command this file prints opens with `"ia host <host>` and none names `--root` itself, so the rewrite reaches
121
+ * each command and nothing else.
122
+ */
123
+ export declare const rootedNext: (next: string, host: HostName, root: string) => string;
124
+ /** A next action as printed: with `--root` given, each `ia host <host>` command in it carries the root. */
125
+ export declare const hostNext: (text: string, host: HostName, root: string, rooted: boolean) => string;
126
+ /** The file a mechanism located its refusal at (`locate` in @inventarch/distribution's files.ts), or null. */
127
+ export declare const refusedPath: (error: unknown) => string | null;
128
+ /**
129
+ * §6.3: the repair for a projection refusal located at `path`. The ownership state has its own repair; any other file
130
+ * is never replaced or adopted, so it is moved or deleted first. `ia host`, `ia doctor` and the install refresh all
131
+ * name it this way.
132
+ */
133
+ export declare const projectionRepair: (host: HostName, path: string, rerun: string) => string;
134
+ /** §4's plan. It reads the workspace and the package's pin and writes nothing, the payload included. */
135
+ export declare function collectHost(context: Context): HostView;
136
+ export interface HostApplied {
137
+ readonly status: 'host-registered' | 'host-removed';
138
+ readonly elements: readonly {
139
+ readonly id: ElementId;
140
+ readonly status: string;
141
+ }[];
142
+ readonly observed: false;
143
+ }
144
+ /**
145
+ * §8: mcp, hooks, projection in order; removal in reverse. The payload is materialized, then every sub-transaction is
146
+ * re-planned with the verifying planners before any is applied, so a refusal any planner can find is raised before
147
+ * the workspace changes; each apply then re-plans under the host lock and refuses a plan that went stale.
148
+ * Cancellation is observed between sub-transactions. A failure after an element was written names the rerun that
149
+ * finishes the set, or the recovery a pending journal needs. `checkpoint` runs after each element completes, which
150
+ * is where an interruption test cuts.
151
+ */
152
+ export declare function applyHostSet(view: HostView, packageRoot: string, signal?: AbortSignal, checkpoint?: (id: ElementId) => void): HostApplied;
153
+ /**
154
+ * §5.3's machine-local sentence and, for a Claude registration, §5.4's approval note and the guard's scope (the
155
+ * hooks element is registered only for Claude). `ia init --host` prints the same blocks after its host step, so the
156
+ * two verbs cannot word them differently.
157
+ */
158
+ export declare const hostNotes: (host: HostName, caps: Capabilities, remove?: boolean) => readonly (readonly string[])[];
159
+ export declare function renderHostPlan(view: HostView, applied: HostApplied | null, caps: Capabilities): string;
160
+ export declare const CONFIRMATION = "Apply this host registration? [y/N] ";
161
+ export declare function runHost(context: Context): Promise<Result>;
162
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}