omnara 1.0.23 → 1.0.25
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/README.md +98 -0
- package/dist/bin.js +1424 -694
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,3 +24,101 @@ See the [Omnara docs](https://docs.omnara.com) and the [GitHub repository](https
|
|
|
24
24
|
## License
|
|
25
25
|
|
|
26
26
|
Apache-2.0
|
|
27
|
+
|
|
28
|
+
## Project integrations
|
|
29
|
+
|
|
30
|
+
Each project integration owns its provider identity, credentials, and optional launcher.
|
|
31
|
+
Create a disconnected draft, connect its account, then choose launch settings.
|
|
32
|
+
Names are immutable: 1–32 letters, numbers, or hyphens, starting with a letter.
|
|
33
|
+
|
|
34
|
+
With an organization and project selected:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
omnara integrations definitions
|
|
38
|
+
omnara integrations create --body '{"name":"engineering","integration_kind":"slack_thread","settings":{}}'
|
|
39
|
+
omnara integrations list
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Use the returned integration ID as `INTEGRATION_ID`; keep it as `SLACK_INTEGRATION_ID` for the launcher
|
|
43
|
+
example below. Connect Slack through browser authorization using an existing
|
|
44
|
+
Slack app:
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
omnara integrations slack "$INTEGRATION_ID" --client-id "$SLACK_CLIENT_ID" \
|
|
48
|
+
--client-secret "$SLACK_CLIENT_SECRET" --signing-secret "$SLACK_SIGNING_SECRET"
|
|
49
|
+
omnara integrations slack --help
|
|
50
|
+
omnara integrations get "$INTEGRATION_ID"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`integrations slack` also supports automatic Slack app creation with `--app-name` and
|
|
54
|
+
`--app-configuration-token`. Reconnecting preserves the saved launcher settings.
|
|
55
|
+
|
|
56
|
+
For GitHub or Discord, create a project credential with `secrets create`, or reuse
|
|
57
|
+
an existing credential of the matching provider kind. Read `setup_revision` from
|
|
58
|
+
`integrations get` before configuring the integration. The server verifies the credentials and
|
|
59
|
+
rejects a stale revision.
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
omnara integrations create --body '{"name":"reviewer","integration_kind":"github_pr","settings":{}}'
|
|
63
|
+
# Set INTEGRATION_ID to this new integration's ID and SETUP_REVISION to its current setup_revision.
|
|
64
|
+
omnara integrations configure "$INTEGRATION_ID" --expected-setup-revision "$SETUP_REVISION" \
|
|
65
|
+
--provider-tenant-id "$GITHUB_APP_ID" --provider-account-ref "$GITHUB_INSTALLATION_ID" \
|
|
66
|
+
--credential-secret-id "$SECRET_ID"
|
|
67
|
+
omnara integrations configure --help
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
GitHub uses its numeric App ID and Installation ID; the credential's App ID must
|
|
71
|
+
match. Discord uses its Application ID and discovers the bot User ID from its token. Configure Discord's
|
|
72
|
+
interaction public key with `--provider-config '{"public_key":"YOUR_64_HEX_PUBLIC_KEY"}'`
|
|
73
|
+
before using a launcher or interaction handler. Discord launchers include a handler by default. Set its
|
|
74
|
+
Interactions Endpoint URL to
|
|
75
|
+
`https://YOUR_OMNARA_HOST/api/integrations/discord/APPLICATION_ID/interactions`.
|
|
76
|
+
Omnara manages one Gateway connection per saved Discord integration.
|
|
77
|
+
|
|
78
|
+
`integrations update` replaces the integration's settings. Only `settings` belongs in
|
|
79
|
+
an update; name and `integration_kind` are supplied on create.
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
omnara integrations update "$SLACK_INTEGRATION_ID" --body '{
|
|
83
|
+
"settings": {"launcher": {"profiles": ["aprf_aeaqcaibaeaqcaibaeaqcaibae"]}}
|
|
84
|
+
}'
|
|
85
|
+
omnara integrations profiles "$SLACK_INTEGRATION_ID" --profile-ids "$PROFILE_ID" --profile-ids "$SECOND_PROFILE_ID"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Slack and Discord launchers contain only ordered, distinct public profile IDs:
|
|
89
|
+
one starts immediately; several offer a menu selecting exactly one. Slack launches
|
|
90
|
+
from mentions wherever the bot can receive messages, and from DMs without a mention.
|
|
91
|
+
Discord launches from mentions in servers where the bot has access; DMs do not launch.
|
|
92
|
+
Manage channel access in Slack or Discord. `integrations profiles` preserves the
|
|
93
|
+
integration's other settings.
|
|
94
|
+
|
|
95
|
+
GitHub uses `launcher.profile`, `launcher.trigger` (`mention`, `pull_request_opened`, or `both`),
|
|
96
|
+
and optional `launcher.repository_id`. PR-open launches, mention launches and comments
|
|
97
|
+
that direct agents require repository write access. The definitions catalog
|
|
98
|
+
publishes each integration's complete settings schema in `capabilities.settings`.
|
|
99
|
+
|
|
100
|
+
Select tools and interaction handlers independently in agent configurations:
|
|
101
|
+
tools use keys such as `int__engineering__post_message`, and interaction handlers
|
|
102
|
+
use `engineering: {}`. Tool entries accept permissions, enabled state and deferral.
|
|
103
|
+
For the shipped thread and PR tools, destinations come from the integration-agent
|
|
104
|
+
conversation context assigned by provider/scheduled launches. These tools fail
|
|
105
|
+
without that context; their arguments cannot choose another destination. Integrations can
|
|
106
|
+
also define standalone tools that use their credentials without a conversation.
|
|
107
|
+
Shipped interaction handlers use the assigned conversation and accept empty arguments.
|
|
108
|
+
Incoming subscriptions belong to the integration and are attached via
|
|
109
|
+
launch requests or the integration subscriptions API.
|
|
110
|
+
`integrations get` and `integrations definitions` show optional
|
|
111
|
+
`capabilities.subscription.conversation_schema`. Attachments specify the integration
|
|
112
|
+
and conversation; the integration determines which activity is forwarded. Tools and
|
|
113
|
+
handlers expose static `input_schema`. A launcher adds its provider's missing tools and
|
|
114
|
+
handler to future agents; editing settings does not rewrite existing agents.
|
|
115
|
+
|
|
116
|
+
```sh
|
|
117
|
+
omnara integrations disconnect "$INTEGRATION_ID"
|
|
118
|
+
omnara integrations delete "$INTEGRATION_ID"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Disconnect stops provider access for that integration and keeps its setup for reconnecting.
|
|
122
|
+
Delete removes that integration and revokes its capabilities. Other integrations keep their own
|
|
123
|
+
lifecycle, including integrations sharing a credential. Existing agents and history remain
|
|
124
|
+
usable through the dashboard and API.
|