@ouro.bot/cli 0.1.0-alpha.934 → 0.1.0-alpha.935

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/changelog.json CHANGED
@@ -1,6 +1,13 @@
1
1
  {
2
2
  "_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
3
3
  "versions": [
4
+ {
5
+ "version": "0.1.0-alpha.935",
6
+ "changes": [
7
+ "Keep Teams requests running when advisory typing updates are rejected, with correlated warnings and unchanged single-attempt reply custody.",
8
+ "Run foreground shell commands without blocking receiver I/O, preserving timeouts, closed stdin and command error output."
9
+ ]
10
+ },
4
11
  {
5
12
  "version": "0.1.0-alpha.934",
6
13
  "changes": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "runtimeVersion": "0.1.0-alpha.934",
2
+ "runtimeVersion": "0.1.0-alpha.935",
3
3
  "bundleSchemaVersion": 3,
4
4
  "lastUpdated": "2026-09-03T00:00:00.000Z"
5
5
  }
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <Container version="2">
3
3
  <Name>ouro-butler</Name>
4
- <Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.934</Repository>
4
+ <Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.935</Repository>
5
5
  <Registry>https://github.com/ourostack/ouroboros/pkgs/container/ouroboros-butler</Registry>
6
6
  <Network>host</Network>
7
7
  <Shell>sh</Shell>
@@ -48,7 +48,7 @@ exports.shellToolDefinitions = [
48
48
  }
49
49
  return { kind: "not_required" };
50
50
  },
51
- handler: (a, ctx) => {
51
+ handler: async (a, ctx) => {
52
52
  (0, tool_arguments_1.assertRelationshipToolOwner)(ctx);
53
53
  // Destructive pattern detection (friction, not a block)
54
54
  const destructivePatterns = (0, shell_sessions_1.detectDestructivePatterns)(a.command);
@@ -84,9 +84,14 @@ exports.shellToolDefinitions = [
84
84
  }
85
85
  const baseTimeout = requestedTimeout > 0 ? requestedTimeout : configDefault;
86
86
  const timeout = Math.min(baseTimeout, MAX_TIMEOUT);
87
- const output = (0, child_process_1.execSync)(a.command, {
88
- encoding: "utf-8",
89
- timeout,
87
+ const output = await new Promise((resolve, reject) => {
88
+ const child = (0, child_process_1.exec)(a.command, { encoding: "utf-8", timeout }, (error, stdout, stderr) => {
89
+ if (error)
90
+ reject(Object.assign(error, { stdout, stderr }));
91
+ else
92
+ resolve(stdout);
93
+ });
94
+ child.stdin?.end();
90
95
  });
91
96
  if (destructivePatterns.length > 0) {
92
97
  return `${output}\n\n--- destructive pattern detected: ${destructivePatterns.join(", ")} ---`;
@@ -1248,7 +1248,19 @@ function registerBotHandlers(app, label) {
1248
1248
  // Use the SDK's single-attempt, awaitable send instead of that hidden retry loop.
1249
1249
  const stream = {
1250
1250
  emit: value => sendText(typeof value === "string" ? value : value.text),
1251
- update: () => ctx.send({ type: "typing" }),
1251
+ update: async () => {
1252
+ try {
1253
+ await ctx.send({ type: "typing" });
1254
+ }
1255
+ catch (error) {
1256
+ (0, runtime_1.emitNervesEvent)({
1257
+ level: "warn", component: "channels", event: "channel.teams_typing_failed",
1258
+ message: "Teams rejected an advisory typing update; the reply is still pending",
1259
+ meta: { conversationId: convId, inboundActivityId: activity.id,
1260
+ error: error instanceof Error ? error.message : String(error) },
1261
+ });
1262
+ }
1263
+ },
1252
1264
  close: async () => undefined,
1253
1265
  };
1254
1266
  (0, runtime_1.emitNervesEvent)({ level: "info", event: "channel.message_received", component: "channels", message: `[${label}] incoming teams message`, meta: { stage: "received", inboundActivityId: activity.id, botId: app.id, tenantId: requestContext.tenantId, userId: userId.slice(0, 12), conversationId: convId } });
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.934",
3
+ "version": "0.1.0-alpha.935",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@ouro.bot/cli",
9
- "version": "0.1.0-alpha.934",
9
+ "version": "0.1.0-alpha.935",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.78.0",
12
12
  "@azure/identity": "^4.13.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouro.bot/cli",
3
- "version": "0.1.0-alpha.934",
3
+ "version": "0.1.0-alpha.935",
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },