@lmctl-ai/lmctl 0.2.48 → 0.2.49
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/bin/lmscript +2 -1
- package/build-info.json +1 -1
- package/dist/cli/index.js +492 -987
- package/dist/cli/lmscript.js +2205 -0
- package/examples/batchscript.lms +10 -3
- package/examples/n8n/news-digest.lms +1 -1
- package/examples/n8n/rag-search.lms +1 -1
- package/examples/n8n/ticket-triage.lms +1 -1
- package/package.json +2 -6
- package/dist/cli/script.js +0 -2282
- package/dist/lmscript.js +0 -388
package/examples/batchscript.lms
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "lmctl";
|
|
1
2
|
# batchscript.lms - Test-only comparison with procedural lmctl batch
|
|
2
3
|
# Arguments: [teamfile, alias, batchfile, flags...]
|
|
3
4
|
|
|
@@ -28,7 +29,9 @@ for (flag_index = 3; flag_index < len(args); flag_index = flag_index + 1) {
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
# 1. Read prompts
|
|
31
|
-
|
|
32
|
+
readResult = lm_read_prompts(batchfile, single);
|
|
33
|
+
if (readResult.status != "ok") { lm_error(readResult.error); lm_exit(1); }
|
|
34
|
+
prompts = readResult.prompts;
|
|
32
35
|
|
|
33
36
|
if (len(prompts) == 0) {
|
|
34
37
|
lm_error("batch: " + batchfile + ": no prompts found");
|
|
@@ -36,16 +39,20 @@ if (len(prompts) == 0) {
|
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
# 2. Open batch session
|
|
39
|
-
|
|
42
|
+
opened = lm_batch_open(teamfile, alias, batchfile, {
|
|
40
43
|
promptCount: len(prompts),
|
|
41
44
|
legacy: legacy,
|
|
42
45
|
single: single
|
|
43
46
|
});
|
|
44
47
|
|
|
45
|
-
if (
|
|
48
|
+
if (opened.status != "ok") {
|
|
49
|
+
# The open no longer prints its own failure: the script reports it, as lmctl batch does.
|
|
50
|
+
lm_error("batch: " + opened.error);
|
|
46
51
|
lm_exit(1);
|
|
47
52
|
}
|
|
48
53
|
|
|
54
|
+
handle = opened.batch;
|
|
55
|
+
|
|
49
56
|
# 3. Sequential prompt execution
|
|
50
57
|
for (i = 0; i < len(prompts); i = i + 1) {
|
|
51
58
|
promptText = prompts[i];
|
|
@@ -138,7 +138,7 @@ digest_content = "# Daily Engineering & AI Intelligence Digest\n\n" +
|
|
|
138
138
|
"*Automated aggregation via LMScript (n8n Shape 3 pattern)*\n\n" +
|
|
139
139
|
"### Top Stories & Analysis\n\n" +
|
|
140
140
|
join(digest_entries, "\n\n") + "\n\n" +
|
|
141
|
-
"---\n*Generated at unix epoch: " + str(
|
|
141
|
+
"---\n*Generated at unix epoch: " + str(now()) + "*\n";
|
|
142
142
|
|
|
143
143
|
digest_file = "examples/n8n/daily-digest.md";
|
|
144
144
|
write_file(digest_file, digest_content);
|
|
@@ -74,7 +74,7 @@ if (len(trim(env_key[0])) > 0) {
|
|
|
74
74
|
sample_doc = "# Antigravity Architecture Guide\n\n" +
|
|
75
75
|
"Antigravity uses a three-layer agent architecture: immutable role prompt, disposable session, and canonical durable-memory.\n\n" +
|
|
76
76
|
"The command-line interface lmctl is strictly stateless. Persistent daemon processes, time-series metrics, and background mail relays belong to the sibling tool lmbee.\n\n" +
|
|
77
|
-
"LMScript is
|
|
77
|
+
"LMScript is a standalone scripting language; lmctl script launches its sibling executable. It provides core standard functions and lmctl orchestration host functions like lm_prompt and lm_members.\n\n" +
|
|
78
78
|
"Worktrees are used for isolated experimental branches. Bare git push is deliberately prevented on experimental branches until changes are reviewed and verified.";
|
|
79
79
|
|
|
80
80
|
question = "Where do persistent background daemons and time-series metrics belong?";
|
|
@@ -143,7 +143,7 @@ if (category == "bug" || category == "ops" || category == "security") {
|
|
|
143
143
|
# Branch 3: Billing / Feature -> Append to business queue ledger
|
|
144
144
|
print("[Route: Business Queue] Appending to internal triage ledger...");
|
|
145
145
|
log_entry = json_stringify({
|
|
146
|
-
"timestamp":
|
|
146
|
+
"timestamp": now(),
|
|
147
147
|
"category": category,
|
|
148
148
|
"urgency": urgency,
|
|
149
149
|
"summary": summary
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmctl-ai/lmctl",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.49",
|
|
4
4
|
"description": "A provider-agnostic control plane for teams of AI coding agents — across providers, with independent review and durable memory.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://lmctl.com",
|
|
@@ -12,17 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": "git+https://github.com/lmctlhq/lmctl-mono.git",
|
|
14
14
|
"exports": {
|
|
15
|
-
"./script": {
|
|
16
|
-
"default": "./dist/cli/script.js"
|
|
17
|
-
},
|
|
18
15
|
"./package.json": "./package.json"
|
|
19
16
|
},
|
|
20
17
|
"files": [
|
|
21
18
|
"dist/cli/index.js",
|
|
22
|
-
"dist/cli/script.js",
|
|
23
19
|
"dist/cli/schema.sql",
|
|
24
20
|
"dist/schema.sql",
|
|
25
|
-
"dist/lmscript.js",
|
|
21
|
+
"dist/cli/lmscript.js",
|
|
26
22
|
"dist/lmbee.js",
|
|
27
23
|
"dist/config/",
|
|
28
24
|
"dist/public/",
|