skills-console 0.4.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/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +130 -0
- package/dist/adapters/filesystem/agent-registry.d.ts +5 -0
- package/dist/adapters/filesystem/agent-registry.js +236 -0
- package/dist/adapters/filesystem/agent-registry.js.map +1 -0
- package/dist/adapters/filesystem/frontmatter.d.ts +2 -0
- package/dist/adapters/filesystem/frontmatter.js +73 -0
- package/dist/adapters/filesystem/frontmatter.js.map +1 -0
- package/dist/adapters/filesystem/skill-scanner.d.ts +8 -0
- package/dist/adapters/filesystem/skill-scanner.js +157 -0
- package/dist/adapters/filesystem/skill-scanner.js.map +1 -0
- package/dist/adapters/filesystem/skills-lock.d.ts +2 -0
- package/dist/adapters/filesystem/skills-lock.js +44 -0
- package/dist/adapters/filesystem/skills-lock.js.map +1 -0
- package/dist/adapters/skills-cli/command-builder.d.ts +7 -0
- package/dist/adapters/skills-cli/command-builder.js +144 -0
- package/dist/adapters/skills-cli/command-builder.js.map +1 -0
- package/dist/adapters/skills-cli/executor.d.ts +20 -0
- package/dist/adapters/skills-cli/executor.js +51 -0
- package/dist/adapters/skills-cli/executor.js.map +1 -0
- package/dist/adapters/skills-cli/source-parser.d.ts +3 -0
- package/dist/adapters/skills-cli/source-parser.js +38 -0
- package/dist/adapters/skills-cli/source-parser.js.map +1 -0
- package/dist/adapters/skills-cli/types.d.ts +56 -0
- package/dist/adapters/skills-cli/types.js +2 -0
- package/dist/adapters/skills-cli/types.js.map +1 -0
- package/dist/application/backup-manager.d.ts +7 -0
- package/dist/application/backup-manager.js +164 -0
- package/dist/application/backup-manager.js.map +1 -0
- package/dist/application/build-inventory.d.ts +5 -0
- package/dist/application/build-inventory.js +103 -0
- package/dist/application/build-inventory.js.map +1 -0
- package/dist/application/doctor-fixes.d.ts +21 -0
- package/dist/application/doctor-fixes.js +103 -0
- package/dist/application/doctor-fixes.js.map +1 -0
- package/dist/application/history-store.d.ts +5 -0
- package/dist/application/history-store.js +42 -0
- package/dist/application/history-store.js.map +1 -0
- package/dist/application/profile-apply.d.ts +22 -0
- package/dist/application/profile-apply.js +69 -0
- package/dist/application/profile-apply.js.map +1 -0
- package/dist/application/profile-diff.d.ts +3 -0
- package/dist/application/profile-diff.js +105 -0
- package/dist/application/profile-diff.js.map +1 -0
- package/dist/application/profile-store.d.ts +9 -0
- package/dist/application/profile-store.js +109 -0
- package/dist/application/profile-store.js.map +1 -0
- package/dist/application/restore-operation.d.ts +8 -0
- package/dist/application/restore-operation.js +27 -0
- package/dist/application/restore-operation.js.map +1 -0
- package/dist/application/skill-operations.d.ts +32 -0
- package/dist/application/skill-operations.js +129 -0
- package/dist/application/skill-operations.js.map +1 -0
- package/dist/cli-commands.d.ts +8 -0
- package/dist/cli-commands.js +111 -0
- package/dist/cli-commands.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/operations.d.ts +50 -0
- package/dist/domain/operations.js +25 -0
- package/dist/domain/operations.js.map +1 -0
- package/dist/domain/profile.d.ts +43 -0
- package/dist/domain/profile.js +2 -0
- package/dist/domain/profile.js.map +1 -0
- package/dist/domain/types.d.ts +98 -0
- package/dist/domain/types.js +2 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/platform/data-paths.d.ts +3 -0
- package/dist/platform/data-paths.js +17 -0
- package/dist/platform/data-paths.js.map +1 -0
- package/dist/platform/environment.d.ts +6 -0
- package/dist/platform/environment.js +71 -0
- package/dist/platform/environment.js.map +1 -0
- package/dist/platform/redaction.d.ts +1 -0
- package/dist/platform/redaction.js +7 -0
- package/dist/platform/redaction.js.map +1 -0
- package/dist/ui/App.d.ts +2 -0
- package/dist/ui/App.js +330 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/DoctorFixWizard.d.ts +12 -0
- package/dist/ui/DoctorFixWizard.js +58 -0
- package/dist/ui/DoctorFixWizard.js.map +1 -0
- package/dist/ui/OperationWizard.d.ts +19 -0
- package/dist/ui/OperationWizard.js +301 -0
- package/dist/ui/OperationWizard.js.map +1 -0
- package/dist/ui/ProfileWizard.d.ts +15 -0
- package/dist/ui/ProfileWizard.js +68 -0
- package/dist/ui/ProfileWizard.js.map +1 -0
- package/dist/ui/RestoreWizard.d.ts +12 -0
- package/dist/ui/RestoreWizard.js +42 -0
- package/dist/ui/RestoreWizard.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/docs/ARCHITECTURE.md +145 -0
- package/docs/OPERATIONS.md +200 -0
- package/docs/PROFILES.md +83 -0
- package/examples/skills-profile.json +21 -0
- package/package.json +71 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { OperationKind, SkillsCommandPlan } from '../adapters/skills-cli/types.js';
|
|
2
|
+
import type { LinkKind, Scope } from './types.js';
|
|
3
|
+
export interface BackupEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
skillName: string;
|
|
6
|
+
originalPath: string;
|
|
7
|
+
realPath: string;
|
|
8
|
+
backupRelativePath: string;
|
|
9
|
+
linkKind: LinkKind;
|
|
10
|
+
linkTarget: string | undefined;
|
|
11
|
+
scope: Scope;
|
|
12
|
+
}
|
|
13
|
+
export interface OperationSnapshot {
|
|
14
|
+
schemaVersion: 1;
|
|
15
|
+
id: string;
|
|
16
|
+
operationKind: Exclude<OperationKind, 'preview'>;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
restoredAt: string | undefined;
|
|
19
|
+
directory: string;
|
|
20
|
+
allowedRoots: string[];
|
|
21
|
+
entries: BackupEntry[];
|
|
22
|
+
createdPaths: string[];
|
|
23
|
+
}
|
|
24
|
+
export type OperationRecordStatus = 'running' | 'succeeded' | 'failed' | 'restored';
|
|
25
|
+
export interface OperationRecord {
|
|
26
|
+
schemaVersion: 1;
|
|
27
|
+
id: string;
|
|
28
|
+
kind: Exclude<OperationKind, 'preview'>;
|
|
29
|
+
status: OperationRecordStatus;
|
|
30
|
+
startedAt: string;
|
|
31
|
+
finishedAt: string | undefined;
|
|
32
|
+
command: string;
|
|
33
|
+
cwd: string;
|
|
34
|
+
skillNames: string[];
|
|
35
|
+
agentIds: string[];
|
|
36
|
+
scope: Scope | undefined;
|
|
37
|
+
snapshotId: string;
|
|
38
|
+
exitCode: number | undefined;
|
|
39
|
+
verificationStatus: 'verified' | 'failed' | 'indeterminate' | undefined;
|
|
40
|
+
verificationMessages: string[];
|
|
41
|
+
logs: string[];
|
|
42
|
+
error: string | undefined;
|
|
43
|
+
}
|
|
44
|
+
export interface RestoreResult {
|
|
45
|
+
snapshotId: string;
|
|
46
|
+
restoredEntries: number;
|
|
47
|
+
removedCreatedPaths: number;
|
|
48
|
+
fallbacks: string[];
|
|
49
|
+
}
|
|
50
|
+
export declare function operationRecordFromPlan(id: string, snapshotId: string, plan: SkillsCommandPlan): OperationRecord;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function operationRecordFromPlan(id, snapshotId, plan) {
|
|
2
|
+
if (plan.kind === 'preview') {
|
|
3
|
+
throw new Error('Preview commands cannot create operation records.');
|
|
4
|
+
}
|
|
5
|
+
return {
|
|
6
|
+
schemaVersion: 1,
|
|
7
|
+
id,
|
|
8
|
+
kind: plan.kind,
|
|
9
|
+
status: 'running',
|
|
10
|
+
startedAt: new Date().toISOString(),
|
|
11
|
+
finishedAt: undefined,
|
|
12
|
+
command: plan.displayCommand,
|
|
13
|
+
cwd: plan.cwd,
|
|
14
|
+
skillNames: plan.skillNames,
|
|
15
|
+
agentIds: plan.agentIds,
|
|
16
|
+
scope: plan.scope,
|
|
17
|
+
snapshotId,
|
|
18
|
+
exitCode: undefined,
|
|
19
|
+
verificationStatus: undefined,
|
|
20
|
+
verificationMessages: [],
|
|
21
|
+
logs: [],
|
|
22
|
+
error: undefined,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/domain/operations.ts"],"names":[],"mappings":"AAuDA,MAAM,UAAU,uBAAuB,CACrC,EAAU,EACV,UAAkB,EAClB,IAAuB;IAEvB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,EAAE;QACF,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,IAAI,CAAC,cAAc;QAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU;QACV,QAAQ,EAAE,SAAS;QACnB,kBAAkB,EAAE,SAAS;QAC7B,oBAAoB,EAAE,EAAE;QACxB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Scope, SkillInstallation } from './types.js';
|
|
2
|
+
export interface ProfilePolicy {
|
|
3
|
+
removeExtras: boolean;
|
|
4
|
+
manageUserScope: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ProfileSkill {
|
|
7
|
+
name: string;
|
|
8
|
+
source?: string;
|
|
9
|
+
agentIds: string[];
|
|
10
|
+
scope: Scope;
|
|
11
|
+
mode: 'symlink' | 'copy';
|
|
12
|
+
}
|
|
13
|
+
export interface SkillsProfile {
|
|
14
|
+
schemaVersion: 1;
|
|
15
|
+
name: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
policy: ProfilePolicy;
|
|
18
|
+
skills: ProfileSkill[];
|
|
19
|
+
}
|
|
20
|
+
export type ProfileDiffStatus = 'satisfied' | 'missing' | 'source-mismatch' | 'source-unknown' | 'extra';
|
|
21
|
+
export interface ProfileDiffEntry {
|
|
22
|
+
id: string;
|
|
23
|
+
status: ProfileDiffStatus;
|
|
24
|
+
skillName: string;
|
|
25
|
+
scope: Scope;
|
|
26
|
+
expected?: ProfileSkill;
|
|
27
|
+
actual: SkillInstallation[];
|
|
28
|
+
missingAgentIds: string[];
|
|
29
|
+
message: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ProfileDiffSummary {
|
|
32
|
+
satisfied: number;
|
|
33
|
+
missing: number;
|
|
34
|
+
sourceMismatch: number;
|
|
35
|
+
sourceUnknown: number;
|
|
36
|
+
extra: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ProfileDiff {
|
|
39
|
+
profile: SkillsProfile;
|
|
40
|
+
entries: ProfileDiffEntry[];
|
|
41
|
+
summary: ProfileDiffSummary;
|
|
42
|
+
hasChanges: boolean;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/domain/profile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export type Scope = 'user' | 'project';
|
|
2
|
+
export type RootKind = 'agent' | 'shared' | 'system' | 'plugin-cache';
|
|
3
|
+
export type LinkKind = 'directory' | 'symlink';
|
|
4
|
+
export type Severity = 'error' | 'warning' | 'info';
|
|
5
|
+
export interface EnvironmentInfo {
|
|
6
|
+
cwd: string;
|
|
7
|
+
projectRoot: string;
|
|
8
|
+
homeDir: string;
|
|
9
|
+
platform: NodeJS.Platform;
|
|
10
|
+
release: string;
|
|
11
|
+
isWsl: boolean;
|
|
12
|
+
nodeVersion: string;
|
|
13
|
+
npxAvailable: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SkillRoot {
|
|
16
|
+
id: string;
|
|
17
|
+
path: string;
|
|
18
|
+
scope: Scope;
|
|
19
|
+
kind: RootKind;
|
|
20
|
+
agentIds: string[];
|
|
21
|
+
exists: boolean;
|
|
22
|
+
readable: boolean;
|
|
23
|
+
writable: boolean;
|
|
24
|
+
mutable: boolean;
|
|
25
|
+
maxDepth: number;
|
|
26
|
+
excludedDirectoryNames: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface AgentHost {
|
|
29
|
+
id: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
detected: boolean;
|
|
32
|
+
detectionReasons: string[];
|
|
33
|
+
roots: SkillRoot[];
|
|
34
|
+
}
|
|
35
|
+
export interface Diagnostic {
|
|
36
|
+
id: string;
|
|
37
|
+
code: string;
|
|
38
|
+
severity: Severity;
|
|
39
|
+
message: string;
|
|
40
|
+
path: string | undefined;
|
|
41
|
+
skillName: string | undefined;
|
|
42
|
+
}
|
|
43
|
+
export interface SkillManifest {
|
|
44
|
+
name: string | undefined;
|
|
45
|
+
description: string | undefined;
|
|
46
|
+
license: string | undefined;
|
|
47
|
+
compatibility: string | undefined;
|
|
48
|
+
allowedTools: string | undefined;
|
|
49
|
+
metadata: Record<string, unknown>;
|
|
50
|
+
source: string | undefined;
|
|
51
|
+
valid: boolean;
|
|
52
|
+
errors: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface SkillInstallation {
|
|
55
|
+
id: string;
|
|
56
|
+
skillName: string;
|
|
57
|
+
directoryName: string;
|
|
58
|
+
description: string;
|
|
59
|
+
manifestPath: string;
|
|
60
|
+
path: string;
|
|
61
|
+
realPath: string;
|
|
62
|
+
scope: Scope;
|
|
63
|
+
rootKind: RootKind;
|
|
64
|
+
agentIds: string[];
|
|
65
|
+
linkKind: LinkKind;
|
|
66
|
+
mutable: boolean;
|
|
67
|
+
source: string | undefined;
|
|
68
|
+
modifiedAtMs: number;
|
|
69
|
+
isEffective: boolean;
|
|
70
|
+
diagnostics: Diagnostic[];
|
|
71
|
+
}
|
|
72
|
+
export interface SkillGroup {
|
|
73
|
+
name: string;
|
|
74
|
+
description: string;
|
|
75
|
+
installations: SkillInstallation[];
|
|
76
|
+
agentIds: string[];
|
|
77
|
+
scopes: Scope[];
|
|
78
|
+
errorCount: number;
|
|
79
|
+
warningCount: number;
|
|
80
|
+
}
|
|
81
|
+
export interface InventoryStats {
|
|
82
|
+
skillCount: number;
|
|
83
|
+
installationCount: number;
|
|
84
|
+
detectedAgentCount: number;
|
|
85
|
+
scannedRootCount: number;
|
|
86
|
+
errorCount: number;
|
|
87
|
+
warningCount: number;
|
|
88
|
+
}
|
|
89
|
+
export interface Inventory {
|
|
90
|
+
environment: EnvironmentInfo;
|
|
91
|
+
agents: AgentHost[];
|
|
92
|
+
roots: SkillRoot[];
|
|
93
|
+
installations: SkillInstallation[];
|
|
94
|
+
skills: SkillGroup[];
|
|
95
|
+
diagnostics: Diagnostic[];
|
|
96
|
+
stats: InventoryStats;
|
|
97
|
+
scannedAt: string;
|
|
98
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { join, resolve } from 'node:path';
|
|
2
|
+
export function resolveDataRoot(homeDir, override) {
|
|
3
|
+
if (override) {
|
|
4
|
+
return resolve(override);
|
|
5
|
+
}
|
|
6
|
+
const xdgDataHome = process.env.XDG_DATA_HOME;
|
|
7
|
+
return xdgDataHome
|
|
8
|
+
? resolve(xdgDataHome, 'skills-console')
|
|
9
|
+
: resolve(homeDir, '.local', 'share', 'skills-console');
|
|
10
|
+
}
|
|
11
|
+
export function historyDirectory(dataRoot) {
|
|
12
|
+
return join(dataRoot, 'history');
|
|
13
|
+
}
|
|
14
|
+
export function backupsDirectory(dataRoot) {
|
|
15
|
+
return join(dataRoot, 'backups');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-paths.js","sourceRoot":"","sources":["../../src/platform/data-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAExC,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,QAAiB;IAChE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC9C,OAAO,WAAW;QAChB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACxC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EnvironmentInfo } from '../domain/types.js';
|
|
2
|
+
export declare function executableExists(executable: string, pathValue?: string): Promise<boolean>;
|
|
3
|
+
export declare function detectEnvironment(options?: {
|
|
4
|
+
cwd?: string;
|
|
5
|
+
homeDir?: string;
|
|
6
|
+
}): Promise<EnvironmentInfo>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { access, readFile, stat } from 'node:fs/promises';
|
|
2
|
+
import { constants } from 'node:fs';
|
|
3
|
+
import { delimiter, dirname, join, parse, resolve } from 'node:path';
|
|
4
|
+
import { homedir, platform, release } from 'node:os';
|
|
5
|
+
async function pathExists(path) {
|
|
6
|
+
try {
|
|
7
|
+
await stat(path);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
async function findProjectRoot(cwd) {
|
|
15
|
+
let cursor = resolve(cwd);
|
|
16
|
+
const filesystemRoot = parse(cursor).root;
|
|
17
|
+
while (true) {
|
|
18
|
+
if (await pathExists(join(cursor, '.git'))) {
|
|
19
|
+
return cursor;
|
|
20
|
+
}
|
|
21
|
+
if (cursor === filesystemRoot) {
|
|
22
|
+
return resolve(cwd);
|
|
23
|
+
}
|
|
24
|
+
cursor = dirname(cursor);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function detectWsl(currentPlatform) {
|
|
28
|
+
if (currentPlatform !== 'linux') {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (process.env.WSL_DISTRO_NAME || process.env.WSL_INTEROP) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const version = await readFile('/proc/version', 'utf8');
|
|
36
|
+
return /microsoft|wsl/i.test(version);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export async function executableExists(executable, pathValue = process.env.PATH ?? '') {
|
|
43
|
+
const extensions = platform() === 'win32' ? ['', '.exe', '.cmd', '.bat'] : [''];
|
|
44
|
+
for (const segment of pathValue.split(delimiter).filter(Boolean)) {
|
|
45
|
+
for (const extension of extensions) {
|
|
46
|
+
try {
|
|
47
|
+
await access(join(segment, `${executable}${extension}`), constants.X_OK);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Continue searching the remaining PATH entries.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
export async function detectEnvironment(options = {}) {
|
|
58
|
+
const cwd = resolve(options.cwd ?? process.cwd());
|
|
59
|
+
const currentPlatform = platform();
|
|
60
|
+
return {
|
|
61
|
+
cwd,
|
|
62
|
+
projectRoot: await findProjectRoot(cwd),
|
|
63
|
+
homeDir: resolve(options.homeDir ?? homedir()),
|
|
64
|
+
platform: currentPlatform,
|
|
65
|
+
release: release(),
|
|
66
|
+
isWsl: await detectWsl(currentPlatform),
|
|
67
|
+
nodeVersion: process.version,
|
|
68
|
+
npxAvailable: await executableExists('npx'),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/platform/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function redactSensitiveText(value: string): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function redactSensitiveText(value) {
|
|
2
|
+
return value
|
|
3
|
+
.replace(/(https?:\/\/)([^/@\s]+)@/gi, '$1***@')
|
|
4
|
+
.replace(/([?&](?:token|access_token|auth|key)=)[^&\s]+/gi, '$1***')
|
|
5
|
+
.replace(/(ghp_|github_pat_|glpat-)[a-zA-Z0-9_-]+/g, '$1***');
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../src/platform/redaction.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK;SACT,OAAO,CAAC,4BAA4B,EAAE,QAAQ,CAAC;SAC/C,OAAO,CAAC,iDAAiD,EAAE,OAAO,CAAC;SACnE,OAAO,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/ui/App.d.ts
ADDED