agentlang 0.3.1 → 0.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/package.json CHANGED
@@ -1,184 +1,183 @@
1
1
  {
2
- "name": "agentlang",
3
- "description": "The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans",
4
- "version": "0.3.1",
5
- "license": "Sustainable Use License",
6
- "author": "agentlang-ai",
7
- "homepage": "https://github.com/agentlang-ai/agentlang#readme",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/agentlang-ai/agentlang.git"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/agentlang-ai/agentlang/issues"
14
- },
15
- "keywords": [
16
- "agentlang",
17
- "agents-generation",
18
- "ai-agents",
19
- "enterprise",
20
- "multi-agent",
21
- "no-code",
22
- "agent-teams",
23
- "production-ready"
24
- ],
25
- "files": [
26
- "bin",
27
- "out",
28
- "src",
29
- "LICENSE"
30
- ],
31
- "type": "module",
32
- "publishConfig": {
33
- "access": "public",
34
- "registry": "https://registry.npmjs.org/"
35
- },
36
- "scripts": {
37
- "build": "tsc -b tsconfig.src.json && tsc -b tsconfig.declarations.json && node esbuild.mjs",
38
- "build:ts": "tsc -b tsconfig.src.json",
39
- "watch": "concurrently -n tsc,esbuild -c blue,yellow \"tsc -b tsconfig.src.json --watch\" \"node esbuild.mjs --watch\"",
40
- "lint": "eslint . --ext .ts",
41
- "lint:fix": "eslint . --ext .ts --fix",
42
- "format": "prettier --write \"src/**/*.{js,ts,tsx,json,md}\"",
43
- "format:check": "prettier --check \"src/**/*.{js,ts,tsx,json,md}\"",
44
- "langium:generate": "langium generate",
45
- "langium:generate:production": "langium generate --mode=production",
46
- "langium:watch": "langium generate --watch",
47
- "vscode:prepublish": "npm run build && npm run lint",
48
- "dev": "vite",
49
- "test": "vitest run",
50
- "test:verbose": "VITEST_VERBOSE=true vitest run"
51
- },
52
- "dependencies": {
53
- "@aws-sdk/client-cognito-identity": "^3.828.0",
54
- "@aws-sdk/client-cognito-identity-provider": "^3.828.0",
55
- "@aws-sdk/credential-providers": "^3.828.0",
56
- "@isomorphic-git/lightning-fs": "^4.6.1",
57
- "@langchain/anthropic": "^0.3.25",
58
- "@langchain/core": "^0.3.59",
59
- "@langchain/openai": "^0.5.18",
60
- "amazon-cognito-identity-js": "^6.3.15",
61
- "aws-jwt-verify": "^5.1.0",
62
- "bcryptjs": "^3.0.2",
63
- "buffer": "^6.0.3",
64
- "chalk": "~5.3.0",
65
- "commander": "~11.0.0",
66
- "express": "^5.1.0",
67
- "handlebars": "^4.7.8",
68
- "langchain": "^0.3.28",
69
- "langium": "^3.5.0",
70
- "openapi-client-axios": "^7.6.0",
71
- "pg": "^8.16.1",
72
- "pgvector": "^0.2.1",
73
- "sqlite3": "^5.1.7",
74
- "sql.js": "^1.13.0",
75
- "typeorm": "^0.3.25",
76
- "vscode-languageserver": "^9.0.1",
77
- "winston": "^3.17.0",
78
- "winston-daily-rotate-file": "^5.0.0",
79
- "zod": "^3.25.55"
80
- },
81
- "optionalDependencies": {},
82
- "overrides": {
83
- "semver": "^7.5.3",
84
- "trim-newlines": ">=3.0.1"
85
- },
86
- "devDependencies": {
87
- "@codingame/esbuild-import-meta-url-plugin": "~1.0.2",
88
- "@eslint/js": "^9.26.0",
89
- "@types/cookie-parser": "^1.4.9",
90
- "@types/express": "^5.0.1",
91
- "@types/node": "^18.19.110",
92
- "@types/sql.js": "^1.4.9",
93
- "@types/vscode": "^1.100.0",
94
- "@typescript-eslint/eslint-plugin": "~8.32.1",
95
- "@typescript-eslint/parser": "~8.32.1",
96
- "brace-expansion": ">=2.0.2",
97
- "concurrently": "~8.2.1",
98
- "esbuild": "^0.25.4",
99
- "eslint": "~9.26.0",
100
- "generator-langium": "^3.0.0",
101
- "http-server": "~14.1.1",
102
- "langium-cli": "^3.5.0",
103
- "nodemon": "^3.1.10",
104
- "prettier": "^3.5.3",
105
- "typescript": "^5.8.3",
106
- "typescript-eslint": "^8.32.1",
107
- "vite": "^6.3.5",
108
- "vite-plugin-node-polyfills": "^0.24.0",
109
- "vitest": "^3.1.3",
110
- "vscode-languageclient": "^9.0.1",
111
- "vscode-uri": "^3.1.0"
112
- },
113
- "volta": {
114
- "node": ">=20.0.0",
115
- "npm": ">=10.8.2"
116
- },
117
- "displayName": "agentlang",
118
- "engines": {
119
- "vscode": "^1.67.0",
120
- "node": ">=20.0.0"
121
- },
122
- "categories": [
123
- "Programming Languages"
124
- ],
125
- "contributes": {
126
- "languages": [
127
- {
128
- "id": "agentlang",
129
- "aliases": [
130
- "Agentlang",
131
- "agentlang"
132
- ],
133
- "extensions": [
134
- ".al"
135
- ],
136
- "configuration": "./language-configuration.json"
137
- }
138
- ],
139
- "grammars": [
140
- {
141
- "language": "agentlang",
142
- "scopeName": "source.agentlang",
143
- "path": "syntaxes/agentlang.tmLanguage.json"
144
- }
145
- ]
146
- },
147
- "activationEvents": [
148
- "onLanguage:agentlang"
149
- ],
150
- "main": "./out/extension/main.cjs",
151
- "types": "./out/index.d.ts",
152
- "exports": {
153
- ".": {
154
- "types": "./out/index.d.ts",
155
- "import": "./out/extension/main.cjs",
156
- "require": "./out/extension/main.cjs"
157
- },
158
- "./browser": {
159
- "types": "./out/browser.d.ts",
160
- "import": "./out/browser.js",
161
- "default": "./out/browser.js"
162
- },
163
- "./src/*": {
164
- "types": "./out/*.d.ts",
165
- "import": "./out/*.js",
166
- "require": "./out/*.js",
167
- "default": "./out/*.js"
168
- },
169
- "./out/*": "./out/*"
170
- },
171
- "bin": {
172
- "agentlang-cli": "./bin/cli.js"
173
- },
174
- "lint-staged": {
175
- "*.{js,ts,tsx}": [
176
- "eslint --fix --cache",
177
- "prettier --write"
178
- ],
179
- "*.{json,md,yml,yaml}": [
180
- "prettier --write"
181
- ]
182
- },
183
- "packageManager": "pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad"
184
- }
2
+ "name": "agentlang",
3
+ "description": "The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans",
4
+ "version": "0.3.2",
5
+ "license": "Sustainable Use License",
6
+ "author": "agentlang-ai",
7
+ "homepage": "https://github.com/agentlang-ai/agentlang#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/agentlang-ai/agentlang.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/agentlang-ai/agentlang/issues"
14
+ },
15
+ "keywords": [
16
+ "agentlang",
17
+ "agents-generation",
18
+ "ai-agents",
19
+ "enterprise",
20
+ "multi-agent",
21
+ "no-code",
22
+ "agent-teams",
23
+ "production-ready"
24
+ ],
25
+ "files": [
26
+ "bin",
27
+ "out",
28
+ "src",
29
+ "LICENSE"
30
+ ],
31
+ "type": "module",
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "registry": "https://registry.npmjs.org/"
35
+ },
36
+ "dependencies": {
37
+ "@aws-sdk/client-cognito-identity": "^3.828.0",
38
+ "@aws-sdk/client-cognito-identity-provider": "^3.828.0",
39
+ "@aws-sdk/credential-providers": "^3.828.0",
40
+ "@isomorphic-git/lightning-fs": "^4.6.1",
41
+ "@langchain/anthropic": "^0.3.25",
42
+ "@langchain/core": "^0.3.59",
43
+ "@langchain/openai": "^0.5.18",
44
+ "amazon-cognito-identity-js": "^6.3.15",
45
+ "aws-jwt-verify": "^5.1.0",
46
+ "bcryptjs": "^3.0.2",
47
+ "buffer": "^6.0.3",
48
+ "chalk": "~5.3.0",
49
+ "commander": "~11.0.0",
50
+ "express": "^5.1.0",
51
+ "handlebars": "^4.7.8",
52
+ "langchain": "^0.3.28",
53
+ "langium": "^3.5.0",
54
+ "openapi-client-axios": "^7.6.0",
55
+ "pg": "^8.16.1",
56
+ "pgvector": "^0.2.1",
57
+ "sqlite3": "^5.1.7",
58
+ "sql.js": "^1.13.0",
59
+ "typeorm": "^0.3.25",
60
+ "vscode-languageserver": "^9.0.1",
61
+ "winston": "^3.17.0",
62
+ "winston-daily-rotate-file": "^5.0.0",
63
+ "zod": "^3.25.55"
64
+ },
65
+ "optionalDependencies": {},
66
+ "overrides": {
67
+ "semver": "^7.5.3",
68
+ "trim-newlines": ">=3.0.1"
69
+ },
70
+ "devDependencies": {
71
+ "@codingame/esbuild-import-meta-url-plugin": "~1.0.2",
72
+ "@eslint/js": "^9.26.0",
73
+ "@types/cookie-parser": "^1.4.9",
74
+ "@types/express": "^5.0.1",
75
+ "@types/node": "^18.19.110",
76
+ "@types/sql.js": "^1.4.9",
77
+ "@types/vscode": "^1.100.0",
78
+ "@typescript-eslint/eslint-plugin": "~8.32.1",
79
+ "@typescript-eslint/parser": "~8.32.1",
80
+ "brace-expansion": ">=2.0.2",
81
+ "concurrently": "~8.2.1",
82
+ "esbuild": "^0.25.4",
83
+ "eslint": "~9.26.0",
84
+ "generator-langium": "^3.0.0",
85
+ "http-server": "~14.1.1",
86
+ "langium-cli": "^3.5.0",
87
+ "nodemon": "^3.1.10",
88
+ "prettier": "^3.5.3",
89
+ "typescript": "^5.8.3",
90
+ "typescript-eslint": "^8.32.1",
91
+ "vite": "^6.3.5",
92
+ "vite-plugin-node-polyfills": "^0.24.0",
93
+ "vitest": "^3.1.3",
94
+ "vscode-languageclient": "^9.0.1",
95
+ "vscode-uri": "^3.1.0"
96
+ },
97
+ "volta": {
98
+ "node": ">=20.0.0",
99
+ "npm": ">=10.8.2"
100
+ },
101
+ "displayName": "agentlang",
102
+ "engines": {
103
+ "vscode": "^1.67.0",
104
+ "node": ">=20.0.0"
105
+ },
106
+ "categories": [
107
+ "Programming Languages"
108
+ ],
109
+ "contributes": {
110
+ "languages": [
111
+ {
112
+ "id": "agentlang",
113
+ "aliases": [
114
+ "Agentlang",
115
+ "agentlang"
116
+ ],
117
+ "extensions": [
118
+ ".al"
119
+ ],
120
+ "configuration": "./language-configuration.json"
121
+ }
122
+ ],
123
+ "grammars": [
124
+ {
125
+ "language": "agentlang",
126
+ "scopeName": "source.agentlang",
127
+ "path": "syntaxes/agentlang.tmLanguage.json"
128
+ }
129
+ ]
130
+ },
131
+ "activationEvents": [
132
+ "onLanguage:agentlang"
133
+ ],
134
+ "main": "./out/extension/main.cjs",
135
+ "types": "./out/index.d.ts",
136
+ "exports": {
137
+ ".": {
138
+ "types": "./out/index.d.ts",
139
+ "import": "./out/extension/main.cjs",
140
+ "require": "./out/extension/main.cjs"
141
+ },
142
+ "./browser": {
143
+ "types": "./out/browser.d.ts",
144
+ "import": "./out/browser.js",
145
+ "default": "./out/browser.js"
146
+ },
147
+ "./src/*": {
148
+ "types": "./out/*.d.ts",
149
+ "import": "./out/*.js",
150
+ "require": "./out/*.js",
151
+ "default": "./out/*.js"
152
+ },
153
+ "./out/*": "./out/*"
154
+ },
155
+ "bin": {
156
+ "agentlang-cli": "./bin/cli.js"
157
+ },
158
+ "lint-staged": {
159
+ "*.{js,ts,tsx}": [
160
+ "eslint --fix --cache",
161
+ "prettier --write"
162
+ ],
163
+ "*.{json,md,yml,yaml}": [
164
+ "prettier --write"
165
+ ]
166
+ },
167
+ "scripts": {
168
+ "build": "tsc -b tsconfig.src.json && tsc -b tsconfig.declarations.json && node esbuild.mjs",
169
+ "build:ts": "tsc -b tsconfig.src.json",
170
+ "watch": "concurrently -n tsc,esbuild -c blue,yellow \"tsc -b tsconfig.src.json --watch\" \"node esbuild.mjs --watch\"",
171
+ "lint": "eslint . --ext .ts",
172
+ "lint:fix": "eslint . --ext .ts --fix",
173
+ "format": "prettier --write \"src/**/*.{js,ts,tsx,json,md}\"",
174
+ "format:check": "prettier --check \"src/**/*.{js,ts,tsx,json,md}\"",
175
+ "langium:generate": "langium generate",
176
+ "langium:generate:production": "langium generate --mode=production",
177
+ "langium:watch": "langium generate --watch",
178
+ "vscode:prepublish": "npm run build && npm run lint",
179
+ "dev": "vite",
180
+ "test": "vitest run",
181
+ "test:verbose": "VITEST_VERBOSE=true vitest run"
182
+ }
183
+ }
@@ -354,13 +354,21 @@ Now apply the same analysis to the following context and cases provided by the u
354
354
  `;
355
355
 
356
356
  export type AgentCondition = {
357
- cond: string;
357
+ if: string;
358
358
  then: string;
359
359
  internal: boolean;
360
360
  };
361
361
 
362
362
  const AgentDirectives = new Map<string, AgentCondition[]>();
363
363
 
364
+ export function newAgentDirective(
365
+ cond: string,
366
+ then: string,
367
+ internal: boolean = false
368
+ ): AgentCondition {
369
+ return { if: cond, then, internal };
370
+ }
371
+
364
372
  export function registerAgentDirectives(agentFqName: string, conds: AgentCondition[]) {
365
373
  AgentDirectives.set(agentFqName, conds);
366
374
  }
@@ -379,7 +387,7 @@ export function getAgentDirectivesJson(agentFqName: string): string | undefined
379
387
  const conds = getAgentDirectivesInternal(agentFqName);
380
388
  if (conds) {
381
389
  const fmted = conds.map((c: AgentCondition) => {
382
- return { if: c.cond, then: c.then };
390
+ return { if: c.if, then: c.then };
383
391
  });
384
392
  return JSON.stringify(fmted);
385
393
  }
@@ -402,6 +410,14 @@ export type AgentScenario = {
402
410
  internal: boolean;
403
411
  };
404
412
 
413
+ export function newAgentScenario(
414
+ user: string,
415
+ ai: string,
416
+ internal: boolean = false
417
+ ): AgentScenario {
418
+ return { user, ai, internal };
419
+ }
420
+
405
421
  const AgentScenarios = new Map<string, AgentScenario[]>();
406
422
 
407
423
  export function registerAgentScenarios(agentFqName: string, scenarios: AgentScenario[]) {
@@ -449,6 +465,15 @@ export type AgentGlossaryEntry = {
449
465
  internal: boolean;
450
466
  };
451
467
 
468
+ export function newAgentGlossaryEntry(
469
+ name: string,
470
+ meaning: string,
471
+ synonyms: string | undefined,
472
+ internal: boolean = false
473
+ ): AgentGlossaryEntry {
474
+ return { name, meaning, synonyms, internal };
475
+ }
476
+
452
477
  const AgentGlossary = new Map<string, AgentGlossaryEntry[]>();
453
478
 
454
479
  export function registerAgentGlossary(agentFqName: string, glossary: AgentGlossaryEntry[]) {
@@ -529,7 +529,7 @@ function processAgentDirectives(agentName: string, value: Literal): AgentConditi
529
529
  });
530
530
  if (cond && then) {
531
531
  const internal = true;
532
- conds?.push({ cond, then, internal });
532
+ conds?.push({ if: cond, then, internal });
533
533
  } else {
534
534
  throw new Error(`Invalid condition spec in agent ${agentName}`);
535
535
  }
@@ -821,9 +821,11 @@ function addScenarioDefintion(def: ScenarioDefinition, moduleName: string) {
821
821
  const m = asStringLiteralsMap(def.body);
822
822
  const user = m.get('user');
823
823
  const ai = m.get('ai');
824
- if (user && ai) addAgentScenario(n, { user: user, ai: ai, internal: false });
825
- else throw new Error(`scenario ${def.name} requires both user and ai entries`);
826
- fetchModule(moduleName).addScenario(def);
824
+ if (user && ai) {
825
+ const scn = { user: user, ai: ai, internal: false };
826
+ addAgentScenario(n, scn);
827
+ fetchModule(moduleName).addScenario(def.name, scn);
828
+ } else throw new Error(`scenario ${def.name} requires both user and ai entries`);
827
829
  }
828
830
  }
829
831
 
@@ -836,9 +838,11 @@ function addDirectiveDefintion(def: DirectiveDefinition, moduleName: string) {
836
838
  const m = asStringLiteralsMap(def.body);
837
839
  const cond = m.get('if');
838
840
  const then = m.get('then');
839
- if (cond && then) addAgentDirective(n, { cond: cond, then: then, internal: false });
840
- else throw new Error(`directive ${def.name} requires both if and then entries`);
841
- fetchModule(moduleName).addDirective(def);
841
+ if (cond && then) {
842
+ const dir = { if: cond, then: then, internal: false };
843
+ addAgentDirective(n, dir);
844
+ fetchModule(moduleName).addDirective(def.name, dir);
845
+ } else throw new Error(`directive ${def.name} requires both if and then entries`);
842
846
  }
843
847
  }
844
848
 
@@ -852,15 +856,16 @@ function addGlossaryEntryDefintion(def: GlossaryEntryDefinition, moduleName: str
852
856
  const name = m.get('name');
853
857
  const meaning = m.get('meaning');
854
858
  const syn = m.get('synonyms');
855
- if (name && meaning)
856
- addAgentGlossaryEntry(n, {
859
+ if (name && meaning) {
860
+ const ge = {
857
861
  name: name,
858
862
  meaning: meaning,
859
863
  synonyms: syn,
860
864
  internal: false,
861
- });
862
- else throw new Error(`glossaryEntry ${def.name} requires both name and meaning keys`);
863
- fetchModule(moduleName).addGlossaryEntry(def);
865
+ };
866
+ addAgentGlossaryEntry(n, ge);
867
+ fetchModule(moduleName).addGlossaryEntry(def.name, ge);
868
+ } else throw new Error(`glossaryEntry ${def.name} requires both name and meaning keys`);
864
869
  }
865
870
  }
866
871