agentlang 0.9.11 → 0.10.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/out/language/generated/ast.d.ts +60 -42
- package/out/language/generated/ast.d.ts.map +1 -1
- package/out/language/generated/ast.js +45 -31
- package/out/language/generated/ast.js.map +1 -1
- package/out/language/generated/grammar.d.ts.map +1 -1
- package/out/language/generated/grammar.js +294 -327
- package/out/language/generated/grammar.js.map +1 -1
- package/out/language/main.cjs +336 -358
- package/out/language/main.cjs.map +2 -2
- package/out/language/parser.d.ts +11 -1
- package/out/language/parser.d.ts.map +1 -1
- package/out/language/parser.js +56 -6
- package/out/language/parser.js.map +1 -1
- package/out/language/syntax.d.ts +8 -0
- package/out/language/syntax.d.ts.map +1 -1
- package/out/language/syntax.js +11 -2
- package/out/language/syntax.js.map +1 -1
- package/out/runtime/agents/common.d.ts +2 -2
- package/out/runtime/agents/common.js +1 -1
- package/out/runtime/interpreter.d.ts.map +1 -1
- package/out/runtime/interpreter.js +104 -87
- package/out/runtime/interpreter.js.map +1 -1
- package/out/runtime/modules/ai.d.ts +2 -5
- package/out/runtime/modules/ai.d.ts.map +1 -1
- package/out/runtime/modules/ai.js +28 -19
- package/out/runtime/modules/ai.js.map +1 -1
- package/out/runtime/services/documentFetcher.js +2 -2
- package/out/runtime/services/documentFetcher.js.map +1 -1
- package/out/runtime/util.d.ts +10 -0
- package/out/runtime/util.d.ts.map +1 -1
- package/out/runtime/util.js +27 -2
- package/out/runtime/util.js.map +1 -1
- package/out/utils/fs/index.d.ts +12 -2
- package/out/utils/fs/index.d.ts.map +1 -1
- package/out/utils/fs/index.js +27 -6
- package/out/utils/fs/index.js.map +1 -1
- package/package.json +1 -1
- package/src/language/agentlang.langium +6 -9
- package/src/language/generated/ast.ts +66 -43
- package/src/language/generated/grammar.ts +294 -327
- package/src/language/parser.ts +65 -4
- package/src/language/syntax.ts +21 -2
- package/src/runtime/agents/common.ts +1 -1
- package/src/runtime/interpreter.ts +111 -84
- package/src/runtime/modules/ai.ts +35 -25
- package/src/runtime/services/documentFetcher.ts +2 -2
- package/src/runtime/util.ts +45 -2
- package/src/utils/fs/index.ts +30 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,MAAM,EACN,IAAI,EAEJ,OAAO,EACP,cAAc,EAEd,EAAE,EACF,WAAW,EAWX,OAAO,EACP,KAAK,EAEL,MAAM,EACN,WAAW,EAIX,SAAS,EACT,UAAU,EAEX,MAAM,8BAA8B,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { isBinExpr, isGroup, isLiteral, isNegExpr, isNotExpr, isReturn, } from '../language/generated/ast.js';
|
|
2
|
-
import { defineAgentEvent, getOneOfRef, getRelationship, getWorkflow, Instance, isAgentEventInstance, isBetweenRelationship, isContainsRelationship, isEmptyWorkflow, isEntityInstance, isEventInstance, isInstanceOfType, isOneToOneBetweenRelationship, isTimer, makeInstance, maybeInstanceAsString, newInstanceAttributes, PlaceholderRecordEntry, setMetaAttributes, } from './module.js';
|
|
2
|
+
import { Agent, defineAgentEvent, getOneOfRef, getRelationship, getWorkflow, Instance, isAgentEventInstance, isBetweenRelationship, isContainsRelationship, isEmptyWorkflow, isEntityInstance, isEventInstance, isInstanceOfType, isOneToOneBetweenRelationship, isTimer, makeInstance, maybeInstanceAsString, newInstanceAttributes, PlaceholderRecordEntry, setMetaAttributes, } from './module.js';
|
|
3
3
|
import { Resolver } from './resolvers/interface.js';
|
|
4
4
|
import { ResolverAuthInfo } from './resolvers/authinfo.js';
|
|
5
5
|
import { SqlDbResolver } from './resolvers/sqldb/impl.js';
|
|
6
6
|
import { CrudType, DefaultModuleName, escapeFqName, escapeQueryName, fqNameFromPath, isCoreModule, isFqName, isPath, isString, makeCoreModuleName, makeFqName, nameToPath, preprocessRawConfig, QuerySuffix, restoreSpecialChars, splitRefs, } from './util.js';
|
|
7
7
|
import { getResolver, getResolverNameForPath } from './resolvers/registry.js';
|
|
8
|
-
import { parseStatement, parseWorkflow } from '../language/parser.js';
|
|
8
|
+
import { extractQueryOptions, parseStatement, parseWorkflow, } from '../language/parser.js';
|
|
9
9
|
import { AdminSession, AdminUserId } from './auth/defs.js';
|
|
10
10
|
import { AgentEntityName, AgentFqName, AgentInstance, findAgentByName, normalizeGeneratedCode, saveFlowStepResult, } from './modules/ai.js';
|
|
11
11
|
import { logger } from './logger.js';
|
|
@@ -1219,17 +1219,18 @@ async function maybeValidateOneOfRefs(inst, env) {
|
|
|
1219
1219
|
}
|
|
1220
1220
|
}
|
|
1221
1221
|
}
|
|
1222
|
-
function maybeSetQueryClauses(inst,
|
|
1223
|
-
if (
|
|
1224
|
-
inst.setGroupBy(
|
|
1222
|
+
function maybeSetQueryClauses(inst, qopts) {
|
|
1223
|
+
if (qopts.groupByClause) {
|
|
1224
|
+
inst.setGroupBy(qopts.groupByClause.colNames);
|
|
1225
1225
|
}
|
|
1226
|
-
if (
|
|
1227
|
-
inst.setOrderBy(
|
|
1226
|
+
if (qopts.orderByClause) {
|
|
1227
|
+
inst.setOrderBy(qopts.orderByClause.colNames, qopts.orderByClause.order === '@desc');
|
|
1228
1228
|
}
|
|
1229
1229
|
}
|
|
1230
1230
|
async function evaluateCrudMap(crud, env) {
|
|
1231
1231
|
var _a, _b, _c;
|
|
1232
|
-
|
|
1232
|
+
const qopts = extractQueryOptions(crud);
|
|
1233
|
+
if (!env.isInUpsertMode() && qopts.upsert !== undefined) {
|
|
1233
1234
|
return await evaluateUpsert(crud, env);
|
|
1234
1235
|
}
|
|
1235
1236
|
const inst = crud.source
|
|
@@ -1241,23 +1242,23 @@ async function evaluateCrudMap(crud, env) {
|
|
|
1241
1242
|
const qattrs = inst.queryAttributes;
|
|
1242
1243
|
const onlyAggregates = inst.aggregates !== undefined && qattrs === undefined;
|
|
1243
1244
|
const isQueryAll = onlyAggregates || crud.name.endsWith(QuerySuffix);
|
|
1244
|
-
const distinct =
|
|
1245
|
-
maybeSetQueryClauses(inst,
|
|
1245
|
+
const distinct = qopts.distinct !== undefined;
|
|
1246
|
+
maybeSetQueryClauses(inst, qopts);
|
|
1246
1247
|
if (attrs.size > 0) {
|
|
1247
1248
|
await maybeValidateOneOfRefs(inst, env);
|
|
1248
1249
|
}
|
|
1249
|
-
if (
|
|
1250
|
+
if (qopts.into) {
|
|
1250
1251
|
if (attrs.size > 0) {
|
|
1251
1252
|
throw new Error(`Query pattern for ${entryName} with 'into' clause cannot be used to update attributes`);
|
|
1252
1253
|
}
|
|
1253
1254
|
if (qattrs === undefined && !isQueryAll) {
|
|
1254
1255
|
throw new Error(`Pattern for ${entryName} with 'into' clause must be a query`);
|
|
1255
1256
|
}
|
|
1256
|
-
if (
|
|
1257
|
-
await evaluateJoinQuery(
|
|
1257
|
+
if (qopts.joins && qopts.joins.length > 0) {
|
|
1258
|
+
await evaluateJoinQuery(qopts.joins, qopts.into, qopts.where, inst, distinct, env);
|
|
1258
1259
|
}
|
|
1259
1260
|
else {
|
|
1260
|
-
await evaluateJoinQueryWithRelationships(
|
|
1261
|
+
await evaluateJoinQueryWithRelationships(qopts.into, inst, crud.relationships || [], distinct, env);
|
|
1261
1262
|
}
|
|
1262
1263
|
return;
|
|
1263
1264
|
}
|
|
@@ -1733,7 +1734,7 @@ async function agentInvoke(agent, msg, env) {
|
|
|
1733
1734
|
const obj = agent.maybeValidateJsonResponse(result);
|
|
1734
1735
|
if (obj !== undefined) {
|
|
1735
1736
|
env.setLastResult(obj);
|
|
1736
|
-
env.addToScratchPad(agent.getFqName(), obj);
|
|
1737
|
+
env.addToScratchPad(Agent.NormalizeName(agent.getFqName()), obj);
|
|
1737
1738
|
}
|
|
1738
1739
|
break;
|
|
1739
1740
|
}
|
|
@@ -1815,93 +1816,109 @@ export async function restartFlow(flowContext, userData, env) {
|
|
|
1815
1816
|
}
|
|
1816
1817
|
}
|
|
1817
1818
|
const MaxFlowSteps = 25;
|
|
1819
|
+
const MaxFlowRetries = 10;
|
|
1818
1820
|
async function iterateOnFlow(flow, rootAgent, msg, env) {
|
|
1819
1821
|
var _a;
|
|
1820
1822
|
rootAgent.disableSession();
|
|
1821
|
-
const
|
|
1822
|
-
const
|
|
1823
|
+
const chatId = (_a = env.getActiveEventInstance()) === null || _a === void 0 ? void 0 : _a.lookup('chatId');
|
|
1824
|
+
const iterId = chatId || crypto.randomUUID();
|
|
1825
|
+
let step = '';
|
|
1826
|
+
let fullFlowRetries = 0;
|
|
1827
|
+
while (true) {
|
|
1828
|
+
try {
|
|
1829
|
+
const initContext = msg;
|
|
1830
|
+
const s = `Now consider the following flowchart and return the next step:\n${flow}\n
|
|
1823
1831
|
If you understand from the context that a step with no further possible steps has been evaluated,
|
|
1824
1832
|
terminate the flowchart by returning DONE. Never return to the top or root step of the flowchart, instead return DONE.
|
|
1825
1833
|
Important: Return only the next flow-step or DONE. Do not return any additional description, like your thinking process.\n`;
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
env.flagMonitorEntryAsFlow().incrementMonitor();
|
|
1841
|
-
}
|
|
1842
|
-
let isfxc = false;
|
|
1843
|
-
try {
|
|
1844
|
-
while (step != 'DONE' && !executedSteps.has(step)) {
|
|
1845
|
-
if (stepc > MaxFlowSteps) {
|
|
1846
|
-
throw new Error(`Flow execution exceeded maximum steps limit`);
|
|
1834
|
+
env.setFlowContext(initContext);
|
|
1835
|
+
await agentInvoke(rootAgent, s, env);
|
|
1836
|
+
const rootModuleName = rootAgent.moduleName;
|
|
1837
|
+
let preprocResult = await preprocessStep(env.getLastResult(), rootModuleName, env);
|
|
1838
|
+
step = preprocResult.step;
|
|
1839
|
+
let needAgentProcessing = preprocResult.needAgentProcessing;
|
|
1840
|
+
let context = initContext;
|
|
1841
|
+
let stepc = 0;
|
|
1842
|
+
console.debug(`Starting iteration ${iterId} on flow: ${flow}`);
|
|
1843
|
+
const executedSteps = new Set();
|
|
1844
|
+
const monitoringEnabled = isMonitoringEnabled();
|
|
1845
|
+
let isfxc = false;
|
|
1846
|
+
if (monitoringEnabled) {
|
|
1847
|
+
env.flagMonitorEntryAsFlow().incrementMonitor();
|
|
1847
1848
|
}
|
|
1848
|
-
executedSteps.
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1849
|
+
while (step != 'DONE' && !executedSteps.has(step)) {
|
|
1850
|
+
if (stepc > MaxFlowSteps) {
|
|
1851
|
+
throw new Error(`Flow execution exceeded maximum steps limit`);
|
|
1852
|
+
}
|
|
1853
|
+
executedSteps.add(step);
|
|
1854
|
+
++stepc;
|
|
1855
|
+
const agent = needAgentProcessing
|
|
1856
|
+
? AgentInstance.FromFlowStep(step, rootAgent, context)
|
|
1857
|
+
: undefined;
|
|
1858
|
+
if (agent) {
|
|
1859
|
+
console.debug(`Starting to execute flow step ${step} with agent ${agent.name} with iteration ID ${iterId} and context: \n${context}`);
|
|
1860
|
+
isfxc = agent.isFlowExecutor();
|
|
1861
|
+
const isdec = agent.isDecisionExecutor();
|
|
1862
|
+
if (isfxc || isdec)
|
|
1863
|
+
env.setFlowContext(context);
|
|
1864
|
+
else
|
|
1865
|
+
env.setFlowContext(initContext);
|
|
1866
|
+
if (monitoringEnabled) {
|
|
1867
|
+
env.appendEntryToMonitor(step);
|
|
1868
|
+
}
|
|
1869
|
+
const inst = agent.swapInstruction('');
|
|
1870
|
+
await agentInvoke(agent, inst, env);
|
|
1871
|
+
}
|
|
1872
|
+
else {
|
|
1873
|
+
rootAgent.maybeAddScratchData(env);
|
|
1874
|
+
}
|
|
1875
|
+
if (monitoringEnabled)
|
|
1876
|
+
env.setMonitorEntryResult(env.getLastResult());
|
|
1877
|
+
if (env.isSuspended()) {
|
|
1878
|
+
console.debug(`${iterId} suspending iteration on step ${step}`);
|
|
1879
|
+
await saveFlowSuspension(rootAgent, context, step, env);
|
|
1880
|
+
env.releaseSuspension();
|
|
1881
|
+
return;
|
|
1882
|
+
}
|
|
1883
|
+
const r = env.getLastResult();
|
|
1884
|
+
const rs = maybeInstanceAsString(r);
|
|
1885
|
+
console.debug(`\n----> Completed execution of step ${step}, iteration id ${iterId} with result:\n${rs}`);
|
|
1886
|
+
context = `${context}\n${step} --> ${rs}\n`;
|
|
1887
|
+
if (chatId) {
|
|
1888
|
+
const suspEnv = new Environment(env.name, env);
|
|
1889
|
+
suspEnv.softSuspend();
|
|
1890
|
+
await saveFlowSuspension(rootAgent, context, step, suspEnv);
|
|
1891
|
+
await saveFlowStepResult(chatId, step, rs, suspEnv.getSuspensionId(), env);
|
|
1892
|
+
}
|
|
1893
|
+
if (isfxc) {
|
|
1894
|
+
preprocResult = await preprocessStep(rs, rootModuleName, env);
|
|
1895
|
+
}
|
|
1896
|
+
else {
|
|
1859
1897
|
env.setFlowContext(context);
|
|
1860
|
-
|
|
1861
|
-
env.
|
|
1862
|
-
if (monitoringEnabled) {
|
|
1863
|
-
env.appendEntryToMonitor(step);
|
|
1898
|
+
await agentInvoke(rootAgent, `${s}\n${context}`, env);
|
|
1899
|
+
preprocResult = await preprocessStep(env.getLastResult(), rootModuleName, env);
|
|
1864
1900
|
}
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
}
|
|
1868
|
-
else {
|
|
1869
|
-
rootAgent.maybeAddScratchData(env);
|
|
1870
|
-
}
|
|
1871
|
-
if (monitoringEnabled)
|
|
1872
|
-
env.setMonitorEntryResult(env.getLastResult());
|
|
1873
|
-
if (env.isSuspended()) {
|
|
1874
|
-
console.debug(`${iterId} suspending iteration on step ${step}`);
|
|
1875
|
-
await saveFlowSuspension(rootAgent, context, step, env);
|
|
1876
|
-
env.releaseSuspension();
|
|
1877
|
-
return;
|
|
1901
|
+
step = preprocResult.step;
|
|
1902
|
+
needAgentProcessing = preprocResult.needAgentProcessing;
|
|
1878
1903
|
}
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
await saveFlowSuspension(rootAgent, context, step, suspEnv);
|
|
1887
|
-
await saveFlowStepResult(chatId, step, rs, suspEnv.getSuspensionId(), env);
|
|
1888
|
-
}
|
|
1889
|
-
if (isfxc) {
|
|
1890
|
-
preprocResult = await preprocessStep(rs, rootModuleName, env);
|
|
1904
|
+
}
|
|
1905
|
+
catch (reason) {
|
|
1906
|
+
if (fullFlowRetries < MaxFlowRetries) {
|
|
1907
|
+
msg = `The previous attempt failed at step ${step} with the error ${reason}. Restart the flow the appropriate step
|
|
1908
|
+
(maybe even from the first step) and try to fix the issue.`;
|
|
1909
|
+
++fullFlowRetries;
|
|
1910
|
+
continue;
|
|
1891
1911
|
}
|
|
1892
1912
|
else {
|
|
1893
|
-
|
|
1894
|
-
await agentInvoke(rootAgent, `${s}\n${context}`, env);
|
|
1895
|
-
preprocResult = await preprocessStep(env.getLastResult(), rootModuleName, env);
|
|
1913
|
+
throw new Error(reason);
|
|
1896
1914
|
}
|
|
1897
|
-
step = preprocResult.step;
|
|
1898
|
-
needAgentProcessing = preprocResult.needAgentProcessing;
|
|
1899
1915
|
}
|
|
1916
|
+
finally {
|
|
1917
|
+
env.decrementMonitor().revokeLastResult().setMonitorFlowResult();
|
|
1918
|
+
}
|
|
1919
|
+
console.debug(`No more flow steps, completed iteration ${iterId} on flow:\n${flow}`);
|
|
1920
|
+
break;
|
|
1900
1921
|
}
|
|
1901
|
-
finally {
|
|
1902
|
-
env.decrementMonitor().revokeLastResult().setMonitorFlowResult();
|
|
1903
|
-
}
|
|
1904
|
-
console.debug(`No more flow steps, completed iteration ${iterId} on flow:\n${flow}`);
|
|
1905
1922
|
}
|
|
1906
1923
|
async function preprocessStep(spec, activeModuleName, env) {
|
|
1907
1924
|
let needAgentProcessing = true;
|