@ghl-ai/aw 0.1.48-beta.0 → 0.1.48-beta.1
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/commands/push.mjs +18 -4
- package/constants.mjs +2 -1
- package/ecc.mjs +1 -1
- package/integrations.mjs +23 -6
- package/package.json +1 -1
package/commands/push.mjs
CHANGED
|
@@ -36,6 +36,7 @@ import {
|
|
|
36
36
|
AW_DOCS_SEED_BRANCH,
|
|
37
37
|
AW_DOCS_PUBLISH_DIR,
|
|
38
38
|
AW_DOCS_PUBLIC_BASE_URL,
|
|
39
|
+
AW_DOCS_TEAMOFONE_ORIGIN,
|
|
39
40
|
AW_DOCS_TEAMOFONE_BASE_URL,
|
|
40
41
|
AW_CO_AUTHOR,
|
|
41
42
|
defaultAwDocsGithubDocsConfig,
|
|
@@ -220,11 +221,11 @@ function resolveAwDocsPublishConfig(projectRoot) {
|
|
|
220
221
|
const teamofoneBaseUrl = String(
|
|
221
222
|
process.env.AW_DOCS_TEAMOFONE_BASE_URL
|
|
222
223
|
|| githubDocs.teamofone_base_url
|
|
223
|
-
|| AW_DOCS_TEAMOFONE_BASE_URL
|
|
224
|
-
|| '',
|
|
224
|
+
|| AW_DOCS_TEAMOFONE_BASE_URL,
|
|
225
225
|
).trim();
|
|
226
226
|
const publicBaseUrl = process.env.AW_DOCS_PUBLIC_BASE_URL
|
|
227
227
|
|| githubDocs.public_base_url
|
|
228
|
+
|| AW_DOCS_PUBLIC_BASE_URL
|
|
228
229
|
|| `https://github.com/${String(repo).replace(/\.git$/, '')}/blob/${branch}`;
|
|
229
230
|
|
|
230
231
|
return {
|
|
@@ -234,7 +235,7 @@ function resolveAwDocsPublishConfig(projectRoot) {
|
|
|
234
235
|
branch,
|
|
235
236
|
seedBranch: process.env.AW_DOCS_SEED_BRANCH || githubDocs.seed_branch || AW_DOCS_SEED_BRANCH,
|
|
236
237
|
dest,
|
|
237
|
-
teamofoneBaseUrl,
|
|
238
|
+
teamofoneBaseUrl: normalizeTeamOfOneBaseUrl(teamofoneBaseUrl),
|
|
238
239
|
publicBaseUrl,
|
|
239
240
|
};
|
|
240
241
|
}
|
|
@@ -389,6 +390,14 @@ function appendPathToUrl(baseUrl, path) {
|
|
|
389
390
|
return `${basePath.replace(/\/$/, '')}/${encodedPath}${query}${hash}`;
|
|
390
391
|
}
|
|
391
392
|
|
|
393
|
+
function normalizeTeamOfOneBaseUrl(baseUrl) {
|
|
394
|
+
const value = String(baseUrl || '').trim();
|
|
395
|
+
if (!value) return '';
|
|
396
|
+
if (/^https?:\/\//i.test(value)) return value;
|
|
397
|
+
if (value.startsWith('/')) return `${AW_DOCS_TEAMOFONE_ORIGIN.replace(/\/$/, '')}${value}`;
|
|
398
|
+
return `https://${value.replace(/^\/+/, '')}`;
|
|
399
|
+
}
|
|
400
|
+
|
|
392
401
|
function appendQueryParam(url, key, value) {
|
|
393
402
|
const hashIndex = url.indexOf('#');
|
|
394
403
|
const withoutHash = hashIndex === -1 ? url : url.slice(0, hashIndex);
|
|
@@ -422,8 +431,13 @@ function awDocsRepositoryUrl(publishedPath, publishConfig) {
|
|
|
422
431
|
}
|
|
423
432
|
|
|
424
433
|
function printAwDocsLinks(links, limit = 10) {
|
|
434
|
+
fmt.logInfo(chalk.bold('Remote Docs'));
|
|
425
435
|
for (const link of links.slice(0, limit)) {
|
|
426
|
-
fmt.logInfo(chalk.
|
|
436
|
+
fmt.logInfo(` ${chalk.dim(link.relPath)}`);
|
|
437
|
+
fmt.logInfo(` TeamOfOne: ${chalk.cyan(link.remoteUrl)}`);
|
|
438
|
+
if (link.repositoryUrl && link.repositoryUrl !== link.remoteUrl) {
|
|
439
|
+
fmt.logInfo(` GitHub: ${chalk.cyan(link.repositoryUrl)}`);
|
|
440
|
+
}
|
|
427
441
|
}
|
|
428
442
|
if (links.length > limit) {
|
|
429
443
|
fmt.logInfo(chalk.dim(`...and ${links.length - limit} more`));
|
package/constants.mjs
CHANGED
|
@@ -33,7 +33,8 @@ export const AW_DOCS_BASE_BRANCH = 'master-sync';
|
|
|
33
33
|
export const AW_DOCS_SEED_BRANCH = process.env.AW_DOCS_SEED_BRANCH || 'scaffold';
|
|
34
34
|
export const AW_DOCS_PUBLISH_DIR = 'aw_docs';
|
|
35
35
|
export const AW_DOCS_PUBLIC_BASE_URL = process.env.AW_DOCS_PUBLIC_BASE_URL || `https://github.com/${AW_DOCS_REPO}/blob/${AW_DOCS_BASE_BRANCH}`;
|
|
36
|
-
export const
|
|
36
|
+
export const AW_DOCS_TEAMOFONE_ORIGIN = process.env.AW_DOCS_TEAMOFONE_ORIGIN || 'https://teamofone.msgsndr.net';
|
|
37
|
+
export const AW_DOCS_TEAMOFONE_BASE_URL = process.env.AW_DOCS_TEAMOFONE_BASE_URL || `${AW_DOCS_TEAMOFONE_ORIGIN}/too/docs/GoHighLevel/ghl-aw-docs`;
|
|
37
38
|
|
|
38
39
|
export function defaultAwDocsGithubDocsConfig() {
|
|
39
40
|
return {
|
package/ecc.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import { applyStoredStartupPreferences } from "./startup.mjs";
|
|
|
12
12
|
|
|
13
13
|
const AW_ECC_REPO_SSH = "git@github.com:shreyansh-ghl/aw-ecc.git";
|
|
14
14
|
const AW_ECC_REPO_HTTPS = "https://github.com/shreyansh-ghl/aw-ecc.git";
|
|
15
|
-
export const AW_ECC_TAG = "v1.4.
|
|
15
|
+
export const AW_ECC_TAG = "v1.4.55";
|
|
16
16
|
|
|
17
17
|
const MARKETPLACE_NAME = "aw-marketplace";
|
|
18
18
|
const PLUGIN_KEY = `aw@${MARKETPLACE_NAME}`;
|
package/integrations.mjs
CHANGED
|
@@ -45,6 +45,8 @@ export const INTEGRATIONS = {
|
|
|
45
45
|
type: 'universal-installer',
|
|
46
46
|
label: 'LeanCTX',
|
|
47
47
|
description: 'Context OS for AI — compresses file reads + shell output + memory (60-99% fewer input tokens)',
|
|
48
|
+
autoInstall: false, // opt-in only — install via: aw integrations add lean-ctx
|
|
49
|
+
uninstallCmd: 'lean-ctx uninstall', // runs on: aw integrations remove lean-ctx
|
|
48
50
|
scripts: {
|
|
49
51
|
win32: null, // no PS1 — uses npm fallback (lean-ctx-bin)
|
|
50
52
|
posix: 'https://leanctx.com/install.sh',
|
|
@@ -773,12 +775,25 @@ export async function removeIntegration(key, { silent = false } = {}) {
|
|
|
773
775
|
);
|
|
774
776
|
}
|
|
775
777
|
} else if (integration.type === 'universal-installer') {
|
|
776
|
-
if (
|
|
777
|
-
fmt.
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
778
|
+
if (integration.uninstallCmd) {
|
|
779
|
+
if (!silent) fmt.logStep(`Running ${integration.uninstallCmd}...`);
|
|
780
|
+
try {
|
|
781
|
+
execSync(integration.uninstallCmd, { stdio: silent ? 'ignore' : 'inherit' });
|
|
782
|
+
if (!silent) fmt.logSuccess(`${integration.label} uninstalled`);
|
|
783
|
+
} catch {
|
|
784
|
+
if (!silent) fmt.logWarn(
|
|
785
|
+
`${integration.uninstallCmd} failed or not found. Manual cleanup may be needed.`,
|
|
786
|
+
'Uninstall Warning',
|
|
787
|
+
);
|
|
788
|
+
}
|
|
789
|
+
} else {
|
|
790
|
+
if (!silent) {
|
|
791
|
+
fmt.logWarn(
|
|
792
|
+
`Removed ${integration.label} from the aw manifest.\n` +
|
|
793
|
+
` To fully uninstall: follow the uninstall instructions for ${integration.label} in its documentation.`,
|
|
794
|
+
'Manual Cleanup',
|
|
795
|
+
);
|
|
796
|
+
}
|
|
782
797
|
}
|
|
783
798
|
}
|
|
784
799
|
|
|
@@ -816,6 +831,8 @@ export function suggestForTeam(namespace) {
|
|
|
816
831
|
|
|
817
832
|
return Object.entries(INTEGRATIONS)
|
|
818
833
|
.filter(([, integration]) => {
|
|
834
|
+
// Skip opt-in only integrations (autoInstall: false)
|
|
835
|
+
if (integration.autoInstall === false) return false;
|
|
819
836
|
// Show if: team is in the integration's teams list OR teams list is empty (universal)
|
|
820
837
|
return (
|
|
821
838
|
integration.teams.length === 0 || integration.teams.includes(team)
|