struere 0.3.7 → 0.3.9

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.
@@ -17313,7 +17313,6 @@ export default defineConfig({
17313
17313
  function getAgentTs(name) {
17314
17314
  const displayName = name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
17315
17315
  return `import { defineAgent } from 'struere'
17316
- import { context } from './context'
17317
17316
  import { tools } from './tools'
17318
17317
 
17319
17318
  export default defineAgent({
@@ -17328,6 +17327,8 @@ export default defineAgent({
17328
17327
  },
17329
17328
  systemPrompt: \`You are ${displayName}, a helpful AI assistant.
17330
17329
 
17330
+ Current time: {{datetime}}
17331
+
17331
17332
  Your capabilities:
17332
17333
  - Answer questions accurately and helpfully
17333
17334
  - Use available tools when appropriate
@@ -17335,30 +17336,6 @@ Your capabilities:
17335
17336
 
17336
17337
  Always be concise, accurate, and helpful.\`,
17337
17338
  tools,
17338
- context,
17339
- state: {
17340
- storage: 'memory',
17341
- ttl: 3600,
17342
- },
17343
- })
17344
- `;
17345
- }
17346
- function getContextTs() {
17347
- return `import { defineContext } from 'struere'
17348
-
17349
- export const context = defineContext(async (request) => {
17350
- const { conversationId, userId, channel, state } = request
17351
-
17352
- return {
17353
- additionalContext: \`
17354
- Current conversation: \${conversationId}
17355
- Channel: \${channel}
17356
- \`,
17357
- variables: {
17358
- userId,
17359
- timestamp: new Date().toISOString(),
17360
- },
17361
- }
17362
17339
  })
17363
17340
  `;
17364
17341
  }
@@ -17480,7 +17457,7 @@ function getEnvLocal(deploymentUrl) {
17480
17457
  return `STRUERE_DEPLOYMENT_URL=${deploymentUrl}
17481
17458
  `;
17482
17459
  }
17483
- function getClaudeMd(name) {
17460
+ function getClaudeMD(name) {
17484
17461
  const displayName = name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
17485
17462
  return `# ${displayName} Agent
17486
17463
 
@@ -17491,7 +17468,6 @@ This is a Struere AI agent project. Struere is a framework for building producti
17491
17468
  \`\`\`
17492
17469
  src/
17493
17470
  \u251C\u2500\u2500 agent.ts # Agent definition (system prompt, model, tools)
17494
- \u251C\u2500\u2500 context.ts # Dynamic context injection per request
17495
17471
  \u251C\u2500\u2500 tools.ts # Custom tool definitions
17496
17472
  \u2514\u2500\u2500 workflows/ # Multi-step workflow definitions
17497
17473
  tests/
@@ -17507,7 +17483,6 @@ Define your agent in \`src/agent.ts\`:
17507
17483
  \`\`\`typescript
17508
17484
  import { defineAgent } from 'struere'
17509
17485
  import { tools } from './tools'
17510
- import { context } from './context'
17511
17486
 
17512
17487
  export default defineAgent({
17513
17488
  name: 'my-agent',
@@ -17524,11 +17499,6 @@ export default defineAgent({
17524
17499
  Current time: {{datetime}}
17525
17500
  Customer: {{entity.get({"id": "{{thread.metadata.customerId}}"})}}\\\`,
17526
17501
  tools,
17527
- context,
17528
- state: {
17529
- storage: 'memory',
17530
- ttl: 3600,
17531
- },
17532
17502
  })
17533
17503
  \`\`\`
17534
17504
 
@@ -17669,33 +17639,6 @@ Example job operations:
17669
17639
  { "id": "job_abc123" }
17670
17640
  \`\`\`
17671
17641
 
17672
- ## Context Function
17673
-
17674
- Inject dynamic context per request in \`src/context.ts\`:
17675
-
17676
- \`\`\`typescript
17677
- import { defineContext } from 'struere'
17678
-
17679
- export const context = defineContext(async (request) => {
17680
- const { conversationId, userId, channel, state } = request
17681
-
17682
- const userProfile = await fetchUserProfile(userId)
17683
-
17684
- return {
17685
- additionalContext: \\\`
17686
- User: \${userProfile.name} (\${userProfile.tier} tier)
17687
- Conversation: \${conversationId}
17688
- Channel: \${channel}
17689
- \\\`,
17690
- variables: {
17691
- userId,
17692
- userTier: userProfile.tier,
17693
- timestamp: new Date().toISOString(),
17694
- },
17695
- }
17696
- })
17697
- \`\`\`
17698
-
17699
17642
  ## Testing
17700
17643
 
17701
17644
  Write YAML-based conversation tests in \`tests/\`:
@@ -17803,7 +17746,7 @@ curl -X POST https://your-deployment.convex.cloud/v1/chat \\
17803
17746
  4. **Events**: Emit events for audit trails and analytics
17804
17747
  5. **Jobs**: Use jobs for async operations (emails, notifications)
17805
17748
  6. **Testing**: Write tests for critical conversation flows
17806
- 7. **Context**: Use context for user-specific personalization
17749
+ 7. **Thread Metadata**: Use metadata for user-specific personalization
17807
17750
  `;
17808
17751
  }
17809
17752
 
@@ -17841,12 +17784,11 @@ function scaffoldAgentFiles(cwd, projectName) {
17841
17784
  "tsconfig.json": getTsConfig(),
17842
17785
  "struere.config.ts": getStruereConfig(),
17843
17786
  "src/agent.ts": getAgentTs(projectName),
17844
- "src/context.ts": getContextTs(),
17845
17787
  "src/tools.ts": getToolsTs(),
17846
17788
  "src/workflows/.gitkeep": "",
17847
17789
  "tests/basic.test.yaml": getBasicTestYaml(),
17848
17790
  ".env.example": getEnvExample(),
17849
- ".claude.md": getClaudeMd(projectName)
17791
+ "CLAUDE.md": getClaudeMD(projectName)
17850
17792
  };
17851
17793
  for (const [relativePath, content] of Object.entries(files)) {
17852
17794
  const fullPath = join3(cwd, relativePath);
@@ -18124,6 +18066,7 @@ function readLine() {
18124
18066
  // src/cli/commands/dev.ts
18125
18067
  var import_chokidar = __toESM(require_chokidar(), 1);
18126
18068
  import { join as join7, basename as basename2 } from "path";
18069
+ import { existsSync as existsSync5, writeFileSync as writeFileSync4 } from "fs";
18127
18070
 
18128
18071
  // src/cli/utils/config.ts
18129
18072
  import { join as join5 } from "path";
@@ -18223,14 +18166,21 @@ var devCommand = new Command("dev").description("Sync agent to development envir
18223
18166
  spinner.start("Loading agent");
18224
18167
  let agent = await loadAgent(cwd);
18225
18168
  spinner.succeed(`Agent "${agent.name}" loaded`);
18226
- const credentials = loadCredentials();
18169
+ const claudeMdPath = join7(cwd, "CLAUDE.md");
18170
+ if (!existsSync5(claudeMdPath)) {
18171
+ writeFileSync4(claudeMdPath, getClaudeMD(project.agent.slug));
18172
+ console.log(source_default.green("\u2713"), "Created CLAUDE.md");
18173
+ }
18174
+ let credentials = loadCredentials();
18227
18175
  const apiKey = getApiKey();
18228
18176
  if (!credentials && !apiKey) {
18229
- spinner.fail("Not logged in");
18230
- console.log();
18231
- console.log(source_default.gray("Run"), source_default.cyan("struere login"), source_default.gray("to authenticate"));
18177
+ console.log(source_default.gray("Authentication required"));
18232
18178
  console.log();
18233
- process.exit(1);
18179
+ credentials = await performLogin();
18180
+ if (!credentials) {
18181
+ console.log(source_default.red("Authentication failed"));
18182
+ process.exit(1);
18183
+ }
18234
18184
  }
18235
18185
  spinner.start("Syncing to Convex");
18236
18186
  const performSync = async () => {
@@ -18245,13 +18195,38 @@ var devCommand = new Command("dev").description("Sync agent to development envir
18245
18195
  throw error;
18246
18196
  }
18247
18197
  };
18198
+ const isAuthError = (error) => {
18199
+ const message = error instanceof Error ? error.message : String(error);
18200
+ return message.includes("Unauthenticated") || message.includes("OIDC") || message.includes("token") || message.includes("expired");
18201
+ };
18248
18202
  try {
18249
18203
  await performSync();
18250
18204
  spinner.succeed("Synced to development");
18251
18205
  } catch (error) {
18252
- spinner.fail("Sync failed");
18253
- console.log(source_default.red("Error:"), error instanceof Error ? error.message : String(error));
18254
- process.exit(1);
18206
+ if (isAuthError(error)) {
18207
+ spinner.fail("Session expired");
18208
+ console.log();
18209
+ console.log(source_default.gray("Re-authenticating..."));
18210
+ clearCredentials();
18211
+ credentials = await performLogin();
18212
+ if (!credentials) {
18213
+ console.log(source_default.red("Authentication failed"));
18214
+ process.exit(1);
18215
+ }
18216
+ spinner.start("Syncing to Convex");
18217
+ try {
18218
+ await performSync();
18219
+ spinner.succeed("Synced to development");
18220
+ } catch (retryError) {
18221
+ spinner.fail("Sync failed");
18222
+ console.log(source_default.red("Error:"), retryError instanceof Error ? retryError.message : String(retryError));
18223
+ process.exit(1);
18224
+ }
18225
+ } else {
18226
+ spinner.fail("Sync failed");
18227
+ console.log(source_default.red("Error:"), error instanceof Error ? error.message : String(error));
18228
+ process.exit(1);
18229
+ }
18255
18230
  }
18256
18231
  const devUrl = `https://${project.agent.slug}-dev.struere.dev`;
18257
18232
  console.log();
@@ -18272,8 +18247,28 @@ var devCommand = new Command("dev").description("Sync agent to development envir
18272
18247
  await performSync();
18273
18248
  syncSpinner.succeed("Synced");
18274
18249
  } catch (error) {
18275
- syncSpinner.fail("Sync failed");
18276
- console.log(source_default.red("Error:"), error instanceof Error ? error.message : String(error));
18250
+ if (isAuthError(error)) {
18251
+ syncSpinner.fail("Session expired");
18252
+ console.log();
18253
+ console.log(source_default.gray("Re-authenticating..."));
18254
+ clearCredentials();
18255
+ const newCredentials = await performLogin();
18256
+ if (!newCredentials) {
18257
+ console.log(source_default.red("Authentication failed"));
18258
+ return;
18259
+ }
18260
+ const retrySyncSpinner = ora("Syncing...").start();
18261
+ try {
18262
+ await performSync();
18263
+ retrySyncSpinner.succeed("Synced");
18264
+ } catch (retryError) {
18265
+ retrySyncSpinner.fail("Sync failed");
18266
+ console.log(source_default.red("Error:"), retryError instanceof Error ? retryError.message : String(retryError));
18267
+ }
18268
+ } else {
18269
+ syncSpinner.fail("Sync failed");
18270
+ console.log(source_default.red("Error:"), error instanceof Error ? error.message : String(error));
18271
+ }
18277
18272
  }
18278
18273
  });
18279
18274
  process.on("SIGINT", () => {
@@ -19095,7 +19090,7 @@ var whoamiCommand = new Command("whoami").description("Show current logged in us
19095
19090
  // package.json
19096
19091
  var package_default = {
19097
19092
  name: "struere",
19098
- version: "0.3.7",
19093
+ version: "0.3.9",
19099
19094
  description: "Build, test, and deploy AI agents",
19100
19095
  keywords: [
19101
19096
  "ai",
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,eAAO,MAAM,UAAU,SA8GnB,CAAA"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,eAAO,MAAM,UAAU,SAuKnB,CAAA"}
package/dist/cli/index.js CHANGED
@@ -652,7 +652,6 @@ export default defineConfig({
652
652
  function getAgentTs(name) {
653
653
  const displayName = name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
654
654
  return `import { defineAgent } from 'struere'
655
- import { context } from './context'
656
655
  import { tools } from './tools'
657
656
 
658
657
  export default defineAgent({
@@ -667,6 +666,8 @@ export default defineAgent({
667
666
  },
668
667
  systemPrompt: \`You are ${displayName}, a helpful AI assistant.
669
668
 
669
+ Current time: {{datetime}}
670
+
670
671
  Your capabilities:
671
672
  - Answer questions accurately and helpfully
672
673
  - Use available tools when appropriate
@@ -674,30 +675,6 @@ Your capabilities:
674
675
 
675
676
  Always be concise, accurate, and helpful.\`,
676
677
  tools,
677
- context,
678
- state: {
679
- storage: 'memory',
680
- ttl: 3600,
681
- },
682
- })
683
- `;
684
- }
685
- function getContextTs() {
686
- return `import { defineContext } from 'struere'
687
-
688
- export const context = defineContext(async (request) => {
689
- const { conversationId, userId, channel, state } = request
690
-
691
- return {
692
- additionalContext: \`
693
- Current conversation: \${conversationId}
694
- Channel: \${channel}
695
- \`,
696
- variables: {
697
- userId,
698
- timestamp: new Date().toISOString(),
699
- },
700
- }
701
678
  })
702
679
  `;
703
680
  }
@@ -819,7 +796,7 @@ function getEnvLocal(deploymentUrl) {
819
796
  return `STRUERE_DEPLOYMENT_URL=${deploymentUrl}
820
797
  `;
821
798
  }
822
- function getClaudeMd(name) {
799
+ function getClaudeMD(name) {
823
800
  const displayName = name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
824
801
  return `# ${displayName} Agent
825
802
 
@@ -830,7 +807,6 @@ This is a Struere AI agent project. Struere is a framework for building producti
830
807
  \`\`\`
831
808
  src/
832
809
  \u251C\u2500\u2500 agent.ts # Agent definition (system prompt, model, tools)
833
- \u251C\u2500\u2500 context.ts # Dynamic context injection per request
834
810
  \u251C\u2500\u2500 tools.ts # Custom tool definitions
835
811
  \u2514\u2500\u2500 workflows/ # Multi-step workflow definitions
836
812
  tests/
@@ -846,7 +822,6 @@ Define your agent in \`src/agent.ts\`:
846
822
  \`\`\`typescript
847
823
  import { defineAgent } from 'struere'
848
824
  import { tools } from './tools'
849
- import { context } from './context'
850
825
 
851
826
  export default defineAgent({
852
827
  name: 'my-agent',
@@ -863,11 +838,6 @@ export default defineAgent({
863
838
  Current time: {{datetime}}
864
839
  Customer: {{entity.get({"id": "{{thread.metadata.customerId}}"})}}\\\`,
865
840
  tools,
866
- context,
867
- state: {
868
- storage: 'memory',
869
- ttl: 3600,
870
- },
871
841
  })
872
842
  \`\`\`
873
843
 
@@ -1008,33 +978,6 @@ Example job operations:
1008
978
  { "id": "job_abc123" }
1009
979
  \`\`\`
1010
980
 
1011
- ## Context Function
1012
-
1013
- Inject dynamic context per request in \`src/context.ts\`:
1014
-
1015
- \`\`\`typescript
1016
- import { defineContext } from 'struere'
1017
-
1018
- export const context = defineContext(async (request) => {
1019
- const { conversationId, userId, channel, state } = request
1020
-
1021
- const userProfile = await fetchUserProfile(userId)
1022
-
1023
- return {
1024
- additionalContext: \\\`
1025
- User: \${userProfile.name} (\${userProfile.tier} tier)
1026
- Conversation: \${conversationId}
1027
- Channel: \${channel}
1028
- \\\`,
1029
- variables: {
1030
- userId,
1031
- userTier: userProfile.tier,
1032
- timestamp: new Date().toISOString(),
1033
- },
1034
- }
1035
- })
1036
- \`\`\`
1037
-
1038
981
  ## Testing
1039
982
 
1040
983
  Write YAML-based conversation tests in \`tests/\`:
@@ -1142,7 +1085,7 @@ curl -X POST https://your-deployment.convex.cloud/v1/chat \\
1142
1085
  4. **Events**: Emit events for audit trails and analytics
1143
1086
  5. **Jobs**: Use jobs for async operations (emails, notifications)
1144
1087
  6. **Testing**: Write tests for critical conversation flows
1145
- 7. **Context**: Use context for user-specific personalization
1088
+ 7. **Thread Metadata**: Use metadata for user-specific personalization
1146
1089
  `;
1147
1090
  }
1148
1091
 
@@ -1180,12 +1123,11 @@ function scaffoldAgentFiles(cwd, projectName) {
1180
1123
  "tsconfig.json": getTsConfig(),
1181
1124
  "struere.config.ts": getStruereConfig(),
1182
1125
  "src/agent.ts": getAgentTs(projectName),
1183
- "src/context.ts": getContextTs(),
1184
1126
  "src/tools.ts": getToolsTs(),
1185
1127
  "src/workflows/.gitkeep": "",
1186
1128
  "tests/basic.test.yaml": getBasicTestYaml(),
1187
1129
  ".env.example": getEnvExample(),
1188
- ".claude.md": getClaudeMd(projectName)
1130
+ "CLAUDE.md": getClaudeMD(projectName)
1189
1131
  };
1190
1132
  for (const [relativePath, content] of Object.entries(files)) {
1191
1133
  const fullPath = join3(cwd, relativePath);
@@ -1466,6 +1408,7 @@ import chalk3 from "chalk";
1466
1408
  import ora3 from "ora";
1467
1409
  import chokidar from "chokidar";
1468
1410
  import { join as join7, basename as basename2 } from "path";
1411
+ import { existsSync as existsSync5, writeFileSync as writeFileSync4 } from "fs";
1469
1412
 
1470
1413
  // src/cli/utils/config.ts
1471
1414
  import { join as join5 } from "path";
@@ -1565,14 +1508,21 @@ var devCommand = new Command3("dev").description("Sync agent to development envi
1565
1508
  spinner.start("Loading agent");
1566
1509
  let agent = await loadAgent(cwd);
1567
1510
  spinner.succeed(`Agent "${agent.name}" loaded`);
1568
- const credentials = loadCredentials();
1511
+ const claudeMdPath = join7(cwd, "CLAUDE.md");
1512
+ if (!existsSync5(claudeMdPath)) {
1513
+ writeFileSync4(claudeMdPath, getClaudeMD(project.agent.slug));
1514
+ console.log(chalk3.green("\u2713"), "Created CLAUDE.md");
1515
+ }
1516
+ let credentials = loadCredentials();
1569
1517
  const apiKey = getApiKey();
1570
1518
  if (!credentials && !apiKey) {
1571
- spinner.fail("Not logged in");
1572
- console.log();
1573
- console.log(chalk3.gray("Run"), chalk3.cyan("struere login"), chalk3.gray("to authenticate"));
1519
+ console.log(chalk3.gray("Authentication required"));
1574
1520
  console.log();
1575
- process.exit(1);
1521
+ credentials = await performLogin();
1522
+ if (!credentials) {
1523
+ console.log(chalk3.red("Authentication failed"));
1524
+ process.exit(1);
1525
+ }
1576
1526
  }
1577
1527
  spinner.start("Syncing to Convex");
1578
1528
  const performSync = async () => {
@@ -1587,13 +1537,38 @@ var devCommand = new Command3("dev").description("Sync agent to development envi
1587
1537
  throw error;
1588
1538
  }
1589
1539
  };
1540
+ const isAuthError = (error) => {
1541
+ const message = error instanceof Error ? error.message : String(error);
1542
+ return message.includes("Unauthenticated") || message.includes("OIDC") || message.includes("token") || message.includes("expired");
1543
+ };
1590
1544
  try {
1591
1545
  await performSync();
1592
1546
  spinner.succeed("Synced to development");
1593
1547
  } catch (error) {
1594
- spinner.fail("Sync failed");
1595
- console.log(chalk3.red("Error:"), error instanceof Error ? error.message : String(error));
1596
- process.exit(1);
1548
+ if (isAuthError(error)) {
1549
+ spinner.fail("Session expired");
1550
+ console.log();
1551
+ console.log(chalk3.gray("Re-authenticating..."));
1552
+ clearCredentials();
1553
+ credentials = await performLogin();
1554
+ if (!credentials) {
1555
+ console.log(chalk3.red("Authentication failed"));
1556
+ process.exit(1);
1557
+ }
1558
+ spinner.start("Syncing to Convex");
1559
+ try {
1560
+ await performSync();
1561
+ spinner.succeed("Synced to development");
1562
+ } catch (retryError) {
1563
+ spinner.fail("Sync failed");
1564
+ console.log(chalk3.red("Error:"), retryError instanceof Error ? retryError.message : String(retryError));
1565
+ process.exit(1);
1566
+ }
1567
+ } else {
1568
+ spinner.fail("Sync failed");
1569
+ console.log(chalk3.red("Error:"), error instanceof Error ? error.message : String(error));
1570
+ process.exit(1);
1571
+ }
1597
1572
  }
1598
1573
  const devUrl = `https://${project.agent.slug}-dev.struere.dev`;
1599
1574
  console.log();
@@ -1614,8 +1589,28 @@ var devCommand = new Command3("dev").description("Sync agent to development envi
1614
1589
  await performSync();
1615
1590
  syncSpinner.succeed("Synced");
1616
1591
  } catch (error) {
1617
- syncSpinner.fail("Sync failed");
1618
- console.log(chalk3.red("Error:"), error instanceof Error ? error.message : String(error));
1592
+ if (isAuthError(error)) {
1593
+ syncSpinner.fail("Session expired");
1594
+ console.log();
1595
+ console.log(chalk3.gray("Re-authenticating..."));
1596
+ clearCredentials();
1597
+ const newCredentials = await performLogin();
1598
+ if (!newCredentials) {
1599
+ console.log(chalk3.red("Authentication failed"));
1600
+ return;
1601
+ }
1602
+ const retrySyncSpinner = ora3("Syncing...").start();
1603
+ try {
1604
+ await performSync();
1605
+ retrySyncSpinner.succeed("Synced");
1606
+ } catch (retryError) {
1607
+ retrySyncSpinner.fail("Sync failed");
1608
+ console.log(chalk3.red("Error:"), retryError instanceof Error ? retryError.message : String(retryError));
1609
+ }
1610
+ } else {
1611
+ syncSpinner.fail("Sync failed");
1612
+ console.log(chalk3.red("Error:"), error instanceof Error ? error.message : String(error));
1613
+ }
1619
1614
  }
1620
1615
  });
1621
1616
  process.on("SIGINT", () => {
@@ -2460,7 +2455,7 @@ var whoamiCommand = new Command11("whoami").description("Show current logged in
2460
2455
  // package.json
2461
2456
  var package_default = {
2462
2457
  name: "struere",
2463
- version: "0.3.7",
2458
+ version: "0.3.9",
2464
2459
  description: "Build, test, and deploy AI agents",
2465
2460
  keywords: [
2466
2461
  "ai",
@@ -2,12 +2,11 @@ export declare function getPackageJson(name: string): string;
2
2
  export declare function getTsConfig(): string;
3
3
  export declare function getStruereConfig(): string;
4
4
  export declare function getAgentTs(name: string): string;
5
- export declare function getContextTs(): string;
6
5
  export declare function getToolsTs(): string;
7
6
  export declare function getBasicTestYaml(): string;
8
7
  export declare function getEnvExample(): string;
9
8
  export declare function getGitignore(): string;
10
9
  export declare function getStruereJson(agentId: string, team: string, slug: string, name: string): string;
11
10
  export declare function getEnvLocal(deploymentUrl: string): string;
12
- export declare function getClaudeMd(name: string): string;
11
+ export declare function getClaudeMD(name: string): string;
13
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAsBpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoC/C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAoDnC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAatC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAahG;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyUhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAsBpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC/C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAoDnC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAatC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAahG;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuShD"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffold.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAeD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAexF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAgCrF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CA+BnF;AAsBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffold.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAeD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAexF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CA+BrF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CA8BnF;AAsBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -1,5 +1,4 @@
1
1
  export { defineAgent } from './agent';
2
- export { defineContext } from './context';
3
2
  export { defineTools } from './tools';
4
3
  export { defineConfig } from './config';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/define/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/define/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export { defineAgent } from './define/agent';
2
- export { defineContext } from './define/context';
3
2
  export { defineTools } from './define/tools';
4
3
  export { defineConfig } from './define/config';
5
- export type { AgentConfig, ModelConfig, ToolReference, ToolParameters, ParameterDefinition, ToolHandler, ToolContext, StateAccessor, WorkflowReference, StateConfig, ContextFunction, ContextRequest, ContextResult, FrameworkConfig, CorsConfig, LoggingConfig, AuthConfig, Message, Conversation, TestCase, TestMessage, TestToolCall, TestAssertion, DeployConfig, ScalingConfig, } from './types';
4
+ export type { AgentConfig, ModelConfig, ToolReference, ToolParameters, ParameterDefinition, ToolHandler, ToolContext, StateAccessor, WorkflowReference, StateConfig, FrameworkConfig, CorsConfig, LoggingConfig, AuthConfig, Message, Conversation, TestCase, TestMessage, TestToolCall, TestAssertion, DeployConfig, ScalingConfig, } from './types';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -19,18 +19,6 @@ function defineAgent(config) {
19
19
  ...config
20
20
  };
21
21
  }
22
- // src/define/context.ts
23
- function defineContext(fn) {
24
- return async (request) => {
25
- try {
26
- const result = await fn(request);
27
- return result ?? {};
28
- } catch (error) {
29
- console.error("Context function error:", error);
30
- return {};
31
- }
32
- };
33
- }
34
22
  // src/define/tools.ts
35
23
  function defineTools(tools) {
36
24
  return tools.map(validateTool);
@@ -92,7 +80,6 @@ function defineConfig(config = {}) {
92
80
  }
93
81
  export {
94
82
  defineTools,
95
- defineContext,
96
83
  defineConfig,
97
84
  defineAgent
98
85
  };
package/dist/types.d.ts CHANGED
@@ -7,7 +7,6 @@ export interface AgentConfig {
7
7
  tools?: ToolReference[];
8
8
  workflows?: WorkflowReference[];
9
9
  state?: StateConfig;
10
- context?: ContextFunction;
11
10
  }
12
11
  export interface ModelConfig {
13
12
  provider: 'anthropic' | 'openai' | 'google' | 'custom';
@@ -54,18 +53,6 @@ export interface StateConfig {
54
53
  ttl?: number;
55
54
  prefix?: string;
56
55
  }
57
- export type ContextFunction = (request: ContextRequest) => Promise<ContextResult>;
58
- export interface ContextRequest {
59
- conversationId: string;
60
- userId?: string;
61
- channel: string;
62
- message: string;
63
- state: StateAccessor;
64
- }
65
- export interface ContextResult {
66
- additionalContext?: string;
67
- variables?: Record<string, unknown>;
68
- }
69
56
  export interface FrameworkConfig {
70
57
  port?: number;
71
58
  host?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "struere",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "Build, test, and deploy AI agents",
5
5
  "keywords": [
6
6
  "ai",