@hirey-ai/hirey 1.0.13

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.
Files changed (43) hide show
  1. package/README.md +85 -0
  2. package/dist/clients.d.ts +23 -0
  3. package/dist/clients.d.ts.map +1 -0
  4. package/dist/clients.js +47 -0
  5. package/dist/clients.js.map +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +92 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/routes/webhook.d.ts +6 -0
  11. package/dist/routes/webhook.d.ts.map +1 -0
  12. package/dist/routes/webhook.js +76 -0
  13. package/dist/routes/webhook.js.map +1 -0
  14. package/dist/services/agent-events.d.ts +3 -0
  15. package/dist/services/agent-events.d.ts.map +1 -0
  16. package/dist/services/agent-events.js +267 -0
  17. package/dist/services/agent-events.js.map +1 -0
  18. package/dist/state.d.ts +61 -0
  19. package/dist/state.d.ts.map +1 -0
  20. package/dist/state.js +128 -0
  21. package/dist/state.js.map +1 -0
  22. package/dist/tools/capabilities.d.ts +4 -0
  23. package/dist/tools/capabilities.d.ts.map +1 -0
  24. package/dist/tools/capabilities.js +93 -0
  25. package/dist/tools/capabilities.js.map +1 -0
  26. package/dist/tools/control.d.ts +8 -0
  27. package/dist/tools/control.d.ts.map +1 -0
  28. package/dist/tools/control.js +508 -0
  29. package/dist/tools/control.js.map +1 -0
  30. package/dist/types.d.ts +63 -0
  31. package/dist/types.d.ts.map +1 -0
  32. package/dist/types.js +10 -0
  33. package/dist/types.js.map +1 -0
  34. package/dist/utils/openclaw-config.d.ts +30 -0
  35. package/dist/utils/openclaw-config.d.ts.map +1 -0
  36. package/dist/utils/openclaw-config.js +162 -0
  37. package/dist/utils/openclaw-config.js.map +1 -0
  38. package/dist/utils/openclaw-hooks-payload.d.ts +18 -0
  39. package/dist/utils/openclaw-hooks-payload.d.ts.map +1 -0
  40. package/dist/utils/openclaw-hooks-payload.js +52 -0
  41. package/dist/utils/openclaw-hooks-payload.js.map +1 -0
  42. package/openclaw.plugin.json +83 -0
  43. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../src/services/agent-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export type HiIdentityState = {
2
+ agent_id: string;
3
+ installation_id: string;
4
+ display_name: string;
5
+ agent_kind: string;
6
+ client_id: string;
7
+ client_secret: string;
8
+ installation_subject: string;
9
+ issuer: string;
10
+ audience: string;
11
+ token_url: string;
12
+ jwks_url: string;
13
+ activated_at: string | null;
14
+ delivery_capabilities: Record<string, unknown> | null;
15
+ };
16
+ export type HiPlatformState = {
17
+ platform_base_url: string;
18
+ registry_base_url: string;
19
+ fetched_at: string;
20
+ };
21
+ export type HiInstallRuntimeState = {
22
+ host_kind: string | null;
23
+ webhook_path: string | null;
24
+ receiver_last_started_at: string | null;
25
+ receiver_last_error: string | null;
26
+ hooks_token: string | null;
27
+ hooks_path: string | null;
28
+ gateway_port: number | null;
29
+ };
30
+ export type HiRuntimeState = {
31
+ last_consumed_stream_seq: number;
32
+ last_claim_lease_id: string | null;
33
+ install: HiInstallRuntimeState;
34
+ updated_at: string | null;
35
+ };
36
+ export type HiPersistedState = {
37
+ profile: string;
38
+ platform: HiPlatformState | null;
39
+ identity: HiIdentityState | null;
40
+ runtime: HiRuntimeState;
41
+ };
42
+ export declare const DEFAULT_PROFILE = "openclaw-main";
43
+ export declare function resolveStateDir(profile: string): string;
44
+ export declare function resolveStateFile(stateDir: string, profile: string): string;
45
+ export declare function buildEmptyState(profile: string): HiPersistedState;
46
+ export declare function readState(stateDir: string, profile: string): Promise<HiPersistedState>;
47
+ export declare function writeState(stateDir: string, profile: string, state: HiPersistedState): Promise<void>;
48
+ export declare function updateState(stateDir: string, profile: string, updater: (current: HiPersistedState) => HiPersistedState): Promise<HiPersistedState>;
49
+ export declare function urlsHaveSameOrigin(a: string, b: string): boolean;
50
+ export type StaleIdentityQuarantine = {
51
+ backup_path: string;
52
+ reason: 'platform_base_url_mismatch';
53
+ previous_issuer: string;
54
+ previous_agent_id: string;
55
+ previous_installation_id: string;
56
+ };
57
+ export declare function quarantineStaleIdentityIfNeeded(stateDir: string, profile: string, state: HiPersistedState, currentPlatformBaseUrl: string): Promise<{
58
+ state: HiPersistedState;
59
+ quarantined: StaleIdentityQuarantine | null;
60
+ }>;
61
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/dist/state.js ADDED
@@ -0,0 +1,128 @@
1
+ // 持久化 hi identity + receiver runtime cursor 到 ~/.openclaw/hi-mcp/<profile>/<profile>.json。
2
+ // 跟 hirey-ai-mcp-server 的 state schema 完全兼容 —— OpenClaw 同台机器装过 hirey-ai-mcp-server bundle
3
+ // 之后切到 native plugin 时,能直接复用已有 identity,不需要重新 register。
4
+ import fs from 'node:fs/promises';
5
+ import os from 'node:os';
6
+ import path from 'node:path';
7
+ export const DEFAULT_PROFILE = 'openclaw-main';
8
+ export function resolveStateDir(profile) {
9
+ return path.join(os.homedir(), '.openclaw', 'hi-mcp', profile);
10
+ }
11
+ export function resolveStateFile(stateDir, profile) {
12
+ return path.join(stateDir, `${profile}.json`);
13
+ }
14
+ export function buildEmptyState(profile) {
15
+ return {
16
+ profile,
17
+ platform: null,
18
+ identity: null,
19
+ runtime: {
20
+ last_consumed_stream_seq: 0,
21
+ last_claim_lease_id: null,
22
+ install: {
23
+ host_kind: null,
24
+ webhook_path: null,
25
+ receiver_last_started_at: null,
26
+ receiver_last_error: null,
27
+ hooks_token: null,
28
+ hooks_path: null,
29
+ gateway_port: null,
30
+ },
31
+ updated_at: null,
32
+ },
33
+ };
34
+ }
35
+ export async function readState(stateDir, profile) {
36
+ const file = resolveStateFile(stateDir, profile);
37
+ try {
38
+ const raw = await fs.readFile(file, 'utf8');
39
+ const parsed = JSON.parse(raw);
40
+ return {
41
+ profile: typeof parsed.profile === 'string' && parsed.profile.trim() ? parsed.profile : profile,
42
+ platform: parsed.platform ?? null,
43
+ identity: parsed.identity ?? null,
44
+ runtime: {
45
+ last_consumed_stream_seq: Number(parsed.runtime?.last_consumed_stream_seq || 0),
46
+ last_claim_lease_id: parsed.runtime?.last_claim_lease_id ?? null,
47
+ install: {
48
+ host_kind: parsed.runtime?.install?.host_kind ?? null,
49
+ webhook_path: parsed.runtime?.install?.webhook_path ?? null,
50
+ receiver_last_started_at: parsed.runtime?.install?.receiver_last_started_at ?? null,
51
+ receiver_last_error: parsed.runtime?.install?.receiver_last_error ?? null,
52
+ hooks_token: parsed.runtime?.install?.hooks_token ?? null,
53
+ hooks_path: parsed.runtime?.install?.hooks_path ?? null,
54
+ gateway_port: parsed.runtime?.install?.gateway_port ?? null,
55
+ },
56
+ updated_at: parsed.runtime?.updated_at ?? null,
57
+ },
58
+ };
59
+ }
60
+ catch (err) {
61
+ if (err?.code === 'ENOENT')
62
+ return buildEmptyState(profile);
63
+ throw err;
64
+ }
65
+ }
66
+ export async function writeState(stateDir, profile, state) {
67
+ const file = resolveStateFile(stateDir, profile);
68
+ await fs.mkdir(path.dirname(file), { recursive: true });
69
+ await fs.writeFile(file, `${JSON.stringify(state, null, 2)}\n`, 'utf8');
70
+ }
71
+ export async function updateState(stateDir, profile, updater) {
72
+ const current = await readState(stateDir, profile);
73
+ const next = updater(current);
74
+ await writeState(stateDir, profile, next);
75
+ return next;
76
+ }
77
+ // 比较两 URL 的 origin(scheme + host + port),用来判断 identity 是不是当前 platform 颁的。
78
+ export function urlsHaveSameOrigin(a, b) {
79
+ if (!a || !b)
80
+ return false;
81
+ try {
82
+ const ua = new URL(a);
83
+ const ub = new URL(b);
84
+ return ua.protocol === ub.protocol && ua.host === ub.host;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ // 同台机器先后装过两套 channel(早期 hi.hireyapp.us / 现在 hi.hirey.ai)会让 state 里
91
+ // 的 identity 是另一个 platform 颁的,OAuth 必 401。这里检测 issuer mismatch 时把旧 state
92
+ // 文件 rename 成 .stale-<host>-<ts>.bak,返回干净 state,下一轮 install 自动 fresh register。
93
+ export async function quarantineStaleIdentityIfNeeded(stateDir, profile, state, currentPlatformBaseUrl) {
94
+ if (!state.identity)
95
+ return { state, quarantined: null };
96
+ const persistedIssuer = (state.identity.issuer || '').trim();
97
+ const currentBase = (currentPlatformBaseUrl || '').trim();
98
+ if (!persistedIssuer || !currentBase)
99
+ return { state, quarantined: null };
100
+ if (urlsHaveSameOrigin(persistedIssuer, currentBase))
101
+ return { state, quarantined: null };
102
+ const stateFile = resolveStateFile(stateDir, profile);
103
+ let envTag = '';
104
+ try {
105
+ envTag = new URL(persistedIssuer).host.replace(/[^a-zA-Z0-9._-]/g, '_');
106
+ }
107
+ catch { }
108
+ const ts = new Date().toISOString().replace(/[:.]/g, '-');
109
+ const backupPath = `${stateFile}.stale-${envTag || 'unknown'}-${ts}.bak`;
110
+ try {
111
+ await fs.rename(stateFile, backupPath);
112
+ }
113
+ catch (err) {
114
+ // ENOENT 容忍:state 文件已经被外部清掉了,但 in-memory state 仍 stale
115
+ if (err?.code !== 'ENOENT') {
116
+ // 不阻塞主流程,继续返回 fresh state
117
+ }
118
+ }
119
+ const quarantined = {
120
+ backup_path: backupPath,
121
+ reason: 'platform_base_url_mismatch',
122
+ previous_issuer: persistedIssuer,
123
+ previous_agent_id: state.identity.agent_id,
124
+ previous_installation_id: state.identity.installation_id,
125
+ };
126
+ return { state: buildEmptyState(state.profile), quarantined };
127
+ }
128
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PluginToolDefinition, HiOpenClawPluginConfig } from '../types.js';
2
+ export declare function buildAllCapabilityTools(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition[];
3
+ export declare function getCapabilityToolNames(): string[];
4
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/tools/capabilities.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAoB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AA0FlG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,EAAE,CAExG;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}
@@ -0,0 +1,93 @@
1
+ // 14 个 Hi 平台 capability tool 的 generic dispatcher。每个 capability 都通过 platform 的
2
+ // /v1/capabilities/<capability_id>/call 调用——平台那侧已经做完整的 input schema 校验、
3
+ // authorization、业务逻辑。plugin 这边只做 thin 转发。
4
+ //
5
+ // 列表跟 hi-platform 在 prod 提供的 capability 一一对应(curl https://hi.hirey.ai/v1/capabilities
6
+ // 可得 14 项)。如果未来 hi 平台加新 capability,bump plugin 1.0.x 加进列表,或者改成 startup-time
7
+ // 动态拉取。
8
+ import { buildAuthorizedClients } from '../clients.js';
9
+ import { resolveStateDir } from '../state.js';
10
+ // 跟 prod 平台 /v1/capabilities 输出对齐
11
+ const CAPABILITIES = [
12
+ { capability_id: 'hi.agent-listings', tool_name: 'agent_listings',
13
+ description: 'Manage Hirey AI listings — upsert (create or update with full canonical schema: listing_type_id from listing_taxonomy + canonical self/target roles + facts/requirements), update_status, get, list. Use this to publish what the owner is looking for or offering on Hi.' },
14
+ { capability_id: 'hi.matching-sessions', tool_name: 'matching_sessions',
15
+ description: 'Drive Hi match feed and search against an owner-published listing. Actions: match_feed (recommendation feed), search (sharper structured query when feed is sparse), contact_match (continue on a chosen match → creates pairing). Returns target_preview_text + compatibility_status per result.' },
16
+ { capability_id: 'hi.pairings', tool_name: 'pairings',
17
+ description: 'Pair-level continuation. Actions: create (start pairing from a match selection_key), timeline (canonical chat history + action cards + pending meeting actions), contact_target (send a message to the matched peer). Always read timeline before deciding the next pairing action.' },
18
+ { capability_id: 'hi.thread-meetings', tool_name: 'thread_meetings',
19
+ description: 'Meeting flow inside a pairing. Actions: start (open a meeting flow with flow_kind=start_now|need_slots|propose_slot, modality=zoom|phone), respond (accept_proposed_slot|share_availability|select_slot|approve|reject|decline depending on the action card primary_cta), get (read current state). Use propose_slot when the user has one exact future slot in mind, need_slots to exchange availability.' },
20
+ { capability_id: 'hi.conversations', tool_name: 'conversations',
21
+ description: 'Inspect agent.message.created envelopes and reply through a conversation thread. Used when a webhook delivers a message that needs a reply through the same thread rather than the pairing surface.' },
22
+ { capability_id: 'hi.listing-taxonomy', tool_name: 'listing_taxonomy',
23
+ description: 'Hi listing taxonomy lookup. Actions: list_types (canonical listing_type_id values like "recruiting", "housing", "fundraising", "social_or_friendship", etc), get_roles (canonical self/target role_type_id options for a given listing_type_id). Always call this before agent_listings(action="upsert") to pick canonical values; freelancing role names is rejected by the platform.' },
24
+ { capability_id: 'hi.agent-credits', tool_name: 'agent_credits',
25
+ description: 'Read remaining Hi agent credits + pricing tier for the current owner. Used when the user asks about their Hi quota or hits a paid feature.' },
26
+ { capability_id: 'hi.content-get', tool_name: 'content_get',
27
+ description: 'Read structured content stored on Hi (listing details, profile previews, etc) by content_id. Mostly used internally to expand previews returned by other tools.' },
28
+ { capability_id: 'hi.content-render', tool_name: 'content_render',
29
+ description: 'Render Hi content into a presentation surface (markdown, plain text, structured cards). Use when surfacing a listing preview or profile to the owner.' },
30
+ { capability_id: 'hi.faq-get', tool_name: 'faq_get',
31
+ description: 'Read a specific Hirey AI FAQ entry by id. Used when the user asks a how-to question we already have a canonical answer for.' },
32
+ { capability_id: 'hi.faq-search', tool_name: 'faq_search',
33
+ description: 'Free-text search over Hirey AI FAQ. Use this before answering a generic Hi how-to question with your own words; if the FAQ has it, prefer the canonical text.' },
34
+ { capability_id: 'hi.social-org', tool_name: 'social_org',
35
+ description: 'Read or update social-org metadata on Hi — companies, teams, organizations the owner is part of. Used for org-aware matching (e.g. "I want to find a co-founder, not anyone in my own org").' },
36
+ { capability_id: 'hi.social-permissions', tool_name: 'social_permissions',
37
+ description: 'Manage who can see / contact this owner on Hi. Owner-controlled visibility settings.' },
38
+ { capability_id: 'hi.social-relationships', tool_name: 'social_relationships',
39
+ description: 'Read or write structured relationships between Hi agents (knows / worked-with / introduced-by) — used by stronger match algorithms.' },
40
+ ];
41
+ function defaultStateDir(config) {
42
+ return config.stateDir || resolveStateDir(config.profile);
43
+ }
44
+ function asJsonResult(payload) {
45
+ return {
46
+ structuredContent: payload,
47
+ content: [{ type: 'text', text: JSON.stringify(payload, null, 2) }],
48
+ };
49
+ }
50
+ function asErrorResult(error, details) {
51
+ const payload = { ok: false, error };
52
+ if (details)
53
+ Object.assign(payload, details);
54
+ return { ...asJsonResult(payload), isError: true };
55
+ }
56
+ function buildCapabilityTool(spec, config) {
57
+ const stateDir = defaultStateDir(config);
58
+ return {
59
+ name: spec.tool_name,
60
+ label: `Hi ${spec.tool_name}`,
61
+ description: spec.description,
62
+ parameters: {
63
+ type: 'object',
64
+ // 平台校验严格 — 每个 capability 自己有 schema。这里 plugin 这边接 generic object,
65
+ // 把 args 整体转发给平台 /v1/capabilities/<id>/call,由平台返回校验错误。
66
+ additionalProperties: true,
67
+ description: `Arguments for capability ${spec.capability_id}. Required field is "action" (capability-specific values). Other fields depend on the chosen action — fetch ${spec.capability_id} schema if you are unsure.`,
68
+ },
69
+ async execute(_id, params) {
70
+ try {
71
+ const auth = await buildAuthorizedClients({
72
+ stateDir, profile: config.profile, platformBaseUrl: config.platformBaseUrl,
73
+ });
74
+ const result = await auth.platform.callCapability(spec.capability_id, (params || {}));
75
+ return asJsonResult({ ok: true, ...result, capability_id: spec.capability_id });
76
+ }
77
+ catch (err) {
78
+ // 平台返回 422 的话 err.message 通常含 invalid_<...> + path 信息,直接 surface 给 LLM。
79
+ return asErrorResult('capability_call_failed', {
80
+ capability_id: spec.capability_id,
81
+ detail: String(err?.message || err),
82
+ });
83
+ }
84
+ },
85
+ };
86
+ }
87
+ export function buildAllCapabilityTools(config) {
88
+ return CAPABILITIES.map((spec) => buildCapabilityTool(spec, config));
89
+ }
90
+ export function getCapabilityToolNames() {
91
+ return CAPABILITIES.map((c) => c.tool_name);
92
+ }
93
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/tools/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { PluginToolDefinition, HiOpenClawPluginConfig } from '../types.js';
2
+ export declare function buildHiAgentStatusTool(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition;
3
+ export declare function buildHiAgentInstallTool(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition;
4
+ export declare function buildHiAgentDoctorTool(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition;
5
+ export declare function buildHiAgentResetTool(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition;
6
+ export declare function buildHiPullEventsTool(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition;
7
+ export declare function buildAllControlTools(config: Required<HiOpenClawPluginConfig>): PluginToolDefinition[];
8
+ //# sourceMappingURL=control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/tools/control.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAoB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAmClG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CA+DrG;AAGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CA8NtG;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CAuFrG;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CA+BpG;AAMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CAsEpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,EAAE,CAQrG"}