@askexenow/exe-os 0.8.1 → 0.8.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/package.json +1 -1
- package/dist/bin/backfill-responses.js +0 -2064
- package/dist/bin/backfill-vectors.js +0 -1771
- package/dist/bin/cleanup-stale-review-tasks.js +0 -1468
- package/dist/bin/cli.js +0 -21371
- package/dist/bin/exe-agent.js +0 -2016
- package/dist/bin/exe-assign.js +0 -2176
- package/dist/bin/exe-boot.js +0 -6332
- package/dist/bin/exe-call.js +0 -341
- package/dist/bin/exe-cloud.js +0 -861
- package/dist/bin/exe-dispatch.js +0 -1159
- package/dist/bin/exe-doctor.js +0 -1786
- package/dist/bin/exe-export-behaviors.js +0 -1637
- package/dist/bin/exe-forget.js +0 -1784
- package/dist/bin/exe-gateway.js +0 -8140
- package/dist/bin/exe-healthcheck.js +0 -207
- package/dist/bin/exe-heartbeat.js +0 -1778
- package/dist/bin/exe-kill.js +0 -1622
- package/dist/bin/exe-launch-agent.js +0 -1847
- package/dist/bin/exe-link.js +0 -192
- package/dist/bin/exe-new-employee.js +0 -1384
- package/dist/bin/exe-pending-messages.js +0 -1576
- package/dist/bin/exe-pending-notifications.js +0 -1450
- package/dist/bin/exe-pending-reviews.js +0 -1598
- package/dist/bin/exe-repo-drift.js +0 -95
- package/dist/bin/exe-review.js +0 -1742
- package/dist/bin/exe-search.js +0 -3116
- package/dist/bin/exe-session-cleanup.js +0 -3360
- package/dist/bin/exe-settings.js +0 -365
- package/dist/bin/exe-status.js +0 -1661
- package/dist/bin/exe-team.js +0 -1453
- package/dist/bin/git-sweep.js +0 -2441
- package/dist/bin/graph-backfill.js +0 -2111
- package/dist/bin/graph-export.js +0 -1747
- package/dist/bin/install.js +0 -661
- package/dist/bin/list-providers.js +0 -140
- package/dist/bin/scan-tasks.js +0 -2039
- package/dist/bin/setup.js +0 -2717
- package/dist/bin/shard-migrate.js +0 -1637
- package/dist/bin/update.js +0 -98
- package/dist/bin/wiki-sync.js +0 -1657
- package/dist/gateway/index.js +0 -9256
- package/dist/hooks/bug-report-worker.js +0 -2903
- package/dist/hooks/commit-complete.js +0 -2364
- package/dist/hooks/error-recall.js +0 -3327
- package/dist/hooks/exe-heartbeat-hook.js +0 -237
- package/dist/hooks/ingest-worker.js +0 -5065
- package/dist/hooks/ingest.js +0 -695
- package/dist/hooks/instructions-loaded.js +0 -2069
- package/dist/hooks/notification.js +0 -1915
- package/dist/hooks/post-compact.js +0 -1940
- package/dist/hooks/pre-compact.js +0 -1935
- package/dist/hooks/pre-tool-use.js +0 -2380
- package/dist/hooks/prompt-ingest-worker.js +0 -2291
- package/dist/hooks/prompt-submit.js +0 -5189
- package/dist/hooks/response-ingest-worker.js +0 -2431
- package/dist/hooks/session-end.js +0 -2196
- package/dist/hooks/session-start.js +0 -3259
- package/dist/hooks/stop.js +0 -2025
- package/dist/hooks/subagent-stop.js +0 -1915
- package/dist/hooks/summary-worker.js +0 -2931
- package/dist/index.js +0 -12327
- package/dist/lib/cloud-sync.js +0 -500
- package/dist/lib/config.js +0 -235
- package/dist/lib/consolidation.js +0 -481
- package/dist/lib/crypto.js +0 -51
- package/dist/lib/database.js +0 -834
- package/dist/lib/device-registry.js +0 -1009
- package/dist/lib/embedder.js +0 -645
- package/dist/lib/employee-templates.js +0 -570
- package/dist/lib/employees.js +0 -182
- package/dist/lib/error-detector.js +0 -156
- package/dist/lib/exe-daemon-client.js +0 -456
- package/dist/lib/exe-daemon.js +0 -8699
- package/dist/lib/file-grep.js +0 -215
- package/dist/lib/hybrid-search.js +0 -3064
- package/dist/lib/identity-templates.js +0 -441
- package/dist/lib/identity.js +0 -228
- package/dist/lib/keychain.js +0 -145
- package/dist/lib/license.js +0 -382
- package/dist/lib/messaging.js +0 -1389
- package/dist/lib/reminders.js +0 -63
- package/dist/lib/schedules.js +0 -1525
- package/dist/lib/session-registry.js +0 -52
- package/dist/lib/skill-learning.js +0 -488
- package/dist/lib/status-brief.js +0 -240
- package/dist/lib/store.js +0 -1740
- package/dist/lib/task-router.js +0 -128
- package/dist/lib/tasks.js +0 -2585
- package/dist/lib/tmux-routing.js +0 -2969
- package/dist/lib/tmux-status.js +0 -261
- package/dist/lib/tmux-transport.js +0 -83
- package/dist/lib/transport.js +0 -128
- package/dist/lib/ws-auth.js +0 -19
- package/dist/lib/ws-client.js +0 -160
- package/dist/mcp/server.js +0 -10812
- package/dist/mcp/tools/complete-reminder.js +0 -67
- package/dist/mcp/tools/create-reminder.js +0 -52
- package/dist/mcp/tools/create-task.js +0 -1903
- package/dist/mcp/tools/deactivate-behavior.js +0 -268
- package/dist/mcp/tools/list-reminders.js +0 -62
- package/dist/mcp/tools/list-tasks.js +0 -491
- package/dist/mcp/tools/send-message.js +0 -1395
- package/dist/mcp/tools/update-task.js +0 -1807
- package/dist/runtime/index.js +0 -7201
- package/dist/tui/App.js +0 -17874
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/bin/list-providers.ts
|
|
4
|
-
import { existsSync, readFileSync } from "fs";
|
|
5
|
-
import os from "os";
|
|
6
|
-
import path from "path";
|
|
7
|
-
|
|
8
|
-
// src/lib/is-main.ts
|
|
9
|
-
import { realpathSync } from "fs";
|
|
10
|
-
import { fileURLToPath } from "url";
|
|
11
|
-
function isMainModule(importMetaUrl) {
|
|
12
|
-
if (process.argv[1] == null) return false;
|
|
13
|
-
try {
|
|
14
|
-
const scriptPath = realpathSync(process.argv[1]);
|
|
15
|
-
const modulePath = realpathSync(fileURLToPath(importMetaUrl));
|
|
16
|
-
return scriptPath === modulePath;
|
|
17
|
-
} catch {
|
|
18
|
-
return importMetaUrl === `file://${process.argv[1]}` || importMetaUrl === new URL(process.argv[1], "file://").href;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// src/bin/list-providers.ts
|
|
23
|
-
var MIN_VALID_KEY_LENGTH = 8;
|
|
24
|
-
var MASK_PREFIX_LENGTH = 4;
|
|
25
|
-
var MASK_SUFFIX_LENGTH = 4;
|
|
26
|
-
var MASK_INFIX = "****";
|
|
27
|
-
var PROVIDER_CATALOG = [
|
|
28
|
-
{
|
|
29
|
-
id: "anthropic",
|
|
30
|
-
name: "Anthropic",
|
|
31
|
-
priority: 1,
|
|
32
|
-
envVar: "ANTHROPIC_API_KEY",
|
|
33
|
-
models: [
|
|
34
|
-
"claude-opus-4-6-20250610",
|
|
35
|
-
"claude-sonnet-4-20250514",
|
|
36
|
-
"claude-haiku-4-5-20251001"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: "opencode",
|
|
41
|
-
name: "OpenCode",
|
|
42
|
-
priority: 2,
|
|
43
|
-
envVar: "OPENCODE_API_KEY",
|
|
44
|
-
models: [
|
|
45
|
-
"glm-5.1",
|
|
46
|
-
"glm-5",
|
|
47
|
-
"kimi-k2.5",
|
|
48
|
-
"mimo-v2-pro",
|
|
49
|
-
"mimo-v2-omni",
|
|
50
|
-
"minimax-m2.7",
|
|
51
|
-
"minimax-m2.5"
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
id: "gemini",
|
|
56
|
-
name: "Gemini",
|
|
57
|
-
priority: 3,
|
|
58
|
-
envVar: "GEMINI_API_KEY",
|
|
59
|
-
models: ["gemini-2.0-flash", "gemini-2.5-pro"]
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: "openai",
|
|
63
|
-
name: "OpenAI",
|
|
64
|
-
priority: 4,
|
|
65
|
-
envVar: "OPENAI_API_KEY",
|
|
66
|
-
models: ["gpt-4o", "gpt-4o-mini"]
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: "chutes",
|
|
70
|
-
name: "Chutes",
|
|
71
|
-
priority: 5,
|
|
72
|
-
envVar: "CHUTES_API_KEY",
|
|
73
|
-
models: []
|
|
74
|
-
}
|
|
75
|
-
];
|
|
76
|
-
function maskApiKey(raw) {
|
|
77
|
-
if (raw.length < MIN_VALID_KEY_LENGTH) return "";
|
|
78
|
-
const prefix = raw.slice(0, MASK_PREFIX_LENGTH);
|
|
79
|
-
const suffix = raw.slice(-MASK_SUFFIX_LENGTH);
|
|
80
|
-
return `${prefix}${MASK_INFIX}${suffix}`;
|
|
81
|
-
}
|
|
82
|
-
function configPath() {
|
|
83
|
-
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path.join(os.homedir(), ".exe-os");
|
|
84
|
-
return path.join(dir, "config.json");
|
|
85
|
-
}
|
|
86
|
-
function readConfigProviders() {
|
|
87
|
-
const file = configPath();
|
|
88
|
-
if (!existsSync(file)) return {};
|
|
89
|
-
try {
|
|
90
|
-
const parsed = JSON.parse(readFileSync(file, "utf8"));
|
|
91
|
-
const section = parsed.providers;
|
|
92
|
-
if (!section || typeof section !== "object") return {};
|
|
93
|
-
return section;
|
|
94
|
-
} catch {
|
|
95
|
-
return {};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function buildProviderRow(entry, envValue, configEntry) {
|
|
99
|
-
const envKey = envValue?.trim() ?? "";
|
|
100
|
-
const configKey = configEntry?.apiKey?.trim() ?? "";
|
|
101
|
-
const rawKey = envKey.length >= MIN_VALID_KEY_LENGTH ? envKey : configKey.length >= MIN_VALID_KEY_LENGTH ? configKey : "";
|
|
102
|
-
let source = "none";
|
|
103
|
-
if (envKey.length >= MIN_VALID_KEY_LENGTH) source = "env";
|
|
104
|
-
else if (configKey.length >= MIN_VALID_KEY_LENGTH) source = "config";
|
|
105
|
-
const status = rawKey.length >= MIN_VALID_KEY_LENGTH ? "configured" : "not_set";
|
|
106
|
-
return {
|
|
107
|
-
id: entry.id,
|
|
108
|
-
name: entry.name,
|
|
109
|
-
status,
|
|
110
|
-
apiKey: maskApiKey(rawKey),
|
|
111
|
-
model: configEntry?.model ?? "",
|
|
112
|
-
models: entry.models,
|
|
113
|
-
priority: entry.priority,
|
|
114
|
-
source
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
function markPrimaryActive(rows) {
|
|
118
|
-
const firstConfiguredIndex = rows.findIndex((r) => r.status === "configured");
|
|
119
|
-
if (firstConfiguredIndex === -1) return rows;
|
|
120
|
-
return rows.map(
|
|
121
|
-
(r, idx) => idx === firstConfiguredIndex ? { ...r, status: "active" } : r
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
function buildProviderList(env, configProviders) {
|
|
125
|
-
const sorted = [...PROVIDER_CATALOG].sort((a, b) => a.priority - b.priority);
|
|
126
|
-
const rows = sorted.map(
|
|
127
|
-
(entry) => buildProviderRow(entry, env[entry.envVar], configProviders[entry.id])
|
|
128
|
-
);
|
|
129
|
-
return markPrimaryActive(rows);
|
|
130
|
-
}
|
|
131
|
-
if (isMainModule(import.meta.url)) {
|
|
132
|
-
const providers = buildProviderList(process.env, readConfigProviders());
|
|
133
|
-
process.stdout.write(JSON.stringify(providers));
|
|
134
|
-
}
|
|
135
|
-
export {
|
|
136
|
-
buildProviderList,
|
|
137
|
-
buildProviderRow,
|
|
138
|
-
maskApiKey,
|
|
139
|
-
readConfigProviders
|
|
140
|
-
};
|