@mmnto/cli 1.51.0 → 1.53.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/dist/adapters/github-cli-pr.d.ts.map +1 -1
- package/dist/adapters/github-cli-pr.js +3 -1
- package/dist/adapters/github-cli-pr.js.map +1 -1
- package/dist/adapters/github-cli-pr.test.js +4 -4
- package/dist/adapters/github-cli-pr.test.js.map +1 -1
- package/dist/adapters/github-cli-project.d.ts +21 -0
- package/dist/adapters/github-cli-project.d.ts.map +1 -0
- package/dist/adapters/github-cli-project.js +69 -0
- package/dist/adapters/github-cli-project.js.map +1 -0
- package/dist/adapters/github-cli.d.ts +7 -1
- package/dist/adapters/github-cli.d.ts.map +1 -1
- package/dist/adapters/github-cli.js +30 -0
- package/dist/adapters/github-cli.js.map +1 -1
- package/dist/adapters/github-cli.test.js +26 -0
- package/dist/adapters/github-cli.test.js.map +1 -1
- package/dist/adapters/issue-adapter.d.ts +18 -0
- package/dist/adapters/issue-adapter.d.ts.map +1 -1
- package/dist/adapters/pr-adapter.d.ts +2 -0
- package/dist/adapters/pr-adapter.d.ts.map +1 -1
- package/dist/commands/eject.d.ts.map +1 -1
- package/dist/commands/eject.js +12 -4
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/gate-install.d.ts +59 -0
- package/dist/commands/gate-install.d.ts.map +1 -0
- package/dist/commands/gate-install.js +111 -0
- package/dist/commands/gate-install.js.map +1 -0
- package/dist/commands/gate-install.test.d.ts +2 -0
- package/dist/commands/gate-install.test.d.ts.map +1 -0
- package/dist/commands/gate-install.test.js +472 -0
- package/dist/commands/gate-install.test.js.map +1 -0
- package/dist/commands/gate.d.ts +31 -0
- package/dist/commands/gate.d.ts.map +1 -1
- package/dist/commands/gate.js +70 -0
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/host-hooks.d.ts +745 -0
- package/dist/commands/host-hooks.d.ts.map +1 -0
- package/dist/commands/host-hooks.js +229 -0
- package/dist/commands/host-hooks.js.map +1 -0
- package/dist/commands/init-templates.d.ts +8 -0
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +240 -0
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.d.ts +6 -4
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +81 -94
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/orient-coherence.d.ts +33 -0
- package/dist/commands/orient-coherence.d.ts.map +1 -0
- package/dist/commands/orient-coherence.js +64 -0
- package/dist/commands/orient-coherence.js.map +1 -0
- package/dist/commands/orient-coherence.test.d.ts +2 -0
- package/dist/commands/orient-coherence.test.d.ts.map +1 -0
- package/dist/commands/orient-coherence.test.js +99 -0
- package/dist/commands/orient-coherence.test.js.map +1 -0
- package/dist/commands/orient.d.ts +67 -0
- package/dist/commands/orient.d.ts.map +1 -0
- package/dist/commands/orient.js +412 -0
- package/dist/commands/orient.js.map +1 -0
- package/dist/commands/orient.test.d.ts +2 -0
- package/dist/commands/orient.test.d.ts.map +1 -0
- package/dist/commands/orient.test.js +329 -0
- package/dist/commands/orient.test.js.map +1 -0
- package/dist/help.js +1 -1
- package/dist/help.js.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/commands/gate.d.ts
CHANGED
|
@@ -2,6 +2,37 @@ export interface GateCheckCommandOptions {
|
|
|
2
2
|
event: string;
|
|
3
3
|
payload: string;
|
|
4
4
|
}
|
|
5
|
+
export interface GateInstallCommandOptions {
|
|
6
|
+
/** Install every known gate (`knownGateEvents()`). */
|
|
7
|
+
all?: boolean;
|
|
8
|
+
/** Install a single named gate (validated against `knownGateEvents()`). */
|
|
9
|
+
name?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Install under the advisory pilot tier (deny → exit 0 + stderr). Default
|
|
12
|
+
* (omitted) bakes `--strict` (deny → exit 2), so a default install is
|
|
13
|
+
* enforcement-immune. `--strict` may be passed for explicitness.
|
|
14
|
+
*/
|
|
15
|
+
pilot?: boolean;
|
|
16
|
+
/** Explicit strict tier (the default; accepted for symmetry with `--pilot`). */
|
|
17
|
+
strict?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve + validate the gate events to install from the CLI options. The
|
|
21
|
+
* `knownGateEvents()` registry is the single source of truth: `--all`
|
|
22
|
+
* enumerates it, and a named gate must be a member or we throw (mirror the
|
|
23
|
+
* engine's no-default-allow — never silently install nothing).
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveGateEvents(opts: GateInstallCommandOptions): Promise<string[]>;
|
|
26
|
+
/**
|
|
27
|
+
* `totem gate install [--all | --<name>]`
|
|
28
|
+
*
|
|
29
|
+
* Idempotently merges one PreToolUse entry per selected gate into committed
|
|
30
|
+
* `.claude/settings.json` and scaffolds the shared parameterized wrapper to
|
|
31
|
+
* `.claude/hooks/gate-wrapper.cjs`. Thin caller of the shared `installGates`
|
|
32
|
+
* merger (the same path `init --gates=` routes through) — no second copy of
|
|
33
|
+
* the merge logic. Fails loud on an unknown `--<name>` (no default-install).
|
|
34
|
+
*/
|
|
35
|
+
export declare function gateInstallCommand(opts: GateInstallCommandOptions): Promise<void>;
|
|
5
36
|
/**
|
|
6
37
|
* `totem gate check --event <type> --payload <json>`
|
|
7
38
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,sDAAsD;IACtD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0B1F;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBnF"}
|
package/dist/commands/gate.js
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import { isGlobalConfigPath, loadConfig, resolveConfigPath } from '../utils.js';
|
|
3
|
+
import { installGates } from './gate-install.js';
|
|
4
|
+
/**
|
|
5
|
+
* Command-specific log tag for non-error output (log.success / log.dim).
|
|
6
|
+
* `log.error` keeps the mandatory fixed literal `'Totem Error'` tag per the
|
|
7
|
+
* repo styleguide (command-specific tags for info/success/dim, the unified
|
|
8
|
+
* error tag for log.error).
|
|
9
|
+
*/
|
|
10
|
+
const TAG = 'Gate';
|
|
11
|
+
/** Derive the install-time tier from the CLI options (default strict). */
|
|
12
|
+
function resolveTier(opts) {
|
|
13
|
+
return opts.pilot ? 'pilot' : 'strict';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolve + validate the gate events to install from the CLI options. The
|
|
17
|
+
* `knownGateEvents()` registry is the single source of truth: `--all`
|
|
18
|
+
* enumerates it, and a named gate must be a member or we throw (mirror the
|
|
19
|
+
* engine's no-default-allow — never silently install nothing).
|
|
20
|
+
*/
|
|
21
|
+
export async function resolveGateEvents(opts) {
|
|
22
|
+
const { knownGateEvents, TotemError } = await import('@mmnto/totem');
|
|
23
|
+
const known = knownGateEvents();
|
|
24
|
+
if (opts.all) {
|
|
25
|
+
return known;
|
|
26
|
+
}
|
|
27
|
+
const name = opts.name?.trim();
|
|
28
|
+
if (!name) {
|
|
29
|
+
throw new TotemError('GATE_INVALID', 'No gate selected: pass --all or --<name>.', `Use --all or one of: ${known.join(', ')}.`);
|
|
30
|
+
}
|
|
31
|
+
if (!known.includes(name)) {
|
|
32
|
+
throw new TotemError('GATE_INVALID', `Unknown gate "${name}". Known gates: ${known.join(', ')}.`, 'Use --all or one of the known gate names.');
|
|
33
|
+
}
|
|
34
|
+
return [name];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `totem gate install [--all | --<name>]`
|
|
38
|
+
*
|
|
39
|
+
* Idempotently merges one PreToolUse entry per selected gate into committed
|
|
40
|
+
* `.claude/settings.json` and scaffolds the shared parameterized wrapper to
|
|
41
|
+
* `.claude/hooks/gate-wrapper.cjs`. Thin caller of the shared `installGates`
|
|
42
|
+
* merger (the same path `init --gates=` routes through) — no second copy of
|
|
43
|
+
* the merge logic. Fails loud on an unknown `--<name>` (no default-install).
|
|
44
|
+
*/
|
|
45
|
+
export async function gateInstallCommand(opts) {
|
|
46
|
+
const events = await resolveGateEvents(opts);
|
|
47
|
+
const { log } = await import('../ui.js');
|
|
48
|
+
const cwd = process.cwd();
|
|
49
|
+
const tier = resolveTier(opts);
|
|
50
|
+
const results = installGates(cwd, events, tier);
|
|
51
|
+
for (const result of results) {
|
|
52
|
+
if (result.err) {
|
|
53
|
+
log.error('Totem Error', `Gate install failed for ${result.file}: ${result.err}`);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const label = result.event ? `${result.file} (${result.event})` : result.file;
|
|
57
|
+
if (result.action === 'created') {
|
|
58
|
+
log.success(TAG, `Scaffolded ${label}`);
|
|
59
|
+
}
|
|
60
|
+
else if (result.action === 'merged') {
|
|
61
|
+
log.success(TAG, `Installed gate entry into ${label}`);
|
|
62
|
+
}
|
|
63
|
+
else if (result.action === 'updated') {
|
|
64
|
+
// Tier switch: the one existing entry's command was rewritten in place.
|
|
65
|
+
log.success(TAG, `Updated ${result.event ?? result.file} tier to ${tier}`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Genuine same-tier no-op — the ONLY case that prints "no change".
|
|
69
|
+
log.dim(TAG, `${label} already present — no change`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
3
73
|
/**
|
|
4
74
|
* `totem gate check --event <type> --payload <json>`
|
|
5
75
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"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"}
|