@pinet/slack-bridge 0.2.2 → 0.2.6

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.
Files changed (93) hide show
  1. package/README.md +316 -451
  2. package/dist/activity-log.d.ts +10 -3
  3. package/dist/agent-event-runtime.d.ts +0 -2
  4. package/dist/agent-event-runtime.js +0 -1
  5. package/dist/agent-prompt-guidance.d.ts +1 -6
  6. package/dist/agent-prompt-guidance.js +1 -6
  7. package/dist/broker/adapters/slack.d.ts +4 -1
  8. package/dist/broker/adapters/slack.js +16 -9
  9. package/dist/broker/client.d.ts +21 -4
  10. package/dist/broker/client.js +65 -25
  11. package/dist/broker/hibernation-activation-authority.d.ts +22 -0
  12. package/dist/broker/hibernation-activation-authority.js +51 -0
  13. package/dist/broker/hibernation-activation.d.ts +75 -0
  14. package/dist/broker/hibernation-activation.js +95 -0
  15. package/dist/broker/hibernation-command-router.d.ts +54 -0
  16. package/dist/broker/hibernation-command-router.js +124 -0
  17. package/dist/broker/hibernation-runtime-adapters.d.ts +79 -0
  18. package/dist/broker/hibernation-runtime-adapters.js +473 -0
  19. package/dist/broker/hibernation-runtime-helpers.d.ts +146 -0
  20. package/dist/broker/hibernation-runtime-helpers.js +243 -0
  21. package/dist/broker/index.d.ts +16 -1
  22. package/dist/broker/index.js +68 -10
  23. package/dist/broker/lock-conflict.d.ts +109 -0
  24. package/dist/broker/lock-conflict.js +409 -0
  25. package/dist/broker/socket-server.d.ts +26 -0
  26. package/dist/broker/socket-server.js +287 -4
  27. package/dist/broker-delivery.d.ts +1 -0
  28. package/dist/broker-delivery.js +10 -1
  29. package/dist/broker-runtime.d.ts +14 -2
  30. package/dist/broker-runtime.js +114 -3
  31. package/dist/canvases.d.ts +12 -2
  32. package/dist/canvases.js +1 -3
  33. package/dist/compaction-gate.d.ts +7 -0
  34. package/dist/compaction-gate.js +35 -0
  35. package/dist/deploy-manifest.d.ts +8 -2
  36. package/dist/deploy-manifest.js +9 -7
  37. package/dist/follower-runtime.d.ts +5 -2
  38. package/dist/follower-runtime.js +39 -5
  39. package/dist/git-metadata.d.ts +5 -9
  40. package/dist/git-metadata.js +23 -42
  41. package/dist/guardrails.js +5 -0
  42. package/dist/helpers.d.ts +77 -27
  43. package/dist/helpers.js +150 -39
  44. package/dist/hibernation-config.d.ts +13 -0
  45. package/dist/hibernation-config.js +14 -0
  46. package/dist/home-tab.d.ts +13 -2
  47. package/dist/imessage-tools.d.ts +4 -1
  48. package/dist/inbox-drain-runtime.d.ts +1 -0
  49. package/dist/inbox-drain-runtime.js +5 -1
  50. package/dist/index.js +341 -108
  51. package/dist/pinet-commands.d.ts +14 -1
  52. package/dist/pinet-commands.js +93 -22
  53. package/dist/pinet-mesh-ops.d.ts +6 -4
  54. package/dist/pinet-mesh-ops.js +9 -1
  55. package/dist/pinet-runtime-composition.d.ts +2 -1
  56. package/dist/pinet-runtime-composition.js +14 -3
  57. package/dist/pinet-session-formatting.d.ts +26 -2
  58. package/dist/pinet-session-formatting.js +2 -0
  59. package/dist/pinet-tools.d.ts +14 -0
  60. package/dist/pinet-tools.js +355 -50
  61. package/dist/prompts/broker/default.md +3 -3
  62. package/dist/prompts/broker/tmux.md +3 -3
  63. package/dist/runtime-agent-context.d.ts +3 -3
  64. package/dist/runtime-agent-context.js +12 -6
  65. package/dist/runtime-mode.js +4 -0
  66. package/dist/session-ui-runtime.js +3 -1
  67. package/dist/single-player-runtime.d.ts +1 -1
  68. package/dist/single-player-runtime.js +21 -5
  69. package/dist/slack-access.d.ts +10 -2
  70. package/dist/slack-access.js +64 -22
  71. package/dist/slack-block-kit.d.ts +44 -2
  72. package/dist/slack-block-kit.js +5 -5
  73. package/dist/slack-file-access.d.ts +12 -1
  74. package/dist/slack-file-access.js +4 -4
  75. package/dist/slack-message-context.d.ts +9 -2
  76. package/dist/slack-modals.d.ts +4 -1
  77. package/dist/slack-modals.js +5 -5
  78. package/dist/slack-pinet-runtime-adapter.d.ts +1 -0
  79. package/dist/slack-pinet-runtime-adapter.js +10 -0
  80. package/dist/slack-presence.d.ts +5 -4
  81. package/dist/slack-request-runtime.d.ts +3 -2
  82. package/dist/slack-scope-diagnostics.d.ts +27 -2
  83. package/dist/slack-socket-dedup.d.ts +8 -5
  84. package/dist/slack-tools.d.ts +10 -0
  85. package/dist/slack-tools.js +51 -64
  86. package/dist/slack-upload.d.ts +17 -1
  87. package/dist/subtree-broker-runtime.d.ts +83 -2
  88. package/dist/subtree-broker-runtime.js +774 -109
  89. package/dist/tool-output-limits.d.ts +11 -0
  90. package/dist/tool-output-limits.js +20 -0
  91. package/dist/tool-registration-runtime.d.ts +3 -0
  92. package/dist/tool-registration-runtime.js +27 -0
  93. package/package.json +8 -8
@@ -0,0 +1,11 @@
1
+ export declare const DEFAULT_MAX_OUTPUT_LINES = 2000;
2
+ export declare const DEFAULT_MAX_OUTPUT_BYTES: number;
3
+ export declare function formatOutputSize(bytes: number): string;
4
+ export declare function measureOutputLimits(content: string, options?: {
5
+ maxLines?: number;
6
+ maxBytes?: number;
7
+ }): {
8
+ exceedsLimit: boolean;
9
+ totalLines: number;
10
+ totalBytes: number;
11
+ };
@@ -0,0 +1,20 @@
1
+ export const DEFAULT_MAX_OUTPUT_LINES = 2_000;
2
+ export const DEFAULT_MAX_OUTPUT_BYTES = 50 * 1_024;
3
+ export function formatOutputSize(bytes) {
4
+ if (bytes < 1_024)
5
+ return `${bytes}B`;
6
+ if (bytes < 1_024 * 1_024)
7
+ return `${(bytes / 1_024).toFixed(1)}KB`;
8
+ return `${(bytes / (1_024 * 1_024)).toFixed(1)}MB`;
9
+ }
10
+ export function measureOutputLimits(content, options = {}) {
11
+ const maxLines = options.maxLines ?? DEFAULT_MAX_OUTPUT_LINES;
12
+ const maxBytes = options.maxBytes ?? DEFAULT_MAX_OUTPUT_BYTES;
13
+ const totalLines = content.length === 0 ? 0 : content.split("\n").length - (content.endsWith("\n") ? 1 : 0);
14
+ const totalBytes = Buffer.byteLength(content, "utf8");
15
+ return {
16
+ exceedsLimit: totalLines > maxLines || totalBytes > maxBytes,
17
+ totalLines,
18
+ totalBytes,
19
+ };
20
+ }
@@ -2,12 +2,15 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { type RegisterIMessageToolsDeps } from "./imessage-tools.js";
3
3
  import { type RegisterPinetToolsDeps } from "./pinet-tools.js";
4
4
  import { type RegisterSlackToolsDeps } from "./slack-tools.js";
5
+ import type { SlackBridgeRuntimeMode } from "./runtime-mode.js";
5
6
  export interface ToolRegistrationRuntimeDeps {
6
7
  slackTools: RegisterSlackToolsDeps;
7
8
  pinetTools: RegisterPinetToolsDeps;
8
9
  iMessageTools: RegisterIMessageToolsDeps;
10
+ buildPromptGuidelines: () => Promise<string[]>;
9
11
  }
10
12
  export interface ToolRegistrationRuntime {
11
13
  register: (pi: ExtensionAPI) => void;
14
+ sync: (pi: ExtensionAPI, mode: SlackBridgeRuntimeMode) => Promise<void>;
12
15
  }
13
16
  export declare function createToolRegistrationRuntime(deps: ToolRegistrationRuntimeDeps): ToolRegistrationRuntime;
@@ -1,13 +1,40 @@
1
1
  import { registerIMessageTools } from "./imessage-tools.js";
2
2
  import { registerPinetTools } from "./pinet-tools.js";
3
3
  import { registerSlackTools } from "./slack-tools.js";
4
+ const SLACK_TOOL_NAMES = ["slack", "slack_inbox", "slack_send"];
5
+ const PINET_TOOL_NAMES = ["pinet"];
6
+ const IMESSAGE_TOOL_NAMES = ["imessage_send"];
7
+ const MANAGED_TOOL_NAMES = new Set([
8
+ ...SLACK_TOOL_NAMES,
9
+ ...PINET_TOOL_NAMES,
10
+ ...IMESSAGE_TOOL_NAMES,
11
+ ]);
4
12
  export function createToolRegistrationRuntime(deps) {
5
13
  function register(pi) {
6
14
  registerSlackTools(pi, deps.slackTools);
7
15
  registerPinetTools(pi, deps.pinetTools);
8
16
  registerIMessageTools(pi, deps.iMessageTools);
9
17
  }
18
+ async function sync(pi, mode) {
19
+ const activeTools = pi.getActiveTools().filter((name) => !MANAGED_TOOL_NAMES.has(name));
20
+ if (mode === "off") {
21
+ pi.setActiveTools(activeTools);
22
+ return;
23
+ }
24
+ const promptGuidelines = await deps.buildPromptGuidelines();
25
+ registerSlackTools(pi, {
26
+ ...deps.slackTools,
27
+ additionalSendPromptGuidelines: mode === "single" ? promptGuidelines : [],
28
+ });
29
+ activeTools.push(...SLACK_TOOL_NAMES);
30
+ if (mode === "broker" || mode === "follower") {
31
+ registerPinetTools(pi, { ...deps.pinetTools, promptGuidelines });
32
+ activeTools.push(...PINET_TOOL_NAMES, ...IMESSAGE_TOOL_NAMES);
33
+ }
34
+ pi.setActiveTools(activeTools);
35
+ }
10
36
  return {
11
37
  register,
38
+ sync,
12
39
  };
13
40
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@pinet/slack-bridge",
3
- "version": "0.2.2",
3
+ "version": "0.2.6",
4
4
  "type": "module",
5
5
  "description": "Pi package for Pinet Slack assistant integration — multi-agent broker, thread routing, and inbox tools",
6
6
  "author": "Will Porcellini <5994936+gugu91@users.noreply.github.com>",
7
7
  "license": "MIT",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "git+https://github.com/gugu91/extensions.git",
10
+ "url": "git+https://github.com/gugu91/pinet.git",
11
11
  "directory": "slack-bridge"
12
12
  },
13
13
  "publishConfig": {
@@ -44,15 +44,15 @@
44
44
  "scripts": {
45
45
  "build": "node ../scripts/build-package.mjs",
46
46
  "prepack": "pnpm run build",
47
- "lint": "eslint . --ext .ts",
47
+ "lint": "oxlint .",
48
48
  "typecheck": "tsc --noEmit",
49
- "test": "vitest run"
49
+ "test": "vitest run --config ../vitest.config.ts"
50
50
  },
51
51
  "dependencies": {
52
- "@pinet/broker-core": "0.2.2",
53
- "@pinet/imessage-bridge": "0.2.2",
54
- "@pinet/pinet-core": "0.2.2",
55
- "@pinet/transport-core": "0.2.2",
52
+ "@pinet/broker-core": "0.2.6",
53
+ "@pinet/imessage-bridge": "0.2.6",
54
+ "@pinet/pinet-core": "0.2.6",
55
+ "@pinet/transport-core": "0.2.6",
56
56
  "@sinclair/typebox": "^0.34.49"
57
57
  },
58
58
  "types": "./dist/index.d.ts",