@neurcode-ai/cli 0.14.0 → 0.15.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.
- package/LICENSE +201 -0
- package/README.md +60 -8
- package/dist/api-client.d.ts +284 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +111 -0
- package/dist/api-client.js.map +1 -1
- package/dist/commands/activate.d.ts +82 -0
- package/dist/commands/activate.d.ts.map +1 -0
- package/dist/commands/activate.js +551 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/admission.d.ts +67 -0
- package/dist/commands/admission.d.ts.map +1 -0
- package/dist/commands/admission.js +350 -0
- package/dist/commands/admission.js.map +1 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +2045 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/demo.d.ts +3 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +102 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -44
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +44 -22
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/profile.d.ts +14 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +118 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/quickstart.d.ts +2 -2
- package/dist/commands/quickstart.d.ts.map +1 -1
- package/dist/commands/quickstart.js +31 -30
- package/dist/commands/quickstart.js.map +1 -1
- package/dist/commands/remediate-export.d.ts +6 -1
- package/dist/commands/remediate-export.d.ts.map +1 -1
- package/dist/commands/remediate-export.js +359 -7
- package/dist/commands/remediate-export.js.map +1 -1
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +84 -0
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +98 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/runtime-adapter.d.ts +8 -0
- package/dist/commands/runtime-adapter.d.ts.map +1 -0
- package/dist/commands/runtime-adapter.js +375 -0
- package/dist/commands/runtime-adapter.js.map +1 -0
- package/dist/commands/runtime-doctor.d.ts +6 -0
- package/dist/commands/runtime-doctor.d.ts.map +1 -0
- package/dist/commands/runtime-doctor.js +478 -0
- package/dist/commands/runtime-doctor.js.map +1 -0
- package/dist/commands/runtime-report.d.ts +13 -0
- package/dist/commands/runtime-report.d.ts.map +1 -0
- package/dist/commands/runtime-report.js +81 -0
- package/dist/commands/runtime-report.js.map +1 -0
- package/dist/commands/runtime-sync.d.ts +17 -0
- package/dist/commands/runtime-sync.d.ts.map +1 -0
- package/dist/commands/runtime-sync.js +656 -0
- package/dist/commands/runtime-sync.js.map +1 -0
- package/dist/commands/runtime.d.ts +16 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +380 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/session-hook.d.ts +35 -0
- package/dist/commands/session-hook.d.ts.map +1 -0
- package/dist/commands/session-hook.js +1297 -0
- package/dist/commands/session-hook.js.map +1 -0
- package/dist/commands/session.d.ts +91 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +1226 -0
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/whoami.d.ts +7 -4
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +59 -34
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon/routes.d.ts.map +1 -1
- package/dist/daemon/routes.js +8 -0
- package/dist/daemon/routes.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +88 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/governance/impact-analysis.d.ts +27 -0
- package/dist/governance/impact-analysis.d.ts.map +1 -0
- package/dist/governance/impact-analysis.js +274 -0
- package/dist/governance/impact-analysis.js.map +1 -0
- package/dist/index.js +472 -29
- package/dist/index.js.map +1 -1
- package/dist/intent-engine/matcher.d.ts.map +1 -1
- package/dist/intent-engine/matcher.js +3 -12
- package/dist/intent-engine/matcher.js.map +1 -1
- package/dist/utils/admission-artifact.d.ts +59 -0
- package/dist/utils/admission-artifact.d.ts.map +1 -0
- package/dist/utils/admission-artifact.js +410 -0
- package/dist/utils/admission-artifact.js.map +1 -0
- package/dist/utils/agent-adapter-setup.d.ts +80 -0
- package/dist/utils/agent-adapter-setup.d.ts.map +1 -0
- package/dist/utils/agent-adapter-setup.js +577 -0
- package/dist/utils/agent-adapter-setup.js.map +1 -0
- package/dist/utils/agent-guard-supervisor.d.ts +75 -0
- package/dist/utils/agent-guard-supervisor.d.ts.map +1 -0
- package/dist/utils/agent-guard-supervisor.js +388 -0
- package/dist/utils/agent-guard-supervisor.js.map +1 -0
- package/dist/utils/agent-guard.d.ts +92 -0
- package/dist/utils/agent-guard.d.ts.map +1 -0
- package/dist/utils/agent-guard.js +326 -0
- package/dist/utils/agent-guard.js.map +1 -0
- package/dist/utils/agent-session-launcher.d.ts +89 -0
- package/dist/utils/agent-session-launcher.d.ts.map +1 -0
- package/dist/utils/agent-session-launcher.js +308 -0
- package/dist/utils/agent-session-launcher.js.map +1 -0
- package/dist/utils/bash-command-analysis.d.ts +19 -0
- package/dist/utils/bash-command-analysis.d.ts.map +1 -0
- package/dist/utils/bash-command-analysis.js +295 -0
- package/dist/utils/bash-command-analysis.js.map +1 -0
- package/dist/utils/consequence-nudges.d.ts +30 -0
- package/dist/utils/consequence-nudges.d.ts.map +1 -0
- package/dist/utils/consequence-nudges.js +313 -0
- package/dist/utils/consequence-nudges.js.map +1 -0
- package/dist/utils/drift-intelligence.d.ts.map +1 -1
- package/dist/utils/drift-intelligence.js +29 -7
- package/dist/utils/drift-intelligence.js.map +1 -1
- package/dist/utils/git-coverage.d.ts +57 -0
- package/dist/utils/git-coverage.d.ts.map +1 -0
- package/dist/utils/git-coverage.js +302 -0
- package/dist/utils/git-coverage.js.map +1 -0
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +2 -1
- package/dist/utils/gitignore.js.map +1 -1
- package/dist/utils/governed-intent.d.ts +10 -0
- package/dist/utils/governed-intent.d.ts.map +1 -0
- package/dist/utils/governed-intent.js +108 -0
- package/dist/utils/governed-intent.js.map +1 -0
- package/dist/utils/hook-heartbeat.d.ts +55 -0
- package/dist/utils/hook-heartbeat.d.ts.map +1 -0
- package/dist/utils/hook-heartbeat.js +116 -0
- package/dist/utils/hook-heartbeat.js.map +1 -0
- package/dist/utils/intent-continuity.d.ts +21 -0
- package/dist/utils/intent-continuity.d.ts.map +1 -0
- package/dist/utils/intent-continuity.js +192 -0
- package/dist/utils/intent-continuity.js.map +1 -0
- package/dist/utils/messages.d.ts +1 -1
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +24 -21
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/runtime-companion.d.ts +137 -0
- package/dist/utils/runtime-companion.d.ts.map +1 -0
- package/dist/utils/runtime-companion.js +231 -0
- package/dist/utils/runtime-companion.js.map +1 -0
- package/dist/utils/runtime-connection.d.ts +46 -0
- package/dist/utils/runtime-connection.d.ts.map +1 -0
- package/dist/utils/runtime-connection.js +148 -0
- package/dist/utils/runtime-connection.js.map +1 -0
- package/dist/utils/runtime-evidence.d.ts +68 -0
- package/dist/utils/runtime-evidence.d.ts.map +1 -0
- package/dist/utils/runtime-evidence.js +248 -0
- package/dist/utils/runtime-evidence.js.map +1 -0
- package/dist/utils/runtime-live.d.ts +33 -0
- package/dist/utils/runtime-live.d.ts.map +1 -0
- package/dist/utils/runtime-live.js +361 -0
- package/dist/utils/runtime-live.js.map +1 -0
- package/dist/utils/runtime-outbox.d.ts +76 -0
- package/dist/utils/runtime-outbox.d.ts.map +1 -0
- package/dist/utils/runtime-outbox.js +410 -0
- package/dist/utils/runtime-outbox.js.map +1 -0
- package/dist/utils/runtime-receipt.d.ts +50 -0
- package/dist/utils/runtime-receipt.d.ts.map +1 -0
- package/dist/utils/runtime-receipt.js +223 -0
- package/dist/utils/runtime-receipt.js.map +1 -0
- package/dist/utils/state.d.ts +21 -0
- package/dist/utils/state.d.ts.map +1 -1
- package/dist/utils/state.js +30 -0
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/structural-understanding.d.ts +334 -0
- package/dist/utils/structural-understanding.d.ts.map +1 -0
- package/dist/utils/structural-understanding.js +2316 -0
- package/dist/utils/structural-understanding.js.map +1 -0
- package/dist/utils/v0-governance.d.ts +197 -0
- package/dist/utils/v0-governance.d.ts.map +1 -0
- package/dist/utils/v0-governance.js +904 -0
- package/dist/utils/v0-governance.js.map +1 -0
- package/package.json +11 -12
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.activateClaudeCommand = activateClaudeCommand;
|
|
4
|
+
exports.activateCopilotCommand = activateCopilotCommand;
|
|
5
|
+
exports.activateCompatibilityCommand = activateCompatibilityCommand;
|
|
6
|
+
exports.activateCommand = activateCommand;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const state_1 = require("../utils/state");
|
|
11
|
+
const v0_governance_1 = require("../utils/v0-governance");
|
|
12
|
+
const runtime_connection_1 = require("../utils/runtime-connection");
|
|
13
|
+
let chalk;
|
|
14
|
+
try {
|
|
15
|
+
chalk = require('chalk');
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
chalk = {
|
|
19
|
+
green: (s) => s,
|
|
20
|
+
yellow: (s) => s,
|
|
21
|
+
red: (s) => s,
|
|
22
|
+
bold: (s) => s,
|
|
23
|
+
dim: (s) => s,
|
|
24
|
+
cyan: (s) => s,
|
|
25
|
+
white: (s) => s,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const COMPATIBILITY_ACTIVATIONS = {
|
|
29
|
+
codex: {
|
|
30
|
+
label: 'Codex supervised workflow',
|
|
31
|
+
controlLevel: 'supervised CLI workflow + admission/evidence path',
|
|
32
|
+
enforced: [
|
|
33
|
+
'cooperative pre-write checks when Codex calls the Neurcode runtime',
|
|
34
|
+
'local guard supervisor detects unverified or denied writes before handoff',
|
|
35
|
+
'source-free admission export can travel with the PR',
|
|
36
|
+
],
|
|
37
|
+
advisory: [
|
|
38
|
+
'no Claude-like host hook is installed by activate codex',
|
|
39
|
+
'bypassed filesystem writes are detected and reported, not prevented by the host',
|
|
40
|
+
'the GitHub Action remains post-PR advisory unless admission records are committed',
|
|
41
|
+
],
|
|
42
|
+
commands: [
|
|
43
|
+
'neurcode agent walkthrough codex',
|
|
44
|
+
'neurcode agent bootstrap codex',
|
|
45
|
+
'neurcode agent doctor codex',
|
|
46
|
+
'neurcode agent guard start codex --goal "<task>" --plan "<source-free plan>"',
|
|
47
|
+
'neurcode session export-admission <session-id> --explain',
|
|
48
|
+
],
|
|
49
|
+
next: [
|
|
50
|
+
'Run `neurcode agent bootstrap codex` to write repo-native instructions and MCP config where available.',
|
|
51
|
+
'Start with `neurcode agent guard start codex --goal "<task>" --plan "<source-free plan>"`.',
|
|
52
|
+
'Finish with `neurcode agent guard finish --session-id <session-id> --fail-on-unverified`, then export admission for the PR.',
|
|
53
|
+
],
|
|
54
|
+
nextCheck: 'neurcode agent doctor codex',
|
|
55
|
+
},
|
|
56
|
+
cursor: {
|
|
57
|
+
label: 'Cursor supervised workflow',
|
|
58
|
+
controlLevel: 'supervised CLI workflow + admission/evidence path',
|
|
59
|
+
enforced: [
|
|
60
|
+
'cooperative pre-write checks when Cursor calls the Neurcode runtime',
|
|
61
|
+
'local guard supervisor detects unverified or denied writes before handoff',
|
|
62
|
+
'source-free admission export can travel with the PR',
|
|
63
|
+
],
|
|
64
|
+
advisory: [
|
|
65
|
+
'no Claude-like host hook is installed by activate cursor',
|
|
66
|
+
'repo-local or global Cursor MCP config depends on local Cursor configuration',
|
|
67
|
+
'bypassed filesystem writes are detected and reported, not prevented by the host',
|
|
68
|
+
],
|
|
69
|
+
commands: [
|
|
70
|
+
'neurcode agent walkthrough cursor',
|
|
71
|
+
'neurcode agent bootstrap cursor',
|
|
72
|
+
'neurcode agent doctor cursor',
|
|
73
|
+
'neurcode agent guard start cursor --goal "<task>" --plan "<source-free plan>"',
|
|
74
|
+
'neurcode session export-admission <session-id> --explain',
|
|
75
|
+
],
|
|
76
|
+
next: [
|
|
77
|
+
'Run `neurcode agent bootstrap cursor` to write Cursor rules and MCP config.',
|
|
78
|
+
'Start with `neurcode agent guard start cursor --goal "<task>" --plan "<source-free plan>"`.',
|
|
79
|
+
'Finish with `neurcode agent guard finish --session-id <session-id> --fail-on-unverified`, then export admission for the PR.',
|
|
80
|
+
],
|
|
81
|
+
nextCheck: 'neurcode agent doctor cursor',
|
|
82
|
+
},
|
|
83
|
+
vscode: {
|
|
84
|
+
label: 'VS Code / Copilot companion workflow',
|
|
85
|
+
controlLevel: 'operator companion + host-dependent Copilot hooks',
|
|
86
|
+
enforced: [
|
|
87
|
+
'VS Code extension shows live runtime state and exact-path approval UX',
|
|
88
|
+
'Copilot hooks are available through `neurcode activate copilot` when the host discovers repo hooks',
|
|
89
|
+
'CLI guard supervisor can detect unverified writes for non-hooked work',
|
|
90
|
+
],
|
|
91
|
+
advisory: [
|
|
92
|
+
'the VS Code extension itself is observe-only and does not hard-deny editor writes',
|
|
93
|
+
'Copilot hook behavior depends on host lifecycle hook support and reload state',
|
|
94
|
+
'use admission export and the Action for PR-time runtime context',
|
|
95
|
+
],
|
|
96
|
+
commands: [
|
|
97
|
+
'neurcode daemon',
|
|
98
|
+
'neurcode doctor --runtime',
|
|
99
|
+
'neurcode activate copilot --connect <token>',
|
|
100
|
+
'neurcode agent start vscode --goal "<task>"',
|
|
101
|
+
'neurcode session export-admission <session-id> --explain',
|
|
102
|
+
],
|
|
103
|
+
next: [
|
|
104
|
+
'Open VS Code in this repository and run the Neurcode Runtime Companion.',
|
|
105
|
+
'For Copilot Agent Mode hooks, run `neurcode activate copilot --connect <token>` and reload VS Code.',
|
|
106
|
+
'For observe-only companion mode, start the daemon and pair it with a supervised agent workflow.',
|
|
107
|
+
],
|
|
108
|
+
nextCheck: 'neurcode doctor --runtime',
|
|
109
|
+
},
|
|
110
|
+
action: {
|
|
111
|
+
label: 'GitHub Action advisory workflow',
|
|
112
|
+
controlLevel: 'post-PR advisory routing + admission display',
|
|
113
|
+
enforced: [
|
|
114
|
+
'the Action deterministically routes review from PR metadata',
|
|
115
|
+
'when committed, .neurcode-admission records add source-free governed runtime context',
|
|
116
|
+
'workflow outputs expose admission trust level, session count, counts, and receipt posture',
|
|
117
|
+
],
|
|
118
|
+
advisory: [
|
|
119
|
+
'the Action cannot govern work before the pull request exists',
|
|
120
|
+
'Action-only runs do not prove a governed local runtime session occurred',
|
|
121
|
+
'self-attested admission records are review context unless backend receipt metadata is attached and verified',
|
|
122
|
+
],
|
|
123
|
+
commands: [
|
|
124
|
+
'uses: sujit-jaunjal/neurcode-actions@v0.3.0-rc.3',
|
|
125
|
+
'neurcode admission doctor',
|
|
126
|
+
'neurcode session export-admission <session-id> --explain',
|
|
127
|
+
'git add .neurcode-admission/*.json',
|
|
128
|
+
],
|
|
129
|
+
next: [
|
|
130
|
+
'Install the public Action workflow at `sujit-jaunjal/neurcode-actions@v0.3.0-rc.3` until RC4 is rehearsed.',
|
|
131
|
+
'For runtime context, export `.neurcode-admission/<session-id>.json` after a governed local session.',
|
|
132
|
+
'Read the Action report as advisory routing plus explicit admission trust boundary.',
|
|
133
|
+
],
|
|
134
|
+
nextCheck: 'neurcode admission doctor',
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
function readCliVersion() {
|
|
138
|
+
try {
|
|
139
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', '..', 'package.json'), 'utf8'));
|
|
140
|
+
return pkg.version || 'unknown';
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return 'unknown';
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function parseConnectToken(input, explicitApiUrl) {
|
|
147
|
+
const trimmed = input.trim();
|
|
148
|
+
if (!trimmed)
|
|
149
|
+
throw new Error('--connect requires an activation token or connect URL');
|
|
150
|
+
if (/^https?:\/\//i.test(trimmed)) {
|
|
151
|
+
const parsed = new URL(trimmed);
|
|
152
|
+
const token = parsed.searchParams.get('token') ||
|
|
153
|
+
parsed.searchParams.get('connect') ||
|
|
154
|
+
parsed.pathname.split('/').filter(Boolean).pop() ||
|
|
155
|
+
'';
|
|
156
|
+
if (!token)
|
|
157
|
+
throw new Error('Connect URL did not include an activation token');
|
|
158
|
+
return {
|
|
159
|
+
token,
|
|
160
|
+
apiUrl: (explicitApiUrl || parsed.origin || config_1.DEFAULT_API_URL).replace(/\/$/, ''),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
token: trimmed,
|
|
165
|
+
apiUrl: (explicitApiUrl || config_1.DEFAULT_API_URL).replace(/\/$/, ''),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
async function completeRuntimeRepoActivation(input) {
|
|
169
|
+
const repo = (0, runtime_connection_1.collectRuntimeRepoMetadata)(input.repoRoot, input.profileFreshness);
|
|
170
|
+
const response = await fetch(`${input.apiUrl.replace(/\/$/, '')}/api/v1/runtime/repo-activations/complete`, {
|
|
171
|
+
method: 'POST',
|
|
172
|
+
headers: { 'Content-Type': 'application/json' },
|
|
173
|
+
body: JSON.stringify({
|
|
174
|
+
token: input.token,
|
|
175
|
+
cliVersion: readCliVersion(),
|
|
176
|
+
repo,
|
|
177
|
+
}),
|
|
178
|
+
});
|
|
179
|
+
if (!response.ok) {
|
|
180
|
+
let message = `Activation failed with HTTP ${response.status}`;
|
|
181
|
+
try {
|
|
182
|
+
const body = await response.json();
|
|
183
|
+
message = body.message || body.error || message;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
try {
|
|
187
|
+
const text = await response.text();
|
|
188
|
+
if (text.trim())
|
|
189
|
+
message = text.trim();
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// keep generic message
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
throw new Error(message);
|
|
196
|
+
}
|
|
197
|
+
const body = await response.json();
|
|
198
|
+
if (!body.ok || !body.apiKey || !body.organizationId || !body.repo?.id) {
|
|
199
|
+
throw new Error('Activation response was missing runtime connection credentials');
|
|
200
|
+
}
|
|
201
|
+
return body;
|
|
202
|
+
}
|
|
203
|
+
async function connectRuntimeIfRequested(options, repoRoot, profile) {
|
|
204
|
+
if (!options.connect)
|
|
205
|
+
return undefined;
|
|
206
|
+
const parsed = parseConnectToken(options.connect, options.apiUrl);
|
|
207
|
+
const activation = await completeRuntimeRepoActivation({
|
|
208
|
+
token: parsed.token,
|
|
209
|
+
apiUrl: parsed.apiUrl,
|
|
210
|
+
repoRoot,
|
|
211
|
+
profileFreshness: (0, v0_governance_1.buildProfileFreshnessSignal)(profile, profile.refreshed ? 'auto_refreshed' : 'none'),
|
|
212
|
+
});
|
|
213
|
+
const autoSyncEnabled = options.autoSync !== false && activation.autoSync?.enabled !== false;
|
|
214
|
+
(0, config_1.saveGlobalAuth)(activation.apiKey, parsed.apiUrl, activation.organizationId);
|
|
215
|
+
(0, state_1.setWorkspaceContext)({
|
|
216
|
+
orgId: activation.organizationId,
|
|
217
|
+
...(activation.projectId ? { projectId: activation.projectId } : {}),
|
|
218
|
+
});
|
|
219
|
+
const localConnection = {
|
|
220
|
+
schemaVersion: 1,
|
|
221
|
+
apiUrl: parsed.apiUrl,
|
|
222
|
+
organizationId: activation.organizationId,
|
|
223
|
+
projectId: activation.projectId || null,
|
|
224
|
+
repo: activation.repo,
|
|
225
|
+
profileHash: profile.profile.profileHash,
|
|
226
|
+
topologyHash: profile.profile.topology.hash,
|
|
227
|
+
keyPrefix: activation.keyPrefix,
|
|
228
|
+
connectedAt: new Date().toISOString(),
|
|
229
|
+
autoSync: {
|
|
230
|
+
enabled: autoSyncEnabled,
|
|
231
|
+
lastStatus: 'skipped',
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
(0, runtime_connection_1.saveRuntimeConnection)(repoRoot, localConnection);
|
|
235
|
+
return {
|
|
236
|
+
connected: true,
|
|
237
|
+
apiUrl: parsed.apiUrl,
|
|
238
|
+
organizationId: activation.organizationId,
|
|
239
|
+
projectId: activation.projectId || null,
|
|
240
|
+
repoId: activation.repo.id,
|
|
241
|
+
repoName: activation.repo.name,
|
|
242
|
+
repoKey: activation.repo.repoKey,
|
|
243
|
+
autoSyncEnabled,
|
|
244
|
+
keyPrefix: activation.keyPrefix,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
async function activateClaudeCommand(options = {}) {
|
|
248
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(options.dir || process.cwd());
|
|
249
|
+
const profile = (0, v0_governance_1.ensureFreshGovernanceProfile)(repoRoot, { force: options.force === true });
|
|
250
|
+
const hookResult = (0, v0_governance_1.installClaudeGovernanceHooks)(repoRoot, { force: options.force === true });
|
|
251
|
+
const mcpResult = options.mcp !== false
|
|
252
|
+
? (0, v0_governance_1.installClaudeMcpConfig)({ force: options.force === true })
|
|
253
|
+
: null;
|
|
254
|
+
const inspection = (0, v0_governance_1.inspectClaudeActivation)(repoRoot);
|
|
255
|
+
const ok = inspection.hooks.installed &&
|
|
256
|
+
(options.mcp === false || inspection.mcp.configured) &&
|
|
257
|
+
profile.profile.topology.trackedFileCount > 0;
|
|
258
|
+
const connection = await connectRuntimeIfRequested(options, repoRoot, profile);
|
|
259
|
+
return {
|
|
260
|
+
ok,
|
|
261
|
+
agent: 'claude',
|
|
262
|
+
repoRoot,
|
|
263
|
+
profile: {
|
|
264
|
+
status: profile.status,
|
|
265
|
+
refreshed: profile.refreshed,
|
|
266
|
+
profileHash: profile.profile.profileHash,
|
|
267
|
+
topologyHash: profile.profile.topology.hash,
|
|
268
|
+
trackedFileCount: profile.profile.topology.trackedFileCount,
|
|
269
|
+
path: profile.profilePath,
|
|
270
|
+
reasons: profile.reasons,
|
|
271
|
+
},
|
|
272
|
+
claude: {
|
|
273
|
+
hooksInstalled: inspection.hooks.installed,
|
|
274
|
+
settingsPath: inspection.hooks.settingsPath,
|
|
275
|
+
hookEvents: inspection.hooks.events,
|
|
276
|
+
hooksAdded: hookResult.added,
|
|
277
|
+
hooksPreserved: hookResult.preserved,
|
|
278
|
+
hooksRepaired: hookResult.repaired,
|
|
279
|
+
mcpConfigured: inspection.mcp.configured,
|
|
280
|
+
mcpPresent: inspection.mcp.present,
|
|
281
|
+
mcpStale: inspection.mcp.stale,
|
|
282
|
+
mcpConfigPath: inspection.mcp.configPath,
|
|
283
|
+
mcpAdded: mcpResult?.added ?? [],
|
|
284
|
+
mcpPreserved: mcpResult?.preserved ?? [],
|
|
285
|
+
mcpRepaired: mcpResult?.repaired ?? [],
|
|
286
|
+
mcpRestartRequired: mcpResult?.restartRequired ?? false,
|
|
287
|
+
mcpStaleReasons: inspection.mcp.staleReasons,
|
|
288
|
+
},
|
|
289
|
+
restartRequired: hookResult.restartRequired || (mcpResult?.restartRequired ?? false),
|
|
290
|
+
nextCheck: 'neurcode doctor --runtime',
|
|
291
|
+
connection,
|
|
292
|
+
next: [
|
|
293
|
+
...(hookResult.restartRequired
|
|
294
|
+
? ['IMPORTANT: if Claude Code is already open in this repo, restart it now — hooks load at startup and do not hot-reload.']
|
|
295
|
+
: []),
|
|
296
|
+
...(mcpResult?.restartRequired
|
|
297
|
+
? ['IMPORTANT: Claude MCP approval config changed. Reload Claude MCP servers or restart Claude Code before relying on in-app approvals.']
|
|
298
|
+
: []),
|
|
299
|
+
'Open (or restart) Claude Code in this repository.',
|
|
300
|
+
'Run `neurcode doctor --runtime` and confirm it is green (no FAIL, no restart warning).',
|
|
301
|
+
'Give Claude Code a short, crisp goal, then make a bounded change to confirm in-flow governance.',
|
|
302
|
+
],
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
async function activateCopilotCommand(options = {}) {
|
|
306
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(options.dir || process.cwd());
|
|
307
|
+
const profile = (0, v0_governance_1.ensureFreshGovernanceProfile)(repoRoot, { force: options.force === true });
|
|
308
|
+
const hookResult = (0, v0_governance_1.installCopilotGovernanceHooks)(repoRoot, { force: options.force === true });
|
|
309
|
+
const inspection = (0, v0_governance_1.inspectCopilotActivation)(repoRoot);
|
|
310
|
+
const ok = inspection.hooks.installed && profile.profile.topology.trackedFileCount > 0;
|
|
311
|
+
const connection = await connectRuntimeIfRequested(options, repoRoot, profile);
|
|
312
|
+
return {
|
|
313
|
+
ok,
|
|
314
|
+
agent: 'copilot',
|
|
315
|
+
repoRoot,
|
|
316
|
+
profile: {
|
|
317
|
+
status: profile.status,
|
|
318
|
+
refreshed: profile.refreshed,
|
|
319
|
+
profileHash: profile.profile.profileHash,
|
|
320
|
+
topologyHash: profile.profile.topology.hash,
|
|
321
|
+
trackedFileCount: profile.profile.topology.trackedFileCount,
|
|
322
|
+
path: profile.profilePath,
|
|
323
|
+
reasons: profile.reasons,
|
|
324
|
+
},
|
|
325
|
+
copilot: {
|
|
326
|
+
hooksInstalled: inspection.hooks.installed,
|
|
327
|
+
hooksPath: inspection.hooks.hooksPath,
|
|
328
|
+
hookEvents: inspection.hooks.events,
|
|
329
|
+
hooksAdded: hookResult.added,
|
|
330
|
+
hooksPreserved: hookResult.preserved,
|
|
331
|
+
hooksRepaired: hookResult.repaired,
|
|
332
|
+
},
|
|
333
|
+
restartRequired: hookResult.restartRequired,
|
|
334
|
+
nextCheck: 'neurcode doctor --runtime',
|
|
335
|
+
connection,
|
|
336
|
+
next: [
|
|
337
|
+
...(hookResult.restartRequired
|
|
338
|
+
? ['IMPORTANT: if VS Code/Copilot Agent Mode is already open in this repo, reload the window so hooks are rediscovered.']
|
|
339
|
+
: []),
|
|
340
|
+
'Open VS Code in this repository and use Copilot Agent Mode.',
|
|
341
|
+
'Run `neurcode doctor --runtime` and confirm Copilot hooks are green.',
|
|
342
|
+
'Give Copilot a short, crisp goal; Neurcode will govern UserPromptSubmit, PreToolUse, and Stop.',
|
|
343
|
+
],
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
async function activateCompatibilityCommand(agent, options = {}) {
|
|
347
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(options.dir || process.cwd());
|
|
348
|
+
const profile = (0, v0_governance_1.ensureFreshGovernanceProfile)(repoRoot, { force: options.force === true });
|
|
349
|
+
const connection = await connectRuntimeIfRequested(options, repoRoot, profile);
|
|
350
|
+
const compatibility = COMPATIBILITY_ACTIVATIONS[agent];
|
|
351
|
+
return {
|
|
352
|
+
ok: profile.profile.topology.trackedFileCount > 0,
|
|
353
|
+
agent,
|
|
354
|
+
repoRoot,
|
|
355
|
+
profile: {
|
|
356
|
+
status: profile.status,
|
|
357
|
+
refreshed: profile.refreshed,
|
|
358
|
+
profileHash: profile.profile.profileHash,
|
|
359
|
+
topologyHash: profile.profile.topology.hash,
|
|
360
|
+
trackedFileCount: profile.profile.topology.trackedFileCount,
|
|
361
|
+
path: profile.profilePath,
|
|
362
|
+
reasons: profile.reasons,
|
|
363
|
+
},
|
|
364
|
+
restartRequired: false,
|
|
365
|
+
nextCheck: compatibility.nextCheck,
|
|
366
|
+
compatibility,
|
|
367
|
+
connection,
|
|
368
|
+
next: compatibility.next,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
function agentLabel(agent) {
|
|
372
|
+
if (agent === 'claude')
|
|
373
|
+
return 'Claude Code';
|
|
374
|
+
if (agent === 'copilot')
|
|
375
|
+
return 'GitHub Copilot';
|
|
376
|
+
if (agent === 'codex')
|
|
377
|
+
return 'Codex';
|
|
378
|
+
if (agent === 'cursor')
|
|
379
|
+
return 'Cursor';
|
|
380
|
+
if (agent === 'vscode')
|
|
381
|
+
return 'VS Code / Copilot';
|
|
382
|
+
return 'GitHub Action';
|
|
383
|
+
}
|
|
384
|
+
function renderActivation(result, mcpSkipped) {
|
|
385
|
+
console.log('');
|
|
386
|
+
console.log(chalk.bold(`Neurcode activation - ${agentLabel(result.agent)}`));
|
|
387
|
+
console.log(chalk.dim('-'.repeat(64)));
|
|
388
|
+
console.log(`Repo: ${chalk.white(result.repoRoot)}`);
|
|
389
|
+
console.log(`Profile: ${result.profile.refreshed ? chalk.green('refreshed') : chalk.green('fresh')} ` +
|
|
390
|
+
chalk.dim(`${result.profile.profileHash} / topology ${result.profile.topologyHash}`));
|
|
391
|
+
console.log(`Files: ${result.profile.trackedFileCount} tracked`);
|
|
392
|
+
if (result.profile.reasons.length > 0) {
|
|
393
|
+
console.log(chalk.dim(`Reason: ${result.profile.reasons.join('; ')}`));
|
|
394
|
+
}
|
|
395
|
+
if (result.compatibility) {
|
|
396
|
+
console.log(`Control: ${chalk.cyan(result.compatibility.controlLevel)}`);
|
|
397
|
+
console.log(`Mode: ${result.compatibility.label}`);
|
|
398
|
+
console.log('');
|
|
399
|
+
console.log(chalk.bold('Enforced / recorded'));
|
|
400
|
+
for (const item of result.compatibility.enforced)
|
|
401
|
+
console.log(chalk.dim(` - ${item}`));
|
|
402
|
+
console.log(chalk.bold('Advisory / not claimed'));
|
|
403
|
+
for (const item of result.compatibility.advisory)
|
|
404
|
+
console.log(chalk.dim(` - ${item}`));
|
|
405
|
+
if (result.connection?.connected) {
|
|
406
|
+
console.log('');
|
|
407
|
+
console.log(`Cloud: ${chalk.green('connected')} ${chalk.dim(result.connection.repoName)} ` +
|
|
408
|
+
chalk.dim(`(${result.connection.keyPrefix || 'runtime key'})`));
|
|
409
|
+
console.log(`Sync: ${result.connection.autoSyncEnabled ? chalk.green('automatic') : chalk.yellow('manual')} ` +
|
|
410
|
+
chalk.dim(result.connection.apiUrl));
|
|
411
|
+
}
|
|
412
|
+
console.log(chalk.dim('-'.repeat(64)));
|
|
413
|
+
console.log(chalk.green('Ready:') + ` ${result.compatibility.label} prepared. No hard hooks were installed by this command.`);
|
|
414
|
+
console.log(chalk.dim(`Verify: run \`${result.nextCheck}\`.`));
|
|
415
|
+
console.log('');
|
|
416
|
+
console.log(chalk.bold('Useful commands'));
|
|
417
|
+
for (const command of result.compatibility.commands)
|
|
418
|
+
console.log(chalk.dim(` - ${command}`));
|
|
419
|
+
console.log('');
|
|
420
|
+
console.log(chalk.bold('Next'));
|
|
421
|
+
for (const step of result.next)
|
|
422
|
+
console.log(chalk.dim(` - ${step}`));
|
|
423
|
+
console.log('');
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
const hookStats = result.agent === 'copilot'
|
|
427
|
+
? result.copilot
|
|
428
|
+
: result.claude;
|
|
429
|
+
const hookPath = result.agent === 'copilot'
|
|
430
|
+
? result.copilot.hooksPath
|
|
431
|
+
: result.claude.settingsPath;
|
|
432
|
+
const hooksInstalled = result.agent === 'copilot'
|
|
433
|
+
? result.copilot.hooksInstalled
|
|
434
|
+
: result.claude.hooksInstalled;
|
|
435
|
+
const hookChange = hookStats.hooksRepaired.length > 0
|
|
436
|
+
? chalk.yellow(`repaired ${hookStats.hooksRepaired.length}`)
|
|
437
|
+
: hookStats.hooksAdded.length > 0
|
|
438
|
+
? chalk.green(`added ${hookStats.hooksAdded.length}`)
|
|
439
|
+
: chalk.green('already current');
|
|
440
|
+
console.log(`Hooks: ${hooksInstalled ? chalk.green('installed') : chalk.red('not installed')} ` +
|
|
441
|
+
`(${hookChange}, ${hookStats.hooksPreserved.length} preserved) ` +
|
|
442
|
+
chalk.dim(hookPath));
|
|
443
|
+
if (result.agent === 'claude') {
|
|
444
|
+
console.log(`MCP: ${mcpSkipped
|
|
445
|
+
? chalk.yellow('skipped')
|
|
446
|
+
: result.claude.mcpConfigured
|
|
447
|
+
? chalk.green('configured')
|
|
448
|
+
: result.claude.mcpStale
|
|
449
|
+
? chalk.yellow('stale')
|
|
450
|
+
: chalk.red('not configured')} ${chalk.dim(result.claude.mcpConfigPath)}`);
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
console.log(chalk.dim('MCP: Copilot can use MCP tools separately; hook-backed governance depends on host lifecycle hook support.'));
|
|
454
|
+
}
|
|
455
|
+
if (result.connection?.connected) {
|
|
456
|
+
console.log(`Cloud: ${chalk.green('connected')} ${chalk.dim(result.connection.repoName)} ` +
|
|
457
|
+
chalk.dim(`(${result.connection.keyPrefix || 'runtime key'})`));
|
|
458
|
+
console.log(`Sync: ${result.connection.autoSyncEnabled ? chalk.green('automatic') : chalk.yellow('manual')} ` +
|
|
459
|
+
chalk.dim(result.connection.apiUrl));
|
|
460
|
+
}
|
|
461
|
+
console.log(chalk.dim('-'.repeat(64)));
|
|
462
|
+
if (result.restartRequired) {
|
|
463
|
+
console.log(chalk.yellow('Restart required: ') +
|
|
464
|
+
(result.agent === 'copilot'
|
|
465
|
+
? 'runtime config changed. If VS Code/Copilot Agent Mode is already open in this repo, reload the window.'
|
|
466
|
+
: 'runtime config changed. If Claude Code is already open in this repo, restart it or reload MCP servers.'));
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
console.log(chalk.green('Ready:') + ` ${result.agent === 'copilot' ? 'Copilot Agent Mode' : 'Claude Code'} edits in this repo are governed in-flow.`);
|
|
470
|
+
}
|
|
471
|
+
console.log(chalk.dim(`Verify: run \`${result.nextCheck}\` and confirm it is green before relying on governance.`));
|
|
472
|
+
console.log('');
|
|
473
|
+
console.log(chalk.bold('Next'));
|
|
474
|
+
for (const step of result.next) {
|
|
475
|
+
console.log(chalk.dim(` - ${step}`));
|
|
476
|
+
}
|
|
477
|
+
console.log(chalk.dim(' - Blocked approvals can use dashboard approval or `neurcode session approve --path <path>`.'));
|
|
478
|
+
console.log('');
|
|
479
|
+
}
|
|
480
|
+
function normalizeActivationAgent(input) {
|
|
481
|
+
const agent = (input || 'claude').toLowerCase();
|
|
482
|
+
if (agent === 'claude' || agent === 'claude-code')
|
|
483
|
+
return 'claude';
|
|
484
|
+
if (agent === 'copilot' || agent === 'github-copilot')
|
|
485
|
+
return 'copilot';
|
|
486
|
+
if (agent === 'codex')
|
|
487
|
+
return 'codex';
|
|
488
|
+
if (agent === 'cursor')
|
|
489
|
+
return 'cursor';
|
|
490
|
+
if (agent === 'vscode' || agent === 'vs-code' || agent === 'code')
|
|
491
|
+
return 'vscode';
|
|
492
|
+
if (agent === 'action' || agent === 'github-action' || agent === 'github-actions')
|
|
493
|
+
return 'action';
|
|
494
|
+
return null;
|
|
495
|
+
}
|
|
496
|
+
function activateCommand(program) {
|
|
497
|
+
program
|
|
498
|
+
.command('activate [agent]')
|
|
499
|
+
.description('First-run in-flow governance activation for a coding agent')
|
|
500
|
+
.option('--force', 'Refresh profile and replace existing Neurcode hook/MCP entries')
|
|
501
|
+
.option('--dir <path>', 'Repository root (default: current directory)')
|
|
502
|
+
.option('--no-mcp', 'Skip writing the Claude MCP server entry to ~/.claude.json')
|
|
503
|
+
.option('--connect <token-or-url>', 'Pair this repo with the Neurcode dashboard and enable runtime evidence sync')
|
|
504
|
+
.option('--api-url <url>', 'Neurcode API URL for activation token redemption')
|
|
505
|
+
.option('--no-auto-sync', 'Pair the repo but leave automatic session upload disabled')
|
|
506
|
+
.option('--json', 'Output machine-readable JSON')
|
|
507
|
+
.action(async (agentArg, options) => {
|
|
508
|
+
const agent = normalizeActivationAgent(agentArg);
|
|
509
|
+
if (!agent) {
|
|
510
|
+
const payload = {
|
|
511
|
+
ok: false,
|
|
512
|
+
error: `Unsupported activation target "${agentArg || 'claude'}".`,
|
|
513
|
+
supportedAgents: ['claude', 'copilot', 'codex', 'cursor', 'vscode', 'action'],
|
|
514
|
+
};
|
|
515
|
+
if (options.json) {
|
|
516
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
console.error(chalk.red(payload.error));
|
|
520
|
+
}
|
|
521
|
+
process.exitCode = 2;
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
524
|
+
try {
|
|
525
|
+
const result = agent === 'copilot'
|
|
526
|
+
? await activateCopilotCommand(options)
|
|
527
|
+
: agent === 'claude'
|
|
528
|
+
? await activateClaudeCommand(options)
|
|
529
|
+
: await activateCompatibilityCommand(agent, options);
|
|
530
|
+
if (options.json) {
|
|
531
|
+
console.log(JSON.stringify(result, null, 2));
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
renderActivation(result, options.mcp === false);
|
|
535
|
+
}
|
|
536
|
+
if (!result.ok)
|
|
537
|
+
process.exitCode = 1;
|
|
538
|
+
}
|
|
539
|
+
catch (error) {
|
|
540
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
541
|
+
if (options.json) {
|
|
542
|
+
console.log(JSON.stringify({ ok: false, error: message }, null, 2));
|
|
543
|
+
}
|
|
544
|
+
else {
|
|
545
|
+
console.error(chalk.red(`Activation failed: ${message}`));
|
|
546
|
+
}
|
|
547
|
+
process.exitCode = 1;
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
//# sourceMappingURL=activate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
export interface AdmissionExportOptions {
|
|
3
|
+
dir?: string;
|
|
4
|
+
sessionId?: string;
|
|
5
|
+
receiptPath?: string;
|
|
6
|
+
explain?: boolean;
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface AdmissionExportSummary {
|
|
10
|
+
ok: true;
|
|
11
|
+
repoRoot: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
localPath: string;
|
|
14
|
+
publicPath: string;
|
|
15
|
+
localRelativePath: string;
|
|
16
|
+
publicRelativePath: string;
|
|
17
|
+
schemaVersion: string;
|
|
18
|
+
attestationKind: 'self-attested';
|
|
19
|
+
trustLevel: 'unsigned_local' | 'self_attested' | 'backend_signed';
|
|
20
|
+
receipt: {
|
|
21
|
+
present: boolean;
|
|
22
|
+
receiptId?: string;
|
|
23
|
+
keyId?: string | null;
|
|
24
|
+
signatureStatus?: string | null;
|
|
25
|
+
verificationStatus?: string | null;
|
|
26
|
+
verifier?: string | null;
|
|
27
|
+
};
|
|
28
|
+
disclaimer: string;
|
|
29
|
+
capture: {
|
|
30
|
+
mode: string;
|
|
31
|
+
baseRef?: string;
|
|
32
|
+
headRef?: string;
|
|
33
|
+
};
|
|
34
|
+
manifest: {
|
|
35
|
+
entryCount: number;
|
|
36
|
+
coverageCount: number;
|
|
37
|
+
deltaHash: string;
|
|
38
|
+
coverageSetHash: string;
|
|
39
|
+
governedCoverageCount: number;
|
|
40
|
+
ungovernedCoverageCount: number;
|
|
41
|
+
};
|
|
42
|
+
contains: string[];
|
|
43
|
+
excludes: string[];
|
|
44
|
+
actionConsumption: string[];
|
|
45
|
+
nextSteps: string[];
|
|
46
|
+
}
|
|
47
|
+
export interface AdmissionDoctorSummary {
|
|
48
|
+
ok: boolean;
|
|
49
|
+
repoRoot: string;
|
|
50
|
+
latestLocalSessionId: string | null;
|
|
51
|
+
activeSessionId: string | null;
|
|
52
|
+
exportable: boolean;
|
|
53
|
+
publicDir: string;
|
|
54
|
+
checks: Array<{
|
|
55
|
+
id: string;
|
|
56
|
+
status: 'pass' | 'warn' | 'fail';
|
|
57
|
+
message: string;
|
|
58
|
+
}>;
|
|
59
|
+
nextSteps: string[];
|
|
60
|
+
}
|
|
61
|
+
export declare function findLatestLocalAdmissionSessionId(repoRoot: string): string | null;
|
|
62
|
+
export declare function buildAdmissionDoctorSummary(options?: {
|
|
63
|
+
dir?: string;
|
|
64
|
+
}): AdmissionDoctorSummary;
|
|
65
|
+
export declare function exportAdmissionRecordForCli(options?: AdmissionExportOptions): AdmissionExportSummary;
|
|
66
|
+
export declare function admissionCommand(program: Command): void;
|
|
67
|
+
//# sourceMappingURL=admission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../src/commands/admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAClE,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AA0BD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoBjF;AA+DD,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,sBAAsB,CAmDlG;AAoBD,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,sBAA2B,GAAG,sBAAsB,CAWxG;AA4DD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkFvD"}
|