@dp-pcs/ogp 0.3.3 → 0.4.2
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/README.md +275 -49
- package/dist/cli/completion.d.ts +5 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +148 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +207 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/expose.d.ts.map +1 -1
- package/dist/cli/expose.js +20 -13
- package/dist/cli/expose.js.map +1 -1
- package/dist/cli/federation.d.ts.map +1 -1
- package/dist/cli/federation.js +182 -6
- package/dist/cli/federation.js.map +1 -1
- package/dist/cli/setup.d.ts +19 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +507 -32
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli.js +348 -32
- package/dist/cli.js.map +1 -1
- package/dist/daemon/agent-comms.d.ts.map +1 -1
- package/dist/daemon/agent-comms.js +14 -9
- package/dist/daemon/agent-comms.js.map +1 -1
- package/dist/daemon/intent-registry.d.ts.map +1 -1
- package/dist/daemon/intent-registry.js +7 -4
- package/dist/daemon/intent-registry.js.map +1 -1
- package/dist/daemon/keypair.d.ts.map +1 -1
- package/dist/daemon/keypair.js +34 -13
- package/dist/daemon/keypair.js.map +1 -1
- package/dist/daemon/message-handler.d.ts.map +1 -1
- package/dist/daemon/message-handler.js +7 -0
- package/dist/daemon/message-handler.js.map +1 -1
- package/dist/daemon/notify.d.ts +19 -0
- package/dist/daemon/notify.d.ts.map +1 -1
- package/dist/daemon/notify.js +329 -73
- package/dist/daemon/notify.js.map +1 -1
- package/dist/daemon/openclaw-bridge.d.ts +34 -0
- package/dist/daemon/openclaw-bridge.d.ts.map +1 -0
- package/dist/daemon/openclaw-bridge.js +261 -0
- package/dist/daemon/openclaw-bridge.js.map +1 -0
- package/dist/daemon/peers.d.ts +8 -0
- package/dist/daemon/peers.d.ts.map +1 -1
- package/dist/daemon/peers.js +48 -14
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/projects.d.ts.map +1 -1
- package/dist/daemon/projects.js +7 -4
- package/dist/daemon/projects.js.map +1 -1
- package/dist/daemon/server.d.ts +16 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +147 -46
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/config.d.ts +52 -1
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +18 -11
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/framework-detection.d.ts +31 -0
- package/dist/shared/framework-detection.d.ts.map +1 -0
- package/dist/shared/framework-detection.js +91 -0
- package/dist/shared/framework-detection.js.map +1 -0
- package/dist/shared/help.d.ts +5 -0
- package/dist/shared/help.d.ts.map +1 -0
- package/dist/shared/help.js +280 -0
- package/dist/shared/help.js.map +1 -0
- package/dist/shared/meta-config.d.ts +44 -0
- package/dist/shared/meta-config.d.ts.map +1 -0
- package/dist/shared/meta-config.js +89 -0
- package/dist/shared/meta-config.js.map +1 -0
- package/dist/shared/migration.d.ts +57 -0
- package/dist/shared/migration.d.ts.map +1 -0
- package/dist/shared/migration.js +255 -0
- package/dist/shared/migration.js.map +1 -0
- package/docs/CLI-REFERENCE.md +1360 -0
- package/docs/GETTING-STARTED.md +942 -0
- package/docs/MIGRATION.md +202 -0
- package/docs/MULTI-FRAMEWORK-DEMO.md +352 -0
- package/docs/MULTI-FRAMEWORK-DESIGN.md +378 -0
- package/docs/MULTI-FRAMEWORK-IMPL.md +197 -0
- package/docs/case-studies/CRASH_RESOLUTION_20260407.md +190 -0
- package/docs/case-studies/OpenClaw_Hermes_Status_Report_20260407.md +142 -0
- package/docs/case-studies/OpenClaw_Stability_Fix_Summary.md +209 -0
- package/docs/case-studies/README.md +40 -0
- package/docs/case-studies/crash_observations.md +250 -0
- package/docs/federation-flow.md +21 -31
- package/docs/hermes-implementation-checklist.md +4 -0
- package/docs/rendezvous.md +13 -14
- package/package.json +9 -3
- package/scripts/completion.bash +123 -0
- package/scripts/completion.zsh +372 -0
- package/scripts/test-migration-execute.js +74 -0
- package/scripts/test-migration.js +42 -0
- package/skills/ogp/SKILL.md +197 -64
- package/skills/ogp-agent-comms/SKILL.md +107 -41
- package/skills/ogp-expose/SKILL.md +84 -21
- package/skills/ogp-project/SKILL.md +66 -58
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Detect the user's shell
|
|
9
|
+
*/
|
|
10
|
+
function detectShell() {
|
|
11
|
+
const shell = process.env.SHELL || '';
|
|
12
|
+
if (shell.includes('bash')) {
|
|
13
|
+
return 'bash';
|
|
14
|
+
}
|
|
15
|
+
else if (shell.includes('zsh')) {
|
|
16
|
+
return 'zsh';
|
|
17
|
+
}
|
|
18
|
+
return 'unknown';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Install bash completion script
|
|
22
|
+
*/
|
|
23
|
+
function installBashCompletion() {
|
|
24
|
+
const homeDir = os.homedir();
|
|
25
|
+
const ogpDir = path.join(homeDir, '.ogp');
|
|
26
|
+
const completionScriptSrc = path.resolve(__dirname, '../../scripts/completion.bash');
|
|
27
|
+
const completionScriptDest = path.join(ogpDir, 'completion.bash');
|
|
28
|
+
const bashrcPath = path.join(homeDir, '.bashrc');
|
|
29
|
+
const bashProfilePath = path.join(homeDir, '.bash_profile');
|
|
30
|
+
if (!fs.existsSync(completionScriptSrc)) {
|
|
31
|
+
console.error(`Error: Completion script not found at ${completionScriptSrc}`);
|
|
32
|
+
console.error('This may be a packaging issue. Please report this bug.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Ensure ~/.ogp directory exists
|
|
36
|
+
if (!fs.existsSync(ogpDir)) {
|
|
37
|
+
fs.mkdirSync(ogpDir, { recursive: true });
|
|
38
|
+
}
|
|
39
|
+
// Copy completion script
|
|
40
|
+
fs.copyFileSync(completionScriptSrc, completionScriptDest);
|
|
41
|
+
console.log(`✓ Copied completion script to ${completionScriptDest}`);
|
|
42
|
+
// Add source line to appropriate rc file
|
|
43
|
+
const sourceLine = `\n# OGP completion\n[ -f "${completionScriptDest}" ] && source "${completionScriptDest}"\n`;
|
|
44
|
+
// Check if we should use .bashrc or .bash_profile
|
|
45
|
+
let rcPath = bashrcPath;
|
|
46
|
+
if (!fs.existsSync(bashrcPath) && fs.existsSync(bashProfilePath)) {
|
|
47
|
+
rcPath = bashProfilePath;
|
|
48
|
+
}
|
|
49
|
+
// Check if already sourced
|
|
50
|
+
let rcContent = '';
|
|
51
|
+
if (fs.existsSync(rcPath)) {
|
|
52
|
+
rcContent = fs.readFileSync(rcPath, 'utf-8');
|
|
53
|
+
}
|
|
54
|
+
if (rcContent.includes(completionScriptDest)) {
|
|
55
|
+
console.log(`✓ Completion already configured in ${rcPath}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
fs.appendFileSync(rcPath, sourceLine);
|
|
59
|
+
console.log(`✓ Added source line to ${rcPath}`);
|
|
60
|
+
}
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log('Installation complete!');
|
|
63
|
+
console.log('');
|
|
64
|
+
console.log('To activate completion in your current shell, run:');
|
|
65
|
+
console.log(` source ${completionScriptDest}`);
|
|
66
|
+
console.log('');
|
|
67
|
+
console.log('Or start a new shell session.');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Install zsh completion script
|
|
71
|
+
*/
|
|
72
|
+
function installZshCompletion() {
|
|
73
|
+
const homeDir = os.homedir();
|
|
74
|
+
const zshCompletionDir = path.join(homeDir, '.zsh', 'completion');
|
|
75
|
+
const completionScriptSrc = path.resolve(__dirname, '../../scripts/completion.zsh');
|
|
76
|
+
const completionScriptDest = path.join(zshCompletionDir, '_ogp');
|
|
77
|
+
const zshrcPath = path.join(homeDir, '.zshrc');
|
|
78
|
+
if (!fs.existsSync(completionScriptSrc)) {
|
|
79
|
+
console.error(`Error: Completion script not found at ${completionScriptSrc}`);
|
|
80
|
+
console.error('This may be a packaging issue. Please report this bug.');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
// Create zsh completion directory if it doesn't exist
|
|
84
|
+
if (!fs.existsSync(zshCompletionDir)) {
|
|
85
|
+
fs.mkdirSync(zshCompletionDir, { recursive: true });
|
|
86
|
+
console.log(`✓ Created ${zshCompletionDir}`);
|
|
87
|
+
}
|
|
88
|
+
// Copy completion script
|
|
89
|
+
fs.copyFileSync(completionScriptSrc, completionScriptDest);
|
|
90
|
+
console.log(`✓ Copied zsh completion script to ${completionScriptDest}`);
|
|
91
|
+
// Add fpath and compinit to zshrc if needed
|
|
92
|
+
let zshrcContent = '';
|
|
93
|
+
if (fs.existsSync(zshrcPath)) {
|
|
94
|
+
zshrcContent = fs.readFileSync(zshrcPath, 'utf-8');
|
|
95
|
+
}
|
|
96
|
+
// Check if fpath already includes our completion directory
|
|
97
|
+
const needsFpath = !zshrcContent.includes('.zsh/completion');
|
|
98
|
+
const needsCompinit = !zshrcContent.includes('compinit');
|
|
99
|
+
if (needsFpath || needsCompinit) {
|
|
100
|
+
// Be smart about what to add
|
|
101
|
+
let addCommand = '\n# OGP completion\n';
|
|
102
|
+
if (needsFpath) {
|
|
103
|
+
addCommand += 'fpath=(~/.zsh/completion $fpath)\n';
|
|
104
|
+
}
|
|
105
|
+
if (needsCompinit) {
|
|
106
|
+
addCommand += 'autoload -Uz compinit && compinit\n';
|
|
107
|
+
}
|
|
108
|
+
if (fs.existsSync(zshrcPath)) {
|
|
109
|
+
fs.appendFileSync(zshrcPath, addCommand);
|
|
110
|
+
console.log(`✓ Updated ${zshrcPath} with completion setup`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
fs.writeFileSync(zshrcPath, addCommand);
|
|
114
|
+
console.log(`✓ Created ${zshrcPath} with completion setup`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(`✓ Completion setup already exists in ${zshrcPath}`);
|
|
119
|
+
}
|
|
120
|
+
console.log('');
|
|
121
|
+
console.log('Installation complete!');
|
|
122
|
+
console.log('');
|
|
123
|
+
console.log('To activate completion in your current shell, run:');
|
|
124
|
+
console.log(' source ~/.zshrc');
|
|
125
|
+
console.log('');
|
|
126
|
+
console.log('Or start a new shell session.');
|
|
127
|
+
console.log('Note: You may need to run "rm ~/.zcompdump && compinit" to rebuild completion cache');
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Install completion for current shell
|
|
131
|
+
*/
|
|
132
|
+
export async function installCompletion() {
|
|
133
|
+
const shell = detectShell();
|
|
134
|
+
if (shell === 'unknown') {
|
|
135
|
+
console.error('Error: Could not detect shell. Currently only bash and zsh are supported.');
|
|
136
|
+
console.error(`Your SHELL environment variable is: ${process.env.SHELL || '(not set)'}`);
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
console.log(`Detected shell: ${shell}`);
|
|
140
|
+
console.log('');
|
|
141
|
+
if (shell === 'bash') {
|
|
142
|
+
installBashCompletion();
|
|
143
|
+
}
|
|
144
|
+
else if (shell === 'zsh') {
|
|
145
|
+
installZshCompletion();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/cli/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgMpC,eAAO,MAAM,aAAa,SAC0B,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { loadMetaConfig, saveMetaConfig } from '../shared/meta-config.js';
|
|
3
|
+
import { detectFrameworks } from '../shared/framework-detection.js';
|
|
4
|
+
/**
|
|
5
|
+
* Show all configured frameworks and default
|
|
6
|
+
*/
|
|
7
|
+
function showConfig() {
|
|
8
|
+
const meta = loadMetaConfig();
|
|
9
|
+
const detected = detectFrameworks();
|
|
10
|
+
console.log('\nOGP Configuration');
|
|
11
|
+
console.log('━'.repeat(44));
|
|
12
|
+
console.log('');
|
|
13
|
+
// Default framework
|
|
14
|
+
if (meta.default) {
|
|
15
|
+
console.log(`Default framework: ${meta.default}`);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.log('Default framework: (none)');
|
|
19
|
+
}
|
|
20
|
+
console.log('');
|
|
21
|
+
// Enabled frameworks
|
|
22
|
+
const enabledFrameworks = meta.frameworks.filter(f => f.enabled);
|
|
23
|
+
if (enabledFrameworks.length > 0) {
|
|
24
|
+
console.log('Enabled frameworks:');
|
|
25
|
+
enabledFrameworks.forEach(f => {
|
|
26
|
+
const port = f.daemonPort ? `:${f.daemonPort}` : '';
|
|
27
|
+
console.log(` ${f.id.padEnd(12)} ${f.name.padEnd(10)} ${f.configDir.padEnd(20)} ${port}`);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log('Enabled frameworks: (none)');
|
|
32
|
+
}
|
|
33
|
+
console.log('');
|
|
34
|
+
// Aliases
|
|
35
|
+
if (meta.aliases && Object.keys(meta.aliases).length > 0) {
|
|
36
|
+
console.log('Aliases:');
|
|
37
|
+
Object.entries(meta.aliases).forEach(([alias, target]) => {
|
|
38
|
+
console.log(` ${alias} → ${target}`);
|
|
39
|
+
});
|
|
40
|
+
console.log('');
|
|
41
|
+
}
|
|
42
|
+
// Meta config path
|
|
43
|
+
console.log(`Meta config: ~/.ogp-meta/config.json`);
|
|
44
|
+
console.log('');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set default framework
|
|
48
|
+
*/
|
|
49
|
+
function setDefault(frameworkId) {
|
|
50
|
+
const meta = loadMetaConfig();
|
|
51
|
+
// Check if framework exists in meta config
|
|
52
|
+
const framework = meta.frameworks.find(f => f.id === frameworkId);
|
|
53
|
+
if (!framework) {
|
|
54
|
+
console.error(`Error: Framework '${frameworkId}' not found in configuration.`);
|
|
55
|
+
console.error(`Available frameworks: ${meta.frameworks.map(f => f.id).join(', ')}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
// Check if framework is enabled
|
|
59
|
+
if (!framework.enabled) {
|
|
60
|
+
console.error(`Error: Framework '${frameworkId}' is not enabled. Enable it first with 'ogp config enable ${frameworkId}'`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
meta.default = frameworkId;
|
|
64
|
+
saveMetaConfig(meta);
|
|
65
|
+
console.log(`✓ Set default framework to '${frameworkId}'`);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* List all frameworks (short format)
|
|
69
|
+
*/
|
|
70
|
+
function listFrameworks(quiet = false) {
|
|
71
|
+
const meta = loadMetaConfig();
|
|
72
|
+
if (quiet) {
|
|
73
|
+
// Just print IDs, one per line (for shell completion)
|
|
74
|
+
meta.frameworks.forEach(f => console.log(f.id));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Short format
|
|
78
|
+
if (meta.frameworks.length === 0) {
|
|
79
|
+
console.log('No frameworks configured.');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
console.log('\nConfigured frameworks:');
|
|
83
|
+
meta.frameworks.forEach(f => {
|
|
84
|
+
const status = f.enabled ? '✓' : '✗';
|
|
85
|
+
const defaultMark = meta.default === f.id ? ' (default)' : '';
|
|
86
|
+
console.log(` ${status} ${f.id} - ${f.name}${defaultMark}`);
|
|
87
|
+
});
|
|
88
|
+
console.log('');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Enable a framework
|
|
92
|
+
*/
|
|
93
|
+
function enableFramework(frameworkId) {
|
|
94
|
+
const meta = loadMetaConfig();
|
|
95
|
+
const framework = meta.frameworks.find(f => f.id === frameworkId);
|
|
96
|
+
if (!framework) {
|
|
97
|
+
console.error(`Error: Framework '${frameworkId}' not found in configuration.`);
|
|
98
|
+
console.error(`Available frameworks: ${meta.frameworks.map(f => f.id).join(', ')}`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
if (framework.enabled) {
|
|
102
|
+
console.log(`Framework '${frameworkId}' is already enabled.`);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
framework.enabled = true;
|
|
106
|
+
saveMetaConfig(meta);
|
|
107
|
+
console.log(`✓ Enabled framework '${frameworkId}'`);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Disable a framework
|
|
111
|
+
*/
|
|
112
|
+
function disableFramework(frameworkId) {
|
|
113
|
+
const meta = loadMetaConfig();
|
|
114
|
+
const framework = meta.frameworks.find(f => f.id === frameworkId);
|
|
115
|
+
if (!framework) {
|
|
116
|
+
console.error(`Error: Framework '${frameworkId}' not found in configuration.`);
|
|
117
|
+
console.error(`Available frameworks: ${meta.frameworks.map(f => f.id).join(', ')}`);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
if (!framework.enabled) {
|
|
121
|
+
console.log(`Framework '${frameworkId}' is already disabled.`);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Check if it's the default framework
|
|
125
|
+
if (meta.default === frameworkId) {
|
|
126
|
+
console.error(`Error: Cannot disable the default framework '${frameworkId}'.`);
|
|
127
|
+
console.error(`Set a different default first with 'ogp config set-default <framework>'`);
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
framework.enabled = false;
|
|
131
|
+
saveMetaConfig(meta);
|
|
132
|
+
console.log(`✓ Disabled framework '${frameworkId}'`);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Show all detected frameworks (detected vs enabled)
|
|
136
|
+
*/
|
|
137
|
+
function showFrameworks() {
|
|
138
|
+
const meta = loadMetaConfig();
|
|
139
|
+
const detected = detectFrameworks();
|
|
140
|
+
console.log('\nFramework Detection');
|
|
141
|
+
console.log('━'.repeat(44));
|
|
142
|
+
console.log('');
|
|
143
|
+
console.log('Detected frameworks:');
|
|
144
|
+
detected.forEach(d => {
|
|
145
|
+
const status = d.detected ? '✓ detected' : '✗ not detected';
|
|
146
|
+
const enabled = meta.frameworks.find(f => f.id === d.id)?.enabled ? ' (enabled)' : '';
|
|
147
|
+
console.log(` ${d.id.padEnd(12)} ${d.name.padEnd(12)} ${status}${enabled}`);
|
|
148
|
+
});
|
|
149
|
+
console.log('');
|
|
150
|
+
console.log('Enabled frameworks:');
|
|
151
|
+
const enabledFrameworks = meta.frameworks.filter(f => f.enabled);
|
|
152
|
+
if (enabledFrameworks.length > 0) {
|
|
153
|
+
enabledFrameworks.forEach(f => {
|
|
154
|
+
const detectedInfo = detected.find(d => d.id === f.id);
|
|
155
|
+
const detectedStatus = detectedInfo?.detected ? '✓' : '✗';
|
|
156
|
+
console.log(` ${detectedStatus} ${f.id.padEnd(12)} ${f.name}`);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
console.log(' (none)');
|
|
161
|
+
}
|
|
162
|
+
console.log('');
|
|
163
|
+
}
|
|
164
|
+
// Create the config command
|
|
165
|
+
export const configCommand = new Command('config')
|
|
166
|
+
.description('Manage OGP framework configuration');
|
|
167
|
+
configCommand
|
|
168
|
+
.command('show')
|
|
169
|
+
.description('Show all configured frameworks and default')
|
|
170
|
+
.action(() => {
|
|
171
|
+
showConfig();
|
|
172
|
+
});
|
|
173
|
+
configCommand
|
|
174
|
+
.command('set-default')
|
|
175
|
+
.description('Set default framework')
|
|
176
|
+
.argument('<framework>', 'Framework ID to set as default')
|
|
177
|
+
.action((framework) => {
|
|
178
|
+
setDefault(framework);
|
|
179
|
+
});
|
|
180
|
+
configCommand
|
|
181
|
+
.command('list')
|
|
182
|
+
.description('List all frameworks (short format)')
|
|
183
|
+
.option('-q, --quiet', 'Output framework IDs only (for completion)')
|
|
184
|
+
.action((options) => {
|
|
185
|
+
listFrameworks(options.quiet);
|
|
186
|
+
});
|
|
187
|
+
configCommand
|
|
188
|
+
.command('enable')
|
|
189
|
+
.description('Enable a framework')
|
|
190
|
+
.argument('<framework>', 'Framework ID to enable')
|
|
191
|
+
.action((framework) => {
|
|
192
|
+
enableFramework(framework);
|
|
193
|
+
});
|
|
194
|
+
configCommand
|
|
195
|
+
.command('disable')
|
|
196
|
+
.description('Disable a framework')
|
|
197
|
+
.argument('<framework>', 'Framework ID to disable')
|
|
198
|
+
.action((framework) => {
|
|
199
|
+
disableFramework(framework);
|
|
200
|
+
});
|
|
201
|
+
configCommand
|
|
202
|
+
.command('frameworks')
|
|
203
|
+
.description('Show all detected frameworks (detected vs enabled)')
|
|
204
|
+
.action(() => {
|
|
205
|
+
showFrameworks();
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/expose.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../src/cli/expose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../src/cli/expose.ts"],"names":[],"mappings":"AAaA,wBAAsB,MAAM,CAAC,MAAM,GAAE,aAAa,GAAG,OAAuB,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/G;AAED,wBAAgB,UAAU,IAAI,IAAI,CAiCjC"}
|
package/dist/cli/expose.js
CHANGED
|
@@ -2,8 +2,12 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { requireConfig, getConfigDir } from '../shared/config.js';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function getTunnelPidFile() {
|
|
6
|
+
return path.join(getConfigDir(), 'tunnel.pid');
|
|
7
|
+
}
|
|
8
|
+
function getTunnelLogFile() {
|
|
9
|
+
return path.join(getConfigDir(), 'tunnel.log');
|
|
10
|
+
}
|
|
7
11
|
export async function expose(method = 'cloudflared', background = false) {
|
|
8
12
|
const config = requireConfig();
|
|
9
13
|
console.log(`Exposing OGP daemon on port ${config.daemonPort}...`);
|
|
@@ -15,16 +19,17 @@ export async function expose(method = 'cloudflared', background = false) {
|
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
export function stopExpose() {
|
|
18
|
-
|
|
22
|
+
const tunnelPidFile = getTunnelPidFile();
|
|
23
|
+
if (!fs.existsSync(tunnelPidFile)) {
|
|
19
24
|
console.log('No tunnel is running');
|
|
20
25
|
return;
|
|
21
26
|
}
|
|
22
27
|
try {
|
|
23
|
-
const pidStr = fs.readFileSync(
|
|
28
|
+
const pidStr = fs.readFileSync(tunnelPidFile, 'utf-8').trim();
|
|
24
29
|
const pid = parseInt(pidStr, 10);
|
|
25
30
|
if (isNaN(pid)) {
|
|
26
31
|
console.error('Invalid PID in tunnel.pid file');
|
|
27
|
-
fs.unlinkSync(
|
|
32
|
+
fs.unlinkSync(tunnelPidFile);
|
|
28
33
|
return;
|
|
29
34
|
}
|
|
30
35
|
// Check if process is running
|
|
@@ -33,12 +38,12 @@ export function stopExpose() {
|
|
|
33
38
|
}
|
|
34
39
|
catch (error) {
|
|
35
40
|
console.log('Tunnel is not running (stale PID file)');
|
|
36
|
-
fs.unlinkSync(
|
|
41
|
+
fs.unlinkSync(tunnelPidFile);
|
|
37
42
|
return;
|
|
38
43
|
}
|
|
39
44
|
// Send SIGTERM
|
|
40
45
|
process.kill(pid, 'SIGTERM');
|
|
41
|
-
fs.unlinkSync(
|
|
46
|
+
fs.unlinkSync(tunnelPidFile);
|
|
42
47
|
console.log('Tunnel stopped');
|
|
43
48
|
}
|
|
44
49
|
catch (error) {
|
|
@@ -49,15 +54,16 @@ async function exposeCloudflared(port, background) {
|
|
|
49
54
|
console.log('Starting cloudflared tunnel...');
|
|
50
55
|
console.log('Install cloudflared: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/\n');
|
|
51
56
|
if (background) {
|
|
52
|
-
const
|
|
57
|
+
const tunnelLogFile = getTunnelLogFile();
|
|
58
|
+
const logStream = fs.openSync(tunnelLogFile, 'a');
|
|
53
59
|
const proc = spawn('cloudflared', ['tunnel', '--url', `http://localhost:${port}`], {
|
|
54
60
|
detached: true,
|
|
55
61
|
stdio: ['ignore', logStream, logStream]
|
|
56
62
|
});
|
|
57
63
|
proc.unref();
|
|
58
|
-
fs.writeFileSync(
|
|
64
|
+
fs.writeFileSync(getTunnelPidFile(), proc.pid.toString(), 'utf-8');
|
|
59
65
|
console.log(`Cloudflared tunnel started (PID: ${proc.pid})`);
|
|
60
|
-
console.log(`Logs: ${
|
|
66
|
+
console.log(`Logs: ${tunnelLogFile}`);
|
|
61
67
|
console.log('Run "ogp expose stop" to stop the tunnel');
|
|
62
68
|
}
|
|
63
69
|
else {
|
|
@@ -77,15 +83,16 @@ async function exposeNgrok(port, background) {
|
|
|
77
83
|
console.log('Starting ngrok tunnel...');
|
|
78
84
|
console.log('Install ngrok: https://ngrok.com/download\n');
|
|
79
85
|
if (background) {
|
|
80
|
-
const
|
|
86
|
+
const tunnelLogFile = getTunnelLogFile();
|
|
87
|
+
const logStream = fs.openSync(tunnelLogFile, 'a');
|
|
81
88
|
const proc = spawn('ngrok', ['http', port.toString()], {
|
|
82
89
|
detached: true,
|
|
83
90
|
stdio: ['ignore', logStream, logStream]
|
|
84
91
|
});
|
|
85
92
|
proc.unref();
|
|
86
|
-
fs.writeFileSync(
|
|
93
|
+
fs.writeFileSync(getTunnelPidFile(), proc.pid.toString(), 'utf-8');
|
|
87
94
|
console.log(`Ngrok tunnel started (PID: ${proc.pid})`);
|
|
88
|
-
console.log(`Logs: ${
|
|
95
|
+
console.log(`Logs: ${tunnelLogFile}`);
|
|
89
96
|
console.log('Run "ogp expose stop" to stop the tunnel');
|
|
90
97
|
}
|
|
91
98
|
else {
|
package/dist/cli/expose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expose.js","sourceRoot":"","sources":["../../src/cli/expose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,
|
|
1
|
+
{"version":3,"file":"expose.js","sourceRoot":"","sources":["../../src/cli/expose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"AAsDA,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuG5G;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4ItD;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8EzG;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HnG;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCpE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDpE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAwErB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DxE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,OAAO,CAAC,IAAI,CAAC,CA2Hf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CnF;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF"}
|