agency-lang 0.8.0 → 0.8.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/dist/lib/agents/agency-agent/agent.js +13 -11
- package/dist/lib/agents/agency-agent/lib/attachments.js +2 -1
- package/dist/lib/agents/agency-agent/lib/capabilities.js +19 -18
- package/dist/lib/agents/agency-agent/lib/models.js +4 -3
- package/dist/lib/agents/agency-agent/lib/resolution.js +5 -4
- package/dist/lib/agents/agency-agent/lib/search.js +3 -2
- package/dist/lib/agents/agency-agent/lib/settings.js +3 -2
- package/dist/lib/agents/agency-agent/lib/slots.js +5 -4
- package/dist/lib/agents/agency-agent/lib/utils.js +3 -2
- package/dist/lib/agents/agency-agent/prompts/codeSample.js +1 -0
- package/dist/lib/agents/agency-agent/shared.js +6 -5
- package/dist/lib/agents/agency-agent/subagents/code.agency +5 -0
- package/dist/lib/agents/agency-agent/subagents/code.js +13 -2
- package/dist/lib/agents/agency-agent/subagents/explorer.agency +2 -0
- package/dist/lib/agents/agency-agent/subagents/explorer.js +9 -2
- package/dist/lib/agents/agency-agent/subagents/oracle.agency +2 -0
- package/dist/lib/agents/agency-agent/subagents/oracle.js +9 -2
- package/dist/lib/agents/agency-agent/subagents/research.agency +4 -0
- package/dist/lib/agents/agency-agent/subagents/research.js +11 -2
- package/dist/lib/agents/agency-agent/subagents/review.js +1 -0
- package/dist/lib/agents/agency-agent/subagents/verify.js +4 -1
- package/dist/lib/agents/agency-agent/tests/agentTurn.js +12 -11
- package/dist/lib/agents/agency-agent/tests/attachments.js +2 -1
- package/dist/lib/agents/agency-agent/tests/capabilities.js +2 -1
- package/dist/lib/agents/agency-agent/tests/capabilities.test.json +1 -1
- package/dist/lib/agents/agency-agent/tests/imageTool.js +3 -2
- package/dist/lib/agents/agency-agent/tests/resolution.js +2 -1
- package/dist/lib/agents/agency-agent/tests/search.js +2 -1
- package/dist/lib/agents/agency-agent/tests/settings.js +8 -7
- package/dist/lib/agents/agency-agent/tests/settings.test.json +2 -2
- package/dist/lib/agents/agency-agent/tests/toolWiring.js +1 -0
- package/dist/lib/agents/eval/goalJudge.js +1 -0
- package/dist/lib/agents/eval/judge.js +1 -0
- package/dist/lib/agents/eval/judgePairwise.js +1 -0
- package/dist/lib/agents/optimize/gepaReflect.js +1 -0
- package/dist/lib/agents/optimize/mutatePrompt.js +1 -0
- package/dist/lib/agents/policy/agent.js +8 -5
- package/dist/lib/agents/review/agent.js +4 -2
- package/dist/lib/backends/typescriptBuilder/destructiveTracking.d.ts +63 -0
- package/dist/lib/backends/typescriptBuilder/destructiveTracking.js +109 -0
- package/dist/lib/backends/typescriptBuilder/destructiveTracking.test.d.ts +1 -0
- package/dist/lib/backends/typescriptBuilder/destructiveTracking.test.js +104 -0
- package/dist/lib/backends/typescriptBuilder/nameClassifier.js +7 -2
- package/dist/lib/backends/typescriptBuilder.d.ts +5 -7
- package/dist/lib/backends/typescriptBuilder.integration.test.js +4 -2
- package/dist/lib/backends/typescriptBuilder.js +87 -69
- package/dist/lib/cli/commands.d.ts +30 -0
- package/dist/lib/cli/commands.js +68 -0
- package/dist/lib/cli/commands.test.d.ts +1 -0
- package/dist/lib/cli/commands.test.js +115 -0
- package/dist/lib/cli/diagnosticsDocs.d.ts +8 -0
- package/dist/lib/cli/diagnosticsDocs.js +79 -0
- package/dist/lib/cli/diagnosticsDocs.test.d.ts +1 -0
- package/dist/lib/cli/diagnosticsDocs.test.js +61 -0
- package/dist/lib/cli/explain.d.ts +9 -0
- package/dist/lib/cli/explain.js +53 -0
- package/dist/lib/cli/explain.test.d.ts +1 -0
- package/dist/lib/cli/explain.test.js +44 -0
- package/dist/lib/compiler/buildSession.js +7 -1
- package/dist/lib/runtime/index.d.ts +1 -0
- package/dist/lib/runtime/index.js +1 -0
- package/dist/lib/runtime/nn.d.ts +13 -0
- package/dist/lib/runtime/nn.js +15 -0
- package/dist/lib/runtime/nn.test.d.ts +1 -0
- package/dist/lib/runtime/nn.test.js +20 -0
- package/dist/lib/runtime/prompt.d.ts +11 -0
- package/dist/lib/runtime/prompt.js +14 -8
- package/dist/lib/stdlib/skills.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/imports.js +1 -1
- package/dist/lib/typeChecker/diagnosticExplanations.d.ts +23 -0
- package/dist/lib/typeChecker/diagnosticExplanations.js +326 -0
- package/dist/lib/typeChecker/diagnosticExplanations.test.d.ts +1 -0
- package/dist/lib/typeChecker/diagnosticExplanations.test.js +52 -0
- package/dist/lib/typeChecker/diagnostics.d.ts +40 -5
- package/dist/lib/typeChecker/diagnostics.js +23 -5
- package/dist/lib/typeChecker/diagnostics.test.js +11 -1
- package/dist/lib/typeChecker/formatErrors.test.js +25 -1
- package/dist/lib/typeChecker/index.d.ts +8 -0
- package/dist/lib/typeChecker/index.js +13 -0
- package/dist/scripts/agency.js +57 -50
- package/dist/scripts/generateDiagnosticsDocs.d.ts +1 -0
- package/dist/scripts/generateDiagnosticsDocs.js +28 -0
- package/package.json +1 -1
- package/stdlib/agency.agency +93 -20
- package/stdlib/agency.js +7 -4
- package/stdlib/agent.js +7 -5
- package/stdlib/data/finance/dbnomics.js +6 -5
- package/stdlib/data/finance/edgar.js +9 -8
- package/stdlib/data/finance/fred.js +4 -3
- package/stdlib/data/finance/gdelt.js +2 -1
- package/stdlib/data/people/littlesis.js +5 -4
- package/stdlib/data/tech/hackernews.js +7 -6
- package/stdlib/data/tech/yc.js +3 -2
- package/stdlib/data/usaspending.js +11 -10
- package/stdlib/data/wikidata.js +5 -4
- package/stdlib/docs/cli/typecheck.md +3 -1
- package/stdlib/docs/diagnostics/checking.md +154 -0
- package/stdlib/docs/diagnostics/effects.md +155 -0
- package/stdlib/docs/diagnostics/index.md +127 -0
- package/stdlib/docs/diagnostics/match.md +25 -0
- package/stdlib/docs/diagnostics/names.md +83 -0
- package/stdlib/docs/diagnostics/static-init.md +65 -0
- package/stdlib/docs/diagnostics/tools.md +305 -0
- package/stdlib/docs/diagnostics/types-aliases.md +125 -0
- package/stdlib/docs/guide/developer-tools.md +3 -3
- package/stdlib/index.js +5 -4
- package/stdlib/memory.js +2 -0
- package/stdlib/object.js +3 -2
- package/stdlib/policy.js +11 -10
- package/stdlib/shell.js +2 -1
- package/stdlib/skills.agency +6 -4
- package/stdlib/skills.js +10 -7
- package/stdlib/syntax.js +1 -1
- package/stdlib/thread.js +1 -0
- package/stdlib/ui/chart.js +2 -2
- package/stdlib/ui/layout.js +1 -1
- package/stdlib/ui.js +7 -6
|
@@ -77,6 +77,7 @@ import {
|
|
|
77
77
|
stampFailureBoundary,
|
|
78
78
|
__tryCall,
|
|
79
79
|
__eq,
|
|
80
|
+
__nn,
|
|
80
81
|
AgencyFunction as __AgencyFunction,
|
|
81
82
|
UNSET as __UNSET,
|
|
82
83
|
__call,
|
|
@@ -2341,7 +2342,7 @@ async function __mergedPalette_impl() {
|
|
|
2341
2342
|
});
|
|
2342
2343
|
await runner.loop(4, async () => __stack.locals.builtins, async (key, _, runner2) => {
|
|
2343
2344
|
await runner2.step(0, async (runner3) => {
|
|
2344
|
-
__stack.locals.out[key] = __stack.locals.builtins[key];
|
|
2345
|
+
__stack.locals.out[key] = __nn(__stack.locals.builtins[key]);
|
|
2345
2346
|
});
|
|
2346
2347
|
});
|
|
2347
2348
|
await runner.step(5, async (runner2) => {
|
|
@@ -2490,7 +2491,7 @@ async function __switchModel_impl(prior, spec, ctx, before) {
|
|
|
2490
2491
|
args: [__stack.args.prior.slots]
|
|
2491
2492
|
}), async (key, _, runner2) => {
|
|
2492
2493
|
await runner2.step(0, async (runner3) => {
|
|
2493
|
-
__stack.locals.nextSlots[key] = __stack.args.prior.slots[key];
|
|
2494
|
+
__stack.locals.nextSlots[key] = __nn(__stack.args.prior.slots[key]);
|
|
2494
2495
|
});
|
|
2495
2496
|
});
|
|
2496
2497
|
await runner.step(5, async (runner2) => {
|
|
@@ -5733,7 +5734,7 @@ async function ___runTurn_impl(msg) {
|
|
|
5733
5734
|
await runner3.step(0, async (runner4) => {
|
|
5734
5735
|
});
|
|
5735
5736
|
await runner3.step(1, async (runner4) => {
|
|
5736
|
-
__stack.locals.status = __globals().get("dist/lib/agents/agency-agent/agent.agency", "mcpServerStatus")[name];
|
|
5737
|
+
__stack.locals.status = __nn(__globals().get("dist/lib/agents/agency-agent/agent.agency", "mcpServerStatus")[name]);
|
|
5737
5738
|
});
|
|
5738
5739
|
await runner3.ifElse(2, [
|
|
5739
5740
|
{
|
|
@@ -6011,7 +6012,7 @@ async function ___runTurn_impl(msg) {
|
|
|
6011
6012
|
args: [__stack.locals.current]
|
|
6012
6013
|
}), async (slot, _, runner4) => {
|
|
6013
6014
|
await runner4.step(0, async (runner5) => {
|
|
6014
|
-
__stack.locals.resolved = __stack.locals.current[slot];
|
|
6015
|
+
__stack.locals.resolved = __nn(__stack.locals.current[slot]);
|
|
6015
6016
|
});
|
|
6016
6017
|
await runner4.ifElse(1, [
|
|
6017
6018
|
{
|
|
@@ -6131,7 +6132,7 @@ async function ___runTurn_impl(msg) {
|
|
|
6131
6132
|
args: [__stack.locals.out.resolved]
|
|
6132
6133
|
}), async (slot, _, runner3) => {
|
|
6133
6134
|
await runner3.step(0, async (runner4) => {
|
|
6134
|
-
__stack.locals.resolved = __stack.locals.out.resolved[slot];
|
|
6135
|
+
__stack.locals.resolved = __nn(__stack.locals.out.resolved[slot]);
|
|
6135
6136
|
});
|
|
6136
6137
|
await runner3.ifElse(1, [
|
|
6137
6138
|
{
|
|
@@ -7938,6 +7939,7 @@ async function __mainAgent_impl(prompt) {
|
|
|
7938
7939
|
},
|
|
7939
7940
|
maxToolCallRounds: 10,
|
|
7940
7941
|
removedTools: __self.__removedTools,
|
|
7942
|
+
destructiveSink: __self,
|
|
7941
7943
|
checkpointInfo: runner3.getCheckpointInfo()
|
|
7942
7944
|
});
|
|
7943
7945
|
if (hasInterrupts(__stack.locals.result)) {
|
|
@@ -8711,13 +8713,13 @@ async function __sample_impl(arr) {
|
|
|
8711
8713
|
});
|
|
8712
8714
|
await runner.step(1, async (runner2) => {
|
|
8713
8715
|
__functionCompleted = true;
|
|
8714
|
-
runner2.halt(__stack.args.arr[await __callMethod(Math, "floor", {
|
|
8716
|
+
runner2.halt(__nn(__stack.args.arr[await __callMethod(Math, "floor", {
|
|
8715
8717
|
type: "positional",
|
|
8716
8718
|
args: [await __callMethod(Math, "random", {
|
|
8717
8719
|
type: "positional",
|
|
8718
8720
|
args: []
|
|
8719
8721
|
}) * __stack.args.arr.length]
|
|
8720
|
-
})]);
|
|
8722
|
+
})]));
|
|
8721
8723
|
return;
|
|
8722
8724
|
});
|
|
8723
8725
|
});
|
|
@@ -9339,7 +9341,7 @@ async function __givePolicyChoice_impl() {
|
|
|
9339
9341
|
], void 0, { matchId: 1 });
|
|
9340
9342
|
await runner.step(6, async (runner2) => {
|
|
9341
9343
|
__functionCompleted = true;
|
|
9342
|
-
runner2.halt(__stack.locals.__matchval_1);
|
|
9344
|
+
runner2.halt(__nn(__stack.locals.__matchval_1));
|
|
9343
9345
|
return;
|
|
9344
9346
|
});
|
|
9345
9347
|
});
|
|
@@ -10584,7 +10586,7 @@ graph.node("main", async (__state) => {
|
|
|
10584
10586
|
__globals().set("dist/lib/agents/agency-agent/agent.agency", "_policyArg", __stack.locals.args.flags.policy ?? ``);
|
|
10585
10587
|
});
|
|
10586
10588
|
await runner.step(8, async (runner2) => {
|
|
10587
|
-
__stack.locals.localVal = __stack.locals.args.flags[`local`] ?? __stack.locals.args.flags[`local-model`];
|
|
10589
|
+
__stack.locals.localVal = __nn(__stack.locals.args.flags[`local`]) ?? __nn(__stack.locals.args.flags[`local-model`]);
|
|
10588
10590
|
});
|
|
10589
10591
|
await runner.step(9, async (runner2) => {
|
|
10590
10592
|
__stack.locals.modelArg = __stack.locals.args.flags.model ?? ``;
|
|
@@ -11064,7 +11066,7 @@ graph.node("main", async (__state) => {
|
|
|
11064
11066
|
await runner.step(22, async (runner2) => {
|
|
11065
11067
|
__stack.locals.maxRounds = await __call(resolveMaxToolCallRounds, {
|
|
11066
11068
|
type: "positional",
|
|
11067
|
-
args: [__stack.locals.args.flags[`max-tool-call-rounds`] ?? null, __stack.locals.runningOneShot]
|
|
11069
|
+
args: [__nn(__stack.locals.args.flags[`max-tool-call-rounds`]) ?? null, __stack.locals.runningOneShot]
|
|
11068
11070
|
});
|
|
11069
11071
|
if (hasInterrupts(__stack.locals.maxRounds)) {
|
|
11070
11072
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -11099,7 +11101,7 @@ graph.node("main", async (__state) => {
|
|
|
11099
11101
|
}
|
|
11100
11102
|
]);
|
|
11101
11103
|
await runner.step(24, async (runner2) => {
|
|
11102
|
-
__stack.locals.maxResultChars = __stack.locals.args.flags[`max-tool-result-chars`];
|
|
11104
|
+
__stack.locals.maxResultChars = __nn(__stack.locals.args.flags[`max-tool-result-chars`]);
|
|
11103
11105
|
});
|
|
11104
11106
|
await runner.ifElse(25, [
|
|
11105
11107
|
{
|
|
@@ -40,6 +40,7 @@ import {
|
|
|
40
40
|
isFailure,
|
|
41
41
|
stampFailureBoundary,
|
|
42
42
|
__eq,
|
|
43
|
+
__nn,
|
|
43
44
|
AgencyFunction as __AgencyFunction,
|
|
44
45
|
UNSET as __UNSET,
|
|
45
46
|
__call,
|
|
@@ -596,7 +597,7 @@ async function __modalityFilter_impl(detected) {
|
|
|
596
597
|
}
|
|
597
598
|
});
|
|
598
599
|
await runner.step(4, async (runner2) => {
|
|
599
|
-
__stack.locals.main = __stack.locals.slots[`main`];
|
|
600
|
+
__stack.locals.main = __nn(__stack.locals.slots[`main`]);
|
|
600
601
|
});
|
|
601
602
|
await runner.ifElse(5, [
|
|
602
603
|
{
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
isFailure,
|
|
33
33
|
stampFailureBoundary,
|
|
34
34
|
__eq,
|
|
35
|
+
__nn,
|
|
35
36
|
AgencyFunction as __AgencyFunction,
|
|
36
37
|
__call,
|
|
37
38
|
__callMethod,
|
|
@@ -285,7 +286,7 @@ async function __providerLacksEmbeddings_impl(provider) {
|
|
|
285
286
|
});
|
|
286
287
|
});
|
|
287
288
|
await runner.step(1, async (runner2) => {
|
|
288
|
-
__stack.locals.patch = __readStatic(PROVIDER_CAPABILITIES, "PROVIDER_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.provider];
|
|
289
|
+
__stack.locals.patch = __nn(__readStatic(PROVIDER_CAPABILITIES, "PROVIDER_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.provider]);
|
|
289
290
|
});
|
|
290
291
|
await runner.step(2, async (runner2) => {
|
|
291
292
|
__functionCompleted = true;
|
|
@@ -648,7 +649,7 @@ async function __resolveCapabilities_impl(modelKey, provider, user) {
|
|
|
648
649
|
await runner.step(2, async (runner2) => {
|
|
649
650
|
__stack.locals.out = await __call(applyPatch, {
|
|
650
651
|
type: "positional",
|
|
651
|
-
args: [__stack.locals.out, __readStatic(PROVIDER_CAPABILITIES, "PROVIDER_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.provider], `provider`]
|
|
652
|
+
args: [__stack.locals.out, __nn(__readStatic(PROVIDER_CAPABILITIES, "PROVIDER_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.provider]), `provider`]
|
|
652
653
|
});
|
|
653
654
|
if (hasInterrupts(__stack.locals.out)) {
|
|
654
655
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -659,7 +660,7 @@ async function __resolveCapabilities_impl(modelKey, provider, user) {
|
|
|
659
660
|
await runner.step(3, async (runner2) => {
|
|
660
661
|
__stack.locals.out = await __call(applyPatch, {
|
|
661
662
|
type: "positional",
|
|
662
|
-
args: [__stack.locals.out, __readStatic(MODEL_CAPABILITIES, "MODEL_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.modelKey], `model`]
|
|
663
|
+
args: [__stack.locals.out, __nn(__readStatic(MODEL_CAPABILITIES, "MODEL_CAPABILITIES", "dist/lib/agents/agency-agent/lib/capabilities.agency")[__stack.args.modelKey]), `model`]
|
|
663
664
|
});
|
|
664
665
|
if (hasInterrupts(__stack.locals.out)) {
|
|
665
666
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -695,7 +696,7 @@ async function __resolveCapabilities_impl(modelKey, provider, user) {
|
|
|
695
696
|
await runner2.step(0, async (runner3) => {
|
|
696
697
|
__stack.locals.out = await __call(applyPatch, {
|
|
697
698
|
type: "positional",
|
|
698
|
-
args: [__stack.locals.out, __stack.locals.userProviders[__stack.args.provider], `user-provider`]
|
|
699
|
+
args: [__stack.locals.out, __nn(__stack.locals.userProviders[__stack.args.provider]), `user-provider`]
|
|
699
700
|
});
|
|
700
701
|
if (hasInterrupts(__stack.locals.out)) {
|
|
701
702
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -716,7 +717,7 @@ async function __resolveCapabilities_impl(modelKey, provider, user) {
|
|
|
716
717
|
await runner2.step(0, async (runner3) => {
|
|
717
718
|
__stack.locals.out = await __call(applyPatch, {
|
|
718
719
|
type: "positional",
|
|
719
|
-
args: [__stack.locals.out, __stack.locals.userModels[__stack.args.modelKey], `user-model`]
|
|
720
|
+
args: [__stack.locals.out, __nn(__stack.locals.userModels[__stack.args.modelKey]), `user-model`]
|
|
720
721
|
});
|
|
721
722
|
if (hasInterrupts(__stack.locals.out)) {
|
|
722
723
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -1314,7 +1315,7 @@ async function __sanitizeCapabilitySettings_impl(user) {
|
|
|
1314
1315
|
{
|
|
1315
1316
|
condition: async () => !await __call(validCapabilityEntry, {
|
|
1316
1317
|
type: "positional",
|
|
1317
|
-
args: [modelKey, __stack.locals.models[modelKey], `models`]
|
|
1318
|
+
args: [modelKey, __nn(__stack.locals.models[modelKey]), `models`]
|
|
1318
1319
|
}),
|
|
1319
1320
|
body: async (runner4) => {
|
|
1320
1321
|
await runner4.step(0, async (runner5) => {
|
|
@@ -1327,7 +1328,7 @@ async function __sanitizeCapabilitySettings_impl(user) {
|
|
|
1327
1328
|
await runner3.step(1, async (runner4) => {
|
|
1328
1329
|
__stack.locals.keptModels[modelKey] = await __call(sanitizePatch, {
|
|
1329
1330
|
type: "positional",
|
|
1330
|
-
args: [__stack.locals.models[modelKey], `models.${modelKey}`]
|
|
1331
|
+
args: [__nn(__stack.locals.models[modelKey]), `models.${modelKey}`]
|
|
1331
1332
|
});
|
|
1332
1333
|
if (hasInterrupts(__stack.locals.keptModels[modelKey])) {
|
|
1333
1334
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -1360,7 +1361,7 @@ async function __sanitizeCapabilitySettings_impl(user) {
|
|
|
1360
1361
|
{
|
|
1361
1362
|
condition: async () => !await __call(validCapabilityEntry, {
|
|
1362
1363
|
type: "positional",
|
|
1363
|
-
args: [providerKey, __stack.locals.providers[providerKey], `providers`]
|
|
1364
|
+
args: [providerKey, __nn(__stack.locals.providers[providerKey]), `providers`]
|
|
1364
1365
|
}),
|
|
1365
1366
|
body: async (runner4) => {
|
|
1366
1367
|
await runner4.step(0, async (runner5) => {
|
|
@@ -1373,7 +1374,7 @@ async function __sanitizeCapabilitySettings_impl(user) {
|
|
|
1373
1374
|
await runner3.step(1, async (runner4) => {
|
|
1374
1375
|
__stack.locals.keptProviders[providerKey] = await __call(sanitizePatch, {
|
|
1375
1376
|
type: "positional",
|
|
1376
|
-
args: [__stack.locals.providers[providerKey], `providers.${providerKey}`]
|
|
1377
|
+
args: [__nn(__stack.locals.providers[providerKey]), `providers.${providerKey}`]
|
|
1377
1378
|
});
|
|
1378
1379
|
if (hasInterrupts(__stack.locals.keptProviders[providerKey])) {
|
|
1379
1380
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -1599,10 +1600,10 @@ async function __mergeCapabilityOverride_impl(user, scope, key, patch) {
|
|
|
1599
1600
|
});
|
|
1600
1601
|
await runner2.ifElse(3, [
|
|
1601
1602
|
{
|
|
1602
|
-
condition: async () => !__eq(__stack.locals.providers[__stack.args.key], null),
|
|
1603
|
+
condition: async () => !__eq(__nn(__stack.locals.providers[__stack.args.key]), null),
|
|
1603
1604
|
body: async (runner3) => {
|
|
1604
1605
|
await runner3.step(0, async (runner4) => {
|
|
1605
|
-
__stack.locals.entry = __stack.locals.providers[__stack.args.key];
|
|
1606
|
+
__stack.locals.entry = __nn(__stack.locals.providers[__stack.args.key]);
|
|
1606
1607
|
});
|
|
1607
1608
|
}
|
|
1608
1609
|
}
|
|
@@ -1644,10 +1645,10 @@ async function __mergeCapabilityOverride_impl(user, scope, key, patch) {
|
|
|
1644
1645
|
});
|
|
1645
1646
|
await runner.ifElse(7, [
|
|
1646
1647
|
{
|
|
1647
|
-
condition: async () => !__eq(__stack.locals.models[__stack.args.key], null),
|
|
1648
|
+
condition: async () => !__eq(__nn(__stack.locals.models[__stack.args.key]), null),
|
|
1648
1649
|
body: async (runner2) => {
|
|
1649
1650
|
await runner2.step(0, async (runner3) => {
|
|
1650
|
-
__stack.locals.entry = __stack.locals.models[__stack.args.key];
|
|
1651
|
+
__stack.locals.entry = __nn(__stack.locals.models[__stack.args.key]);
|
|
1651
1652
|
});
|
|
1652
1653
|
}
|
|
1653
1654
|
}
|
|
@@ -2103,7 +2104,7 @@ async function __recordWithout_impl(entries, dropKey) {
|
|
|
2103
2104
|
condition: async () => !__eq(entryKey, __stack.args.dropKey),
|
|
2104
2105
|
body: async (runner3) => {
|
|
2105
2106
|
await runner3.step(0, async (runner4) => {
|
|
2106
|
-
__stack.locals.kept[entryKey] = __stack.args.entries[entryKey];
|
|
2107
|
+
__stack.locals.kept[entryKey] = __nn(__stack.args.entries[entryKey]);
|
|
2107
2108
|
});
|
|
2108
2109
|
}
|
|
2109
2110
|
}
|
|
@@ -2295,7 +2296,7 @@ async function __removeCapabilityField_impl(user, scope, key, field) {
|
|
|
2295
2296
|
body: async (runner2) => {
|
|
2296
2297
|
await runner2.ifElse(0, [
|
|
2297
2298
|
{
|
|
2298
|
-
condition: async () => __eq(__stack.locals.out.providers, null) || __eq(__stack.locals.out.providers[__stack.args.key], null),
|
|
2299
|
+
condition: async () => __eq(__stack.locals.out.providers, null) || __eq(__nn(__stack.locals.out.providers[__stack.args.key]), null),
|
|
2299
2300
|
body: async (runner3) => {
|
|
2300
2301
|
await runner3.step(0, async (runner4) => {
|
|
2301
2302
|
__functionCompleted = true;
|
|
@@ -2313,7 +2314,7 @@ async function __removeCapabilityField_impl(user, scope, key, field) {
|
|
|
2313
2314
|
await runner2.step(2, async (runner3) => {
|
|
2314
2315
|
__stack.locals.newProviderEntry = await __call(patchFieldToNull, {
|
|
2315
2316
|
type: "positional",
|
|
2316
|
-
args: [__stack.locals.providers[__stack.args.key], __stack.args.field]
|
|
2317
|
+
args: [__nn(__stack.locals.providers[__stack.args.key]), __stack.args.field]
|
|
2317
2318
|
});
|
|
2318
2319
|
if (hasInterrupts(__stack.locals.newProviderEntry)) {
|
|
2319
2320
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -2359,7 +2360,7 @@ async function __removeCapabilityField_impl(user, scope, key, field) {
|
|
|
2359
2360
|
]);
|
|
2360
2361
|
await runner.ifElse(4, [
|
|
2361
2362
|
{
|
|
2362
|
-
condition: async () => __eq(__stack.locals.out.models, null) || __eq(__stack.locals.out.models[__stack.args.key], null),
|
|
2363
|
+
condition: async () => __eq(__stack.locals.out.models, null) || __eq(__nn(__stack.locals.out.models[__stack.args.key]), null),
|
|
2363
2364
|
body: async (runner2) => {
|
|
2364
2365
|
await runner2.step(0, async (runner3) => {
|
|
2365
2366
|
__functionCompleted = true;
|
|
@@ -2377,7 +2378,7 @@ async function __removeCapabilityField_impl(user, scope, key, field) {
|
|
|
2377
2378
|
await runner.step(6, async (runner2) => {
|
|
2378
2379
|
__stack.locals.newModelEntry = await __call(patchFieldToNull, {
|
|
2379
2380
|
type: "positional",
|
|
2380
|
-
args: [__stack.locals.models[__stack.args.key], __stack.args.field]
|
|
2381
|
+
args: [__nn(__stack.locals.models[__stack.args.key]), __stack.args.field]
|
|
2381
2382
|
});
|
|
2382
2383
|
if (hasInterrupts(__stack.locals.newModelEntry)) {
|
|
2383
2384
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
isFailure,
|
|
38
38
|
stampFailureBoundary,
|
|
39
39
|
__eq,
|
|
40
|
+
__nn,
|
|
40
41
|
AgencyFunction as __AgencyFunction,
|
|
41
42
|
__call,
|
|
42
43
|
__callMethod,
|
|
@@ -302,7 +303,7 @@ async function __missingProviderEnvVar_impl(provider) {
|
|
|
302
303
|
}
|
|
303
304
|
]);
|
|
304
305
|
await runner.step(3, async (runner2) => {
|
|
305
|
-
__stack.locals.baseVar = __readStatic(BASE_URL_PROVIDERS, "BASE_URL_PROVIDERS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider];
|
|
306
|
+
__stack.locals.baseVar = __nn(__readStatic(BASE_URL_PROVIDERS, "BASE_URL_PROVIDERS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider]);
|
|
306
307
|
});
|
|
307
308
|
await runner.ifElse(4, [
|
|
308
309
|
{
|
|
@@ -884,7 +885,7 @@ async function __resolveDetected_impl(model, fast, slow, provider) {
|
|
|
884
885
|
});
|
|
885
886
|
await runner2.ifElse(1, [
|
|
886
887
|
{
|
|
887
|
-
condition: async () => __eq(__readStatic(MODELS, "MODELS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider], void 0) && (__stack.locals.needFast || __stack.locals.needSlow),
|
|
888
|
+
condition: async () => __eq(__nn(__readStatic(MODELS, "MODELS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider]), void 0) && (__stack.locals.needFast || __stack.locals.needSlow),
|
|
888
889
|
body: async (runner3) => {
|
|
889
890
|
await runner3.step(0, async (runner4) => {
|
|
890
891
|
__stack.locals.known = await __callMethod(Object, "keys", {
|
|
@@ -1556,7 +1557,7 @@ async function __priceDefault_impl(provider, slot, price) {
|
|
|
1556
1557
|
]);
|
|
1557
1558
|
await runner.ifElse(3, [
|
|
1558
1559
|
{
|
|
1559
|
-
condition: async () => __eq(__readStatic(MODELS, "MODELS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider], null),
|
|
1560
|
+
condition: async () => __eq(__nn(__readStatic(MODELS, "MODELS", "dist/lib/agents/agency-agent/lib/models.agency")[__stack.args.provider]), null),
|
|
1560
1561
|
body: async (runner2) => {
|
|
1561
1562
|
await runner2.step(0, async (runner3) => {
|
|
1562
1563
|
__functionCompleted = true;
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
isFailure,
|
|
35
35
|
stampFailureBoundary,
|
|
36
36
|
__eq,
|
|
37
|
+
__nn,
|
|
37
38
|
AgencyFunction as __AgencyFunction,
|
|
38
39
|
__call,
|
|
39
40
|
__callMethod,
|
|
@@ -412,7 +413,7 @@ async function __resolveSlot_impl(slot, layers, ctx) {
|
|
|
412
413
|
});
|
|
413
414
|
await runner.loop(1, async () => __stack.args.layers, async (layer, _, runner2) => {
|
|
414
415
|
await runner2.step(0, async (runner3) => {
|
|
415
|
-
__stack.locals.perSlotValue = layer.perSlot[__stack.args.slot];
|
|
416
|
+
__stack.locals.perSlotValue = __nn(layer.perSlot[__stack.args.slot]);
|
|
416
417
|
});
|
|
417
418
|
await runner2.ifElse(1, [
|
|
418
419
|
{
|
|
@@ -987,7 +988,7 @@ async function __slotMapToValues_impl(slots, providers, providerEstablished) {
|
|
|
987
988
|
await runner2.step(2, async (runner3) => {
|
|
988
989
|
__stack.locals.output[__stack.locals.canonical] = await __call(parseSlotValue, {
|
|
989
990
|
type: "positional",
|
|
990
|
-
args: [__stack.args.slots[key], __stack.args.providers, __stack.locals.established]
|
|
991
|
+
args: [__nn(__stack.args.slots[key]), __stack.args.providers, __stack.locals.established]
|
|
991
992
|
});
|
|
992
993
|
if (hasInterrupts(__stack.locals.output[__stack.locals.canonical])) {
|
|
993
994
|
await getRuntimeContext().ctx.pendingPromises.awaitAll();
|
|
@@ -1431,7 +1432,7 @@ async function __diffResolved_impl(before, after) {
|
|
|
1431
1432
|
args: [__stack.args.after]
|
|
1432
1433
|
}), async (slot, _, runner2) => {
|
|
1433
1434
|
await runner2.step(0, async (runner3) => {
|
|
1434
|
-
__stack.locals.beforeValue = __stack.args.before[slot];
|
|
1435
|
+
__stack.locals.beforeValue = __nn(__stack.args.before[slot]);
|
|
1435
1436
|
});
|
|
1436
1437
|
await runner2.ifElse(1, [
|
|
1437
1438
|
{
|
|
@@ -1445,7 +1446,7 @@ async function __diffResolved_impl(before, after) {
|
|
|
1445
1446
|
}
|
|
1446
1447
|
]);
|
|
1447
1448
|
await runner2.step(2, async (runner3) => {
|
|
1448
|
-
__stack.locals.afterValue = __stack.args.after[slot];
|
|
1449
|
+
__stack.locals.afterValue = __nn(__stack.args.after[slot]);
|
|
1449
1450
|
});
|
|
1450
1451
|
await runner2.ifElse(3, [
|
|
1451
1452
|
{
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
isFailure,
|
|
38
38
|
stampFailureBoundary,
|
|
39
39
|
__eq,
|
|
40
|
+
__nn,
|
|
40
41
|
AgencyFunction as __AgencyFunction,
|
|
41
42
|
__call,
|
|
42
43
|
__callMethod,
|
|
@@ -1946,7 +1947,7 @@ async function __withWebSearch_impl(opts) {
|
|
|
1946
1947
|
}
|
|
1947
1948
|
});
|
|
1948
1949
|
await runner.step(2, async (runner2) => {
|
|
1949
|
-
__stack.locals.tool = __readStatic(CLIENT_SEARCH_TOOLS_BY_BACKEND, "CLIENT_SEARCH_TOOLS_BY_BACKEND", "dist/lib/agents/agency-agent/lib/search.agency")[__stack.locals.name];
|
|
1950
|
+
__stack.locals.tool = __nn(__readStatic(CLIENT_SEARCH_TOOLS_BY_BACKEND, "CLIENT_SEARCH_TOOLS_BY_BACKEND", "dist/lib/agents/agency-agent/lib/search.agency")[__stack.locals.name]);
|
|
1950
1951
|
});
|
|
1951
1952
|
await runner.ifElse(3, [
|
|
1952
1953
|
{
|
|
@@ -1967,7 +1968,7 @@ async function __withWebSearch_impl(opts) {
|
|
|
1967
1968
|
}
|
|
1968
1969
|
]);
|
|
1969
1970
|
await runner.step(4, async (runner2) => {
|
|
1970
|
-
__stack.locals.hosted = __readStatic(HOSTED_SEARCH_CAPS_BY_BACKEND, "HOSTED_SEARCH_CAPS_BY_BACKEND", "dist/lib/agents/agency-agent/lib/search.agency")[__stack.locals.name];
|
|
1971
|
+
__stack.locals.hosted = __nn(__readStatic(HOSTED_SEARCH_CAPS_BY_BACKEND, "HOSTED_SEARCH_CAPS_BY_BACKEND", "dist/lib/agents/agency-agent/lib/search.agency")[__stack.locals.name]);
|
|
1971
1972
|
});
|
|
1972
1973
|
await runner.ifElse(5, [
|
|
1973
1974
|
{
|
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
stampFailureBoundary,
|
|
39
39
|
__tryCall,
|
|
40
40
|
__eq,
|
|
41
|
+
__nn,
|
|
41
42
|
AgencyFunction as __AgencyFunction,
|
|
42
43
|
__call,
|
|
43
44
|
__callMethod,
|
|
@@ -302,7 +303,7 @@ async function __sanitizeModelSettings_impl(settings) {
|
|
|
302
303
|
{
|
|
303
304
|
condition: async () => __eq(__stack.locals.canonical, `embedding`) && !await __call(embeddingSpecHasProvider, {
|
|
304
305
|
type: "positional",
|
|
305
|
-
args: [__stack.locals.slots[key]]
|
|
306
|
+
args: [__nn(__stack.locals.slots[key])]
|
|
306
307
|
}),
|
|
307
308
|
body: async (runner3) => {
|
|
308
309
|
await runner3.step(0, async (runner4) => {
|
|
@@ -326,7 +327,7 @@ async function __sanitizeModelSettings_impl(settings) {
|
|
|
326
327
|
}
|
|
327
328
|
]);
|
|
328
329
|
await runner2.step(3, async (runner3) => {
|
|
329
|
-
__stack.locals.kept[__stack.locals.canonical] = __stack.locals.slots[key];
|
|
330
|
+
__stack.locals.kept[__stack.locals.canonical] = __nn(__stack.locals.slots[key]);
|
|
330
331
|
});
|
|
331
332
|
});
|
|
332
333
|
await runner.step(6, async (runner2) => {
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
isFailure,
|
|
33
33
|
stampFailureBoundary,
|
|
34
34
|
__eq,
|
|
35
|
+
__nn,
|
|
35
36
|
AgencyFunction as __AgencyFunction,
|
|
36
37
|
__call,
|
|
37
38
|
__callMethod,
|
|
@@ -250,11 +251,11 @@ async function __canonicalSlot_impl(name) {
|
|
|
250
251
|
});
|
|
251
252
|
await runner.ifElse(1, [
|
|
252
253
|
{
|
|
253
|
-
condition: async () => !__eq(__readStatic(SLOT_ALIASES, "SLOT_ALIASES", "dist/lib/agents/agency-agent/lib/slots.agency")[__stack.args.name], null),
|
|
254
|
+
condition: async () => !__eq(__nn(__readStatic(SLOT_ALIASES, "SLOT_ALIASES", "dist/lib/agents/agency-agent/lib/slots.agency")[__stack.args.name]), null),
|
|
254
255
|
body: async (runner2) => {
|
|
255
256
|
await runner2.step(0, async (runner3) => {
|
|
256
257
|
__functionCompleted = true;
|
|
257
|
-
runner3.halt(__readStatic(SLOT_ALIASES, "SLOT_ALIASES", "dist/lib/agents/agency-agent/lib/slots.agency")[__stack.args.name]);
|
|
258
|
+
runner3.halt(__nn(__readStatic(SLOT_ALIASES, "SLOT_ALIASES", "dist/lib/agents/agency-agent/lib/slots.agency")[__stack.args.name]));
|
|
258
259
|
return;
|
|
259
260
|
});
|
|
260
261
|
}
|
|
@@ -498,10 +499,10 @@ async function __slotKind_impl(name) {
|
|
|
498
499
|
});
|
|
499
500
|
await runner.step(1, async (runner2) => {
|
|
500
501
|
__functionCompleted = true;
|
|
501
|
-
runner2.halt(__readStatic(SLOT_KIND, "SLOT_KIND", "dist/lib/agents/agency-agent/lib/slots.agency")[await __call(canonicalSlot, {
|
|
502
|
+
runner2.halt(__nn(__readStatic(SLOT_KIND, "SLOT_KIND", "dist/lib/agents/agency-agent/lib/slots.agency")[await __call(canonicalSlot, {
|
|
502
503
|
type: "positional",
|
|
503
504
|
args: [__stack.args.name]
|
|
504
|
-
})]);
|
|
505
|
+
})]));
|
|
505
506
|
return;
|
|
506
507
|
});
|
|
507
508
|
});
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
isFailure,
|
|
30
30
|
stampFailureBoundary,
|
|
31
31
|
__eq,
|
|
32
|
+
__nn,
|
|
32
33
|
AgencyFunction as __AgencyFunction,
|
|
33
34
|
UNSET as __UNSET,
|
|
34
35
|
__call,
|
|
@@ -320,7 +321,7 @@ async function __formatToolResponse_impl(data) {
|
|
|
320
321
|
});
|
|
321
322
|
});
|
|
322
323
|
await runner.step(6, async (runner2) => {
|
|
323
|
-
__stack.locals.head = __stack.locals.lines[0];
|
|
324
|
+
__stack.locals.head = __nn(__stack.locals.lines[0]);
|
|
324
325
|
});
|
|
325
326
|
await runner.step(7, async (runner2) => {
|
|
326
327
|
__stack.locals.tail = await __call(indentStr, {
|
|
@@ -604,7 +605,7 @@ async function __formatArgs_impl(args) {
|
|
|
604
605
|
});
|
|
605
606
|
await runner.loop(2, async () => __stack.args.args, async (key, _, runner2) => {
|
|
606
607
|
await runner2.step(0, async (runner3) => {
|
|
607
|
-
__stack.locals.value = __stack.args.args[key];
|
|
608
|
+
__stack.locals.value = __nn(__stack.args.args[key]);
|
|
608
609
|
});
|
|
609
610
|
await runner2.step(1, async (runner3) => {
|
|
610
611
|
await __callMethod(__stack.locals.parts, "push", {
|
|
@@ -325,6 +325,7 @@ graph.node("categorize", async (__state) => {
|
|
|
325
325
|
clientConfig: {},
|
|
326
326
|
maxToolCallRounds: 10,
|
|
327
327
|
removedTools: __self.__removedTools,
|
|
328
|
+
destructiveSink: __self,
|
|
328
329
|
checkpointInfo: runner2.getCheckpointInfo()
|
|
329
330
|
});
|
|
330
331
|
if (hasInterrupts(__stack.locals.category)) {
|
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
stampFailureBoundary,
|
|
45
45
|
__tryCall,
|
|
46
46
|
__eq,
|
|
47
|
+
__nn,
|
|
47
48
|
AgencyFunction as __AgencyFunction,
|
|
48
49
|
UNSET as __UNSET,
|
|
49
50
|
__call,
|
|
@@ -1404,7 +1405,7 @@ async function __embeddingsOverride_impl(slots) {
|
|
|
1404
1405
|
__functionCompleted = true;
|
|
1405
1406
|
runner2.halt(await __call(overrideFromResolved, {
|
|
1406
1407
|
type: "positional",
|
|
1407
|
-
args: [__stack.args.slots[`embedding`]]
|
|
1408
|
+
args: [__nn(__stack.args.slots[`embedding`])]
|
|
1408
1409
|
}));
|
|
1409
1410
|
return;
|
|
1410
1411
|
});
|
|
@@ -2689,7 +2690,7 @@ async function __promoteAll_impl(slots) {
|
|
|
2689
2690
|
args: [__stack.args.slots]
|
|
2690
2691
|
}), async (slot, _, runner2) => {
|
|
2691
2692
|
await runner2.step(0, async (runner3) => {
|
|
2692
|
-
__stack.locals.resolved = __stack.args.slots[slot];
|
|
2693
|
+
__stack.locals.resolved = __nn(__stack.args.slots[slot]);
|
|
2693
2694
|
});
|
|
2694
2695
|
await runner2.ifElse(1, [
|
|
2695
2696
|
{
|
|
@@ -2855,7 +2856,7 @@ async function __applyResolved_impl(slots) {
|
|
|
2855
2856
|
args: [__stack.args.slots]
|
|
2856
2857
|
}), async (slot, _, runner2) => {
|
|
2857
2858
|
await runner2.step(0, async (runner3) => {
|
|
2858
|
-
__stack.locals.resolved = __stack.args.slots[slot];
|
|
2859
|
+
__stack.locals.resolved = __nn(__stack.args.slots[slot]);
|
|
2859
2860
|
});
|
|
2860
2861
|
await runner2.ifElse(1, [
|
|
2861
2862
|
{
|
|
@@ -2918,7 +2919,7 @@ async function __applyResolved_impl(slots) {
|
|
|
2918
2919
|
]);
|
|
2919
2920
|
});
|
|
2920
2921
|
await runner.step(3, async (runner2) => {
|
|
2921
|
-
__stack.locals.mainSlot = __stack.args.slots[`main`];
|
|
2922
|
+
__stack.locals.mainSlot = __nn(__stack.args.slots[`main`]);
|
|
2922
2923
|
});
|
|
2923
2924
|
await runner.ifElse(4, [
|
|
2924
2925
|
{
|
|
@@ -3143,7 +3144,7 @@ async function __currentProvider_impl() {
|
|
|
3143
3144
|
});
|
|
3144
3145
|
});
|
|
3145
3146
|
await runner.step(1, async (runner2) => {
|
|
3146
|
-
__stack.locals.main = __globals().get("dist/lib/agents/agency-agent/shared.agency", "_resolved")[`main`];
|
|
3147
|
+
__stack.locals.main = __nn(__globals().get("dist/lib/agents/agency-agent/shared.agency", "_resolved")[`main`]);
|
|
3147
3148
|
});
|
|
3148
3149
|
await runner.ifElse(2, [
|
|
3149
3150
|
{
|
|
@@ -52,6 +52,7 @@ static const superpowersSkill = skillsDir("./skills/superpowers", "flat") with a
|
|
|
52
52
|
// startup approval interrupt — the docs ship with the stdlib).
|
|
53
53
|
static const docSkill = docsSkill("guide")
|
|
54
54
|
static const cliSkill = docsSkill("cli")
|
|
55
|
+
static const diagnosticsSkill = docsSkill("diagnostics")
|
|
55
56
|
|
|
56
57
|
export def agencyCli(args: string[]): any {
|
|
57
58
|
"""
|
|
@@ -81,6 +82,9 @@ call the bundled docs tools — they are authoritative for Agency:
|
|
|
81
82
|
* `docSkill` — the language guide (syntax, types, error handling,
|
|
82
83
|
built-ins, callbacks, advanced types)
|
|
83
84
|
* `cliSkill` — the CLI reference (`agency run`, `agency test`, ...)
|
|
85
|
+
* `diagnosticsSkill` — type-checker diagnostic codes (AG####) with
|
|
86
|
+
explanations and fixes; consult it when `typecheck` reports
|
|
87
|
+
an error code you want to understand or resolve
|
|
84
88
|
Pick whichever matches the question rather than guessing.
|
|
85
89
|
|
|
86
90
|
**Stay focused on the current task.** Most follow-ups ("can you make it
|
|
@@ -360,6 +364,7 @@ export static const codeTools: any[] = [
|
|
|
360
364
|
superpowersSkill,
|
|
361
365
|
docSkill,
|
|
362
366
|
cliSkill,
|
|
367
|
+
diagnosticsSkill,
|
|
363
368
|
todoWrite,
|
|
364
369
|
todoList,
|
|
365
370
|
oracleAgent.partial(allowHandoff: false),
|