@integrity-labs/agt-cli 0.7.13 → 0.8.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/bin/agt.js +3 -3
- package/dist/bin/agt.js.map +1 -1
- package/dist/{chunk-X3FLX6EO.js → chunk-55TMBRXT.js} +47 -86
- package/dist/chunk-55TMBRXT.js.map +1 -0
- package/dist/lib/manager-worker.js +316 -175
- package/dist/lib/manager-worker.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-X3FLX6EO.js.map +0 -1
|
@@ -132,18 +132,6 @@ var INTEGRATION_REGISTRY = [
|
|
|
132
132
|
{ id: "xero:manage-settings", name: "Manage Settings", description: "Manage org settings and chart of accounts", access: "admin" }
|
|
133
133
|
]
|
|
134
134
|
},
|
|
135
|
-
{
|
|
136
|
-
id: "lossless-claw",
|
|
137
|
-
name: "Lossless Memory",
|
|
138
|
-
category: "knowledge",
|
|
139
|
-
description: "DAG-based incremental summarization \u2014 persistent agent memory that survives context window limits",
|
|
140
|
-
supported_auth_types: ["none"],
|
|
141
|
-
capabilities: [
|
|
142
|
-
{ id: "lcm:search", name: "Search Memory", description: "Search through summarized conversation history", access: "read" },
|
|
143
|
-
{ id: "lcm:describe", name: "Describe Memory", description: "Describe the structure and contents of memory", access: "read" },
|
|
144
|
-
{ id: "lcm:expand", name: "Expand Memory", description: "Expand summarized memory nodes for full detail", access: "read" }
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
135
|
{
|
|
148
136
|
id: "qmd",
|
|
149
137
|
name: "QMD Memory Search",
|
|
@@ -301,20 +289,6 @@ function mapIntegrationsToOpenClaw(integrations) {
|
|
|
301
289
|
env: { [definition.cli_tool.env_key]: apiKey, ...definition.cli_tool.extra_env }
|
|
302
290
|
};
|
|
303
291
|
}
|
|
304
|
-
if (integration.definition_id === "lossless-claw") {
|
|
305
|
-
const pluginConfig = {};
|
|
306
|
-
const cfg = integration.config;
|
|
307
|
-
if (cfg.freshTailCount !== void 0)
|
|
308
|
-
pluginConfig.freshTailCount = cfg.freshTailCount;
|
|
309
|
-
if (cfg.contextThreshold !== void 0)
|
|
310
|
-
pluginConfig.contextThreshold = cfg.contextThreshold;
|
|
311
|
-
if (cfg.incrementalMaxDepth !== void 0)
|
|
312
|
-
pluginConfig.incrementalMaxDepth = cfg.incrementalMaxDepth;
|
|
313
|
-
plugins["lossless-claw"] = {
|
|
314
|
-
enabled: true,
|
|
315
|
-
...Object.keys(pluginConfig).length > 0 ? { config: pluginConfig } : {}
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
292
|
if (integration.definition_id === "qmd") {
|
|
319
293
|
memory = mapQmdConfig(integration.config);
|
|
320
294
|
}
|
|
@@ -534,18 +508,6 @@ function writeIntegrationTokenFile(codeName, integrations) {
|
|
|
534
508
|
chmodSync(tmpFilePath, 384);
|
|
535
509
|
renameSync(tmpFilePath, tokenFilePath);
|
|
536
510
|
}
|
|
537
|
-
function resolveLcmDatabasePath(scope, codeName, config) {
|
|
538
|
-
const homeDir = getHomeDir();
|
|
539
|
-
if (scope === "organization") {
|
|
540
|
-
const orgSlug = config.org_slug ?? "default";
|
|
541
|
-
return join(homeDir, ".openclaw-data", "knowledge", `org-${orgSlug}`, "lcm.db");
|
|
542
|
-
}
|
|
543
|
-
if (scope === "team") {
|
|
544
|
-
const teamSlug = config.team_slug ?? "default";
|
|
545
|
-
return join(homeDir, ".openclaw-data", "knowledge", `team-${teamSlug}`, "lcm.db");
|
|
546
|
-
}
|
|
547
|
-
return join(homeDir, `.openclaw-${codeName}`, "lcm.db");
|
|
548
|
-
}
|
|
549
511
|
function getOpenClawConfigPath(profile) {
|
|
550
512
|
const homeDir = getHomeDir();
|
|
551
513
|
if (profile) {
|
|
@@ -1201,47 +1163,6 @@ var openclawAdapter = {
|
|
|
1201
1163
|
return changed;
|
|
1202
1164
|
}, codeName);
|
|
1203
1165
|
}
|
|
1204
|
-
if (integrationConfig.plugins && Object.keys(integrationConfig.plugins).length > 0) {
|
|
1205
|
-
const lcmIntegration = integrations.find((i) => i.definition_id === "lossless-claw");
|
|
1206
|
-
modifyOpenClawConfig((config) => {
|
|
1207
|
-
const plugins = config["plugins"] ?? {};
|
|
1208
|
-
const slots = plugins["slots"] ?? {};
|
|
1209
|
-
const entries = plugins["entries"] ?? {};
|
|
1210
|
-
let changed = false;
|
|
1211
|
-
for (const [pluginId, pluginConfig] of Object.entries(integrationConfig.plugins)) {
|
|
1212
|
-
if (pluginId === "lossless-claw") {
|
|
1213
|
-
const homeDir = getHomeDir();
|
|
1214
|
-
const pluginPaths = [
|
|
1215
|
-
join(homeDir, `.openclaw-${codeName}`, "plugins", "lossless-claw"),
|
|
1216
|
-
join(homeDir, ".openclaw", "plugins", "lossless-claw")
|
|
1217
|
-
];
|
|
1218
|
-
const pluginInstalled = pluginPaths.some((p) => existsSync(p));
|
|
1219
|
-
if (!pluginInstalled) {
|
|
1220
|
-
continue;
|
|
1221
|
-
}
|
|
1222
|
-
slots["contextEngine"] = "lossless-claw";
|
|
1223
|
-
entries["lossless-claw"] = {
|
|
1224
|
-
enabled: pluginConfig.enabled,
|
|
1225
|
-
...pluginConfig.config ? { config: pluginConfig.config } : {}
|
|
1226
|
-
};
|
|
1227
|
-
if (lcmIntegration) {
|
|
1228
|
-
const dbPath = resolveLcmDatabasePath(lcmIntegration.scope, codeName, lcmIntegration.config);
|
|
1229
|
-
const topEnv = config["env"] ?? {};
|
|
1230
|
-
topEnv["LCM_DATABASE_PATH"] = dbPath;
|
|
1231
|
-
config["env"] = topEnv;
|
|
1232
|
-
mkdirSync(dirname(dbPath), { recursive: true });
|
|
1233
|
-
}
|
|
1234
|
-
changed = true;
|
|
1235
|
-
}
|
|
1236
|
-
}
|
|
1237
|
-
if (changed) {
|
|
1238
|
-
plugins["slots"] = slots;
|
|
1239
|
-
plugins["entries"] = entries;
|
|
1240
|
-
config["plugins"] = plugins;
|
|
1241
|
-
}
|
|
1242
|
-
return changed;
|
|
1243
|
-
}, codeName);
|
|
1244
|
-
}
|
|
1245
1166
|
if (integrationConfig.memory) {
|
|
1246
1167
|
modifyOpenClawConfig((config) => {
|
|
1247
1168
|
const homeDir = getHomeDir();
|
|
@@ -1938,7 +1859,33 @@ first to load your recent board state. This gives you context about completed an
|
|
|
1938
1859
|
in-progress items so you can answer accurately.
|
|
1939
1860
|
|
|
1940
1861
|
${memorySection}
|
|
1941
|
-
${integrationsSection}##
|
|
1862
|
+
${integrationsSection}## Development Workflow
|
|
1863
|
+
|
|
1864
|
+
### Repository Management
|
|
1865
|
+
|
|
1866
|
+
Store all cloned repositories under \`~/code/\`.
|
|
1867
|
+
This keeps your workspace organized and separates code from agent config files.
|
|
1868
|
+
|
|
1869
|
+
\`\`\`
|
|
1870
|
+
~/code/ \u2190 all repos live here
|
|
1871
|
+
\u251C\u2500\u2500 project-a/
|
|
1872
|
+
\u251C\u2500\u2500 project-b/
|
|
1873
|
+
\u2514\u2500\u2500 project-c/
|
|
1874
|
+
\`\`\`
|
|
1875
|
+
|
|
1876
|
+
### Git Worktrees (Default Approach)
|
|
1877
|
+
|
|
1878
|
+
When working on code tasks, always use **git worktrees** instead of switching branches.
|
|
1879
|
+
Worktrees allow parallel work without disrupting running services, other agents, or the main checkout.
|
|
1880
|
+
|
|
1881
|
+
1. Create a worktree from the repo: \`git worktree add ../repo-issue-name -b feature/issue-name origin/main\`
|
|
1882
|
+
2. Work in the worktree directory \u2014 the main repo stays on its current branch
|
|
1883
|
+
3. Commit and push from the worktree
|
|
1884
|
+
4. When done, clean up: \`git worktree remove ../repo-issue-name\`
|
|
1885
|
+
|
|
1886
|
+
**Never switch branches on the main repo checkout.** Use worktrees for all feature work.
|
|
1887
|
+
|
|
1888
|
+
## Rules
|
|
1942
1889
|
|
|
1943
1890
|
- Never expose secrets or API keys in output.
|
|
1944
1891
|
- Respect channel restrictions \u2014 only operate on allowed channels.
|
|
@@ -2500,9 +2447,9 @@ var claudeCodeAdapter = {
|
|
|
2500
2447
|
const def = INTEGRATION_REGISTRY.find((d) => d.id === i.definition_id);
|
|
2501
2448
|
return {
|
|
2502
2449
|
id: i.definition_id,
|
|
2503
|
-
name: def?.name || i.definition_id,
|
|
2450
|
+
name: def?.name || i.display_name || i.definition_id,
|
|
2504
2451
|
cliBinary: def?.cli_tool?.binary,
|
|
2505
|
-
description: def?.description
|
|
2452
|
+
description: def?.description || (i.auth_type === "managed" ? "Managed integration via Composio" : void 0)
|
|
2506
2453
|
};
|
|
2507
2454
|
});
|
|
2508
2455
|
const newSection = buildIntegrationsSection(summaries);
|
|
@@ -2539,9 +2486,18 @@ var claudeCodeAdapter = {
|
|
|
2539
2486
|
const mcpServers = mcpConfig["mcpServers"];
|
|
2540
2487
|
let serverEntry;
|
|
2541
2488
|
if ("url" in config) {
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2489
|
+
if (config.url.includes("composio.dev")) {
|
|
2490
|
+
serverEntry = {
|
|
2491
|
+
command: "npx",
|
|
2492
|
+
args: ["-y", "@composio/mcp", "start", "--url", config.url],
|
|
2493
|
+
env: config.headers ?? {}
|
|
2494
|
+
};
|
|
2495
|
+
} else {
|
|
2496
|
+
serverEntry = {
|
|
2497
|
+
command: "npx",
|
|
2498
|
+
args: ["-y", "mcp-remote", config.url, "--allow-http"]
|
|
2499
|
+
};
|
|
2500
|
+
}
|
|
2545
2501
|
} else {
|
|
2546
2502
|
serverEntry = { command: config.command };
|
|
2547
2503
|
if (config.args?.length)
|
|
@@ -4013,6 +3969,11 @@ ${yaml}---
|
|
|
4013
3969
|
Only tools listed here are allowed. Secrets via \`secret_ref://\` only.
|
|
4014
3970
|
|
|
4015
3971
|
${toolsList}
|
|
3972
|
+
|
|
3973
|
+
## Git Workflow
|
|
3974
|
+
|
|
3975
|
+
Use **git worktrees** for all feature work. Do not switch branches on the main checkout.
|
|
3976
|
+
Store repositories under \`~/code/\` and create worktrees alongside them for parallel tasks.
|
|
4016
3977
|
`;
|
|
4017
3978
|
}
|
|
4018
3979
|
|
|
@@ -4744,4 +4705,4 @@ export {
|
|
|
4744
4705
|
detectDrift,
|
|
4745
4706
|
provision
|
|
4746
4707
|
};
|
|
4747
|
-
//# sourceMappingURL=chunk-
|
|
4708
|
+
//# sourceMappingURL=chunk-55TMBRXT.js.map
|