@girardmedia/bootspring 3.3.0 → 3.3.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/dist/cli/index.js +1316 -83143
- package/dist/cli-launcher.js +10 -134
- package/dist/core/index.d.ts +14 -3
- package/dist/core.js +98 -21855
- package/dist/mcp/index.d.ts +29 -3
- package/dist/mcp-server.js +315 -105765
- package/package.json +1 -1
package/dist/cli-launcher.js
CHANGED
|
@@ -1,134 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return path.resolve(__dirname, relativeCandidates[0]);
|
|
14
|
-
}
|
|
15
|
-
var packageJsonPath = resolveExistingPath(["../package.json"]);
|
|
16
|
-
var VERSION = require(packageJsonPath).version;
|
|
17
|
-
var CLI_DIST = resolveExistingPath(["cli/index.js"]);
|
|
18
|
-
var CORE_DIST = resolveExistingPath(["core.js", "core/index.js"]);
|
|
19
|
-
var C = {
|
|
20
|
-
reset: "\x1B[0m",
|
|
21
|
-
bold: "\x1B[1m",
|
|
22
|
-
dim: "\x1B[2m",
|
|
23
|
-
cyan: "\x1B[36m",
|
|
24
|
-
green: "\x1B[32m",
|
|
25
|
-
yellow: "\x1B[33m",
|
|
26
|
-
red: "\x1B[31m"
|
|
27
|
-
};
|
|
28
|
-
var PRIMARY_COMMANDS = ["auth", "build", "seed", "init", "go", "mcp", "doctor", "deploy", "agent", "observe", "commands"];
|
|
29
|
-
var HELP_GROUPS = {
|
|
30
|
-
"Core": ["auth", "build", "seed", "init", "go", "mcp"],
|
|
31
|
-
"Project": ["project", "workspace", "org", "switch", "checkpoint"],
|
|
32
|
-
"Dev Tools": ["doctor", "health", "setup", "validate", "watch", "dashboard", "update", "hook"],
|
|
33
|
-
"Analysis": ["analyze", "audit", "quality", "security", "diff", "report"],
|
|
34
|
-
"AI & Agents": ["agent", "skill", "context", "prompt", "flow", "brain"],
|
|
35
|
-
"Observe": ["observe", "autopilot", "monitor", "session", "metrics", "telemetry"],
|
|
36
|
-
"Docs": ["docs", "generate", "prd", "content", "plan", "suggest"],
|
|
37
|
-
"Deploy & Ops": ["deploy", "sync", "cloud-sync", "github", "undo", "history", "changes", "log"],
|
|
38
|
-
"Business": ["business", "marketing", "sales", "geo", "fundraise", "legal", "jobs"],
|
|
39
|
-
"Tasks": ["todo", "task", "memory", "learn", "issue", "loop"],
|
|
40
|
-
"Other": [
|
|
41
|
-
"billing",
|
|
42
|
-
"onboard",
|
|
43
|
-
"visualize",
|
|
44
|
-
"mvp",
|
|
45
|
-
"plugin",
|
|
46
|
-
"manager",
|
|
47
|
-
"harness",
|
|
48
|
-
"pipeline",
|
|
49
|
-
"workflow",
|
|
50
|
-
"orchestrator",
|
|
51
|
-
"marketplace",
|
|
52
|
-
"swarm"
|
|
53
|
-
]
|
|
54
|
-
};
|
|
55
|
-
function showHelp() {
|
|
56
|
-
console.log(`${C.cyan}${C.bold}\u26A1 Bootspring${C.reset} ${C.dim}v${VERSION}${C.reset}`);
|
|
57
|
-
console.log(`${C.dim}AI-assisted development platform${C.reset}
|
|
58
|
-
`);
|
|
59
|
-
console.log(`${C.bold}Usage:${C.reset} bootspring <command> [options]
|
|
60
|
-
`);
|
|
61
|
-
console.log(`${C.cyan}${C.bold}COMMANDS${C.reset}`);
|
|
62
|
-
console.log(` ${C.green}go${C.reset} ${C.dim}One command to set up everything${C.reset}`);
|
|
63
|
-
console.log(` ${C.green}auth${C.reset} ${C.dim}Login, logout, status${C.reset}`);
|
|
64
|
-
console.log(` ${C.green}init${C.reset} ${C.dim}Initialize a new project${C.reset}`);
|
|
65
|
-
console.log(` ${C.green}seed${C.reset} ${C.dim}Create and refine context documents${C.reset}`);
|
|
66
|
-
console.log(` ${C.green}build${C.reset} ${C.dim}Build loop \u2014 next, done, status, auto${C.reset}`);
|
|
67
|
-
console.log(` ${C.green}deploy${C.reset} ${C.dim}Validate and deploy${C.reset}`);
|
|
68
|
-
console.log(` ${C.green}mcp${C.reset} ${C.dim}MCP server management${C.reset}`);
|
|
69
|
-
console.log(` ${C.green}agent${C.reset} ${C.dim}AI agent proxy${C.reset}`);
|
|
70
|
-
console.log(` ${C.green}observe${C.reset} ${C.dim}Session intelligence and analytics${C.reset}`);
|
|
71
|
-
console.log(` ${C.green}doctor${C.reset} ${C.dim}Diagnose project issues${C.reset}`);
|
|
72
|
-
console.log("");
|
|
73
|
-
const total = Object.values(HELP_GROUPS).flat().length;
|
|
74
|
-
console.log(` ${C.green}commands${C.reset} ${C.dim}Show all ${total} commands${C.reset}`);
|
|
75
|
-
console.log(`
|
|
76
|
-
${C.dim}Run "bootspring <command> --help" for details${C.reset}`);
|
|
77
|
-
console.log(`${C.dim}Docs: https://bootspring.com/docs${C.reset}
|
|
78
|
-
`);
|
|
79
|
-
}
|
|
80
|
-
function showFullCommands() {
|
|
81
|
-
const total = Object.values(HELP_GROUPS).flat().length;
|
|
82
|
-
const primarySet = new Set(PRIMARY_COMMANDS);
|
|
83
|
-
console.log(`${C.cyan}${C.bold}\u26A1 Bootspring${C.reset} ${C.dim}v${VERSION} \u2014 ${total} commands (${PRIMARY_COMMANDS.length - 1} primary)${C.reset}
|
|
84
|
-
`);
|
|
85
|
-
for (const [group, cmds] of Object.entries(HELP_GROUPS)) {
|
|
86
|
-
const formatted = cmds.map(
|
|
87
|
-
(command) => primarySet.has(command) ? `${C.green}${C.bold}${command}${C.reset}` : `${C.dim}${command}${C.reset}`
|
|
88
|
-
).join(", ");
|
|
89
|
-
console.log(`${C.bold}${group}:${C.reset} ${formatted}`);
|
|
90
|
-
}
|
|
91
|
-
console.log(`
|
|
92
|
-
${C.dim}Bold = primary commands shown in help${C.reset}`);
|
|
93
|
-
console.log(`${C.dim}Run "bootspring <command> --help" for command details${C.reset}`);
|
|
94
|
-
console.log(`${C.dim}Docs: https://bootspring.com/docs${C.reset}
|
|
95
|
-
`);
|
|
96
|
-
}
|
|
97
|
-
function runCli(args) {
|
|
98
|
-
if (!fs.existsSync(CLI_DIST)) {
|
|
99
|
-
console.error(`${C.red}Error: CLI build not found at ${CLI_DIST}${C.reset}`);
|
|
100
|
-
console.error(`${C.dim}Please run 'npm run build' first.${C.reset}`);
|
|
101
|
-
process.exit(1);
|
|
102
|
-
}
|
|
103
|
-
process.env.BOOTSPRING_BRIDGE = "true";
|
|
104
|
-
process.argv = [process.argv[0], CLI_DIST, ...args];
|
|
105
|
-
require(CLI_DIST);
|
|
106
|
-
}
|
|
107
|
-
async function main() {
|
|
108
|
-
const args = process.argv.slice(2);
|
|
109
|
-
const command = args[0];
|
|
110
|
-
if (!command || command === "--help" || command === "-h" || command === "help") {
|
|
111
|
-
showHelp();
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (command === "commands") {
|
|
115
|
-
showFullCommands();
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (command === "--version" || command === "-v") {
|
|
119
|
-
console.log(`Bootspring v${VERSION}`);
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
try {
|
|
123
|
-
const { selfUpdate } = require(CORE_DIST);
|
|
124
|
-
selfUpdate.ensureLatestVersion(args);
|
|
125
|
-
} catch {
|
|
126
|
-
}
|
|
127
|
-
runCli(args);
|
|
128
|
-
}
|
|
129
|
-
main().catch((error) => {
|
|
130
|
-
console.error(`
|
|
131
|
-
${C.red}Error: ${error.message}${C.reset}
|
|
132
|
-
`);
|
|
133
|
-
process.exit(1);
|
|
134
|
-
});
|
|
1
|
+
"use strict";var a=require("path"),d=require("fs");function i(o){for(let s of o){let t=a.resolve(__dirname,s);if(d.existsSync(t))return t}return a.resolve(__dirname,o[0])}var p=i(["../package.json"]),c=require(p).version,n=i(["cli/index.js"]),u=i(["core.js","core/index.js"]),e={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",red:"\x1B[31m"},$=["auth","build","seed","init","go","mcp","doctor","deploy","agent","observe","commands"],l={Core:["auth","build","seed","init","go","mcp"],Project:["project","workspace","org","switch","checkpoint"],"Dev Tools":["doctor","health","setup","validate","watch","dashboard","update","hook"],Analysis:["analyze","audit","quality","security","diff","report","policy"],"AI & Agents":["agent","skill","context","prompt","flow","brain","sprint"],Observe:["observe","autopilot","monitor","session","metrics","telemetry"],Docs:["docs","generate","prd","content","plan","suggest"],"Deploy & Ops":["deploy","sync","cloud-sync","github","undo","history","changes","log"],Business:["business","marketing","sales","geo","fundraise","legal","jobs"],Tasks:["todo","task","memory","learn","issue","loop"],Other:["billing","onboard","visualize","mvp","plugin","manager","harness","pipeline","workflow","orchestrator","marketplace","swarm"]};function h(){console.log(`${e.cyan}${e.bold}\u26A1 Bootspring${e.reset} ${e.dim}v${c}${e.reset}`),console.log(`${e.dim}AI-assisted development platform${e.reset}
|
|
2
|
+
`),console.log(`${e.bold}Usage:${e.reset} bootspring <command> [options]
|
|
3
|
+
`),console.log(`${e.cyan}${e.bold}COMMANDS${e.reset}`),console.log(` ${e.green}go${e.reset} ${e.dim}One command to set up everything${e.reset}`),console.log(` ${e.green}auth${e.reset} ${e.dim}Login, logout, status${e.reset}`),console.log(` ${e.green}init${e.reset} ${e.dim}Initialize a new project${e.reset}`),console.log(` ${e.green}seed${e.reset} ${e.dim}Create and refine context documents${e.reset}`),console.log(` ${e.green}build${e.reset} ${e.dim}Build loop \u2014 next, done, status, auto${e.reset}`),console.log(` ${e.green}deploy${e.reset} ${e.dim}Validate and deploy${e.reset}`),console.log(` ${e.green}mcp${e.reset} ${e.dim}MCP server management${e.reset}`),console.log(` ${e.green}agent${e.reset} ${e.dim}AI agent proxy${e.reset}`),console.log(` ${e.green}observe${e.reset} ${e.dim}Session intelligence and analytics${e.reset}`),console.log(` ${e.green}doctor${e.reset} ${e.dim}Diagnose project issues${e.reset}`),console.log("");let o=Object.values(l).flat().length;console.log(` ${e.green}commands${e.reset} ${e.dim}Show all ${o} commands${e.reset}`),console.log(`
|
|
4
|
+
${e.dim}Run "bootspring <command> --help" for details${e.reset}`),console.log(`${e.dim}Docs: https://bootspring.com/docs${e.reset}
|
|
5
|
+
`)}function b(){let o=Object.values(l).flat().length,s=new Set($);console.log(`${e.cyan}${e.bold}\u26A1 Bootspring${e.reset} ${e.dim}v${c} \u2014 ${o} commands (${$.length-1} primary)${e.reset}
|
|
6
|
+
`);for(let[t,g]of Object.entries(l)){let m=g.map(r=>s.has(r)?`${e.green}${e.bold}${r}${e.reset}`:`${e.dim}${r}${e.reset}`).join(", ");console.log(`${e.bold}${t}:${e.reset} ${m}`)}console.log(`
|
|
7
|
+
${e.dim}Bold = primary commands shown in help${e.reset}`),console.log(`${e.dim}Run "bootspring <command> --help" for command details${e.reset}`),console.log(`${e.dim}Docs: https://bootspring.com/docs${e.reset}
|
|
8
|
+
`)}function f(o){d.existsSync(n)||(console.error(`${e.red}Error: CLI build not found at ${n}${e.reset}`),console.error(`${e.dim}Please run 'npm run build' first.${e.reset}`),process.exit(1)),process.env.BOOTSPRING_BRIDGE="true",process.argv=[process.argv[0],n,...o],require(n)}async function y(){let o=process.argv.slice(2),s=o[0];if(!s||s==="--help"||s==="-h"||s==="help"){h();return}if(s==="commands"){b();return}if(s==="--version"||s==="-v"){console.log(`Bootspring v${c}`);return}try{let{selfUpdate:t}=require(u);t.ensureLatestVersion(o)}catch{}f(o)}y().catch(o=>{console.error(`
|
|
9
|
+
${e.red}Error: ${o.message}${e.reset}
|
|
10
|
+
`),process.exit(1)});
|
package/dist/core/index.d.ts
CHANGED
|
@@ -457,6 +457,16 @@ declare function sendHealthReport(payload: {
|
|
|
457
457
|
grade: string;
|
|
458
458
|
data: any;
|
|
459
459
|
}): Promise<void>;
|
|
460
|
+
/**
|
|
461
|
+
* Track an MCP tool call to the dashboard for usage metering.
|
|
462
|
+
* Fire-and-forget: returns immediately, network call happens in background.
|
|
463
|
+
*
|
|
464
|
+
* Maps tool names to usage types:
|
|
465
|
+
* - bootspring_agent → agents_invoked
|
|
466
|
+
* - bootspring_skill → skills_accessed
|
|
467
|
+
* - bootspring_build/seed/context/quality/orchestrator/todo/sprint → mcp_calls
|
|
468
|
+
*/
|
|
469
|
+
declare function trackToolUsage(toolName: string): void;
|
|
460
470
|
/**
|
|
461
471
|
* Maybe auto-upload accumulated telemetry events.
|
|
462
472
|
* Triggers when >10 events accumulated or last upload was >1hr ago.
|
|
@@ -466,8 +476,9 @@ declare function maybeAutoUploadTelemetry(): void;
|
|
|
466
476
|
declare const presence_maybeAutoUploadTelemetry: typeof maybeAutoUploadTelemetry;
|
|
467
477
|
declare const presence_sendHealthReport: typeof sendHealthReport;
|
|
468
478
|
declare const presence_sendHeartbeat: typeof sendHeartbeat;
|
|
479
|
+
declare const presence_trackToolUsage: typeof trackToolUsage;
|
|
469
480
|
declare namespace presence {
|
|
470
|
-
export { presence_maybeAutoUploadTelemetry as maybeAutoUploadTelemetry, presence_sendHealthReport as sendHealthReport, presence_sendHeartbeat as sendHeartbeat };
|
|
481
|
+
export { presence_maybeAutoUploadTelemetry as maybeAutoUploadTelemetry, presence_sendHealthReport as sendHealthReport, presence_sendHeartbeat as sendHeartbeat, presence_trackToolUsage as trackToolUsage };
|
|
471
482
|
}
|
|
472
483
|
|
|
473
484
|
interface InstallContext {
|
|
@@ -477,7 +488,7 @@ interface InstallContext {
|
|
|
477
488
|
scriptPath: string;
|
|
478
489
|
}
|
|
479
490
|
declare const PACKAGE_NAME = "@girardmedia/bootspring";
|
|
480
|
-
declare const CURRENT_VERSION = "3.2
|
|
491
|
+
declare const CURRENT_VERSION = "3.3.2";
|
|
481
492
|
declare const DEFAULT_INTERVAL_MS: number;
|
|
482
493
|
declare const STATE_PATH: string;
|
|
483
494
|
declare function compareVersions(a: string, b: string): number;
|
|
@@ -2410,4 +2421,4 @@ declare namespace telemetry {
|
|
|
2410
2421
|
export { telemetry_ASSISTANTS as ASSISTANTS, telemetry_ASSISTANT_FIRST_SUCCESS_EVENT as ASSISTANT_FIRST_SUCCESS_EVENT, telemetry_ASSISTANT_RETURN_EVENT as ASSISTANT_RETURN_EVENT, telemetry_ASSISTANT_SETUP_EVENT as ASSISTANT_SETUP_EVENT, type telemetry_AssistantFunnelEntry as AssistantFunnelEntry, type telemetry_AssistantFunnelSummary as AssistantFunnelSummary, type telemetry_AssistantId as AssistantId, type telemetry_AssistantTrackOptions as AssistantTrackOptions, type telemetry_AssistantUsageTrackResult as AssistantUsageTrackResult, telemetry_BILLING_UPGRADE_STARTED_EVENT as BILLING_UPGRADE_STARTED_EVENT, type telemetry_ClearResult as ClearResult, type telemetry_EmitOptions as EmitOptions, type telemetry_FailedBatch as FailedBatch, type telemetry_ListEventsOptions as ListEventsOptions, telemetry_MAX_EVENTS_LIMIT as MAX_EVENTS_LIMIT, type telemetry_TelemetryRecord as TelemetryRecord, type telemetry_TelemetryStatus as TelemetryStatus, telemetry_UPGRADE_COMPLETED_EVENT as UPGRADE_COMPLETED_EVENT, telemetry_UPGRADE_PROMPT_EVENT as UPGRADE_PROMPT_EVENT, type telemetry_UpgradeFunnelEntry as UpgradeFunnelEntry, type telemetry_UpgradeFunnelSummary as UpgradeFunnelSummary, type telemetry_UploadOptions as UploadOptions, type telemetry_UploadResult as UploadResult, telemetry_clearEvents as clearEvents, telemetry_emitEvent as emitEvent, telemetry_ensureTelemetryDir as ensureTelemetryDir, telemetry_getAssistantActivationFunnel as getAssistantActivationFunnel, telemetry_getStatus as getStatus, telemetry_getTelemetryDir as getTelemetryDir, telemetry_getTelemetryFile as getTelemetryFile, telemetry_getUpgradeConversionFunnel as getUpgradeConversionFunnel, telemetry_inferAssistantFromEnvironment as inferAssistantFromEnvironment, telemetry_listEvents as listEvents, telemetry_track as track, telemetry_trackAssistantSetup as trackAssistantSetup, telemetry_trackAssistantUsageSuccess as trackAssistantUsageSuccess, telemetry_uploadEvents as uploadEvents };
|
|
2411
2422
|
}
|
|
2412
2423
|
|
|
2413
|
-
export { API_BASE, API_VERSION, type AssistantTarget, BOOTSPRING_DIR, type BootspringConfig, COMMANDS_SOURCE, CONFIG_FILE, CREDENTIALS_FILE, CURRENT_VERSION, type Credentials, DEFAULT_INTERVAL_MS, DEFAULT_POLICY_PROFILE, DEVICE_FILE, type DeviceContext, type DeviceInfo, type DiagnosticResult, type ExpiryStatus, type HealResult, type Issue, LIMITS, LOCAL_CONFIG_NAME, type LoginResponse, PACKAGE_NAME, PATTERNS, POLICY_PROFILES, type PolicyOptions, type PolicyProfile, type ProjectAuth, type ProjectConfig, type ProjectContext$1 as ProjectContext, SESSION_FILE, SHELL_DANGEROUS_CHARS, STATE_PATH, type SessionData, type SessionOptions, TARGET_DIRS, type UserProfile, type ValidationResult$1 as ValidationResult, type Workflow, addRecentProject, apiClient as api, apiLogin, applyUpdate, auth, callMcpTool, checkForUpdates, checkInstallation, classifyError, clearCredentials, clearDeviceInfo, clearProjectApiKey, clearProjectScopedSession, clearSession, compareVersions, config, context, createLocalConfig, decrypt, encrypt, ensureBootspringDir, ensureLatestVersion, entitlements, findLocalConfig, findNearestProjectConfigPath, generateDeviceFingerprint, getApiKey, getCommandFiles, getConfig, getCredentials, getCredentialsPath, getCurrentProject, getDeviceContext, getDeviceId, getDeviceInfo, getEffectiveProject, getInstallContext, getLatestVersion, getLegacyProjectApiKey, getMcpResource, getPolicyProfile, getProjectScopedSessionState, getProjectScopedToken, getRecentProjects, getRefreshToken, getSession, getSessionState, getStoredApiKey, getTier$1 as getTier, getToken, getTokenExpiryStatus, getUser, healthCheck, installAll, installToTarget, isApiKeyAuth, isAuthenticated, isWorkflowBlocked, listMcpResources, listMcpTools, login, loginWithApiKey, logout, maybeAutoUploadTelemetry, normalizeProfile, policies, pollDeviceToken, presence, readNearestProjectConfig, refreshSession, registerMcpForAssistant, remoteLogout, request, resolvePolicyProfile, runDiagnostics, saveApiKeyToProject, saveConfig, saveCredentials, saveProjectScopedSession, saveSession, selfHeal, selfUpdate, sendHealthReport, sendHeartbeat, session, setAuthFailureHandler, setCurrentProject, setupCommands, startDeviceFlow, stripUnsafeControlChars, telemetry, tierEnforcement, tryHeal, uninstallAll, updateTokens, validateNumericId, validateSlug, validateStringLength, validateTodoText, writeNearestProjectConfig };
|
|
2424
|
+
export { API_BASE, API_VERSION, type AssistantTarget, BOOTSPRING_DIR, type BootspringConfig, COMMANDS_SOURCE, CONFIG_FILE, CREDENTIALS_FILE, CURRENT_VERSION, type Credentials, DEFAULT_INTERVAL_MS, DEFAULT_POLICY_PROFILE, DEVICE_FILE, type DeviceContext, type DeviceInfo, type DiagnosticResult, type ExpiryStatus, type HealResult, type Issue, LIMITS, LOCAL_CONFIG_NAME, type LoginResponse, PACKAGE_NAME, PATTERNS, POLICY_PROFILES, type PolicyOptions, type PolicyProfile, type ProjectAuth, type ProjectConfig, type ProjectContext$1 as ProjectContext, SESSION_FILE, SHELL_DANGEROUS_CHARS, STATE_PATH, type SessionData, type SessionOptions, TARGET_DIRS, type UserProfile, type ValidationResult$1 as ValidationResult, type Workflow, addRecentProject, apiClient as api, apiLogin, applyUpdate, auth, callMcpTool, checkForUpdates, checkInstallation, classifyError, clearCredentials, clearDeviceInfo, clearProjectApiKey, clearProjectScopedSession, clearSession, compareVersions, config, context, createLocalConfig, decrypt, encrypt, ensureBootspringDir, ensureLatestVersion, entitlements, findLocalConfig, findNearestProjectConfigPath, generateDeviceFingerprint, getApiKey, getCommandFiles, getConfig, getCredentials, getCredentialsPath, getCurrentProject, getDeviceContext, getDeviceId, getDeviceInfo, getEffectiveProject, getInstallContext, getLatestVersion, getLegacyProjectApiKey, getMcpResource, getPolicyProfile, getProjectScopedSessionState, getProjectScopedToken, getRecentProjects, getRefreshToken, getSession, getSessionState, getStoredApiKey, getTier$1 as getTier, getToken, getTokenExpiryStatus, getUser, healthCheck, installAll, installToTarget, isApiKeyAuth, isAuthenticated, isWorkflowBlocked, listMcpResources, listMcpTools, login, loginWithApiKey, logout, maybeAutoUploadTelemetry, normalizeProfile, policies, pollDeviceToken, presence, readNearestProjectConfig, refreshSession, registerMcpForAssistant, remoteLogout, request, resolvePolicyProfile, runDiagnostics, saveApiKeyToProject, saveConfig, saveCredentials, saveProjectScopedSession, saveSession, selfHeal, selfUpdate, sendHealthReport, sendHeartbeat, session, setAuthFailureHandler, setCurrentProject, setupCommands, startDeviceFlow, stripUnsafeControlChars, telemetry, tierEnforcement, trackToolUsage, tryHeal, uninstallAll, updateTokens, validateNumericId, validateSlug, validateStringLength, validateTodoText, writeNearestProjectConfig };
|