oceanbus 0.9.1 → 0.10.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/agent/identity.d.ts +4 -0
- package/dist/agent/identity.d.ts.map +1 -1
- package/dist/agent/identity.js +24 -1
- package/dist/agent/identity.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +34 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/start.d.ts +13 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +358 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/crypto/e2e.d.ts +23 -0
- package/dist/crypto/e2e.d.ts.map +1 -0
- package/dist/crypto/e2e.js +209 -0
- package/dist/crypto/e2e.js.map +1 -0
- package/dist/crypto/index.d.ts +2 -0
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/crypto/index.js +13 -1
- package/dist/crypto/index.js.map +1 -1
- package/dist/crypto/key-cache.d.ts +15 -0
- package/dist/crypto/key-cache.d.ts.map +1 -0
- package/dist/crypto/key-cache.js +108 -0
- package/dist/crypto/key-cache.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -14
- package/dist/index.js.map +1 -1
- package/dist/mailbox/cursor.d.ts +1 -0
- package/dist/mailbox/cursor.d.ts.map +1 -1
- package/dist/mailbox/cursor.js +3 -0
- package/dist/mailbox/cursor.js.map +1 -1
- package/dist/mailbox/sync.d.ts +1 -1
- package/dist/mailbox/sync.d.ts.map +1 -1
- package/dist/mailbox/sync.js.map +1 -1
- package/dist/types/agent.d.ts +2 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/e2e.d.ts +22 -0
- package/dist/types/e2e.d.ts.map +1 -0
- package/dist/types/e2e.js +3 -0
- package/dist/types/e2e.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/identity.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '../client/http-client';
|
|
2
2
|
import type { RegistrationData, OpenIDData, AgentState, ApiKeyData } from '../types/agent';
|
|
3
|
+
import type { X25519KeyPair } from '../types/e2e';
|
|
3
4
|
export declare class AgentIdentityManager {
|
|
4
5
|
private http;
|
|
5
6
|
private apiKey;
|
|
@@ -7,12 +8,15 @@ export declare class AgentIdentityManager {
|
|
|
7
8
|
private extraKeys;
|
|
8
9
|
private openidCache;
|
|
9
10
|
private persistedOpenId;
|
|
11
|
+
private encryptionKeyPair;
|
|
10
12
|
constructor(http: HttpClient, apiKey?: string, agentId?: string);
|
|
11
13
|
getApiKey(): string | null;
|
|
12
14
|
getAgentId(): string | null;
|
|
13
15
|
getCachedOpenId(): string | null;
|
|
14
16
|
setPersistedOpenId(openid: string): void;
|
|
15
17
|
getPersistedOpenId(): string | null;
|
|
18
|
+
getEncryptionKeyPair(): X25519KeyPair;
|
|
19
|
+
hasEncryptionKeyPair(): boolean;
|
|
16
20
|
updateCredential(apiKey: string, agentId?: string): void;
|
|
17
21
|
register(): Promise<RegistrationData>;
|
|
18
22
|
newOpenId(): Promise<OpenIDData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAuB;IAM1C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM/D,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,eAAe,IAAI,MAAM,GAAG,IAAI;IAOhC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAInC,oBAAoB,IAAI,aAAa;IAOrC,oBAAoB,IAAI,OAAO;IAI/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlD,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA+BrC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAgBhC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAOlC,+FAA+F;IACzF,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAM7B,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAQ7C,WAAW,IAAI,UAAU;IAgBzB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAe/C,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAepC;2EACuE;IACjE,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIjD;0DACsD;IAChD,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C;2EACuE;IACjE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,OAAO,CAAC,UAAU;CAKnB"}
|
package/dist/agent/identity.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AgentIdentityManager = void 0;
|
|
4
4
|
const errors_1 = require("../client/errors");
|
|
5
5
|
const pow_1 = require("../crypto/pow");
|
|
6
|
+
const e2e_1 = require("../crypto/e2e");
|
|
6
7
|
class AgentIdentityManager {
|
|
7
8
|
http;
|
|
8
9
|
apiKey;
|
|
@@ -14,6 +15,7 @@ class AgentIdentityManager {
|
|
|
14
15
|
// because newOpenId() generates a NEW OpenID each call (anti-tracking nonce).
|
|
15
16
|
// Service agents need a stable address so others can reach them.
|
|
16
17
|
persistedOpenId = null;
|
|
18
|
+
encryptionKeyPair = null;
|
|
17
19
|
constructor(http, apiKey, agentId) {
|
|
18
20
|
this.http = http;
|
|
19
21
|
this.apiKey = apiKey || null;
|
|
@@ -37,6 +39,15 @@ class AgentIdentityManager {
|
|
|
37
39
|
getPersistedOpenId() {
|
|
38
40
|
return this.persistedOpenId;
|
|
39
41
|
}
|
|
42
|
+
getEncryptionKeyPair() {
|
|
43
|
+
if (!this.encryptionKeyPair) {
|
|
44
|
+
this.encryptionKeyPair = (0, e2e_1.generateEncryptionKeypair)();
|
|
45
|
+
}
|
|
46
|
+
return this.encryptionKeyPair;
|
|
47
|
+
}
|
|
48
|
+
hasEncryptionKeyPair() {
|
|
49
|
+
return this.encryptionKeyPair !== null;
|
|
50
|
+
}
|
|
40
51
|
updateCredential(apiKey, agentId) {
|
|
41
52
|
this.apiKey = apiKey;
|
|
42
53
|
if (agentId)
|
|
@@ -109,12 +120,16 @@ class AgentIdentityManager {
|
|
|
109
120
|
if (!this.agentId || !this.apiKey) {
|
|
110
121
|
throw new errors_1.OceanBusError('Agent identity not initialized');
|
|
111
122
|
}
|
|
112
|
-
|
|
123
|
+
const state = {
|
|
113
124
|
agent_id: this.agentId,
|
|
114
125
|
api_key: this.apiKey,
|
|
115
126
|
openid: this.persistedOpenId || this.openidCache || undefined,
|
|
116
127
|
extra_keys: this.extraKeys,
|
|
117
128
|
};
|
|
129
|
+
if (this.encryptionKeyPair) {
|
|
130
|
+
state.encryption_key = (0, e2e_1.serializeKeyPair)(this.encryptionKeyPair);
|
|
131
|
+
}
|
|
132
|
+
return state;
|
|
118
133
|
}
|
|
119
134
|
loadFromPersistedState(state) {
|
|
120
135
|
this.agentId = state.agent_id;
|
|
@@ -122,6 +137,14 @@ class AgentIdentityManager {
|
|
|
122
137
|
this.extraKeys = state.extra_keys || [];
|
|
123
138
|
this.openidCache = state.openid || null;
|
|
124
139
|
this.persistedOpenId = state.openid || null;
|
|
140
|
+
if (state.encryption_key) {
|
|
141
|
+
try {
|
|
142
|
+
this.encryptionKeyPair = (0, e2e_1.deserializeKeyPair)(state.encryption_key);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
this.encryptionKeyPair = null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
125
148
|
}
|
|
126
149
|
trackExtraKey(key) {
|
|
127
150
|
this.extraKeys.push(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":";;;AAEA,6CAAiD;AACjD,uCAAgD;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,eAAO,MAAM,WAAW,EAAE,aA8BzB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initCommand = void 0;
|
|
4
|
+
const index_1 = require("../../index");
|
|
5
|
+
exports.initCommand = {
|
|
6
|
+
command: 'init',
|
|
7
|
+
describe: 'Initialize OceanBus identity for this machine',
|
|
8
|
+
handler: async () => {
|
|
9
|
+
try {
|
|
10
|
+
const ob = await (0, index_1.createOceanBus)();
|
|
11
|
+
const data = await ob.register();
|
|
12
|
+
const addr = await ob.getAddress();
|
|
13
|
+
console.log('\n' + '═'.repeat(48));
|
|
14
|
+
console.log(' ✅ OceanBus 身份已创建');
|
|
15
|
+
console.log('═'.repeat(48));
|
|
16
|
+
console.log();
|
|
17
|
+
console.log(` OB 地址: ${addr}`);
|
|
18
|
+
console.log();
|
|
19
|
+
console.log(' 下一步:');
|
|
20
|
+
console.log(` 1. 打开 OceanBus Console H5`);
|
|
21
|
+
console.log(` 2. 点击「🔗 绑定新 Agent」`);
|
|
22
|
+
console.log(` 3. 在 Agent 终端运行配对命令`);
|
|
23
|
+
console.log(` 4. 或运行: npx oceanbus start`);
|
|
24
|
+
console.log();
|
|
25
|
+
// Also output machine-readable result for CC parsing
|
|
26
|
+
process.stderr.write(JSON.stringify({ action: 'init-done', openid: addr }) + '\n');
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
console.error('初始化失败:', err.message);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;;AACA,uCAA6C;AAEhC,QAAA,WAAW,GAAkB;IACxC,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,+CAA+C;IACzD,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAA,sBAAc,GAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YAEjC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;YAEnC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,qDAAqD;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* oceanbus start — Auto-detect CC mode, announce window, listen + heartbeat.
|
|
3
|
+
*
|
|
4
|
+
* CC mode (auto-detected via CLAUDE_CODE_SESSION_ID or non-TTY stdout):
|
|
5
|
+
* stdout → Monitor JSON (入站消息)
|
|
6
|
+
* stdin ← CC AI reply JSON (出站消息)
|
|
7
|
+
*
|
|
8
|
+
* Terminal mode:
|
|
9
|
+
* console.log text output
|
|
10
|
+
*/
|
|
11
|
+
import type { CommandModule } from 'yargs';
|
|
12
|
+
export declare const startCommand: CommandModule;
|
|
13
|
+
//# sourceMappingURL=start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA2D3C,eAAO,MAAM,YAAY,EAAE,aA2P1B,CAAC"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.startCommand = void 0;
|
|
37
|
+
const index_1 = require("../../index");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
// ── Config paths ──────────────────────────────────────────────
|
|
42
|
+
const OCEANBUS_DIR = path.join(os.homedir(), '.oceanbus');
|
|
43
|
+
const CREDS_FILE = path.join(OCEANBUS_DIR, 'credentials.json');
|
|
44
|
+
const CONSOLE_DIR = path.join(os.homedir(), '.oceanbus-console');
|
|
45
|
+
const PEERS_FILE = path.join(CONSOLE_DIR, 'peers.json');
|
|
46
|
+
// ── Helpers ───────────────────────────────────────────────────
|
|
47
|
+
function loadJSON(file) {
|
|
48
|
+
try {
|
|
49
|
+
return fs.existsSync(file) ? JSON.parse(fs.readFileSync(file, 'utf-8')) : null;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// ── CC detection ──────────────────────────────────────────────
|
|
56
|
+
function isCC() {
|
|
57
|
+
if (process.env.CLAUDE_CODE_SESSION_ID)
|
|
58
|
+
return true;
|
|
59
|
+
// stdin piped or redirected → likely running under Monitor
|
|
60
|
+
if (!process.stdin.isTTY)
|
|
61
|
+
return true;
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
// ── Window name ───────────────────────────────────────────────
|
|
65
|
+
function windowName() {
|
|
66
|
+
return process.env.OCEANBUS_WINDOW_NAME
|
|
67
|
+
|| path.basename(process.cwd())
|
|
68
|
+
|| 'unknown';
|
|
69
|
+
}
|
|
70
|
+
// ── Output ────────────────────────────────────────────────────
|
|
71
|
+
const ccMode = isCC();
|
|
72
|
+
function log(msg) { process.stderr.write(`[ob] ${msg}\n`); }
|
|
73
|
+
function emit(event) {
|
|
74
|
+
// CC mode: Monitor JSON to stdout. Terminal mode: pretty print to stderr.
|
|
75
|
+
if (ccMode) {
|
|
76
|
+
process.stdout.write(JSON.stringify(event) + '\n');
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const text = event.text || '';
|
|
80
|
+
const from = event.from || '?';
|
|
81
|
+
const win = event.window || '';
|
|
82
|
+
console.log(`[${win}] ${from}: ${text}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
let cloudBase = 'http://localhost:3000';
|
|
86
|
+
async function resolvePairingCode(code) {
|
|
87
|
+
try {
|
|
88
|
+
const res = await fetch(`${cloudBase}/api/pairing/${code}`);
|
|
89
|
+
if (!res.ok) {
|
|
90
|
+
log(`pairing code invalid: ${res.status}`);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const data = await res.json();
|
|
94
|
+
return data.cloud_openid || null;
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
log(`pairing resolve failed: ${e.message}`);
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// ── Main ──────────────────────────────────────────────────────
|
|
102
|
+
exports.startCommand = {
|
|
103
|
+
command: 'start',
|
|
104
|
+
describe: 'Start listening (auto CC mode, window announce, heartbeat)',
|
|
105
|
+
builder: (yargs) => yargs
|
|
106
|
+
.option('peer', { type: 'string', description: 'H5/Cloud OB openid to connect to' })
|
|
107
|
+
.option('code', { type: 'string', description: '6-char pairing code from H5' })
|
|
108
|
+
.option('gateway-url', { type: 'string', description: 'Cloud API base URL', default: 'http://localhost:3000' }),
|
|
109
|
+
handler: async (argv) => {
|
|
110
|
+
cloudBase = argv['gateway-url'] || process.env.OB_CONSOLE_URL || 'http://localhost:3000';
|
|
111
|
+
// 1. Load or create OB identity
|
|
112
|
+
let creds = loadJSON(CREDS_FILE);
|
|
113
|
+
if (!creds?.openid) {
|
|
114
|
+
log('No identity found. Run "oceanbus init" first.');
|
|
115
|
+
log('Attempting auto-init...');
|
|
116
|
+
try {
|
|
117
|
+
const ob = await (0, index_1.createOceanBus)();
|
|
118
|
+
const reg = await ob.register();
|
|
119
|
+
const openid = await ob.getAddress();
|
|
120
|
+
creds = { agent_id: reg.agent_id, api_key: reg.api_key, openid };
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
log(`Auto-init failed: ${e.message}`);
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// 2. Resolve peer
|
|
128
|
+
let peers = loadJSON(PEERS_FILE) || {};
|
|
129
|
+
let peerOpenId = argv.peer || '';
|
|
130
|
+
if (argv.code) {
|
|
131
|
+
const resolved = await resolvePairingCode(argv.code);
|
|
132
|
+
if (resolved) {
|
|
133
|
+
peerOpenId = resolved;
|
|
134
|
+
log(`pairing code resolved → ${peerOpenId.slice(0, 8)}...`);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
log('Failed to resolve pairing code. Continuing without peer.');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (!peerOpenId && Object.keys(peers).length > 0) {
|
|
141
|
+
// Use first known peer
|
|
142
|
+
peerOpenId = Object.values(peers)[0].openid;
|
|
143
|
+
log(`using known peer: ${peerOpenId.slice(0, 8)}...`);
|
|
144
|
+
}
|
|
145
|
+
if (peerOpenId && !peers[peerOpenId]) {
|
|
146
|
+
peers[peerOpenId] = { openid: peerOpenId, boundAt: new Date().toISOString() };
|
|
147
|
+
fs.mkdirSync(path.dirname(PEERS_FILE), { recursive: true });
|
|
148
|
+
fs.writeFileSync(PEERS_FILE, JSON.stringify(peers, null, 2));
|
|
149
|
+
}
|
|
150
|
+
// 3. Create OB — use same pattern as Cloud (memory store + explicit identity)
|
|
151
|
+
const ob = await (0, index_1.createOceanBus)({
|
|
152
|
+
keyStore: { type: 'memory' },
|
|
153
|
+
identity: { agent_id: creds.agent_id, api_key: creds.api_key, openid: creds.openid },
|
|
154
|
+
});
|
|
155
|
+
const myAddr = await ob.getAddress();
|
|
156
|
+
const win = windowName();
|
|
157
|
+
log(`ob: ${myAddr.slice(0, 8)}... window: ${win} mode: ${ccMode ? 'CC' : 'terminal'}`);
|
|
158
|
+
if (peerOpenId)
|
|
159
|
+
log(`peer: ${peerOpenId.slice(0, 8)}...`);
|
|
160
|
+
// 4. Announce window-open (HTTP primary, OB fallback)
|
|
161
|
+
const announceBody = JSON.stringify({
|
|
162
|
+
action: 'window-open',
|
|
163
|
+
window: win,
|
|
164
|
+
cwd: process.cwd(),
|
|
165
|
+
agent_name: win,
|
|
166
|
+
agent_openid: myAddr,
|
|
167
|
+
agent_type: 'cc-window',
|
|
168
|
+
});
|
|
169
|
+
if (peerOpenId) {
|
|
170
|
+
// Try HTTP first (reliable, immediate)
|
|
171
|
+
let announced = false;
|
|
172
|
+
try {
|
|
173
|
+
const res = await fetch(`${cloudBase}/api/agent/announce`, {
|
|
174
|
+
method: 'POST',
|
|
175
|
+
headers: { 'Content-Type': 'application/json' },
|
|
176
|
+
body: announceBody,
|
|
177
|
+
});
|
|
178
|
+
if (res.ok) {
|
|
179
|
+
announced = true;
|
|
180
|
+
log(`window-open (HTTP) → Cloud`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch { /* fallback to OB */ }
|
|
184
|
+
// OB fallback
|
|
185
|
+
if (!announced) {
|
|
186
|
+
try {
|
|
187
|
+
await ob.send(peerOpenId, announceBody);
|
|
188
|
+
log(`window-open (OB) → peer`);
|
|
189
|
+
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
log(`window-open failed: ${e.message}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// 5. Heartbeat (HTTP primary)
|
|
196
|
+
const heartbeat = peerOpenId ? setInterval(() => {
|
|
197
|
+
const beat = JSON.stringify({ action: 'heartbeat', window: win });
|
|
198
|
+
fetch(`${cloudBase}/api/agent/announce`, {
|
|
199
|
+
method: 'POST',
|
|
200
|
+
headers: { 'Content-Type': 'application/json' },
|
|
201
|
+
body: beat,
|
|
202
|
+
}).catch(() => {
|
|
203
|
+
// HTTP failed, try OB
|
|
204
|
+
ob.send(peerOpenId, beat).catch(() => { });
|
|
205
|
+
});
|
|
206
|
+
}, 15_000) : null;
|
|
207
|
+
// 6. Message dedup
|
|
208
|
+
const seen = new Map();
|
|
209
|
+
// 7. HTTP polling receiver (primary — OB listener may have issues)
|
|
210
|
+
const pollInterval = peerOpenId ? setInterval(async () => {
|
|
211
|
+
try {
|
|
212
|
+
const res = await fetch(`${cloudBase}/api/poll?window=${encodeURIComponent(win)}`);
|
|
213
|
+
const data = await res.json();
|
|
214
|
+
for (const msg of data.messages || []) {
|
|
215
|
+
const text = msg.text || '';
|
|
216
|
+
const dedupKey = `http:${text.slice(0, 50)}`;
|
|
217
|
+
if (seen.has(dedupKey))
|
|
218
|
+
continue;
|
|
219
|
+
seen.set(dedupKey, Date.now());
|
|
220
|
+
emit({
|
|
221
|
+
type: 'wechat_msg',
|
|
222
|
+
chat_id: 'h5',
|
|
223
|
+
sender: 'h5',
|
|
224
|
+
text,
|
|
225
|
+
window: msg.window || win,
|
|
226
|
+
time: msg.time || new Date().toLocaleTimeString('zh-CN', { hour12: false }),
|
|
227
|
+
reply_style: 'detailed',
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch { /* Cloud not reachable */ }
|
|
232
|
+
}, 2000) : null;
|
|
233
|
+
// 8. OB listener (fallback receive path — shares seen dedup)
|
|
234
|
+
ob.startListening(async (msg) => {
|
|
235
|
+
if (msg.from_openid === myAddr)
|
|
236
|
+
return;
|
|
237
|
+
let parsed;
|
|
238
|
+
try {
|
|
239
|
+
parsed = JSON.parse(msg.content || '{}');
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
parsed = { text: msg.content || '' };
|
|
243
|
+
}
|
|
244
|
+
const action = parsed.action || parsed.type || 'message';
|
|
245
|
+
const text = parsed.text || '';
|
|
246
|
+
const msgWindow = parsed.window || '';
|
|
247
|
+
// Dedup
|
|
248
|
+
const now = Date.now();
|
|
249
|
+
for (const [k, t] of seen) {
|
|
250
|
+
if (now - t > 5000)
|
|
251
|
+
seen.delete(k);
|
|
252
|
+
}
|
|
253
|
+
const dedupKey = `${msg.from_openid}:${text.slice(0, 50)}`;
|
|
254
|
+
if (seen.has(dedupKey))
|
|
255
|
+
return;
|
|
256
|
+
seen.set(dedupKey, now);
|
|
257
|
+
// Filter: only for us (if window specified, must match)
|
|
258
|
+
if (msgWindow && msgWindow !== win)
|
|
259
|
+
return;
|
|
260
|
+
const time = new Date(msg.created_at || now).toLocaleTimeString('zh-CN', { hour12: false });
|
|
261
|
+
switch (action) {
|
|
262
|
+
case 'bound':
|
|
263
|
+
log(`bound confirmed: ${parsed.agent || parsed.peer_name || '?'}`);
|
|
264
|
+
break;
|
|
265
|
+
case 'message':
|
|
266
|
+
case 'reply':
|
|
267
|
+
case 'command':
|
|
268
|
+
emit({
|
|
269
|
+
type: 'wechat_msg', // Compatible with legacy CC Monitor protocol
|
|
270
|
+
chat_id: parsed.from === 'h5' ? 'h5' : (msg.from_openid || '').slice(0, 10),
|
|
271
|
+
sender: parsed.from || 'agent',
|
|
272
|
+
text,
|
|
273
|
+
window: msgWindow || win,
|
|
274
|
+
time,
|
|
275
|
+
reply_style: 'detailed',
|
|
276
|
+
});
|
|
277
|
+
break;
|
|
278
|
+
default:
|
|
279
|
+
// Unknown action — still emit if has text
|
|
280
|
+
if (text) {
|
|
281
|
+
emit({
|
|
282
|
+
type: 'wechat_msg',
|
|
283
|
+
chat_id: (msg.from_openid || '').slice(0, 10),
|
|
284
|
+
sender: 'agent',
|
|
285
|
+
text,
|
|
286
|
+
window: win,
|
|
287
|
+
time,
|
|
288
|
+
reply_style: 'detailed',
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
// 8. Stdin listener (CC AI replies → OB)
|
|
294
|
+
if (ccMode && peerOpenId) {
|
|
295
|
+
let stdinBuf = '';
|
|
296
|
+
process.stdin.setEncoding('utf-8');
|
|
297
|
+
process.stdin.on('data', (chunk) => {
|
|
298
|
+
stdinBuf += chunk;
|
|
299
|
+
const lines = stdinBuf.split('\n');
|
|
300
|
+
stdinBuf = lines.pop() || '';
|
|
301
|
+
for (const line of lines) {
|
|
302
|
+
if (!line.trim())
|
|
303
|
+
continue;
|
|
304
|
+
try {
|
|
305
|
+
const req = JSON.parse(line);
|
|
306
|
+
if (req.type === 'reply' && req.text) {
|
|
307
|
+
ob.send(peerOpenId, JSON.stringify({
|
|
308
|
+
action: 'reply',
|
|
309
|
+
window: req.window || win,
|
|
310
|
+
text: req.text,
|
|
311
|
+
from: 'agent',
|
|
312
|
+
time: new Date().toLocaleTimeString('zh-CN', { hour12: false }),
|
|
313
|
+
})).catch(() => { });
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch { /* ignore malformed JSON */ }
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
process.stdin.resume();
|
|
320
|
+
}
|
|
321
|
+
// 9. Ready
|
|
322
|
+
log('ready — waiting for messages...');
|
|
323
|
+
if (ccMode)
|
|
324
|
+
emit({ type: 'ready', window: win });
|
|
325
|
+
// 10. Graceful shutdown
|
|
326
|
+
let shuttingDown = false;
|
|
327
|
+
async function shutdown() {
|
|
328
|
+
if (shuttingDown)
|
|
329
|
+
return;
|
|
330
|
+
shuttingDown = true;
|
|
331
|
+
log('shutting down...');
|
|
332
|
+
if (heartbeat)
|
|
333
|
+
clearInterval(heartbeat);
|
|
334
|
+
if (peerOpenId) {
|
|
335
|
+
try {
|
|
336
|
+
await fetch(`${cloudBase}/api/agent/announce`, {
|
|
337
|
+
method: 'POST',
|
|
338
|
+
headers: { 'Content-Type': 'application/json' },
|
|
339
|
+
body: JSON.stringify({ action: 'window-close', window: win }),
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
try {
|
|
344
|
+
await ob.send(peerOpenId, JSON.stringify({ action: 'window-close', window: win }));
|
|
345
|
+
}
|
|
346
|
+
catch { /* best effort */ }
|
|
347
|
+
}
|
|
348
|
+
await new Promise(r => setTimeout(r, 200));
|
|
349
|
+
}
|
|
350
|
+
process.exit(0);
|
|
351
|
+
}
|
|
352
|
+
process.on('SIGINT', shutdown);
|
|
353
|
+
process.on('SIGTERM', shutdown);
|
|
354
|
+
// Keep alive
|
|
355
|
+
await new Promise(() => { });
|
|
356
|
+
},
|
|
357
|
+
};
|
|
358
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAkBA,wBAAgB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,IAAI,CAwB1D"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.runCli = runCli;
|
|
|
7
7
|
const yargs_1 = __importDefault(require("yargs"));
|
|
8
8
|
const helpers_1 = require("yargs/helpers");
|
|
9
9
|
const register_1 = require("./commands/register");
|
|
10
|
+
const init_1 = require("./commands/init");
|
|
11
|
+
const start_1 = require("./commands/start");
|
|
10
12
|
const whoami_1 = require("./commands/whoami");
|
|
11
13
|
const openid_1 = require("./commands/openid");
|
|
12
14
|
const new_openid_1 = require("./commands/new-openid");
|
|
@@ -24,6 +26,8 @@ function runCli(argv = process.argv) {
|
|
|
24
26
|
.scriptName('oceanbus')
|
|
25
27
|
.usage('$0 <command> [options]')
|
|
26
28
|
.command(register_1.registerCommand)
|
|
29
|
+
.command(init_1.initCommand)
|
|
30
|
+
.command(start_1.startCommand)
|
|
27
31
|
.command(whoami_1.whoamiCommand)
|
|
28
32
|
.command(openid_1.openidCommand)
|
|
29
33
|
.command(new_openid_1.newOpenIdCommand)
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;AAkBA,wBAwBC;AA1CD,kDAA0B;AAC1B,2CAAwC;AACxC,kDAAsD;AACtD,0CAA8C;AAC9C,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,sDAAyD;AACzD,0CAA8C;AAC9C,8CAAkD;AAClD,4CAAgD;AAChD,8CAAkD;AAClD,gDAAmD;AACnD,sDAAyD;AACzD,wCAA4C;AAC5C,kDAAsD;AACtD,oDAAwD;AAExD,SAAgB,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IAClD,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAC;SACjB,UAAU,CAAC,UAAU,CAAC;SACtB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,0BAAe,CAAC;SACxB,OAAO,CAAC,kBAAW,CAAC;SACpB,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,6BAAgB,CAAC;SACzB,OAAO,CAAC,kBAAW,CAAC;SACpB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,gBAAU,CAAC;SACnB,OAAO,CAAC,0BAAe,CAAC;SACxB,OAAO,CAAC,4BAAgB,CAAC;SACzB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,uBAAa,CAAC;SACtB,OAAO,CAAC,6BAAgB,CAAC;SACzB,aAAa,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAC5C,IAAI,EAAE;SACN,OAAO,EAAE;SACT,MAAM,EAAE;SACR,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,cA4CtB,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAmB;IACtC,OAAO,EAAE,mCAAmC;IAE5C,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS,EAAE,sDAAsD;KAC5E;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;SACd;KACF;IAED,OAAO,EAAE;QACP,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,GAAG;QACpB,iBAAiB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAmB;IACtC,OAAO,EAAE,mCAAmC;IAE5C,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS,EAAE,sDAAsD;KAC5E;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;SACd;KACF;IAED,OAAO,EAAE;QACP,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,GAAG;QACpB,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,SAAS;KAC1B;IAED,EAAE,EAAE;QACF,mDAAmD;QACnD,8DAA8D;QAC9D,6DAA6D;QAC7D,sEAAsE;QACtE,SAAS,EAAE;YACT,kFAAkF;SACnF;QACD,SAAS,EAAE,kFAAkF;QAC7F,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,KAAK;QACvB,qBAAqB,EAAE,IAAI;QAC3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,uCAAuC;KAC5E;IAED,WAAW,EAAE;QACX,OAAO,EAAE,KAAK;KACf;CAEF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { X25519KeyPair, PersistedEncryptionKey, DecryptResult } from '../types/e2e';
|
|
2
|
+
export declare function generateEncryptionKeypair(): X25519KeyPair;
|
|
3
|
+
export declare function serializePublicKey(pk: Uint8Array): string;
|
|
4
|
+
export declare function deserializePublicKey(s: string): Uint8Array;
|
|
5
|
+
export declare function serializeKeyPair(kp: X25519KeyPair): PersistedEncryptionKey;
|
|
6
|
+
export declare function deserializeKeyPair(p: PersistedEncryptionKey): X25519KeyPair;
|
|
7
|
+
export declare function deriveSharedSecret(ourPriv: Uint8Array, ourPub: Uint8Array, theirPub: Uint8Array): Uint8Array;
|
|
8
|
+
/**
|
|
9
|
+
* Encrypt plaintext for a recipient whose public key we have.
|
|
10
|
+
* Produces an EncryptedEnvelope JSON string.
|
|
11
|
+
*/
|
|
12
|
+
export declare function encrypt(plaintext: string, ourKP: X25519KeyPair, theirPub: Uint8Array): string;
|
|
13
|
+
/**
|
|
14
|
+
* Wrap plaintext in a key-advertisement envelope.
|
|
15
|
+
* Used when we don't have the recipient's public key yet (first message).
|
|
16
|
+
*/
|
|
17
|
+
export declare function wrapPlaintext(plaintext: string, ourKP: X25519KeyPair): string;
|
|
18
|
+
/**
|
|
19
|
+
* Try to decrypt/unwrap an envelope. Returns null if the content is
|
|
20
|
+
* not a recognized envelope (plaintext from old clients, etc.).
|
|
21
|
+
*/
|
|
22
|
+
export declare function tryDecrypt(raw: string, ourKP: X25519KeyPair): DecryptResult | null;
|
|
23
|
+
//# sourceMappingURL=e2e.d.ts.map
|